Merge pull request #695 from WebAssembly/opts

Get optimizer on par with emscripten asm.js optimizer
diff --git a/build-js.sh b/build-js.sh
index d495140..b346e14 100755
--- a/build-js.sh
+++ b/build-js.sh
@@ -43,7 +43,7 @@
 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 b19451a..eb5413e 100644
--- a/src/asm2wasm.h
+++ b/src/asm2wasm.h
@@ -523,6 +523,8 @@
     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 @@
       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 @@
 
 #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 @@
       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 @@
           8, 0, 8,
           builder.makeGetLocal(r, i32),
           builder.makeBinary(
-            RemU,
+            RemUInt64,
             builder.makeGetLocal(x64, i64),
             builder.makeGetLocal(y64, i64)
-          )
+          ),
+          i64
         )
       )
     );
@@ -934,20 +938,19 @@
       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 @@
         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 9b2ff10..4664f22 100644
--- a/src/ast_utils.h
+++ b/src/ast_utils.h
@@ -27,19 +27,27 @@
 
 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 @@
     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 @@
   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 @@
     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 @@
   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 @@
     } 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 @@
     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 @@
     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 0ad8d8c..e237b8a 100644
--- a/src/pass.h
+++ b/src/pass.h
@@ -72,17 +72,17 @@
   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 @@
   ~PassRunner();
 
 private:
+  void doAdd(Pass* pass);
+
   void runPassOnFunction(Pass* pass, Function* func);
 };
 
@@ -121,12 +123,13 @@
   virtual ~Pass() {};
 
   // Override this to perform preparation work before the pass runs.
-  virtual void prepare(PassRunner* runner, Module* 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) {}
+  // This will be called before the pass is run on a module.
+  virtual void prepareToRun(PassRunner* runner, Module* module) {}
 
-  // Run on a single function. This has no prepare/finalize calls.
+  // Implement this with code to run the pass on the whole module
+  virtual void run(PassRunner* runner, Module* module) = 0;
+
+  // 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 @@
 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 1b4c655..30f63c8 100644
--- a/src/passes/CMakeLists.txt
+++ b/src/passes/CMakeLists.txt
@@ -3,6 +3,7 @@
   CoalesceLocals.cpp
   DeadCodeElimination.cpp
   DuplicateFunctionElimination.cpp
+  ExtractFunction.cpp
   MergeBlocks.cpp
   Metrics.cpp
   NameManager.cpp
@@ -11,6 +12,7 @@
   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 2063a20..ba2c6dd 100644
--- a/src/passes/CoalesceLocals.cpp
+++ b/src/passes/CoalesceLocals.cpp
@@ -198,6 +198,7 @@
   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 @@
 
   // 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 @@
   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 @@
 // 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 @@
   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 @@
     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 @@
       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 @@
   }
 }
 
+// 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 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 @@
       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 @@
         // 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 2b8e69b..cfe2d85 100644
--- a/src/passes/DuplicateFunctionElimination.cpp
+++ b/src/passes/DuplicateFunctionElimination.cpp
@@ -102,7 +102,17 @@
         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 0000000..b342efc
--- /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 69f6d5a..0000000
--- 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 c530985..9181da9 100644
--- a/src/passes/Metrics.cpp
+++ b/src/passes/Metrics.cpp
@@ -34,7 +34,7 @@
     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 2a5e7b8..669a19b 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 @@
   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 @@
 
 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 @@
 
   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 @@
       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 7d5c568..48a4e2c 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 61fde86..13ccc82 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 0000000..7f74220
--- /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 19d6c3e..429203a 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 59d3af6..86a4637 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 @@
   // 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 @@
       // 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 @@
     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 @@
     }
   }
 
+  // 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 @@
       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 @@
         }
       }
       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 @@
         }
       }
     };
-    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 5315eda..e032acc 100644
--- a/src/passes/SimplifyLocals.cpp
+++ b/src/passes/SimplifyLocals.cpp
@@ -43,7 +43,7 @@
 // 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 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 @@
   // 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 @@
   // 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 @@
     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 @@
       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 @@
     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 @@
   }
 
   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 @@
       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 db42a99..0fdd12d 100644
--- a/src/passes/Vacuum.cpp
+++ b/src/passes/Vacuum.cpp
@@ -47,26 +47,31 @@
         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 @@
 
   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 @@
         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 @@
     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 @@
   }
 
   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 437b023..f3bc6d4 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 @@
   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 @@
   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::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 @@
       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 @@
   }
 }
 
+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 4bb76ed..80fa394 100644
--- a/src/passes/passes.h
+++ b/src/passes/passes.h
@@ -26,6 +26,7 @@
 Pass *createCoalesceLocalsWithLearningPass();
 Pass *createDeadCodeEliminationPass();
 Pass *createDuplicateFunctionEliminationPass();
+Pass *createExtractFunctionPass();
 Pass *createLowerIfElsePass();
 Pass *createMergeBlocksPass();
 Pass *createMetricsPass();
@@ -36,6 +37,7 @@
 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 2841585..f9b2e73 100644
--- a/src/wasm-builder.h
+++ b/src/wasm-builder.h
@@ -283,6 +283,28 @@
     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 @@
     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 52a4e75..92b96d9 100644
--- a/src/wasm-module-building.h
+++ b/src/wasm-module-building.h
@@ -97,7 +97,7 @@
     }
 
     // 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 4725237..47b9d26 100644
--- a/src/wasm-traversal.h
+++ b/src/wasm-traversal.h
@@ -335,8 +335,8 @@
       }
       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 58a30f9..e232213 100644
--- a/src/wasm-validator.h
+++ b/src/wasm-validator.h
@@ -104,6 +104,9 @@
 
   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 d6bdfe9..4d5cf4d 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -981,7 +981,6 @@
   Expression *condition, *ifTrue, *ifFalse;
 
   void finalize() {
-    assert(ifTrue);
     if (ifFalse) {
       if (ifTrue->type == ifFalse->type) {
         type = ifTrue->type;
@@ -992,6 +991,8 @@
       } else {
         type = none;
       }
+    } else {
+      type = none; // if without else
     }
   }
 };
@@ -1027,6 +1028,8 @@
   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 c3ebe3d..4966ce2 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)
-                              )
                             )
-                            (if
-                              (tee_local $19
-                                (i32.load
-                                  (tee_local $16
-                                    (i32.add
-                                      (get_local $8)
-                                      (i32.const 16)
-                                    )
+                            (block
+                              (set_local $17
+                                (get_local $13)
+                              )
+                              (set_local $9
+                                (get_local $3)
+                              )
+                              (br $while-in$11)
+                            )
+                          )
+                          (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)
-                                )
-                              )
-                              (br $while-out$10)
                             )
-                            (br $while-in$11)
+                            (block
+                              (set_local $17
+                                (get_local $13)
+                              )
+                              (set_local $9
+                                (get_local $3)
+                              )
+                              (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 $9)
-                            )
-                            (if
-                              (i32.eq
-                                (get_local $18)
                                 (get_local $2)
                               )
-                              (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)
+                            )
+                            (get_local $6)
+                          )
+                          (if
+                            (i32.eq
+                              (get_local $19)
+                              (get_local $2)
+                            )
+                            (block
+                              (set_local $27
+                                (get_local $3)
                               )
-                              (block
-                                (set_local $9
-                                  (get_local $5)
-                                )
-                                (set_local $4
-                                  (get_local $19)
-                                )
+                              (set_local $25
+                                (get_local $13)
+                              )
+                              (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)
+                                        (get_local $13)
+                                        (i32.const 16)
+                                      )
+                                      (i32.shl
+                                        (i32.shr_u
+                                          (get_local $0)
+                                          (i32.const 31)
                                         )
-                                        (i32.shl
-                                          (i32.shr_u
-                                            (get_local $1)
-                                            (i32.const 31)
-                                          )
-                                          (i32.const 2)
-                                        )
+                                        (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)
                         )
-                        (block
-                          (set_local $27
-                            (get_local $5)
-                          )
-                          (set_local $29
-                            (get_local $4)
-                          )
+                        (set_local $29
+                          (get_local $7)
                         )
-                        (block
-                          (set_local $6
-                            (get_local $5)
-                          )
-                          (set_local $12
-                            (get_local $4)
-                          )
-                          (br $while-out$19)
+                        (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)
-                                )
                               )
-                              (if
-                                (tee_local $16
-                                  (i32.load
-                                    (tee_local $0
-                                      (i32.add
-                                        (get_local $8)
-                                        (i32.const 16)
-                                      )
+                              (block
+                                (set_local $17
+                                  (get_local $3)
+                                )
+                                (set_local $0
+                                  (get_local $8)
+                                )
+                                (br $while-in$24)
+                              )
+                            )
+                            (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)
-                                  )
-                                )
-                                (br $while-out$23)
                               )
-                              (br $while-in$24)
+                              (block
+                                (set_local $17
+                                  (get_local $3)
+                                )
+                                (set_local $0
+                                  (get_local $8)
+                                )
+                                (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)
-                              )
-                              (i32.store
-                                (get_local $7)
+                                (get_local $3)
                                 (get_local $0)
                               )
-                              (set_local $11
-                                (get_local $1)
+                              (i32.store
+                                (get_local $16)
+                                (get_local $8)
+                              )
+                              (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)
-                                  )
-                                  (i32.store offset=8
-                                    (get_local $4)
+                                    (get_local $0)
                                     (get_local $7)
                                   )
+                                  (i32.store offset=8
+                                    (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)
-                                      )
+                                (br_if $while-in$38
+                                  (tee_local $14
+                                    (i32.load offset=8
+                                      (get_local $14)
                                     )
                                   )
-                                  (block
-                                    (set_local $9
-                                      (i32.const 173)
-                                    )
-                                    (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)
+                        (get_local $1)
                       )
-                      (set_local $50
-                        (get_local $3)
-                      )
-                      (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)
-                                                      )
                                                     )
-                                                    (if
-                                                      (tee_local $8
-                                                        (i32.load
-                                                          (tee_local $2
-                                                            (i32.add
-                                                              (get_local $14)
-                                                              (i32.const 16)
-                                                            )
+                                                    (block
+                                                      (set_local $14
+                                                        (get_local $3)
+                                                      )
+                                                      (set_local $9
+                                                        (get_local $2)
+                                                      )
+                                                      (br $while-in$56)
+                                                    )
+                                                  )
+                                                  (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)
-                                                        )
-                                                      )
-                                                      (br $while-out$55)
                                                     )
-                                                    (br $while-in$56)
+                                                    (block
+                                                      (set_local $14
+                                                        (get_local $3)
+                                                      )
+                                                      (set_local $9
+                                                        (get_local $2)
+                                                      )
+                                                      (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,7 +4178,21 @@
                                                   (i32.lt_u
                                                     (tee_local $2
                                                       (i32.load offset=8
-                                                        (get_local $6)
+                                                        (get_local $4)
+                                                      )
+                                                    )
+                                                    (get_local $17)
+                                                  )
+                                                  (call_import $_abort)
+                                                )
+                                                (if
+                                                  (i32.ne
+                                                    (i32.load
+                                                      (tee_local $3
+                                                        (i32.add
+                                                          (get_local $2)
+                                                          (i32.const 12)
+                                                        )
                                                       )
                                                     )
                                                     (get_local $4)
@@ -4226,38 +4200,24 @@
                                                   (call_import $_abort)
                                                 )
                                                 (if
-                                                  (i32.ne
-                                                    (i32.load
-                                                      (tee_local $8
-                                                        (i32.add
-                                                          (get_local $2)
-                                                          (i32.const 12)
-                                                        )
-                                                      )
-                                                    )
-                                                    (get_local $6)
-                                                  )
-                                                  (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
+                    (i32.le_u
+                      (tee_local $1
+                        (i32.load
+                          (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.gt_u
-                        (tee_local $15
-                          (i32.add
-                            (get_local $3)
-                            (i32.load offset=4
-                              (get_local $28)
-                            )
-                          )
-                        )
-                        (get_local $13)
-                      )
-                      (i32.const 0)
+                      (get_local $12)
                     )
-                    (block
-                      (set_local $5
-                        (get_local $15)
-                      )
-                      (br $while-out$71)
-                    )
+                    (i32.const 0)
                   )
-                  (set_local $28
-                    (i32.load offset=8
-                      (get_local $28)
-                    )
+                  (set_local $0
+                    (get_local $15)
                   )
-                  (br $while-in$72)
+                  (block
+                    (set_local $28
+                      (i32.load offset=8
+                        (get_local $28)
+                      )
+                    )
+                    (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)
-                      )
                     )
-                    (if
-                      (tee_local $11
-                        (i32.load
-                          (tee_local $5
-                            (i32.add
-                              (get_local $1)
-                              (i32.const 16)
-                            )
+                    (block
+                      (set_local $1
+                        (get_local $10)
+                      )
+                      (set_local $3
+                        (get_local $6)
+                      )
+                      (br $while-in$5)
+                    )
+                  )
+                  (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)
-                          )
                         )
-                        (if
-                          (tee_local $11
-                            (i32.load
-                              (tee_local $1
-                                (i32.add
-                                  (get_local $0)
-                                  (i32.const 16)
-                                )
+                        (block
+                          (set_local $0
+                            (get_local $10)
+                          )
+                          (set_local $3
+                            (get_local $1)
+                          )
+                          (br $while-in$13)
+                        )
+                      )
+                      (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)
-                            )
-                          )
-                          (br $while-out$12)
                         )
-                        (br $while-in$13)
+                        (block
+                          (set_local $0
+                            (get_local $10)
+                          )
+                          (set_local $3
+                            (get_local $1)
+                          )
+                          (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)
-              )
-              (block
-                (i32.store
-                  (get_local $9)
-                  (i32.add
-                    (i32.load
-                      (get_local $9)
-                    )
-                    (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)
-                )
-                (get_local $5)
+                (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.le_u
                   (get_local $6)
-                  (get_local $5)
+                  (tee_local $14
+                    (i32.load offset=4
+                      (get_local $5)
+                    )
+                  )
+                )
+                (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)
+                  )
+                )
+                (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 $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)
                 )
-              )
-              (i32.load offset=12
-                (get_local $4)
+                (get_local $6)
               )
             )
-          )
-        )
-        (i32.store
-          (get_local $7)
-          (i32.add
-            (i32.load
-              (get_local $7)
+            (i32.store offset=4
+              (get_local $3)
+              (i32.sub
+                (get_local $5)
+                (get_local $6)
+              )
             )
-            (get_local $6)
+            (set_local $5
+              (get_local $3)
+            )
+            (set_local $3
+              (get_local $9)
+            )
+            (br $while-in$1)
           )
         )
-        (i32.store offset=4
-          (get_local $7)
-          (i32.sub
-            (get_local $3)
-            (get_local $6)
-          )
-        )
-        (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)
-                        )
-                        (set_local $3
-                          (get_local $7)
-                        )
+                        (i32.const 10)
                       )
-                      (br $while-in$3)
+                      (block
+                        (set_local $3
+                          (get_local $6)
+                        )
+                        (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)
+                      (i32.const -1)
                     )
+                    (call $___lockfile
+                      (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)
-                        )
+                )
+                (set_local $2
+                  (if
+                    (i32.gt_u
+                      (i32.load offset=20
+                        (get_local $1)
                       )
-                      (i32.or
-                        (call $___fflush_unlocked
-                          (get_local $1)
-                        )
-                        (get_local $2)
+                      (i32.load offset=28
+                        (get_local $1)
+                      )
+                    )
+                    (i32.or
+                      (call $___fflush_unlocked
+                        (get_local $1)
                       )
                       (get_local $2)
                     )
+                    (get_local $2)
                   )
-                  (if
-                    (get_local $0)
-                    (call $___unlockfile
+                )
+                (if
+                  (get_local $0)
+                  (call $___unlockfile
+                    (get_local $1)
+                  )
+                )
+                (br_if $while-in$3
+                  (tee_local $1
+                    (i32.load offset=56
                       (get_local $1)
                     )
                   )
-                  (if
-                    (i32.eqz
-                      (tee_local $1
-                        (i32.load offset=56
-                          (get_local $1)
-                        )
-                      )
-                    )
-                    (block
-                      (set_local $0
-                        (get_local $2)
-                      )
-                      (br $while-out$2)
-                    )
-                  )
-                  (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)
-                  )
-                )
-                (block
-                  (set_local $5
-                    (get_local $4)
-                  )
-                  (br $label$break$L1)
+            (if
+              (i32.eqz
+                (i32.load8_s
+                  (get_local $0)
                 )
               )
-              (if
-                (i32.eqz
-                  (i32.and
-                    (tee_local $4
-                      (tee_local $0
-                        (i32.add
-                          (get_local $0)
-                          (i32.const 1)
-                        )
-                      )
+              (block
+                (set_local $5
+                  (get_local $4)
+                )
+                (br $label$break$L1)
+              )
+            )
+            (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)
               )
-              (br $while-in$2)
+            )
+            (block
+              (set_local $1
+                (get_local $0)
+              )
+              (set_local $2
+                (i32.const 4)
+              )
             )
           )
         )
         (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.const -2139062144)
+              )
+              (i32.add
+                (get_local $1)
+                (i32.const -16843009)
+              )
+            )
+            (set_local $0
+              (get_local $2)
+            )
+            (block
+              (set_local $2
                 (i32.add
                   (get_local $2)
-                  (i32.const -16843009)
-                )
-              )
-              (br $while-out$3)
-              (set_local $1
-                (i32.add
-                  (get_local $1)
                   (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)
-                  )
-                  (br $while-out$5)
                 )
-                (br $while-in$6)
+                (block
+                  (set_local $1
+                    (get_local $0)
+                  )
+                  (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)
-                )
-                (i32.const 7)
+          (drop
+            (call_indirect $FUNCSIG$iiii
+              (get_local $0)
+              (i32.sub
+                (get_local $4)
+                (get_local $6)
               )
-              (i32.const 2)
+              (i32.const 1)
+              (i32.add
+                (i32.and
+                  (i32.load offset=40
+                    (get_local $0)
+                  )
+                  (i32.const 7)
+                )
+                (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)
-              )
+          (if
+            (i32.ge_s
+              (get_local $2)
+              (i32.const 4)
             )
-            (i32.store
-              (get_local $0)
-              (i32.load
-                (get_local $1)
-              )
-            )
-            (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)
-          )
+      (if
+        (i32.gt_s
+          (get_local $2)
+          (i32.const 0)
         )
-        (i32.store8
-          (get_local $0)
-          (i32.load8_s
-            (get_local $1)
-          )
-        )
-        (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 fbcc3c4..e0f3404 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)
-                              )
                             )
-                            (if
-                              (tee_local $19
-                                (i32.load
-                                  (tee_local $16
-                                    (i32.add
-                                      (get_local $8)
-                                      (i32.const 16)
-                                    )
+                            (block
+                              (set_local $17
+                                (get_local $13)
+                              )
+                              (set_local $9
+                                (get_local $3)
+                              )
+                              (br $while-in$11)
+                            )
+                          )
+                          (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)
-                                )
-                              )
-                              (br $while-out$10)
                             )
-                            (br $while-in$11)
+                            (block
+                              (set_local $17
+                                (get_local $13)
+                              )
+                              (set_local $9
+                                (get_local $3)
+                              )
+                              (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 $9)
-                            )
-                            (if
-                              (i32.eq
-                                (get_local $18)
                                 (get_local $2)
                               )
-                              (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)
+                            )
+                            (get_local $6)
+                          )
+                          (if
+                            (i32.eq
+                              (get_local $19)
+                              (get_local $2)
+                            )
+                            (block
+                              (set_local $27
+                                (get_local $3)
                               )
-                              (block
-                                (set_local $9
-                                  (get_local $5)
-                                )
-                                (set_local $4
-                                  (get_local $19)
-                                )
+                              (set_local $25
+                                (get_local $13)
+                              )
+                              (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)
+                                        (get_local $13)
+                                        (i32.const 16)
+                                      )
+                                      (i32.shl
+                                        (i32.shr_u
+                                          (get_local $0)
+                                          (i32.const 31)
                                         )
-                                        (i32.shl
-                                          (i32.shr_u
-                                            (get_local $1)
-                                            (i32.const 31)
-                                          )
-                                          (i32.const 2)
-                                        )
+                                        (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)
                         )
-                        (block
-                          (set_local $27
-                            (get_local $5)
-                          )
-                          (set_local $29
-                            (get_local $4)
-                          )
+                        (set_local $29
+                          (get_local $7)
                         )
-                        (block
-                          (set_local $6
-                            (get_local $5)
-                          )
-                          (set_local $12
-                            (get_local $4)
-                          )
-                          (br $while-out$19)
+                        (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)
-                                )
                               )
-                              (if
-                                (tee_local $16
-                                  (i32.load
-                                    (tee_local $0
-                                      (i32.add
-                                        (get_local $8)
-                                        (i32.const 16)
-                                      )
+                              (block
+                                (set_local $17
+                                  (get_local $3)
+                                )
+                                (set_local $0
+                                  (get_local $8)
+                                )
+                                (br $while-in$24)
+                              )
+                            )
+                            (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)
-                                  )
-                                )
-                                (br $while-out$23)
                               )
-                              (br $while-in$24)
+                              (block
+                                (set_local $17
+                                  (get_local $3)
+                                )
+                                (set_local $0
+                                  (get_local $8)
+                                )
+                                (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)
-                              )
-                              (i32.store
-                                (get_local $7)
+                                (get_local $3)
                                 (get_local $0)
                               )
-                              (set_local $11
-                                (get_local $1)
+                              (i32.store
+                                (get_local $16)
+                                (get_local $8)
+                              )
+                              (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)
-                                  )
-                                  (i32.store offset=8
-                                    (get_local $4)
+                                    (get_local $0)
                                     (get_local $7)
                                   )
+                                  (i32.store offset=8
+                                    (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)
-                                      )
+                                (br_if $while-in$38
+                                  (tee_local $14
+                                    (i32.load offset=8
+                                      (get_local $14)
                                     )
                                   )
-                                  (block
-                                    (set_local $9
-                                      (i32.const 173)
-                                    )
-                                    (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)
+                        (get_local $1)
                       )
-                      (set_local $50
-                        (get_local $3)
-                      )
-                      (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)
-                                                      )
                                                     )
-                                                    (if
-                                                      (tee_local $8
-                                                        (i32.load
-                                                          (tee_local $2
-                                                            (i32.add
-                                                              (get_local $14)
-                                                              (i32.const 16)
-                                                            )
+                                                    (block
+                                                      (set_local $14
+                                                        (get_local $3)
+                                                      )
+                                                      (set_local $9
+                                                        (get_local $2)
+                                                      )
+                                                      (br $while-in$56)
+                                                    )
+                                                  )
+                                                  (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)
-                                                        )
-                                                      )
-                                                      (br $while-out$55)
                                                     )
-                                                    (br $while-in$56)
+                                                    (block
+                                                      (set_local $14
+                                                        (get_local $3)
+                                                      )
+                                                      (set_local $9
+                                                        (get_local $2)
+                                                      )
+                                                      (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,7 +4176,21 @@
                                                   (i32.lt_u
                                                     (tee_local $2
                                                       (i32.load offset=8
-                                                        (get_local $6)
+                                                        (get_local $4)
+                                                      )
+                                                    )
+                                                    (get_local $17)
+                                                  )
+                                                  (call_import $_abort)
+                                                )
+                                                (if
+                                                  (i32.ne
+                                                    (i32.load
+                                                      (tee_local $3
+                                                        (i32.add
+                                                          (get_local $2)
+                                                          (i32.const 12)
+                                                        )
                                                       )
                                                     )
                                                     (get_local $4)
@@ -4224,38 +4198,24 @@
                                                   (call_import $_abort)
                                                 )
                                                 (if
-                                                  (i32.ne
-                                                    (i32.load
-                                                      (tee_local $8
-                                                        (i32.add
-                                                          (get_local $2)
-                                                          (i32.const 12)
-                                                        )
-                                                      )
-                                                    )
-                                                    (get_local $6)
-                                                  )
-                                                  (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
+                    (i32.le_u
+                      (tee_local $1
+                        (i32.load
+                          (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.gt_u
-                        (tee_local $15
-                          (i32.add
-                            (get_local $3)
-                            (i32.load offset=4
-                              (get_local $28)
-                            )
-                          )
-                        )
-                        (get_local $13)
-                      )
-                      (i32.const 0)
+                      (get_local $12)
                     )
-                    (block
-                      (set_local $5
-                        (get_local $15)
-                      )
-                      (br $while-out$71)
-                    )
+                    (i32.const 0)
                   )
-                  (set_local $28
-                    (i32.load offset=8
-                      (get_local $28)
-                    )
+                  (set_local $0
+                    (get_local $15)
                   )
-                  (br $while-in$72)
+                  (block
+                    (set_local $28
+                      (i32.load offset=8
+                        (get_local $28)
+                      )
+                    )
+                    (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)
-                      )
                     )
-                    (if
-                      (tee_local $11
-                        (i32.load
-                          (tee_local $5
-                            (i32.add
-                              (get_local $1)
-                              (i32.const 16)
-                            )
+                    (block
+                      (set_local $1
+                        (get_local $10)
+                      )
+                      (set_local $3
+                        (get_local $6)
+                      )
+                      (br $while-in$5)
+                    )
+                  )
+                  (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)
-                          )
                         )
-                        (if
-                          (tee_local $11
-                            (i32.load
-                              (tee_local $1
-                                (i32.add
-                                  (get_local $0)
-                                  (i32.const 16)
-                                )
+                        (block
+                          (set_local $0
+                            (get_local $10)
+                          )
+                          (set_local $3
+                            (get_local $1)
+                          )
+                          (br $while-in$13)
+                        )
+                      )
+                      (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)
-                            )
-                          )
-                          (br $while-out$12)
                         )
-                        (br $while-in$13)
+                        (block
+                          (set_local $0
+                            (get_local $10)
+                          )
+                          (set_local $3
+                            (get_local $1)
+                          )
+                          (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)
-              )
-              (block
-                (i32.store
-                  (get_local $9)
-                  (i32.add
-                    (i32.load
-                      (get_local $9)
-                    )
-                    (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)
-                )
-                (get_local $5)
+                (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.le_u
                   (get_local $6)
-                  (get_local $5)
+                  (tee_local $14
+                    (i32.load offset=4
+                      (get_local $5)
+                    )
+                  )
+                )
+                (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)
+                  )
+                )
+                (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 $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)
                 )
-              )
-              (i32.load offset=12
-                (get_local $4)
+                (get_local $6)
               )
             )
-          )
-        )
-        (i32.store
-          (get_local $7)
-          (i32.add
-            (i32.load
-              (get_local $7)
+            (i32.store offset=4
+              (get_local $3)
+              (i32.sub
+                (get_local $5)
+                (get_local $6)
+              )
             )
-            (get_local $6)
+            (set_local $5
+              (get_local $3)
+            )
+            (set_local $3
+              (get_local $9)
+            )
+            (br $while-in$1)
           )
         )
-        (i32.store offset=4
-          (get_local $7)
-          (i32.sub
-            (get_local $3)
-            (get_local $6)
-          )
-        )
-        (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)
-                        )
-                        (set_local $3
-                          (get_local $7)
-                        )
+                        (i32.const 10)
                       )
-                      (br $while-in$3)
+                      (block
+                        (set_local $3
+                          (get_local $6)
+                        )
+                        (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)
+                      (i32.const -1)
                     )
+                    (call $___lockfile
+                      (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)
-                        )
+                )
+                (set_local $2
+                  (if
+                    (i32.gt_u
+                      (i32.load offset=20
+                        (get_local $1)
                       )
-                      (i32.or
-                        (call $___fflush_unlocked
-                          (get_local $1)
-                        )
-                        (get_local $2)
+                      (i32.load offset=28
+                        (get_local $1)
+                      )
+                    )
+                    (i32.or
+                      (call $___fflush_unlocked
+                        (get_local $1)
                       )
                       (get_local $2)
                     )
+                    (get_local $2)
                   )
-                  (if
-                    (get_local $0)
-                    (call $___unlockfile
+                )
+                (if
+                  (get_local $0)
+                  (call $___unlockfile
+                    (get_local $1)
+                  )
+                )
+                (br_if $while-in$3
+                  (tee_local $1
+                    (i32.load offset=56
                       (get_local $1)
                     )
                   )
-                  (if
-                    (i32.eqz
-                      (tee_local $1
-                        (i32.load offset=56
-                          (get_local $1)
-                        )
-                      )
-                    )
-                    (block
-                      (set_local $0
-                        (get_local $2)
-                      )
-                      (br $while-out$2)
-                    )
-                  )
-                  (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)
-                  )
-                )
-                (block
-                  (set_local $5
-                    (get_local $4)
-                  )
-                  (br $label$break$L1)
+            (if
+              (i32.eqz
+                (i32.load8_s
+                  (get_local $0)
                 )
               )
-              (if
-                (i32.eqz
-                  (i32.and
-                    (tee_local $4
-                      (tee_local $0
-                        (i32.add
-                          (get_local $0)
-                          (i32.const 1)
-                        )
-                      )
+              (block
+                (set_local $5
+                  (get_local $4)
+                )
+                (br $label$break$L1)
+              )
+            )
+            (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)
               )
-              (br $while-in$2)
+            )
+            (block
+              (set_local $1
+                (get_local $0)
+              )
+              (set_local $2
+                (i32.const 4)
+              )
             )
           )
         )
         (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.const -2139062144)
+              )
+              (i32.add
+                (get_local $1)
+                (i32.const -16843009)
+              )
+            )
+            (set_local $0
+              (get_local $2)
+            )
+            (block
+              (set_local $2
                 (i32.add
                   (get_local $2)
-                  (i32.const -16843009)
-                )
-              )
-              (br $while-out$3)
-              (set_local $1
-                (i32.add
-                  (get_local $1)
                   (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)
-                  )
-                  (br $while-out$5)
                 )
-                (br $while-in$6)
+                (block
+                  (set_local $1
+                    (get_local $0)
+                  )
+                  (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)
-                )
-                (i32.const 7)
+          (drop
+            (call_indirect $FUNCSIG$iiii
+              (get_local $0)
+              (i32.sub
+                (get_local $4)
+                (get_local $6)
               )
-              (i32.const 2)
+              (i32.const 1)
+              (i32.add
+                (i32.and
+                  (i32.load offset=40
+                    (get_local $0)
+                  )
+                  (i32.const 7)
+                )
+                (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)
-              )
+          (if
+            (i32.ge_s
+              (get_local $2)
+              (i32.const 4)
             )
-            (i32.store
-              (get_local $0)
-              (i32.load
-                (get_local $1)
-              )
-            )
-            (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)
-          )
+      (if
+        (i32.gt_s
+          (get_local $2)
+          (i32.const 0)
         )
-        (i32.store8
-          (get_local $0)
-          (i32.load8_s
-            (get_local $1)
-          )
-        )
-        (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 b125481..d158d27 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)
-                  )
-                )
-                (i32.const 7)
+          (drop
+            (call_indirect $FUNCSIG$iiii
+              (get_local $i1)
+              (i32.sub
+                (get_local $i6)
+                (get_local $i8)
               )
-              (i32.const 2)
+              (i32.const 1)
+              (i32.add
+                (i32.and
+                  (i32.load
+                    (i32.add
+                      (get_local $i1)
+                      (i32.const 40)
+                    )
+                  )
+                  (i32.const 7)
+                )
+                (i32.const 2)
+              )
             )
           )
         )
diff --git a/test/emcc_O2_hello_world.fromasm.no-opts b/test/emcc_O2_hello_world.fromasm.no-opts
index 4acb5bc..618b0f5 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)
-                  )
-                )
-                (i32.const 7)
+          (drop
+            (call_indirect $FUNCSIG$iiii
+              (get_local $i1)
+              (i32.sub
+                (get_local $i6)
+                (get_local $i8)
               )
-              (i32.const 2)
+              (i32.const 1)
+              (i32.add
+                (i32.and
+                  (i32.load
+                    (i32.add
+                      (get_local $i1)
+                      (i32.const 40)
+                    )
+                  )
+                  (i32.const 7)
+                )
+                (i32.const 2)
+              )
             )
           )
         )
diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm
index 7cb00db..a4bf51c 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)
             )
-            (get_local $0)
           )
-          (block
-            (set_local $4
-              (get_local $1)
-            )
-            (set_local $0
-              (i32.const 2)
-            )
-            (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)
-                )
+        (loop $while-in$5
+          (set_local $0
+            (i32.add
+              (get_local $2)
+              (i32.const 1)
+            )
+          )
+          (if
+            (i32.load8_s
+              (get_local $2)
+            )
+            (block
+              (set_local $2
+                (get_local $0)
               )
               (br $while-in$5)
             )
           )
-          (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)
-            )
-            (block
-              (set_local $3
-                (get_local $0)
-              )
-              (set_local $2
-                (get_local $1)
-              )
+        )
+        (if
+          (tee_local $3
+            (i32.add
+              (get_local $3)
+              (i32.const -1)
             )
           )
-          (br $while-in$3)
+          (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,116 +696,7 @@
     (local $2 i32)
     (block $do-once$0
       (if
-        (i32.eq
-          (get_local $0)
-          (i32.const 0)
-        )
-        (block
-          (set_local $0
-            (if
-              (i32.eq
-                (i32.load
-                  (i32.const 12)
-                )
-                (i32.const 0)
-              )
-              (i32.const 0)
-              (call $_fflush
-                (i32.load
-                  (i32.const 12)
-                )
-              )
-            )
-          )
-          (call_import $___lock
-            (i32.const 44)
-          )
-          (if
-            (i32.ne
-              (tee_local $1
-                (i32.load
-                  (i32.const 40)
-                )
-              )
-              (i32.const 0)
-            )
-            (block
-              (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)
-                    )
-                  )
-                  (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)
-                    )
-                  )
-                  (if
-                    (i32.ne
-                      (get_local $0)
-                      (i32.const 0)
-                    )
-                    (call $___unlockfile
-                      (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)
-                    )
-                  )
-                  (br $while-in$3)
-                )
-              )
-            )
-          )
-          (call_import $___unlock
-            (i32.const 44)
-          )
-          (get_local $0)
-        )
+        (get_local $0)
         (block
           (if
             (i32.le_s
@@ -872,11 +712,10 @@
             )
           )
           (set_local $2
-            (i32.eq
+            (i32.eqz
               (call $___lockfile
                 (get_local $0)
               )
-              (i32.const 0)
             )
           )
           (set_local $1
@@ -895,6 +734,83 @@
             )
           )
         )
+        (block
+          (set_local $0
+            (if
+              (i32.load
+                (i32.const 12)
+              )
+              (call $_fflush
+                (i32.load
+                  (i32.const 12)
+                )
+              )
+              (i32.const 0)
+            )
+          )
+          (call_import $___lock
+            (i32.const 44)
+          )
+          (if
+            (tee_local $1
+              (i32.load
+                (i32.const 40)
+              )
+            )
+            (loop $while-in$3
+              (set_local $2
+                (if
+                  (i32.gt_s
+                    (i32.load offset=76
+                      (get_local $1)
+                    )
+                    (i32.const -1)
+                  )
+                  (call $___lockfile
+                    (get_local $1)
+                  )
+                  (i32.const 0)
+                )
+              )
+              (set_local $0
+                (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 $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)
+                  )
+                )
+              )
+            )
+          )
+          (call_import $___unlock
+            (i32.const 44)
+          )
+          (get_local $0)
+        )
       )
     )
   )
@@ -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)
-                  )
-                  (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
-                  (call_import $_pthread_cleanup_push
-                    (i32.const 5)
-                    (get_local $0)
-                  )
-                  (i32.store
-                    (get_local $10)
-                    (i32.load
-                      (get_local $12)
-                    )
-                  )
-                  (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)
-                        (get_local $10)
+                  (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)
+                          )
+                        )
                       )
                     )
                   )
-                  (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
+              (br_if $jumpthreading$inner$1
+                (i32.lt_s
                   (get_local $5)
-                  (get_local $1)
+                  (i32.const 0)
                 )
               )
-              (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
+                (set_local $11
+                  (i32.sub
+                    (get_local $11)
+                    (get_local $5)
+                  )
+                )
+                (set_local $1
+                  (if
+                    (i32.gt_u
+                      (get_local $5)
+                      (tee_local $12
+                        (i32.load offset=4
+                          (get_local $1)
+                        )
+                      )
+                    )
+                    (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)
+                      )
+                    )
+                  )
+                )
                 (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)
-              )
-              (block
-                (set_local $3
-                  (get_local $4)
-                )
-                (get_local $1)
+                (br $while-in$1)
               )
             )
           )
-        )
-        (i32.store
-          (get_local $3)
-          (i32.add
-            (i32.load
-              (get_local $3)
-            )
-            (get_local $5)
-          )
-        )
-        (i32.store offset=4
-          (get_local $3)
-          (i32.sub
-            (get_local $1)
-            (get_local $5)
-          )
-        )
-        (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.store
-          (get_local $7)
-          (get_local $1)
-        )
-        (i32.store
-          (get_local $11)
-          (get_local $1)
-        )
-        (set_local $14
-          (get_local $2)
-        )
-      )
-      (if
-        (i32.eq
-          (get_local $1)
-          (i32.const 8)
-        )
-        (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)
-            )
-          )
-          (set_local $14
-            (select
-              (i32.const 0)
-              (i32.sub
-                (get_local $2)
-                (i32.load offset=4
-                  (get_local $15)
+            (i32.add
+              (tee_local $1
+                (i32.load
+                  (get_local $14)
                 )
               )
-              (i32.eq
-                (get_local $16)
-                (i32.const 2)
+              (i32.load offset=48
+                (get_local $0)
               )
             )
           )
+          (i32.store
+            (get_local $6)
+            (tee_local $0
+              (get_local $1)
+            )
+          )
+          (i32.store
+            (get_local $10)
+            (get_local $0)
+          )
+          (br $jumpthreading$outer$1
+            (get_local $2)
+          )
+        )
+        (i32.store offset=16
+          (get_local $0)
+          (i32.const 0)
+        )
+        (i32.store
+          (get_local $6)
+          (i32.const 0)
+        )
+        (i32.store
+          (get_local $10)
+          (i32.const 0)
+        )
+        (i32.store
+          (get_local $0)
+          (i32.or
+            (i32.load
+              (get_local $0)
+            )
+            (i32.const 32)
+          )
+        )
+        (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
+    (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)
+                )
+              )
+            )
+          )
+        )
+        (if
+          (call $___towrite
+            (get_local $2)
+          )
+          (set_local $3
+            (i32.const 0)
+          )
+          (block
+            (set_local $3
+              (i32.load
+                (get_local $4)
+              )
+            )
+            (br $jumpthreading$inner$0)
+          )
+        )
+        (br $label$break$L5)
+      )
+      (set_local $6
+        (tee_local $4
           (i32.load
             (tee_local $5
               (i32.add
                 (get_local $2)
-                (i32.const 16)
+                (i32.const 20)
               )
             )
           )
         )
-        (i32.const 0)
       )
       (if
-        (i32.eq
-          (call $___towrite
-            (get_local $2)
-          )
-          (i32.const 0)
-        )
-        (block
-          (set_local $3
-            (i32.load
-              (get_local $5)
-            )
-          )
-          (set_local $7
-            (i32.const 5)
-          )
-        )
-        (set_local $4
-          (i32.const 0)
-        )
-      )
-      (block
-        (set_local $3
-          (get_local $6)
-        )
-        (set_local $7
-          (i32.const 5)
-        )
-      )
-    )
-    (block $label$break$L5
-      (if
-        (i32.eq
-          (get_local $7)
-          (i32.const 5)
-        )
-        (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)
-                      )
-                    )
-                  )
-                )
-              )
-              (get_local $1)
-            )
-          )
-          (if
+        (i32.lt_u
+          (i32.sub
             (get_local $3)
-            (block
-              (set_local $4
-                (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)
-                  )
-                )
-              )
-              (br $label$break$L5)
-            )
+            (get_local $4)
           )
-          (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)
-                    )
-                    (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)
-                      )
-                    )
-                    (if
-                      (i32.lt_u
-                        (call_indirect $FUNCSIG$iiii
-                          (get_local $2)
-                          (get_local $0)
-                          (get_local $3)
-                          (i32.add
-                            (i32.and
-                              (i32.load offset=36
-                                (get_local $2)
-                              )
-                              (i32.const 7)
-                            )
-                            (i32.const 2)
-                          )
-                        )
-                        (get_local $3)
-                      )
-                      (block
-                        (set_local $4
-                          (get_local $3)
-                        )
-                        (br $label$break$L5)
-                      )
-                    )
-                    (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)
-                    )
-                  )
-                  (block
-                    (set_local $2
-                      (i32.const 0)
-                    )
-                    (get_local $6)
-                  )
-                )
-              )
+          (get_local $1)
+        )
+        (block
+          (set_local $3
+            (call_indirect $FUNCSIG$iiii
+              (get_local $2)
               (get_local $0)
               (get_local $1)
-            )
-          )
-          (i32.store
-            (get_local $5)
-            (i32.add
-              (i32.load
-                (get_local $5)
+              (i32.add
+                (i32.and
+                  (i32.load offset=36
+                    (get_local $2)
+                  )
+                  (i32.const 7)
+                )
+                (i32.const 2)
               )
-              (get_local $1)
             )
           )
-          (set_local $4
-            (i32.add
-              (get_local $2)
-              (get_local $1)
+          (br $label$break$L5)
+        )
+      )
+      (drop
+        (call $_memcpy
+          (block $label$break$L10
+            (if
+              (i32.gt_s
+                (i32.load8_s offset=75
+                  (get_local $2)
+                )
+                (i32.const -1)
+              )
+              (block
+                (set_local $3
+                  (get_local $1)
+                )
+                (loop $while-in$3
+                  (if
+                    (i32.eqz
+                      (get_local $3)
+                    )
+                    (block
+                      (set_local $2
+                        (i32.const 0)
+                      )
+                      (br $label$break$L10
+                        (get_local $6)
+                      )
+                    )
+                  )
+                  (if
+                    (i32.ne
+                      (i32.load8_s
+                        (i32.add
+                          (get_local $0)
+                          (tee_local $4
+                            (i32.add
+                              (get_local $3)
+                              (i32.const -1)
+                            )
+                          )
+                        )
+                      )
+                      (i32.const 10)
+                    )
+                    (block
+                      (set_local $3
+                        (get_local $4)
+                      )
+                      (br $while-in$3)
+                    )
+                  )
+                )
+                (br_if $label$break$L5
+                  (i32.lt_u
+                    (call_indirect $FUNCSIG$iiii
+                      (get_local $2)
+                      (get_local $0)
+                      (get_local $3)
+                      (i32.add
+                        (i32.and
+                          (i32.load offset=36
+                            (get_local $2)
+                          )
+                          (i32.const 7)
+                        )
+                        (i32.const 2)
+                      )
+                    )
+                    (get_local $3)
+                  )
+                )
+                (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)
+                )
+              )
+              (block
+                (set_local $2
+                  (i32.const 0)
+                )
+                (get_local $6)
+              )
             )
           )
+          (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
+    (block $label$break$L8
+      (block $jumpthreading$inner$2
+        (block $jumpthreading$inner$1
+          (if
             (i32.and
-              (get_local $0)
-              (i32.const 3)
+              (tee_local $3
+                (i32.ne
+                  (get_local $2)
+                  (i32.const 0)
+                )
+              )
+              (i32.ne
+                (i32.and
+                  (get_local $0)
+                  (i32.const 3)
+                )
+                (i32.const 0)
+              )
             )
-            (i32.const 0)
-          )
-        )
-        (block
-          (set_local $6
-            (i32.and
-              (get_local $1)
-              (i32.const 255)
-            )
-          )
-          (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)
+            (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.shr_s
+                      (i32.shl
+                        (get_local $4)
+                        (i32.const 24)
                       )
                       (i32.const 24)
                     )
-                    (i32.const 24)
-                  )
-                  (i32.shr_s
-                    (i32.shl
-                      (get_local $6)
-                      (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.ne
+                      (i32.and
+                        (tee_local $0
+                          (i32.add
+                            (get_local $0)
+                            (i32.const 1)
+                          )
+                        )
+                        (i32.const 3)
                       )
                       (i32.const 0)
                     )
                   )
-                  (i32.ne
-                    (i32.and
-                      (tee_local $2
-                        (i32.add
-                          (get_local $2)
-                          (i32.const 1)
-                        )
-                      )
-                      (i32.const 3)
-                    )
-                    (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)
-          )
+        (br_if $jumpthreading$inner$2
+          (get_local $3)
         )
-      )
-    )
-    (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)
-          )
+        (set_local $1
+          (i32.const 0)
         )
-        (block
-          (set_local $7
-            (i32.const 0)
-          )
-          (set_local $8
-            (get_local $11)
-          )
-        )
+        (br $label$break$L8)
       )
-    )
-    (block $label$break$L8
       (if
         (i32.eq
-          (get_local $3)
-          (i32.const 6)
+          (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)
+          )
         )
-        (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.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)
+                (loop $while-in$6
+                  (block $while-out$5
+                    (if
+                      (i32.and
+                        (i32.xor
+                          (i32.and
+                            (tee_local $1
+                              (i32.xor
+                                (i32.load
+                                  (get_local $0)
+                                )
+                                (get_local $3)
                               )
-                              (get_local $2)
                             )
+                            (i32.const -2139062144)
                           )
+                          (i32.const -2139062144)
+                        )
+                        (i32.add
+                          (get_local $1)
                           (i32.const -16843009)
                         )
                       )
-                      (br_if $while-out$5
-                        (i32.ne
-                          (i32.and
-                            (i32.xor
-                              (i32.and
-                                (get_local $6)
-                                (i32.const -2139062144)
-                              )
-                              (i32.const -2139062144)
-                            )
-                            (get_local $1)
-                          )
-                          (i32.const 0)
+                      (block
+                        (set_local $1
+                          (get_local $2)
                         )
+                        (br $while-out$5)
                       )
-                      (set_local $1
-                        (i32.add
-                          (get_local $5)
-                          (i32.const 4)
-                        )
+                    )
+                    (set_local $0
+                      (i32.add
+                        (get_local $0)
+                        (i32.const 4)
                       )
-                      (if
-                        (i32.gt_u
-                          (tee_local $4
-                            (i32.add
-                              (get_local $4)
-                              (i32.const -4)
-                            )
+                    )
+                    (br_if $jumpthreading$inner$0
+                      (i32.le_u
+                        (tee_local $1
+                          (i32.add
+                            (get_local $2)
+                            (i32.const -4)
                           )
-                          (i32.const 3)
                         )
-                        (set_local $5
-                          (get_local $1)
-                        )
-                        (block
-                          (set_local $12
-                            (get_local $4)
-                          )
-                          (set_local $13
-                            (get_local $1)
-                          )
-                          (set_local $3
-                            (i32.const 11)
-                          )
-                          (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 $1
+                    (get_local $2)
                   )
-                  (set_local $13
-                    (get_local $5)
-                  )
-                  (set_local $3
-                    (i32.const 11)
-                  )
+                  (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)
+                (br $label$break$L8)
+              )
+            )
+          )
+          (loop $while-in$8
+            (br_if $label$break$L8
+              (i32.eq
+                (i32.load8_s
+                  (get_local $0)
                 )
-                (block
-                  (set_local $10
-                    (get_local $12)
+                (i32.shr_s
+                  (i32.shl
+                    (get_local $4)
+                    (i32.const 24)
                   )
-                  (set_local $9
-                    (get_local $13)
-                  )
+                  (i32.const 24)
                 )
               )
             )
-            (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)
-                  )
-                )
-                (set_local $2
-                  (i32.add
-                    (get_local $9)
-                    (i32.const 1)
-                  )
-                )
-                (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)
-                    )
-                  )
-                )
-                (br $while-in$8)
+            (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)
+                )
+              )
+            )
+            (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 $2
+                (i32.add
+                  (get_local $0)
+                  (i32.const 28)
+                )
+              )
             )
           )
         )
-        (i32.load
-          (tee_local $4
-            (i32.add
-              (get_local $0)
-              (i32.const 28)
-            )
-          )
-        )
-      )
-      (block
         (drop
           (call_indirect $FUNCSIG$iiii
             (get_local $0)
@@ -2684,108 +2312,87 @@
             )
           )
         )
-        (if
-          (i32.eq
+        (br_if $jumpthreading$inner$0
+          (i32.load
+            (get_local $1)
+          )
+        )
+        (br $jumpthreading$outer$0
+          (i32.const -1)
+        )
+      )
+      (if
+        (i32.lt_u
+          (tee_local $4
             (i32.load
-              (get_local $3)
+              (tee_local $3
+                (i32.add
+                  (get_local $0)
+                  (i32.const 4)
+                )
+              )
             )
-            (i32.const 0)
           )
-          (set_local $1
-            (i32.const -1)
+          (tee_local $6
+            (i32.load
+              (tee_local $5
+                (i32.add
+                  (get_local $0)
+                  (i32.const 8)
+                )
+              )
+            )
           )
-          (set_local $2
-            (i32.const 3)
+        )
+        (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 2)
+            )
           )
         )
       )
-      (set_local $2
-        (i32.const 3)
+      (i32.store offset=16
+        (get_local $0)
+        (i32.const 0)
       )
-    )
-    (if
-      (i32.eq
+      (i32.store
         (get_local $2)
-        (i32.const 3)
+        (i32.const 0)
       )
-      (block
-        (if
-          (i32.lt_u
-            (tee_local $1
-              (i32.load
-                (tee_local $5
-                  (i32.add
-                    (get_local $0)
-                    (i32.const 4)
-                  )
-                )
-              )
-            )
-            (tee_local $2
-              (i32.load
-                (tee_local $6
-                  (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)
-                )
-                (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
+        (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 $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)
                 )
-              )
-              (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
+                (if
+                  (i32.gt_s
+                    (get_local $5)
                     (i32.sub
-                      (i32.shr_s
-                        (i32.shl
-                          (get_local $1)
-                          (i32.const 24)
-                        )
-                        (i32.const 24)
-                      )
-                      (i32.const 0)
+                      (i32.const 2147483647)
+                      (get_local $15)
                     )
                   )
-                )
-                (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
+                  (block
+                    (i32.store
+                      (call $___errno_location)
+                      (i32.const 75)
+                    )
+                    (i32.const -1)
+                  )
                   (i32.add
                     (get_local $5)
-                    (i32.const 1)
+                    (get_local $15)
                   )
                 )
+                (get_local $15)
               )
             )
-            (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)
-                )
-                (if
-                  (i32.ne
-                    (i32.shr_s
-                      (i32.shl
-                        (i32.load8_s offset=1
-                          (get_local $54)
-                        )
-                        (i32.const 24)
+            (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 37)
-                  )
-                  (block
-                    (set_local $41
-                      (get_local $54)
-                    )
-                    (set_local $55
-                      (get_local $65)
-                    )
-                    (br $label$break$L12)
-                  )
-                )
-                (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)
-                  )
-                )
-                (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)
-              )
-              (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)
-                            )
-                          )
-                        )
-                      )
-                      (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
+              (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
+                              (get_local $6)
+                              (i32.const 24)
+                            )
+                            (i32.const 24)
+                          )
+                          (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 $6
+                  (i32.load8_s
+                    (tee_local $5
                       (i32.add
-                        (get_local $41)
-                        (i32.const 3)
-                      )
-                      (get_local $5)
-                      (tee_local $7
-                        (i32.eq
-                          (i32.shr_s
-                            (i32.shl
-                              (i32.load8_s offset=2
-                                (get_local $41)
-                              )
-                              (i32.const 24)
-                            )
-                            (i32.const 24)
-                          )
-                          (i32.const 36)
-                        )
-                      )
-                    )
-                  )
-                )
-              )
-              (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)
-                    )
-                    (i32.const 24)
-                  )
-                )
-                (i32.const -32)
-              )
-              (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)
-                      )
-                      (i32.const 0)
-                    )
-                  )
-                  (set_local $8
-                    (i32.or
-                      (i32.shl
+                        (get_local $5)
                         (i32.const 1)
-                        (i32.add
-                          (i32.shr_s
-                            (i32.shl
-                              (get_local $1)
-                              (i32.const 24)
-                            )
-                            (i32.const 24)
-                          )
-                          (i32.const -32)
-                        )
                       )
-                      (get_local $8)
+                    )
+                  )
+                )
+                (br $label$continue$L9)
+              )
+            )
+            (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 37)
+                    )
+                    (block
+                      (set_local $29
+                        (get_local $39)
+                      )
+                      (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)
-            )
-          )
-        )
-        (block $do-once$12
-          (if
-            (i32.eq
-              (i32.shr_s
-                (i32.shl
-                  (get_local $1)
-                  (i32.const 24)
-                )
-                (i32.const 24)
+            (set_local $6
+              (i32.sub
+                (get_local $35)
+                (get_local $1)
               )
-              (i32.const 42)
             )
-            (block
+            (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)
+                  )
+                )
+              )
+            )
+            (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,409 +2827,331 @@
                   )
                   (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)
-                              )
-                              (i32.const -48)
-                            )
-                            (i32.const 3)
-                          )
-                        )
-                      )
-                    )
-                    (set_local $66
-                      (i32.const 1)
-                    )
-                    (set_local $67
-                      (i32.add
-                        (get_local $9)
-                        (i32.const 3)
-                      )
-                    )
-                    (set_local $56
-                      (get_local $1)
-                    )
-                  )
-                  (set_local $12
-                    (i32.const 24)
-                  )
-                )
-                (set_local $12
-                  (i32.const 24)
-                )
-              )
-              (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)
-                      )
-                      (br $label$break$L1)
-                    )
-                  )
-                  (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)
-                    )
-                  )
                   (set_local $5
-                    (i32.load
-                      (tee_local $1
-                        (i32.and
+                    (i32.load8_s
+                      (tee_local $10
+                        (select
                           (i32.add
-                            (i32.load
-                              (get_local $2)
-                            )
+                            (get_local $29)
                             (i32.const 3)
                           )
-                          (i32.const -4)
+                          (get_local $10)
+                          (tee_local $8
+                            (i32.eq
+                              (i32.load8_s offset=2
+                                (get_local $29)
+                              )
+                              (i32.const 36)
+                            )
+                          )
                         )
                       )
                     )
                   )
-                  (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
+                  (set_local $7
+                    (select
+                      (i32.const 1)
+                      (get_local $13)
                       (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)
-                    )
+                  (select
+                    (get_local $9)
+                    (i32.const -1)
                     (get_local $8)
                   )
                 )
+                (block
+                  (set_local $7
+                    (get_local $13)
+                  )
+                  (i32.const -1)
+                )
               )
             )
-            (if
-              (i32.lt_u
-                (tee_local $6
-                  (i32.add
-                    (i32.shr_s
-                      (i32.shl
-                        (get_local $1)
+            (block $label$break$L25
+              (if
+                (i32.eq
+                  (i32.and
+                    (tee_local $8
+                      (i32.shr_s
+                        (i32.shl
+                          (get_local $5)
+                          (i32.const 24)
+                        )
                         (i32.const 24)
                       )
-                      (i32.const 24)
                     )
-                    (i32.const -48)
+                    (i32.const -32)
                   )
+                  (i32.const 32)
                 )
-                (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)
-                        )
-                        (get_local $6)
-                      )
-                    )
-                    (br_if $while-out$14
-                      (i32.ge_u
-                        (tee_local $6
-                          (i32.add
-                            (i32.shr_s
-                              (i32.shl
-                                (i32.load8_s
-                                  (tee_local $1
-                                    (i32.add
-                                      (get_local $1)
-                                      (i32.const 1)
-                                    )
-                                  )
-                                )
-                                (i32.const 24)
-                              )
-                              (i32.const 24)
-                            )
-                            (i32.const -48)
-                          )
-                        )
-                        (i32.const 10)
-                      )
-                    )
-                    (br $while-in$15)
-                  )
-                )
-                (if
-                  (i32.lt_s
+                (block
+                  (set_local $13
                     (get_local $5)
+                  )
+                  (set_local $5
+                    (get_local $8)
+                  )
+                  (set_local $8
                     (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)
-                    )
-                  )
-                )
-              )
-              (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)
-                    )
-                    (i32.const 24)
-                  )
-                  (i32.const 24)
-                )
-                (i32.const 46)
-              )
-              (block
-                (if
-                  (i32.ne
-                    (i32.shr_s
-                      (i32.shl
-                        (tee_local $1
-                          (i32.load8_s
-                            (tee_local $5
-                              (i32.add
-                                (get_local $9)
-                                (i32.const 1)
-                              )
+                  (loop $while-in$11
+                    (if
+                      (i32.eqz
+                        (i32.and
+                          (i32.shl
+                            (i32.const 1)
+                            (i32.add
+                              (get_local $5)
+                              (i32.const -32)
                             )
                           )
+                          (i32.const 75913)
                         )
-                        (i32.const 24)
                       )
-                      (i32.const 24)
+                      (block
+                        (set_local $5
+                          (get_local $8)
+                        )
+                        (br $label$break$L25)
+                      )
                     )
-                    (i32.const 42)
-                  )
-                  (block
-                    (if
-                      (i32.lt_u
-                        (tee_local $6
+                    (set_local $8
+                      (i32.or
+                        (i32.shl
+                          (i32.const 1)
                           (i32.add
                             (i32.shr_s
                               (i32.shl
-                                (get_local $1)
+                                (get_local $13)
                                 (i32.const 24)
                               )
                               (i32.const 24)
                             )
-                            (i32.const -48)
+                            (i32.const -32)
                           )
                         )
-                        (i32.const 10)
-                      )
-                      (block
-                        (set_local $1
-                          (get_local $5)
-                        )
-                        (set_local $5
-                          (i32.const 0)
-                        )
-                      )
-                      (block
-                        (set_local $10
-                          (i32.const 0)
-                        )
-                        (br $label$break$L46
-                          (get_local $5)
-                        )
+                        (get_local $8)
                       )
                     )
-                    (loop $while-in$18
-                      (set_local $5
-                        (i32.add
-                          (i32.mul
-                            (get_local $5)
-                            (i32.const 10)
-                          )
-                          (get_local $6)
-                        )
-                      )
-                      (if
-                        (i32.ge_u
-                          (tee_local $6
-                            (i32.add
-                              (i32.shr_s
-                                (i32.shl
+                    (br_if $while-in$11
+                      (i32.eq
+                        (i32.and
+                          (tee_local $5
+                            (i32.shr_s
+                              (i32.shl
+                                (tee_local $13
                                   (i32.load8_s
-                                    (tee_local $1
+                                    (tee_local $10
                                       (i32.add
-                                        (get_local $1)
+                                        (get_local $10)
                                         (i32.const 1)
                                       )
                                     )
                                   )
-                                  (i32.const 24)
                                 )
                                 (i32.const 24)
                               )
-                              (i32.const -48)
+                              (i32.const 24)
+                            )
+                          )
+                          (i32.const -32)
+                        )
+                        (i32.const 32)
+                      )
+                    )
+                    (set_local $5
+                      (get_local $8)
+                    )
+                  )
+                )
+                (block
+                  (set_local $13
+                    (get_local $5)
+                  )
+                  (set_local $5
+                    (i32.const 0)
+                  )
+                )
+              )
+            )
+            (block $do-once$12
+              (if
+                (i32.eq
+                  (i32.shr_s
+                    (i32.shl
+                      (get_local $13)
+                      (i32.const 24)
+                    )
+                    (i32.const 24)
+                  )
+                  (i32.const 42)
+                )
+                (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
+                                (i32.load8_s
+                                  (tee_local $13
+                                    (i32.add
+                                      (get_local $10)
+                                      (i32.const 1)
+                                    )
+                                  )
+                                )
+                                (i32.const -48)
+                              )
+                            )
+                            (i32.const 10)
+                          )
+                        )
+                        (br_if $jumpthreading$inner$0
+                          (i32.ne
+                            (i32.load8_s offset=2
+                              (get_local $10)
+                            )
+                            (i32.const 36)
+                          )
+                        )
+                        (i32.store
+                          (i32.add
+                            (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 3)
+                            )
+                          )
+                        )
+                        (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)
+                        )
+                      )
+                      (set_local $28
+                        (i32.const 0)
+                      )
+                      (if
+                        (get_local $7)
                         (block
-                          (set_local $10
+                          (set_local $15
+                            (i32.const -1)
+                          )
+                          (br $label$break$L1)
+                        )
+                      )
+                      (if
+                        (i32.eqz
+                          (get_local $33)
+                        )
+                        (block
+                          (set_local $8
                             (get_local $5)
                           )
-                          (br $label$break$L46
-                            (get_local $1)
+                          (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)
+                            )
                           )
                         )
                       )
-                      (br $while-in$18)
+                      (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 $17
+                          (i32.sub
+                            (i32.const 0)
+                            (get_local $7)
+                          )
+                        )
+                        (i32.or
+                          (get_local $5)
+                          (i32.const 8192)
+                        )
+                      )
+                      (block
+                        (set_local $17
+                          (get_local $7)
+                        )
+                        (get_local $5)
+                      )
                     )
                   )
                 )
                 (if
                   (i32.lt_u
-                    (tee_local $1
+                    (tee_local $13
                       (i32.add
                         (i32.shr_s
                           (i32.shl
-                            (i32.load8_s
-                              (tee_local $6
-                                (i32.add
-                                  (get_local $9)
-                                  (i32.const 2)
-                                )
-                              )
-                            )
+                            (get_local $13)
                             (i32.const 24)
                           )
                           (i32.const 24)
@@ -3882,4693 +3161,4362 @@
                     )
                     (i32.const 10)
                   )
-                  (if
-                    (i32.eq
-                      (i32.shr_s
-                        (i32.shl
-                          (i32.load8_s offset=3
+                  (block
+                    (set_local $8
+                      (i32.const 0)
+                    )
+                    (loop $while-in$15
+                      (set_local $13
+                        (i32.add
+                          (i32.mul
+                            (get_local $8)
+                            (i32.const 10)
+                          )
+                          (get_local $13)
+                        )
+                      )
+                      (if
+                        (i32.lt_u
+                          (tee_local $9
+                            (i32.add
+                              (i32.load8_s
+                                (tee_local $10
+                                  (i32.add
+                                    (get_local $10)
+                                    (i32.const 1)
+                                  )
+                                )
+                              )
+                              (i32.const -48)
+                            )
+                          )
+                          (i32.const 10)
+                        )
+                        (block
+                          (set_local $8
+                            (get_local $13)
+                          )
+                          (set_local $13
                             (get_local $9)
                           )
+                          (br $while-in$15)
+                        )
+                        (set_local $9
+                          (get_local $13)
+                        )
+                      )
+                    )
+                    (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.eq
+                    (i32.load8_s
+                      (get_local $10)
+                    )
+                    (i32.const 46)
+                  )
+                  (block
+                    (if
+                      (i32.ne
+                        (i32.shr_s
+                          (i32.shl
+                            (tee_local $7
+                              (i32.load8_s
+                                (tee_local $5
+                                  (i32.add
+                                    (get_local $10)
+                                    (i32.const 1)
+                                  )
+                                )
+                              )
+                            )
+                            (i32.const 24)
+                          )
                           (i32.const 24)
                         )
-                        (i32.const 24)
+                        (i32.const 42)
                       )
-                      (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)
+                            )
+                          )
+                        )
+                        (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)
                             )
                           )
                         )
                       )
-                      (set_local $10
-                        (get_local $1)
+                    )
+                    (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)
                       )
-                      (br $label$break$L46
-                        (i32.add
-                          (get_local $9)
-                          (i32.const 4)
+                      (if
+                        (i32.eq
+                          (i32.load8_s offset=3
+                            (get_local $10)
+                          )
+                          (i32.const 36)
+                        )
+                        (block
+                          (i32.store
+                            (i32.add
+                              (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)
+                              )
+                            )
+                          )
+                          (set_local $7
+                            (i32.load
+                              (get_local $5)
+                            )
+                          )
+                          (br $label$break$L46
+                            (i32.add
+                              (get_local $10)
+                              (i32.const 4)
+                            )
+                          )
                         )
                       )
                     )
-                  )
-                )
-                (if
-                  (i32.ne
-                    (get_local $21)
-                    (i32.const 0)
+                    (if
+                      (get_local $13)
+                      (block
+                        (set_local $15
+                          (i32.const -1)
+                        )
+                        (br $label$break$L1)
+                      )
+                    )
+                    (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)
+                      )
+                    )
                   )
                   (block
-                    (set_local $24
+                    (set_local $7
                       (i32.const -1)
                     )
-                    (br $label$break$L1)
+                    (get_local $10)
                   )
                 )
-                (if
-                  (get_local $44)
-                  (block
-                    (set_local $5
-                      (i32.load
-                        (tee_local $1
-                          (i32.and
-                            (i32.add
-                              (i32.load
-                                (get_local $2)
-                              )
-                              (i32.const 3)
-                            )
-                            (i32.const -4)
-                          )
-                        )
-                      )
-                    )
-                    (i32.store
-                      (get_local $2)
-                      (i32.add
-                        (get_local $1)
-                        (i32.const 4)
-                      )
-                    )
-                    (set_local $10
-                      (get_local $5)
-                    )
-                    (get_local $6)
-                  )
-                  (block
-                    (set_local $10
-                      (i32.const 0)
-                    )
-                    (get_local $6)
-                  )
-                )
-              )
-              (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)
-                      )
-                      (i32.const 24)
-                    )
-                    (i32.const -65)
-                  )
-                )
-                (i32.const 57)
-              )
-              (block
-                (set_local $24
-                  (i32.const -1)
-                )
-                (br $label$break$L1)
-              )
+            (set_local $11
+              (i32.const 0)
             )
-            (set_local $9
-              (i32.add
-                (get_local $11)
-                (i32.const 1)
-              )
-            )
-            (if
-              (i32.lt_u
-                (i32.add
+            (loop $while-in$20
+              (if
+                (i32.gt_u
                   (tee_local $5
-                    (i32.and
-                      (tee_local $1
-                        (i32.load8_s
-                          (i32.add
-                            (i32.add
-                              (i32.const 3611)
-                              (i32.mul
-                                (get_local $13)
-                                (i32.const 58)
-                              )
-                            )
-                            (get_local $1)
-                          )
-                        )
-                      )
-                      (i32.const 255)
-                    )
-                  )
-                  (i32.const -1)
-                )
-                (i32.const 8)
-              )
-              (block
-                (set_local $11
-                  (get_local $9)
-                )
-                (set_local $13
-                  (get_local $5)
-                )
-              )
-              (block
-                (set_local $6
-                  (get_local $5)
-                )
-                (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)
-                  (i32.const 24)
-                )
-                (i32.const 24)
-              )
-              (i32.const 19)
-            )
-            (if
-              (get_local $5)
-              (block
-                (set_local $24
-                  (i32.const -1)
-                )
-                (br $label$break$L1)
-              )
-              (set_local $12
-                (i32.const 52)
-              )
-            )
-            (block
-              (if
-                (get_local $5)
-                (block
-                  (i32.store
                     (i32.add
-                      (get_local $4)
-                      (i32.shl
-                        (get_local $7)
-                        (i32.const 2)
+                      (i32.load8_s
+                        (get_local $9)
                       )
-                    )
-                    (get_local $6)
-                  )
-                  (set_local $5
-                    (i32.load
-                      (tee_local $1
-                        (i32.add
-                          (get_local $3)
-                          (i32.shl
-                            (get_local $7)
-                            (i32.const 3)
-                          )
-                        )
-                      )
+                      (i32.const -65)
                     )
                   )
-                  (set_local $1
-                    (i32.load offset=4
-                      (get_local $1)
-                    )
-                  )
-                  (i32.store
-                    (tee_local $7
-                      (get_local $19)
-                    )
-                    (get_local $5)
-                  )
-                  (i32.store offset=4
-                    (get_local $7)
-                    (get_local $1)
-                  )
-                  (set_local $12
-                    (i32.const 52)
-                  )
-                  (br $do-once$21)
-                )
-              )
-              (if
-                (i32.eqz
-                  (get_local $44)
+                  (i32.const 57)
                 )
                 (block
-                  (set_local $24
-                    (i32.const 0)
+                  (set_local $15
+                    (i32.const -1)
                   )
                   (br $label$break$L1)
                 )
               )
-              (call $_pop_arg_336
-                (get_local $19)
-                (get_local $6)
-                (get_local $2)
+              (set_local $10
+                (i32.add
+                  (get_local $9)
+                  (i32.const 1)
+                )
               )
-            )
-          )
-        )
-        (if
-          (i32.eq
-            (get_local $12)
-            (i32.const 52)
-          )
-          (block
-            (set_local $12
-              (i32.const 0)
+              (if
+                (i32.lt_u
+                  (i32.add
+                    (tee_local $5
+                      (i32.and
+                        (tee_local $12
+                          (i32.load8_s
+                            (i32.add
+                              (i32.add
+                                (i32.const 3611)
+                                (i32.mul
+                                  (get_local $11)
+                                  (i32.const 58)
+                                )
+                              )
+                              (get_local $5)
+                            )
+                          )
+                        )
+                        (i32.const 255)
+                      )
+                    )
+                    (i32.const -1)
+                  )
+                  (i32.const 8)
+                )
+                (block
+                  (set_local $9
+                    (get_local $10)
+                  )
+                  (set_local $11
+                    (get_local $5)
+                  )
+                  (br $while-in$20)
+                )
+                (block
+                  (set_local $16
+                    (get_local $5)
+                  )
+                  (set_local $5
+                    (get_local $10)
+                  )
+                  (set_local $19
+                    (get_local $9)
+                  )
+                )
+              )
             )
             (if
               (i32.eqz
-                (get_local $44)
+                (i32.shr_s
+                  (i32.shl
+                    (get_local $12)
+                    (i32.const 24)
+                  )
+                  (i32.const 24)
+                )
               )
               (block
-                (set_local $20
-                  (get_local $9)
+                (set_local $15
+                  (i32.const -1)
                 )
-                (set_local $1
-                  (get_local $17)
-                )
-                (set_local $8
-                  (get_local $21)
-                )
-                (br $label$continue$L1)
+                (br $label$break$L1)
               )
             )
-          )
-        )
-        (set_local $5
-          (i32.and
-            (i32.ne
-              (get_local $13)
-              (i32.const 0)
+            (set_local $10
+              (i32.gt_s
+                (get_local $21)
+                (i32.const -1)
+              )
             )
-            (i32.eq
-              (i32.and
-                (tee_local $1
-                  (i32.shr_s
-                    (i32.shl
-                      (i32.load8_s
-                        (get_local $11)
+            (block $jumpthreading$outer$1
+              (block $jumpthreading$inner$1
+                (if
+                  (i32.eq
+                    (i32.shr_s
+                      (i32.shl
+                        (get_local $12)
+                        (i32.const 24)
                       )
                       (i32.const 24)
                     )
-                    (i32.const 24)
+                    (i32.const 19)
+                  )
+                  (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)
+                      )
+                    )
+                    (if
+                      (i32.eqz
+                        (get_local $33)
+                      )
+                      (block
+                        (set_local $15
+                          (i32.const 0)
+                        )
+                        (br $label$break$L1)
+                      )
+                    )
+                    (call $_pop_arg_336
+                      (get_local $18)
+                      (get_local $16)
+                      (get_local $2)
+                    )
                   )
                 )
-                (i32.const 15)
+                (br $jumpthreading$outer$1)
               )
-              (i32.const 3)
+              (set_local $28
+                (i32.const 0)
+              )
+              (if
+                (i32.eqz
+                  (get_local $33)
+                )
+                (block
+                  (set_local $1
+                    (get_local $5)
+                  )
+                  (set_local $5
+                    (get_local $6)
+                  )
+                  (br $label$continue$L1)
+                )
+              )
             )
-          )
-        )
-        (set_local $18
-          (select
-            (get_local $8)
-            (tee_local $7
-              (i32.and
+            (set_local $10
+              (select
+                (tee_local $9
+                  (i32.and
+                    (get_local $8)
+                    (i32.const -65537)
+                  )
+                )
                 (get_local $8)
-                (i32.const -65537)
+                (i32.and
+                  (get_local $8)
+                  (i32.const 8192)
+                )
               )
             )
-            (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)
+            (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)
+                                                )
+                                                (set_local $1
+                                                  (i32.or
+                                                    (get_local $10)
+                                                    (i32.const 8)
+                                                  )
+                                                )
+                                                (set_local $7
+                                                  (select
+                                                    (get_local $7)
+                                                    (i32.const 8)
+                                                    (i32.gt_u
+                                                      (get_local $7)
+                                                      (i32.const 8)
                                                     )
                                                   )
                                                 )
-                                                (i32.store
-                                                  (i32.load
-                                                    (get_local $19)
-                                                  )
-                                                  (get_local $22)
+                                                (set_local $16
+                                                  (i32.const 120)
                                                 )
-                                                (set_local $20
-                                                  (get_local $9)
-                                                )
-                                                (set_local $1
-                                                  (get_local $17)
-                                                )
-                                                (set_local $8
-                                                  (get_local $21)
-                                                )
-                                                (br $label$continue$L1)
-                                              )
-                                              (i32.store
-                                                (i32.load
-                                                  (get_local $19)
-                                                )
-                                                (get_local $22)
-                                              )
-                                              (set_local $20
-                                                (get_local $9)
+                                                (br $jumpthreading$inner$2)
                                               )
                                               (set_local $1
-                                                (get_local $17)
+                                                (get_local $10)
                                               )
-                                              (set_local $8
-                                                (get_local $21)
-                                              )
-                                              (br $label$continue$L1)
+                                              (br $jumpthreading$inner$2)
                                             )
-                                            (i32.store
-                                              (tee_local $1
-                                                (i32.load
-                                                  (get_local $19)
+                                            (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)
+                                                    )
+                                                  )
                                                 )
                                               )
-                                              (get_local $22)
+                                              (set_local $8
+                                                (get_local $23)
+                                              )
+                                              (block
+                                                (set_local $1
+                                                  (get_local $6)
+                                                )
+                                                (set_local $6
+                                                  (get_local $8)
+                                                )
+                                                (set_local $8
+                                                  (get_local $23)
+                                                )
+                                                (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)
+                                                          )
+                                                        )
+                                                      )
+                                                    )
+                                                  )
+                                                )
+                                              )
                                             )
-                                            (i32.store offset=4
-                                              (get_local $1)
+                                            (if
+                                              (i32.and
+                                                (get_local $10)
+                                                (i32.const 8)
+                                              )
+                                              (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)
+                                              )
+                                              (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)
+                                              )
+                                            )
+                                          )
+                                          (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)
+                                                )
+                                              )
+                                              (i32.const 0)
+                                            )
+                                            (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.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)
+                                            )
+                                          )
+                                          (if
+                                            (i32.and
+                                              (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 $1
+                                          (i32.load
+                                            (tee_local $6
+                                              (get_local $18)
+                                            )
+                                          )
+                                        )
+                                        (set_local $6
+                                          (i32.load offset=4
+                                            (get_local $6)
+                                          )
+                                        )
+                                        (set_local $8
+                                          (i32.const 0)
+                                        )
+                                        (set_local $9
+                                          (i32.const 4091)
+                                        )
+                                        (br $jumpthreading$inner$3)
+                                      )
+                                      (set_local $1
+                                        (get_local $18)
+                                      )
+                                      (i32.store8
+                                        (get_local $46)
+                                        (i32.and
+                                          (i32.load
+                                            (get_local $1)
+                                          )
+                                          (i32.const 255)
+                                        )
+                                      )
+                                      (set_local $6
+                                        (get_local $46)
+                                      )
+                                      (set_local $10
+                                        (get_local $9)
+                                      )
+                                      (set_local $11
+                                        (i32.const 1)
+                                      )
+                                      (set_local $8
+                                        (i32.const 0)
+                                      )
+                                      (set_local $9
+                                        (i32.const 4091)
+                                      )
+                                      (set_local $1
+                                        (get_local $23)
+                                      )
+                                      (br $jumpthreading$outer$7)
+                                    )
+                                    (set_local $1
+                                      (call $_strerror
+                                        (i32.load
+                                          (call $___errno_location)
+                                        )
+                                      )
+                                    )
+                                    (br $jumpthreading$inner$4)
+                                  )
+                                  (set_local $1
+                                    (select
+                                      (tee_local $1
+                                        (i32.load
+                                          (get_local $18)
+                                        )
+                                      )
+                                      (i32.const 4101)
+                                      (i32.ne
+                                        (get_local $1)
+                                        (i32.const 0)
+                                      )
+                                    )
+                                  )
+                                  (br $jumpthreading$inner$4)
+                                )
+                                (set_local $1
+                                  (get_local $18)
+                                )
+                                (i32.store
+                                  (get_local $47)
+                                  (i32.load
+                                    (get_local $1)
+                                  )
+                                )
+                                (i32.store
+                                  (get_local $50)
+                                  (i32.const 0)
+                                )
+                                (i32.store
+                                  (get_local $18)
+                                  (get_local $47)
+                                )
+                                (set_local $8
+                                  (i32.const -1)
+                                )
+                                (br $jumpthreading$inner$5)
+                              )
+                              (if
+                                (get_local $7)
+                                (block
+                                  (set_local $8
+                                    (get_local $7)
+                                  )
+                                  (br $jumpthreading$inner$5)
+                                )
+                                (block
+                                  (call $_pad
+                                    (get_local $0)
+                                    (i32.const 32)
+                                    (get_local $17)
+                                    (i32.const 0)
+                                    (get_local $10)
+                                  )
+                                  (set_local $6
+                                    (i32.const 0)
+                                  )
+                                  (br $jumpthreading$inner$6)
+                                )
+                              )
+                            )
+                            (set_local $14
+                              (f64.load
+                                (get_local $18)
+                              )
+                            )
+                            (i32.store
+                              (get_local $20)
+                              (i32.const 0)
+                            )
+                            (f64.store
+                              (get_global $tempDoublePtr)
+                              (get_local $14)
+                            )
+                            (set_local $36
+                              (if
+                                (i32.lt_s
+                                  (i32.load offset=4
+                                    (get_global $tempDoublePtr)
+                                  )
+                                  (i32.const 0)
+                                )
+                                (block
+                                  (set_local $30
+                                    (i32.const 1)
+                                  )
+                                  (set_local $14
+                                    (f64.neg
+                                      (get_local $14)
+                                    )
+                                  )
+                                  (i32.const 4108)
+                                )
+                                (if
+                                  (i32.and
+                                    (get_local $10)
+                                    (i32.const 2048)
+                                  )
+                                  (block
+                                    (set_local $30
+                                      (i32.const 1)
+                                    )
+                                    (i32.const 4111)
+                                  )
+                                  (block
+                                    (set_local $30
+                                      (tee_local $1
+                                        (i32.and
+                                          (get_local $10)
+                                          (i32.const 1)
+                                        )
+                                      )
+                                    )
+                                    (select
+                                      (i32.const 4114)
+                                      (i32.const 4109)
+                                      (get_local $1)
+                                    )
+                                  )
+                                )
+                              )
+                            )
+                            (f64.store
+                              (get_global $tempDoublePtr)
+                              (get_local $14)
+                            )
+                            (set_local $1
+                              (get_local $5)
+                            )
+                            (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 2146435072)
+                                    )
+                                    (i32.and
+                                      (i32.eq
+                                        (get_local $5)
+                                        (i32.const 2146435072)
+                                      )
+                                      (i32.const 0)
+                                    )
+                                  )
+                                  (block
+                                    (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.store
+                                        (get_local $20)
+                                        (i32.add
+                                          (i32.load
+                                            (get_local $20)
+                                          )
+                                          (i32.const -1)
+                                        )
+                                      )
+                                    )
+                                    (if
+                                      (i32.eq
+                                        (tee_local $25
+                                          (i32.or
+                                            (get_local $16)
+                                            (i32.const 32)
+                                          )
+                                        )
+                                        (i32.const 97)
+                                      )
+                                      (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)
+                                                  )
+                                                )
+                                              )
+                                            )
+                                            (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.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
+                                          (get_local $24)
+                                        )
+                                        (loop $while-in$63
+                                          (i32.store8
+                                            (get_local $5)
+                                            (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.eqz
+                                            (i32.and
+                                              (i32.load
+                                                (get_local $0)
+                                              )
+                                              (i32.const 32)
+                                            )
+                                          )
+                                          (drop
+                                            (call $___fwritex
+                                              (get_local $19)
+                                              (get_local $8)
+                                              (get_local $0)
+                                            )
+                                          )
+                                        )
+                                        (call $_pad
+                                          (get_local $0)
+                                          (i32.const 48)
+                                          (get_local $17)
+                                          (get_local $6)
+                                          (i32.xor
+                                            (get_local $10)
+                                            (i32.const 65536)
+                                          )
+                                        )
+                                        (set_local $5
+                                          (i32.sub
+                                            (get_local $5)
+                                            (get_local $42)
+                                          )
+                                        )
+                                        (if
+                                          (i32.eqz
+                                            (i32.and
+                                              (i32.load
+                                                (get_local $0)
+                                              )
+                                              (i32.const 32)
+                                            )
+                                          )
+                                          (drop
+                                            (call $___fwritex
+                                              (get_local $24)
+                                              (get_local $5)
+                                              (get_local $0)
+                                            )
+                                          )
+                                        )
+                                        (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)
+                                        )
+                                        (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)
+                                            )
+                                          )
+                                        )
+                                        (call $_pad
+                                          (get_local $0)
+                                          (i32.const 32)
+                                          (get_local $17)
+                                          (get_local $6)
+                                          (i32.xor
+                                            (get_local $10)
+                                            (i32.const 8192)
+                                          )
+                                        )
+                                        (br $do-once$56
+                                          (select
+                                            (get_local $17)
+                                            (get_local $6)
+                                            (i32.lt_s
+                                              (get_local $6)
+                                              (get_local $17)
+                                            )
+                                          )
+                                        )
+                                      )
+                                    )
+                                    (set_local $19
+                                      (select
+                                        (i32.const 6)
+                                        (get_local $7)
+                                        (i32.lt_s
+                                          (get_local $7)
+                                          (i32.const 0)
+                                        )
+                                      )
+                                    )
+                                    (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)
+                                          )
+                                        )
+                                      )
+                                    )
+                                    (set_local $6
+                                      (get_local $8)
+                                    )
+                                    (loop $while-in$67
+                                      (i32.store
+                                        (get_local $6)
+                                        (tee_local $5
+                                          (call_import $f64-to-int
+                                            (get_local $14)
+                                          )
+                                        )
+                                      )
+                                      (set_local $6
+                                        (i32.add
+                                          (get_local $6)
+                                          (i32.const 4)
+                                        )
+                                      )
+                                      (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)
+                                            )
+                                          )
+                                          (f64.const 0)
+                                        )
+                                      )
+                                    )
+                                    (if
+                                      (i32.gt_s
+                                        (tee_local $7
+                                          (i32.load
+                                            (get_local $20)
+                                          )
+                                        )
+                                        (i32.const 0)
+                                      )
+                                      (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)
+                                          )
+                                        )
+                                      )
+                                      (set_local $5
+                                        (get_local $8)
+                                      )
+                                    )
+                                    (if
+                                      (i32.lt_s
+                                        (get_local $7)
+                                        (i32.const 0)
+                                      )
+                                      (block
+                                        (set_local $12
+                                          (i32.add
+                                            (i32.and
+                                              (call_import $i32s-div
+                                                (i32.add
+                                                  (get_local $19)
+                                                  (i32.const 25)
+                                                )
+                                                (i32.const 9)
+                                              )
+                                              (i32.const -1)
+                                            )
+                                            (i32.const 1)
+                                          )
+                                        )
+                                        (set_local $21
+                                          (i32.eq
+                                            (get_local $25)
+                                            (i32.const 102)
+                                          )
+                                        )
+                                        (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)
+                                          )
+                                        )
+                                      )
+                                      (set_local $9
+                                        (get_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 1)
+                                              )
+                                            )
+                                            (br_if $while-in$85
+                                              (i32.ge_u
+                                                (get_local $11)
+                                                (tee_local $7
+                                                  (i32.mul
+                                                    (get_local $7)
+                                                    (i32.const 10)
+                                                  )
+                                                )
+                                              )
+                                            )
+                                          )
+                                        )
+                                        (set_local $6
+                                          (i32.const 0)
+                                        )
+                                      )
+                                    )
+                                    (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.lt_s
-                                                    (get_local $22)
-                                                    (i32.const 0)
+                                                  (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)
                                               )
                                             )
-                                            (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)
-                                            )
-                                            (i32.and
-                                              (get_local $22)
-                                              (i32.const 65535)
-                                            )
-                                          )
-                                          (set_local $20
-                                            (get_local $9)
-                                          )
-                                          (set_local $1
-                                            (get_local $17)
-                                          )
-                                          (set_local $8
-                                            (get_local $21)
-                                          )
-                                          (br $label$continue$L1)
-                                        )
-                                        (i32.store8
-                                          (i32.load
-                                            (get_local $19)
-                                          )
-                                          (i32.and
-                                            (get_local $22)
-                                            (i32.const 255)
-                                          )
-                                        )
-                                        (set_local $20
-                                          (get_local $9)
-                                        )
-                                        (set_local $1
-                                          (get_local $17)
-                                        )
-                                        (set_local $8
-                                          (get_local $21)
-                                        )
-                                        (br $label$continue$L1)
-                                      )
-                                      (i32.store
-                                        (i32.load
-                                          (get_local $19)
-                                        )
-                                        (get_local $22)
-                                      )
-                                      (set_local $20
-                                        (get_local $9)
-                                      )
-                                      (set_local $1
-                                        (get_local $17)
-                                      )
-                                      (set_local $8
-                                        (get_local $21)
-                                      )
-                                      (br $label$continue$L1)
-                                    )
-                                    (i32.store
-                                      (tee_local $1
-                                        (i32.load
-                                          (get_local $19)
-                                        )
-                                      )
-                                      (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 $20
-                                      (get_local $9)
-                                    )
-                                    (set_local $1
-                                      (get_local $17)
-                                    )
-                                    (set_local $8
-                                      (get_local $21)
-                                    )
-                                    (br $label$continue$L1)
-                                  )
-                                  (set_local $20
-                                    (get_local $9)
-                                  )
-                                  (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
-                                      (tee_local $1
-                                        (get_local $19)
-                                      )
-                                    )
-                                  )
-                                  (i32.const 0)
-                                )
-                                (i32.eq
-                                  (tee_local $1
-                                    (i32.load offset=4
-                                      (get_local $1)
-                                    )
-                                  )
-                                  (i32.const 0)
-                                )
-                              )
-                              (set_local $6
-                                (get_local $28)
-                              )
-                              (block
-                                (set_local $6
-                                  (get_local $28)
-                                )
-                                (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 $58
-                              (if
-                                (i32.eq
-                                  (i32.and
-                                    (get_local $18)
-                                    (i32.const 8)
-                                  )
-                                  (i32.const 0)
-                                )
-                                (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)
-                                  )
-                                  (get_local $6)
-                                )
-                                (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
-                                    (i32.const 0)
-                                  )
-                                  (set_local $36
-                                    (i32.const 4091)
-                                  )
-                                  (set_local $12
-                                    (i32.const 77)
-                                  )
-                                  (get_local $6)
-                                )
-                              )
-                            )
-                            (br $switch$24)
-                          )
-                          (set_local $5
-                            (i32.load
-                              (tee_local $1
-                                (get_local $19)
-                              )
-                            )
-                          )
-                          (if
-                            (i32.lt_s
-                              (tee_local $33
-                                (i32.load offset=4
-                                  (get_local $1)
-                                )
-                              )
-                              (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)
-                            )
-                          )
-                          (set_local $33
-                            (if
-                              (i32.eq
-                                (i32.and
-                                  (get_local $18)
-                                  (i32.const 2048)
-                                )
-                                (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)
-                                    )
-                                  )
-                                )
-                                (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)
-                                    (get_local $10)
-                                  )
-                                )
-                                (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)
-                                    )
-                                  )
-                                  (br_if $while-out$60
-                                    (i32.eq
-                                      (tee_local $1
-                                        (i32.add
-                                          (get_local $1)
-                                          (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)
-                                      (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)
-                            )
-                            (i32.const 255)
-                          )
-                        )
-                        (i32.store8
-                          (tee_local $8
-                            (i32.add
-                              (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)
-                                          )
-                                        )
-                                        (i32.const 4075)
-                                      )
-                                    )
-                                    (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)
-                                        )
-                                      )
-                                      (get_local $64)
-                                    )
-                                    (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)
-                                          )
-                                        )
-                                      )
-                                    )
-                                    (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.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)
-                                      )
-                                    )
-                                    (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)
-                                                  )
-                                                  (i32.const 0)
-                                                  (get_local $11)
+                                          (i32.add
+                                            (i32.mul
+                                              (i32.shr_s
+                                                (i32.sub
+                                                  (get_local $9)
+                                                  (get_local $40)
                                                 )
-                                                (get_global $tempRet0)
-                                                (get_local $5)
-                                                (i32.const 0)
+                                                (i32.const 2)
+                                              )
+                                              (i32.const 9)
+                                            )
+                                            (i32.const -9)
+                                          )
+                                        )
+                                        (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)
                                               )
                                             )
-                                            (tee_local $7
-                                              (get_global $tempRet0)
-                                            )
-                                            (i32.const 1000000000)
-                                            (i32.const 0)
                                           )
+                                          (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)
                                         )
-                                        (i32.store
-                                          (get_local $10)
-                                          (get_local $6)
+                                        (block
+                                          (set_local $11
+                                            (get_local $6)
+                                          )
+                                          (get_local $5)
                                         )
-                                        (set_local $5
-                                          (call $___udivdi3
+                                      )
+                                    )
+                                    (set_local $25
+                                      (i32.sub
+                                        (i32.const 0)
+                                        (get_local $11)
+                                      )
+                                    )
+                                    (set_local $5
+                                      (get_local $9)
+                                    )
+                                    (loop $while-in$97
+                                      (block $while-out$96
+                                        (if
+                                          (i32.le_u
                                             (get_local $5)
-                                            (get_local $7)
-                                            (i32.const 1000000000)
-                                            (i32.const 0)
+                                            (get_local $12)
+                                          )
+                                          (block
+                                            (set_local $26
+                                              (i32.const 0)
+                                            )
+                                            (set_local $9
+                                              (get_local $5)
+                                            )
+                                            (br $while-out$96)
                                           )
                                         )
                                         (if
-                                          (i32.lt_u
-                                            (tee_local $7
+                                          (i32.load
+                                            (tee_local $6
                                               (i32.add
-                                                (get_local $10)
+                                                (get_local $5)
                                                 (i32.const -4)
                                               )
                                             )
-                                            (get_local $8)
                                           )
-                                          (br $while-out$72)
-                                          (set_local $10
-                                            (get_local $7)
+                                          (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-in$73)
                                       )
                                     )
-                                    (br_if $do-once$70
-                                      (get_local $8)
-                                      (i32.eq
-                                        (get_local $5)
+                                    (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)
+                                            )
+                                          )
+                                        )
+                                      )
+                                    )
+                                    (set_local $31
+                                      (i32.and
+                                        (i32.ne
+                                          (tee_local $16
+                                            (i32.or
+                                              (get_local $5)
+                                              (get_local $19)
+                                            )
+                                          )
+                                          (i32.const 0)
+                                        )
+                                        (i32.const 1)
+                                      )
+                                    )
+                                    (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)
+                                        )
+                                      )
+                                    )
+                                    (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)
+                                        )
+                                      )
+                                      (get_local $10)
+                                    )
+                                    (if
+                                      (i32.eqz
+                                        (i32.and
+                                          (i32.load
+                                            (get_local $0)
+                                          )
+                                          (i32.const 32)
+                                        )
+                                      )
+                                      (drop
+                                        (call $___fwritex
+                                          (get_local $36)
+                                          (get_local $30)
+                                          (get_local $0)
+                                        )
+                                      )
+                                    )
+                                    (call $_pad
+                                      (get_local $0)
+                                      (i32.const 48)
+                                      (get_local $17)
+                                      (get_local $11)
+                                      (i32.xor
+                                        (get_local $10)
+                                        (i32.const 65536)
+                                      )
+                                    )
+                                    (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)
+                                          )
+                                        )
+                                        (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)
+                                                  )
+                                                )
+                                              )
+                                            )
+                                          )
+                                          (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)
+                                            )
+                                          )
+                                        )
+                                      )
+                                    )
+                                    (call $_pad
+                                      (get_local $0)
+                                      (i32.const 32)
+                                      (get_local $17)
+                                      (get_local $11)
+                                      (i32.xor
+                                        (get_local $10)
+                                        (i32.const 8192)
+                                      )
+                                    )
+                                    (select
+                                      (get_local $17)
+                                      (get_local $11)
+                                      (i32.lt_s
+                                        (get_local $11)
+                                        (get_local $17)
+                                      )
+                                    )
+                                  )
+                                  (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)
+                                          )
+                                        )
                                       )
                                     )
-                                    (i32.store
-                                      (tee_local $7
+                                    (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)
+                                      )
+                                    )
+                                    (call $_pad
+                                      (get_local $0)
+                                      (i32.const 32)
+                                      (get_local $17)
+                                      (tee_local $6
                                         (i32.add
+                                          (get_local $7)
+                                          (i32.const 3)
+                                        )
+                                      )
+                                      (get_local $9)
+                                    )
+                                    (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 -4)
+                                          (i32.const 3)
+                                          (get_local $0)
                                         )
                                       )
-                                      (get_local $5)
                                     )
-                                    (get_local $7)
+                                    (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)
+                                      )
+                                    )
                                   )
                                 )
                               )
                             )
-                            (loop $while-in$75
-                              (block $while-out$74
-                                (br_if $while-out$74
-                                  (i32.le_u
-                                    (get_local $13)
-                                    (get_local $7)
+                            (br $label$continue$L1)
+                          )
+                          (set_local $6
+                            (get_local $1)
+                          )
+                          (set_local $11
+                            (get_local $7)
+                          )
+                          (set_local $8
+                            (i32.const 0)
+                          )
+                          (set_local $9
+                            (i32.const 4091)
+                          )
+                          (set_local $1
+                            (get_local $23)
+                          )
+                          (br $jumpthreading$outer$7)
+                        )
+                        (set_local $9
+                          (i32.and
+                            (get_local $16)
+                            (i32.const 32)
+                          )
+                        )
+                        (if
+                          (i32.and
+                            (i32.eqz
+                              (tee_local $10
+                                (i32.load
+                                  (tee_local $6
+                                    (get_local $18)
                                   )
                                 )
-                                (if
-                                  (i32.eq
-                                    (i32.load
-                                      (tee_local $5
+                              )
+                            )
+                            (i32.eqz
+                              (tee_local $6
+                                (i32.load offset=4
+                                  (get_local $6)
+                                )
+                              )
+                            )
+                          )
+                          (block
+                            (set_local $6
+                              (get_local $23)
+                            )
+                            (set_local $8
+                              (i32.const 0)
+                            )
+                            (set_local $9
+                              (i32.const 4091)
+                            )
+                            (br $jumpthreading$inner$7)
+                          )
+                          (block
+                            (set_local $8
+                              (get_local $23)
+                            )
+                            (loop $while-in$130
+                              (i32.store8
+                                (tee_local $8
+                                  (i32.add
+                                    (get_local $8)
+                                    (i32.const -1)
+                                  )
+                                )
+                                (i32.and
+                                  (i32.or
+                                    (i32.and
+                                      (i32.load8_s
                                         (i32.add
-                                          (get_local $13)
-                                          (i32.const -4)
+                                          (i32.and
+                                            (get_local $10)
+                                            (i32.const 15)
+                                          )
+                                          (i32.const 4075)
+                                        )
+                                      )
+                                      (i32.const 255)
+                                    )
+                                    (get_local $9)
+                                  )
+                                  (i32.const 255)
+                                )
+                              )
+                              (br_if $while-in$130
+                                (i32.eqz
+                                  (i32.and
+                                    (i32.eqz
+                                      (tee_local $10
+                                        (call $_bitshift64Lshr
+                                          (get_local $10)
+                                          (get_local $6)
+                                          (i32.const 4)
                                         )
                                       )
                                     )
-                                    (i32.const 0)
+                                    (i32.eqz
+                                      (tee_local $6
+                                        (get_global $tempRet0)
+                                      )
+                                    )
                                   )
-                                  (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)
-                                )
+                              (set_local $6
+                                (get_local $8)
                               )
                             )
                             (if
-                              (i32.gt_s
-                                (get_local $5)
-                                (i32.const 0)
-                              )
-                              (set_local $8
-                                (get_local $7)
+                              (i32.or
+                                (i32.eqz
+                                  (i32.and
+                                    (get_local $1)
+                                    (i32.const 8)
+                                  )
+                                )
+                                (i32.and
+                                  (i32.eqz
+                                    (i32.load
+                                      (tee_local $10
+                                        (get_local $18)
+                                      )
+                                    )
+                                  )
+                                  (i32.eqz
+                                    (i32.load offset=4
+                                      (get_local $10)
+                                    )
+                                  )
+                                )
                               )
                               (block
-                                (set_local $6
-                                  (get_local $13)
+                                (set_local $8
+                                  (i32.const 0)
                                 )
-                                (br $while-out$68)
+                                (set_local $9
+                                  (i32.const 4091)
+                                )
+                                (br $jumpthreading$inner$7)
+                              )
+                              (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 $jumpthreading$inner$7)
                               )
                             )
-                            (br $while-in$69)
+                          )
+                        )
+                        (br $jumpthreading$outer$7)
+                      )
+                      (set_local $6
+                        (call $_fmt_u
+                          (get_local $1)
+                          (get_local $6)
+                          (get_local $23)
+                        )
+                      )
+                      (set_local $1
+                        (get_local $10)
+                      )
+                      (br $jumpthreading$inner$7)
+                    )
+                    (set_local $28
+                      (i32.const 0)
+                    )
+                    (set_local $16
+                      (i32.eqz
+                        (tee_local $12
+                          (call $_memchr
+                            (get_local $1)
+                            (i32.const 0)
+                            (get_local $7)
+                          )
+                        )
+                      )
+                    )
+                    (set_local $6
+                      (get_local $1)
+                    )
+                    (set_local $10
+                      (get_local $9)
+                    )
+                    (set_local $11
+                      (select
+                        (get_local $7)
+                        (i32.sub
+                          (get_local $12)
+                          (get_local $1)
+                        )
+                        (get_local $16)
+                      )
+                    )
+                    (set_local $8
+                      (i32.const 0)
+                    )
+                    (set_local $9
+                      (i32.const 4091)
+                    )
+                    (set_local $1
+                      (select
+                        (i32.add
+                          (get_local $1)
+                          (get_local $7)
+                        )
+                        (get_local $12)
+                        (get_local $16)
+                      )
+                    )
+                    (br $jumpthreading$outer$7)
+                  )
+                  (set_local $1
+                    (i32.const 0)
+                  )
+                  (set_local $6
+                    (i32.const 0)
+                  )
+                  (set_local $7
+                    (i32.load
+                      (get_local $18)
+                    )
+                  )
+                  (loop $while-in$132
+                    (block $while-out$131
+                      (br_if $while-out$131
+                        (i32.eqz
+                          (tee_local $9
+                            (i32.load
+                              (get_local $7)
+                            )
+                          )
+                        )
+                      )
+                      (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.gt_u
+                            (get_local $6)
+                            (i32.sub
+                              (get_local $8)
+                              (get_local $1)
+                            )
                           )
                         )
                       )
                       (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)
-                                        )
-                                        (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
-                                              (i32.load
-                                                (get_local $17)
-                                              )
-                                            )
-                                            (get_local $70)
-                                          )
-                                        )
-                                        (i32.store
-                                          (get_local $17)
-                                          (i32.add
-                                            (i32.shr_u
-                                              (get_local $5)
-                                              (get_local $13)
-                                            )
-                                            (get_local $11)
-                                          )
-                                        )
-                                        (set_local $11
-                                          (i32.mul
-                                            (get_local $6)
-                                            (get_local $27)
-                                          )
-                                        )
-                                        (br_if $while-out$80
-                                          (i32.ge_u
-                                            (tee_local $17
-                                              (i32.add
-                                                (get_local $17)
-                                                (i32.const 4)
-                                              )
-                                            )
-                                            (get_local $23)
-                                          )
-                                        )
-                                        (br $while-in$81)
-                                      )
-                                    )
-                                    (set_local $5
-                                      (select
-                                        (i32.add
-                                          (get_local $7)
-                                          (i32.const 4)
-                                        )
-                                        (get_local $7)
-                                        (i32.eq
-                                          (i32.load
-                                            (get_local $7)
-                                          )
-                                          (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
-                                        (get_local $7)
-                                      )
-                                      (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)
-                                      )
-                                    )
-                                  )
-                                  (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
+                        (i32.add
                           (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
-                                      (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)
+                          (i32.const 4)
                         )
                       )
-                    )
-                    (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)
-                                        )
-                                      )
-                                      (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
-                                        (i32.add
-                                          (get_local $11)
-                                          (i32.const 1)
-                                        )
-                                      )
-                                      (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)
-                                            )
-                                          )
-                                          (get_local $17)
-                                        )
-                                        (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)
-                                          )
-                                          (i32.const -1)
-                                        )
-                                        (i32.const 1)
-                                      )
-                                      (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)
-                                          )
-                                          (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 $14
-                                  (block $do-once$90
-                                    (if
-                                      (i32.eq
-                                        (get_local $51)
-                                        (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)
-                                                )
-                                                (i32.const 24)
-                                              )
-                                              (i32.const 24)
-                                            )
-                                            (i32.const 45)
-                                          )
-                                        )
-                                        (set_local $30
-                                          (f64.neg
-                                            (get_local $30)
-                                          )
-                                        )
-                                        (f64.neg
-                                          (get_local $14)
-                                        )
-                                      )
-                                    )
-                                  )
-                                )
-                                (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
-                                        (get_local $6)
-                                        (i32.const 0)
-                                      )
-                                      (set_local $7
-                                        (if
-                                          (i32.lt_u
-                                            (tee_local $6
-                                              (i32.add
-                                                (get_local $6)
-                                                (i32.const -4)
-                                              )
-                                            )
-                                            (get_local $7)
-                                          )
-                                          (block
-                                            (i32.store
-                                              (tee_local $5
-                                                (i32.add
-                                                  (get_local $7)
-                                                  (i32.const -4)
-                                                )
-                                              )
-                                              (i32.const 0)
-                                            )
-                                            (get_local $5)
-                                          )
-                                          (get_local $7)
-                                        )
-                                      )
-                                      (i32.store
-                                        (get_local $6)
-                                        (tee_local $5
-                                          (i32.add
-                                            (i32.load
-                                              (get_local $6)
-                                            )
-                                            (i32.const 1)
-                                          )
-                                        )
-                                      )
-                                      (br_if $while-out$92
-                                        (i32.le_u
-                                          (get_local $5)
-                                          (i32.const 999999999)
-                                        )
-                                      )
-                                      (br $while-in$93)
-                                    )
-                                  )
-                                )
-                                (set_local $11
-                                  (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 $11)
-                                    )
-                                    (br $do-once$88)
-                                  )
-                                  (set_local $10
-                                    (i32.const 10)
-                                  )
-                                )
-                                (loop $while-in$95
-                                  (block $while-out$94
-                                    (set_local $11
-                                      (i32.add
-                                        (get_local $11)
-                                        (i32.const 1)
-                                      )
-                                    )
-                                    (if
-                                      (i32.lt_u
-                                        (get_local $5)
-                                        (tee_local $10
-                                          (i32.mul
-                                            (get_local $10)
-                                            (i32.const 10)
-                                          )
-                                        )
-                                      )
-                                      (block
-                                        (set_local $13
-                                          (get_local $11)
-                                        )
-                                        (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
+                      (br_if $while-in$132
+                        (i32.gt_u
                           (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)
-                                          )
-                                          (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)
-                                          )
-                                        )
-                                      )
-                                      (i32.const 0)
-                                    )
-                                    (block
-                                      (set_local $6
-                                        (i32.const 9)
-                                      )
-                                      (br $do-once$100)
-                                    )
-                                  )
-                                  (if
-                                    (i32.eq
-                                      (i32.and
-                                        (call_import $i32u-rem
-                                          (get_local $1)
-                                          (i32.const 10)
-                                        )
-                                        (i32.const -1)
-                                      )
-                                      (i32.const 0)
-                                    )
-                                    (block
-                                      (set_local $5
-                                        (i32.const 10)
-                                      )
-                                      (set_local $6
-                                        (i32.const 0)
-                                      )
-                                    )
-                                    (block
-                                      (set_local $6
-                                        (i32.const 0)
-                                      )
-                                      (br $do-once$100)
-                                    )
-                                  )
-                                  (loop $while-in$103
-                                    (block $while-out$102
-                                      (set_local $6
-                                        (i32.add
-                                          (get_local $6)
-                                          (i32.const 1)
-                                        )
-                                      )
-                                      (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)
-                                                )
-                                              )
-                                            )
-                                            (i32.const -1)
-                                          )
-                                          (i32.const 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)
-                                    )
-                                    (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)
-                                      )
-                                    )
-                                    (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)
-                                      )
-                                    )
-                                  )
-                                )
-                                (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
-                                        (i32.add
-                                          (get_local $1)
-                                          (get_local $13)
-                                        )
-                                        (get_local $6)
-                                      )
-                                    )
-                                    (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)
-                                      )
-                                    )
-                                  )
-                                )
-                                (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 $15
+                          (tee_local $1
+                            (i32.add
+                              (get_local $6)
                               (get_local $1)
                             )
-                            (i32.and
-                              (get_local $18)
-                              (i32.const 8)
-                            )
                           )
                         )
                       )
                     )
-                    (set_local $17
-                      (i32.and
-                        (i32.ne
-                          (tee_local $1
-                            (i32.or
-                              (get_local $15)
-                              (get_local $8)
-                            )
-                          )
-                          (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)
-                          )
-                        )
-                        (block
-                          (set_local $6
-                            (select
-                              (get_local $13)
-                              (i32.const 0)
-                              (i32.gt_s
-                                (get_local $13)
-                                (i32.const 0)
-                              )
-                            )
-                          )
-                          (i32.const 0)
-                        )
-                        (block
-                          (set_local $5
-                            (i32.shr_s
-                              (i32.shl
-                                (i32.lt_s
-                                  (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)
-                                  )
-                                )
-                                (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.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)
-                            )
-                          )
-                          (set_local $6
-                            (i32.sub
-                              (get_local $40)
-                              (get_local $5)
-                            )
-                          )
-                          (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)
-                            )
-                            (get_local $17)
-                          )
-                          (get_local $6)
-                        )
-                      )
-                      (get_local $18)
-                    )
-                    (if
-                      (i32.eq
-                        (i32.and
-                          (i32.load
-                            (get_local $0)
-                          )
-                          (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)
-                                )
-                              )
-                            )
-                          )
-                          (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)
-                                    (get_local $8)
-                                  )
-                                  (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)
-                                          )
-                                        )
-                                        (br $while-in$113)
-                                      )
-                                    )
-                                  )
-                                )
-                              )
-                              (if
-                                (i32.eq
-                                  (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)
-                                    )
-                                  )
-                                  (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.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)
-                              )
-                            )
-                            (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.and
-                                    (i32.gt_s
-                                      (get_local $15)
-                                      (i32.const 9)
-                                    )
-                                    (i32.lt_u
-                                      (tee_local $5
-                                        (i32.add
-                                          (get_local $5)
-                                          (i32.const 4)
-                                        )
-                                      )
-                                      (get_local $23)
-                                    )
-                                  )
-                                  (set_local $15
-                                    (get_local $1)
-                                  )
-                                  (block
-                                    (set_local $15
-                                      (get_local $1)
-                                    )
-                                    (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)
-                                  (i32.const 0)
-                                )
-                              )
-                              (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)
-                                        )
-                                      )
-                                    )
-                                  )
-                                  (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)
-                              )
-                              (get_local $0)
-                            )
-                          )
-                        )
-                      )
-                    )
-                    (call $_pad
-                      (get_local $0)
-                      (i32.const 32)
-                      (get_local $16)
-                      (get_local $6)
-                      (i32.xor
-                        (get_local $18)
-                        (i32.const 8192)
-                      )
-                    )
-                    (select
-                      (get_local $16)
-                      (get_local $6)
-                      (i32.lt_s
-                        (get_local $6)
-                        (get_local $16)
-                      )
-                    )
                   )
-                  (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)
-                          )
-                        )
-                      )
+                  (if
+                    (i32.lt_s
+                      (get_local $6)
+                      (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)
-                            )
-                            (i32.const 0)
-                          )
-                        )
+                    (block
+                      (set_local $15
+                        (i32.const -1)
                       )
-                    )
-                    (set_local $8
-                      (select
-                        (select
-                          (i32.const 4135)
-                          (i32.const 4139)
-                          (get_local $8)
-                        )
-                        (get_local $5)
-                        (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)
-                    )
-                    (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)
-                        )
-                        (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)
-                      )
+                      (br $label$break$L1)
                     )
                   )
-                )
-              )
-            )
-            (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
+                  (call $_pad
+                    (get_local $0)
+                    (i32.const 32)
+                    (get_local $17)
+                    (get_local $1)
+                    (get_local $10)
+                  )
+                  (if
+                    (get_local $1)
+                    (block
+                      (set_local $6
+                        (i32.const 0)
+                      )
+                      (set_local $7
                         (i32.load
-                          (tee_local $1
-                            (get_local $19)
-                          )
+                          (get_local $18)
                         )
                       )
-                      (i32.const 0)
-                    )
-                    (i32.eq
-                      (tee_local $1
-                        (i32.load offset=4
-                          (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)
-                    )
-                    (get_local $28)
-                  )
-                  (block
-                    (set_local $6
-                      (get_local $28)
-                    )
-                    (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)
-                              )
-                              (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)
-                              )
-                            )
-                            (i32.const 0)
-                          )
-                          (i32.eq
-                            (i32.load offset=4
-                              (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)
-                        )
-                        (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)
-                            )
-                          )
-                        )
-                        (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)
-                        )
-                      )
-                      (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)
-                      )
-                      (get_local $5)
-                    )
-                  )
-                  (set_local $43
-                    (i32.const 0)
-                  )
-                  (set_local $48
-                    (i32.const 4091)
-                  )
-                  (set_local $49
-                    (select
-                      (i32.add
-                        (get_local $50)
-                        (get_local $10)
-                      )
-                      (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)
-                      )
-                    )
-                    (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)
-                              )
-                            )
-                            (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)
-                              )
-                            )
-                          )
-                          (set_local $7
-                            (get_local $1)
-                          )
-                          (block
-                            (set_local $7
-                              (get_local $1)
-                            )
-                            (br $while-out$131)
-                          )
-                        )
-                        (br $while-in$132)
-                      )
-                    )
-                    (if
-                      (i32.lt_s
-                        (get_local $5)
-                        (i32.const 0)
-                      )
-                      (block
-                        (set_local $24
-                          (i32.const -1)
-                        )
-                        (br $label$break$L1)
-                      )
-                    )
-                    (call $_pad
-                      (get_local $0)
-                      (i32.const 32)
-                      (get_local $16)
-                      (get_local $7)
-                      (get_local $18)
-                    )
-                    (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
-                          (i32.const 0)
-                        )
-                        (set_local $8
-                          (i32.load
-                            (get_local $19)
-                          )
-                        )
-                        (loop $while-in$134
-                          (block $while-out$133
-                            (if
-                              (i32.eq
-                                (tee_local $1
-                                  (i32.load
+                                (tee_local $8
+                                  (call $_wctomb
+                                    (get_local $41)
                                     (get_local $8)
                                   )
                                 )
-                                (i32.const 0)
-                              )
-                              (block
-                                (set_local $38
-                                  (get_local $7)
-                                )
-                                (set_local $12
-                                  (i32.const 98)
-                                )
-                                (br $label$break$L308)
+                                (get_local $6)
                               )
                             )
-                            (set_local $8
-                              (i32.add
-                                (get_local $8)
-                                (i32.const 4)
-                              )
+                            (get_local $1)
+                          )
+                          (block
+                            (set_local $6
+                              (get_local $1)
                             )
-                            (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)
+                            (br $jumpthreading$inner$6)
+                          )
+                        )
+                        (if
+                          (i32.eqz
+                            (i32.and
+                              (i32.load
                                 (get_local $0)
                               )
+                              (i32.const 32)
                             )
-                            (if
-                              (i32.lt_u
-                                (get_local $1)
-                                (get_local $7)
-                              )
-                              (set_local $6
-                                (get_local $1)
-                              )
-                              (block
-                                (set_local $38
-                                  (get_local $7)
-                                )
-                                (set_local $12
-                                  (i32.const 98)
-                                )
-                                (br $while-out$133)
-                              )
-                            )
-                            (br $while-in$134)
                           )
+                          (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)
+                        )
+                      )
+                    )
+                    (block
+                      (set_local $6
+                        (i32.const 0)
+                      )
+                      (br $jumpthreading$inner$6)
+                    )
+                  )
+                  (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)
+                      (i32.const 0)
+                    )
+                    (tee_local $1
+                      (i32.or
+                        (i32.ne
+                          (i32.load
+                            (tee_local $1
+                              (get_local $18)
+                            )
+                          )
+                          (i32.const 0)
+                        )
+                        (i32.ne
+                          (i32.load offset=4
+                            (get_local $1)
+                          )
+                          (i32.const 0)
                         )
                       )
                     )
                   )
+                  (block
+                    (set_local $11
+                      (select
+                        (get_local $7)
+                        (tee_local $1
+                          (i32.add
+                            (i32.xor
+                              (i32.and
+                                (get_local $1)
+                                (i32.const 1)
+                              )
+                              (i32.const 1)
+                            )
+                            (i32.sub
+                              (get_local $45)
+                              (get_local $6)
+                            )
+                          )
+                        )
+                        (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 $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 $28)
-                )
-              )
-            )
-          )
-        )
-        (set_local $1
-          (i32.lt_s
-            (get_local $42)
-            (tee_local $7
-              (i32.sub
-                (get_local $49)
-                (get_local $47)
-              )
-            )
-          )
-        )
-        (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 $17)
+                  (i32.lt_s
+                    (get_local $17)
                     (get_local $1)
                   )
                 )
               )
-            )
-          )
-        )
-        (call $_pad
-          (get_local $0)
-          (i32.const 32)
-          (tee_local $5
-            (select
               (get_local $1)
-              (get_local $16)
+              (get_local $10)
+            )
+            (if
+              (i32.eqz
+                (i32.and
+                  (i32.load
+                    (get_local $0)
+                  )
+                  (i32.const 32)
+                )
+              )
+              (drop
+                (call $___fwritex
+                  (get_local $9)
+                  (get_local $8)
+                  (get_local $0)
+                )
+              )
+            )
+            (call $_pad
+              (get_local $0)
+              (i32.const 48)
+              (get_local $7)
+              (get_local $1)
+              (i32.xor
+                (get_local $10)
+                (i32.const 65536)
+              )
+            )
+            (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)
+              (get_local $7)
+              (get_local $1)
+              (i32.xor
+                (get_local $10)
+                (i32.const 8192)
+              )
+            )
+            (set_local $1
               (get_local $5)
             )
-          )
-          (get_local $1)
-          (get_local $37)
-        )
-        (if
-          (i32.eq
-            (i32.and
-              (i32.load
-                (get_local $0)
-              )
-              (i32.const 32)
+            (set_local $5
+              (get_local $7)
             )
-            (i32.const 0)
-          )
-          (call $___fwritex
-            (get_local $48)
-            (get_local $43)
-            (get_local $0)
+            (br $label$continue$L1)
           )
         )
-        (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)
-            )
-            (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 $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)
+          (get_local $13)
+          (block
+            (set_local $0
+              (i32.const 1)
             )
-            (set_local $24
-              (i32.const 0)
-            )
-            (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)
-                            )
-                          )
-                        )
-                      )
-                      (i32.const 0)
-                    )
-                  )
-                  (call $_pop_arg_336
-                    (i32.add
-                      (get_local $3)
-                      (i32.shl
-                        (get_local $1)
-                        (i32.const 3)
-                      )
-                    )
-                    (get_local $0)
-                    (get_local $2)
-                  )
-                  (if
-                    (i32.ge_s
-                      (tee_local $1
+            (loop $while-in$137
+              (block $while-out$136
+                (br_if $while-out$136
+                  (i32.eqz
+                    (tee_local $1
+                      (i32.load
                         (i32.add
-                          (get_local $1)
-                          (i32.const 1)
-                        )
-                      )
-                      (i32.const 10)
-                    )
-                    (block
-                      (set_local $24
-                        (i32.const 1)
-                      )
-                      (br $label$break$L343)
-                    )
-                  )
-                  (br $while-in$137)
-                )
-              )
-              (if
-                (i32.lt_s
-                  (get_local $1)
-                  (i32.const 10)
-                )
-                (loop $while-in$139
-                  (block $while-out$138
-                    (set_local $0
-                      (i32.add
-                        (get_local $1)
-                        (i32.const 1)
-                      )
-                    )
-                    (if
-                      (i32.ne
-                        (i32.load
-                          (i32.add
-                            (get_local $4)
-                            (i32.shl
-                              (get_local $1)
-                              (i32.const 2)
-                            )
+                          (get_local $4)
+                          (i32.shl
+                            (get_local $0)
+                            (i32.const 2)
                           )
                         )
-                        (i32.const 0)
-                      )
-                      (block
-                        (set_local $24
-                          (i32.const -1)
-                        )
-                        (br $label$break$L343)
                       )
                     )
-                    (if
-                      (i32.lt_s
+                  )
+                )
+                (call $_pop_arg_336
+                  (i32.add
+                    (get_local $3)
+                    (i32.shl
+                      (get_local $0)
+                      (i32.const 3)
+                    )
+                  )
+                  (get_local $1)
+                  (get_local $2)
+                )
+                (br_if $while-in$137
+                  (i32.lt_s
+                    (tee_local $0
+                      (i32.add
                         (get_local $0)
-                        (i32.const 10)
+                        (i32.const 1)
                       )
-                      (set_local $1
+                    )
+                    (i32.const 10)
+                  )
+                )
+                (block
+                  (set_local $15
+                    (i32.const 1)
+                  )
+                  (br $label$break$L343)
+                )
+              )
+            )
+            (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)
+                  )
+                )
+                (if
+                  (i32.load
+                    (i32.add
+                      (get_local $4)
+                      (i32.shl
                         (get_local $0)
+                        (i32.const 2)
                       )
-                      (block
-                        (set_local $24
-                          (i32.const 1)
-                        )
-                        (br $while-out$138)
-                      )
+                    )
+                  )
+                  (block
+                    (set_local $15
+                      (i32.const -1)
+                    )
+                    (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
-                  (get_local $3)
-                  (get_local $4)
-                  (i32.const 10)
-                  (i32.const 0)
-                )
+            (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 $0)
-                    (i32.const 48)
-                  )
-                  (i32.const 255)
-                )
-              )
-              (set_local $0
-                (call $___udivdi3
-                  (get_local $3)
-                  (get_local $4)
-                  (i32.const 10)
-                  (i32.const 0)
-                )
-              )
-              (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)
-              )
-              (br $while-in$1)
             )
-          )
-          (set_local $3
-            (get_local $0)
-          )
-          (get_local $2)
-        )
-        (block
-          (set_local $3
-            (get_local $0)
-          )
-          (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
+              (tee_local $2
                 (i32.add
-                  (get_local $1)
+                  (get_local $2)
                   (i32.const -1)
                 )
               )
               (i32.and
                 (i32.or
-                  (i32.and
-                    (call_import $i32u-rem
-                      (get_local $3)
-                      (i32.const 10)
-                    )
-                    (i32.const -1)
-                  )
+                  (get_local $3)
                   (i32.const 48)
                 )
                 (i32.const 255)
               )
             )
-            (set_local $0
-              (i32.and
-                (call_import $i32u-div
+            (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.eq
+                    (get_local $1)
+                    (i32.const 9)
+                  )
+                  (i32.gt_u
+                    (get_local $0)
+                    (i32.const -1)
+                  )
+                )
+              )
+              (block
+                (set_local $0
                   (get_local $3)
+                )
+                (set_local $1
+                  (get_local $4)
+                )
+                (br $while-in$1)
+              )
+              (set_local $0
+                (get_local $3)
+              )
+            )
+          )
+          (get_local $2)
+        )
+        (get_local $2)
+      )
+    )
+    (if
+      (get_local $0)
+      (loop $while-in$3
+        (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 $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)
+                            )
                           )
-                        )
-                        (i32.const 32)
-                      )
-                      (i32.const 0)
-                    )
-                  )
-                  (br_if $while-out$2
-                    (i32.le_u
-                      (tee_local $3
-                        (i32.add
-                          (get_local $3)
-                          (i32.const -256)
+                          (get_local $1)
                         )
                       )
-                      (i32.const 255)
+                      (i32.const 32)
                     )
                   )
-                  (br $while-in$3)
+                )
+                (br_if $while-in$3
+                  (i32.gt_u
+                    (tee_local $2
+                      (i32.add
+                        (get_local $2)
+                        (i32.const -256)
+                      )
+                    )
+                    (i32.const 255)
+                  )
                 )
               )
               (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)
-                            )
-                          )
-                          (i32.const 0)
-                        )
-                        (if
-                          (i32.eq
-                            (tee_local $0
-                              (i32.load offset=20
-                                (get_local $4)
-                              )
-                            )
-                            (i32.const 0)
-                          )
-                          (block
-                            (set_local $7
                               (get_local $2)
                             )
-                            (set_local $10
-                              (get_local $8)
+                          )
+                        )
+                        (if
+                          (i32.eqz
+                            (tee_local $0
+                              (i32.load offset=20
+                                (get_local $2)
+                              )
+                            )
+                          )
+                          (block
+                            (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)
-                        )
-                      )
-                      (set_local $2
-                        (select
                           (get_local $4)
-                          (get_local $2)
-                          (get_local $0)
                         )
                       )
                       (set_local $4
-                        (get_local $1)
-                      )
-                      (set_local $8
                         (select
-                          (get_local $1)
-                          (get_local $8)
+                          (get_local $2)
+                          (get_local $4)
+                          (get_local $6)
+                        )
+                      )
+                      (set_local $2
+                        (get_local $0)
+                      )
+                      (set_local $1
+                        (select
                           (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)
-                              )
-                            )
-                            (if
-                              (i32.eq
-                                (tee_local $2
-                                  (i32.load
-                                    (tee_local $5
-                                      (i32.add
-                                        (get_local $4)
-                                        (i32.const 16)
-                                      )
-                                    )
-                                  )
-                                )
-                                (i32.const 0)
-                              )
-                              (br $while-out$10)
-                              (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
+                            (tee_local $8
+                              (i32.load
+                                (tee_local $6
+                                  (i32.add
+                                    (get_local $1)
+                                    (i32.const 16)
+                                  )
+                                )
+                              )
+                            )
+                            (block
+                              (set_local $1
+                                (get_local $8)
+                              )
+                              (set_local $0
+                                (get_local $6)
+                              )
+                              (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.and
+                              (tee_local $3
+                                (i32.load
+                                  (i32.const 176)
                                 )
                               )
-                              (i32.const 0)
-                            )
-                            (block
-                              (i32.store
-                                (i32.const 176)
-                                (i32.or
-                                  (get_local $0)
-                                  (get_local $2)
+                              (tee_local $1
+                                (i32.shl
+                                  (i32.const 1)
+                                  (get_local $1)
                                 )
                               )
-                              (set_local $3
-                                (i32.add
-                                  (get_local $4)
-                                  (i32.const 8)
-                                )
-                              )
-                              (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
+                                (set_local $13
+                                  (get_local $3)
+                                )
+                                (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 $16
-                                  (get_local $2)
-                                )
+                              )
+                              (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 4)
+                                                      )
+                                                    )
+                                                    (get_local $8)
+                                                  )
+                                                  (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 16)
                                                       )
-                                                      (i32.const 4)
+                                                      (i32.const 2)
                                                     )
                                                   )
-                                                  (get_local $3)
-                                                )
-                                                (tee_local $3
-                                                  (i32.and
-                                                    (i32.shr_u
-                                                      (i32.add
-                                                        (tee_local $7
-                                                          (i32.shl
-                                                            (get_local $12)
-                                                            (get_local $7)
-                                                          )
-                                                        )
-                                                        (i32.const 245760)
-                                                      )
-                                                      (i32.const 16)
-                                                    )
-                                                    (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 $12)
-                              (i32.const 31)
+                              (i32.eq
+                                (get_local $15)
+                                (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)
-                              )
-                            )
-                            (set_local $16
-                              (get_local $7)
-                            )
-                          )
-                          (set_local $7
-                            (i32.eq
-                              (tee_local $3
-                                (i32.load offset=20
-                                  (get_local $23)
+                              (block
+                                (set_local $5
+                                  (get_local $8)
+                                )
+                                (set_local $2
+                                  (get_local $0)
                                 )
                               )
-                              (i32.const 0)
                             )
                           )
-                          (set_local $15
+                          (set_local $8
                             (select
-                              (get_local $15)
-                              (get_local $3)
+                              (get_local $13)
+                              (tee_local $8
+                                (i32.load offset=20
+                                  (get_local $0)
+                                )
+                              )
                               (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 $0
+                                (get_local $5)
                               )
-                              (set_local $32
-                                (get_local $15)
-                              )
-                              (set_local $28
-                                (get_local $36)
-                              )
-                              (set_local $11
-                                (i32.const 86)
-                              )
-                              (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)
+                    (tee_local $5
+                      (if
+                        (i32.and
+                          (i32.eqz
+                            (get_local $8)
+                          )
+                          (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.eq
-                              (get_local $28)
-                              (i32.const 0)
+                            (block
+                              (set_local $0
+                                (get_local $9)
+                              )
+                              (br $do-once$0)
                             )
                           )
-                          (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.const 0)
-                              )
-                              (block
-                                (set_local $6
-                                  (get_local $5)
-                                )
-                                (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)
                         )
-                      )
-                      (i32.const 0)
-                    )
-                    (block
-                      (set_local $17
-                        (get_local $31)
-                      )
-                      (set_local $13
-                        (get_local $28)
+                        (get_local $8)
                       )
                     )
                     (block
-                      (set_local $26
-                        (get_local $31)
-                      )
-                      (set_local $24
+                      (set_local $4
                         (get_local $0)
                       )
-                      (set_local $29
-                        (get_local $28)
+                      (set_local $3
+                        (get_local $5)
                       )
-                      (set_local $11
+                      (set_local $1
+                        (get_local $2)
+                      )
+                      (set_local $19
                         (i32.const 90)
                       )
                     )
-                  )
-                )
-                (if
-                  (i32.eq
-                    (get_local $11)
-                    (i32.const 90)
-                  )
-                  (loop $while-in$20
-                    (block $while-out$19
-                      (set_local $11
-                        (i32.const 0)
+                    (block
+                      (set_local $7
+                        (get_local $0)
                       )
-                      (set_local $0
-                        (i32.lt_u
-                          (tee_local $3
-                            (i32.sub
-                              (i32.and
-                                (i32.load offset=4
-                                  (get_local $24)
-                                )
-                                (i32.const -8)
-                              )
-                              (get_local $5)
-                            )
-                          )
-                          (get_local $26)
-                        )
+                      (set_local $6
+                        (get_local $2)
                       )
-                      (set_local $17
-                        (select
-                          (get_local $3)
-                          (get_local $26)
-                          (get_local $0)
-                        )
-                      )
-                      (set_local $3
-                        (select
-                          (get_local $24)
-                          (get_local $29)
-                          (get_local $0)
-                        )
-                      )
-                      (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)
-                        )
-                      )
-                      (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)
-                          )
-                        )
-                      )
-                      (br $while-in$20)
                     )
                   )
                 )
                 (if
                   (i32.eq
-                    (get_local $13)
-                    (i32.const 0)
+                    (get_local $19)
+                    (i32.const 90)
                   )
-                  (set_local $6
-                    (get_local $5)
+                  (loop $while-in$20
+                    (set_local $2
+                      (i32.lt_u
+                        (tee_local $0
+                          (i32.sub
+                            (i32.and
+                              (i32.load offset=4
+                                (get_local $3)
+                              )
+                              (i32.const -8)
+                            )
+                            (get_local $9)
+                          )
+                        )
+                        (get_local $4)
+                      )
+                    )
+                    (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)
+                        )
+                      )
+                      (block
+                        (set_local $3
+                          (get_local $0)
+                        )
+                        (br $while-in$20)
+                      )
+                    )
+                    (br_if $while-in$20
+                      (tee_local $3
+                        (i32.load offset=20
+                          (get_local $3)
+                        )
+                      )
+                    )
+                    (block
+                      (set_local $7
+                        (get_local $4)
+                      )
+                      (set_local $6
+                        (get_local $1)
+                      )
+                    )
                   )
+                )
+                (if
+                  (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)
-                                  )
-                                )
-                                (if
-                                  (i32.eq
-                                    (tee_local $2
-                                      (i32.load
-                                        (tee_local $7
-                                          (i32.add
-                                            (get_local $8)
-                                            (i32.const 16)
-                                          )
-                                        )
-                                      )
-                                    )
-                                    (i32.const 0)
-                                  )
-                                  (br $while-out$23)
-                                  (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
+                                (tee_local $3
+                                  (i32.load
+                                    (tee_local $2
+                                      (i32.add
+                                        (get_local $1)
+                                        (i32.const 16)
+                                      )
+                                    )
+                                  )
+                                )
+                                (block
+                                  (set_local $1
+                                    (get_local $3)
+                                  )
+                                  (set_local $0
+                                    (get_local $2)
+                                  )
+                                  (br $while-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
+                                                        (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 8)
+                                                                        )
+                                                                      )
+                                                                    )
+                                                                  )
+                                                                  (i32.const 520192)
+                                                                )
+                                                                (i32.const 16)
+                                                              )
+                                                              (i32.const 4)
+                                                            )
+                                                          )
+                                                          (get_local $2)
+                                                        )
                                                         (tee_local $1
                                                           (i32.and
                                                             (i32.shr_u
                                                               (i32.add
-                                                                (tee_local $2
+                                                                (tee_local $0
                                                                   (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 8)
-                                                                      )
-                                                                    )
+                                                                    (get_local $1)
                                                                   )
                                                                 )
-                                                                (i32.const 520192)
+                                                                (i32.const 245760)
                                                               )
                                                               (i32.const 16)
                                                             )
-                                                            (i32.const 4)
+                                                            (i32.const 2)
                                                           )
                                                         )
+                                                      )
+                                                    )
+                                                    (i32.shr_u
+                                                      (i32.shl
                                                         (get_local $0)
+                                                        (get_local $1)
                                                       )
-                                                      (tee_local $0
-                                                        (i32.and
-                                                          (i32.shr_u
-                                                            (i32.add
-                                                              (tee_local $1
-                                                                (i32.shl
-                                                                  (get_local $2)
-                                                                  (get_local $1)
-                                                                )
-                                                              )
-                                                              (i32.const 245760)
-                                                            )
-                                                            (i32.const 16)
-                                                          )
-                                                          (i32.const 2)
-                                                        )
-                                                      )
+                                                      (i32.const 15)
                                                     )
                                                   )
-                                                  (i32.shr_u
-                                                    (i32.shl
-                                                      (get_local $1)
-                                                      (get_local $0)
-                                                    )
-                                                    (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)
-                                      )
-                                      (i32.const -8)
-                                    )
-                                    (get_local $17)
-                                  )
-                                  (block
-                                    (set_local $22
-                                      (get_local $2)
-                                    )
-                                    (set_local $11
-                                      (i32.const 148)
-                                    )
-                                    (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
-                                            (i32.add
-                                              (get_local $2)
-                                              (i32.const 16)
-                                            )
-                                            (i32.shl
-                                              (i32.shr_u
-                                                (get_local $1)
-                                                (i32.const 31)
-                                              )
-                                              (i32.const 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 0)
-                                  )
-                                  (block
-                                    (set_local $25
-                                      (get_local $2)
-                                    )
-                                    (set_local $37
-                                      (get_local $1)
-                                    )
-                                    (set_local $11
-                                      (i32.const 145)
-                                    )
-                                    (br $while-out$31)
-                                  )
-                                  (block
                                     (set_local $1
-                                      (get_local $4)
+                                      (i32.shl
+                                        (get_local $2)
+                                        (i32.const 1)
+                                      )
                                     )
-                                    (set_local $2
-                                      (get_local $0)
-                                    )
-                                  )
-                                )
-                                (br $while-in$32)
-                              )
-                            )
-                            (if
-                              (i32.eq
-                                (get_local $11)
-                                (i32.const 145)
-                              )
-                              (if
-                                (i32.lt_u
-                                  (get_local $37)
-                                  (i32.load
-                                    (i32.const 192)
-                                  )
-                                )
-                                (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)
-                                  )
-                                  (i32.store offset=8
-                                    (get_local $3)
-                                    (get_local $3)
-                                  )
-                                )
-                              )
-                              (if
-                                (i32.eq
-                                  (get_local $11)
-                                  (i32.const 148)
-                                )
-                                (if
-                                  (i32.and
-                                    (i32.ge_u
-                                      (tee_local $0
+                                    (if
+                                      (tee_local $3
                                         (i32.load
                                           (tee_local $2
                                             (i32.add
-                                              (get_local $22)
-                                              (i32.const 8)
+                                              (i32.add
+                                                (get_local $0)
+                                                (i32.const 16)
+                                              )
+                                              (i32.shl
+                                                (i32.shr_u
+                                                  (get_local $2)
+                                                  (i32.const 31)
+                                                )
+                                                (i32.const 2)
+                                              )
                                             )
                                           )
                                         )
                                       )
-                                      (tee_local $1
-                                        (i32.load
-                                          (i32.const 192)
+                                      (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)
                                       )
                                     )
-                                    (i32.ge_u
-                                      (get_local $22)
-                                      (get_local $1)
-                                    )
                                   )
-                                  (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)
+                                )
+                                (if
+                                  (i32.lt_u
+                                    (get_local $0)
+                                    (i32.load
+                                      (i32.const 192)
                                     )
                                   )
                                   (call_import $_abort)
+                                  (block
+                                    (i32.store
+                                      (get_local $0)
+                                      (get_local $4)
+                                    )
+                                    (i32.store offset=24
+                                      (get_local $4)
+                                      (get_local $1)
+                                    )
+                                    (i32.store offset=12
+                                      (get_local $4)
+                                      (get_local $4)
+                                    )
+                                    (i32.store offset=8
+                                      (get_local $4)
+                                      (get_local $4)
+                                    )
+                                    (br $do-once$29)
+                                  )
                                 )
+                                (br $jumpthreading$outer$1)
+                              )
+                              (if
+                                (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)
+                                  )
+                                )
+                                (block
+                                  (i32.store offset=12
+                                    (get_local $3)
+                                    (get_local $4)
+                                  )
+                                  (i32.store
+                                    (get_local $1)
+                                    (get_local $4)
+                                  )
+                                  (i32.store offset=8
+                                    (get_local $4)
+                                    (get_local $3)
+                                  )
+                                  (i32.store offset=12
+                                    (get_local $4)
+                                    (get_local $0)
+                                  )
+                                  (i32.store offset=24
+                                    (get_local $4)
+                                    (i32.const 0)
+                                  )
+                                )
+                                (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
+                              (get_local $3)
+                              (i32.load
+                                (tee_local $3
+                                  (i32.add
+                                    (get_local $1)
+                                    (i32.const 4)
+                                  )
+                                )
+                              )
+                            )
+                            (get_local $4)
+                          )
+                          (block
+                            (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)
+                    )
+                  )
+                  (if
+                    (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.eq
+                        (tee_local $2
+                          (call_import $_sbrk
+                            (get_local $1)
+                          )
+                        )
+                        (i32.add
+                          (i32.load
+                            (get_local $4)
+                          )
+                          (i32.load
+                            (get_local $3)
+                          )
+                        )
+                      )
+                      (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)
+                          )
+                        )
+                        (tee_local $1
+                          (if
+                            (i32.and
+                              (tee_local $3
+                                (i32.add
+                                  (tee_local $4
+                                    (i32.load
+                                      (i32.const 652)
+                                    )
+                                  )
+                                  (i32.const -1)
+                                )
+                              )
+                              (tee_local $1
+                                (get_local $2)
                               )
                             )
                             (i32.add
-                              (i32.load
-                                (get_local $4)
+                              (i32.sub
+                                (get_local $9)
+                                (get_local $1)
                               )
-                              (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)
-                              )
-                            )
-                          )
-                          (block
-                            (set_local $30
-                              (get_local $3)
-                            )
-                            (set_local $21
-                              (get_local $0)
-                            )
-                            (set_local $11
-                              (i32.const 183)
-                            )
-                          )
-                        )
-                      )
-                    )
-                  )
-                )
-                (block $do-once$39
-                  (if
-                    (i32.eq
-                      (get_local $11)
-                      (i32.const 173)
-                    )
-                    (if
-                      (i32.ne
-                        (tee_local $7
-                          (call_import $_sbrk
-                            (i32.const 0)
-                          )
-                        )
-                        (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)
-                                    )
-                                  )
-                                )
-                              )
-                            )
-                          )
-                        )
-                        (if
-                          (i32.and
-                            (i32.gt_u
-                              (get_local $12)
-                              (get_local $6)
-                            )
-                            (i32.lt_u
-                              (get_local $12)
-                              (i32.const 2147483647)
-                            )
-                          )
-                          (block
-                            (if
-                              (i32.ne
-                                (tee_local $0
-                                  (i32.load
-                                    (i32.const 616)
-                                  )
-                                )
-                                (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)
-                                  )
-                                )
-                              )
-                            )
-                            (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)
-                                )
-                              )
-                              (block
-                                (set_local $21
-                                  (get_local $12)
-                                )
-                                (set_local $11
-                                  (i32.const 183)
-                                )
-                              )
-                            )
-                          )
-                        )
-                      )
-                    )
-                  )
-                )
-                (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 $5)
-                            (get_local $21)
-                          )
-                          (i32.and
-                            (i32.lt_u
-                              (get_local $21)
-                              (i32.const 2147483647)
-                            )
-                            (i32.ne
-                              (get_local $30)
-                              (i32.const -1)
-                            )
-                          )
-                        )
-                        (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)
-                                    )
-                                  )
+                                  (get_local $3)
+                                  (get_local $1)
                                 )
                                 (i32.sub
                                   (i32.const 0)
-                                  (get_local $0)
-                                )
-                              )
-                            )
-                            (i32.const 2147483647)
-                          )
-                          (if
-                            (i32.eq
-                              (call_import $_sbrk
-                                (get_local $0)
-                              )
-                              (i32.const -1)
-                            )
-                            (block
-                              (drop
-                                (call_import $_sbrk
                                   (get_local $4)
                                 )
                               )
-                              (br $label$break$L279)
                             )
-                            (set_local $21
-                              (i32.add
-                                (get_local $0)
-                                (get_local $21)
+                            (get_local $9)
+                          )
+                        )
+                      )
+                    )
+                    (if
+                      (i32.and
+                        (i32.gt_u
+                          (get_local $1)
+                          (get_local $0)
+                        )
+                        (i32.lt_u
+                          (get_local $1)
+                          (i32.const 2147483647)
+                        )
+                      )
+                      (block
+                        (if
+                          (tee_local $4
+                            (i32.load
+                              (i32.const 616)
+                            )
+                          )
+                          (br_if $label$break$L279
+                            (i32.or
+                              (i32.le_u
+                                (get_local $3)
+                                (get_local $6)
+                              )
+                              (i32.gt_u
+                                (get_local $3)
+                                (get_local $4)
                               )
                             )
                           )
                         )
-                      )
-                      (if
-                        (i32.ne
-                          (get_local $30)
-                          (i32.const -1)
+                        (br_if $jumpthreading$inner$12
+                          (i32.eq
+                            (tee_local $3
+                              (call_import $_sbrk
+                                (get_local $1)
+                              )
+                            )
+                            (get_local $2)
+                          )
                         )
                         (block
-                          (set_local $14
-                            (get_local $30)
+                          (set_local $2
+                            (get_local $3)
                           )
-                          (set_local $19
-                            (get_local $21)
-                          )
-                          (br $label$break$L257
-                            (i32.const 193)
-                          )
+                          (br $jumpthreading$inner$4)
                         )
                       )
                     )
                   )
                 )
-                (i32.store
-                  (i32.const 620)
-                  (i32.or
-                    (i32.load
-                      (i32.const 620)
-                    )
-                    (i32.const 4)
-                  )
-                )
-                (i32.const 190)
+                (br $label$break$L279)
               )
-              (i32.const 190)
-            )
-          )
-        )
-        (i32.const 190)
-      )
-      (if
-        (i32.lt_u
-          (get_local $10)
-          (i32.const 2147483647)
-        )
-        (block
-          (set_local $3
-            (i32.and
-              (i32.ne
-                (tee_local $0
-                  (call_import $_sbrk
-                    (get_local $10)
-                  )
-                )
-                (i32.const -1)
-              )
-              (i32.ne
-                (tee_local $4
-                  (call_import $_sbrk
-                    (i32.const 0)
-                  )
-                )
-                (i32.const -1)
-              )
-            )
-          )
-          (if
-            (i32.and
-              (i32.lt_u
-                (get_local $0)
-                (get_local $4)
-              )
-              (get_local $3)
-            )
-            (if
-              (i32.gt_u
-                (tee_local $4
-                  (i32.sub
-                    (get_local $4)
-                    (get_local $0)
-                  )
-                )
-                (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)
-                )
-              )
-            )
-          )
-        )
-      )
-    )
-    (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.load
-              (i32.const 612)
-            )
-          )
-          (i32.store
-            (i32.const 612)
-            (get_local $0)
-          )
-        )
-        (block $do-once$44
-          (if
-            (i32.eq
-              (tee_local $0
-                (i32.load
-                  (i32.const 200)
-                )
-              )
-              (i32.const 0)
-            )
-            (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)
-                  )
+              (set_local $3
+                (i32.sub
                   (i32.const 0)
+                  (get_local $1)
                 )
               )
-              (i32.store
-                (i32.const 200)
-                (tee_local $0
-                  (i32.add
-                    (get_local $14)
-                    (tee_local $1
-                      (select
-                        (i32.const 0)
-                        (i32.and
+              (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
-                            (i32.const 0)
-                            (get_local $0)
+                            (get_local $5)
+                            (get_local $1)
                           )
-                          (i32.const 7)
+                          (tee_local $4
+                            (i32.load
+                              (i32.const 656)
+                            )
+                          )
                         )
+                        (i32.sub
+                          (i32.const 0)
+                          (get_local $4)
+                        )
+                      )
+                    )
+                    (i32.const 2147483647)
+                  )
+                  (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.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)
+              (br_if $jumpthreading$inner$12
+                (i32.ne
+                  (get_local $2)
+                  (i32.const -1)
                 )
               )
             )
-            (block
-              (set_local $7
-                (i32.const 624)
+            (i32.store
+              (i32.const 620)
+              (i32.or
+                (i32.load
+                  (i32.const 620)
+                )
+                (i32.const 4)
               )
-              (loop $while-in$49
-                (block $while-out$48
-                  (if
+            )
+          )
+        )
+        (if
+          (i32.lt_u
+            (get_local $9)
+            (i32.const 2147483647)
+          )
+          (if
+            (i32.and
+              (i32.lt_u
+                (tee_local $2
+                  (call_import $_sbrk
+                    (get_local $9)
+                  )
+                )
+                (tee_local $1
+                  (call_import $_sbrk
+                    (i32.const 0)
+                  )
+                )
+              )
+              (i32.and
+                (i32.ne
+                  (get_local $2)
+                  (i32.const -1)
+                )
+                (i32.ne
+                  (get_local $1)
+                  (i32.const -1)
+                )
+              )
+            )
+            (br_if $jumpthreading$inner$12
+              (i32.gt_u
+                (tee_local $1
+                  (i32.sub
+                    (get_local $1)
+                    (get_local $2)
+                  )
+                )
+                (i32.add
+                  (get_local $0)
+                  (i32.const 40)
+                )
+              )
+            )
+          )
+        )
+        (br $jumpthreading$outer$12)
+      )
+      (i32.store
+        (i32.const 608)
+        (tee_local $3
+          (i32.add
+            (i32.load
+              (i32.const 608)
+            )
+            (get_local $1)
+          )
+        )
+      )
+      (if
+        (i32.gt_u
+          (get_local $3)
+          (i32.load
+            (i32.const 612)
+          )
+        )
+        (i32.store
+          (i32.const 612)
+          (get_local $3)
+        )
+      )
+      (block $do-once$44
+        (if
+          (tee_local $7
+            (i32.load
+              (i32.const 200)
+            )
+          )
+          (block
+            (set_local $3
+              (i32.const 624)
+            )
+            (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
+                  )
+                  (br_if $while-in$49
+                    (tee_local $3
+                      (i32.load offset=8
                         (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)
-                        )
-                      )
-                      (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.const 0)
+                    (i32.ge_u
+                      (get_local $7)
+                      (get_local $9)
+                    )
                   )
-                  (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)
                       )
                     )
+                    (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 0)
+                            (i32.and
+                              (get_local $2)
+                              (i32.const 7)
+                            )
+                          )
+                        )
+                      )
+                    )
+                    (set_local $1
+                      (i32.add
+                        (i32.sub
+                          (get_local $1)
+                          (get_local $2)
+                        )
+                        (i32.load
+                          (i32.const 188)
+                        )
+                      )
+                    )
+                    (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 664)
+                      )
+                    )
+                    (br $do-once$44)
+                  )
+                )
+              )
+            )
+            (set_local $10
+              (if
+                (i32.lt_u
+                  (get_local $2)
+                  (tee_local $3
+                    (i32.load
+                      (i32.const 192)
+                    )
+                  )
+                )
+                (block
+                  (i32.store
+                    (i32.const 192)
+                    (get_local $2)
+                  )
+                  (get_local $2)
+                )
+                (get_local $3)
+              )
+            )
+            (set_local $5
+              (i32.add
+                (get_local $2)
+                (get_local $1)
+              )
+            )
+            (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 $3)
+                      )
+                      (get_local $5)
+                    )
                     (block
-                      (i32.store
-                        (get_local $42)
+                      (set_local $4
+                        (get_local $3)
+                      )
+                      (br $jumpthreading$inner$10)
+                    )
+                  )
+                  (br_if $while-in$51
+                    (tee_local $3
+                      (i32.load offset=8
+                        (get_local $3)
+                      )
+                    )
+                  )
+                  (set_local $4
+                    (i32.const 624)
+                  )
+                )
+                (br $jumpthreading$outer$10)
+              )
+              (if
+                (i32.and
+                  (i32.load offset=12
+                    (get_local $3)
+                  )
+                  (i32.const 8)
+                )
+                (set_local $4
+                  (i32.const 624)
+                )
+                (block
+                  (i32.store
+                    (get_local $4)
+                    (get_local $2)
+                  )
+                  (i32.store
+                    (tee_local $3
+                      (i32.add
+                        (get_local $3)
+                        (i32.const 4)
+                      )
+                    )
+                    (i32.add
+                      (i32.load
+                        (get_local $3)
+                      )
+                      (get_local $1)
+                    )
+                  )
+                  (set_local $6
+                    (i32.add
+                      (tee_local $9
                         (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)
+                          (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)
+                            (i32.and
+                              (get_local $1)
+                              (i32.const 7)
+                            )
                           )
-                          (i32.const 0)
                         )
                       )
-                      (set_local $0
-                        (i32.add
-                          (get_local $0)
-                          (tee_local $1
+                      (get_local $0)
+                    )
+                  )
+                  (set_local $2
+                    (i32.sub
+                      (i32.sub
+                        (tee_local $8
+                          (i32.add
+                            (get_local $5)
                             (select
-                              (i32.const 0)
                               (i32.and
                                 (i32.sub
                                   (i32.const 0)
-                                  (get_local $1)
+                                  (tee_local $1
+                                    (i32.add
+                                      (get_local $5)
+                                      (i32.const 8)
+                                    )
+                                  )
                                 )
                                 (i32.const 7)
                               )
+                              (i32.const 0)
+                              (i32.and
+                                (get_local $1)
+                                (i32.const 7)
+                              )
+                            )
+                          )
+                        )
+                        (get_local $9)
+                      )
+                      (get_local $0)
+                    )
+                  )
+                  (i32.store offset=4
+                    (get_local $9)
+                    (i32.or
+                      (get_local $0)
+                      (i32.const 3)
+                    )
+                  )
+                  (block $do-once$52
+                    (if
+                      (i32.eq
+                        (get_local $8)
+                        (get_local $7)
+                      )
+                      (block
+                        (i32.store
+                          (i32.const 188)
+                          (tee_local $0
+                            (i32.add
+                              (i32.load
+                                (i32.const 188)
+                              )
                               (get_local $2)
                             )
                           )
                         )
-                      )
-                      (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 $6)
+                        )
+                        (i32.store offset=4
+                          (get_local $6)
+                          (i32.or
+                            (get_local $0)
+                            (i32.const 1)
                           )
                         )
                       )
-                      (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)
+                      (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 $2)
+                                )
+                              )
+                            )
+                            (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 $6)
+                                (get_local $0)
+                              )
+                              (get_local $0)
+                            )
+                            (br $do-once$52)
+                          )
                         )
-                      )
-                      (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)
-                        )
-                      )
-                      (br $do-once$44)
-                    )
-                  )
-                )
-              )
-              (set_local $4
-                (if
-                  (i32.lt_u
-                    (get_local $14)
-                    (tee_local $1
-                      (i32.load
-                        (i32.const 192)
-                      )
-                    )
-                  )
-                  (block
-                    (i32.store
-                      (i32.const 192)
-                      (get_local $14)
-                    )
-                    (get_local $14)
-                  )
-                  (get_local $1)
-                )
-              )
-              (set_local $3
-                (i32.add
-                  (get_local $14)
-                  (get_local $19)
-                )
-              )
-              (set_local $1
-                (i32.const 624)
-              )
-              (loop $while-in$51
-                (block $while-out$50
-                  (if
-                    (i32.eq
-                      (i32.load
-                        (get_local $1)
-                      )
-                      (get_local $3)
-                    )
-                    (block
-                      (set_local $44
-                        (get_local $1)
-                      )
-                      (set_local $38
-                        (get_local $1)
-                      )
-                      (set_local $11
-                        (i32.const 211)
-                      )
-                      (br $while-out$50)
-                    )
-                  )
-                  (if
-                    (i32.eq
-                      (tee_local $1
-                        (i32.load offset=8
-                          (get_local $1)
-                        )
-                      )
-                      (i32.const 0)
-                    )
-                    (block
-                      (set_local $27
-                        (i32.const 624)
-                      )
-                      (br $while-out$50)
-                    )
-                  )
-                  (br $while-in$51)
-                )
-              )
-              (if
-                (i32.eq
-                  (get_local $11)
-                  (i32.const 211)
-                )
-                (if
-                  (i32.eq
-                    (i32.and
-                      (i32.load offset=12
-                        (get_local $38)
-                      )
-                      (i32.const 8)
-                    )
-                    (i32.const 0)
-                  )
-                  (block
-                    (i32.store
-                      (get_local $44)
-                      (get_local $14)
-                    )
-                    (set_local $1
-                      (i32.add
-                        (i32.load
-                          (tee_local $2
+                        (i32.store
+                          (tee_local $0
                             (i32.add
-                              (get_local $38)
+                              (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.lt_u
+                                        (get_local $1)
+                                        (i32.const 256)
+                                      )
+                                      (block
+                                        (set_local $3
+                                          (i32.load offset=12
+                                            (get_local $8)
+                                          )
+                                        )
+                                        (block $do-once$55
+                                          (if
+                                            (i32.ne
+                                              (tee_local $4
+                                                (i32.load offset=8
+                                                  (get_local $8)
+                                                )
+                                              )
+                                              (tee_local $1
+                                                (i32.add
+                                                  (i32.const 216)
+                                                  (i32.shl
+                                                    (i32.shl
+                                                      (get_local $0)
+                                                      (i32.const 1)
+                                                    )
+                                                    (i32.const 2)
+                                                  )
+                                                )
+                                              )
+                                            )
+                                            (block
+                                              (if
+                                                (i32.lt_u
+                                                  (get_local $4)
+                                                  (get_local $10)
+                                                )
+                                                (call_import $_abort)
+                                              )
+                                              (br_if $do-once$55
+                                                (i32.eq
+                                                  (i32.load offset=12
+                                                    (get_local $4)
+                                                  )
+                                                  (get_local $8)
+                                                )
+                                              )
+                                              (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)
+                                                )
+                                              )
+                                            )
+                                            (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
+                                              (if
+                                                (i32.lt_u
+                                                  (get_local $3)
+                                                  (get_local $10)
+                                                )
+                                                (call_import $_abort)
+                                              )
+                                              (if
+                                                (i32.eq
+                                                  (i32.load
+                                                    (tee_local $0
+                                                      (i32.add
+                                                        (get_local $3)
+                                                        (i32.const 8)
+                                                      )
+                                                    )
+                                                  )
+                                                  (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)
+                                                          )
+                                                        )
+                                                        (i32.const 4)
+                                                      )
+                                                    )
+                                                  )
+                                                )
+                                                (set_local $0
+                                                  (get_local $3)
+                                                )
+                                                (if
+                                                  (i32.eqz
+                                                    (tee_local $1
+                                                      (i32.load
+                                                        (get_local $0)
+                                                      )
+                                                    )
+                                                  )
+                                                  (block
+                                                    (set_local $11
+                                                      (i32.const 0)
+                                                    )
+                                                    (br $do-once$59)
+                                                  )
+                                                )
+                                              )
+                                              (loop $while-in$62
+                                                (if
+                                                  (tee_local $4
+                                                    (i32.load
+                                                      (tee_local $3
+                                                        (i32.add
+                                                          (get_local $1)
+                                                          (i32.const 20)
+                                                        )
+                                                      )
+                                                    )
+                                                  )
+                                                  (block
+                                                    (set_local $1
+                                                      (get_local $4)
+                                                    )
+                                                    (set_local $0
+                                                      (get_local $3)
+                                                    )
+                                                    (br $while-in$62)
+                                                  )
+                                                )
+                                                (if
+                                                  (tee_local $4
+                                                    (i32.load
+                                                      (tee_local $3
+                                                        (i32.add
+                                                          (get_local $1)
+                                                          (i32.const 16)
+                                                        )
+                                                      )
+                                                    )
+                                                  )
+                                                  (block
+                                                    (set_local $1
+                                                      (get_local $4)
+                                                    )
+                                                    (set_local $0
+                                                      (get_local $3)
+                                                    )
+                                                    (br $while-in$62)
+                                                  )
+                                                )
+                                              )
+                                              (if
+                                                (i32.lt_u
+                                                  (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)
+                                              )
+                                              (if
+                                                (i32.ne
+                                                  (i32.load
+                                                    (tee_local $3
+                                                      (i32.add
+                                                        (get_local $4)
+                                                        (i32.const 12)
+                                                      )
+                                                    )
+                                                  )
+                                                  (get_local $8)
+                                                )
+                                                (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)
+                                                  )
+                                                  (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)
+                                                    )
+                                                  )
+                                                )
+                                              )
+                                            )
+                                            (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)
+                                                  )
+                                                )
+                                              )
+                                              (br $label$break$L331)
+                                            )
+                                            (block
+                                              (if
+                                                (i32.lt_u
+                                                  (get_local $7)
+                                                  (i32.load
+                                                    (i32.const 192)
+                                                  )
+                                                )
+                                                (call_import $_abort)
+                                              )
+                                              (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)
+                                                )
+                                              )
+                                            )
+                                          )
+                                        )
+                                        (if
+                                          (i32.lt_u
+                                            (get_local $11)
+                                            (tee_local $3
+                                              (i32.load
+                                                (i32.const 192)
+                                              )
+                                            )
+                                          )
+                                          (call_import $_abort)
+                                        )
+                                        (i32.store offset=24
+                                          (get_local $11)
+                                          (get_local $7)
+                                        )
+                                        (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)
+                                            )
+                                          )
+                                        )
+                                      )
+                                    )
+                                  )
+                                  (set_local $2
+                                    (i32.add
+                                      (get_local $5)
+                                      (get_local $2)
+                                    )
+                                  )
+                                  (i32.add
+                                    (get_local $8)
+                                    (get_local $5)
+                                  )
+                                )
+                                (get_local $8)
+                              )
                               (i32.const 4)
                             )
                           )
-                        )
-                        (get_local $19)
-                      )
-                    )
-                    (i32.store
-                      (get_local $2)
-                      (get_local $1)
-                    )
-                    (set_local $9
-                      (i32.eq
-                        (i32.and
-                          (tee_local $1
-                            (i32.add
-                              (get_local $14)
-                              (i32.const 8)
-                            )
-                          )
-                          (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 7)
-                        )
-                        (i32.const 0)
-                      )
-                    )
-                    (set_local $1
-                      (i32.sub
-                        (tee_local $3
-                          (i32.add
-                            (get_local $3)
-                            (select
-                              (i32.const 0)
-                              (i32.and
-                                (i32.sub
-                                  (i32.const 0)
-                                  (get_local $2)
-                                )
-                                (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)
-                                )
-                                (i32.const 7)
-                              )
-                              (get_local $9)
-                            )
-                          )
-                        )
-                      )
-                    )
-                    (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 $7)
-                      (i32.or
-                        (get_local $6)
-                        (i32.const 3)
-                      )
-                    )
-                    (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)
-                              )
-                            )
-                          )
-                          (i32.store
-                            (i32.const 200)
-                            (get_local $5)
-                          )
-                          (i32.store offset=4
-                            (get_local $5)
-                            (i32.or
+                          (i32.and
+                            (i32.load
                               (get_local $0)
-                              (i32.const 1)
                             )
+                            (i32.const -2)
                           )
                         )
-                        (block
-                          (if
-                            (i32.eq
-                              (get_local $3)
-                              (i32.load
-                                (i32.const 196)
+                        (i32.store offset=4
+                          (get_local $6)
+                          (i32.or
+                            (get_local $2)
+                            (i32.const 1)
+                          )
+                        )
+                        (i32.store
+                          (i32.add
+                            (get_local $6)
+                            (get_local $2)
+                          )
+                          (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
-                              (i32.store
-                                (i32.const 184)
-                                (tee_local $0
-                                  (i32.add
+                            (block $do-once$67
+                              (if
+                                (i32.and
+                                  (tee_local $2
                                     (i32.load
-                                      (i32.const 184)
+                                      (i32.const 176)
                                     )
-                                    (get_local $12)
+                                  )
+                                  (tee_local $1
+                                    (i32.shl
+                                      (i32.const 1)
+                                      (get_local $1)
+                                    )
+                                  )
+                                )
+                                (block
+                                  (if
+                                    (i32.ge_u
+                                      (tee_local $1
+                                        (i32.load
+                                          (tee_local $2
+                                            (i32.add
+                                              (get_local $0)
+                                              (i32.const 8)
+                                            )
+                                          )
+                                        )
+                                      )
+                                      (i32.load
+                                        (i32.const 192)
+                                      )
+                                    )
+                                    (block
+                                      (set_local $22
+                                        (get_local $2)
+                                      )
+                                      (set_local $17
+                                        (get_local $1)
+                                      )
+                                      (br $do-once$67)
+                                    )
+                                  )
+                                  (call_import $_abort)
+                                )
+                                (block
+                                  (i32.store
+                                    (i32.const 176)
+                                    (i32.or
+                                      (get_local $2)
+                                      (get_local $1)
+                                    )
+                                  )
+                                  (set_local $22
+                                    (i32.add
+                                      (get_local $0)
+                                      (i32.const 8)
+                                    )
+                                  )
+                                  (set_local $17
+                                    (get_local $0)
                                   )
                                 )
                               )
-                              (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.add
-                                  (get_local $5)
-                                  (get_local $0)
-                                )
-                                (get_local $0)
-                              )
-                              (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 $0
-                            (i32.and
-                              (i32.load
-                                (tee_local $1
-                                  (i32.add
-                                    (if
-                                      (i32.eq
-                                        (i32.and
-                                          (tee_local $0
-                                            (i32.load offset=4
-                                              (get_local $3)
-                                            )
-                                          )
-                                          (i32.const 3)
-                                        )
-                                        (i32.const 1)
+                        )
+                        (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)
                                       )
-                                      (block
-                                        (set_local $10
-                                          (i32.and
-                                            (get_local $0)
-                                            (i32.const -8)
-                                          )
+                                    )
+                                    (block
+                                      (br_if $do-once$69
+                                        (i32.const 31)
+                                        (i32.gt_u
+                                          (get_local $2)
+                                          (i32.const 16777215)
                                         )
-                                        (set_local $9
+                                      )
+                                      (i32.or
+                                        (i32.and
                                           (i32.shr_u
-                                            (get_local $0)
-                                            (i32.const 3)
-                                          )
-                                        )
-                                        (block $label$break$L331
-                                          (if
-                                            (i32.lt_u
-                                              (get_local $0)
-                                              (i32.const 256)
-                                            )
-                                            (block
-                                              (set_local $1
-                                                (i32.load offset=12
-                                                  (get_local $3)
-                                                )
-                                              )
-                                              (block $do-once$55
-                                                (if
-                                                  (i32.ne
-                                                    (tee_local $0
-                                                      (i32.load offset=8
+                                            (get_local $2)
+                                            (i32.add
+                                              (tee_local $0
+                                                (i32.add
+                                                  (i32.sub
+                                                    (i32.const 14)
+                                                    (i32.or
+                                                      (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 8)
+                                                                      )
+                                                                    )
+                                                                  )
+                                                                )
+                                                                (i32.const 520192)
+                                                              )
+                                                              (i32.const 16)
+                                                            )
+                                                            (i32.const 4)
+                                                          )
+                                                        )
                                                         (get_local $3)
                                                       )
-                                                    )
-                                                    (tee_local $2
-                                                      (i32.add
-                                                        (i32.const 216)
-                                                        (i32.shl
-                                                          (i32.shl
-                                                            (get_local $9)
-                                                            (i32.const 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 16)
                                                           )
                                                           (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)
-                                                      )
-                                                    )
-                                                    (call_import $_abort)
-                                                  )
-                                                )
-                                              )
-                                              (if
-                                                (i32.eq
-                                                  (get_local $1)
-                                                  (get_local $0)
-                                                )
-                                                (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)
-                                                      )
-                                                    )
-                                                  )
-                                                  (br $label$break$L331)
-                                                )
-                                              )
-                                              (block $do-once$57
-                                                (if
-                                                  (i32.eq
-                                                    (get_local $1)
-                                                    (get_local $2)
-                                                  )
-                                                  (set_local $39
-                                                    (i32.add
+                                                  (i32.shr_u
+                                                    (i32.shl
+                                                      (get_local $0)
                                                       (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)
+                                                    (i32.const 15)
                                                   )
                                                 )
                                               )
-                                              (i32.store offset=12
-                                                (get_local $0)
-                                                (get_local $1)
-                                              )
-                                              (i32.store
-                                                (get_local $39)
-                                                (get_local $0)
-                                              )
-                                            )
-                                            (block
-                                              (set_local $0
-                                                (i32.load offset=24
-                                                  (get_local $3)
-                                                )
-                                              )
-                                              (block $do-once$59
-                                                (if
-                                                  (i32.eq
-                                                    (tee_local $1
-                                                      (i32.load offset=12
-                                                        (get_local $3)
-                                                      )
-                                                    )
-                                                    (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)
-                                                            )
-                                                          )
-                                                        )
-                                                        (br $while-in$62)
-                                                      )
-                                                    )
-                                                    (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)
-                                                        )
-                                                      )
-                                                    )
-                                                  )
-                                                  (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)
-                                                    )
-                                                  )
-                                                )
-                                              )
-                                              (br_if $label$break$L331
-                                                (i32.eq
-                                                  (get_local $0)
-                                                  (i32.const 0)
-                                                )
-                                              )
-                                              (block $do-once$63
-                                                (if
-                                                  (i32.eq
-                                                    (get_local $3)
-                                                    (i32.load
-                                                      (tee_local $2
-                                                        (i32.add
-                                                          (i32.const 480)
-                                                          (i32.shl
-                                                            (tee_local $1
-                                                              (i32.load offset=28
-                                                                (get_local $3)
-                                                              )
-                                                            )
-                                                            (i32.const 2)
-                                                          )
-                                                        )
-                                                      )
-                                                    )
-                                                  )
-                                                  (block
-                                                    (i32.store
-                                                      (get_local $2)
-                                                      (get_local $18)
-                                                    )
-                                                    (br_if $do-once$63
-                                                      (i32.ne
-                                                        (get_local $18)
-                                                        (i32.const 0)
-                                                      )
-                                                    )
-                                                    (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 $label$break$L331)
-                                                  )
-                                                  (block
-                                                    (if
-                                                      (i32.lt_u
-                                                        (get_local $0)
-                                                        (i32.load
-                                                          (i32.const 192)
-                                                        )
-                                                      )
-                                                      (call_import $_abort)
-                                                    )
-                                                    (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)
-                                                      )
-                                                    )
-                                                  )
-                                                )
-                                              )
-                                              (if
-                                                (i32.lt_u
-                                                  (get_local $18)
-                                                  (tee_local $1
-                                                    (i32.load
-                                                      (i32.const 192)
-                                                    )
-                                                  )
-                                                )
-                                                (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.const 0)
-                                                )
-                                                (if
-                                                  (i32.lt_u
-                                                    (get_local $0)
-                                                    (get_local $1)
-                                                  )
-                                                  (call_import $_abort)
-                                                  (block
-                                                    (i32.store offset=16
-                                                      (get_local $18)
-                                                      (get_local $0)
-                                                    )
-                                                    (i32.store offset=24
-                                                      (get_local $0)
-                                                      (get_local $18)
-                                                    )
-                                                  )
-                                                )
-                                              )
-                                              (br_if $label$break$L331
-                                                (i32.eq
-                                                  (tee_local $0
-                                                    (i32.load offset=4
-                                                      (get_local $2)
-                                                    )
-                                                  )
-                                                  (i32.const 0)
-                                                )
-                                              )
-                                              (if
-                                                (i32.lt_u
-                                                  (get_local $0)
-                                                  (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)
-                                                  )
-                                                )
-                                              )
+                                              (i32.const 7)
                                             )
                                           )
-                                        )
-                                        (set_local $4
-                                          (i32.add
-                                            (get_local $10)
-                                            (get_local $12)
-                                          )
-                                        )
-                                        (i32.add
-                                          (get_local $3)
-                                          (get_local $10)
-                                        )
-                                      )
-                                      (block
-                                        (set_local $4
-                                          (get_local $12)
-                                        )
-                                        (get_local $3)
-                                      )
-                                    )
-                                    (i32.const 4)
-                                  )
-                                )
-                              )
-                              (i32.const -2)
-                            )
-                          )
-                          (i32.store
-                            (get_local $1)
-                            (get_local $0)
-                          )
-                          (i32.store offset=4
-                            (get_local $5)
-                            (i32.or
-                              (get_local $4)
-                              (i32.const 1)
-                            )
-                          )
-                          (i32.store
-                            (i32.add
-                              (get_local $5)
-                              (get_local $4)
-                            )
-                            (get_local $4)
-                          )
-                          (set_local $1
-                            (i32.shr_u
-                              (get_local $4)
-                              (i32.const 3)
-                            )
-                          )
-                          (if
-                            (i32.lt_u
-                              (get_local $4)
-                              (i32.const 256)
-                            )
-                            (block
-                              (set_local $2
-                                (i32.add
-                                  (i32.const 216)
-                                  (i32.shl
-                                    (i32.shl
-                                      (get_local $1)
-                                      (i32.const 1)
-                                    )
-                                    (i32.const 2)
-                                  )
-                                )
-                              )
-                              (block $do-once$67
-                                (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.shl
+                                          (get_local $0)
+                                          (i32.const 1)
                                         )
                                       )
                                     )
                                     (i32.const 0)
                                   )
-                                  (block
-                                    (i32.store
-                                      (i32.const 176)
-                                      (i32.or
-                                        (get_local $0)
-                                        (get_local $1)
-                                      )
-                                    )
-                                    (set_local $8
-                                      (i32.add
-                                        (get_local $2)
-                                        (i32.const 8)
-                                      )
-                                    )
-                                    (set_local $33
-                                      (get_local $2)
-                                    )
-                                  )
-                                  (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)
-                                      )
-                                    )
-                                    (call_import $_abort)
-                                  )
                                 )
                               )
-                              (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.const 2)
                             )
                           )
-                          (set_local $2
+                        )
+                        (i32.store offset=28
+                          (get_local $6)
+                          (get_local $3)
+                        )
+                        (i32.store offset=4
+                          (tee_local $0
                             (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)
-                                      )
-                                      (i32.const 0)
-                                      (block
-                                        (br_if $do-once$69
-                                          (i32.const 31)
-                                          (i32.gt_u
-                                            (get_local $4)
-                                            (i32.const 16777215)
-                                          )
-                                        )
-                                        (set_local $1
-                                          (i32.shl
-                                            (tee_local $0
-                                              (i32.add
-                                                (i32.sub
-                                                  (i32.const 14)
-                                                  (i32.or
-                                                    (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.const 16)
-                                                                      )
-                                                                      (i32.const 8)
-                                                                    )
-                                                                  )
-                                                                )
-                                                              )
-                                                              (i32.const 520192)
-                                                            )
-                                                            (i32.const 16)
-                                                          )
-                                                          (i32.const 4)
-                                                        )
-                                                      )
-                                                      (get_local $0)
-                                                    )
-                                                    (tee_local $0
-                                                      (i32.and
-                                                        (i32.shr_u
-                                                          (i32.add
-                                                            (tee_local $1
-                                                              (i32.shl
-                                                                (get_local $2)
-                                                                (get_local $1)
-                                                              )
-                                                            )
-                                                            (i32.const 245760)
-                                                          )
-                                                          (i32.const 16)
-                                                        )
-                                                        (i32.const 2)
-                                                      )
-                                                    )
-                                                  )
-                                                )
-                                                (i32.shr_u
-                                                  (i32.shl
-                                                    (get_local $1)
-                                                    (get_local $0)
-                                                  )
-                                                  (i32.const 15)
-                                                )
-                                              )
-                                            )
-                                            (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.const 2)
-                              )
+                              (get_local $6)
+                              (i32.const 16)
                             )
                           )
-                          (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.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)
-                                )
-                              )
-                              (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)
-                              )
-                              (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 $2
-                            (i32.load
-                              (get_local $2)
-                            )
-                          )
-                          (loop $while-in$72
-                            (block $while-out$71
-                              (if
-                                (i32.eq
-                                  (i32.and
-                                    (i32.load offset=4
-                                      (get_local $2)
-                                    )
-                                    (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
+                              (tee_local $0
                                 (i32.shl
-                                  (get_local $1)
+                                  (i32.const 1)
+                                  (get_local $3)
+                                )
+                              )
+                            )
+                          )
+                          (block
+                            (i32.store
+                              (i32.const 180)
+                              (i32.or
+                                (get_local $4)
+                                (get_local $0)
+                              )
+                            )
+                            (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 $3
+                          (i32.shl
+                            (get_local $2)
+                            (select
+                              (i32.const 0)
+                              (i32.sub
+                                (i32.const 25)
+                                (i32.shr_u
+                                  (get_local $3)
                                   (i32.const 1)
                                 )
                               )
-                              (if
-                                (i32.eq
-                                  (tee_local $0
+                              (i32.eq
+                                (get_local $3)
+                                (i32.const 31)
+                              )
+                            )
+                          )
+                        )
+                        (set_local $0
+                          (i32.load
+                            (get_local $1)
+                          )
+                        )
+                        (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)
+                                    )
+                                    (get_local $2)
+                                  )
+                                )
+                                (set_local $1
+                                  (i32.shl
+                                    (get_local $3)
+                                    (i32.const 1)
+                                  )
+                                )
+                                (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)
+                                  (block
+                                    (set_local $3
+                                      (get_local $1)
+                                    )
+                                    (set_local $0
+                                      (get_local $4)
+                                    )
+                                    (br $while-in$72)
                                   )
-                                  (set_local $40
-                                    (get_local $1)
-                                  )
-                                  (set_local $11
-                                    (i32.const 278)
-                                  )
-                                  (br $while-out$71)
-                                )
-                                (block
-                                  (set_local $1
-                                    (get_local $8)
-                                  )
-                                  (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)
+                                )
+                                (tee_local $2
+                                  (i32.load
+                                    (i32.const 192)
                                   )
                                 )
-                                (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)
-                                  )
-                                )
-                                (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 $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)
+                      (get_local $7)
                     )
-                    (if
-                      (i32.gt_u
-                        (tee_local $1
-                          (i32.add
-                            (get_local $1)
-                            (i32.load offset=4
-                              (get_local $27)
+                  )
+                )
+                (set_local $4
+                  (i32.load offset=8
+                    (get_local $4)
+                  )
+                )
+                (br $while-in$74)
+              )
+            )
+            (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
+                        (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.lt_u
+                      (get_local $4)
+                      (tee_local $6
+                        (i32.add
+                          (get_local $7)
+                          (i32.const 16)
+                        )
+                      )
+                    )
+                  )
+                )
+                (i32.const 8)
+              )
+            )
+            (i32.store
+              (i32.const 200)
+              (tee_local $5
+                (i32.add
+                  (get_local $2)
+                  (tee_local $4
+                    (select
+                      (i32.and
+                        (i32.sub
+                          (i32.const 0)
+                          (tee_local $4
+                            (i32.add
+                              (get_local $2)
+                              (i32.const 8)
                             )
                           )
                         )
-                        (get_local $0)
+                        (i32.const 7)
                       )
-                      (block
-                        (set_local $2
-                          (get_local $1)
-                        )
-                        (br $while-out$73)
+                      (i32.const 0)
+                      (i32.and
+                        (get_local $4)
+                        (i32.const 7)
                       )
                     )
                   )
-                  (set_local $27
-                    (i32.load offset=8
-                      (get_local $27)
-                    )
-                  )
-                  (br $while-in$74)
-                )
-              )
-              (set_local $8
-                (i32.eq
-                  (i32.and
-                    (tee_local $1
-                      (i32.add
-                        (tee_local $4
-                          (i32.add
-                            (get_local $2)
-                            (i32.const -47)
-                          )
-                        )
-                        (i32.const 8)
-                      )
-                    )
-                    (i32.const 7)
-                  )
-                  (i32.const 0)
-                )
-              )
-              (set_local $4
-                (i32.lt_u
-                  (tee_local $1
-                    (i32.add
-                      (get_local $4)
-                      (select
-                        (i32.const 0)
-                        (i32.and
-                          (i32.sub
-                            (i32.const 0)
-                            (get_local $1)
-                          )
-                          (i32.const 7)
-                        )
-                        (get_local $8)
-                      )
-                    )
-                  )
-                  (tee_local $8
-                    (i32.add
-                      (get_local $0)
-                      (i32.const 16)
-                    )
-                  )
                 )
               )
-              (set_local $4
+            )
+            (i32.store
+              (i32.const 188)
+              (tee_local $4
+                (i32.sub
+                  (i32.add
+                    (get_local $1)
+                    (i32.const -40)
+                  )
+                  (get_local $4)
+                )
+              )
+            )
+            (i32.store offset=4
+              (get_local $5)
+              (i32.or
+                (get_local $4)
+                (i32.const 1)
+              )
+            )
+            (i32.store offset=4
+              (i32.add
+                (get_local $5)
+                (get_local $4)
+              )
+              (i32.const 40)
+            )
+            (i32.store
+              (i32.const 204)
+              (i32.load
+                (i32.const 664)
+              )
+            )
+            (i32.store
+              (tee_local $4
                 (i32.add
-                  (tee_local $5
-                    (select
-                      (get_local $0)
-                      (get_local $1)
-                      (get_local $4)
-                    )
-                  )
-                  (i32.const 8)
+                  (get_local $9)
+                  (i32.const 4)
                 )
               )
-              (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.const 27)
+            )
+            (i32.store
+              (get_local $8)
+              (i32.load
+                (i32.const 624)
               )
+            )
+            (i32.store offset=4
+              (get_local $8)
+              (i32.load
+                (i32.const 628)
+              )
+            )
+            (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.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 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.const 7)
-                        )
-                        (get_local $3)
-                      )
-                    )
-                  )
-                )
-              )
-              (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.add
-                    (get_local $5)
+                    (get_local $1)
                     (i32.const 4)
                   )
                 )
-                (i32.const 27)
+                (i32.const 7)
               )
-              (i32.store
-                (get_local $4)
-                (i32.load
-                  (i32.const 624)
+              (br_if $while-in$76
+                (i32.lt_u
+                  (i32.add
+                    (get_local $1)
+                    (i32.const 4)
+                  )
+                  (get_local $3)
                 )
               )
-              (i32.store offset=4
-                (get_local $4)
-                (i32.load
-                  (i32.const 628)
+            )
+            (if
+              (i32.ne
+                (get_local $9)
+                (get_local $7)
+              )
+              (block
+                (i32.store
+                  (get_local $4)
+                  (i32.and
+                    (i32.load
+                      (get_local $4)
+                    )
+                    (i32.const -2)
+                  )
                 )
-              )
-              (i32.store offset=8
-                (get_local $4)
-                (i32.load
-                  (i32.const 632)
+                (i32.store offset=4
+                  (get_local $7)
+                  (i32.or
+                    (tee_local $5
+                      (i32.sub
+                        (get_local $9)
+                        (get_local $7)
+                      )
+                    )
+                    (i32.const 1)
+                  )
                 )
-              )
-              (i32.store offset=12
-                (get_local $4)
-                (i32.load
-                  (i32.const 636)
-                )
-              )
-              (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 632)
-                (get_local $4)
-              )
-              (set_local $1
-                (i32.add
+                (i32.store
+                  (get_local $9)
                   (get_local $5)
-                  (i32.const 24)
                 )
-              )
-              (loop $while-in$76
-                (block $while-out$75
-                  (i32.store
-                    (tee_local $1
+                (set_local $2
+                  (i32.shr_u
+                    (get_local $5)
+                    (i32.const 3)
+                  )
+                )
+                (if
+                  (i32.lt_u
+                    (get_local $5)
+                    (i32.const 256)
+                  )
+                  (block
+                    (set_local $1
                       (i32.add
-                        (get_local $1)
-                        (i32.const 4)
-                      )
-                    )
-                    (i32.const 7)
-                  )
-                  (br_if $while-out$75
-                    (i32.ge_u
-                      (i32.add
-                        (get_local $1)
-                        (i32.const 4)
-                      )
-                      (get_local $2)
-                    )
-                  )
-                  (br $while-in$76)
-                )
-              )
-              (if
-                (i32.ne
-                  (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 216)
+                        (i32.shl
+                          (i32.shl
+                            (get_local $2)
+                            (i32.const 1)
+                          )
+                          (i32.const 2)
                         )
                       )
-                      (i32.const 1)
                     )
-                  )
-                  (i32.store
-                    (get_local $5)
-                    (get_local $3)
-                  )
-                  (set_local $2
-                    (i32.shr_u
-                      (get_local $3)
-                      (i32.const 3)
-                    )
-                  )
-                  (if
-                    (i32.lt_u
-                      (get_local $3)
-                      (i32.const 256)
-                    )
-                    (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.const 0)
-                        )
-                        (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 $20
-                            (get_local $4)
-                          )
-                        )
-                        (if
-                          (i32.lt_u
-                            (tee_local $2
-                              (i32.load
-                                (tee_local $1
-                                  (i32.add
-                                    (get_local $4)
-                                    (i32.const 8)
-                                  )
-                                )
-                              )
-                            )
+                        (i32.lt_u
+                          (tee_local $2
                             (i32.load
-                              (i32.const 192)
-                            )
-                          )
-                          (call_import $_abort)
-                          (block
-                            (set_local $9
-                              (get_local $1)
-                            )
-                            (set_local $20
-                              (get_local $2)
-                            )
-                          )
-                        )
-                      )
-                      (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)
-                    )
-                  )
-                  (set_local $4
-                    (i32.add
-                      (i32.const 480)
-                      (i32.shl
-                        (tee_local $2
-                          (if
-                            (i32.eq
-                              (tee_local $1
-                                (i32.shr_u
-                                  (get_local $3)
+                              (tee_local $3
+                                (i32.add
+                                  (get_local $1)
                                   (i32.const 8)
                                 )
                               )
-                              (i32.const 0)
                             )
-                            (i32.const 0)
-                            (if
-                              (i32.gt_u
-                                (get_local $3)
-                                (i32.const 16777215)
-                              )
-                              (i32.const 31)
-                              (block
-                                (set_local $2
-                                  (i32.shl
+                          )
+                          (i32.load
+                            (i32.const 192)
+                          )
+                        )
+                        (call_import $_abort)
+                        (block
+                          (set_local $23
+                            (get_local $3)
+                          )
+                          (set_local $18
+                            (get_local $2)
+                          )
+                        )
+                      )
+                      (block
+                        (i32.store
+                          (i32.const 176)
+                          (i32.or
+                            (get_local $3)
+                            (get_local $2)
+                          )
+                        )
+                        (set_local $23
+                          (i32.add
+                            (get_local $1)
+                            (i32.const 8)
+                          )
+                        )
+                        (set_local $18
+                          (get_local $1)
+                        )
+                      )
+                    )
+                    (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 $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.gt_u
+                              (get_local $5)
+                              (i32.const 16777215)
+                            )
+                            (i32.const 31)
+                            (i32.or
+                              (i32.and
+                                (i32.shr_u
+                                  (get_local $5)
+                                  (i32.add
                                     (tee_local $1
                                       (i32.add
                                         (i32.sub
@@ -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)
-                        )
-                      )
-                      (i32.store
-                        (get_local $4)
-                        (get_local $0)
-                      )
-                      (i32.store offset=24
-                        (get_local $0)
-                        (get_local $4)
-                      )
-                      (i32.store offset=12
-                        (get_local $0)
-                        (get_local $0)
-                      )
-                      (i32.store offset=8
-                        (get_local $0)
-                        (get_local $0)
-                      )
-                      (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 $4
-                    (i32.load
-                      (get_local $4)
-                    )
-                  )
-                  (loop $while-in$78
-                    (block $while-out$77
-                      (if
-                        (i32.eq
-                          (i32.and
-                            (i32.load offset=4
-                              (get_local $4)
-                            )
-                            (i32.const -8)
-                          )
+                      (tee_local $1
+                        (i32.shl
+                          (i32.const 1)
                           (get_local $3)
                         )
-                        (block
-                          (set_local $35
-                            (get_local $4)
-                          )
-                          (set_local $11
-                            (i32.const 307)
-                          )
-                          (br $while-out$77)
-                        )
                       )
-                      (set_local $8
-                        (i32.shl
-                          (get_local $2)
+                    )
+                  )
+                  (block
+                    (i32.store
+                      (i32.const 180)
+                      (i32.or
+                        (get_local $4)
+                        (get_local $1)
+                      )
+                    )
+                    (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 $3
+                  (i32.shl
+                    (get_local $5)
+                    (select
+                      (i32.const 0)
+                      (i32.sub
+                        (i32.const 25)
+                        (i32.shr_u
+                          (get_local $3)
                           (i32.const 1)
                         )
                       )
-                      (if
-                        (i32.eq
-                          (tee_local $1
+                      (i32.eq
+                        (get_local $3)
+                        (i32.const 31)
+                      )
+                    )
+                  )
+                )
+                (set_local $1
+                  (i32.load
+                    (get_local $2)
+                  )
+                )
+                (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)
+                            )
+                            (get_local $5)
+                          )
+                        )
+                        (set_local $2
+                          (i32.shl
+                            (get_local $3)
+                            (i32.const 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)
+                          (block
+                            (set_local $3
+                              (get_local $2)
+                            )
+                            (set_local $1
+                              (get_local $4)
+                            )
+                            (br $while-in$78)
                           )
-                          (set_local $41
-                            (get_local $2)
-                          )
-                          (set_local $11
-                            (i32.const 304)
-                          )
-                          (br $while-out$77)
-                        )
-                        (block
-                          (set_local $2
-                            (get_local $8)
-                          )
-                          (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)
+                        )
+                        (tee_local $3
+                          (i32.load
+                            (i32.const 192)
                           )
                         )
-                        (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)
-                          )
-                        )
-                        (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
-              (i32.load
-                (i32.const 188)
+          (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)
               )
             )
-            (get_local $6)
-          )
-          (block
             (i32.store
-              (i32.const 188)
-              (tee_local $2
-                (i32.sub
-                  (get_local $0)
-                  (get_local $6)
+              (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 648)
+              )
+            )
+            (i32.store
+              (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)
               )
             )
-            (return
-              (i32.add
+          )
+        )
+      )
+      (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)
-                (i32.const 8)
               )
             )
           )
+          (i32.store
+            (i32.const 200)
+            (tee_local $2
+              (i32.add
+                (tee_local $3
+                  (i32.load
+                    (i32.const 200)
+                  )
+                )
+                (get_local $0)
+              )
+            )
+          )
+          (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
-            (get_local $0)
-            (i32.const 1)
-          )
-          (i32.const 0)
+        (i32.and
+          (get_local $3)
+          (i32.const 1)
         )
         (block
-          (set_local $0
+          (set_local $4
+            (get_local $2)
+          )
+          (set_local $1
+            (get_local $0)
+          )
+        )
+        (block
+          (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)
+                    )
+                    (set_local $5
+                      (get_local $8)
                     )
                     (block
-                      (set_local $5
+                      (set_local $7
                         (i32.const 0)
                       )
                       (br $do-once$2)
                     )
-                    (block
-                      (set_local $2
-                        (get_local $0)
-                      )
-                      (set_local $7
-                        (get_local $13)
-                      )
-                    )
-                  )
-                  (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)
-                      )
-                    )
-                    (if
-                      (i32.eq
-                        (tee_local $0
-                          (i32.load
-                            (tee_local $13
-                              (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)
-                        )
                       )
                     )
-                    (br $while-in$5)
+                    (block
+                      (set_local $2
+                        (get_local $8)
+                      )
+                      (set_local $5
+                        (get_local $10)
+                      )
+                      (br $while-in$5)
+                    )
+                  )
+                  (if
+                    (tee_local $8
+                      (i32.load
+                        (tee_local $10
+                          (i32.add
+                            (get_local $2)
+                            (i32.const 16)
+                          )
+                        )
+                      )
+                    )
+                    (block
+                      (set_local $2
+                        (get_local $8)
+                      )
+                      (set_local $5
+                        (get_local $10)
+                      )
+                      (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)
-                    )
-                    (i32.store
-                      (get_local $7)
+                      (get_local $8)
                       (get_local $2)
                     )
-                    (set_local $5
-                      (get_local $0)
+                    (i32.store
+                      (get_local $10)
+                      (get_local $5)
+                    )
+                    (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 $2)
+                      (get_local $7)
+                    )
+                    (set_local $4
                       (get_local $0)
-                      (get_local $5)
                     )
-                    (set_local $3
-                      (get_local $4)
+                    (set_local $1
+                      (get_local $3)
                     )
-                    (set_local $10
-                      (get_local $12)
-                    )
+                  )
+                )
+                (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)
+            (block
+              (set_local $4
+                (get_local $0)
+              )
+              (set_local $1
+                (get_local $3)
+              )
+            )
           )
         )
       )
     )
     (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.const 0)
+        (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)
+        )
       )
       (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,62 +14702,6 @@
                 (block
                   (if
                     (i32.lt_u
-                      (get_local $0)
-                      (i32.load
-                        (i32.const 192)
-                      )
-                    )
-                    (call_import $_abort)
-                  )
-                  (if
-                    (i32.ne
-                      (i32.load offset=12
-                        (get_local $0)
-                      )
-                      (get_local $9)
-                    )
-                    (call_import $_abort)
-                  )
-                )
-              )
-              (if
-                (i32.eq
-                  (get_local $1)
-                  (get_local $0)
-                )
-                (block
-                  (i32.store
-                    (i32.const 176)
-                    (i32.and
-                      (i32.load
-                        (i32.const 176)
-                      )
-                      (i32.xor
-                        (i32.shl
-                          (i32.const 1)
-                          (get_local $8)
-                        )
-                        (i32.const -1)
-                      )
-                    )
-                  )
-                  (br $do-once$8)
-                )
-              )
-              (if
-                (i32.eq
-                  (get_local $1)
-                  (get_local $2)
-                )
-                (set_local $16
-                  (i32.add
-                    (get_local $1)
-                    (i32.const 8)
-                  )
-                )
-                (block
-                  (if
-                    (i32.lt_u
                       (get_local $1)
                       (i32.load
                         (i32.const 192)
@@ -16436,59 +14710,115 @@
                     (call_import $_abort)
                   )
                   (if
+                    (i32.ne
+                      (i32.load offset=12
+                        (get_local $1)
+                      )
+                      (get_local $6)
+                    )
+                    (call_import $_abort)
+                  )
+                )
+              )
+              (if
+                (i32.eq
+                  (get_local $3)
+                  (get_local $1)
+                )
+                (block
+                  (i32.store
+                    (i32.const 176)
+                    (i32.and
+                      (i32.load
+                        (i32.const 176)
+                      )
+                      (i32.xor
+                        (i32.shl
+                          (i32.const 1)
+                          (get_local $5)
+                        )
+                        (i32.const -1)
+                      )
+                    )
+                  )
+                  (br $do-once$8)
+                )
+              )
+              (if
+                (i32.eq
+                  (get_local $3)
+                  (get_local $0)
+                )
+                (set_local $14
+                  (i32.add
+                    (get_local $3)
+                    (i32.const 8)
+                  )
+                )
+                (block
+                  (if
+                    (i32.lt_u
+                      (get_local $3)
+                      (i32.load
+                        (i32.const 192)
+                      )
+                    )
+                    (call_import $_abort)
+                  )
+                  (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)
-                          )
-                        )
-                        (if
-                          (i32.eq
-                            (tee_local $1
-                              (i32.load
-                                (tee_local $7
-                                  (i32.add
-                                    (get_local $2)
-                                    (i32.const 16)
-                                  )
-                                )
-                              )
-                            )
-                            (i32.const 0)
-                          )
-                          (br $while-out$12)
-                          (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
+                        (tee_local $3
+                          (i32.load
+                            (tee_local $5
+                              (i32.add
+                                (get_local $0)
+                                (i32.const 16)
+                              )
+                            )
+                          )
+                        )
+                        (block
+                          (set_local $0
+                            (get_local $3)
+                          )
+                          (set_local $1
+                            (get_local $5)
+                          )
+                          (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)
+          (set_local $1
+            (get_local $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)
-          )
-          (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.and
+            (tee_local $0
+              (i32.load
+                (i32.const 176)
               )
             )
-            (i32.const 0)
-          )
-          (block
-            (i32.store
-              (i32.const 176)
-              (i32.or
-                (get_local $0)
-                (get_local $1)
-              )
-            )
-            (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 4)
+                                    )
+                                  )
+                                  (get_local $0)
+                                )
+                                (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 16)
                                     )
-                                    (i32.const 4)
+                                    (i32.const 2)
                                   )
                                 )
+                              )
+                            )
+                            (i32.shr_u
+                              (i32.shl
+                                (get_local $3)
                                 (get_local $0)
                               )
-                              (tee_local $0
-                                (i32.and
-                                  (i32.shr_u
-                                    (i32.add
-                                      (tee_local $6
-                                        (i32.shl
-                                          (get_local $1)
-                                          (get_local $6)
-                                        )
-                                      )
-                                      (i32.const 245760)
-                                    )
-                                    (i32.const 16)
-                                  )
-                                  (i32.const 2)
-                                )
-                              )
+                              (i32.const 15)
                             )
                           )
-                          (i32.shr_u
-                            (i32.shl
-                              (get_local $6)
-                              (get_local $0)
-                            )
-                            (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)
+              (get_local $3)
             )
           )
         )
-        (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)
-              )
-            )
-          )
-        )
-        (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)
+                (i32.eq
+                  (get_local $3)
+                  (i32.const 31)
                 )
-                (set_local $0
-                  (i32.const 130)
-                )
-                (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)
           )
+          (i32.const 8)
         )
-        (set_local $6
-          (i32.add
-            (get_local $6)
-            (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)
-              )
+          (if
+            (i32.ge_s
+              (get_local $2)
+              (i32.const 4)
             )
-            (i32.store
-              (get_local $0)
-              (i32.load
-                (get_local $1)
-              )
-            )
-            (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)
-          )
+      (if
+        (i32.gt_s
+          (get_local $2)
+          (i32.const 0)
         )
-        (i32.store8
-          (get_local $0)
-          (i32.load8_s
-            (get_local $1)
-          )
-        )
-        (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)
+    (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 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)
+              )
+              (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)
+      )
+    )
+    (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
-          (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 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)
-                  )
-                  (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 $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)
-          )
+  (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)
         )
-        (i32.const 0)
-      )
-      (block
-        (set_local $2
-          (i32.ne
-            (get_local $4)
-            (i32.const 0)
+        (i64.shl
+          (i64.extend_u/i32
+            (get_local $xh)
           )
-        )
-        (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)
-            )
-          )
+          (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)
-                    (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)
-              )
-            )
+        (i64.shl
+          (i64.extend_u/i32
+            (get_local $yh)
           )
-          (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)
-                  )
-                )
-              )
-            )
-          )
-        )
-      )
-    )
-    (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)
-        )
-      )
-    )
-    (set_local $3
-      (i32.or
-        (get_local $6)
-        (tee_local $2
-          (i32.const 0)
+          (i64.const 32)
         )
       )
     )
     (if
-      (i32.ne
-        (get_local $4)
-        (i32.const 0)
+      (get_local $r)
+      (i64.store
+        (get_local $r)
+        (i64.rem_u
+          (get_local $x64)
+          (get_local $y64)
+        )
       )
-      (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 c97524f..bc1e15b 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)
             )
-            (get_local $0)
           )
-          (block
-            (set_local $4
-              (get_local $1)
-            )
-            (set_local $0
-              (i32.const 2)
-            )
-            (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)
-                )
+        (loop $while-in$5
+          (set_local $0
+            (i32.add
+              (get_local $2)
+              (i32.const 1)
+            )
+          )
+          (if
+            (i32.load8_s
+              (get_local $2)
+            )
+            (block
+              (set_local $2
+                (get_local $0)
               )
               (br $while-in$5)
             )
           )
-          (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)
-            )
-            (block
-              (set_local $3
-                (get_local $0)
-              )
-              (set_local $2
-                (get_local $1)
-              )
+        )
+        (if
+          (tee_local $3
+            (i32.add
+              (get_local $3)
+              (i32.const -1)
             )
           )
-          (br $while-in$3)
+          (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,116 +689,7 @@
     (local $2 i32)
     (block $do-once$0
       (if
-        (i32.eq
-          (get_local $0)
-          (i32.const 0)
-        )
-        (block
-          (set_local $0
-            (if
-              (i32.eq
-                (i32.load
-                  (i32.const 12)
-                )
-                (i32.const 0)
-              )
-              (i32.const 0)
-              (call $_fflush
-                (i32.load
-                  (i32.const 12)
-                )
-              )
-            )
-          )
-          (call_import $___lock
-            (i32.const 44)
-          )
-          (if
-            (i32.ne
-              (tee_local $1
-                (i32.load
-                  (i32.const 40)
-                )
-              )
-              (i32.const 0)
-            )
-            (block
-              (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)
-                    )
-                  )
-                  (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)
-                    )
-                  )
-                  (if
-                    (i32.ne
-                      (get_local $0)
-                      (i32.const 0)
-                    )
-                    (call $___unlockfile
-                      (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)
-                    )
-                  )
-                  (br $while-in$3)
-                )
-              )
-            )
-          )
-          (call_import $___unlock
-            (i32.const 44)
-          )
-          (get_local $0)
-        )
+        (get_local $0)
         (block
           (if
             (i32.le_s
@@ -865,11 +705,10 @@
             )
           )
           (set_local $2
-            (i32.eq
+            (i32.eqz
               (call $___lockfile
                 (get_local $0)
               )
-              (i32.const 0)
             )
           )
           (set_local $1
@@ -888,6 +727,83 @@
             )
           )
         )
+        (block
+          (set_local $0
+            (if
+              (i32.load
+                (i32.const 12)
+              )
+              (call $_fflush
+                (i32.load
+                  (i32.const 12)
+                )
+              )
+              (i32.const 0)
+            )
+          )
+          (call_import $___lock
+            (i32.const 44)
+          )
+          (if
+            (tee_local $1
+              (i32.load
+                (i32.const 40)
+              )
+            )
+            (loop $while-in$3
+              (set_local $2
+                (if
+                  (i32.gt_s
+                    (i32.load offset=76
+                      (get_local $1)
+                    )
+                    (i32.const -1)
+                  )
+                  (call $___lockfile
+                    (get_local $1)
+                  )
+                  (i32.const 0)
+                )
+              )
+              (set_local $0
+                (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 $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)
+                  )
+                )
+              )
+            )
+          )
+          (call_import $___unlock
+            (i32.const 44)
+          )
+          (get_local $0)
+        )
       )
     )
   )
@@ -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)
-                  )
-                  (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
-                  (call_import $_pthread_cleanup_push
-                    (i32.const 5)
-                    (get_local $0)
-                  )
-                  (i32.store
-                    (get_local $10)
-                    (i32.load
-                      (get_local $12)
-                    )
-                  )
-                  (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)
-                        (get_local $10)
+                  (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)
+                          )
+                        )
                       )
                     )
                   )
-                  (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
+              (br_if $jumpthreading$inner$1
+                (i32.lt_s
                   (get_local $5)
-                  (get_local $1)
+                  (i32.const 0)
                 )
               )
-              (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
+                (set_local $11
+                  (i32.sub
+                    (get_local $11)
+                    (get_local $5)
+                  )
+                )
+                (set_local $1
+                  (if
+                    (i32.gt_u
+                      (get_local $5)
+                      (tee_local $12
+                        (i32.load offset=4
+                          (get_local $1)
+                        )
+                      )
+                    )
+                    (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)
+                      )
+                    )
+                  )
+                )
                 (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)
-              )
-              (block
-                (set_local $3
-                  (get_local $4)
-                )
-                (get_local $1)
+                (br $while-in$1)
               )
             )
           )
-        )
-        (i32.store
-          (get_local $3)
-          (i32.add
-            (i32.load
-              (get_local $3)
-            )
-            (get_local $5)
-          )
-        )
-        (i32.store offset=4
-          (get_local $3)
-          (i32.sub
-            (get_local $1)
-            (get_local $5)
-          )
-        )
-        (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.store
-          (get_local $7)
-          (get_local $1)
-        )
-        (i32.store
-          (get_local $11)
-          (get_local $1)
-        )
-        (set_local $14
-          (get_local $2)
-        )
-      )
-      (if
-        (i32.eq
-          (get_local $1)
-          (i32.const 8)
-        )
-        (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)
-            )
-          )
-          (set_local $14
-            (select
-              (i32.const 0)
-              (i32.sub
-                (get_local $2)
-                (i32.load offset=4
-                  (get_local $15)
+            (i32.add
+              (tee_local $1
+                (i32.load
+                  (get_local $14)
                 )
               )
-              (i32.eq
-                (get_local $16)
-                (i32.const 2)
+              (i32.load offset=48
+                (get_local $0)
               )
             )
           )
+          (i32.store
+            (get_local $6)
+            (tee_local $0
+              (get_local $1)
+            )
+          )
+          (i32.store
+            (get_local $10)
+            (get_local $0)
+          )
+          (br $jumpthreading$outer$1
+            (get_local $2)
+          )
+        )
+        (i32.store offset=16
+          (get_local $0)
+          (i32.const 0)
+        )
+        (i32.store
+          (get_local $6)
+          (i32.const 0)
+        )
+        (i32.store
+          (get_local $10)
+          (i32.const 0)
+        )
+        (i32.store
+          (get_local $0)
+          (i32.or
+            (i32.load
+              (get_local $0)
+            )
+            (i32.const 32)
+          )
+        )
+        (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
+    (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)
+                )
+              )
+            )
+          )
+        )
+        (if
+          (call $___towrite
+            (get_local $2)
+          )
+          (set_local $3
+            (i32.const 0)
+          )
+          (block
+            (set_local $3
+              (i32.load
+                (get_local $4)
+              )
+            )
+            (br $jumpthreading$inner$0)
+          )
+        )
+        (br $label$break$L5)
+      )
+      (set_local $6
+        (tee_local $4
           (i32.load
             (tee_local $5
               (i32.add
                 (get_local $2)
-                (i32.const 16)
+                (i32.const 20)
               )
             )
           )
         )
-        (i32.const 0)
       )
       (if
-        (i32.eq
-          (call $___towrite
-            (get_local $2)
-          )
-          (i32.const 0)
-        )
-        (block
-          (set_local $3
-            (i32.load
-              (get_local $5)
-            )
-          )
-          (set_local $7
-            (i32.const 5)
-          )
-        )
-        (set_local $4
-          (i32.const 0)
-        )
-      )
-      (block
-        (set_local $3
-          (get_local $6)
-        )
-        (set_local $7
-          (i32.const 5)
-        )
-      )
-    )
-    (block $label$break$L5
-      (if
-        (i32.eq
-          (get_local $7)
-          (i32.const 5)
-        )
-        (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)
-                      )
-                    )
-                  )
-                )
-              )
-              (get_local $1)
-            )
-          )
-          (if
+        (i32.lt_u
+          (i32.sub
             (get_local $3)
-            (block
-              (set_local $4
-                (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)
-                  )
-                )
-              )
-              (br $label$break$L5)
-            )
+            (get_local $4)
           )
-          (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)
-                    )
-                    (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)
-                      )
-                    )
-                    (if
-                      (i32.lt_u
-                        (call_indirect $FUNCSIG$iiii
-                          (get_local $2)
-                          (get_local $0)
-                          (get_local $3)
-                          (i32.add
-                            (i32.and
-                              (i32.load offset=36
-                                (get_local $2)
-                              )
-                              (i32.const 7)
-                            )
-                            (i32.const 2)
-                          )
-                        )
-                        (get_local $3)
-                      )
-                      (block
-                        (set_local $4
-                          (get_local $3)
-                        )
-                        (br $label$break$L5)
-                      )
-                    )
-                    (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)
-                    )
-                  )
-                  (block
-                    (set_local $2
-                      (i32.const 0)
-                    )
-                    (get_local $6)
-                  )
-                )
-              )
+          (get_local $1)
+        )
+        (block
+          (set_local $3
+            (call_indirect $FUNCSIG$iiii
+              (get_local $2)
               (get_local $0)
               (get_local $1)
-            )
-          )
-          (i32.store
-            (get_local $5)
-            (i32.add
-              (i32.load
-                (get_local $5)
+              (i32.add
+                (i32.and
+                  (i32.load offset=36
+                    (get_local $2)
+                  )
+                  (i32.const 7)
+                )
+                (i32.const 2)
               )
-              (get_local $1)
             )
           )
-          (set_local $4
-            (i32.add
-              (get_local $2)
-              (get_local $1)
+          (br $label$break$L5)
+        )
+      )
+      (drop
+        (call $_memcpy
+          (block $label$break$L10
+            (if
+              (i32.gt_s
+                (i32.load8_s offset=75
+                  (get_local $2)
+                )
+                (i32.const -1)
+              )
+              (block
+                (set_local $3
+                  (get_local $1)
+                )
+                (loop $while-in$3
+                  (if
+                    (i32.eqz
+                      (get_local $3)
+                    )
+                    (block
+                      (set_local $2
+                        (i32.const 0)
+                      )
+                      (br $label$break$L10
+                        (get_local $6)
+                      )
+                    )
+                  )
+                  (if
+                    (i32.ne
+                      (i32.load8_s
+                        (i32.add
+                          (get_local $0)
+                          (tee_local $4
+                            (i32.add
+                              (get_local $3)
+                              (i32.const -1)
+                            )
+                          )
+                        )
+                      )
+                      (i32.const 10)
+                    )
+                    (block
+                      (set_local $3
+                        (get_local $4)
+                      )
+                      (br $while-in$3)
+                    )
+                  )
+                )
+                (br_if $label$break$L5
+                  (i32.lt_u
+                    (call_indirect $FUNCSIG$iiii
+                      (get_local $2)
+                      (get_local $0)
+                      (get_local $3)
+                      (i32.add
+                        (i32.and
+                          (i32.load offset=36
+                            (get_local $2)
+                          )
+                          (i32.const 7)
+                        )
+                        (i32.const 2)
+                      )
+                    )
+                    (get_local $3)
+                  )
+                )
+                (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)
+                )
+              )
+              (block
+                (set_local $2
+                  (i32.const 0)
+                )
+                (get_local $6)
+              )
             )
           )
+          (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
+    (block $label$break$L8
+      (block $jumpthreading$inner$2
+        (block $jumpthreading$inner$1
+          (if
             (i32.and
-              (get_local $0)
-              (i32.const 3)
+              (tee_local $3
+                (i32.ne
+                  (get_local $2)
+                  (i32.const 0)
+                )
+              )
+              (i32.ne
+                (i32.and
+                  (get_local $0)
+                  (i32.const 3)
+                )
+                (i32.const 0)
+              )
             )
-            (i32.const 0)
-          )
-        )
-        (block
-          (set_local $6
-            (i32.and
-              (get_local $1)
-              (i32.const 255)
-            )
-          )
-          (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)
+            (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.shr_s
+                      (i32.shl
+                        (get_local $4)
+                        (i32.const 24)
                       )
                       (i32.const 24)
                     )
-                    (i32.const 24)
-                  )
-                  (i32.shr_s
-                    (i32.shl
-                      (get_local $6)
-                      (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.ne
+                      (i32.and
+                        (tee_local $0
+                          (i32.add
+                            (get_local $0)
+                            (i32.const 1)
+                          )
+                        )
+                        (i32.const 3)
                       )
                       (i32.const 0)
                     )
                   )
-                  (i32.ne
-                    (i32.and
-                      (tee_local $2
-                        (i32.add
-                          (get_local $2)
-                          (i32.const 1)
-                        )
-                      )
-                      (i32.const 3)
-                    )
-                    (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)
-          )
+        (br_if $jumpthreading$inner$2
+          (get_local $3)
         )
-      )
-    )
-    (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)
-          )
+        (set_local $1
+          (i32.const 0)
         )
-        (block
-          (set_local $7
-            (i32.const 0)
-          )
-          (set_local $8
-            (get_local $11)
-          )
-        )
+        (br $label$break$L8)
       )
-    )
-    (block $label$break$L8
       (if
         (i32.eq
-          (get_local $3)
-          (i32.const 6)
+          (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)
+          )
         )
-        (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.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)
+                (loop $while-in$6
+                  (block $while-out$5
+                    (if
+                      (i32.and
+                        (i32.xor
+                          (i32.and
+                            (tee_local $1
+                              (i32.xor
+                                (i32.load
+                                  (get_local $0)
+                                )
+                                (get_local $3)
                               )
-                              (get_local $2)
                             )
+                            (i32.const -2139062144)
                           )
+                          (i32.const -2139062144)
+                        )
+                        (i32.add
+                          (get_local $1)
                           (i32.const -16843009)
                         )
                       )
-                      (br_if $while-out$5
-                        (i32.ne
-                          (i32.and
-                            (i32.xor
-                              (i32.and
-                                (get_local $6)
-                                (i32.const -2139062144)
-                              )
-                              (i32.const -2139062144)
-                            )
-                            (get_local $1)
-                          )
-                          (i32.const 0)
+                      (block
+                        (set_local $1
+                          (get_local $2)
                         )
+                        (br $while-out$5)
                       )
-                      (set_local $1
-                        (i32.add
-                          (get_local $5)
-                          (i32.const 4)
-                        )
+                    )
+                    (set_local $0
+                      (i32.add
+                        (get_local $0)
+                        (i32.const 4)
                       )
-                      (if
-                        (i32.gt_u
-                          (tee_local $4
-                            (i32.add
-                              (get_local $4)
-                              (i32.const -4)
-                            )
+                    )
+                    (br_if $jumpthreading$inner$0
+                      (i32.le_u
+                        (tee_local $1
+                          (i32.add
+                            (get_local $2)
+                            (i32.const -4)
                           )
-                          (i32.const 3)
                         )
-                        (set_local $5
-                          (get_local $1)
-                        )
-                        (block
-                          (set_local $12
-                            (get_local $4)
-                          )
-                          (set_local $13
-                            (get_local $1)
-                          )
-                          (set_local $3
-                            (i32.const 11)
-                          )
-                          (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 $1
+                    (get_local $2)
                   )
-                  (set_local $13
-                    (get_local $5)
-                  )
-                  (set_local $3
-                    (i32.const 11)
-                  )
+                  (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)
+                (br $label$break$L8)
+              )
+            )
+          )
+          (loop $while-in$8
+            (br_if $label$break$L8
+              (i32.eq
+                (i32.load8_s
+                  (get_local $0)
                 )
-                (block
-                  (set_local $10
-                    (get_local $12)
+                (i32.shr_s
+                  (i32.shl
+                    (get_local $4)
+                    (i32.const 24)
                   )
-                  (set_local $9
-                    (get_local $13)
-                  )
+                  (i32.const 24)
                 )
               )
             )
-            (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)
-                  )
-                )
-                (set_local $2
-                  (i32.add
-                    (get_local $9)
-                    (i32.const 1)
-                  )
-                )
-                (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)
-                    )
-                  )
-                )
-                (br $while-in$8)
+            (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)
+                )
+              )
+            )
+            (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 $2
+                (i32.add
+                  (get_local $0)
+                  (i32.const 28)
+                )
+              )
             )
           )
         )
-        (i32.load
-          (tee_local $4
-            (i32.add
-              (get_local $0)
-              (i32.const 28)
-            )
-          )
-        )
-      )
-      (block
         (drop
           (call_indirect $FUNCSIG$iiii
             (get_local $0)
@@ -2677,108 +2305,87 @@
             )
           )
         )
-        (if
-          (i32.eq
+        (br_if $jumpthreading$inner$0
+          (i32.load
+            (get_local $1)
+          )
+        )
+        (br $jumpthreading$outer$0
+          (i32.const -1)
+        )
+      )
+      (if
+        (i32.lt_u
+          (tee_local $4
             (i32.load
-              (get_local $3)
+              (tee_local $3
+                (i32.add
+                  (get_local $0)
+                  (i32.const 4)
+                )
+              )
             )
-            (i32.const 0)
           )
-          (set_local $1
-            (i32.const -1)
+          (tee_local $6
+            (i32.load
+              (tee_local $5
+                (i32.add
+                  (get_local $0)
+                  (i32.const 8)
+                )
+              )
+            )
           )
-          (set_local $2
-            (i32.const 3)
+        )
+        (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 2)
+            )
           )
         )
       )
-      (set_local $2
-        (i32.const 3)
+      (i32.store offset=16
+        (get_local $0)
+        (i32.const 0)
       )
-    )
-    (if
-      (i32.eq
+      (i32.store
         (get_local $2)
-        (i32.const 3)
+        (i32.const 0)
       )
-      (block
-        (if
-          (i32.lt_u
-            (tee_local $1
-              (i32.load
-                (tee_local $5
-                  (i32.add
-                    (get_local $0)
-                    (i32.const 4)
-                  )
-                )
-              )
-            )
-            (tee_local $2
-              (i32.load
-                (tee_local $6
-                  (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)
-                )
-                (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
+        (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 $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)
                 )
-              )
-              (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
+                (if
+                  (i32.gt_s
+                    (get_local $5)
                     (i32.sub
-                      (i32.shr_s
-                        (i32.shl
-                          (get_local $1)
-                          (i32.const 24)
-                        )
-                        (i32.const 24)
-                      )
-                      (i32.const 0)
+                      (i32.const 2147483647)
+                      (get_local $15)
                     )
                   )
-                )
-                (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
+                  (block
+                    (i32.store
+                      (call $___errno_location)
+                      (i32.const 75)
+                    )
+                    (i32.const -1)
+                  )
                   (i32.add
                     (get_local $5)
-                    (i32.const 1)
+                    (get_local $15)
                   )
                 )
+                (get_local $15)
               )
             )
-            (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)
-                )
-                (if
-                  (i32.ne
-                    (i32.shr_s
-                      (i32.shl
-                        (i32.load8_s offset=1
-                          (get_local $54)
-                        )
-                        (i32.const 24)
+            (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 37)
-                  )
-                  (block
-                    (set_local $41
-                      (get_local $54)
-                    )
-                    (set_local $55
-                      (get_local $65)
-                    )
-                    (br $label$break$L12)
-                  )
-                )
-                (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)
-                  )
-                )
-                (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)
-              )
-              (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)
-                            )
-                          )
-                        )
-                      )
-                      (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
+              (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
+                              (get_local $6)
+                              (i32.const 24)
+                            )
+                            (i32.const 24)
+                          )
+                          (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 $6
+                  (i32.load8_s
+                    (tee_local $5
                       (i32.add
-                        (get_local $41)
-                        (i32.const 3)
-                      )
-                      (get_local $5)
-                      (tee_local $7
-                        (i32.eq
-                          (i32.shr_s
-                            (i32.shl
-                              (i32.load8_s offset=2
-                                (get_local $41)
-                              )
-                              (i32.const 24)
-                            )
-                            (i32.const 24)
-                          )
-                          (i32.const 36)
-                        )
-                      )
-                    )
-                  )
-                )
-              )
-              (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)
-                    )
-                    (i32.const 24)
-                  )
-                )
-                (i32.const -32)
-              )
-              (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)
-                      )
-                      (i32.const 0)
-                    )
-                  )
-                  (set_local $8
-                    (i32.or
-                      (i32.shl
+                        (get_local $5)
                         (i32.const 1)
-                        (i32.add
-                          (i32.shr_s
-                            (i32.shl
-                              (get_local $1)
-                              (i32.const 24)
-                            )
-                            (i32.const 24)
-                          )
-                          (i32.const -32)
-                        )
                       )
-                      (get_local $8)
+                    )
+                  )
+                )
+                (br $label$continue$L9)
+              )
+            )
+            (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 37)
+                    )
+                    (block
+                      (set_local $29
+                        (get_local $39)
+                      )
+                      (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)
-            )
-          )
-        )
-        (block $do-once$12
-          (if
-            (i32.eq
-              (i32.shr_s
-                (i32.shl
-                  (get_local $1)
-                  (i32.const 24)
-                )
-                (i32.const 24)
+            (set_local $6
+              (i32.sub
+                (get_local $35)
+                (get_local $1)
               )
-              (i32.const 42)
             )
-            (block
+            (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)
+                  )
+                )
+              )
+            )
+            (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,409 +2820,331 @@
                   )
                   (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)
-                              )
-                              (i32.const -48)
-                            )
-                            (i32.const 3)
-                          )
-                        )
-                      )
-                    )
-                    (set_local $66
-                      (i32.const 1)
-                    )
-                    (set_local $67
-                      (i32.add
-                        (get_local $9)
-                        (i32.const 3)
-                      )
-                    )
-                    (set_local $56
-                      (get_local $1)
-                    )
-                  )
-                  (set_local $12
-                    (i32.const 24)
-                  )
-                )
-                (set_local $12
-                  (i32.const 24)
-                )
-              )
-              (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)
-                      )
-                      (br $label$break$L1)
-                    )
-                  )
-                  (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)
-                    )
-                  )
                   (set_local $5
-                    (i32.load
-                      (tee_local $1
-                        (i32.and
+                    (i32.load8_s
+                      (tee_local $10
+                        (select
                           (i32.add
-                            (i32.load
-                              (get_local $2)
-                            )
+                            (get_local $29)
                             (i32.const 3)
                           )
-                          (i32.const -4)
+                          (get_local $10)
+                          (tee_local $8
+                            (i32.eq
+                              (i32.load8_s offset=2
+                                (get_local $29)
+                              )
+                              (i32.const 36)
+                            )
+                          )
                         )
                       )
                     )
                   )
-                  (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
+                  (set_local $7
+                    (select
+                      (i32.const 1)
+                      (get_local $13)
                       (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)
-                    )
+                  (select
+                    (get_local $9)
+                    (i32.const -1)
                     (get_local $8)
                   )
                 )
+                (block
+                  (set_local $7
+                    (get_local $13)
+                  )
+                  (i32.const -1)
+                )
               )
             )
-            (if
-              (i32.lt_u
-                (tee_local $6
-                  (i32.add
-                    (i32.shr_s
-                      (i32.shl
-                        (get_local $1)
+            (block $label$break$L25
+              (if
+                (i32.eq
+                  (i32.and
+                    (tee_local $8
+                      (i32.shr_s
+                        (i32.shl
+                          (get_local $5)
+                          (i32.const 24)
+                        )
                         (i32.const 24)
                       )
-                      (i32.const 24)
                     )
-                    (i32.const -48)
+                    (i32.const -32)
                   )
+                  (i32.const 32)
                 )
-                (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)
-                        )
-                        (get_local $6)
-                      )
-                    )
-                    (br_if $while-out$14
-                      (i32.ge_u
-                        (tee_local $6
-                          (i32.add
-                            (i32.shr_s
-                              (i32.shl
-                                (i32.load8_s
-                                  (tee_local $1
-                                    (i32.add
-                                      (get_local $1)
-                                      (i32.const 1)
-                                    )
-                                  )
-                                )
-                                (i32.const 24)
-                              )
-                              (i32.const 24)
-                            )
-                            (i32.const -48)
-                          )
-                        )
-                        (i32.const 10)
-                      )
-                    )
-                    (br $while-in$15)
-                  )
-                )
-                (if
-                  (i32.lt_s
+                (block
+                  (set_local $13
                     (get_local $5)
+                  )
+                  (set_local $5
+                    (get_local $8)
+                  )
+                  (set_local $8
                     (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)
-                    )
-                  )
-                )
-              )
-              (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)
-                    )
-                    (i32.const 24)
-                  )
-                  (i32.const 24)
-                )
-                (i32.const 46)
-              )
-              (block
-                (if
-                  (i32.ne
-                    (i32.shr_s
-                      (i32.shl
-                        (tee_local $1
-                          (i32.load8_s
-                            (tee_local $5
-                              (i32.add
-                                (get_local $9)
-                                (i32.const 1)
-                              )
+                  (loop $while-in$11
+                    (if
+                      (i32.eqz
+                        (i32.and
+                          (i32.shl
+                            (i32.const 1)
+                            (i32.add
+                              (get_local $5)
+                              (i32.const -32)
                             )
                           )
+                          (i32.const 75913)
                         )
-                        (i32.const 24)
                       )
-                      (i32.const 24)
+                      (block
+                        (set_local $5
+                          (get_local $8)
+                        )
+                        (br $label$break$L25)
+                      )
                     )
-                    (i32.const 42)
-                  )
-                  (block
-                    (if
-                      (i32.lt_u
-                        (tee_local $6
+                    (set_local $8
+                      (i32.or
+                        (i32.shl
+                          (i32.const 1)
                           (i32.add
                             (i32.shr_s
                               (i32.shl
-                                (get_local $1)
+                                (get_local $13)
                                 (i32.const 24)
                               )
                               (i32.const 24)
                             )
-                            (i32.const -48)
+                            (i32.const -32)
                           )
                         )
-                        (i32.const 10)
-                      )
-                      (block
-                        (set_local $1
-                          (get_local $5)
-                        )
-                        (set_local $5
-                          (i32.const 0)
-                        )
-                      )
-                      (block
-                        (set_local $10
-                          (i32.const 0)
-                        )
-                        (br $label$break$L46
-                          (get_local $5)
-                        )
+                        (get_local $8)
                       )
                     )
-                    (loop $while-in$18
-                      (set_local $5
-                        (i32.add
-                          (i32.mul
-                            (get_local $5)
-                            (i32.const 10)
-                          )
-                          (get_local $6)
-                        )
-                      )
-                      (if
-                        (i32.ge_u
-                          (tee_local $6
-                            (i32.add
-                              (i32.shr_s
-                                (i32.shl
+                    (br_if $while-in$11
+                      (i32.eq
+                        (i32.and
+                          (tee_local $5
+                            (i32.shr_s
+                              (i32.shl
+                                (tee_local $13
                                   (i32.load8_s
-                                    (tee_local $1
+                                    (tee_local $10
                                       (i32.add
-                                        (get_local $1)
+                                        (get_local $10)
                                         (i32.const 1)
                                       )
                                     )
                                   )
-                                  (i32.const 24)
                                 )
                                 (i32.const 24)
                               )
-                              (i32.const -48)
+                              (i32.const 24)
+                            )
+                          )
+                          (i32.const -32)
+                        )
+                        (i32.const 32)
+                      )
+                    )
+                    (set_local $5
+                      (get_local $8)
+                    )
+                  )
+                )
+                (block
+                  (set_local $13
+                    (get_local $5)
+                  )
+                  (set_local $5
+                    (i32.const 0)
+                  )
+                )
+              )
+            )
+            (block $do-once$12
+              (if
+                (i32.eq
+                  (i32.shr_s
+                    (i32.shl
+                      (get_local $13)
+                      (i32.const 24)
+                    )
+                    (i32.const 24)
+                  )
+                  (i32.const 42)
+                )
+                (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
+                                (i32.load8_s
+                                  (tee_local $13
+                                    (i32.add
+                                      (get_local $10)
+                                      (i32.const 1)
+                                    )
+                                  )
+                                )
+                                (i32.const -48)
+                              )
+                            )
+                            (i32.const 10)
+                          )
+                        )
+                        (br_if $jumpthreading$inner$0
+                          (i32.ne
+                            (i32.load8_s offset=2
+                              (get_local $10)
+                            )
+                            (i32.const 36)
+                          )
+                        )
+                        (i32.store
+                          (i32.add
+                            (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 3)
+                            )
+                          )
+                        )
+                        (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)
+                        )
+                      )
+                      (set_local $28
+                        (i32.const 0)
+                      )
+                      (if
+                        (get_local $7)
                         (block
-                          (set_local $10
+                          (set_local $15
+                            (i32.const -1)
+                          )
+                          (br $label$break$L1)
+                        )
+                      )
+                      (if
+                        (i32.eqz
+                          (get_local $33)
+                        )
+                        (block
+                          (set_local $8
                             (get_local $5)
                           )
-                          (br $label$break$L46
-                            (get_local $1)
+                          (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)
+                            )
                           )
                         )
                       )
-                      (br $while-in$18)
+                      (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 $17
+                          (i32.sub
+                            (i32.const 0)
+                            (get_local $7)
+                          )
+                        )
+                        (i32.or
+                          (get_local $5)
+                          (i32.const 8192)
+                        )
+                      )
+                      (block
+                        (set_local $17
+                          (get_local $7)
+                        )
+                        (get_local $5)
+                      )
                     )
                   )
                 )
                 (if
                   (i32.lt_u
-                    (tee_local $1
+                    (tee_local $13
                       (i32.add
                         (i32.shr_s
                           (i32.shl
-                            (i32.load8_s
-                              (tee_local $6
-                                (i32.add
-                                  (get_local $9)
-                                  (i32.const 2)
-                                )
-                              )
-                            )
+                            (get_local $13)
                             (i32.const 24)
                           )
                           (i32.const 24)
@@ -3875,4693 +3154,4362 @@
                     )
                     (i32.const 10)
                   )
-                  (if
-                    (i32.eq
-                      (i32.shr_s
-                        (i32.shl
-                          (i32.load8_s offset=3
+                  (block
+                    (set_local $8
+                      (i32.const 0)
+                    )
+                    (loop $while-in$15
+                      (set_local $13
+                        (i32.add
+                          (i32.mul
+                            (get_local $8)
+                            (i32.const 10)
+                          )
+                          (get_local $13)
+                        )
+                      )
+                      (if
+                        (i32.lt_u
+                          (tee_local $9
+                            (i32.add
+                              (i32.load8_s
+                                (tee_local $10
+                                  (i32.add
+                                    (get_local $10)
+                                    (i32.const 1)
+                                  )
+                                )
+                              )
+                              (i32.const -48)
+                            )
+                          )
+                          (i32.const 10)
+                        )
+                        (block
+                          (set_local $8
+                            (get_local $13)
+                          )
+                          (set_local $13
                             (get_local $9)
                           )
+                          (br $while-in$15)
+                        )
+                        (set_local $9
+                          (get_local $13)
+                        )
+                      )
+                    )
+                    (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.eq
+                    (i32.load8_s
+                      (get_local $10)
+                    )
+                    (i32.const 46)
+                  )
+                  (block
+                    (if
+                      (i32.ne
+                        (i32.shr_s
+                          (i32.shl
+                            (tee_local $7
+                              (i32.load8_s
+                                (tee_local $5
+                                  (i32.add
+                                    (get_local $10)
+                                    (i32.const 1)
+                                  )
+                                )
+                              )
+                            )
+                            (i32.const 24)
+                          )
                           (i32.const 24)
                         )
-                        (i32.const 24)
+                        (i32.const 42)
                       )
-                      (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)
+                            )
+                          )
+                        )
+                        (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)
                             )
                           )
                         )
                       )
-                      (set_local $10
-                        (get_local $1)
+                    )
+                    (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)
                       )
-                      (br $label$break$L46
-                        (i32.add
-                          (get_local $9)
-                          (i32.const 4)
+                      (if
+                        (i32.eq
+                          (i32.load8_s offset=3
+                            (get_local $10)
+                          )
+                          (i32.const 36)
+                        )
+                        (block
+                          (i32.store
+                            (i32.add
+                              (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)
+                              )
+                            )
+                          )
+                          (set_local $7
+                            (i32.load
+                              (get_local $5)
+                            )
+                          )
+                          (br $label$break$L46
+                            (i32.add
+                              (get_local $10)
+                              (i32.const 4)
+                            )
+                          )
                         )
                       )
                     )
-                  )
-                )
-                (if
-                  (i32.ne
-                    (get_local $21)
-                    (i32.const 0)
+                    (if
+                      (get_local $13)
+                      (block
+                        (set_local $15
+                          (i32.const -1)
+                        )
+                        (br $label$break$L1)
+                      )
+                    )
+                    (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)
+                      )
+                    )
                   )
                   (block
-                    (set_local $24
+                    (set_local $7
                       (i32.const -1)
                     )
-                    (br $label$break$L1)
+                    (get_local $10)
                   )
                 )
-                (if
-                  (get_local $44)
-                  (block
-                    (set_local $5
-                      (i32.load
-                        (tee_local $1
-                          (i32.and
-                            (i32.add
-                              (i32.load
-                                (get_local $2)
-                              )
-                              (i32.const 3)
-                            )
-                            (i32.const -4)
-                          )
-                        )
-                      )
-                    )
-                    (i32.store
-                      (get_local $2)
-                      (i32.add
-                        (get_local $1)
-                        (i32.const 4)
-                      )
-                    )
-                    (set_local $10
-                      (get_local $5)
-                    )
-                    (get_local $6)
-                  )
-                  (block
-                    (set_local $10
-                      (i32.const 0)
-                    )
-                    (get_local $6)
-                  )
-                )
-              )
-              (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)
-                      )
-                      (i32.const 24)
-                    )
-                    (i32.const -65)
-                  )
-                )
-                (i32.const 57)
-              )
-              (block
-                (set_local $24
-                  (i32.const -1)
-                )
-                (br $label$break$L1)
-              )
+            (set_local $11
+              (i32.const 0)
             )
-            (set_local $9
-              (i32.add
-                (get_local $11)
-                (i32.const 1)
-              )
-            )
-            (if
-              (i32.lt_u
-                (i32.add
+            (loop $while-in$20
+              (if
+                (i32.gt_u
                   (tee_local $5
-                    (i32.and
-                      (tee_local $1
-                        (i32.load8_s
-                          (i32.add
-                            (i32.add
-                              (i32.const 3611)
-                              (i32.mul
-                                (get_local $13)
-                                (i32.const 58)
-                              )
-                            )
-                            (get_local $1)
-                          )
-                        )
-                      )
-                      (i32.const 255)
-                    )
-                  )
-                  (i32.const -1)
-                )
-                (i32.const 8)
-              )
-              (block
-                (set_local $11
-                  (get_local $9)
-                )
-                (set_local $13
-                  (get_local $5)
-                )
-              )
-              (block
-                (set_local $6
-                  (get_local $5)
-                )
-                (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)
-                  (i32.const 24)
-                )
-                (i32.const 24)
-              )
-              (i32.const 19)
-            )
-            (if
-              (get_local $5)
-              (block
-                (set_local $24
-                  (i32.const -1)
-                )
-                (br $label$break$L1)
-              )
-              (set_local $12
-                (i32.const 52)
-              )
-            )
-            (block
-              (if
-                (get_local $5)
-                (block
-                  (i32.store
                     (i32.add
-                      (get_local $4)
-                      (i32.shl
-                        (get_local $7)
-                        (i32.const 2)
+                      (i32.load8_s
+                        (get_local $9)
                       )
-                    )
-                    (get_local $6)
-                  )
-                  (set_local $5
-                    (i32.load
-                      (tee_local $1
-                        (i32.add
-                          (get_local $3)
-                          (i32.shl
-                            (get_local $7)
-                            (i32.const 3)
-                          )
-                        )
-                      )
+                      (i32.const -65)
                     )
                   )
-                  (set_local $1
-                    (i32.load offset=4
-                      (get_local $1)
-                    )
-                  )
-                  (i32.store
-                    (tee_local $7
-                      (get_local $19)
-                    )
-                    (get_local $5)
-                  )
-                  (i32.store offset=4
-                    (get_local $7)
-                    (get_local $1)
-                  )
-                  (set_local $12
-                    (i32.const 52)
-                  )
-                  (br $do-once$21)
-                )
-              )
-              (if
-                (i32.eqz
-                  (get_local $44)
+                  (i32.const 57)
                 )
                 (block
-                  (set_local $24
-                    (i32.const 0)
+                  (set_local $15
+                    (i32.const -1)
                   )
                   (br $label$break$L1)
                 )
               )
-              (call $_pop_arg_336
-                (get_local $19)
-                (get_local $6)
-                (get_local $2)
+              (set_local $10
+                (i32.add
+                  (get_local $9)
+                  (i32.const 1)
+                )
               )
-            )
-          )
-        )
-        (if
-          (i32.eq
-            (get_local $12)
-            (i32.const 52)
-          )
-          (block
-            (set_local $12
-              (i32.const 0)
+              (if
+                (i32.lt_u
+                  (i32.add
+                    (tee_local $5
+                      (i32.and
+                        (tee_local $12
+                          (i32.load8_s
+                            (i32.add
+                              (i32.add
+                                (i32.const 3611)
+                                (i32.mul
+                                  (get_local $11)
+                                  (i32.const 58)
+                                )
+                              )
+                              (get_local $5)
+                            )
+                          )
+                        )
+                        (i32.const 255)
+                      )
+                    )
+                    (i32.const -1)
+                  )
+                  (i32.const 8)
+                )
+                (block
+                  (set_local $9
+                    (get_local $10)
+                  )
+                  (set_local $11
+                    (get_local $5)
+                  )
+                  (br $while-in$20)
+                )
+                (block
+                  (set_local $16
+                    (get_local $5)
+                  )
+                  (set_local $5
+                    (get_local $10)
+                  )
+                  (set_local $19
+                    (get_local $9)
+                  )
+                )
+              )
             )
             (if
               (i32.eqz
-                (get_local $44)
+                (i32.shr_s
+                  (i32.shl
+                    (get_local $12)
+                    (i32.const 24)
+                  )
+                  (i32.const 24)
+                )
               )
               (block
-                (set_local $20
-                  (get_local $9)
+                (set_local $15
+                  (i32.const -1)
                 )
-                (set_local $1
-                  (get_local $17)
-                )
-                (set_local $8
-                  (get_local $21)
-                )
-                (br $label$continue$L1)
+                (br $label$break$L1)
               )
             )
-          )
-        )
-        (set_local $5
-          (i32.and
-            (i32.ne
-              (get_local $13)
-              (i32.const 0)
+            (set_local $10
+              (i32.gt_s
+                (get_local $21)
+                (i32.const -1)
+              )
             )
-            (i32.eq
-              (i32.and
-                (tee_local $1
-                  (i32.shr_s
-                    (i32.shl
-                      (i32.load8_s
-                        (get_local $11)
+            (block $jumpthreading$outer$1
+              (block $jumpthreading$inner$1
+                (if
+                  (i32.eq
+                    (i32.shr_s
+                      (i32.shl
+                        (get_local $12)
+                        (i32.const 24)
                       )
                       (i32.const 24)
                     )
-                    (i32.const 24)
+                    (i32.const 19)
+                  )
+                  (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)
+                      )
+                    )
+                    (if
+                      (i32.eqz
+                        (get_local $33)
+                      )
+                      (block
+                        (set_local $15
+                          (i32.const 0)
+                        )
+                        (br $label$break$L1)
+                      )
+                    )
+                    (call $_pop_arg_336
+                      (get_local $18)
+                      (get_local $16)
+                      (get_local $2)
+                    )
                   )
                 )
-                (i32.const 15)
+                (br $jumpthreading$outer$1)
               )
-              (i32.const 3)
+              (set_local $28
+                (i32.const 0)
+              )
+              (if
+                (i32.eqz
+                  (get_local $33)
+                )
+                (block
+                  (set_local $1
+                    (get_local $5)
+                  )
+                  (set_local $5
+                    (get_local $6)
+                  )
+                  (br $label$continue$L1)
+                )
+              )
             )
-          )
-        )
-        (set_local $18
-          (select
-            (get_local $8)
-            (tee_local $7
-              (i32.and
+            (set_local $10
+              (select
+                (tee_local $9
+                  (i32.and
+                    (get_local $8)
+                    (i32.const -65537)
+                  )
+                )
                 (get_local $8)
-                (i32.const -65537)
+                (i32.and
+                  (get_local $8)
+                  (i32.const 8192)
+                )
               )
             )
-            (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)
+            (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)
+                                                )
+                                                (set_local $1
+                                                  (i32.or
+                                                    (get_local $10)
+                                                    (i32.const 8)
+                                                  )
+                                                )
+                                                (set_local $7
+                                                  (select
+                                                    (get_local $7)
+                                                    (i32.const 8)
+                                                    (i32.gt_u
+                                                      (get_local $7)
+                                                      (i32.const 8)
                                                     )
                                                   )
                                                 )
-                                                (i32.store
-                                                  (i32.load
-                                                    (get_local $19)
-                                                  )
-                                                  (get_local $22)
+                                                (set_local $16
+                                                  (i32.const 120)
                                                 )
-                                                (set_local $20
-                                                  (get_local $9)
-                                                )
-                                                (set_local $1
-                                                  (get_local $17)
-                                                )
-                                                (set_local $8
-                                                  (get_local $21)
-                                                )
-                                                (br $label$continue$L1)
-                                              )
-                                              (i32.store
-                                                (i32.load
-                                                  (get_local $19)
-                                                )
-                                                (get_local $22)
-                                              )
-                                              (set_local $20
-                                                (get_local $9)
+                                                (br $jumpthreading$inner$2)
                                               )
                                               (set_local $1
-                                                (get_local $17)
+                                                (get_local $10)
                                               )
-                                              (set_local $8
-                                                (get_local $21)
-                                              )
-                                              (br $label$continue$L1)
+                                              (br $jumpthreading$inner$2)
                                             )
-                                            (i32.store
-                                              (tee_local $1
-                                                (i32.load
-                                                  (get_local $19)
+                                            (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)
+                                                    )
+                                                  )
                                                 )
                                               )
-                                              (get_local $22)
+                                              (set_local $8
+                                                (get_local $23)
+                                              )
+                                              (block
+                                                (set_local $1
+                                                  (get_local $6)
+                                                )
+                                                (set_local $6
+                                                  (get_local $8)
+                                                )
+                                                (set_local $8
+                                                  (get_local $23)
+                                                )
+                                                (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)
+                                                          )
+                                                        )
+                                                      )
+                                                    )
+                                                  )
+                                                )
+                                              )
                                             )
-                                            (i32.store offset=4
-                                              (get_local $1)
+                                            (if
+                                              (i32.and
+                                                (get_local $10)
+                                                (i32.const 8)
+                                              )
+                                              (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)
+                                              )
+                                              (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)
+                                              )
+                                            )
+                                          )
+                                          (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)
+                                                )
+                                              )
+                                              (i32.const 0)
+                                            )
+                                            (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.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)
+                                            )
+                                          )
+                                          (if
+                                            (i32.and
+                                              (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 $1
+                                          (i32.load
+                                            (tee_local $6
+                                              (get_local $18)
+                                            )
+                                          )
+                                        )
+                                        (set_local $6
+                                          (i32.load offset=4
+                                            (get_local $6)
+                                          )
+                                        )
+                                        (set_local $8
+                                          (i32.const 0)
+                                        )
+                                        (set_local $9
+                                          (i32.const 4091)
+                                        )
+                                        (br $jumpthreading$inner$3)
+                                      )
+                                      (set_local $1
+                                        (get_local $18)
+                                      )
+                                      (i32.store8
+                                        (get_local $46)
+                                        (i32.and
+                                          (i32.load
+                                            (get_local $1)
+                                          )
+                                          (i32.const 255)
+                                        )
+                                      )
+                                      (set_local $6
+                                        (get_local $46)
+                                      )
+                                      (set_local $10
+                                        (get_local $9)
+                                      )
+                                      (set_local $11
+                                        (i32.const 1)
+                                      )
+                                      (set_local $8
+                                        (i32.const 0)
+                                      )
+                                      (set_local $9
+                                        (i32.const 4091)
+                                      )
+                                      (set_local $1
+                                        (get_local $23)
+                                      )
+                                      (br $jumpthreading$outer$7)
+                                    )
+                                    (set_local $1
+                                      (call $_strerror
+                                        (i32.load
+                                          (call $___errno_location)
+                                        )
+                                      )
+                                    )
+                                    (br $jumpthreading$inner$4)
+                                  )
+                                  (set_local $1
+                                    (select
+                                      (tee_local $1
+                                        (i32.load
+                                          (get_local $18)
+                                        )
+                                      )
+                                      (i32.const 4101)
+                                      (i32.ne
+                                        (get_local $1)
+                                        (i32.const 0)
+                                      )
+                                    )
+                                  )
+                                  (br $jumpthreading$inner$4)
+                                )
+                                (set_local $1
+                                  (get_local $18)
+                                )
+                                (i32.store
+                                  (get_local $47)
+                                  (i32.load
+                                    (get_local $1)
+                                  )
+                                )
+                                (i32.store
+                                  (get_local $50)
+                                  (i32.const 0)
+                                )
+                                (i32.store
+                                  (get_local $18)
+                                  (get_local $47)
+                                )
+                                (set_local $8
+                                  (i32.const -1)
+                                )
+                                (br $jumpthreading$inner$5)
+                              )
+                              (if
+                                (get_local $7)
+                                (block
+                                  (set_local $8
+                                    (get_local $7)
+                                  )
+                                  (br $jumpthreading$inner$5)
+                                )
+                                (block
+                                  (call $_pad
+                                    (get_local $0)
+                                    (i32.const 32)
+                                    (get_local $17)
+                                    (i32.const 0)
+                                    (get_local $10)
+                                  )
+                                  (set_local $6
+                                    (i32.const 0)
+                                  )
+                                  (br $jumpthreading$inner$6)
+                                )
+                              )
+                            )
+                            (set_local $14
+                              (f64.load
+                                (get_local $18)
+                              )
+                            )
+                            (i32.store
+                              (get_local $20)
+                              (i32.const 0)
+                            )
+                            (f64.store
+                              (get_global $tempDoublePtr)
+                              (get_local $14)
+                            )
+                            (set_local $36
+                              (if
+                                (i32.lt_s
+                                  (i32.load offset=4
+                                    (get_global $tempDoublePtr)
+                                  )
+                                  (i32.const 0)
+                                )
+                                (block
+                                  (set_local $30
+                                    (i32.const 1)
+                                  )
+                                  (set_local $14
+                                    (f64.neg
+                                      (get_local $14)
+                                    )
+                                  )
+                                  (i32.const 4108)
+                                )
+                                (if
+                                  (i32.and
+                                    (get_local $10)
+                                    (i32.const 2048)
+                                  )
+                                  (block
+                                    (set_local $30
+                                      (i32.const 1)
+                                    )
+                                    (i32.const 4111)
+                                  )
+                                  (block
+                                    (set_local $30
+                                      (tee_local $1
+                                        (i32.and
+                                          (get_local $10)
+                                          (i32.const 1)
+                                        )
+                                      )
+                                    )
+                                    (select
+                                      (i32.const 4114)
+                                      (i32.const 4109)
+                                      (get_local $1)
+                                    )
+                                  )
+                                )
+                              )
+                            )
+                            (f64.store
+                              (get_global $tempDoublePtr)
+                              (get_local $14)
+                            )
+                            (set_local $1
+                              (get_local $5)
+                            )
+                            (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 2146435072)
+                                    )
+                                    (i32.and
+                                      (i32.eq
+                                        (get_local $5)
+                                        (i32.const 2146435072)
+                                      )
+                                      (i32.const 0)
+                                    )
+                                  )
+                                  (block
+                                    (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.store
+                                        (get_local $20)
+                                        (i32.add
+                                          (i32.load
+                                            (get_local $20)
+                                          )
+                                          (i32.const -1)
+                                        )
+                                      )
+                                    )
+                                    (if
+                                      (i32.eq
+                                        (tee_local $25
+                                          (i32.or
+                                            (get_local $16)
+                                            (i32.const 32)
+                                          )
+                                        )
+                                        (i32.const 97)
+                                      )
+                                      (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)
+                                                  )
+                                                )
+                                              )
+                                            )
+                                            (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.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
+                                          (get_local $24)
+                                        )
+                                        (loop $while-in$63
+                                          (i32.store8
+                                            (get_local $5)
+                                            (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.eqz
+                                            (i32.and
+                                              (i32.load
+                                                (get_local $0)
+                                              )
+                                              (i32.const 32)
+                                            )
+                                          )
+                                          (drop
+                                            (call $___fwritex
+                                              (get_local $19)
+                                              (get_local $8)
+                                              (get_local $0)
+                                            )
+                                          )
+                                        )
+                                        (call $_pad
+                                          (get_local $0)
+                                          (i32.const 48)
+                                          (get_local $17)
+                                          (get_local $6)
+                                          (i32.xor
+                                            (get_local $10)
+                                            (i32.const 65536)
+                                          )
+                                        )
+                                        (set_local $5
+                                          (i32.sub
+                                            (get_local $5)
+                                            (get_local $42)
+                                          )
+                                        )
+                                        (if
+                                          (i32.eqz
+                                            (i32.and
+                                              (i32.load
+                                                (get_local $0)
+                                              )
+                                              (i32.const 32)
+                                            )
+                                          )
+                                          (drop
+                                            (call $___fwritex
+                                              (get_local $24)
+                                              (get_local $5)
+                                              (get_local $0)
+                                            )
+                                          )
+                                        )
+                                        (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)
+                                        )
+                                        (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)
+                                            )
+                                          )
+                                        )
+                                        (call $_pad
+                                          (get_local $0)
+                                          (i32.const 32)
+                                          (get_local $17)
+                                          (get_local $6)
+                                          (i32.xor
+                                            (get_local $10)
+                                            (i32.const 8192)
+                                          )
+                                        )
+                                        (br $do-once$56
+                                          (select
+                                            (get_local $17)
+                                            (get_local $6)
+                                            (i32.lt_s
+                                              (get_local $6)
+                                              (get_local $17)
+                                            )
+                                          )
+                                        )
+                                      )
+                                    )
+                                    (set_local $19
+                                      (select
+                                        (i32.const 6)
+                                        (get_local $7)
+                                        (i32.lt_s
+                                          (get_local $7)
+                                          (i32.const 0)
+                                        )
+                                      )
+                                    )
+                                    (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)
+                                          )
+                                        )
+                                      )
+                                    )
+                                    (set_local $6
+                                      (get_local $8)
+                                    )
+                                    (loop $while-in$67
+                                      (i32.store
+                                        (get_local $6)
+                                        (tee_local $5
+                                          (i32.trunc_s/f64
+                                            (get_local $14)
+                                          )
+                                        )
+                                      )
+                                      (set_local $6
+                                        (i32.add
+                                          (get_local $6)
+                                          (i32.const 4)
+                                        )
+                                      )
+                                      (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)
+                                            )
+                                          )
+                                          (f64.const 0)
+                                        )
+                                      )
+                                    )
+                                    (if
+                                      (i32.gt_s
+                                        (tee_local $7
+                                          (i32.load
+                                            (get_local $20)
+                                          )
+                                        )
+                                        (i32.const 0)
+                                      )
+                                      (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)
+                                          )
+                                        )
+                                      )
+                                      (set_local $5
+                                        (get_local $8)
+                                      )
+                                    )
+                                    (if
+                                      (i32.lt_s
+                                        (get_local $7)
+                                        (i32.const 0)
+                                      )
+                                      (block
+                                        (set_local $12
+                                          (i32.add
+                                            (i32.and
+                                              (i32.div_s
+                                                (i32.add
+                                                  (get_local $19)
+                                                  (i32.const 25)
+                                                )
+                                                (i32.const 9)
+                                              )
+                                              (i32.const -1)
+                                            )
+                                            (i32.const 1)
+                                          )
+                                        )
+                                        (set_local $21
+                                          (i32.eq
+                                            (get_local $25)
+                                            (i32.const 102)
+                                          )
+                                        )
+                                        (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)
+                                          )
+                                        )
+                                      )
+                                      (set_local $9
+                                        (get_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 1)
+                                              )
+                                            )
+                                            (br_if $while-in$85
+                                              (i32.ge_u
+                                                (get_local $11)
+                                                (tee_local $7
+                                                  (i32.mul
+                                                    (get_local $7)
+                                                    (i32.const 10)
+                                                  )
+                                                )
+                                              )
+                                            )
+                                          )
+                                        )
+                                        (set_local $6
+                                          (i32.const 0)
+                                        )
+                                      )
+                                    )
+                                    (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.lt_s
-                                                    (get_local $22)
-                                                    (i32.const 0)
+                                                  (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)
                                               )
                                             )
-                                            (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)
-                                            )
-                                            (i32.and
-                                              (get_local $22)
-                                              (i32.const 65535)
-                                            )
-                                          )
-                                          (set_local $20
-                                            (get_local $9)
-                                          )
-                                          (set_local $1
-                                            (get_local $17)
-                                          )
-                                          (set_local $8
-                                            (get_local $21)
-                                          )
-                                          (br $label$continue$L1)
-                                        )
-                                        (i32.store8
-                                          (i32.load
-                                            (get_local $19)
-                                          )
-                                          (i32.and
-                                            (get_local $22)
-                                            (i32.const 255)
-                                          )
-                                        )
-                                        (set_local $20
-                                          (get_local $9)
-                                        )
-                                        (set_local $1
-                                          (get_local $17)
-                                        )
-                                        (set_local $8
-                                          (get_local $21)
-                                        )
-                                        (br $label$continue$L1)
-                                      )
-                                      (i32.store
-                                        (i32.load
-                                          (get_local $19)
-                                        )
-                                        (get_local $22)
-                                      )
-                                      (set_local $20
-                                        (get_local $9)
-                                      )
-                                      (set_local $1
-                                        (get_local $17)
-                                      )
-                                      (set_local $8
-                                        (get_local $21)
-                                      )
-                                      (br $label$continue$L1)
-                                    )
-                                    (i32.store
-                                      (tee_local $1
-                                        (i32.load
-                                          (get_local $19)
-                                        )
-                                      )
-                                      (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 $20
-                                      (get_local $9)
-                                    )
-                                    (set_local $1
-                                      (get_local $17)
-                                    )
-                                    (set_local $8
-                                      (get_local $21)
-                                    )
-                                    (br $label$continue$L1)
-                                  )
-                                  (set_local $20
-                                    (get_local $9)
-                                  )
-                                  (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
-                                      (tee_local $1
-                                        (get_local $19)
-                                      )
-                                    )
-                                  )
-                                  (i32.const 0)
-                                )
-                                (i32.eq
-                                  (tee_local $1
-                                    (i32.load offset=4
-                                      (get_local $1)
-                                    )
-                                  )
-                                  (i32.const 0)
-                                )
-                              )
-                              (set_local $6
-                                (get_local $28)
-                              )
-                              (block
-                                (set_local $6
-                                  (get_local $28)
-                                )
-                                (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 $58
-                              (if
-                                (i32.eq
-                                  (i32.and
-                                    (get_local $18)
-                                    (i32.const 8)
-                                  )
-                                  (i32.const 0)
-                                )
-                                (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)
-                                  )
-                                  (get_local $6)
-                                )
-                                (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
-                                    (i32.const 0)
-                                  )
-                                  (set_local $36
-                                    (i32.const 4091)
-                                  )
-                                  (set_local $12
-                                    (i32.const 77)
-                                  )
-                                  (get_local $6)
-                                )
-                              )
-                            )
-                            (br $switch$24)
-                          )
-                          (set_local $5
-                            (i32.load
-                              (tee_local $1
-                                (get_local $19)
-                              )
-                            )
-                          )
-                          (if
-                            (i32.lt_s
-                              (tee_local $33
-                                (i32.load offset=4
-                                  (get_local $1)
-                                )
-                              )
-                              (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)
-                            )
-                          )
-                          (set_local $33
-                            (if
-                              (i32.eq
-                                (i32.and
-                                  (get_local $18)
-                                  (i32.const 2048)
-                                )
-                                (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)
-                                    )
-                                  )
-                                )
-                                (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)
-                                    (get_local $10)
-                                  )
-                                )
-                                (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)
-                                    )
-                                  )
-                                  (br_if $while-out$60
-                                    (i32.eq
-                                      (tee_local $1
-                                        (i32.add
-                                          (get_local $1)
-                                          (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)
-                                      (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)
-                            )
-                            (i32.const 255)
-                          )
-                        )
-                        (i32.store8
-                          (tee_local $8
-                            (i32.add
-                              (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)
-                                          )
-                                        )
-                                        (i32.const 4075)
-                                      )
-                                    )
-                                    (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)
-                                        )
-                                      )
-                                      (get_local $64)
-                                    )
-                                    (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)
-                                          )
-                                        )
-                                      )
-                                    )
-                                    (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.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)
-                                      )
-                                    )
-                                    (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)
-                                                  )
-                                                  (i32.const 0)
-                                                  (get_local $11)
+                                          (i32.add
+                                            (i32.mul
+                                              (i32.shr_s
+                                                (i32.sub
+                                                  (get_local $9)
+                                                  (get_local $40)
                                                 )
-                                                (get_global $tempRet0)
-                                                (get_local $5)
-                                                (i32.const 0)
+                                                (i32.const 2)
+                                              )
+                                              (i32.const 9)
+                                            )
+                                            (i32.const -9)
+                                          )
+                                        )
+                                        (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)
                                               )
                                             )
-                                            (tee_local $7
-                                              (get_global $tempRet0)
-                                            )
-                                            (i32.const 1000000000)
-                                            (i32.const 0)
                                           )
+                                          (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)
                                         )
-                                        (i32.store
-                                          (get_local $10)
-                                          (get_local $6)
+                                        (block
+                                          (set_local $11
+                                            (get_local $6)
+                                          )
+                                          (get_local $5)
                                         )
-                                        (set_local $5
-                                          (call $___udivdi3
+                                      )
+                                    )
+                                    (set_local $25
+                                      (i32.sub
+                                        (i32.const 0)
+                                        (get_local $11)
+                                      )
+                                    )
+                                    (set_local $5
+                                      (get_local $9)
+                                    )
+                                    (loop $while-in$97
+                                      (block $while-out$96
+                                        (if
+                                          (i32.le_u
                                             (get_local $5)
-                                            (get_local $7)
-                                            (i32.const 1000000000)
-                                            (i32.const 0)
+                                            (get_local $12)
+                                          )
+                                          (block
+                                            (set_local $26
+                                              (i32.const 0)
+                                            )
+                                            (set_local $9
+                                              (get_local $5)
+                                            )
+                                            (br $while-out$96)
                                           )
                                         )
                                         (if
-                                          (i32.lt_u
-                                            (tee_local $7
+                                          (i32.load
+                                            (tee_local $6
                                               (i32.add
-                                                (get_local $10)
+                                                (get_local $5)
                                                 (i32.const -4)
                                               )
                                             )
-                                            (get_local $8)
                                           )
-                                          (br $while-out$72)
-                                          (set_local $10
-                                            (get_local $7)
+                                          (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-in$73)
                                       )
                                     )
-                                    (br_if $do-once$70
-                                      (get_local $8)
-                                      (i32.eq
-                                        (get_local $5)
+                                    (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)
+                                            )
+                                          )
+                                        )
+                                      )
+                                    )
+                                    (set_local $31
+                                      (i32.and
+                                        (i32.ne
+                                          (tee_local $16
+                                            (i32.or
+                                              (get_local $5)
+                                              (get_local $19)
+                                            )
+                                          )
+                                          (i32.const 0)
+                                        )
+                                        (i32.const 1)
+                                      )
+                                    )
+                                    (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)
+                                        )
+                                      )
+                                    )
+                                    (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)
+                                        )
+                                      )
+                                      (get_local $10)
+                                    )
+                                    (if
+                                      (i32.eqz
+                                        (i32.and
+                                          (i32.load
+                                            (get_local $0)
+                                          )
+                                          (i32.const 32)
+                                        )
+                                      )
+                                      (drop
+                                        (call $___fwritex
+                                          (get_local $36)
+                                          (get_local $30)
+                                          (get_local $0)
+                                        )
+                                      )
+                                    )
+                                    (call $_pad
+                                      (get_local $0)
+                                      (i32.const 48)
+                                      (get_local $17)
+                                      (get_local $11)
+                                      (i32.xor
+                                        (get_local $10)
+                                        (i32.const 65536)
+                                      )
+                                    )
+                                    (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)
+                                          )
+                                        )
+                                        (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)
+                                                  )
+                                                )
+                                              )
+                                            )
+                                          )
+                                          (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)
+                                            )
+                                          )
+                                        )
+                                      )
+                                    )
+                                    (call $_pad
+                                      (get_local $0)
+                                      (i32.const 32)
+                                      (get_local $17)
+                                      (get_local $11)
+                                      (i32.xor
+                                        (get_local $10)
+                                        (i32.const 8192)
+                                      )
+                                    )
+                                    (select
+                                      (get_local $17)
+                                      (get_local $11)
+                                      (i32.lt_s
+                                        (get_local $11)
+                                        (get_local $17)
+                                      )
+                                    )
+                                  )
+                                  (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)
+                                          )
+                                        )
                                       )
                                     )
-                                    (i32.store
-                                      (tee_local $7
+                                    (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)
+                                      )
+                                    )
+                                    (call $_pad
+                                      (get_local $0)
+                                      (i32.const 32)
+                                      (get_local $17)
+                                      (tee_local $6
                                         (i32.add
+                                          (get_local $7)
+                                          (i32.const 3)
+                                        )
+                                      )
+                                      (get_local $9)
+                                    )
+                                    (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 -4)
+                                          (i32.const 3)
+                                          (get_local $0)
                                         )
                                       )
-                                      (get_local $5)
                                     )
-                                    (get_local $7)
+                                    (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)
+                                      )
+                                    )
                                   )
                                 )
                               )
                             )
-                            (loop $while-in$75
-                              (block $while-out$74
-                                (br_if $while-out$74
-                                  (i32.le_u
-                                    (get_local $13)
-                                    (get_local $7)
+                            (br $label$continue$L1)
+                          )
+                          (set_local $6
+                            (get_local $1)
+                          )
+                          (set_local $11
+                            (get_local $7)
+                          )
+                          (set_local $8
+                            (i32.const 0)
+                          )
+                          (set_local $9
+                            (i32.const 4091)
+                          )
+                          (set_local $1
+                            (get_local $23)
+                          )
+                          (br $jumpthreading$outer$7)
+                        )
+                        (set_local $9
+                          (i32.and
+                            (get_local $16)
+                            (i32.const 32)
+                          )
+                        )
+                        (if
+                          (i32.and
+                            (i32.eqz
+                              (tee_local $10
+                                (i32.load
+                                  (tee_local $6
+                                    (get_local $18)
                                   )
                                 )
-                                (if
-                                  (i32.eq
-                                    (i32.load
-                                      (tee_local $5
+                              )
+                            )
+                            (i32.eqz
+                              (tee_local $6
+                                (i32.load offset=4
+                                  (get_local $6)
+                                )
+                              )
+                            )
+                          )
+                          (block
+                            (set_local $6
+                              (get_local $23)
+                            )
+                            (set_local $8
+                              (i32.const 0)
+                            )
+                            (set_local $9
+                              (i32.const 4091)
+                            )
+                            (br $jumpthreading$inner$7)
+                          )
+                          (block
+                            (set_local $8
+                              (get_local $23)
+                            )
+                            (loop $while-in$130
+                              (i32.store8
+                                (tee_local $8
+                                  (i32.add
+                                    (get_local $8)
+                                    (i32.const -1)
+                                  )
+                                )
+                                (i32.and
+                                  (i32.or
+                                    (i32.and
+                                      (i32.load8_s
                                         (i32.add
-                                          (get_local $13)
-                                          (i32.const -4)
+                                          (i32.and
+                                            (get_local $10)
+                                            (i32.const 15)
+                                          )
+                                          (i32.const 4075)
+                                        )
+                                      )
+                                      (i32.const 255)
+                                    )
+                                    (get_local $9)
+                                  )
+                                  (i32.const 255)
+                                )
+                              )
+                              (br_if $while-in$130
+                                (i32.eqz
+                                  (i32.and
+                                    (i32.eqz
+                                      (tee_local $10
+                                        (call $_bitshift64Lshr
+                                          (get_local $10)
+                                          (get_local $6)
+                                          (i32.const 4)
                                         )
                                       )
                                     )
-                                    (i32.const 0)
+                                    (i32.eqz
+                                      (tee_local $6
+                                        (get_global $tempRet0)
+                                      )
+                                    )
                                   )
-                                  (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)
-                                )
+                              (set_local $6
+                                (get_local $8)
                               )
                             )
                             (if
-                              (i32.gt_s
-                                (get_local $5)
-                                (i32.const 0)
-                              )
-                              (set_local $8
-                                (get_local $7)
+                              (i32.or
+                                (i32.eqz
+                                  (i32.and
+                                    (get_local $1)
+                                    (i32.const 8)
+                                  )
+                                )
+                                (i32.and
+                                  (i32.eqz
+                                    (i32.load
+                                      (tee_local $10
+                                        (get_local $18)
+                                      )
+                                    )
+                                  )
+                                  (i32.eqz
+                                    (i32.load offset=4
+                                      (get_local $10)
+                                    )
+                                  )
+                                )
                               )
                               (block
-                                (set_local $6
-                                  (get_local $13)
+                                (set_local $8
+                                  (i32.const 0)
                                 )
-                                (br $while-out$68)
+                                (set_local $9
+                                  (i32.const 4091)
+                                )
+                                (br $jumpthreading$inner$7)
+                              )
+                              (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 $jumpthreading$inner$7)
                               )
                             )
-                            (br $while-in$69)
+                          )
+                        )
+                        (br $jumpthreading$outer$7)
+                      )
+                      (set_local $6
+                        (call $_fmt_u
+                          (get_local $1)
+                          (get_local $6)
+                          (get_local $23)
+                        )
+                      )
+                      (set_local $1
+                        (get_local $10)
+                      )
+                      (br $jumpthreading$inner$7)
+                    )
+                    (set_local $28
+                      (i32.const 0)
+                    )
+                    (set_local $16
+                      (i32.eqz
+                        (tee_local $12
+                          (call $_memchr
+                            (get_local $1)
+                            (i32.const 0)
+                            (get_local $7)
+                          )
+                        )
+                      )
+                    )
+                    (set_local $6
+                      (get_local $1)
+                    )
+                    (set_local $10
+                      (get_local $9)
+                    )
+                    (set_local $11
+                      (select
+                        (get_local $7)
+                        (i32.sub
+                          (get_local $12)
+                          (get_local $1)
+                        )
+                        (get_local $16)
+                      )
+                    )
+                    (set_local $8
+                      (i32.const 0)
+                    )
+                    (set_local $9
+                      (i32.const 4091)
+                    )
+                    (set_local $1
+                      (select
+                        (i32.add
+                          (get_local $1)
+                          (get_local $7)
+                        )
+                        (get_local $12)
+                        (get_local $16)
+                      )
+                    )
+                    (br $jumpthreading$outer$7)
+                  )
+                  (set_local $1
+                    (i32.const 0)
+                  )
+                  (set_local $6
+                    (i32.const 0)
+                  )
+                  (set_local $7
+                    (i32.load
+                      (get_local $18)
+                    )
+                  )
+                  (loop $while-in$132
+                    (block $while-out$131
+                      (br_if $while-out$131
+                        (i32.eqz
+                          (tee_local $9
+                            (i32.load
+                              (get_local $7)
+                            )
+                          )
+                        )
+                      )
+                      (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.gt_u
+                            (get_local $6)
+                            (i32.sub
+                              (get_local $8)
+                              (get_local $1)
+                            )
                           )
                         )
                       )
                       (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)
-                                        )
-                                        (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
-                                              (i32.load
-                                                (get_local $17)
-                                              )
-                                            )
-                                            (get_local $70)
-                                          )
-                                        )
-                                        (i32.store
-                                          (get_local $17)
-                                          (i32.add
-                                            (i32.shr_u
-                                              (get_local $5)
-                                              (get_local $13)
-                                            )
-                                            (get_local $11)
-                                          )
-                                        )
-                                        (set_local $11
-                                          (i32.mul
-                                            (get_local $6)
-                                            (get_local $27)
-                                          )
-                                        )
-                                        (br_if $while-out$80
-                                          (i32.ge_u
-                                            (tee_local $17
-                                              (i32.add
-                                                (get_local $17)
-                                                (i32.const 4)
-                                              )
-                                            )
-                                            (get_local $23)
-                                          )
-                                        )
-                                        (br $while-in$81)
-                                      )
-                                    )
-                                    (set_local $5
-                                      (select
-                                        (i32.add
-                                          (get_local $7)
-                                          (i32.const 4)
-                                        )
-                                        (get_local $7)
-                                        (i32.eq
-                                          (i32.load
-                                            (get_local $7)
-                                          )
-                                          (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
-                                        (get_local $7)
-                                      )
-                                      (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)
-                                      )
-                                    )
-                                  )
-                                  (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
+                        (i32.add
                           (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
-                                      (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)
+                          (i32.const 4)
                         )
                       )
-                    )
-                    (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)
-                                        )
-                                      )
-                                      (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
-                                        (i32.add
-                                          (get_local $11)
-                                          (i32.const 1)
-                                        )
-                                      )
-                                      (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)
-                                            )
-                                          )
-                                          (get_local $17)
-                                        )
-                                        (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)
-                                          )
-                                          (i32.const -1)
-                                        )
-                                        (i32.const 1)
-                                      )
-                                      (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)
-                                          )
-                                          (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 $14
-                                  (block $do-once$90
-                                    (if
-                                      (i32.eq
-                                        (get_local $51)
-                                        (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)
-                                                )
-                                                (i32.const 24)
-                                              )
-                                              (i32.const 24)
-                                            )
-                                            (i32.const 45)
-                                          )
-                                        )
-                                        (set_local $30
-                                          (f64.neg
-                                            (get_local $30)
-                                          )
-                                        )
-                                        (f64.neg
-                                          (get_local $14)
-                                        )
-                                      )
-                                    )
-                                  )
-                                )
-                                (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
-                                        (get_local $6)
-                                        (i32.const 0)
-                                      )
-                                      (set_local $7
-                                        (if
-                                          (i32.lt_u
-                                            (tee_local $6
-                                              (i32.add
-                                                (get_local $6)
-                                                (i32.const -4)
-                                              )
-                                            )
-                                            (get_local $7)
-                                          )
-                                          (block
-                                            (i32.store
-                                              (tee_local $5
-                                                (i32.add
-                                                  (get_local $7)
-                                                  (i32.const -4)
-                                                )
-                                              )
-                                              (i32.const 0)
-                                            )
-                                            (get_local $5)
-                                          )
-                                          (get_local $7)
-                                        )
-                                      )
-                                      (i32.store
-                                        (get_local $6)
-                                        (tee_local $5
-                                          (i32.add
-                                            (i32.load
-                                              (get_local $6)
-                                            )
-                                            (i32.const 1)
-                                          )
-                                        )
-                                      )
-                                      (br_if $while-out$92
-                                        (i32.le_u
-                                          (get_local $5)
-                                          (i32.const 999999999)
-                                        )
-                                      )
-                                      (br $while-in$93)
-                                    )
-                                  )
-                                )
-                                (set_local $11
-                                  (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 $11)
-                                    )
-                                    (br $do-once$88)
-                                  )
-                                  (set_local $10
-                                    (i32.const 10)
-                                  )
-                                )
-                                (loop $while-in$95
-                                  (block $while-out$94
-                                    (set_local $11
-                                      (i32.add
-                                        (get_local $11)
-                                        (i32.const 1)
-                                      )
-                                    )
-                                    (if
-                                      (i32.lt_u
-                                        (get_local $5)
-                                        (tee_local $10
-                                          (i32.mul
-                                            (get_local $10)
-                                            (i32.const 10)
-                                          )
-                                        )
-                                      )
-                                      (block
-                                        (set_local $13
-                                          (get_local $11)
-                                        )
-                                        (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
+                      (br_if $while-in$132
+                        (i32.gt_u
                           (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)
-                                          )
-                                          (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)
-                                          )
-                                        )
-                                      )
-                                      (i32.const 0)
-                                    )
-                                    (block
-                                      (set_local $6
-                                        (i32.const 9)
-                                      )
-                                      (br $do-once$100)
-                                    )
-                                  )
-                                  (if
-                                    (i32.eq
-                                      (i32.and
-                                        (i32.rem_u
-                                          (get_local $1)
-                                          (i32.const 10)
-                                        )
-                                        (i32.const -1)
-                                      )
-                                      (i32.const 0)
-                                    )
-                                    (block
-                                      (set_local $5
-                                        (i32.const 10)
-                                      )
-                                      (set_local $6
-                                        (i32.const 0)
-                                      )
-                                    )
-                                    (block
-                                      (set_local $6
-                                        (i32.const 0)
-                                      )
-                                      (br $do-once$100)
-                                    )
-                                  )
-                                  (loop $while-in$103
-                                    (block $while-out$102
-                                      (set_local $6
-                                        (i32.add
-                                          (get_local $6)
-                                          (i32.const 1)
-                                        )
-                                      )
-                                      (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)
-                                                )
-                                              )
-                                            )
-                                            (i32.const -1)
-                                          )
-                                          (i32.const 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)
-                                    )
-                                    (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)
-                                      )
-                                    )
-                                    (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)
-                                      )
-                                    )
-                                  )
-                                )
-                                (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
-                                        (i32.add
-                                          (get_local $1)
-                                          (get_local $13)
-                                        )
-                                        (get_local $6)
-                                      )
-                                    )
-                                    (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)
-                                      )
-                                    )
-                                  )
-                                )
-                                (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 $15
+                          (tee_local $1
+                            (i32.add
+                              (get_local $6)
                               (get_local $1)
                             )
-                            (i32.and
-                              (get_local $18)
-                              (i32.const 8)
-                            )
                           )
                         )
                       )
                     )
-                    (set_local $17
-                      (i32.and
-                        (i32.ne
-                          (tee_local $1
-                            (i32.or
-                              (get_local $15)
-                              (get_local $8)
-                            )
-                          )
-                          (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)
-                          )
-                        )
-                        (block
-                          (set_local $6
-                            (select
-                              (get_local $13)
-                              (i32.const 0)
-                              (i32.gt_s
-                                (get_local $13)
-                                (i32.const 0)
-                              )
-                            )
-                          )
-                          (i32.const 0)
-                        )
-                        (block
-                          (set_local $5
-                            (i32.shr_s
-                              (i32.shl
-                                (i32.lt_s
-                                  (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)
-                                  )
-                                )
-                                (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.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)
-                            )
-                          )
-                          (set_local $6
-                            (i32.sub
-                              (get_local $40)
-                              (get_local $5)
-                            )
-                          )
-                          (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)
-                            )
-                            (get_local $17)
-                          )
-                          (get_local $6)
-                        )
-                      )
-                      (get_local $18)
-                    )
-                    (if
-                      (i32.eq
-                        (i32.and
-                          (i32.load
-                            (get_local $0)
-                          )
-                          (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)
-                                )
-                              )
-                            )
-                          )
-                          (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)
-                                    (get_local $8)
-                                  )
-                                  (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)
-                                          )
-                                        )
-                                        (br $while-in$113)
-                                      )
-                                    )
-                                  )
-                                )
-                              )
-                              (if
-                                (i32.eq
-                                  (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)
-                                    )
-                                  )
-                                  (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.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)
-                              )
-                            )
-                            (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.and
-                                    (i32.gt_s
-                                      (get_local $15)
-                                      (i32.const 9)
-                                    )
-                                    (i32.lt_u
-                                      (tee_local $5
-                                        (i32.add
-                                          (get_local $5)
-                                          (i32.const 4)
-                                        )
-                                      )
-                                      (get_local $23)
-                                    )
-                                  )
-                                  (set_local $15
-                                    (get_local $1)
-                                  )
-                                  (block
-                                    (set_local $15
-                                      (get_local $1)
-                                    )
-                                    (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)
-                                  (i32.const 0)
-                                )
-                              )
-                              (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)
-                                        )
-                                      )
-                                    )
-                                  )
-                                  (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)
-                              )
-                              (get_local $0)
-                            )
-                          )
-                        )
-                      )
-                    )
-                    (call $_pad
-                      (get_local $0)
-                      (i32.const 32)
-                      (get_local $16)
-                      (get_local $6)
-                      (i32.xor
-                        (get_local $18)
-                        (i32.const 8192)
-                      )
-                    )
-                    (select
-                      (get_local $16)
-                      (get_local $6)
-                      (i32.lt_s
-                        (get_local $6)
-                        (get_local $16)
-                      )
-                    )
                   )
-                  (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)
-                          )
-                        )
-                      )
+                  (if
+                    (i32.lt_s
+                      (get_local $6)
+                      (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)
-                            )
-                            (i32.const 0)
-                          )
-                        )
+                    (block
+                      (set_local $15
+                        (i32.const -1)
                       )
-                    )
-                    (set_local $8
-                      (select
-                        (select
-                          (i32.const 4135)
-                          (i32.const 4139)
-                          (get_local $8)
-                        )
-                        (get_local $5)
-                        (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)
-                    )
-                    (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)
-                        )
-                        (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)
-                      )
+                      (br $label$break$L1)
                     )
                   )
-                )
-              )
-            )
-            (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
+                  (call $_pad
+                    (get_local $0)
+                    (i32.const 32)
+                    (get_local $17)
+                    (get_local $1)
+                    (get_local $10)
+                  )
+                  (if
+                    (get_local $1)
+                    (block
+                      (set_local $6
+                        (i32.const 0)
+                      )
+                      (set_local $7
                         (i32.load
-                          (tee_local $1
-                            (get_local $19)
-                          )
+                          (get_local $18)
                         )
                       )
-                      (i32.const 0)
-                    )
-                    (i32.eq
-                      (tee_local $1
-                        (i32.load offset=4
-                          (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)
-                    )
-                    (get_local $28)
-                  )
-                  (block
-                    (set_local $6
-                      (get_local $28)
-                    )
-                    (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)
-                              )
-                              (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)
-                              )
-                            )
-                            (i32.const 0)
-                          )
-                          (i32.eq
-                            (i32.load offset=4
-                              (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)
-                        )
-                        (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)
-                            )
-                          )
-                        )
-                        (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)
-                        )
-                      )
-                      (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)
-                      )
-                      (get_local $5)
-                    )
-                  )
-                  (set_local $43
-                    (i32.const 0)
-                  )
-                  (set_local $48
-                    (i32.const 4091)
-                  )
-                  (set_local $49
-                    (select
-                      (i32.add
-                        (get_local $50)
-                        (get_local $10)
-                      )
-                      (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)
-                      )
-                    )
-                    (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)
-                              )
-                            )
-                            (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)
-                              )
-                            )
-                          )
-                          (set_local $7
-                            (get_local $1)
-                          )
-                          (block
-                            (set_local $7
-                              (get_local $1)
-                            )
-                            (br $while-out$131)
-                          )
-                        )
-                        (br $while-in$132)
-                      )
-                    )
-                    (if
-                      (i32.lt_s
-                        (get_local $5)
-                        (i32.const 0)
-                      )
-                      (block
-                        (set_local $24
-                          (i32.const -1)
-                        )
-                        (br $label$break$L1)
-                      )
-                    )
-                    (call $_pad
-                      (get_local $0)
-                      (i32.const 32)
-                      (get_local $16)
-                      (get_local $7)
-                      (get_local $18)
-                    )
-                    (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
-                          (i32.const 0)
-                        )
-                        (set_local $8
-                          (i32.load
-                            (get_local $19)
-                          )
-                        )
-                        (loop $while-in$134
-                          (block $while-out$133
-                            (if
-                              (i32.eq
-                                (tee_local $1
-                                  (i32.load
+                                (tee_local $8
+                                  (call $_wctomb
+                                    (get_local $41)
                                     (get_local $8)
                                   )
                                 )
-                                (i32.const 0)
-                              )
-                              (block
-                                (set_local $38
-                                  (get_local $7)
-                                )
-                                (set_local $12
-                                  (i32.const 98)
-                                )
-                                (br $label$break$L308)
+                                (get_local $6)
                               )
                             )
-                            (set_local $8
-                              (i32.add
-                                (get_local $8)
-                                (i32.const 4)
-                              )
+                            (get_local $1)
+                          )
+                          (block
+                            (set_local $6
+                              (get_local $1)
                             )
-                            (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)
+                            (br $jumpthreading$inner$6)
+                          )
+                        )
+                        (if
+                          (i32.eqz
+                            (i32.and
+                              (i32.load
                                 (get_local $0)
                               )
+                              (i32.const 32)
                             )
-                            (if
-                              (i32.lt_u
-                                (get_local $1)
-                                (get_local $7)
-                              )
-                              (set_local $6
-                                (get_local $1)
-                              )
-                              (block
-                                (set_local $38
-                                  (get_local $7)
-                                )
-                                (set_local $12
-                                  (i32.const 98)
-                                )
-                                (br $while-out$133)
-                              )
-                            )
-                            (br $while-in$134)
                           )
+                          (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)
+                        )
+                      )
+                    )
+                    (block
+                      (set_local $6
+                        (i32.const 0)
+                      )
+                      (br $jumpthreading$inner$6)
+                    )
+                  )
+                  (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)
+                      (i32.const 0)
+                    )
+                    (tee_local $1
+                      (i32.or
+                        (i32.ne
+                          (i32.load
+                            (tee_local $1
+                              (get_local $18)
+                            )
+                          )
+                          (i32.const 0)
+                        )
+                        (i32.ne
+                          (i32.load offset=4
+                            (get_local $1)
+                          )
+                          (i32.const 0)
                         )
                       )
                     )
                   )
+                  (block
+                    (set_local $11
+                      (select
+                        (get_local $7)
+                        (tee_local $1
+                          (i32.add
+                            (i32.xor
+                              (i32.and
+                                (get_local $1)
+                                (i32.const 1)
+                              )
+                              (i32.const 1)
+                            )
+                            (i32.sub
+                              (get_local $45)
+                              (get_local $6)
+                            )
+                          )
+                        )
+                        (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 $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 $28)
-                )
-              )
-            )
-          )
-        )
-        (set_local $1
-          (i32.lt_s
-            (get_local $42)
-            (tee_local $7
-              (i32.sub
-                (get_local $49)
-                (get_local $47)
-              )
-            )
-          )
-        )
-        (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 $17)
+                  (i32.lt_s
+                    (get_local $17)
                     (get_local $1)
                   )
                 )
               )
-            )
-          )
-        )
-        (call $_pad
-          (get_local $0)
-          (i32.const 32)
-          (tee_local $5
-            (select
               (get_local $1)
-              (get_local $16)
+              (get_local $10)
+            )
+            (if
+              (i32.eqz
+                (i32.and
+                  (i32.load
+                    (get_local $0)
+                  )
+                  (i32.const 32)
+                )
+              )
+              (drop
+                (call $___fwritex
+                  (get_local $9)
+                  (get_local $8)
+                  (get_local $0)
+                )
+              )
+            )
+            (call $_pad
+              (get_local $0)
+              (i32.const 48)
+              (get_local $7)
+              (get_local $1)
+              (i32.xor
+                (get_local $10)
+                (i32.const 65536)
+              )
+            )
+            (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)
+              (get_local $7)
+              (get_local $1)
+              (i32.xor
+                (get_local $10)
+                (i32.const 8192)
+              )
+            )
+            (set_local $1
               (get_local $5)
             )
-          )
-          (get_local $1)
-          (get_local $37)
-        )
-        (if
-          (i32.eq
-            (i32.and
-              (i32.load
-                (get_local $0)
-              )
-              (i32.const 32)
+            (set_local $5
+              (get_local $7)
             )
-            (i32.const 0)
-          )
-          (call $___fwritex
-            (get_local $48)
-            (get_local $43)
-            (get_local $0)
+            (br $label$continue$L1)
           )
         )
-        (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)
-            )
-            (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 $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)
+          (get_local $13)
+          (block
+            (set_local $0
+              (i32.const 1)
             )
-            (set_local $24
-              (i32.const 0)
-            )
-            (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)
-                            )
-                          )
-                        )
-                      )
-                      (i32.const 0)
-                    )
-                  )
-                  (call $_pop_arg_336
-                    (i32.add
-                      (get_local $3)
-                      (i32.shl
-                        (get_local $1)
-                        (i32.const 3)
-                      )
-                    )
-                    (get_local $0)
-                    (get_local $2)
-                  )
-                  (if
-                    (i32.ge_s
-                      (tee_local $1
+            (loop $while-in$137
+              (block $while-out$136
+                (br_if $while-out$136
+                  (i32.eqz
+                    (tee_local $1
+                      (i32.load
                         (i32.add
-                          (get_local $1)
-                          (i32.const 1)
-                        )
-                      )
-                      (i32.const 10)
-                    )
-                    (block
-                      (set_local $24
-                        (i32.const 1)
-                      )
-                      (br $label$break$L343)
-                    )
-                  )
-                  (br $while-in$137)
-                )
-              )
-              (if
-                (i32.lt_s
-                  (get_local $1)
-                  (i32.const 10)
-                )
-                (loop $while-in$139
-                  (block $while-out$138
-                    (set_local $0
-                      (i32.add
-                        (get_local $1)
-                        (i32.const 1)
-                      )
-                    )
-                    (if
-                      (i32.ne
-                        (i32.load
-                          (i32.add
-                            (get_local $4)
-                            (i32.shl
-                              (get_local $1)
-                              (i32.const 2)
-                            )
+                          (get_local $4)
+                          (i32.shl
+                            (get_local $0)
+                            (i32.const 2)
                           )
                         )
-                        (i32.const 0)
-                      )
-                      (block
-                        (set_local $24
-                          (i32.const -1)
-                        )
-                        (br $label$break$L343)
                       )
                     )
-                    (if
-                      (i32.lt_s
+                  )
+                )
+                (call $_pop_arg_336
+                  (i32.add
+                    (get_local $3)
+                    (i32.shl
+                      (get_local $0)
+                      (i32.const 3)
+                    )
+                  )
+                  (get_local $1)
+                  (get_local $2)
+                )
+                (br_if $while-in$137
+                  (i32.lt_s
+                    (tee_local $0
+                      (i32.add
                         (get_local $0)
-                        (i32.const 10)
+                        (i32.const 1)
                       )
-                      (set_local $1
+                    )
+                    (i32.const 10)
+                  )
+                )
+                (block
+                  (set_local $15
+                    (i32.const 1)
+                  )
+                  (br $label$break$L343)
+                )
+              )
+            )
+            (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)
+                  )
+                )
+                (if
+                  (i32.load
+                    (i32.add
+                      (get_local $4)
+                      (i32.shl
                         (get_local $0)
+                        (i32.const 2)
                       )
-                      (block
-                        (set_local $24
-                          (i32.const 1)
-                        )
-                        (br $while-out$138)
-                      )
+                    )
+                  )
+                  (block
+                    (set_local $15
+                      (i32.const -1)
+                    )
+                    (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
-                  (get_local $3)
-                  (get_local $4)
-                  (i32.const 10)
-                  (i32.const 0)
-                )
+            (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 $0)
-                    (i32.const 48)
-                  )
-                  (i32.const 255)
-                )
-              )
-              (set_local $0
-                (call $___udivdi3
-                  (get_local $3)
-                  (get_local $4)
-                  (i32.const 10)
-                  (i32.const 0)
-                )
-              )
-              (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)
-              )
-              (br $while-in$1)
             )
-          )
-          (set_local $3
-            (get_local $0)
-          )
-          (get_local $2)
-        )
-        (block
-          (set_local $3
-            (get_local $0)
-          )
-          (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
+              (tee_local $2
                 (i32.add
-                  (get_local $1)
+                  (get_local $2)
                   (i32.const -1)
                 )
               )
               (i32.and
                 (i32.or
-                  (i32.and
-                    (i32.rem_u
-                      (get_local $3)
-                      (i32.const 10)
-                    )
-                    (i32.const -1)
-                  )
+                  (get_local $3)
                   (i32.const 48)
                 )
                 (i32.const 255)
               )
             )
-            (set_local $0
-              (i32.and
-                (i32.div_u
+            (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.eq
+                    (get_local $1)
+                    (i32.const 9)
+                  )
+                  (i32.gt_u
+                    (get_local $0)
+                    (i32.const -1)
+                  )
+                )
+              )
+              (block
+                (set_local $0
                   (get_local $3)
+                )
+                (set_local $1
+                  (get_local $4)
+                )
+                (br $while-in$1)
+              )
+              (set_local $0
+                (get_local $3)
+              )
+            )
+          )
+          (get_local $2)
+        )
+        (get_local $2)
+      )
+    )
+    (if
+      (get_local $0)
+      (loop $while-in$3
+        (i32.store8
+          (tee_local $1
+            (i32.add
+              (get_local $1)
+              (i32.const -1)
+            )
+          )
+          (i32.and
+            (i32.or
+              (i32.and
+                (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)
+                            )
                           )
-                        )
-                        (i32.const 32)
-                      )
-                      (i32.const 0)
-                    )
-                  )
-                  (br_if $while-out$2
-                    (i32.le_u
-                      (tee_local $3
-                        (i32.add
-                          (get_local $3)
-                          (i32.const -256)
+                          (get_local $1)
                         )
                       )
-                      (i32.const 255)
+                      (i32.const 32)
                     )
                   )
-                  (br $while-in$3)
+                )
+                (br_if $while-in$3
+                  (i32.gt_u
+                    (tee_local $2
+                      (i32.add
+                        (get_local $2)
+                        (i32.const -256)
+                      )
+                    )
+                    (i32.const 255)
+                  )
                 )
               )
               (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)
-                            )
-                          )
-                          (i32.const 0)
-                        )
-                        (if
-                          (i32.eq
-                            (tee_local $0
-                              (i32.load offset=20
-                                (get_local $4)
-                              )
-                            )
-                            (i32.const 0)
-                          )
-                          (block
-                            (set_local $7
                               (get_local $2)
                             )
-                            (set_local $10
-                              (get_local $8)
+                          )
+                        )
+                        (if
+                          (i32.eqz
+                            (tee_local $0
+                              (i32.load offset=20
+                                (get_local $2)
+                              )
+                            )
+                          )
+                          (block
+                            (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)
-                        )
-                      )
-                      (set_local $2
-                        (select
                           (get_local $4)
-                          (get_local $2)
-                          (get_local $0)
                         )
                       )
                       (set_local $4
-                        (get_local $1)
-                      )
-                      (set_local $8
                         (select
-                          (get_local $1)
-                          (get_local $8)
+                          (get_local $2)
+                          (get_local $4)
+                          (get_local $6)
+                        )
+                      )
+                      (set_local $2
+                        (get_local $0)
+                      )
+                      (set_local $1
+                        (select
                           (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)
-                              )
-                            )
-                            (if
-                              (i32.eq
-                                (tee_local $2
-                                  (i32.load
-                                    (tee_local $5
-                                      (i32.add
-                                        (get_local $4)
-                                        (i32.const 16)
-                                      )
-                                    )
-                                  )
-                                )
-                                (i32.const 0)
-                              )
-                              (br $while-out$10)
-                              (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
+                            (tee_local $8
+                              (i32.load
+                                (tee_local $6
+                                  (i32.add
+                                    (get_local $1)
+                                    (i32.const 16)
+                                  )
+                                )
+                              )
+                            )
+                            (block
+                              (set_local $1
+                                (get_local $8)
+                              )
+                              (set_local $0
+                                (get_local $6)
+                              )
+                              (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.and
+                              (tee_local $3
+                                (i32.load
+                                  (i32.const 176)
                                 )
                               )
-                              (i32.const 0)
-                            )
-                            (block
-                              (i32.store
-                                (i32.const 176)
-                                (i32.or
-                                  (get_local $0)
-                                  (get_local $2)
+                              (tee_local $1
+                                (i32.shl
+                                  (i32.const 1)
+                                  (get_local $1)
                                 )
                               )
-                              (set_local $3
-                                (i32.add
-                                  (get_local $4)
-                                  (i32.const 8)
-                                )
-                              )
-                              (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
+                                (set_local $13
+                                  (get_local $3)
+                                )
+                                (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 $16
-                                  (get_local $2)
-                                )
+                              )
+                              (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 4)
+                                                      )
+                                                    )
+                                                    (get_local $8)
+                                                  )
+                                                  (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 16)
                                                       )
-                                                      (i32.const 4)
+                                                      (i32.const 2)
                                                     )
                                                   )
-                                                  (get_local $3)
-                                                )
-                                                (tee_local $3
-                                                  (i32.and
-                                                    (i32.shr_u
-                                                      (i32.add
-                                                        (tee_local $7
-                                                          (i32.shl
-                                                            (get_local $12)
-                                                            (get_local $7)
-                                                          )
-                                                        )
-                                                        (i32.const 245760)
-                                                      )
-                                                      (i32.const 16)
-                                                    )
-                                                    (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 $12)
-                              (i32.const 31)
+                              (i32.eq
+                                (get_local $15)
+                                (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)
-                              )
-                            )
-                            (set_local $16
-                              (get_local $7)
-                            )
-                          )
-                          (set_local $7
-                            (i32.eq
-                              (tee_local $3
-                                (i32.load offset=20
-                                  (get_local $23)
+                              (block
+                                (set_local $5
+                                  (get_local $8)
+                                )
+                                (set_local $2
+                                  (get_local $0)
                                 )
                               )
-                              (i32.const 0)
                             )
                           )
-                          (set_local $15
+                          (set_local $8
                             (select
-                              (get_local $15)
-                              (get_local $3)
+                              (get_local $13)
+                              (tee_local $8
+                                (i32.load offset=20
+                                  (get_local $0)
+                                )
+                              )
                               (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 $0
+                                (get_local $5)
                               )
-                              (set_local $32
-                                (get_local $15)
-                              )
-                              (set_local $28
-                                (get_local $36)
-                              )
-                              (set_local $11
-                                (i32.const 86)
-                              )
-                              (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)
+                    (tee_local $5
+                      (if
+                        (i32.and
+                          (i32.eqz
+                            (get_local $8)
+                          )
+                          (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.eq
-                              (get_local $28)
-                              (i32.const 0)
+                            (block
+                              (set_local $0
+                                (get_local $9)
+                              )
+                              (br $do-once$0)
                             )
                           )
-                          (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.const 0)
-                              )
-                              (block
-                                (set_local $6
-                                  (get_local $5)
-                                )
-                                (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)
                         )
-                      )
-                      (i32.const 0)
-                    )
-                    (block
-                      (set_local $17
-                        (get_local $31)
-                      )
-                      (set_local $13
-                        (get_local $28)
+                        (get_local $8)
                       )
                     )
                     (block
-                      (set_local $26
-                        (get_local $31)
-                      )
-                      (set_local $24
+                      (set_local $4
                         (get_local $0)
                       )
-                      (set_local $29
-                        (get_local $28)
+                      (set_local $3
+                        (get_local $5)
                       )
-                      (set_local $11
+                      (set_local $1
+                        (get_local $2)
+                      )
+                      (set_local $19
                         (i32.const 90)
                       )
                     )
-                  )
-                )
-                (if
-                  (i32.eq
-                    (get_local $11)
-                    (i32.const 90)
-                  )
-                  (loop $while-in$20
-                    (block $while-out$19
-                      (set_local $11
-                        (i32.const 0)
+                    (block
+                      (set_local $7
+                        (get_local $0)
                       )
-                      (set_local $0
-                        (i32.lt_u
-                          (tee_local $3
-                            (i32.sub
-                              (i32.and
-                                (i32.load offset=4
-                                  (get_local $24)
-                                )
-                                (i32.const -8)
-                              )
-                              (get_local $5)
-                            )
-                          )
-                          (get_local $26)
-                        )
+                      (set_local $6
+                        (get_local $2)
                       )
-                      (set_local $17
-                        (select
-                          (get_local $3)
-                          (get_local $26)
-                          (get_local $0)
-                        )
-                      )
-                      (set_local $3
-                        (select
-                          (get_local $24)
-                          (get_local $29)
-                          (get_local $0)
-                        )
-                      )
-                      (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)
-                        )
-                      )
-                      (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)
-                          )
-                        )
-                      )
-                      (br $while-in$20)
                     )
                   )
                 )
                 (if
                   (i32.eq
-                    (get_local $13)
-                    (i32.const 0)
+                    (get_local $19)
+                    (i32.const 90)
                   )
-                  (set_local $6
-                    (get_local $5)
+                  (loop $while-in$20
+                    (set_local $2
+                      (i32.lt_u
+                        (tee_local $0
+                          (i32.sub
+                            (i32.and
+                              (i32.load offset=4
+                                (get_local $3)
+                              )
+                              (i32.const -8)
+                            )
+                            (get_local $9)
+                          )
+                        )
+                        (get_local $4)
+                      )
+                    )
+                    (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)
+                        )
+                      )
+                      (block
+                        (set_local $3
+                          (get_local $0)
+                        )
+                        (br $while-in$20)
+                      )
+                    )
+                    (br_if $while-in$20
+                      (tee_local $3
+                        (i32.load offset=20
+                          (get_local $3)
+                        )
+                      )
+                    )
+                    (block
+                      (set_local $7
+                        (get_local $4)
+                      )
+                      (set_local $6
+                        (get_local $1)
+                      )
+                    )
                   )
+                )
+                (if
+                  (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)
-                                  )
-                                )
-                                (if
-                                  (i32.eq
-                                    (tee_local $2
-                                      (i32.load
-                                        (tee_local $7
-                                          (i32.add
-                                            (get_local $8)
-                                            (i32.const 16)
-                                          )
-                                        )
-                                      )
-                                    )
-                                    (i32.const 0)
-                                  )
-                                  (br $while-out$23)
-                                  (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
+                                (tee_local $3
+                                  (i32.load
+                                    (tee_local $2
+                                      (i32.add
+                                        (get_local $1)
+                                        (i32.const 16)
+                                      )
+                                    )
+                                  )
+                                )
+                                (block
+                                  (set_local $1
+                                    (get_local $3)
+                                  )
+                                  (set_local $0
+                                    (get_local $2)
+                                  )
+                                  (br $while-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
+                                                        (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 8)
+                                                                        )
+                                                                      )
+                                                                    )
+                                                                  )
+                                                                  (i32.const 520192)
+                                                                )
+                                                                (i32.const 16)
+                                                              )
+                                                              (i32.const 4)
+                                                            )
+                                                          )
+                                                          (get_local $2)
+                                                        )
                                                         (tee_local $1
                                                           (i32.and
                                                             (i32.shr_u
                                                               (i32.add
-                                                                (tee_local $2
+                                                                (tee_local $0
                                                                   (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 8)
-                                                                      )
-                                                                    )
+                                                                    (get_local $1)
                                                                   )
                                                                 )
-                                                                (i32.const 520192)
+                                                                (i32.const 245760)
                                                               )
                                                               (i32.const 16)
                                                             )
-                                                            (i32.const 4)
+                                                            (i32.const 2)
                                                           )
                                                         )
+                                                      )
+                                                    )
+                                                    (i32.shr_u
+                                                      (i32.shl
                                                         (get_local $0)
+                                                        (get_local $1)
                                                       )
-                                                      (tee_local $0
-                                                        (i32.and
-                                                          (i32.shr_u
-                                                            (i32.add
-                                                              (tee_local $1
-                                                                (i32.shl
-                                                                  (get_local $2)
-                                                                  (get_local $1)
-                                                                )
-                                                              )
-                                                              (i32.const 245760)
-                                                            )
-                                                            (i32.const 16)
-                                                          )
-                                                          (i32.const 2)
-                                                        )
-                                                      )
+                                                      (i32.const 15)
                                                     )
                                                   )
-                                                  (i32.shr_u
-                                                    (i32.shl
-                                                      (get_local $1)
-                                                      (get_local $0)
-                                                    )
-                                                    (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)
-                                      )
-                                      (i32.const -8)
-                                    )
-                                    (get_local $17)
-                                  )
-                                  (block
-                                    (set_local $22
-                                      (get_local $2)
-                                    )
-                                    (set_local $11
-                                      (i32.const 148)
-                                    )
-                                    (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
-                                            (i32.add
-                                              (get_local $2)
-                                              (i32.const 16)
-                                            )
-                                            (i32.shl
-                                              (i32.shr_u
-                                                (get_local $1)
-                                                (i32.const 31)
-                                              )
-                                              (i32.const 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 0)
-                                  )
-                                  (block
-                                    (set_local $25
-                                      (get_local $2)
-                                    )
-                                    (set_local $37
-                                      (get_local $1)
-                                    )
-                                    (set_local $11
-                                      (i32.const 145)
-                                    )
-                                    (br $while-out$31)
-                                  )
-                                  (block
                                     (set_local $1
-                                      (get_local $4)
+                                      (i32.shl
+                                        (get_local $2)
+                                        (i32.const 1)
+                                      )
                                     )
-                                    (set_local $2
-                                      (get_local $0)
-                                    )
-                                  )
-                                )
-                                (br $while-in$32)
-                              )
-                            )
-                            (if
-                              (i32.eq
-                                (get_local $11)
-                                (i32.const 145)
-                              )
-                              (if
-                                (i32.lt_u
-                                  (get_local $37)
-                                  (i32.load
-                                    (i32.const 192)
-                                  )
-                                )
-                                (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)
-                                  )
-                                  (i32.store offset=8
-                                    (get_local $3)
-                                    (get_local $3)
-                                  )
-                                )
-                              )
-                              (if
-                                (i32.eq
-                                  (get_local $11)
-                                  (i32.const 148)
-                                )
-                                (if
-                                  (i32.and
-                                    (i32.ge_u
-                                      (tee_local $0
+                                    (if
+                                      (tee_local $3
                                         (i32.load
                                           (tee_local $2
                                             (i32.add
-                                              (get_local $22)
-                                              (i32.const 8)
+                                              (i32.add
+                                                (get_local $0)
+                                                (i32.const 16)
+                                              )
+                                              (i32.shl
+                                                (i32.shr_u
+                                                  (get_local $2)
+                                                  (i32.const 31)
+                                                )
+                                                (i32.const 2)
+                                              )
                                             )
                                           )
                                         )
                                       )
-                                      (tee_local $1
-                                        (i32.load
-                                          (i32.const 192)
+                                      (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)
                                       )
                                     )
-                                    (i32.ge_u
-                                      (get_local $22)
-                                      (get_local $1)
-                                    )
                                   )
-                                  (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)
+                                )
+                                (if
+                                  (i32.lt_u
+                                    (get_local $0)
+                                    (i32.load
+                                      (i32.const 192)
                                     )
                                   )
                                   (call_import $_abort)
+                                  (block
+                                    (i32.store
+                                      (get_local $0)
+                                      (get_local $4)
+                                    )
+                                    (i32.store offset=24
+                                      (get_local $4)
+                                      (get_local $1)
+                                    )
+                                    (i32.store offset=12
+                                      (get_local $4)
+                                      (get_local $4)
+                                    )
+                                    (i32.store offset=8
+                                      (get_local $4)
+                                      (get_local $4)
+                                    )
+                                    (br $do-once$29)
+                                  )
                                 )
+                                (br $jumpthreading$outer$1)
+                              )
+                              (if
+                                (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)
+                                  )
+                                )
+                                (block
+                                  (i32.store offset=12
+                                    (get_local $3)
+                                    (get_local $4)
+                                  )
+                                  (i32.store
+                                    (get_local $1)
+                                    (get_local $4)
+                                  )
+                                  (i32.store offset=8
+                                    (get_local $4)
+                                    (get_local $3)
+                                  )
+                                  (i32.store offset=12
+                                    (get_local $4)
+                                    (get_local $0)
+                                  )
+                                  (i32.store offset=24
+                                    (get_local $4)
+                                    (i32.const 0)
+                                  )
+                                )
+                                (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
+                              (get_local $3)
+                              (i32.load
+                                (tee_local $3
+                                  (i32.add
+                                    (get_local $1)
+                                    (i32.const 4)
+                                  )
+                                )
+                              )
+                            )
+                            (get_local $4)
+                          )
+                          (block
+                            (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)
+                    )
+                  )
+                  (if
+                    (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.eq
+                        (tee_local $2
+                          (call_import $_sbrk
+                            (get_local $1)
+                          )
+                        )
+                        (i32.add
+                          (i32.load
+                            (get_local $4)
+                          )
+                          (i32.load
+                            (get_local $3)
+                          )
+                        )
+                      )
+                      (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)
+                          )
+                        )
+                        (tee_local $1
+                          (if
+                            (i32.and
+                              (tee_local $3
+                                (i32.add
+                                  (tee_local $4
+                                    (i32.load
+                                      (i32.const 652)
+                                    )
+                                  )
+                                  (i32.const -1)
+                                )
+                              )
+                              (tee_local $1
+                                (get_local $2)
                               )
                             )
                             (i32.add
-                              (i32.load
-                                (get_local $4)
+                              (i32.sub
+                                (get_local $9)
+                                (get_local $1)
                               )
-                              (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)
-                              )
-                            )
-                          )
-                          (block
-                            (set_local $30
-                              (get_local $3)
-                            )
-                            (set_local $21
-                              (get_local $0)
-                            )
-                            (set_local $11
-                              (i32.const 183)
-                            )
-                          )
-                        )
-                      )
-                    )
-                  )
-                )
-                (block $do-once$39
-                  (if
-                    (i32.eq
-                      (get_local $11)
-                      (i32.const 173)
-                    )
-                    (if
-                      (i32.ne
-                        (tee_local $7
-                          (call_import $_sbrk
-                            (i32.const 0)
-                          )
-                        )
-                        (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)
-                                    )
-                                  )
-                                )
-                              )
-                            )
-                          )
-                        )
-                        (if
-                          (i32.and
-                            (i32.gt_u
-                              (get_local $12)
-                              (get_local $6)
-                            )
-                            (i32.lt_u
-                              (get_local $12)
-                              (i32.const 2147483647)
-                            )
-                          )
-                          (block
-                            (if
-                              (i32.ne
-                                (tee_local $0
-                                  (i32.load
-                                    (i32.const 616)
-                                  )
-                                )
-                                (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)
-                                  )
-                                )
-                              )
-                            )
-                            (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)
-                                )
-                              )
-                              (block
-                                (set_local $21
-                                  (get_local $12)
-                                )
-                                (set_local $11
-                                  (i32.const 183)
-                                )
-                              )
-                            )
-                          )
-                        )
-                      )
-                    )
-                  )
-                )
-                (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 $5)
-                            (get_local $21)
-                          )
-                          (i32.and
-                            (i32.lt_u
-                              (get_local $21)
-                              (i32.const 2147483647)
-                            )
-                            (i32.ne
-                              (get_local $30)
-                              (i32.const -1)
-                            )
-                          )
-                        )
-                        (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)
-                                    )
-                                  )
+                                  (get_local $3)
+                                  (get_local $1)
                                 )
                                 (i32.sub
                                   (i32.const 0)
-                                  (get_local $0)
-                                )
-                              )
-                            )
-                            (i32.const 2147483647)
-                          )
-                          (if
-                            (i32.eq
-                              (call_import $_sbrk
-                                (get_local $0)
-                              )
-                              (i32.const -1)
-                            )
-                            (block
-                              (drop
-                                (call_import $_sbrk
                                   (get_local $4)
                                 )
                               )
-                              (br $label$break$L279)
                             )
-                            (set_local $21
-                              (i32.add
-                                (get_local $0)
-                                (get_local $21)
+                            (get_local $9)
+                          )
+                        )
+                      )
+                    )
+                    (if
+                      (i32.and
+                        (i32.gt_u
+                          (get_local $1)
+                          (get_local $0)
+                        )
+                        (i32.lt_u
+                          (get_local $1)
+                          (i32.const 2147483647)
+                        )
+                      )
+                      (block
+                        (if
+                          (tee_local $4
+                            (i32.load
+                              (i32.const 616)
+                            )
+                          )
+                          (br_if $label$break$L279
+                            (i32.or
+                              (i32.le_u
+                                (get_local $3)
+                                (get_local $6)
+                              )
+                              (i32.gt_u
+                                (get_local $3)
+                                (get_local $4)
                               )
                             )
                           )
                         )
-                      )
-                      (if
-                        (i32.ne
-                          (get_local $30)
-                          (i32.const -1)
+                        (br_if $jumpthreading$inner$12
+                          (i32.eq
+                            (tee_local $3
+                              (call_import $_sbrk
+                                (get_local $1)
+                              )
+                            )
+                            (get_local $2)
+                          )
                         )
                         (block
-                          (set_local $14
-                            (get_local $30)
+                          (set_local $2
+                            (get_local $3)
                           )
-                          (set_local $19
-                            (get_local $21)
-                          )
-                          (br $label$break$L257
-                            (i32.const 193)
-                          )
+                          (br $jumpthreading$inner$4)
                         )
                       )
                     )
                   )
                 )
-                (i32.store
-                  (i32.const 620)
-                  (i32.or
-                    (i32.load
-                      (i32.const 620)
-                    )
-                    (i32.const 4)
-                  )
-                )
-                (i32.const 190)
+                (br $label$break$L279)
               )
-              (i32.const 190)
-            )
-          )
-        )
-        (i32.const 190)
-      )
-      (if
-        (i32.lt_u
-          (get_local $10)
-          (i32.const 2147483647)
-        )
-        (block
-          (set_local $3
-            (i32.and
-              (i32.ne
-                (tee_local $0
-                  (call_import $_sbrk
-                    (get_local $10)
-                  )
-                )
-                (i32.const -1)
-              )
-              (i32.ne
-                (tee_local $4
-                  (call_import $_sbrk
-                    (i32.const 0)
-                  )
-                )
-                (i32.const -1)
-              )
-            )
-          )
-          (if
-            (i32.and
-              (i32.lt_u
-                (get_local $0)
-                (get_local $4)
-              )
-              (get_local $3)
-            )
-            (if
-              (i32.gt_u
-                (tee_local $4
-                  (i32.sub
-                    (get_local $4)
-                    (get_local $0)
-                  )
-                )
-                (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)
-                )
-              )
-            )
-          )
-        )
-      )
-    )
-    (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.load
-              (i32.const 612)
-            )
-          )
-          (i32.store
-            (i32.const 612)
-            (get_local $0)
-          )
-        )
-        (block $do-once$44
-          (if
-            (i32.eq
-              (tee_local $0
-                (i32.load
-                  (i32.const 200)
-                )
-              )
-              (i32.const 0)
-            )
-            (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)
-                  )
+              (set_local $3
+                (i32.sub
                   (i32.const 0)
+                  (get_local $1)
                 )
               )
-              (i32.store
-                (i32.const 200)
-                (tee_local $0
-                  (i32.add
-                    (get_local $14)
-                    (tee_local $1
-                      (select
-                        (i32.const 0)
-                        (i32.and
+              (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
-                            (i32.const 0)
-                            (get_local $0)
+                            (get_local $5)
+                            (get_local $1)
                           )
-                          (i32.const 7)
+                          (tee_local $4
+                            (i32.load
+                              (i32.const 656)
+                            )
+                          )
                         )
+                        (i32.sub
+                          (i32.const 0)
+                          (get_local $4)
+                        )
+                      )
+                    )
+                    (i32.const 2147483647)
+                  )
+                  (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.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)
+              (br_if $jumpthreading$inner$12
+                (i32.ne
+                  (get_local $2)
+                  (i32.const -1)
                 )
               )
             )
-            (block
-              (set_local $7
-                (i32.const 624)
+            (i32.store
+              (i32.const 620)
+              (i32.or
+                (i32.load
+                  (i32.const 620)
+                )
+                (i32.const 4)
               )
-              (loop $while-in$49
-                (block $while-out$48
-                  (if
+            )
+          )
+        )
+        (if
+          (i32.lt_u
+            (get_local $9)
+            (i32.const 2147483647)
+          )
+          (if
+            (i32.and
+              (i32.lt_u
+                (tee_local $2
+                  (call_import $_sbrk
+                    (get_local $9)
+                  )
+                )
+                (tee_local $1
+                  (call_import $_sbrk
+                    (i32.const 0)
+                  )
+                )
+              )
+              (i32.and
+                (i32.ne
+                  (get_local $2)
+                  (i32.const -1)
+                )
+                (i32.ne
+                  (get_local $1)
+                  (i32.const -1)
+                )
+              )
+            )
+            (br_if $jumpthreading$inner$12
+              (i32.gt_u
+                (tee_local $1
+                  (i32.sub
+                    (get_local $1)
+                    (get_local $2)
+                  )
+                )
+                (i32.add
+                  (get_local $0)
+                  (i32.const 40)
+                )
+              )
+            )
+          )
+        )
+        (br $jumpthreading$outer$12)
+      )
+      (i32.store
+        (i32.const 608)
+        (tee_local $3
+          (i32.add
+            (i32.load
+              (i32.const 608)
+            )
+            (get_local $1)
+          )
+        )
+      )
+      (if
+        (i32.gt_u
+          (get_local $3)
+          (i32.load
+            (i32.const 612)
+          )
+        )
+        (i32.store
+          (i32.const 612)
+          (get_local $3)
+        )
+      )
+      (block $do-once$44
+        (if
+          (tee_local $7
+            (i32.load
+              (i32.const 200)
+            )
+          )
+          (block
+            (set_local $3
+              (i32.const 624)
+            )
+            (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
+                  )
+                  (br_if $while-in$49
+                    (tee_local $3
+                      (i32.load offset=8
                         (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)
-                        )
-                      )
-                      (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.const 0)
+                    (i32.ge_u
+                      (get_local $7)
+                      (get_local $9)
+                    )
                   )
-                  (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)
                       )
                     )
+                    (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 0)
+                            (i32.and
+                              (get_local $2)
+                              (i32.const 7)
+                            )
+                          )
+                        )
+                      )
+                    )
+                    (set_local $1
+                      (i32.add
+                        (i32.sub
+                          (get_local $1)
+                          (get_local $2)
+                        )
+                        (i32.load
+                          (i32.const 188)
+                        )
+                      )
+                    )
+                    (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 664)
+                      )
+                    )
+                    (br $do-once$44)
+                  )
+                )
+              )
+            )
+            (set_local $10
+              (if
+                (i32.lt_u
+                  (get_local $2)
+                  (tee_local $3
+                    (i32.load
+                      (i32.const 192)
+                    )
+                  )
+                )
+                (block
+                  (i32.store
+                    (i32.const 192)
+                    (get_local $2)
+                  )
+                  (get_local $2)
+                )
+                (get_local $3)
+              )
+            )
+            (set_local $5
+              (i32.add
+                (get_local $2)
+                (get_local $1)
+              )
+            )
+            (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 $3)
+                      )
+                      (get_local $5)
+                    )
                     (block
-                      (i32.store
-                        (get_local $42)
+                      (set_local $4
+                        (get_local $3)
+                      )
+                      (br $jumpthreading$inner$10)
+                    )
+                  )
+                  (br_if $while-in$51
+                    (tee_local $3
+                      (i32.load offset=8
+                        (get_local $3)
+                      )
+                    )
+                  )
+                  (set_local $4
+                    (i32.const 624)
+                  )
+                )
+                (br $jumpthreading$outer$10)
+              )
+              (if
+                (i32.and
+                  (i32.load offset=12
+                    (get_local $3)
+                  )
+                  (i32.const 8)
+                )
+                (set_local $4
+                  (i32.const 624)
+                )
+                (block
+                  (i32.store
+                    (get_local $4)
+                    (get_local $2)
+                  )
+                  (i32.store
+                    (tee_local $3
+                      (i32.add
+                        (get_local $3)
+                        (i32.const 4)
+                      )
+                    )
+                    (i32.add
+                      (i32.load
+                        (get_local $3)
+                      )
+                      (get_local $1)
+                    )
+                  )
+                  (set_local $6
+                    (i32.add
+                      (tee_local $9
                         (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)
+                          (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)
+                            (i32.and
+                              (get_local $1)
+                              (i32.const 7)
+                            )
                           )
-                          (i32.const 0)
                         )
                       )
-                      (set_local $0
-                        (i32.add
-                          (get_local $0)
-                          (tee_local $1
+                      (get_local $0)
+                    )
+                  )
+                  (set_local $2
+                    (i32.sub
+                      (i32.sub
+                        (tee_local $8
+                          (i32.add
+                            (get_local $5)
                             (select
-                              (i32.const 0)
                               (i32.and
                                 (i32.sub
                                   (i32.const 0)
-                                  (get_local $1)
+                                  (tee_local $1
+                                    (i32.add
+                                      (get_local $5)
+                                      (i32.const 8)
+                                    )
+                                  )
                                 )
                                 (i32.const 7)
                               )
+                              (i32.const 0)
+                              (i32.and
+                                (get_local $1)
+                                (i32.const 7)
+                              )
+                            )
+                          )
+                        )
+                        (get_local $9)
+                      )
+                      (get_local $0)
+                    )
+                  )
+                  (i32.store offset=4
+                    (get_local $9)
+                    (i32.or
+                      (get_local $0)
+                      (i32.const 3)
+                    )
+                  )
+                  (block $do-once$52
+                    (if
+                      (i32.eq
+                        (get_local $8)
+                        (get_local $7)
+                      )
+                      (block
+                        (i32.store
+                          (i32.const 188)
+                          (tee_local $0
+                            (i32.add
+                              (i32.load
+                                (i32.const 188)
+                              )
                               (get_local $2)
                             )
                           )
                         )
-                      )
-                      (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 $6)
+                        )
+                        (i32.store offset=4
+                          (get_local $6)
+                          (i32.or
+                            (get_local $0)
+                            (i32.const 1)
                           )
                         )
                       )
-                      (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)
+                      (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 $2)
+                                )
+                              )
+                            )
+                            (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 $6)
+                                (get_local $0)
+                              )
+                              (get_local $0)
+                            )
+                            (br $do-once$52)
+                          )
                         )
-                      )
-                      (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)
-                        )
-                      )
-                      (br $do-once$44)
-                    )
-                  )
-                )
-              )
-              (set_local $4
-                (if
-                  (i32.lt_u
-                    (get_local $14)
-                    (tee_local $1
-                      (i32.load
-                        (i32.const 192)
-                      )
-                    )
-                  )
-                  (block
-                    (i32.store
-                      (i32.const 192)
-                      (get_local $14)
-                    )
-                    (get_local $14)
-                  )
-                  (get_local $1)
-                )
-              )
-              (set_local $3
-                (i32.add
-                  (get_local $14)
-                  (get_local $19)
-                )
-              )
-              (set_local $1
-                (i32.const 624)
-              )
-              (loop $while-in$51
-                (block $while-out$50
-                  (if
-                    (i32.eq
-                      (i32.load
-                        (get_local $1)
-                      )
-                      (get_local $3)
-                    )
-                    (block
-                      (set_local $44
-                        (get_local $1)
-                      )
-                      (set_local $38
-                        (get_local $1)
-                      )
-                      (set_local $11
-                        (i32.const 211)
-                      )
-                      (br $while-out$50)
-                    )
-                  )
-                  (if
-                    (i32.eq
-                      (tee_local $1
-                        (i32.load offset=8
-                          (get_local $1)
-                        )
-                      )
-                      (i32.const 0)
-                    )
-                    (block
-                      (set_local $27
-                        (i32.const 624)
-                      )
-                      (br $while-out$50)
-                    )
-                  )
-                  (br $while-in$51)
-                )
-              )
-              (if
-                (i32.eq
-                  (get_local $11)
-                  (i32.const 211)
-                )
-                (if
-                  (i32.eq
-                    (i32.and
-                      (i32.load offset=12
-                        (get_local $38)
-                      )
-                      (i32.const 8)
-                    )
-                    (i32.const 0)
-                  )
-                  (block
-                    (i32.store
-                      (get_local $44)
-                      (get_local $14)
-                    )
-                    (set_local $1
-                      (i32.add
-                        (i32.load
-                          (tee_local $2
+                        (i32.store
+                          (tee_local $0
                             (i32.add
-                              (get_local $38)
+                              (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.lt_u
+                                        (get_local $1)
+                                        (i32.const 256)
+                                      )
+                                      (block
+                                        (set_local $3
+                                          (i32.load offset=12
+                                            (get_local $8)
+                                          )
+                                        )
+                                        (block $do-once$55
+                                          (if
+                                            (i32.ne
+                                              (tee_local $4
+                                                (i32.load offset=8
+                                                  (get_local $8)
+                                                )
+                                              )
+                                              (tee_local $1
+                                                (i32.add
+                                                  (i32.const 216)
+                                                  (i32.shl
+                                                    (i32.shl
+                                                      (get_local $0)
+                                                      (i32.const 1)
+                                                    )
+                                                    (i32.const 2)
+                                                  )
+                                                )
+                                              )
+                                            )
+                                            (block
+                                              (if
+                                                (i32.lt_u
+                                                  (get_local $4)
+                                                  (get_local $10)
+                                                )
+                                                (call_import $_abort)
+                                              )
+                                              (br_if $do-once$55
+                                                (i32.eq
+                                                  (i32.load offset=12
+                                                    (get_local $4)
+                                                  )
+                                                  (get_local $8)
+                                                )
+                                              )
+                                              (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)
+                                                )
+                                              )
+                                            )
+                                            (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
+                                              (if
+                                                (i32.lt_u
+                                                  (get_local $3)
+                                                  (get_local $10)
+                                                )
+                                                (call_import $_abort)
+                                              )
+                                              (if
+                                                (i32.eq
+                                                  (i32.load
+                                                    (tee_local $0
+                                                      (i32.add
+                                                        (get_local $3)
+                                                        (i32.const 8)
+                                                      )
+                                                    )
+                                                  )
+                                                  (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)
+                                                          )
+                                                        )
+                                                        (i32.const 4)
+                                                      )
+                                                    )
+                                                  )
+                                                )
+                                                (set_local $0
+                                                  (get_local $3)
+                                                )
+                                                (if
+                                                  (i32.eqz
+                                                    (tee_local $1
+                                                      (i32.load
+                                                        (get_local $0)
+                                                      )
+                                                    )
+                                                  )
+                                                  (block
+                                                    (set_local $11
+                                                      (i32.const 0)
+                                                    )
+                                                    (br $do-once$59)
+                                                  )
+                                                )
+                                              )
+                                              (loop $while-in$62
+                                                (if
+                                                  (tee_local $4
+                                                    (i32.load
+                                                      (tee_local $3
+                                                        (i32.add
+                                                          (get_local $1)
+                                                          (i32.const 20)
+                                                        )
+                                                      )
+                                                    )
+                                                  )
+                                                  (block
+                                                    (set_local $1
+                                                      (get_local $4)
+                                                    )
+                                                    (set_local $0
+                                                      (get_local $3)
+                                                    )
+                                                    (br $while-in$62)
+                                                  )
+                                                )
+                                                (if
+                                                  (tee_local $4
+                                                    (i32.load
+                                                      (tee_local $3
+                                                        (i32.add
+                                                          (get_local $1)
+                                                          (i32.const 16)
+                                                        )
+                                                      )
+                                                    )
+                                                  )
+                                                  (block
+                                                    (set_local $1
+                                                      (get_local $4)
+                                                    )
+                                                    (set_local $0
+                                                      (get_local $3)
+                                                    )
+                                                    (br $while-in$62)
+                                                  )
+                                                )
+                                              )
+                                              (if
+                                                (i32.lt_u
+                                                  (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)
+                                              )
+                                              (if
+                                                (i32.ne
+                                                  (i32.load
+                                                    (tee_local $3
+                                                      (i32.add
+                                                        (get_local $4)
+                                                        (i32.const 12)
+                                                      )
+                                                    )
+                                                  )
+                                                  (get_local $8)
+                                                )
+                                                (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)
+                                                  )
+                                                  (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)
+                                                    )
+                                                  )
+                                                )
+                                              )
+                                            )
+                                            (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)
+                                                  )
+                                                )
+                                              )
+                                              (br $label$break$L331)
+                                            )
+                                            (block
+                                              (if
+                                                (i32.lt_u
+                                                  (get_local $7)
+                                                  (i32.load
+                                                    (i32.const 192)
+                                                  )
+                                                )
+                                                (call_import $_abort)
+                                              )
+                                              (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)
+                                                )
+                                              )
+                                            )
+                                          )
+                                        )
+                                        (if
+                                          (i32.lt_u
+                                            (get_local $11)
+                                            (tee_local $3
+                                              (i32.load
+                                                (i32.const 192)
+                                              )
+                                            )
+                                          )
+                                          (call_import $_abort)
+                                        )
+                                        (i32.store offset=24
+                                          (get_local $11)
+                                          (get_local $7)
+                                        )
+                                        (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)
+                                            )
+                                          )
+                                        )
+                                      )
+                                    )
+                                  )
+                                  (set_local $2
+                                    (i32.add
+                                      (get_local $5)
+                                      (get_local $2)
+                                    )
+                                  )
+                                  (i32.add
+                                    (get_local $8)
+                                    (get_local $5)
+                                  )
+                                )
+                                (get_local $8)
+                              )
                               (i32.const 4)
                             )
                           )
-                        )
-                        (get_local $19)
-                      )
-                    )
-                    (i32.store
-                      (get_local $2)
-                      (get_local $1)
-                    )
-                    (set_local $9
-                      (i32.eq
-                        (i32.and
-                          (tee_local $1
-                            (i32.add
-                              (get_local $14)
-                              (i32.const 8)
-                            )
-                          )
-                          (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 7)
-                        )
-                        (i32.const 0)
-                      )
-                    )
-                    (set_local $1
-                      (i32.sub
-                        (tee_local $3
-                          (i32.add
-                            (get_local $3)
-                            (select
-                              (i32.const 0)
-                              (i32.and
-                                (i32.sub
-                                  (i32.const 0)
-                                  (get_local $2)
-                                )
-                                (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)
-                                )
-                                (i32.const 7)
-                              )
-                              (get_local $9)
-                            )
-                          )
-                        )
-                      )
-                    )
-                    (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 $7)
-                      (i32.or
-                        (get_local $6)
-                        (i32.const 3)
-                      )
-                    )
-                    (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)
-                              )
-                            )
-                          )
-                          (i32.store
-                            (i32.const 200)
-                            (get_local $5)
-                          )
-                          (i32.store offset=4
-                            (get_local $5)
-                            (i32.or
+                          (i32.and
+                            (i32.load
                               (get_local $0)
-                              (i32.const 1)
                             )
+                            (i32.const -2)
                           )
                         )
-                        (block
-                          (if
-                            (i32.eq
-                              (get_local $3)
-                              (i32.load
-                                (i32.const 196)
+                        (i32.store offset=4
+                          (get_local $6)
+                          (i32.or
+                            (get_local $2)
+                            (i32.const 1)
+                          )
+                        )
+                        (i32.store
+                          (i32.add
+                            (get_local $6)
+                            (get_local $2)
+                          )
+                          (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
-                              (i32.store
-                                (i32.const 184)
-                                (tee_local $0
-                                  (i32.add
+                            (block $do-once$67
+                              (if
+                                (i32.and
+                                  (tee_local $2
                                     (i32.load
-                                      (i32.const 184)
+                                      (i32.const 176)
                                     )
-                                    (get_local $12)
+                                  )
+                                  (tee_local $1
+                                    (i32.shl
+                                      (i32.const 1)
+                                      (get_local $1)
+                                    )
+                                  )
+                                )
+                                (block
+                                  (if
+                                    (i32.ge_u
+                                      (tee_local $1
+                                        (i32.load
+                                          (tee_local $2
+                                            (i32.add
+                                              (get_local $0)
+                                              (i32.const 8)
+                                            )
+                                          )
+                                        )
+                                      )
+                                      (i32.load
+                                        (i32.const 192)
+                                      )
+                                    )
+                                    (block
+                                      (set_local $22
+                                        (get_local $2)
+                                      )
+                                      (set_local $17
+                                        (get_local $1)
+                                      )
+                                      (br $do-once$67)
+                                    )
+                                  )
+                                  (call_import $_abort)
+                                )
+                                (block
+                                  (i32.store
+                                    (i32.const 176)
+                                    (i32.or
+                                      (get_local $2)
+                                      (get_local $1)
+                                    )
+                                  )
+                                  (set_local $22
+                                    (i32.add
+                                      (get_local $0)
+                                      (i32.const 8)
+                                    )
+                                  )
+                                  (set_local $17
+                                    (get_local $0)
                                   )
                                 )
                               )
-                              (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.add
-                                  (get_local $5)
-                                  (get_local $0)
-                                )
-                                (get_local $0)
-                              )
-                              (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 $0
-                            (i32.and
-                              (i32.load
-                                (tee_local $1
-                                  (i32.add
-                                    (if
-                                      (i32.eq
-                                        (i32.and
-                                          (tee_local $0
-                                            (i32.load offset=4
-                                              (get_local $3)
-                                            )
-                                          )
-                                          (i32.const 3)
-                                        )
-                                        (i32.const 1)
+                        )
+                        (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)
                                       )
-                                      (block
-                                        (set_local $10
-                                          (i32.and
-                                            (get_local $0)
-                                            (i32.const -8)
-                                          )
+                                    )
+                                    (block
+                                      (br_if $do-once$69
+                                        (i32.const 31)
+                                        (i32.gt_u
+                                          (get_local $2)
+                                          (i32.const 16777215)
                                         )
-                                        (set_local $9
+                                      )
+                                      (i32.or
+                                        (i32.and
                                           (i32.shr_u
-                                            (get_local $0)
-                                            (i32.const 3)
-                                          )
-                                        )
-                                        (block $label$break$L331
-                                          (if
-                                            (i32.lt_u
-                                              (get_local $0)
-                                              (i32.const 256)
-                                            )
-                                            (block
-                                              (set_local $1
-                                                (i32.load offset=12
-                                                  (get_local $3)
-                                                )
-                                              )
-                                              (block $do-once$55
-                                                (if
-                                                  (i32.ne
-                                                    (tee_local $0
-                                                      (i32.load offset=8
+                                            (get_local $2)
+                                            (i32.add
+                                              (tee_local $0
+                                                (i32.add
+                                                  (i32.sub
+                                                    (i32.const 14)
+                                                    (i32.or
+                                                      (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 8)
+                                                                      )
+                                                                    )
+                                                                  )
+                                                                )
+                                                                (i32.const 520192)
+                                                              )
+                                                              (i32.const 16)
+                                                            )
+                                                            (i32.const 4)
+                                                          )
+                                                        )
                                                         (get_local $3)
                                                       )
-                                                    )
-                                                    (tee_local $2
-                                                      (i32.add
-                                                        (i32.const 216)
-                                                        (i32.shl
-                                                          (i32.shl
-                                                            (get_local $9)
-                                                            (i32.const 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 16)
                                                           )
                                                           (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)
-                                                      )
-                                                    )
-                                                    (call_import $_abort)
-                                                  )
-                                                )
-                                              )
-                                              (if
-                                                (i32.eq
-                                                  (get_local $1)
-                                                  (get_local $0)
-                                                )
-                                                (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)
-                                                      )
-                                                    )
-                                                  )
-                                                  (br $label$break$L331)
-                                                )
-                                              )
-                                              (block $do-once$57
-                                                (if
-                                                  (i32.eq
-                                                    (get_local $1)
-                                                    (get_local $2)
-                                                  )
-                                                  (set_local $39
-                                                    (i32.add
+                                                  (i32.shr_u
+                                                    (i32.shl
+                                                      (get_local $0)
                                                       (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)
+                                                    (i32.const 15)
                                                   )
                                                 )
                                               )
-                                              (i32.store offset=12
-                                                (get_local $0)
-                                                (get_local $1)
-                                              )
-                                              (i32.store
-                                                (get_local $39)
-                                                (get_local $0)
-                                              )
-                                            )
-                                            (block
-                                              (set_local $0
-                                                (i32.load offset=24
-                                                  (get_local $3)
-                                                )
-                                              )
-                                              (block $do-once$59
-                                                (if
-                                                  (i32.eq
-                                                    (tee_local $1
-                                                      (i32.load offset=12
-                                                        (get_local $3)
-                                                      )
-                                                    )
-                                                    (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)
-                                                            )
-                                                          )
-                                                        )
-                                                        (br $while-in$62)
-                                                      )
-                                                    )
-                                                    (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)
-                                                        )
-                                                      )
-                                                    )
-                                                  )
-                                                  (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)
-                                                    )
-                                                  )
-                                                )
-                                              )
-                                              (br_if $label$break$L331
-                                                (i32.eq
-                                                  (get_local $0)
-                                                  (i32.const 0)
-                                                )
-                                              )
-                                              (block $do-once$63
-                                                (if
-                                                  (i32.eq
-                                                    (get_local $3)
-                                                    (i32.load
-                                                      (tee_local $2
-                                                        (i32.add
-                                                          (i32.const 480)
-                                                          (i32.shl
-                                                            (tee_local $1
-                                                              (i32.load offset=28
-                                                                (get_local $3)
-                                                              )
-                                                            )
-                                                            (i32.const 2)
-                                                          )
-                                                        )
-                                                      )
-                                                    )
-                                                  )
-                                                  (block
-                                                    (i32.store
-                                                      (get_local $2)
-                                                      (get_local $18)
-                                                    )
-                                                    (br_if $do-once$63
-                                                      (i32.ne
-                                                        (get_local $18)
-                                                        (i32.const 0)
-                                                      )
-                                                    )
-                                                    (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 $label$break$L331)
-                                                  )
-                                                  (block
-                                                    (if
-                                                      (i32.lt_u
-                                                        (get_local $0)
-                                                        (i32.load
-                                                          (i32.const 192)
-                                                        )
-                                                      )
-                                                      (call_import $_abort)
-                                                    )
-                                                    (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)
-                                                      )
-                                                    )
-                                                  )
-                                                )
-                                              )
-                                              (if
-                                                (i32.lt_u
-                                                  (get_local $18)
-                                                  (tee_local $1
-                                                    (i32.load
-                                                      (i32.const 192)
-                                                    )
-                                                  )
-                                                )
-                                                (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.const 0)
-                                                )
-                                                (if
-                                                  (i32.lt_u
-                                                    (get_local $0)
-                                                    (get_local $1)
-                                                  )
-                                                  (call_import $_abort)
-                                                  (block
-                                                    (i32.store offset=16
-                                                      (get_local $18)
-                                                      (get_local $0)
-                                                    )
-                                                    (i32.store offset=24
-                                                      (get_local $0)
-                                                      (get_local $18)
-                                                    )
-                                                  )
-                                                )
-                                              )
-                                              (br_if $label$break$L331
-                                                (i32.eq
-                                                  (tee_local $0
-                                                    (i32.load offset=4
-                                                      (get_local $2)
-                                                    )
-                                                  )
-                                                  (i32.const 0)
-                                                )
-                                              )
-                                              (if
-                                                (i32.lt_u
-                                                  (get_local $0)
-                                                  (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)
-                                                  )
-                                                )
-                                              )
+                                              (i32.const 7)
                                             )
                                           )
-                                        )
-                                        (set_local $4
-                                          (i32.add
-                                            (get_local $10)
-                                            (get_local $12)
-                                          )
-                                        )
-                                        (i32.add
-                                          (get_local $3)
-                                          (get_local $10)
-                                        )
-                                      )
-                                      (block
-                                        (set_local $4
-                                          (get_local $12)
-                                        )
-                                        (get_local $3)
-                                      )
-                                    )
-                                    (i32.const 4)
-                                  )
-                                )
-                              )
-                              (i32.const -2)
-                            )
-                          )
-                          (i32.store
-                            (get_local $1)
-                            (get_local $0)
-                          )
-                          (i32.store offset=4
-                            (get_local $5)
-                            (i32.or
-                              (get_local $4)
-                              (i32.const 1)
-                            )
-                          )
-                          (i32.store
-                            (i32.add
-                              (get_local $5)
-                              (get_local $4)
-                            )
-                            (get_local $4)
-                          )
-                          (set_local $1
-                            (i32.shr_u
-                              (get_local $4)
-                              (i32.const 3)
-                            )
-                          )
-                          (if
-                            (i32.lt_u
-                              (get_local $4)
-                              (i32.const 256)
-                            )
-                            (block
-                              (set_local $2
-                                (i32.add
-                                  (i32.const 216)
-                                  (i32.shl
-                                    (i32.shl
-                                      (get_local $1)
-                                      (i32.const 1)
-                                    )
-                                    (i32.const 2)
-                                  )
-                                )
-                              )
-                              (block $do-once$67
-                                (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.shl
+                                          (get_local $0)
+                                          (i32.const 1)
                                         )
                                       )
                                     )
                                     (i32.const 0)
                                   )
-                                  (block
-                                    (i32.store
-                                      (i32.const 176)
-                                      (i32.or
-                                        (get_local $0)
-                                        (get_local $1)
-                                      )
-                                    )
-                                    (set_local $8
-                                      (i32.add
-                                        (get_local $2)
-                                        (i32.const 8)
-                                      )
-                                    )
-                                    (set_local $33
-                                      (get_local $2)
-                                    )
-                                  )
-                                  (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)
-                                      )
-                                    )
-                                    (call_import $_abort)
-                                  )
                                 )
                               )
-                              (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.const 2)
                             )
                           )
-                          (set_local $2
+                        )
+                        (i32.store offset=28
+                          (get_local $6)
+                          (get_local $3)
+                        )
+                        (i32.store offset=4
+                          (tee_local $0
                             (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)
-                                      )
-                                      (i32.const 0)
-                                      (block
-                                        (br_if $do-once$69
-                                          (i32.const 31)
-                                          (i32.gt_u
-                                            (get_local $4)
-                                            (i32.const 16777215)
-                                          )
-                                        )
-                                        (set_local $1
-                                          (i32.shl
-                                            (tee_local $0
-                                              (i32.add
-                                                (i32.sub
-                                                  (i32.const 14)
-                                                  (i32.or
-                                                    (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.const 16)
-                                                                      )
-                                                                      (i32.const 8)
-                                                                    )
-                                                                  )
-                                                                )
-                                                              )
-                                                              (i32.const 520192)
-                                                            )
-                                                            (i32.const 16)
-                                                          )
-                                                          (i32.const 4)
-                                                        )
-                                                      )
-                                                      (get_local $0)
-                                                    )
-                                                    (tee_local $0
-                                                      (i32.and
-                                                        (i32.shr_u
-                                                          (i32.add
-                                                            (tee_local $1
-                                                              (i32.shl
-                                                                (get_local $2)
-                                                                (get_local $1)
-                                                              )
-                                                            )
-                                                            (i32.const 245760)
-                                                          )
-                                                          (i32.const 16)
-                                                        )
-                                                        (i32.const 2)
-                                                      )
-                                                    )
-                                                  )
-                                                )
-                                                (i32.shr_u
-                                                  (i32.shl
-                                                    (get_local $1)
-                                                    (get_local $0)
-                                                  )
-                                                  (i32.const 15)
-                                                )
-                                              )
-                                            )
-                                            (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.const 2)
-                              )
+                              (get_local $6)
+                              (i32.const 16)
                             )
                           )
-                          (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.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)
-                                )
-                              )
-                              (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)
-                              )
-                              (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 $2
-                            (i32.load
-                              (get_local $2)
-                            )
-                          )
-                          (loop $while-in$72
-                            (block $while-out$71
-                              (if
-                                (i32.eq
-                                  (i32.and
-                                    (i32.load offset=4
-                                      (get_local $2)
-                                    )
-                                    (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
+                              (tee_local $0
                                 (i32.shl
-                                  (get_local $1)
+                                  (i32.const 1)
+                                  (get_local $3)
+                                )
+                              )
+                            )
+                          )
+                          (block
+                            (i32.store
+                              (i32.const 180)
+                              (i32.or
+                                (get_local $4)
+                                (get_local $0)
+                              )
+                            )
+                            (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 $3
+                          (i32.shl
+                            (get_local $2)
+                            (select
+                              (i32.const 0)
+                              (i32.sub
+                                (i32.const 25)
+                                (i32.shr_u
+                                  (get_local $3)
                                   (i32.const 1)
                                 )
                               )
-                              (if
-                                (i32.eq
-                                  (tee_local $0
+                              (i32.eq
+                                (get_local $3)
+                                (i32.const 31)
+                              )
+                            )
+                          )
+                        )
+                        (set_local $0
+                          (i32.load
+                            (get_local $1)
+                          )
+                        )
+                        (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)
+                                    )
+                                    (get_local $2)
+                                  )
+                                )
+                                (set_local $1
+                                  (i32.shl
+                                    (get_local $3)
+                                    (i32.const 1)
+                                  )
+                                )
+                                (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)
+                                  (block
+                                    (set_local $3
+                                      (get_local $1)
+                                    )
+                                    (set_local $0
+                                      (get_local $4)
+                                    )
+                                    (br $while-in$72)
                                   )
-                                  (set_local $40
-                                    (get_local $1)
-                                  )
-                                  (set_local $11
-                                    (i32.const 278)
-                                  )
-                                  (br $while-out$71)
-                                )
-                                (block
-                                  (set_local $1
-                                    (get_local $8)
-                                  )
-                                  (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)
+                                )
+                                (tee_local $2
+                                  (i32.load
+                                    (i32.const 192)
                                   )
                                 )
-                                (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)
-                                  )
-                                )
-                                (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 $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)
+                      (get_local $7)
                     )
-                    (if
-                      (i32.gt_u
-                        (tee_local $1
-                          (i32.add
-                            (get_local $1)
-                            (i32.load offset=4
-                              (get_local $27)
+                  )
+                )
+                (set_local $4
+                  (i32.load offset=8
+                    (get_local $4)
+                  )
+                )
+                (br $while-in$74)
+              )
+            )
+            (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
+                        (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.lt_u
+                      (get_local $4)
+                      (tee_local $6
+                        (i32.add
+                          (get_local $7)
+                          (i32.const 16)
+                        )
+                      )
+                    )
+                  )
+                )
+                (i32.const 8)
+              )
+            )
+            (i32.store
+              (i32.const 200)
+              (tee_local $5
+                (i32.add
+                  (get_local $2)
+                  (tee_local $4
+                    (select
+                      (i32.and
+                        (i32.sub
+                          (i32.const 0)
+                          (tee_local $4
+                            (i32.add
+                              (get_local $2)
+                              (i32.const 8)
                             )
                           )
                         )
-                        (get_local $0)
+                        (i32.const 7)
                       )
-                      (block
-                        (set_local $2
-                          (get_local $1)
-                        )
-                        (br $while-out$73)
+                      (i32.const 0)
+                      (i32.and
+                        (get_local $4)
+                        (i32.const 7)
                       )
                     )
                   )
-                  (set_local $27
-                    (i32.load offset=8
-                      (get_local $27)
-                    )
-                  )
-                  (br $while-in$74)
-                )
-              )
-              (set_local $8
-                (i32.eq
-                  (i32.and
-                    (tee_local $1
-                      (i32.add
-                        (tee_local $4
-                          (i32.add
-                            (get_local $2)
-                            (i32.const -47)
-                          )
-                        )
-                        (i32.const 8)
-                      )
-                    )
-                    (i32.const 7)
-                  )
-                  (i32.const 0)
-                )
-              )
-              (set_local $4
-                (i32.lt_u
-                  (tee_local $1
-                    (i32.add
-                      (get_local $4)
-                      (select
-                        (i32.const 0)
-                        (i32.and
-                          (i32.sub
-                            (i32.const 0)
-                            (get_local $1)
-                          )
-                          (i32.const 7)
-                        )
-                        (get_local $8)
-                      )
-                    )
-                  )
-                  (tee_local $8
-                    (i32.add
-                      (get_local $0)
-                      (i32.const 16)
-                    )
-                  )
                 )
               )
-              (set_local $4
+            )
+            (i32.store
+              (i32.const 188)
+              (tee_local $4
+                (i32.sub
+                  (i32.add
+                    (get_local $1)
+                    (i32.const -40)
+                  )
+                  (get_local $4)
+                )
+              )
+            )
+            (i32.store offset=4
+              (get_local $5)
+              (i32.or
+                (get_local $4)
+                (i32.const 1)
+              )
+            )
+            (i32.store offset=4
+              (i32.add
+                (get_local $5)
+                (get_local $4)
+              )
+              (i32.const 40)
+            )
+            (i32.store
+              (i32.const 204)
+              (i32.load
+                (i32.const 664)
+              )
+            )
+            (i32.store
+              (tee_local $4
                 (i32.add
-                  (tee_local $5
-                    (select
-                      (get_local $0)
-                      (get_local $1)
-                      (get_local $4)
-                    )
-                  )
-                  (i32.const 8)
+                  (get_local $9)
+                  (i32.const 4)
                 )
               )
-              (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.const 27)
+            )
+            (i32.store
+              (get_local $8)
+              (i32.load
+                (i32.const 624)
               )
+            )
+            (i32.store offset=4
+              (get_local $8)
+              (i32.load
+                (i32.const 628)
+              )
+            )
+            (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.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 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.const 7)
-                        )
-                        (get_local $3)
-                      )
-                    )
-                  )
-                )
-              )
-              (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.add
-                    (get_local $5)
+                    (get_local $1)
                     (i32.const 4)
                   )
                 )
-                (i32.const 27)
+                (i32.const 7)
               )
-              (i32.store
-                (get_local $4)
-                (i32.load
-                  (i32.const 624)
+              (br_if $while-in$76
+                (i32.lt_u
+                  (i32.add
+                    (get_local $1)
+                    (i32.const 4)
+                  )
+                  (get_local $3)
                 )
               )
-              (i32.store offset=4
-                (get_local $4)
-                (i32.load
-                  (i32.const 628)
+            )
+            (if
+              (i32.ne
+                (get_local $9)
+                (get_local $7)
+              )
+              (block
+                (i32.store
+                  (get_local $4)
+                  (i32.and
+                    (i32.load
+                      (get_local $4)
+                    )
+                    (i32.const -2)
+                  )
                 )
-              )
-              (i32.store offset=8
-                (get_local $4)
-                (i32.load
-                  (i32.const 632)
+                (i32.store offset=4
+                  (get_local $7)
+                  (i32.or
+                    (tee_local $5
+                      (i32.sub
+                        (get_local $9)
+                        (get_local $7)
+                      )
+                    )
+                    (i32.const 1)
+                  )
                 )
-              )
-              (i32.store offset=12
-                (get_local $4)
-                (i32.load
-                  (i32.const 636)
-                )
-              )
-              (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 632)
-                (get_local $4)
-              )
-              (set_local $1
-                (i32.add
+                (i32.store
+                  (get_local $9)
                   (get_local $5)
-                  (i32.const 24)
                 )
-              )
-              (loop $while-in$76
-                (block $while-out$75
-                  (i32.store
-                    (tee_local $1
+                (set_local $2
+                  (i32.shr_u
+                    (get_local $5)
+                    (i32.const 3)
+                  )
+                )
+                (if
+                  (i32.lt_u
+                    (get_local $5)
+                    (i32.const 256)
+                  )
+                  (block
+                    (set_local $1
                       (i32.add
-                        (get_local $1)
-                        (i32.const 4)
-                      )
-                    )
-                    (i32.const 7)
-                  )
-                  (br_if $while-out$75
-                    (i32.ge_u
-                      (i32.add
-                        (get_local $1)
-                        (i32.const 4)
-                      )
-                      (get_local $2)
-                    )
-                  )
-                  (br $while-in$76)
-                )
-              )
-              (if
-                (i32.ne
-                  (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 216)
+                        (i32.shl
+                          (i32.shl
+                            (get_local $2)
+                            (i32.const 1)
+                          )
+                          (i32.const 2)
                         )
                       )
-                      (i32.const 1)
                     )
-                  )
-                  (i32.store
-                    (get_local $5)
-                    (get_local $3)
-                  )
-                  (set_local $2
-                    (i32.shr_u
-                      (get_local $3)
-                      (i32.const 3)
-                    )
-                  )
-                  (if
-                    (i32.lt_u
-                      (get_local $3)
-                      (i32.const 256)
-                    )
-                    (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.const 0)
-                        )
-                        (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 $20
-                            (get_local $4)
-                          )
-                        )
-                        (if
-                          (i32.lt_u
-                            (tee_local $2
-                              (i32.load
-                                (tee_local $1
-                                  (i32.add
-                                    (get_local $4)
-                                    (i32.const 8)
-                                  )
-                                )
-                              )
-                            )
+                        (i32.lt_u
+                          (tee_local $2
                             (i32.load
-                              (i32.const 192)
-                            )
-                          )
-                          (call_import $_abort)
-                          (block
-                            (set_local $9
-                              (get_local $1)
-                            )
-                            (set_local $20
-                              (get_local $2)
-                            )
-                          )
-                        )
-                      )
-                      (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)
-                    )
-                  )
-                  (set_local $4
-                    (i32.add
-                      (i32.const 480)
-                      (i32.shl
-                        (tee_local $2
-                          (if
-                            (i32.eq
-                              (tee_local $1
-                                (i32.shr_u
-                                  (get_local $3)
+                              (tee_local $3
+                                (i32.add
+                                  (get_local $1)
                                   (i32.const 8)
                                 )
                               )
-                              (i32.const 0)
                             )
-                            (i32.const 0)
-                            (if
-                              (i32.gt_u
-                                (get_local $3)
-                                (i32.const 16777215)
-                              )
-                              (i32.const 31)
-                              (block
-                                (set_local $2
-                                  (i32.shl
+                          )
+                          (i32.load
+                            (i32.const 192)
+                          )
+                        )
+                        (call_import $_abort)
+                        (block
+                          (set_local $23
+                            (get_local $3)
+                          )
+                          (set_local $18
+                            (get_local $2)
+                          )
+                        )
+                      )
+                      (block
+                        (i32.store
+                          (i32.const 176)
+                          (i32.or
+                            (get_local $3)
+                            (get_local $2)
+                          )
+                        )
+                        (set_local $23
+                          (i32.add
+                            (get_local $1)
+                            (i32.const 8)
+                          )
+                        )
+                        (set_local $18
+                          (get_local $1)
+                        )
+                      )
+                    )
+                    (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 $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.gt_u
+                              (get_local $5)
+                              (i32.const 16777215)
+                            )
+                            (i32.const 31)
+                            (i32.or
+                              (i32.and
+                                (i32.shr_u
+                                  (get_local $5)
+                                  (i32.add
                                     (tee_local $1
                                       (i32.add
                                         (i32.sub
@@ -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)
-                        )
-                      )
-                      (i32.store
-                        (get_local $4)
-                        (get_local $0)
-                      )
-                      (i32.store offset=24
-                        (get_local $0)
-                        (get_local $4)
-                      )
-                      (i32.store offset=12
-                        (get_local $0)
-                        (get_local $0)
-                      )
-                      (i32.store offset=8
-                        (get_local $0)
-                        (get_local $0)
-                      )
-                      (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 $4
-                    (i32.load
-                      (get_local $4)
-                    )
-                  )
-                  (loop $while-in$78
-                    (block $while-out$77
-                      (if
-                        (i32.eq
-                          (i32.and
-                            (i32.load offset=4
-                              (get_local $4)
-                            )
-                            (i32.const -8)
-                          )
+                      (tee_local $1
+                        (i32.shl
+                          (i32.const 1)
                           (get_local $3)
                         )
-                        (block
-                          (set_local $35
-                            (get_local $4)
-                          )
-                          (set_local $11
-                            (i32.const 307)
-                          )
-                          (br $while-out$77)
-                        )
                       )
-                      (set_local $8
-                        (i32.shl
-                          (get_local $2)
+                    )
+                  )
+                  (block
+                    (i32.store
+                      (i32.const 180)
+                      (i32.or
+                        (get_local $4)
+                        (get_local $1)
+                      )
+                    )
+                    (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 $3
+                  (i32.shl
+                    (get_local $5)
+                    (select
+                      (i32.const 0)
+                      (i32.sub
+                        (i32.const 25)
+                        (i32.shr_u
+                          (get_local $3)
                           (i32.const 1)
                         )
                       )
-                      (if
-                        (i32.eq
-                          (tee_local $1
+                      (i32.eq
+                        (get_local $3)
+                        (i32.const 31)
+                      )
+                    )
+                  )
+                )
+                (set_local $1
+                  (i32.load
+                    (get_local $2)
+                  )
+                )
+                (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)
+                            )
+                            (get_local $5)
+                          )
+                        )
+                        (set_local $2
+                          (i32.shl
+                            (get_local $3)
+                            (i32.const 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)
+                          (block
+                            (set_local $3
+                              (get_local $2)
+                            )
+                            (set_local $1
+                              (get_local $4)
+                            )
+                            (br $while-in$78)
                           )
-                          (set_local $41
-                            (get_local $2)
-                          )
-                          (set_local $11
-                            (i32.const 304)
-                          )
-                          (br $while-out$77)
-                        )
-                        (block
-                          (set_local $2
-                            (get_local $8)
-                          )
-                          (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)
+                        )
+                        (tee_local $3
+                          (i32.load
+                            (i32.const 192)
                           )
                         )
-                        (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)
-                          )
-                        )
-                        (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
-              (i32.load
-                (i32.const 188)
+          (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)
               )
             )
-            (get_local $6)
-          )
-          (block
             (i32.store
-              (i32.const 188)
-              (tee_local $2
-                (i32.sub
-                  (get_local $0)
-                  (get_local $6)
+              (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 648)
+              )
+            )
+            (i32.store
+              (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)
               )
             )
-            (return
-              (i32.add
+          )
+        )
+      )
+      (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)
-                (i32.const 8)
               )
             )
           )
+          (i32.store
+            (i32.const 200)
+            (tee_local $2
+              (i32.add
+                (tee_local $3
+                  (i32.load
+                    (i32.const 200)
+                  )
+                )
+                (get_local $0)
+              )
+            )
+          )
+          (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
-            (get_local $0)
-            (i32.const 1)
-          )
-          (i32.const 0)
+        (i32.and
+          (get_local $3)
+          (i32.const 1)
         )
         (block
-          (set_local $0
+          (set_local $4
+            (get_local $2)
+          )
+          (set_local $1
+            (get_local $0)
+          )
+        )
+        (block
+          (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)
+                    )
+                    (set_local $5
+                      (get_local $8)
                     )
                     (block
-                      (set_local $5
+                      (set_local $7
                         (i32.const 0)
                       )
                       (br $do-once$2)
                     )
-                    (block
-                      (set_local $2
-                        (get_local $0)
-                      )
-                      (set_local $7
-                        (get_local $13)
-                      )
-                    )
-                  )
-                  (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)
-                      )
-                    )
-                    (if
-                      (i32.eq
-                        (tee_local $0
-                          (i32.load
-                            (tee_local $13
-                              (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)
-                        )
                       )
                     )
-                    (br $while-in$5)
+                    (block
+                      (set_local $2
+                        (get_local $8)
+                      )
+                      (set_local $5
+                        (get_local $10)
+                      )
+                      (br $while-in$5)
+                    )
+                  )
+                  (if
+                    (tee_local $8
+                      (i32.load
+                        (tee_local $10
+                          (i32.add
+                            (get_local $2)
+                            (i32.const 16)
+                          )
+                        )
+                      )
+                    )
+                    (block
+                      (set_local $2
+                        (get_local $8)
+                      )
+                      (set_local $5
+                        (get_local $10)
+                      )
+                      (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)
-                    )
-                    (i32.store
-                      (get_local $7)
+                      (get_local $8)
                       (get_local $2)
                     )
-                    (set_local $5
-                      (get_local $0)
+                    (i32.store
+                      (get_local $10)
+                      (get_local $5)
+                    )
+                    (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 $2)
+                      (get_local $7)
+                    )
+                    (set_local $4
                       (get_local $0)
-                      (get_local $5)
                     )
-                    (set_local $3
-                      (get_local $4)
+                    (set_local $1
+                      (get_local $3)
                     )
-                    (set_local $10
-                      (get_local $12)
-                    )
+                  )
+                )
+                (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)
+            (block
+              (set_local $4
+                (get_local $0)
+              )
+              (set_local $1
+                (get_local $3)
+              )
+            )
           )
         )
       )
     )
     (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.const 0)
+        (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)
+        )
       )
       (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,62 +14695,6 @@
                 (block
                   (if
                     (i32.lt_u
-                      (get_local $0)
-                      (i32.load
-                        (i32.const 192)
-                      )
-                    )
-                    (call_import $_abort)
-                  )
-                  (if
-                    (i32.ne
-                      (i32.load offset=12
-                        (get_local $0)
-                      )
-                      (get_local $9)
-                    )
-                    (call_import $_abort)
-                  )
-                )
-              )
-              (if
-                (i32.eq
-                  (get_local $1)
-                  (get_local $0)
-                )
-                (block
-                  (i32.store
-                    (i32.const 176)
-                    (i32.and
-                      (i32.load
-                        (i32.const 176)
-                      )
-                      (i32.xor
-                        (i32.shl
-                          (i32.const 1)
-                          (get_local $8)
-                        )
-                        (i32.const -1)
-                      )
-                    )
-                  )
-                  (br $do-once$8)
-                )
-              )
-              (if
-                (i32.eq
-                  (get_local $1)
-                  (get_local $2)
-                )
-                (set_local $16
-                  (i32.add
-                    (get_local $1)
-                    (i32.const 8)
-                  )
-                )
-                (block
-                  (if
-                    (i32.lt_u
                       (get_local $1)
                       (i32.load
                         (i32.const 192)
@@ -16429,59 +14703,115 @@
                     (call_import $_abort)
                   )
                   (if
+                    (i32.ne
+                      (i32.load offset=12
+                        (get_local $1)
+                      )
+                      (get_local $6)
+                    )
+                    (call_import $_abort)
+                  )
+                )
+              )
+              (if
+                (i32.eq
+                  (get_local $3)
+                  (get_local $1)
+                )
+                (block
+                  (i32.store
+                    (i32.const 176)
+                    (i32.and
+                      (i32.load
+                        (i32.const 176)
+                      )
+                      (i32.xor
+                        (i32.shl
+                          (i32.const 1)
+                          (get_local $5)
+                        )
+                        (i32.const -1)
+                      )
+                    )
+                  )
+                  (br $do-once$8)
+                )
+              )
+              (if
+                (i32.eq
+                  (get_local $3)
+                  (get_local $0)
+                )
+                (set_local $14
+                  (i32.add
+                    (get_local $3)
+                    (i32.const 8)
+                  )
+                )
+                (block
+                  (if
+                    (i32.lt_u
+                      (get_local $3)
+                      (i32.load
+                        (i32.const 192)
+                      )
+                    )
+                    (call_import $_abort)
+                  )
+                  (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)
-                          )
-                        )
-                        (if
-                          (i32.eq
-                            (tee_local $1
-                              (i32.load
-                                (tee_local $7
-                                  (i32.add
-                                    (get_local $2)
-                                    (i32.const 16)
-                                  )
-                                )
-                              )
-                            )
-                            (i32.const 0)
-                          )
-                          (br $while-out$12)
-                          (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
+                        (tee_local $3
+                          (i32.load
+                            (tee_local $5
+                              (i32.add
+                                (get_local $0)
+                                (i32.const 16)
+                              )
+                            )
+                          )
+                        )
+                        (block
+                          (set_local $0
+                            (get_local $3)
+                          )
+                          (set_local $1
+                            (get_local $5)
+                          )
+                          (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)
+          (set_local $1
+            (get_local $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)
-          )
-          (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.and
+            (tee_local $0
+              (i32.load
+                (i32.const 176)
               )
             )
-            (i32.const 0)
-          )
-          (block
-            (i32.store
-              (i32.const 176)
-              (i32.or
-                (get_local $0)
-                (get_local $1)
-              )
-            )
-            (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 4)
+                                    )
+                                  )
+                                  (get_local $0)
+                                )
+                                (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 16)
                                     )
-                                    (i32.const 4)
+                                    (i32.const 2)
                                   )
                                 )
+                              )
+                            )
+                            (i32.shr_u
+                              (i32.shl
+                                (get_local $3)
                                 (get_local $0)
                               )
-                              (tee_local $0
-                                (i32.and
-                                  (i32.shr_u
-                                    (i32.add
-                                      (tee_local $6
-                                        (i32.shl
-                                          (get_local $1)
-                                          (get_local $6)
-                                        )
-                                      )
-                                      (i32.const 245760)
-                                    )
-                                    (i32.const 16)
-                                  )
-                                  (i32.const 2)
-                                )
-                              )
+                              (i32.const 15)
                             )
                           )
-                          (i32.shr_u
-                            (i32.shl
-                              (get_local $6)
-                              (get_local $0)
-                            )
-                            (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)
+              (get_local $3)
             )
           )
         )
-        (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)
-              )
-            )
-          )
-        )
-        (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)
+                (i32.eq
+                  (get_local $3)
+                  (i32.const 31)
                 )
-                (set_local $0
-                  (i32.const 130)
-                )
-                (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)
           )
+          (i32.const 8)
         )
-        (set_local $6
-          (i32.add
-            (get_local $6)
-            (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)
-              )
+          (if
+            (i32.ge_s
+              (get_local $2)
+              (i32.const 4)
             )
-            (i32.store
-              (get_local $0)
-              (i32.load
-                (get_local $1)
-              )
-            )
-            (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)
-          )
+      (if
+        (i32.gt_s
+          (get_local $2)
+          (i32.const 0)
         )
-        (i32.store8
-          (get_local $0)
-          (i32.load8_s
-            (get_local $1)
-          )
-        )
-        (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)
+    (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 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)
+              )
+              (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)
+      )
+    )
+    (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
-          (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 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)
-                  )
-                  (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 $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)
-          )
+  (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)
         )
-        (i32.const 0)
-      )
-      (block
-        (set_local $2
-          (i32.ne
-            (get_local $4)
-            (i32.const 0)
+        (i64.shl
+          (i64.extend_u/i32
+            (get_local $xh)
           )
-        )
-        (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.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)
-                )
-              )
-            )
+        (i64.shl
+          (i64.extend_u/i32
+            (get_local $yh)
           )
-          (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)
-          )
-        )
-        (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)
-        )
-      )
-    )
-    (set_local $3
-      (i32.or
-        (get_local $6)
-        (tee_local $2
-          (i32.const 0)
+          (i64.const 32)
         )
       )
     )
     (if
-      (i32.ne
-        (get_local $4)
-        (i32.const 0)
+      (get_local $r)
+      (i64.store
+        (get_local $r)
+        (i64.rem_u
+          (get_local $x64)
+          (get_local $y64)
+        )
       )
-      (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 45f19f2..d7bbe58 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)
+        (i64.shl
+          (i64.extend_u/i32
+            (get_local $xh)
           )
-          (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.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)
-                )
-              )
-            )
+        (i64.shl
+          (i64.extend_u/i32
+            (get_local $yh)
           )
-          (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)
-            )
-          )
-        )
-        (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)
-                )
-              )
-            )
-          )
+          (i64.const 32)
         )
       )
     )
     (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)
+      (get_local $r)
+      (i64.store
+        (get_local $r)
+        (i64.rem_u
+          (get_local $x64)
+          (get_local $y64)
         )
       )
     )
-    (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)
+    (set_local $x64
+      (i64.div_u
+        (get_local $x64)
+        (get_local $y64)
       )
     )
-    (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)
+    (set_global $tempRet0
+      (i32.wrap/i64
+        (i64.shr_u
+          (get_local $x64)
+          (i64.const 32)
         )
       )
     )
-    (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 $$_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)
-        )
-        (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 ea2bb88..0231444 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)
+        (i64.shl
+          (i64.extend_u/i32
+            (get_local $xh)
           )
-          (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.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)
-                )
-              )
-            )
+        (i64.shl
+          (i64.extend_u/i32
+            (get_local $yh)
           )
-          (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)
-            )
-          )
-        )
-        (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)
-                )
-              )
-            )
-          )
+          (i64.const 32)
         )
       )
     )
     (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)
+      (get_local $r)
+      (i64.store
+        (get_local $r)
+        (i64.rem_u
+          (get_local $x64)
+          (get_local $y64)
         )
       )
     )
-    (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)
+    (set_local $x64
+      (i64.div_u
+        (get_local $x64)
+        (get_local $y64)
       )
     )
-    (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)
+    (set_global $tempRet0
+      (i32.wrap/i64
+        (i64.shr_u
+          (get_local $x64)
+          (i64.const 32)
         )
       )
     )
-    (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 $$_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)
-        )
-        (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 6544f9f..9f1021b 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -408,7 +408,9 @@
             )
             (if
               (i32.const 4)
-              (i32.const 5)
+              (drop
+                (i32.const 5)
+              )
             )
             (drop
               (loop $in
@@ -1102,11 +1104,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
@@ -1129,11 +1130,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
@@ -1999,7 +1999,9 @@
             )
             (if
               (i32.const 4)
-              (i32.const 5)
+              (drop
+                (i32.const 5)
+              )
             )
             (drop
               (loop $in
@@ -3157,11 +3159,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
@@ -3184,11 +3185,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/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt
index b37814f..022bcc2 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 1513603..5db33f2 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 be81302..b4ad8b5 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 c0cce35..70ef836 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)
-                              )
                             )
-                            (if
-                              (tee_local $7
-                                (i32.load
-                                  (tee_local $8
-                                    (i32.add
-                                      (get_local $11)
-                                      (i32.const 16)
-                                    )
+                            (block
+                              (set_local $4
+                                (get_local $9)
+                              )
+                              (set_local $6
+                                (get_local $10)
+                              )
+                              (br $while-in$11)
+                            )
+                          )
+                          (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)
-                                )
-                              )
-                              (br $while-out$10)
                             )
-                            (br $while-in$11)
+                            (block
+                              (set_local $4
+                                (get_local $9)
+                              )
+                              (set_local $6
+                                (get_local $10)
+                              )
+                              (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)
+                                        (get_local $17)
+                                        (i32.const 16)
+                                      )
+                                      (i32.shl
+                                        (i32.shr_u
+                                          (get_local $3)
+                                          (i32.const 31)
                                         )
-                                        (i32.shl
-                                          (i32.shr_u
-                                            (get_local $3)
-                                            (i32.const 31)
-                                          )
-                                          (i32.const 2)
-                                        )
+                                        (i32.const 2)
                                       )
                                     )
                                   )
@@ -1702,67 +1683,59 @@
                               )
                             )
                           )
-                          (if
-                            (tee_local $29
-                              (i32.eq
-                                (get_local $19)
-                                (i32.const 0)
-                              )
-                            )
-                            (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 $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)
-                                    )
-                                    (i32.const 1)
-                                  )
-                                )
-                              )
-                              (set_local $5
-                                (get_local $0)
-                              )
+                        )
+                        (if
+                          (tee_local $2
+                            (i32.eqz
+                              (get_local $17)
                             )
                           )
-                          (br $while-in$18)
+                          (block
+                            (set_local $36
+                              (get_local $9)
+                            )
+                            (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)
+                                )
+                              )
+                            )
+                            (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 $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)
                         )
                       )
-                      (set_local $12
-                        (select
+                      (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)
+                      )
+                      (block
+                        (set_local $16
+                          (get_local $5)
+                        )
+                        (set_local $11
+                          (get_local $8)
                         )
                       )
-                      (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 $22
-                            (get_local $12)
-                          )
-                          (set_local $9
-                            (get_local $5)
-                          )
-                          (br $while-out$19)
-                        )
-                      )
-                      (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)
-                                  )
                                 )
-                                (if
-                                  (tee_local $16
-                                    (i32.load
-                                      (tee_local $14
-                                        (i32.add
-                                          (get_local $11)
-                                          (i32.const 16)
-                                        )
+                                (block
+                                  (set_local $4
+                                    (get_local $6)
+                                  )
+                                  (set_local $3
+                                    (get_local $2)
+                                  )
+                                  (br $while-in$24)
+                                )
+                              )
+                              (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)
-                                    )
-                                  )
-                                  (br $while-out$23)
                                 )
-                                (br $while-in$24)
+                                (block
+                                  (set_local $4
+                                    (get_local $6)
+                                  )
+                                  (set_local $3
+                                    (get_local $2)
+                                  )
+                                  (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)
-                                    )
-                                    (i32.store offset=8
-                                      (get_local $5)
+                                      (get_local $2)
                                       (get_local $8)
                                     )
+                                    (i32.store offset=8
+                                      (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)
-                                )
+                          (br_if $while-in$36
+                            (tee_local $7
+                              (i32.load offset=8
+                                (get_local $7)
                               )
                             )
-                            (block
-                              (set_local $7
-                                (i32.const 171)
-                              )
-                              (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)
-                        )
+                  (br_if $while-in$49
+                    (tee_local $1
+                      (i32.load offset=8
+                        (get_local $1)
                       )
                     )
-                    (block
-                      (set_local $37
-                        (i32.const 1656)
-                      )
-                      (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)
-                                                      )
                                                     )
-                                                    (if
-                                                      (tee_local $20
-                                                        (i32.load
-                                                          (tee_local $13
-                                                            (i32.add
-                                                              (get_local $11)
-                                                              (i32.const 16)
-                                                            )
+                                                    (block
+                                                      (set_local $0
+                                                        (get_local $3)
+                                                      )
+                                                      (set_local $16
+                                                        (get_local $7)
+                                                      )
+                                                      (br $while-in$60)
+                                                    )
+                                                  )
+                                                  (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)
-                                                        )
-                                                      )
-                                                      (br $while-out$59)
                                                     )
-                                                    (br $while-in$60)
+                                                    (block
+                                                      (set_local $0
+                                                        (get_local $3)
+                                                      )
+                                                      (set_local $16
+                                                        (get_local $7)
+                                                      )
+                                                      (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)
+                                      (get_local $5)
                                     )
                                   )
-                                  (block
-                                    (set_local $11
-                                      (get_local $24)
-                                    )
-                                    (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)
-                          )
-                        )
-                        (block
-                          (set_local $26
+                          (set_local $5
                             (get_local $2)
                           )
-                          (set_local $11
-                            (get_local $17)
+                          (br $while-in$76)
+                        )
+                        (block
+                          (set_local $48
+                            (get_local $0)
                           )
-                          (set_local $7
+                          (set_local $55
+                            (get_local $5)
+                          )
+                          (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)
-                      )
                     )
-                    (if
-                      (tee_local $11
-                        (i32.load
-                          (tee_local $6
-                            (i32.add
-                              (get_local $1)
-                              (i32.const 16)
-                            )
+                    (block
+                      (set_local $1
+                        (get_local $10)
+                      )
+                      (set_local $3
+                        (get_local $6)
+                      )
+                      (br $while-in$5)
+                    )
+                  )
+                  (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)
-                          )
                         )
-                        (if
-                          (tee_local $11
-                            (i32.load
-                              (tee_local $1
-                                (i32.add
-                                  (get_local $0)
-                                  (i32.const 16)
-                                )
+                        (block
+                          (set_local $0
+                            (get_local $10)
+                          )
+                          (set_local $3
+                            (get_local $1)
+                          )
+                          (br $while-in$13)
+                        )
+                      )
+                      (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)
-                            )
-                          )
-                          (br $while-out$12)
                         )
-                        (br $while-in$13)
+                        (block
+                          (set_local $0
+                            (get_local $10)
+                          )
+                          (set_local $3
+                            (get_local $1)
+                          )
+                          (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
-              (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
-                  (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
+          (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.gt_u
+                  (get_local $6)
+                  (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 $5)
+                (get_local $6)
               )
             )
-          )
-        )
-        (i32.store
-          (get_local $7)
-          (i32.add
-            (i32.load
-              (get_local $7)
+            (i32.store offset=4
+              (get_local $3)
+              (i32.sub
+                (get_local $5)
+                (get_local $6)
+              )
             )
-            (get_local $6)
+            (set_local $5
+              (get_local $3)
+            )
+            (set_local $3
+              (get_local $9)
+            )
+            (br $while-in$1)
           )
         )
-        (i32.store offset=4
-          (get_local $7)
-          (i32.sub
-            (get_local $3)
-            (get_local $6)
-          )
-        )
-        (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)
-                        )
-                        (set_local $3
-                          (get_local $7)
-                        )
+                        (i32.const 10)
                       )
-                      (br $while-in$3)
+                      (block
+                        (set_local $3
+                          (get_local $6)
+                        )
+                        (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)
-                  )
-                )
-                (block
-                  (set_local $5
-                    (get_local $4)
-                  )
-                  (br $label$break$a)
+            (if
+              (i32.eqz
+                (i32.load8_s
+                  (get_local $0)
                 )
               )
-              (if
-                (i32.eqz
-                  (i32.and
-                    (tee_local $4
-                      (tee_local $0
-                        (i32.add
-                          (get_local $0)
-                          (i32.const 1)
-                        )
-                      )
+              (block
+                (set_local $5
+                  (get_local $4)
+                )
+                (br $label$break$a)
+              )
+            )
+            (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)
               )
-              (br $while-in$2)
+            )
+            (block
+              (set_local $1
+                (get_local $0)
+              )
+              (set_local $2
+                (i32.const 4)
+              )
             )
           )
         )
         (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.const -2139062144)
+              )
+              (i32.add
+                (get_local $1)
+                (i32.const -16843009)
+              )
+            )
+            (set_local $0
+              (get_local $2)
+            )
+            (block
+              (set_local $2
                 (i32.add
                   (get_local $2)
-                  (i32.const -16843009)
-                )
-              )
-              (br $while-out$3)
-              (set_local $1
-                (i32.add
-                  (get_local $1)
                   (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)
-                  )
-                  (br $while-out$5)
                 )
-                (br $while-in$6)
+                (block
+                  (set_local $1
+                    (get_local $0)
+                  )
+                  (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)
+                      (i32.const -1)
                     )
+                    (call $Ya
+                      (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)
-                        )
+                )
+                (set_local $2
+                  (if
+                    (i32.gt_u
+                      (i32.load offset=20
+                        (get_local $1)
                       )
-                      (i32.or
-                        (call $$a
-                          (get_local $1)
-                        )
-                        (get_local $2)
+                      (i32.load offset=28
+                        (get_local $1)
+                      )
+                    )
+                    (i32.or
+                      (call $$a
+                        (get_local $1)
                       )
                       (get_local $2)
                     )
+                    (get_local $2)
                   )
-                  (if
-                    (get_local $0)
-                    (call $Ta
+                )
+                (if
+                  (get_local $0)
+                  (call $Ta
+                    (get_local $1)
+                  )
+                )
+                (br_if $while-in$3
+                  (tee_local $1
+                    (i32.load offset=56
                       (get_local $1)
                     )
                   )
-                  (if
-                    (i32.eqz
-                      (tee_local $1
-                        (i32.load offset=56
-                          (get_local $1)
-                        )
-                      )
-                    )
-                    (block
-                      (set_local $0
-                        (get_local $2)
-                      )
-                      (br $while-out$2)
-                    )
-                  )
-                  (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)
-                )
-                (i32.const 3)
+          (drop
+            (call_indirect $FUNCSIG$iiii
+              (get_local $0)
+              (i32.sub
+                (get_local $2)
+                (get_local $6)
               )
-              (i32.const 2)
+              (i32.const 1)
+              (i32.add
+                (i32.and
+                  (i32.load offset=40
+                    (get_local $0)
+                  )
+                  (i32.const 3)
+                )
+                (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)
-              )
+          (if
+            (i32.ge_s
+              (get_local $2)
+              (i32.const 4)
             )
-            (i32.store
-              (get_local $0)
-              (i32.load
-                (get_local $1)
-              )
-            )
-            (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)
-          )
+      (if
+        (i32.gt_s
+          (get_local $2)
+          (i32.const 0)
         )
-        (i32.store8
-          (get_local $0)
-          (i32.load8_s
-            (get_local $1)
-          )
-        )
-        (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 aea1276..4e4891a 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)
-                              )
                             )
-                            (if
-                              (tee_local $7
-                                (i32.load
-                                  (tee_local $8
-                                    (i32.add
-                                      (get_local $11)
-                                      (i32.const 16)
-                                    )
+                            (block
+                              (set_local $4
+                                (get_local $9)
+                              )
+                              (set_local $6
+                                (get_local $10)
+                              )
+                              (br $while-in$11)
+                            )
+                          )
+                          (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)
-                                )
-                              )
-                              (br $while-out$10)
                             )
-                            (br $while-in$11)
+                            (block
+                              (set_local $4
+                                (get_local $9)
+                              )
+                              (set_local $6
+                                (get_local $10)
+                              )
+                              (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)
+                                        (get_local $17)
+                                        (i32.const 16)
+                                      )
+                                      (i32.shl
+                                        (i32.shr_u
+                                          (get_local $3)
+                                          (i32.const 31)
                                         )
-                                        (i32.shl
-                                          (i32.shr_u
-                                            (get_local $3)
-                                            (i32.const 31)
-                                          )
-                                          (i32.const 2)
-                                        )
+                                        (i32.const 2)
                                       )
                                     )
                                   )
@@ -1700,67 +1681,59 @@
                               )
                             )
                           )
-                          (if
-                            (tee_local $29
-                              (i32.eq
-                                (get_local $19)
-                                (i32.const 0)
-                              )
-                            )
-                            (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 $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)
-                                    )
-                                    (i32.const 1)
-                                  )
-                                )
-                              )
-                              (set_local $5
-                                (get_local $0)
-                              )
+                        )
+                        (if
+                          (tee_local $2
+                            (i32.eqz
+                              (get_local $17)
                             )
                           )
-                          (br $while-in$18)
+                          (block
+                            (set_local $36
+                              (get_local $9)
+                            )
+                            (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)
+                                )
+                              )
+                            )
+                            (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 $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)
                         )
                       )
-                      (set_local $12
-                        (select
+                      (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)
+                      )
+                      (block
+                        (set_local $16
+                          (get_local $5)
+                        )
+                        (set_local $11
+                          (get_local $8)
                         )
                       )
-                      (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 $22
-                            (get_local $12)
-                          )
-                          (set_local $9
-                            (get_local $5)
-                          )
-                          (br $while-out$19)
-                        )
-                      )
-                      (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)
-                                  )
                                 )
-                                (if
-                                  (tee_local $16
-                                    (i32.load
-                                      (tee_local $14
-                                        (i32.add
-                                          (get_local $11)
-                                          (i32.const 16)
-                                        )
+                                (block
+                                  (set_local $4
+                                    (get_local $6)
+                                  )
+                                  (set_local $3
+                                    (get_local $2)
+                                  )
+                                  (br $while-in$24)
+                                )
+                              )
+                              (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)
-                                    )
-                                  )
-                                  (br $while-out$23)
                                 )
-                                (br $while-in$24)
+                                (block
+                                  (set_local $4
+                                    (get_local $6)
+                                  )
+                                  (set_local $3
+                                    (get_local $2)
+                                  )
+                                  (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)
-                                    )
-                                    (i32.store offset=8
-                                      (get_local $5)
+                                      (get_local $2)
                                       (get_local $8)
                                     )
+                                    (i32.store offset=8
+                                      (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)
-                                )
+                          (br_if $while-in$36
+                            (tee_local $7
+                              (i32.load offset=8
+                                (get_local $7)
                               )
                             )
-                            (block
-                              (set_local $7
-                                (i32.const 171)
-                              )
-                              (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)
-                        )
+                  (br_if $while-in$49
+                    (tee_local $1
+                      (i32.load offset=8
+                        (get_local $1)
                       )
                     )
-                    (block
-                      (set_local $37
-                        (i32.const 1656)
-                      )
-                      (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)
-                                                      )
                                                     )
-                                                    (if
-                                                      (tee_local $20
-                                                        (i32.load
-                                                          (tee_local $13
-                                                            (i32.add
-                                                              (get_local $11)
-                                                              (i32.const 16)
-                                                            )
+                                                    (block
+                                                      (set_local $0
+                                                        (get_local $3)
+                                                      )
+                                                      (set_local $16
+                                                        (get_local $7)
+                                                      )
+                                                      (br $while-in$60)
+                                                    )
+                                                  )
+                                                  (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)
-                                                        )
-                                                      )
-                                                      (br $while-out$59)
                                                     )
-                                                    (br $while-in$60)
+                                                    (block
+                                                      (set_local $0
+                                                        (get_local $3)
+                                                      )
+                                                      (set_local $16
+                                                        (get_local $7)
+                                                      )
+                                                      (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)
+                                      (get_local $5)
                                     )
                                   )
-                                  (block
-                                    (set_local $11
-                                      (get_local $24)
-                                    )
-                                    (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)
-                          )
-                        )
-                        (block
-                          (set_local $26
+                          (set_local $5
                             (get_local $2)
                           )
-                          (set_local $11
-                            (get_local $17)
+                          (br $while-in$76)
+                        )
+                        (block
+                          (set_local $48
+                            (get_local $0)
                           )
-                          (set_local $7
+                          (set_local $55
+                            (get_local $5)
+                          )
+                          (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)
-                      )
                     )
-                    (if
-                      (tee_local $11
-                        (i32.load
-                          (tee_local $6
-                            (i32.add
-                              (get_local $1)
-                              (i32.const 16)
-                            )
+                    (block
+                      (set_local $1
+                        (get_local $10)
+                      )
+                      (set_local $3
+                        (get_local $6)
+                      )
+                      (br $while-in$5)
+                    )
+                  )
+                  (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)
-                          )
                         )
-                        (if
-                          (tee_local $11
-                            (i32.load
-                              (tee_local $1
-                                (i32.add
-                                  (get_local $0)
-                                  (i32.const 16)
-                                )
+                        (block
+                          (set_local $0
+                            (get_local $10)
+                          )
+                          (set_local $3
+                            (get_local $1)
+                          )
+                          (br $while-in$13)
+                        )
+                      )
+                      (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)
-                            )
-                          )
-                          (br $while-out$12)
                         )
-                        (br $while-in$13)
+                        (block
+                          (set_local $0
+                            (get_local $10)
+                          )
+                          (set_local $3
+                            (get_local $1)
+                          )
+                          (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
-              (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
-                  (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
+          (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.gt_u
+                  (get_local $6)
+                  (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 $5)
+                (get_local $6)
               )
             )
-          )
-        )
-        (i32.store
-          (get_local $7)
-          (i32.add
-            (i32.load
-              (get_local $7)
+            (i32.store offset=4
+              (get_local $3)
+              (i32.sub
+                (get_local $5)
+                (get_local $6)
+              )
             )
-            (get_local $6)
+            (set_local $5
+              (get_local $3)
+            )
+            (set_local $3
+              (get_local $9)
+            )
+            (br $while-in$1)
           )
         )
-        (i32.store offset=4
-          (get_local $7)
-          (i32.sub
-            (get_local $3)
-            (get_local $6)
-          )
-        )
-        (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)
-                        )
-                        (set_local $3
-                          (get_local $7)
-                        )
+                        (i32.const 10)
                       )
-                      (br $while-in$3)
+                      (block
+                        (set_local $3
+                          (get_local $6)
+                        )
+                        (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)
-                  )
-                )
-                (block
-                  (set_local $5
-                    (get_local $4)
-                  )
-                  (br $label$break$a)
+            (if
+              (i32.eqz
+                (i32.load8_s
+                  (get_local $0)
                 )
               )
-              (if
-                (i32.eqz
-                  (i32.and
-                    (tee_local $4
-                      (tee_local $0
-                        (i32.add
-                          (get_local $0)
-                          (i32.const 1)
-                        )
-                      )
+              (block
+                (set_local $5
+                  (get_local $4)
+                )
+                (br $label$break$a)
+              )
+            )
+            (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)
               )
-              (br $while-in$2)
+            )
+            (block
+              (set_local $1
+                (get_local $0)
+              )
+              (set_local $2
+                (i32.const 4)
+              )
             )
           )
         )
         (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.const -2139062144)
+              )
+              (i32.add
+                (get_local $1)
+                (i32.const -16843009)
+              )
+            )
+            (set_local $0
+              (get_local $2)
+            )
+            (block
+              (set_local $2
                 (i32.add
                   (get_local $2)
-                  (i32.const -16843009)
-                )
-              )
-              (br $while-out$3)
-              (set_local $1
-                (i32.add
-                  (get_local $1)
                   (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)
-                  )
-                  (br $while-out$5)
                 )
-                (br $while-in$6)
+                (block
+                  (set_local $1
+                    (get_local $0)
+                  )
+                  (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)
+                      (i32.const -1)
                     )
+                    (call $Ya
+                      (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)
-                        )
+                )
+                (set_local $2
+                  (if
+                    (i32.gt_u
+                      (i32.load offset=20
+                        (get_local $1)
                       )
-                      (i32.or
-                        (call $$a
-                          (get_local $1)
-                        )
-                        (get_local $2)
+                      (i32.load offset=28
+                        (get_local $1)
+                      )
+                    )
+                    (i32.or
+                      (call $$a
+                        (get_local $1)
                       )
                       (get_local $2)
                     )
+                    (get_local $2)
                   )
-                  (if
-                    (get_local $0)
-                    (call $Ta
+                )
+                (if
+                  (get_local $0)
+                  (call $Ta
+                    (get_local $1)
+                  )
+                )
+                (br_if $while-in$3
+                  (tee_local $1
+                    (i32.load offset=56
                       (get_local $1)
                     )
                   )
-                  (if
-                    (i32.eqz
-                      (tee_local $1
-                        (i32.load offset=56
-                          (get_local $1)
-                        )
-                      )
-                    )
-                    (block
-                      (set_local $0
-                        (get_local $2)
-                      )
-                      (br $while-out$2)
-                    )
-                  )
-                  (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)
-                )
-                (i32.const 3)
+          (drop
+            (call_indirect $FUNCSIG$iiii
+              (get_local $0)
+              (i32.sub
+                (get_local $2)
+                (get_local $6)
               )
-              (i32.const 2)
+              (i32.const 1)
+              (i32.add
+                (i32.and
+                  (i32.load offset=40
+                    (get_local $0)
+                  )
+                  (i32.const 3)
+                )
+                (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)
-              )
+          (if
+            (i32.ge_s
+              (get_local $2)
+              (i32.const 4)
             )
-            (i32.store
-              (get_local $0)
-              (i32.load
-                (get_local $1)
-              )
-            )
-            (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)
-          )
+      (if
+        (i32.gt_s
+          (get_local $2)
+          (i32.const 0)
         )
-        (i32.store8
-          (get_local $0)
-          (i32.load8_s
-            (get_local $1)
-          )
-        )
-        (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 347eb43..064c1d8 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)
-                  )
-                )
-                (i32.const 3)
+          (drop
+            (call_indirect $FUNCSIG$iiii
+              (get_local $a)
+              (i32.sub
+                (get_local $f)
+                (get_local $h)
               )
-              (i32.const 2)
+              (i32.const 1)
+              (i32.add
+                (i32.and
+                  (i32.load
+                    (i32.add
+                      (get_local $a)
+                      (i32.const 40)
+                    )
+                  )
+                  (i32.const 3)
+                )
+                (i32.const 2)
+              )
             )
           )
         )
diff --git a/test/memorygrowth.fromasm.no-opts b/test/memorygrowth.fromasm.no-opts
index 9415b19..0639416 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)
-                  )
-                )
-                (i32.const 3)
+          (drop
+            (call_indirect $FUNCSIG$iiii
+              (get_local $a)
+              (i32.sub
+                (get_local $f)
+                (get_local $h)
               )
-              (i32.const 2)
+              (i32.const 1)
+              (i32.add
+                (i32.and
+                  (i32.load
+                    (i32.add
+                      (get_local $a)
+                      (i32.const 40)
+                    )
+                  )
+                  (i32.const 3)
+                )
+                (i32.const 2)
+              )
             )
           )
         )
diff --git a/test/passes/coalesce-locals.txt b/test/passes/coalesce-locals.txt
index 3836cfa..db7098a 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 713fd7d..cd763af 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 e7af484..ca5f028 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 f06d99f..b1a7ab4 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 1c5c8e7..94b2145 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 f3d20f5..ecbcb6c 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 72bd7aa..4b7cd2b 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 2b5b84a..b703613 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 1adcc3e..04a04ef 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 3630512..84f3eeb 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 e76ae1e..d4426bd 100644
--- a/test/unit.asm.js
+++ b/test/unit.asm.js
@@ -9,11 +9,13 @@
   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 @@
     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 33dd153..6dd442a 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 35b8b17..d007a4d 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 c41075d..1e8b468 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 2162d9e..846ef21 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)
+    )
+  )
 )