diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-07-20 20:05:28 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-07-20 20:05:28 -0700 |
commit | fa60ade30e03c6a13bbce26ff81c03ed1ae4da0b (patch) | |
tree | d45b2b08645ac004645dde875d22d1c66b15187d | |
parent | 56901f8cb6fb6db4622937479d3a375744289ff0 (diff) | |
download | binaryen-fa60ade30e03c6a13bbce26ff81c03ed1ae4da0b.tar.gz binaryen-fa60ade30e03c6a13bbce26ff81c03ed1ae4da0b.tar.bz2 binaryen-fa60ade30e03c6a13bbce26ff81c03ed1ae4da0b.zip |
more RemoveUnusedName opts: merge names when possible, and do block/loop merging based on their names
-rw-r--r-- | src/passes/RemoveUnusedNames.cpp | 47 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm | 5260 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm.imprecise | 5260 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 108 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt.txt | 54 | ||||
-rw-r--r-- | test/passes/remove-unused-names.txt | 30 | ||||
-rw-r--r-- | test/passes/remove-unused-names.wast | 30 | ||||
-rw-r--r-- | test/unit.fromasm | 34 | ||||
-rw-r--r-- | test/unit.fromasm.imprecise | 34 |
9 files changed, 5445 insertions, 5412 deletions
diff --git a/src/passes/RemoveUnusedNames.cpp b/src/passes/RemoveUnusedNames.cpp index 5145cc744..9c6743479 100644 --- a/src/passes/RemoveUnusedNames.cpp +++ b/src/passes/RemoveUnusedNames.cpp @@ -15,7 +15,8 @@ */ // -// Removes names from locations that are never branched to. +// Removes names from locations that are never branched to, and +// merge names when possible (by merging their blocks) // #include <wasm.h> @@ -30,17 +31,17 @@ struct RemoveUnusedNames : public WalkerPass<PostWalker<RemoveUnusedNames, Visit // We maintain a list of branches that we saw in children, then when we reach // a parent block, we know if it was branched to - std::set<Name> branchesSeen; + std::map<Name, std::set<Expression*>> branchesSeen; void visitBreak(Break *curr) { - branchesSeen.insert(curr->name); + branchesSeen[curr->name].insert(curr); } void visitSwitch(Switch *curr) { for (auto name : curr->targets) { - branchesSeen.insert(name); + branchesSeen[name].insert(curr); } - branchesSeen.insert(curr->default_); + branchesSeen[curr->default_].insert(curr); } void handleBreakTarget(Name& name) { @@ -54,7 +55,35 @@ struct RemoveUnusedNames : public WalkerPass<PostWalker<RemoveUnusedNames, Visit } void visitBlock(Block *curr) { + if (curr->name.is() && curr->list.size() == 1) { + auto* child = curr->list[0]->dynCast<Block>(); + if (child && child->name.is()) { + // we have just one child, this block, so breaking out of it goes to the same place as breaking out of us, we just need one name (and block) + auto& branches = branchesSeen[curr->name]; + for (auto* branch : branches) { + if (Break* br = branch->dynCast<Break>()) { + if (br->name == curr->name) br->name = child->name; + } else if (Switch* sw = branch->dynCast<Switch>()) { + for (auto& target : sw->targets) { + if (target == curr->name) target = child->name; + } + if (sw->default_ == curr->name) sw->default_ = child->name; + } else { + WASM_UNREACHABLE(); + } + } + replaceCurrent(child); + } + } handleBreakTarget(curr->name); + if (curr->name.is() && curr->list.size() == 1) { + auto* child = curr->list[0]->dynCast<Loop>(); + if (child && !child->out.is()) { + // we have just one child, this loop, and it lacks an out label. So this block's name is doing just that! + child->out = curr->name; + replaceCurrent(child); + } + } } void visitLoop(Loop *curr) { @@ -68,6 +97,14 @@ struct RemoveUnusedNames : public WalkerPass<PostWalker<RemoveUnusedNames, Visit block->list.push_back(curr->body); replaceCurrent(block); } + if (curr->in.is() && !curr->out.is()) { + auto* child = curr->body->dynCast<Block>(); + if (child && child->name.is()) { + // we have just one child, this block, and we lack an out label. So we can take the block's! + curr->out = child->name; + child->name = Name(); + } + } } void visitFunction(Function *curr) { diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm index 82c2ccedb..c99290ba8 100644 --- a/test/emcc_hello_world.fromasm +++ b/test/emcc_hello_world.fromasm @@ -4389,3458 +4389,3438 @@ ) ) ) - (block $label$break$L75 - (block $switch$24 - (block $switch-default$127 - (block $switch-case$126 - (block $switch-case$55 - (block $switch-case$54 - (block $switch-case$53 - (block $switch-case$52 - (block $switch-case$51 - (block $switch-case$50 - (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$42 - (block $switch-case$41 - (block $switch-case$40 - (block $switch-case$37 - (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$52 $switch-case$51 $switch-case$50 $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$53 $switch-default$127 $switch-case$44 $switch-case$42 $switch-case$126 $switch-case$55 $switch-case$54 $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$37 $switch-default$127 - (i32.sub - (set_local $26 - (select - (i32.and - (get_local $1) - (i32.const -33) - ) - (get_local $1) - (get_local $5) - ) - ) - (i32.const 65) - ) - ) - ) - (block $switch-default$33 - (block $switch-case$32 - (block $switch-case$31 - (block $switch-case$30 - (block $switch-case$29 - (block $switch-case$28 - (block $switch-case$27 - (block $switch-case$26 - (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33 - (i32.sub - (get_local $13) - (i32.const 0) - ) - ) - ) - (i32.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 - (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 - (set_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) - ) - (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 - (set_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) + (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 + (set_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) ) - (br $switch$24) ) ) - (set_local $46 - (get_local $18) + (i32.store + (i32.load + (get_local $19) + ) + (get_local $22) ) - (set_local $57 - (get_local $10) + (set_local $20 + (get_local $9) ) - (set_local $68 - (get_local $26) + (set_local $1 + (get_local $17) ) - (set_local $12 - (i32.const 64) + (set_local $8 + (get_local $21) ) - (br $switch$24) + (br $label$continue$L1) ) - (if - (i32.and - (i32.eq - (set_local $5 - (i32.load - (set_local $1 - (get_local $19) - ) - ) - ) - (i32.const 0) - ) - (i32.eq - (set_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-out$38 $while-in$39 - (i32.store8 - (set_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) - ) - ) - (if - (i32.and - (i32.eq - (set_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $1) - (i32.const 3) - ) - ) - (i32.const 0) - ) - (i32.eq - (set_local $1 - (i32.load - (i32.const 168) - ) - ) - (i32.const 0) - ) - ) - (br $while-out$38) - ) - (br $while-in$39) - ) + (i32.store + (i32.load + (get_local $19) ) + (get_local $22) ) - (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) - (set_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) - ) - ) + (set_local $20 + (get_local $9) ) - (br $switch$24) - ) - ) - (set_local $5 - (i32.load (set_local $1 - (get_local $19) + (get_local $17) ) - ) - ) - (if - (i32.lt_s - (set_local $33 - (i32.load offset=4 - (get_local $1) - ) + (set_local $8 + (get_local $21) ) - (i32.const 0) + (br $label$continue$L1) ) - (block + (i32.store (set_local $1 - (call $_i64Subtract - (i32.const 0) - (i32.const 0) - (get_local $5) - (get_local $33) - ) - ) - (set_local $5 (i32.load - (i32.const 168) - ) - ) - (i32.store - (set_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 $label$break$L75) + (get_local $22) ) - ) - (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 - (set_local $6 - (i32.and - (get_local $18) - (i32.const 1) - ) - ) - (i32.const 0) - ) + (i32.store offset=4 + (get_local $1) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $22) + (i32.const 0) ) + (i32.const 31) ) - (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) + (i32.const 31) ) ) - ) - (br $switch$24) - ) - (set_local $33 - (i32.load + (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) ) - (set_local $59 - (i32.load offset=4 - (get_local $1) + (i32.store8 + (i32.load + (get_local $19) + ) + (i32.and + (get_local $22) + (i32.const 255) ) ) - (set_local $60 - (i32.const 0) + (set_local $20 + (get_local $9) ) - (set_local $61 - (i32.const 4091) + (set_local $1 + (get_local $17) ) - (set_local $12 - (i32.const 76) + (set_local $8 + (get_local $21) ) - (br $switch$24) + (br $label$continue$L1) ) - (set_local $5 + (i32.store (i32.load - (set_local $1 - (get_local $19) - ) + (get_local $19) ) + (get_local $22) ) - (i32.load offset=4 - (get_local $1) - ) - (i32.store8 - (get_local $72) - (i32.and - (get_local $5) - (i32.const 255) - ) + (set_local $20 + (get_local $9) ) - (set_local $47 - (get_local $72) + (set_local $1 + (get_local $17) ) - (set_local $37 - (get_local $7) + (set_local $8 + (get_local $21) ) - (set_local $42 - (i32.const 1) + (br $label$continue$L1) + ) + (i32.store + (set_local $1 + (i32.load + (get_local $19) + ) ) - (set_local $43 - (i32.const 0) + (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 $48 - (i32.const 4091) + ) + (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 + (set_local $5 + (i32.load + (set_local $1 + (get_local $19) ) - (set_local $49 - (get_local $28) + ) + ) + (i32.const 0) + ) + (i32.eq + (set_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-out$38 $while-in$39 + (i32.store8 + (set_local $6 + (i32.add + (get_local $6) + (i32.const -1) ) - (br $switch$24) ) - (set_local $50 - (call $_strerror - (i32.load - (call $___errno_location) + (i32.and + (i32.or + (i32.and + (get_local $5) + (i32.const 7) ) + (i32.const 48) ) + (i32.const 255) ) - (set_local $12 - (i32.const 82) + ) + (if + (i32.and + (i32.eq + (set_local $5 + (call $_bitshift64Lshr + (get_local $5) + (get_local $1) + (i32.const 3) + ) + ) + (i32.const 0) + ) + (i32.eq + (set_local $1 + (i32.load + (i32.const 168) + ) + ) + (i32.const 0) + ) ) - (br $switch$24) + (br $while-out$38) ) + (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.ne + (i32.lt_s + (get_local $10) (set_local $1 - (i32.load - (get_local $19) + (i32.add + (i32.sub + (get_local $71) + (get_local $6) + ) + (i32.const 1) ) ) - (i32.const 0) ) ) - (set_local $50 + (set_local $34 + (get_local $18) + ) + (set_local $32 (select (get_local $1) - (i32.const 4101) + (get_local $10) (get_local $5) ) ) - (set_local $12 - (i32.const 82) + (set_local $35 + (i32.const 0) ) - (br $switch$24) - ) - (set_local $5 - (i32.load - (set_local $1 - (get_local $19) - ) + (set_local $36 + (i32.const 4091) + ) + (set_local $12 + (i32.const 77) ) + (get_local $6) ) + ) + ) + (br $switch$24) + ) + (set_local $5 + (i32.load + (set_local $1 + (get_local $19) + ) + ) + ) + (if + (i32.lt_s + (set_local $33 (i32.load offset=4 (get_local $1) ) - (i32.store - (get_local $73) + ) + (i32.const 0) + ) + (block + (set_local $1 + (call $_i64Subtract + (i32.const 0) + (i32.const 0) (get_local $5) + (get_local $33) ) - (i32.store - (get_local $76) - (i32.const 0) + ) + (set_local $5 + (i32.load + (i32.const 168) ) - (i32.store + ) + (i32.store + (set_local $33 (get_local $19) - (get_local $73) - ) - (set_local $69 - (i32.const -1) - ) - (set_local $12 - (i32.const 86) ) - (br $switch$24) + (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 - (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 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 + (set_local $6 + (i32.and + (get_local $18) + (i32.const 1) + ) + ) (i32.const 0) ) - (i32.const 98) - ) - (block - (set_local $69 - (get_local $10) - ) - (i32.const 86) ) ) + (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) ) - (br $switch$24) + (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 + (set_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 $5 + (i32.load + (set_local $1 + (get_local $19) + ) + ) + ) + (i32.load offset=4 + (get_local $1) + ) + (i32.store8 + (get_local $72) + (i32.and + (get_local $5) + (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 + (set_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 $15 - (f64.load + (set_local $5 + (i32.load + (set_local $1 + (get_local $19) + ) + ) + ) + (i32.load offset=4 + (get_local $1) + ) + (i32.store + (get_local $73) + (get_local $5) + ) + (i32.store + (get_local $76) + (i32.const 0) + ) + (i32.store (get_local $19) + (get_local $73) ) - ) - (i32.store - (get_local $25) - (i32.const 0) - ) - (f64.store - (i32.load - (i32.const 24) + (set_local $69 + (i32.const -1) ) - (get_local $15) - ) - (i32.load - (i32.load - (i32.const 24) + (set_local $12 + (i32.const 86) ) + (br $switch$24) ) - (set_local $51 + (set_local $12 (if - (i32.lt_s - (i32.load offset=4 - (i32.load - (i32.const 24) - ) - ) + (i32.eq + (get_local $10) (i32.const 0) ) (block - (set_local $39 - (i32.const 4108) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $16) + (i32.const 0) + (get_local $18) ) - (set_local $15 - (f64.neg - (get_local $15) - ) + (set_local $38 + (i32.const 0) ) - (i32.const 1) + (i32.const 98) ) - (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) - ) - (i32.const 0) + (block + (set_local $69 + (get_local $10) ) - (block - (set_local $39 - (select - (i32.const 4109) - (i32.const 4114) - (i32.eq - (set_local $1 - (i32.and - (get_local $18) - (i32.const 1) - ) + (i32.const 86) + ) + ) + ) + (br $switch$24) + ) + (set_local $15 + (f64.load + (get_local $19) + ) + ) + (i32.store + (get_local $25) + (i32.const 0) + ) + (f64.store + (i32.load + (i32.const 24) + ) + (get_local $15) + ) + (i32.load + (i32.load + (i32.const 24) + ) + ) + (set_local $51 + (if + (i32.lt_s + (i32.load offset=4 + (i32.load + (i32.const 24) + ) + ) + (i32.const 0) + ) + (block + (set_local $39 + (i32.const 4108) + ) + (set_local $15 + (f64.neg + (get_local $15) + ) + ) + (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 + (set_local $1 + (i32.and + (get_local $18) + (i32.const 1) ) - (i32.const 0) ) + (i32.const 0) ) ) - (get_local $1) ) - (block - (set_local $39 - (i32.const 4111) - ) - (i32.const 1) + (get_local $1) + ) + (block + (set_local $39 + (i32.const 4111) ) + (i32.const 1) ) ) ) - (f64.store - (i32.load - (i32.const 24) - ) - (get_local $15) - ) + ) + (f64.store (i32.load - (i32.load - (i32.const 24) - ) + (i32.const 24) ) - (set_local $20 - (get_local $9) + (get_local $15) + ) + (i32.load + (i32.load + (i32.const 24) ) - (set_local $1 - (block $do-once$56 - (if - (i32.or - (i32.lt_u - (set_local $1 - (i32.and - (i32.load offset=4 - (i32.load - (i32.const 24) - ) + ) + (set_local $20 + (get_local $9) + ) + (set_local $1 + (block $do-once$56 + (if + (i32.or + (i32.lt_u + (set_local $1 + (i32.and + (i32.load offset=4 + (i32.load + (i32.const 24) ) - (i32.const 2146435072) ) - ) - (i32.const 2146435072) - ) - (i32.and - (i32.eq - (get_local $1) (i32.const 2146435072) ) - (i32.const 0) ) + (i32.const 2146435072) ) - (block - (if - (set_local $5 - (f64.ne - (set_local $15 - (f64.mul - (call $_frexpl - (get_local $15) - (get_local $25) - ) - (f64.const 2) + (i32.and + (i32.eq + (get_local $1) + (i32.const 2146435072) + ) + (i32.const 0) + ) + ) + (block + (if + (set_local $5 + (f64.ne + (set_local $15 + (f64.mul + (call $_frexpl + (get_local $15) + (get_local $25) ) + (f64.const 2) ) - (f64.const 0) ) + (f64.const 0) ) - (i32.store - (get_local $25) - (i32.add - (i32.load - (get_local $25) - ) - (i32.const -1) + ) + (i32.store + (get_local $25) + (i32.add + (i32.load + (get_local $25) ) + (i32.const -1) ) ) - (if - (i32.eq - (set_local $14 - (i32.or - (get_local $26) - (i32.const 32) - ) + ) + (if + (i32.eq + (set_local $14 + (i32.or + (get_local $26) + (i32.const 32) ) - (i32.const 97) ) - (block - (set_local $9 - (select + (i32.const 97) + ) + (block + (set_local $9 + (select + (get_local $39) + (i32.add (get_local $39) - (i32.add - (get_local $39) - (i32.const 9) - ) - (i32.eq - (set_local $6 - (i32.and - (get_local $26) - (i32.const 32) - ) + (i32.const 9) + ) + (i32.eq + (set_local $6 + (i32.and + (get_local $26) + (i32.const 32) ) - (i32.const 0) ) + (i32.const 0) ) ) - (set_local $7 - (i32.or - (get_local $51) - (i32.const 2) - ) + ) + (set_local $7 + (i32.or + (get_local $51) + (i32.const 2) ) - (set_local $15 - (if - (i32.or - (i32.gt_u - (get_local $10) - (i32.const 11) - ) - (i32.eq - (set_local $1 - (i32.sub - (i32.const 12) - (get_local $10) - ) + ) + (set_local $15 + (if + (i32.or + (i32.gt_u + (get_local $10) + (i32.const 11) + ) + (i32.eq + (set_local $1 + (i32.sub + (i32.const 12) + (get_local $10) ) - (i32.const 0) ) + (i32.const 0) ) - (get_local $15) - (block + ) + (get_local $15) + (block + (set_local $30 + (f64.const 8) + ) + (loop $while-out$60 $while-in$61 (set_local $30 - (f64.const 8) - ) - (loop $while-out$60 $while-in$61 - (set_local $30 - (f64.mul - (get_local $30) - (f64.const 16) - ) + (f64.mul + (get_local $30) + (f64.const 16) ) - (if - (i32.eq - (set_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) + ) + (if + (i32.eq + (set_local $1 + (i32.add + (get_local $1) + (i32.const -1) ) - (i32.const 0) ) - (br $while-out$60) + (i32.const 0) ) - (br $while-in$61) + (br $while-out$60) ) - (select - (f64.neg - (f64.add - (get_local $30) - (f64.sub - (f64.neg - (get_local $15) - ) - (get_local $30) + (br $while-in$61) + ) + (select + (f64.neg + (f64.add + (get_local $30) + (f64.sub + (f64.neg + (get_local $15) ) - ) - ) - (f64.sub - (f64.add - (get_local $15) (get_local $30) ) + ) + ) + (f64.sub + (f64.add + (get_local $15) (get_local $30) ) - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $9) - ) - (i32.const 24) + (get_local $30) + ) + (i32.eq + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $9) ) (i32.const 24) ) - (i32.const 45) + (i32.const 24) ) + (i32.const 45) ) ) ) ) - (set_local $5 - (i32.lt_s - (set_local $1 - (i32.load - (get_local $25) - ) + ) + (set_local $5 + (i32.lt_s + (set_local $1 + (i32.load + (get_local $25) ) - (i32.const 0) ) + (i32.const 0) ) - (set_local $5 - (i32.shr_s - (i32.shl - (i32.lt_s - (set_local $8 - (select - (i32.sub - (i32.const 0) - (get_local $1) - ) + ) + (set_local $5 + (i32.shr_s + (i32.shl + (i32.lt_s + (set_local $8 + (select + (i32.sub + (i32.const 0) (get_local $1) - (get_local $5) ) + (get_local $1) + (get_local $5) ) - (i32.const 0) ) - (i32.const 31) + (i32.const 0) ) (i32.const 31) ) + (i32.const 31) ) - (i32.store8 - (i32.add - (set_local $5 - (if - (i32.eq - (set_local $5 - (call $_fmt_u - (get_local $8) - (get_local $5) - (get_local $52) - ) + ) + (i32.store8 + (i32.add + (set_local $5 + (if + (i32.eq + (set_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 $52) + ) + (block + (i32.store8 (get_local $74) + (i32.const 48) ) - (get_local $5) + (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 -1) + ) + (i32.and + (i32.add + (i32.and + (i32.shr_s + (get_local $1) + (i32.const 31) ) - (i32.const 43) + (i32.const 2) ) - (i32.const 255) + (i32.const 43) ) + (i32.const 255) ) - (i32.store8 - (set_local $8 - (i32.add - (get_local $5) - (i32.const -2) - ) - ) - (i32.and - (i32.add - (get_local $26) - (i32.const 15) - ) - (i32.const 255) + ) + (i32.store8 + (set_local $8 + (i32.add + (get_local $5) + (i32.const -2) ) ) - (set_local $5 - (i32.lt_s - (get_local $10) - (i32.const 1) + (i32.and + (i32.add + (get_local $26) + (i32.const 15) ) + (i32.const 255) ) - (set_local $13 - (i32.eq - (i32.and - (get_local $18) - (i32.const 8) - ) - (i32.const 0) - ) + ) + (set_local $5 + (i32.lt_s + (get_local $10) + (i32.const 1) ) - (set_local $11 - (get_local $29) + ) + (set_local $13 + (i32.eq + (i32.and + (get_local $18) + (i32.const 8) + ) + (i32.const 0) ) - (loop $while-out$62 $while-in$63 - (i32.store8 - (get_local $11) - (i32.and - (i32.or - (i32.and - (i32.load8_s - (i32.add - (set_local $1 - (call_import $f64-to-int - (get_local $15) - ) + ) + (set_local $11 + (get_local $29) + ) + (loop $while-out$62 $while-in$63 + (i32.store8 + (get_local $11) + (i32.and + (i32.or + (i32.and + (i32.load8_s + (i32.add + (set_local $1 + (call_import $f64-to-int + (get_local $15) ) - (i32.const 4075) ) + (i32.const 4075) ) - (i32.const 255) ) - (get_local $6) + (i32.const 255) ) - (i32.const 255) + (get_local $6) ) + (i32.const 255) ) - (set_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_s/i32 - (get_local $1) - ) + ) + (set_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_s/i32 + (get_local $1) ) - (f64.const 16) ) + (f64.const 16) ) - (set_local $11 - (block $do-once$64 - (if - (i32.eq - (i32.sub - (set_local $1 - (i32.add - (get_local $11) - (i32.const 1) - ) + ) + (set_local $11 + (block $do-once$64 + (if + (i32.eq + (i32.sub + (set_local $1 + (i32.add + (get_local $11) + (i32.const 1) ) - (get_local $64) ) - (i32.const 1) + (get_local $64) ) - (block - (br_if $do-once$64 - (get_local $1) + (i32.const 1) + ) + (block + (br_if $do-once$64 + (get_local $1) + (i32.and + (get_local $13) (i32.and - (get_local $13) - (i32.and - (get_local $5) - (f64.eq - (get_local $15) - (f64.const 0) - ) + (get_local $5) + (f64.eq + (get_local $15) + (f64.const 0) ) ) ) - (i32.store8 - (get_local $1) - (i32.const 46) - ) - (i32.add - (get_local $11) - (i32.const 2) - ) ) - (get_local $1) + (i32.store8 + (get_local $1) + (i32.const 46) + ) + (i32.add + (get_local $11) + (i32.const 2) + ) ) + (get_local $1) ) ) - (if - (f64.eq - (get_local $15) - (f64.const 0) - ) - (block - (set_local $1 - (get_local $11) - ) - (br $while-out$62) + ) + (if + (f64.eq + (get_local $15) + (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) + (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) - (set_local $5 - (i32.add - (set_local $6 - (select + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $16) + (set_local $5 + (i32.add + (set_local $6 + (select + (i32.sub + (i32.add + (get_local $79) + (get_local $10) + ) + (get_local $8) + ) + (i32.add (i32.sub - (i32.add - (get_local $79) - (get_local $10) - ) + (get_local $77) (get_local $8) ) - (i32.add - (i32.sub - (get_local $77) - (get_local $8) - ) - (get_local $1) - ) - (get_local $5) + (get_local $1) ) + (get_local $5) ) - (get_local $7) ) + (get_local $7) ) - (get_local $18) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (get_local $18) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $9) - (get_local $7) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $9) + (get_local $7) (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) - ) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $16) + (get_local $5) + (i32.xor + (get_local $18) + (i32.const 65536) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + ) + (set_local $1 + (i32.sub + (get_local $1) + (get_local $64) + ) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $29) - (get_local $1) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $29) + (get_local $1) (get_local $0) - (i32.const 48) - (i32.sub - (get_local $6) - (i32.add - (get_local $1) - (set_local $1 - (i32.sub - (get_local $40) - (get_local $8) - ) + ) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.sub + (get_local $6) + (i32.add + (get_local $1) + (set_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) + (i32.const 0) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (get_local $1) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $8) + (get_local $1) (get_local $0) - (i32.const 32) + ) + ) + (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.xor - (get_local $18) - (i32.const 8192) - ) - ) - (br $do-once$56 - (select - (get_local $16) + (i32.lt_s (get_local $5) - (i32.lt_s - (get_local $5) - (get_local $16) - ) + (get_local $16) ) ) ) ) - (set_local $1 - (select - (i32.const 6) + ) + (set_local $1 + (select + (i32.const 6) + (get_local $10) + (i32.lt_s (get_local $10) - (i32.lt_s - (get_local $10) - (i32.const 0) - ) + (i32.const 0) ) ) - (set_local $62 - (set_local $9 - (select - (get_local $80) - (get_local $81) - (i32.lt_s - (if - (get_local $5) - (block - (i32.store - (get_local $25) - (set_local $5 - (i32.add - (i32.load - (get_local $25) - ) - (i32.const -28) + ) + (set_local $62 + (set_local $9 + (select + (get_local $80) + (get_local $81) + (i32.lt_s + (if + (get_local $5) + (block + (i32.store + (get_local $25) + (set_local $5 + (i32.add + (i32.load + (get_local $25) ) + (i32.const -28) ) ) - (set_local $15 - (f64.mul - (get_local $15) - (f64.const 268435456) - ) - ) - (get_local $5) ) - (i32.load - (get_local $25) + (set_local $15 + (f64.mul + (get_local $15) + (f64.const 268435456) + ) ) + (get_local $5) + ) + (i32.load + (get_local $25) ) - (i32.const 0) ) + (i32.const 0) ) ) ) - (set_local $7 - (get_local $9) - ) - (loop $while-out$66 $while-in$67 - (i32.store - (get_local $7) - (set_local $5 - (call_import $f64-to-int - (get_local $15) - ) + ) + (set_local $7 + (get_local $9) + ) + (loop $while-out$66 $while-in$67 + (i32.store + (get_local $7) + (set_local $5 + (call_import $f64-to-int + (get_local $15) ) ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) + ) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) - (if - (f64.eq - (set_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_u/i32 - (get_local $5) - ) + ) + (if + (f64.eq + (set_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_u/i32 + (get_local $5) ) - (f64.const 1e9) ) + (f64.const 1e9) ) - (f64.const 0) ) - (block - (set_local $6 - (get_local $7) - ) - (br $while-out$66) + (f64.const 0) + ) + (block + (set_local $6 + (get_local $7) ) + (br $while-out$66) ) - (br $while-in$67) ) - (if - (i32.gt_s - (set_local $5 - (i32.load - (get_local $25) - ) + (br $while-in$67) + ) + (if + (i32.gt_s + (set_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-out$68 $while-in$69 - (set_local $11 - (select - (i32.const 29) + (i32.const 0) + ) + (block + (set_local $8 + (get_local $9) + ) + (set_local $13 + (get_local $6) + ) + (loop $while-out$68 $while-in$69 + (set_local $11 + (select + (i32.const 29) + (get_local $5) + (i32.gt_s (get_local $5) - (i32.gt_s - (get_local $5) - (i32.const 29) - ) + (i32.const 29) ) ) - (set_local $7 - (block $do-once$70 - (if - (i32.lt_u - (set_local $7 - (i32.add - (get_local $13) - (i32.const -4) - ) + ) + (set_local $7 + (block $do-once$70 + (if + (i32.lt_u + (set_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-out$72 $while-in$73 - (set_local $6 - (call $___uremdi3 - (set_local $5 - (call $_i64Add - (call $_bitshift64Shl - (i32.load - (get_local $10) - ) - (i32.const 0) - (get_local $11) - ) + ) + (get_local $8) + (block + (set_local $5 + (i32.const 0) + ) + (set_local $10 + (get_local $7) + ) + (loop $while-out$72 $while-in$73 + (set_local $6 + (call $___uremdi3 + (set_local $5 + (call $_i64Add + (call $_bitshift64Shl (i32.load - (i32.const 168) + (get_local $10) ) - (get_local $5) (i32.const 0) + (get_local $11) ) - ) - (set_local $7 (i32.load (i32.const 168) ) + (get_local $5) + (i32.const 0) ) - (i32.const 1000000000) - (i32.const 0) - ) - ) - (i32.load - (i32.const 168) - ) - (i32.store - (get_local $10) - (get_local $6) - ) - (set_local $5 - (call $___udivdi3 - (get_local $5) - (get_local $7) - (i32.const 1000000000) - (i32.const 0) ) - ) - (i32.load - (i32.const 168) - ) - (if - (i32.lt_u - (set_local $7 - (i32.add - (get_local $10) - (i32.const -4) - ) + (set_local $7 + (i32.load + (i32.const 168) ) - (get_local $8) - ) - (br $while-out$72) - (set_local $10 - (get_local $7) ) + (i32.const 1000000000) + (i32.const 0) ) - (br $while-in$73) ) - (br_if $do-once$70 - (get_local $8) - (i32.eq + (i32.load + (i32.const 168) + ) + (i32.store + (get_local $10) + (get_local $6) + ) + (set_local $5 + (call $___udivdi3 (get_local $5) + (get_local $7) + (i32.const 1000000000) (i32.const 0) ) ) - (i32.store - (set_local $7 - (i32.add - (get_local $8) - (i32.const -4) + (i32.load + (i32.const 168) + ) + (if + (i32.lt_u + (set_local $7 + (i32.add + (get_local $10) + (i32.const -4) + ) ) + (get_local $8) ) + (br $while-out$72) + (set_local $10 + (get_local $7) + ) + ) + (br $while-in$73) + ) + (br_if $do-once$70 + (get_local $8) + (i32.eq (get_local $5) + (i32.const 0) ) - (get_local $7) ) - ) - ) - ) - (loop $while-out$74 $while-in$75 - (if - (i32.le_u - (get_local $13) - (get_local $7) - ) - (br $while-out$74) - ) - (if - (i32.eq - (i32.load - (set_local $5 + (i32.store + (set_local $7 (i32.add - (get_local $13) + (get_local $8) (i32.const -4) ) ) + (get_local $5) ) - (i32.const 0) - ) - (set_local $13 - (get_local $5) + (get_local $7) ) - (br $while-out$74) ) - (br $while-in$75) ) - (i32.store - (get_local $25) - (set_local $5 - (i32.sub - (i32.load - (get_local $25) - ) - (get_local $11) - ) + ) + (loop $while-out$74 $while-in$75 + (if + (i32.le_u + (get_local $13) + (get_local $7) ) + (br $while-out$74) ) (if - (i32.gt_s - (get_local $5) + (i32.eq + (i32.load + (set_local $5 + (i32.add + (get_local $13) + (i32.const -4) + ) + ) + ) (i32.const 0) ) - (set_local $8 - (get_local $7) + (set_local $13 + (get_local $5) ) - (block - (set_local $6 - (get_local $13) + (br $while-out$74) + ) + (br $while-in$75) + ) + (i32.store + (get_local $25) + (set_local $5 + (i32.sub + (i32.load + (get_local $25) ) - (br $while-out$68) + (get_local $11) ) ) - (br $while-in$69) ) - ) - (set_local $7 - (get_local $9) + (if + (i32.gt_s + (get_local $5) + (i32.const 0) + ) + (set_local $8 + (get_local $7) + ) + (block + (set_local $6 + (get_local $13) + ) + (br $while-out$68) + ) + ) + (br $while-in$69) ) ) - (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) + (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 -1) + (i32.const 9) ) - (i32.const 1) - ) - ) - (set_local $10 - (i32.eq - (get_local $14) - (i32.const 102) + (i32.const -1) ) + (i32.const 1) ) - (set_local $23 - (get_local $6) + ) + (set_local $10 + (i32.eq + (get_local $14) + (i32.const 102) ) - (loop $while-out$76 $while-in$77 - (set_local $5 - (i32.gt_s - (set_local $6 - (i32.sub - (i32.const 0) - (get_local $5) - ) + ) + (set_local $23 + (get_local $6) + ) + (loop $while-out$76 $while-in$77 + (set_local $5 + (i32.gt_s + (set_local $6 + (i32.sub + (i32.const 0) + (get_local $5) ) - (i32.const 9) ) + (i32.const 9) ) - (set_local $13 - (select - (i32.const 9) - (get_local $6) - (get_local $5) - ) + ) + (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) + ) + (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 $11 - (i32.const 0) - ) - (set_local $17 - (get_local $7) + ) + (set_local $27 + (i32.shr_u + (i32.const 1000000000) + (get_local $13) ) - (loop $while-out$80 $while-in$81 - (set_local $6 - (i32.and - (set_local $5 - (i32.load - (get_local $17) - ) + ) + (set_local $11 + (i32.const 0) + ) + (set_local $17 + (get_local $7) + ) + (loop $while-out$80 $while-in$81 + (set_local $6 + (i32.and + (set_local $5 + (i32.load + (get_local $17) ) - (get_local $70) ) + (get_local $70) ) - (i32.store - (get_local $17) - (i32.add - (i32.shr_u - (get_local $5) - (get_local $13) - ) - (get_local $11) + ) + (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) - ) + ) + (set_local $11 + (i32.mul + (get_local $6) + (get_local $27) ) - (if - (i32.ge_u - (set_local $17 - (i32.add - (get_local $17) - (i32.const 4) - ) + ) + (if + (i32.ge_u + (set_local $17 + (i32.add + (get_local $17) + (i32.const 4) ) - (get_local $23) ) - (br $while-out$80) + (get_local $23) ) - (br $while-in$81) + (br $while-out$80) ) - (set_local $5 - (select - (i32.add - (get_local $7) - (i32.const 4) - ) + (br $while-in$81) + ) + (set_local $5 + (select + (i32.add (get_local $7) - (i32.eq - (i32.load - (get_local $7) - ) - (i32.const 0) - ) + (i32.const 4) ) - ) - (if + (get_local $7) (i32.eq - (get_local $11) + (i32.load + (get_local $7) + ) (i32.const 0) ) - (br $do-once$78 - (get_local $5) - ) ) - (i32.store - (get_local $23) + ) + (if + (i32.eq (get_local $11) + (i32.const 0) ) - (set_local $23 - (i32.add - (get_local $23) - (i32.const 4) - ) + (br $do-once$78 + (get_local $5) ) - (get_local $5) ) - (select + (i32.store + (get_local $23) + (get_local $11) + ) + (set_local $23 (i32.add - (get_local $7) + (get_local $23) (i32.const 4) ) + ) + (get_local $5) + ) + (select + (i32.add (get_local $7) - (i32.eq - (i32.load - (get_local $7) - ) - (i32.const 0) + (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) - (set_local $7 - (select - (get_local $9) - (get_local $11) - (get_local $10) - ) + ) + (set_local $5 + (i32.gt_s + (i32.shr_s + (i32.sub + (get_local $23) + (set_local $7 + (select + (get_local $9) + (get_local $11) + (get_local $10) ) ) - (i32.const 2) ) - (get_local $8) + (i32.const 2) ) + (get_local $8) ) - (set_local $6 - (select - (i32.add - (get_local $7) - (i32.shl - (get_local $8) - (i32.const 2) - ) + ) + (set_local $6 + (select + (i32.add + (get_local $7) + (i32.shl + (get_local $8) + (i32.const 2) ) - (get_local $23) - (get_local $5) ) + (get_local $23) + (get_local $5) ) - (i32.store - (get_local $25) - (set_local $5 - (i32.add - (i32.load - (get_local $25) - ) - (get_local $13) + ) + (i32.store + (get_local $25) + (set_local $5 + (i32.add + (i32.load + (get_local $25) ) + (get_local $13) ) ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) + ) + (if + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + (block + (set_local $7 + (get_local $11) ) - (block - (set_local $7 - (get_local $11) - ) - (set_local $23 - (get_local $6) - ) + (set_local $23 + (get_local $6) ) - (block - (set_local $7 - (get_local $11) - ) - (set_local $27 - (get_local $6) - ) - (br $while-out$76) + ) + (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) + (br $while-in$77) ) ) - (block $do-once$82 - (if - (i32.lt_u - (get_local $7) - (get_local $27) + (set_local $27 + (get_local $6) + ) + ) + (block $do-once$82 + (if + (i32.lt_u + (get_local $7) + (get_local $27) + ) + (block + (set_local $6 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $62) + (get_local $7) + ) + (i32.const 2) + ) + (i32.const 9) + ) ) - (block - (set_local $6 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $62) - (get_local $7) - ) - (i32.const 2) + (if + (i32.lt_u + (set_local $5 + (i32.load + (get_local $7) ) - (i32.const 9) + ) + (i32.const 10) + ) + (block + (set_local $13 + (get_local $6) + ) + (br $do-once$82) + ) + (set_local $8 + (i32.const 10) + ) + ) + (loop $while-out$84 $while-in$85 + (set_local $6 + (i32.add + (get_local $6) + (i32.const 1) ) ) (if (i32.lt_u - (set_local $5 - (i32.load - (get_local $7) + (get_local $5) + (set_local $8 + (i32.mul + (get_local $8) + (i32.const 10) ) ) - (i32.const 10) ) (block (set_local $13 (get_local $6) ) - (br $do-once$82) - ) - (set_local $8 - (i32.const 10) + (br $while-out$84) ) ) - (loop $while-out$84 $while-in$85 - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (if - (i32.lt_u - (get_local $5) - (set_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) + (br $while-in$85) ) ) + (set_local $13 + (i32.const 0) + ) ) - (set_local $7 - (if - (i32.lt_s - (set_local $5 - (i32.add - (i32.sub - (get_local $1) - (select - (get_local $13) - (i32.const 0) - (i32.ne - (get_local $14) - (i32.const 102) - ) + ) + (set_local $7 + (if + (i32.lt_s + (set_local $5 + (i32.add + (i32.sub + (get_local $1) + (select + (get_local $13) + (i32.const 0) + (i32.ne + (get_local $14) + (i32.const 102) ) ) - (i32.shr_s - (i32.shl - (i32.and - (set_local $70 - (i32.ne - (get_local $1) - (i32.const 0) - ) + ) + (i32.shr_s + (i32.shl + (i32.and + (set_local $70 + (i32.ne + (get_local $1) + (i32.const 0) ) - (set_local $8 - (i32.eq - (get_local $14) - (i32.const 103) - ) + ) + (set_local $8 + (i32.eq + (get_local $14) + (i32.const 103) ) ) - (i32.const 31) ) (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.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $27) + (get_local $62) ) - (i32.const 9) + (i32.const 2) ) - (i32.const -9) + (i32.const 9) ) + (i32.const -9) ) - (block - (set_local $6 + ) + (block + (set_local $6 + (i32.add (i32.add + (get_local $9) + (i32.const 4) + ) + (i32.shl (i32.add - (get_local $9) - (i32.const 4) - ) - (i32.shl - (i32.add - (i32.and - (call_import $i32s-div - (set_local $5 - (i32.add - (get_local $5) - (i32.const 9216) - ) + (i32.and + (call_import $i32s-div + (set_local $5 + (i32.add + (get_local $5) + (i32.const 9216) ) - (i32.const 9) ) - (i32.const -1) + (i32.const 9) ) - (i32.const -1024) + (i32.const -1) ) - (i32.const 2) + (i32.const -1024) ) + (i32.const 2) ) ) - (if - (i32.lt_s - (set_local $11 - (i32.add - (i32.and - (call_import $i32s-rem - (get_local $5) - (i32.const 9) - ) - (i32.const -1) + ) + (if + (i32.lt_s + (set_local $11 + (i32.add + (i32.and + (call_import $i32s-rem + (get_local $5) + (i32.const 9) ) - (i32.const 1) + (i32.const -1) ) + (i32.const 1) ) - (i32.const 9) ) - (block + (i32.const 9) + ) + (block + (set_local $5 + (i32.const 10) + ) + (loop $while-out$86 $while-in$87 (set_local $5 - (i32.const 10) + (i32.mul + (get_local $5) + (i32.const 10) + ) ) - (loop $while-out$86 $while-in$87 - (set_local $5 - (i32.mul + (if + (i32.eq + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (i32.const 9) + ) + (block + (set_local $17 (get_local $5) - (i32.const 10) ) + (br $while-out$86) ) - (if + ) + (br $while-in$87) + ) + ) + (set_local $17 + (i32.const 10) + ) + ) + (block $do-once$88 + (if + (i32.eqz + (i32.and + (set_local $11 (i32.eq - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) + (i32.add + (get_local $6) + (i32.const 4) ) - (i32.const 9) + (get_local $27) ) - (block - (set_local $17 - (get_local $5) + ) + (i32.eq + (set_local $14 + (i32.and + (call_import $i32u-rem + (set_local $5 + (i32.load + (get_local $6) + ) + ) + (get_local $17) + ) + (i32.const -1) ) - (br $while-out$86) ) + (i32.const 0) ) - (br $while-in$87) ) ) - (set_local $17 - (i32.const 10) - ) - ) - (block $do-once$88 - (if - (i32.eqz - (i32.and - (set_local $11 - (i32.eq - (i32.add - (get_local $6) - (i32.const 4) - ) - (get_local $27) - ) - ) + (block + (set_local $15 + (select + (f64.const 9007199254740992) + (f64.const 9007199254740994) (i32.eq - (set_local $14 + (i32.and (i32.and - (call_import $i32u-rem - (set_local $5 - (i32.load - (get_local $6) - ) - ) + (call_import $i32u-div + (get_local $5) (get_local $17) ) (i32.const -1) ) + (i32.const 1) ) (i32.const 0) ) ) ) - (block - (set_local $15 - (select - (f64.const 9007199254740992) - (f64.const 9007199254740994) - (i32.eq + (set_local $30 + (if + (i32.lt_u + (get_local $14) + (set_local $10 (i32.and - (i32.and - (call_import $i32u-div - (get_local $5) - (get_local $17) - ) - (i32.const -1) + (call_import $i32s-div + (get_local $17) + (i32.const 2) ) - (i32.const 1) + (i32.const -1) ) - (i32.const 0) ) ) - ) - (set_local $30 - (if - (i32.lt_u - (get_local $14) - (set_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 $14) - (get_local $10) - ) + (f64.const 0.5) + (select + (f64.const 1) + (f64.const 1.5) + (i32.and + (get_local $11) + (i32.eq + (get_local $14) + (get_local $10) ) ) ) ) - (set_local $15 - (block $do-once$90 - (if - (i32.eq - (get_local $51) - (i32.const 0) - ) - (get_local $15) - (block - (if - (i32.ne - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $39) - ) - (i32.const 24) + ) + (set_local $15 + (block $do-once$90 + (if + (i32.eq + (get_local $51) + (i32.const 0) + ) + (get_local $15) + (block + (if + (i32.ne + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $39) ) (i32.const 24) ) - (i32.const 45) - ) - (br $do-once$90 - (get_local $15) + (i32.const 24) ) + (i32.const 45) ) - (set_local $30 - (f64.neg - (get_local $30) - ) + (br $do-once$90 + (get_local $15) ) + ) + (set_local $30 (f64.neg - (get_local $15) + (get_local $30) ) ) + (f64.neg + (get_local $15) + ) ) ) ) - (i32.store - (get_local $6) - (set_local $5 - (i32.sub - (get_local $5) - (get_local $14) - ) + ) + (i32.store + (get_local $6) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $14) ) ) - (if - (f64.eq - (f64.add - (get_local $15) - (get_local $30) - ) + ) + (if + (f64.eq + (f64.add (get_local $15) + (get_local $30) ) - (br $do-once$88) + (get_local $15) ) - (i32.store - (get_local $6) - (set_local $5 - (i32.add - (get_local $5) - (get_local $17) - ) + (br $do-once$88) + ) + (i32.store + (get_local $6) + (set_local $5 + (i32.add + (get_local $5) + (get_local $17) ) ) - (if - (i32.gt_u - (get_local $5) - (i32.const 999999999) + ) + (if + (i32.gt_u + (get_local $5) + (i32.const 999999999) + ) + (loop $while-out$92 $while-in$93 + (i32.store + (get_local $6) + (i32.const 0) ) - (loop $while-out$92 $while-in$93 - (i32.store - (get_local $6) - (i32.const 0) - ) - (set_local $7 - (if - (i32.lt_u - (set_local $6 - (i32.add - (get_local $6) - (i32.const -4) - ) + (set_local $7 + (if + (i32.lt_u + (set_local $6 + (i32.add + (get_local $6) + (i32.const -4) ) - (get_local $7) ) - (block - (i32.store - (set_local $5 - (i32.add - (get_local $7) - (i32.const -4) - ) + (get_local $7) + ) + (block + (i32.store + (set_local $5 + (i32.add + (get_local $7) + (i32.const -4) ) - (i32.const 0) ) - (get_local $5) + (i32.const 0) ) - (get_local $7) + (get_local $5) ) + (get_local $7) ) - (i32.store - (get_local $6) - (set_local $5 - (i32.add - (i32.load - (get_local $6) - ) - (i32.const 1) + ) + (i32.store + (get_local $6) + (set_local $5 + (i32.add + (i32.load + (get_local $6) ) + (i32.const 1) ) ) - (if - (i32.le_u - (get_local $5) - (i32.const 999999999) - ) - (br $while-out$92) + ) + (if + (i32.le_u + (get_local $5) + (i32.const 999999999) ) - (br $while-in$93) + (br $while-out$92) ) + (br $while-in$93) ) - (set_local $11 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $62) - (get_local $7) - ) - (i32.const 2) + ) + (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 + (set_local $5 + (i32.load + (get_local $7) ) - (i32.const 9) + ) + (i32.const 10) + ) + (block + (set_local $13 + (get_local $11) + ) + (br $do-once$88) + ) + (set_local $10 + (i32.const 10) + ) + ) + (loop $while-out$94 $while-in$95 + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) ) ) (if (i32.lt_u - (set_local $5 - (i32.load - (get_local $7) + (get_local $5) + (set_local $10 + (i32.mul + (get_local $10) + (i32.const 10) ) ) - (i32.const 10) ) (block (set_local $13 (get_local $11) ) - (br $do-once$88) - ) - (set_local $10 - (i32.const 10) + (br $while-out$94) ) ) - (loop $while-out$94 $while-in$95 - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (if - (i32.lt_u - (get_local $5) - (set_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) - ) + (br $while-in$95) ) ) ) - (set_local $6 - (i32.gt_u - (get_local $27) - (set_local $5 - (i32.add - (get_local $6) - (i32.const 4) - ) + ) + (set_local $6 + (i32.gt_u + (get_local $27) + (set_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 + (set_local $6 + (select + (get_local $5) (get_local $27) + (get_local $6) ) - (get_local $7) ) + (get_local $7) ) - ) - (set_local $27 - (i32.sub - (i32.const 0) - (get_local $13) + (block + (set_local $6 + (get_local $27) + ) + (get_local $7) ) ) - (loop $while-out$96 $while-in$97 - (if - (i32.le_u - (get_local $6) - (get_local $7) + ) + (set_local $27 + (i32.sub + (i32.const 0) + (get_local $13) + ) + ) + (loop $while-out$96 $while-in$97 + (if + (i32.le_u + (get_local $6) + (get_local $7) + ) + (block + (set_local $11 + (i32.const 0) ) - (block - (set_local $11 - (i32.const 0) - ) - (set_local $23 - (get_local $6) - ) - (br $while-out$96) + (set_local $23 + (get_local $6) ) + (br $while-out$96) ) - (if - (i32.eq - (i32.load - (set_local $5 - (i32.add - (get_local $6) - (i32.const -4) - ) + ) + (if + (i32.eq + (i32.load + (set_local $5 + (i32.add + (get_local $6) + (i32.const -4) ) ) - (i32.const 0) ) - (set_local $6 - (get_local $5) + (i32.const 0) + ) + (set_local $6 + (get_local $5) + ) + (block + (set_local $11 + (i32.const 1) ) - (block - (set_local $11 - (i32.const 1) - ) - (set_local $23 - (get_local $6) - ) - (br $while-out$96) + (set_local $23 + (get_local $6) ) + (br $while-out$96) ) - (br $while-in$97) ) - (set_local $8 - (block $do-once$98 - (if - (get_local $8) - (block - (set_local $8 - (if - (i32.and - (i32.gt_s - (set_local $1 - (i32.add - (i32.xor - (i32.and - (get_local $70) - (i32.const 1) - ) + (br $while-in$97) + ) + (set_local $8 + (block $do-once$98 + (if + (get_local $8) + (block + (set_local $8 + (if + (i32.and + (i32.gt_s + (set_local $1 + (i32.add + (i32.xor + (i32.and + (get_local $70) (i32.const 1) ) - (get_local $1) + (i32.const 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) ) + (get_local $13) ) - (block - (set_local $10 - (i32.add - (get_local $26) - (i32.const -2) - ) - ) + (i32.gt_s + (get_local $13) + (i32.const -5) + ) + ) + (block + (set_local $10 (i32.add - (get_local $1) + (get_local $26) (i32.const -1) ) ) - ) - ) - (if - (i32.ne - (set_local $1 - (i32.and - (get_local $18) - (i32.const 8) + (i32.sub + (i32.add + (get_local $1) + (i32.const -1) ) + (get_local $13) ) - (i32.const 0) ) (block - (set_local $14 - (get_local $8) - ) - (set_local $26 - (get_local $10) + (set_local $10 + (i32.add + (get_local $26) + (i32.const -2) + ) ) - (br $do-once$98 + (i32.add (get_local $1) + (i32.const -1) ) ) ) - (block $do-once$100 - (if - (get_local $11) - (block - (if - (i32.eq - (set_local $1 - (i32.load - (i32.add - (get_local $23) - (i32.const -4) - ) + ) + (if + (i32.ne + (set_local $1 + (i32.and + (get_local $18) + (i32.const 8) + ) + ) + (i32.const 0) + ) + (block + (set_local $14 + (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 + (set_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) ) + (i32.const 0) ) - (if - (i32.eq - (i32.and - (call_import $i32u-rem - (get_local $1) - (i32.const 10) - ) - (i32.const -1) - ) - (i32.const 0) + (block + (set_local $6 + (i32.const 9) ) - (block - (set_local $5 + (br $do-once$100) + ) + ) + (if + (i32.eq + (i32.and + (call_import $i32u-rem + (get_local $1) (i32.const 10) ) - (set_local $6 - (i32.const 0) - ) + (i32.const -1) ) - (block - (set_local $6 - (i32.const 0) - ) - (br $do-once$100) + (i32.const 0) + ) + (block + (set_local $5 + (i32.const 10) + ) + (set_local $6 + (i32.const 0) ) ) - (loop $while-out$102 $while-in$103 + (block (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) + (i32.const 0) ) - (if - (i32.ne - (i32.and - (call_import $i32u-rem - (get_local $1) - (set_local $5 - (i32.mul - (get_local $5) - (i32.const 10) - ) + (br $do-once$100) + ) + ) + (loop $while-out$102 $while-in$103 + (set_local $6 + (i32.add + (get_local $6) + (i32.const 1) + ) + ) + (if + (i32.ne + (i32.and + (call_import $i32u-rem + (get_local $1) + (set_local $5 + (i32.mul + (get_local $5) + (i32.const 10) ) ) - (i32.const -1) ) - (i32.const 0) + (i32.const -1) ) - (br $while-out$102) + (i32.const 0) ) - (br $while-in$103) + (br $while-out$102) ) + (br $while-in$103) ) - (set_local $6 - (i32.const 9) - ) + ) + (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) + ) + (set_local $1 + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $23) + (get_local $62) ) - (i32.const 9) + (i32.const 2) ) - (i32.const -9) + (i32.const 9) ) + (i32.const -9) ) - (if - (i32.eq - (i32.or - (get_local $10) - (i32.const 32) - ) - (i32.const 102) + ) + (if + (i32.eq + (i32.or + (get_local $10) + (i32.const 32) ) - (block - (set_local $1 - (i32.lt_s - (set_local $5 - (i32.sub - (get_local $1) - (get_local $6) - ) + (i32.const 102) + ) + (block + (set_local $1 + (i32.lt_s + (set_local $5 + (i32.sub + (get_local $1) + (get_local $6) ) - (i32.const 0) ) + (i32.const 0) ) - (set_local $5 - (i32.lt_s - (get_local $8) - (set_local $1 - (select - (i32.const 0) - (get_local $5) - (get_local $1) - ) + ) + (set_local $5 + (i32.lt_s + (get_local $8) + (set_local $1 + (select + (i32.const 0) + (get_local $5) + (get_local $1) ) ) ) - (set_local $14 - (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 - (set_local $5 - (i32.sub - (i32.add - (get_local $1) - (get_local $13) - ) - (get_local $6) - ) - ) - (i32.const 0) - ) + (set_local $14 + (select + (get_local $8) + (get_local $1) + (get_local $5) ) - (set_local $5 - (i32.lt_s - (get_local $8) - (set_local $1 - (select - (i32.const 0) - (get_local $5) + ) + (set_local $26 + (get_local $10) + ) + (i32.const 0) + ) + (block + (set_local $1 + (i32.lt_s + (set_local $5 + (i32.sub + (i32.add (get_local $1) + (get_local $13) ) + (get_local $6) ) ) + (i32.const 0) ) - (set_local $14 - (select - (get_local $8) - (get_local $1) - (get_local $5) + ) + (set_local $5 + (i32.lt_s + (get_local $8) + (set_local $1 + (select + (i32.const 0) + (get_local $5) + (get_local $1) + ) ) ) - (set_local $26 - (get_local $10) + ) + (set_local $14 + (select + (get_local $8) + (get_local $1) + (get_local $5) ) - (i32.const 0) ) + (set_local $26 + (get_local $10) + ) + (i32.const 0) ) ) - (block - (set_local $14 - (get_local $1) - ) - (i32.and - (get_local $18) - (i32.const 8) - ) + ) + (block + (set_local $14 + (get_local $1) + ) + (i32.and + (get_local $18) + (i32.const 8) ) ) ) ) - (set_local $17 - (i32.and - (i32.ne - (set_local $1 - (i32.or - (get_local $14) - (get_local $8) - ) + ) + (set_local $17 + (i32.and + (i32.ne + (set_local $1 + (i32.or + (get_local $14) + (get_local $8) ) - (i32.const 0) ) - (i32.const 1) + (i32.const 0) ) + (i32.const 1) ) - (set_local $13 - (if - (set_local $10 - (i32.eq - (i32.or - (get_local $26) - (i32.const 32) - ) - (i32.const 102) + ) + (set_local $13 + (if + (set_local $10 + (i32.eq + (i32.or + (get_local $26) + (i32.const 32) ) + (i32.const 102) ) - (block - (set_local $6 - (select + ) + (block + (set_local $6 + (select + (get_local $13) + (i32.const 0) + (i32.gt_s (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 - (set_local $6 - (select - (get_local $27) + (i32.const 0) + ) + (block + (set_local $5 + (i32.shr_s + (i32.shl + (i32.lt_s + (set_local $6 + (select + (get_local $27) + (get_local $13) + (i32.lt_s (get_local $13) - (i32.lt_s - (get_local $13) - (i32.const 0) - ) + (i32.const 0) ) ) - (i32.const 0) ) - (i32.const 31) + (i32.const 0) ) (i32.const 31) ) + (i32.const 31) ) - (if - (i32.lt_s - (i32.sub - (get_local $40) - (set_local $5 - (call $_fmt_u - (get_local $6) - (get_local $5) - (get_local $52) - ) + ) + (if + (i32.lt_s + (i32.sub + (get_local $40) + (set_local $5 + (call $_fmt_u + (get_local $6) + (get_local $5) + (get_local $52) ) ) - (i32.const 2) ) - (loop $while-out$104 $while-in$105 - (i32.store8 - (set_local $5 - (i32.add - (get_local $5) - (i32.const -1) - ) + (i32.const 2) + ) + (loop $while-out$104 $while-in$105 + (i32.store8 + (set_local $5 + (i32.add + (get_local $5) + (i32.const -1) ) - (i32.const 48) ) - (if - (i32.lt_s - (i32.sub - (get_local $40) - (get_local $5) - ) - (i32.const 2) + (i32.const 48) + ) + (if + (i32.lt_s + (i32.sub + (get_local $40) + (get_local $5) ) - (get_local $5) - (br $while-out$104) + (i32.const 2) ) - (br $while-in$105) + (get_local $5) + (br $while-out$104) ) + (br $while-in$105) + ) + (get_local $5) + ) + (i32.store8 + (i32.add (get_local $5) + (i32.const -1) ) - (i32.store8 + (i32.and (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.and + (i32.shr_s + (get_local $13) + (i32.const 31) ) - (i32.const 43) - ) - (i32.const 255) - ) - ) - (i32.store8 - (set_local $5 - (i32.add - (get_local $5) - (i32.const -2) + (i32.const 2) ) + (i32.const 43) ) - (i32.and - (get_local $26) - (i32.const 255) - ) + (i32.const 255) ) - (set_local $6 - (i32.sub - (get_local $40) + ) + (i32.store8 + (set_local $5 + (i32.add (get_local $5) + (i32.const -2) ) ) - (get_local $5) + (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) - (set_local $6 + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $16) + (set_local $6 + (i32.add (i32.add (i32.add (i32.add - (i32.add - (get_local $51) - (i32.const 1) - ) - (get_local $14) + (get_local $51) + (i32.const 1) ) - (get_local $17) + (get_local $14) ) - (get_local $6) + (get_local $17) ) + (get_local $6) ) - (get_local $18) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (get_local $18) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $39) - (get_local $51) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $39) + (get_local $51) (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 - (set_local $8 - (select - (get_local $9) + ) + (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 + (set_local $8 + (select + (get_local $9) + (get_local $7) + (i32.gt_u (get_local $7) - (i32.gt_u - (get_local $7) - (get_local $9) - ) + (get_local $9) ) ) ) - (loop $while-out$108 $while-in$109 - (set_local $5 - (call $_fmt_u - (i32.load - (get_local $7) - ) - (i32.const 0) - (get_local $45) + ) + (loop $while-out$108 $while-in$109 + (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 $do-once$110 + (if + (i32.eq + (get_local $7) + (get_local $8) + ) + (block + (if + (i32.ne + (get_local $5) + (get_local $45) + ) + (br $do-once$110) ) - (block - (if - (i32.ne - (get_local $5) - (get_local $45) - ) - (br $do-once$110) + (i32.store8 + (get_local $53) + (i32.const 48) + ) + (set_local $5 + (get_local $53) + ) + ) + (block + (if + (i32.gt_u + (get_local $5) + (get_local $29) ) + (get_local $5) + (br $do-once$110) + ) + (loop $while-out$112 $while-in$113 (i32.store8 - (get_local $53) + (set_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) (i32.const 48) ) - (set_local $5 - (get_local $53) - ) - ) - (block (if (i32.gt_u (get_local $5) (get_local $29) ) (get_local $5) - (br $do-once$110) - ) - (loop $while-out$112 $while-in$113 - (i32.store8 - (set_local $5 - (i32.add - (get_local $5) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (if - (i32.gt_u - (get_local $5) - (get_local $29) - ) - (get_local $5) - (br $while-out$112) - ) - (br $while-in$113) + (br $while-out$112) ) + (br $while-in$113) ) ) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 32) ) - (call $___fwritex + (i32.const 0) + ) + (call $___fwritex + (get_local $5) + (i32.sub + (get_local $75) (get_local $5) - (i32.sub - (get_local $75) - (get_local $5) - ) - (get_local $0) ) + (get_local $0) ) - (if - (i32.gt_u - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) - ) - (get_local $9) - ) - (block - (set_local $5 + ) + (if + (i32.gt_u + (set_local $7 + (i32.add (get_local $7) + (i32.const 4) ) - (br $while-out$108) ) - (get_local $7) + (get_local $9) ) - (br $while-in$109) - ) - (block $do-once$114 - (if - (i32.ne - (get_local $1) - (i32.const 0) + (block + (set_local $5 + (get_local $7) ) - (block - (br_if $do-once$114 - (i32.ne - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (br $while-out$108) + ) + (get_local $7) + ) + (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 0) + (i32.const 32) ) - ) - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) + (i32.const 0) ) ) + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) ) ) - (if - (i32.and - (i32.gt_s - (get_local $14) - (i32.const 0) - ) - (i32.lt_u - (get_local $5) - (get_local $23) - ) + ) + (if + (i32.and + (i32.gt_s + (get_local $14) + (i32.const 0) ) - (loop $while-out$116 $while-in$117 - (if - (i32.gt_u - (set_local $1 - (call $_fmt_u - (i32.load - (get_local $5) - ) - (i32.const 0) - (get_local $45) + (i32.lt_u + (get_local $5) + (get_local $23) + ) + ) + (loop $while-out$116 $while-in$117 + (if + (i32.gt_u + (set_local $1 + (call $_fmt_u + (i32.load + (get_local $5) ) + (i32.const 0) + (get_local $45) ) - (get_local $29) ) - (loop $while-out$118 $while-in$119 - (i32.store8 - (set_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (if - (i32.gt_u + (get_local $29) + ) + (loop $while-out$118 $while-in$119 + (i32.store8 + (set_local $1 + (i32.add (get_local $1) - (get_local $29) + (i32.const -1) ) - (get_local $1) - (br $while-out$118) ) - (br $while-in$119) + (i32.const 48) ) - (get_local $1) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (if + (i32.gt_u + (get_local $1) + (get_local $29) ) - (i32.const 0) - ) - (call $___fwritex (get_local $1) - (select - (i32.const 9) - (get_local $14) - (i32.gt_s - (get_local $14) - (i32.const 9) - ) - ) - (get_local $0) + (br $while-out$118) ) + (br $while-in$119) ) - (set_local $1 - (i32.add - (get_local $14) - (i32.const -9) + (get_local $1) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) + (i32.const 0) ) - (if - (i32.and + (call $___fwritex + (get_local $1) + (select + (i32.const 9) + (get_local $14) (i32.gt_s (get_local $14) (i32.const 9) ) - (i32.lt_u - (set_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) + ) + (get_local $0) + ) + ) + (set_local $1 + (i32.add + (get_local $14) + (i32.const -9) + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $14) + (i32.const 9) + ) + (i32.lt_u + (set_local $5 + (i32.add + (get_local $5) + (i32.const 4) ) - (get_local $23) ) + (get_local $23) ) + ) + (set_local $14 + (get_local $1) + ) + (block (set_local $14 (get_local $1) ) - (block - (set_local $14 - (get_local $1) - ) - (br $while-out$116) - ) + (br $while-out$116) ) - (br $while-in$117) ) + (br $while-in$117) + ) + (get_local $14) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add (get_local $14) + (i32.const 9) ) - (call $_pad - (get_local $0) - (i32.const 48) + (i32.const 9) + (i32.const 0) + ) + ) + (block + (set_local $11 + (select + (get_local $23) (i32.add - (get_local $14) - (i32.const 9) + (get_local $7) + (i32.const 4) ) - (i32.const 9) - (i32.const 0) + (get_local $11) ) ) - (block - (set_local $11 - (select - (get_local $23) - (i32.add - (get_local $7) - (i32.const 4) + (if + (i32.gt_s + (get_local $14) + (i32.const -1) + ) + (block + (set_local $9 + (i32.eq + (get_local $8) + (i32.const 0) ) - (get_local $11) ) - ) - (if - (i32.gt_s - (get_local $14) - (i32.const -1) + (set_local $5 + (get_local $7) ) - (block - (set_local $9 - (i32.eq - (get_local $8) - (i32.const 0) - ) - ) - (set_local $5 - (get_local $7) - ) - (loop $while-out$120 $while-in$121 - (set_local $8 - (if - (i32.eq - (set_local $1 - (call $_fmt_u - (i32.load - (get_local $5) - ) - (i32.const 0) - (get_local $45) + (loop $while-out$120 $while-in$121 + (set_local $8 + (if + (i32.eq + (set_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 $45) + ) + (block + (i32.store8 (get_local $53) + (i32.const 48) ) - (get_local $1) + (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) - ) + ) + (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) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 32) ) - (call $___fwritex - (get_local $8) + (i32.const 0) + ) + (call $___fwritex + (get_local $8) + (i32.const 1) + (get_local $0) + ) + ) + (if + (i32.and + (get_local $9) + (i32.lt_s + (get_local $14) (i32.const 1) - (get_local $0) ) ) - (if + (br $do-once$122) + ) + (if + (i32.ne (i32.and - (get_local $9) - (i32.lt_s - (get_local $14) - (i32.const 1) + (i32.load + (get_local $0) ) + (i32.const 32) ) - (br $do-once$122) + (i32.const 0) ) - (if - (i32.ne - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (br $do-once$122) + (br $do-once$122) + ) + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) + ) + (block + (if + (i32.gt_u + (get_local $8) + (get_local $29) ) - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) + (set_local $1 + (get_local $8) ) - ) - (block - (if - (i32.gt_u - (get_local $8) - (get_local $29) - ) + (block (set_local $1 (get_local $8) ) - (block - (set_local $1 - (get_local $8) - ) - (br $do-once$122) - ) + (br $do-once$122) ) - (loop $while-out$124 $while-in$125 - (i32.store8 - (set_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (if - (i32.gt_u + ) + (loop $while-out$124 $while-in$125 + (i32.store8 + (set_local $1 + (i32.add (get_local $1) - (get_local $29) + (i32.const -1) ) + ) + (i32.const 48) + ) + (if + (i32.gt_u (get_local $1) - (br $while-out$124) + (get_local $29) ) - (br $while-in$125) + (get_local $1) + (br $while-out$124) ) + (br $while-in$125) ) ) ) - (set_local $8 - (i32.sub - (get_local $75) - (get_local $1) - ) + ) + (set_local $8 + (i32.sub + (get_local $75) + (get_local $1) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 32) ) - (call $___fwritex - (get_local $1) - (select - (get_local $8) + (i32.const 0) + ) + (call $___fwritex + (get_local $1) + (select + (get_local $8) + (get_local $14) + (i32.gt_s (get_local $14) - (i32.gt_s - (get_local $14) - (get_local $8) - ) + (get_local $8) ) - (get_local $0) ) + (get_local $0) ) - (if - (i32.eqz - (i32.and - (i32.lt_u - (set_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) + ) + (if + (i32.eqz + (i32.and + (i32.lt_u + (set_local $5 + (i32.add + (get_local $5) + (i32.const 4) ) - (get_local $11) ) - (i32.gt_s - (set_local $14 - (i32.sub - (get_local $14) - (get_local $8) - ) + (get_local $11) + ) + (i32.gt_s + (set_local $14 + (i32.sub + (get_local $14) + (get_local $8) ) - (i32.const -1) ) + (i32.const -1) ) ) - (br $while-out$120) ) - (br $while-in$121) + (br $while-out$120) ) + (br $while-in$121) ) - (get_local $14) ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $14) - (i32.const 18) - ) + (get_local $14) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $14) (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 18) + (i32.const 0) + ) + (br_if $do-once$106 + (i32.ne + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 32) ) + (i32.const 0) ) - (call $___fwritex + ) + (call $___fwritex + (get_local $13) + (i32.sub + (get_local $40) (get_local $13) - (i32.sub - (get_local $40) - (get_local $13) - ) - (get_local $0) ) + (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) - ) + ) + (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) + ) + (select + (get_local $16) + (get_local $6) + (i32.lt_s (get_local $6) - (i32.lt_s - (get_local $6) - (get_local $16) - ) + (get_local $16) ) ) - (block - (set_local $5 - (select - (i32.const 4127) - (i32.const 4131) - (set_local $8 - (i32.ne - (i32.and - (get_local $26) - (i32.const 32) - ) - (i32.const 0) + ) + (block + (set_local $5 + (select + (i32.const 4127) + (i32.const 4131) + (set_local $8 + (i32.ne + (i32.and + (get_local $26) + (i32.const 32) ) + (i32.const 0) ) ) ) - (set_local $6 - (select - (i32.const 0) - (get_local $51) - (set_local $1 - (i32.or - (f64.ne - (get_local $15) - (get_local $15) - ) - (i32.const 0) + ) + (set_local $6 + (select + (i32.const 0) + (get_local $51) + (set_local $1 + (i32.or + (f64.ne + (get_local $15) + (get_local $15) ) + (i32.const 0) ) ) ) - (set_local $8 + ) + (set_local $8 + (select (select - (select - (i32.const 4135) - (i32.const 4139) - (get_local $8) - ) - (get_local $5) - (get_local $1) + (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) - (set_local $5 - (i32.add - (get_local $6) - (i32.const 3) - ) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $16) + (set_local $5 + (i32.add + (get_local $6) + (i32.const 3) ) - (get_local $7) ) - (if - (i32.eq - (i32.and - (if - (i32.eq - (i32.and - (set_local $1 - (i32.load - (get_local $0) - ) + (get_local $7) + ) + (if + (i32.eq + (i32.and + (if + (i32.eq + (i32.and + (set_local $1 + (i32.load + (get_local $0) ) - (i32.const 32) ) - (i32.const 0) + (i32.const 32) ) - (block - (call $___fwritex - (get_local $39) - (get_local $6) - (get_local $0) - ) - (i32.load - (get_local $0) - ) + (i32.const 0) + ) + (block + (call $___fwritex + (get_local $39) + (get_local $6) + (get_local $0) + ) + (i32.load + (get_local $0) ) - (get_local $1) ) - (i32.const 32) + (get_local $1) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (i32.const 3) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $8) + (i32.const 3) (get_local $0) - (i32.const 32) - (get_local $16) - (get_local $5) - (i32.xor - (get_local $18) - (i32.const 8192) - ) ) - (select - (get_local $16) + ) + (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) - (i32.lt_s - (get_local $5) - (get_local $16) - ) + (get_local $16) ) ) ) ) ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) - ) - (set_local $47 - (get_local $20) - ) - (set_local $37 - (get_local $18) - ) - (set_local $42 - (get_local $10) ) - (set_local $43 - (i32.const 0) - ) - (set_local $48 - (i32.const 4091) - ) - (set_local $49 - (get_local $28) + (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 diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise index a050ce072..ee84765a1 100644 --- a/test/emcc_hello_world.fromasm.imprecise +++ b/test/emcc_hello_world.fromasm.imprecise @@ -4383,3458 +4383,3438 @@ ) ) ) - (block $label$break$L75 - (block $switch$24 - (block $switch-default$127 - (block $switch-case$126 - (block $switch-case$55 - (block $switch-case$54 - (block $switch-case$53 - (block $switch-case$52 - (block $switch-case$51 - (block $switch-case$50 - (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$42 - (block $switch-case$41 - (block $switch-case$40 - (block $switch-case$37 - (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$52 $switch-case$51 $switch-case$50 $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$53 $switch-default$127 $switch-case$44 $switch-case$42 $switch-case$126 $switch-case$55 $switch-case$54 $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$37 $switch-default$127 - (i32.sub - (set_local $26 - (select - (i32.and - (get_local $1) - (i32.const -33) - ) - (get_local $1) - (get_local $5) - ) - ) - (i32.const 65) - ) - ) - ) - (block $switch-default$33 - (block $switch-case$32 - (block $switch-case$31 - (block $switch-case$30 - (block $switch-case$29 - (block $switch-case$28 - (block $switch-case$27 - (block $switch-case$26 - (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33 - (i32.sub - (get_local $13) - (i32.const 0) - ) - ) - ) - (i32.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 - (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 - (set_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) - ) - (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 - (set_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) + (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 + (set_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) ) - (br $switch$24) ) ) - (set_local $46 - (get_local $18) + (i32.store + (i32.load + (get_local $19) + ) + (get_local $22) ) - (set_local $57 - (get_local $10) + (set_local $20 + (get_local $9) ) - (set_local $68 - (get_local $26) + (set_local $1 + (get_local $17) ) - (set_local $12 - (i32.const 64) + (set_local $8 + (get_local $21) ) - (br $switch$24) + (br $label$continue$L1) ) - (if - (i32.and - (i32.eq - (set_local $5 - (i32.load - (set_local $1 - (get_local $19) - ) - ) - ) - (i32.const 0) - ) - (i32.eq - (set_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-out$38 $while-in$39 - (i32.store8 - (set_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) - ) - ) - (if - (i32.and - (i32.eq - (set_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $1) - (i32.const 3) - ) - ) - (i32.const 0) - ) - (i32.eq - (set_local $1 - (i32.load - (i32.const 168) - ) - ) - (i32.const 0) - ) - ) - (br $while-out$38) - ) - (br $while-in$39) - ) + (i32.store + (i32.load + (get_local $19) ) + (get_local $22) ) - (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) - (set_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) - ) - ) + (set_local $20 + (get_local $9) ) - (br $switch$24) - ) - ) - (set_local $5 - (i32.load (set_local $1 - (get_local $19) + (get_local $17) ) - ) - ) - (if - (i32.lt_s - (set_local $33 - (i32.load offset=4 - (get_local $1) - ) + (set_local $8 + (get_local $21) ) - (i32.const 0) + (br $label$continue$L1) ) - (block + (i32.store (set_local $1 - (call $_i64Subtract - (i32.const 0) - (i32.const 0) - (get_local $5) - (get_local $33) - ) - ) - (set_local $5 (i32.load - (i32.const 168) - ) - ) - (i32.store - (set_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 $label$break$L75) + (get_local $22) ) - ) - (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 - (set_local $6 - (i32.and - (get_local $18) - (i32.const 1) - ) - ) - (i32.const 0) - ) + (i32.store offset=4 + (get_local $1) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $22) + (i32.const 0) ) + (i32.const 31) ) - (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) + (i32.const 31) ) ) - ) - (br $switch$24) - ) - (set_local $33 - (i32.load + (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) ) - (set_local $59 - (i32.load offset=4 - (get_local $1) + (i32.store8 + (i32.load + (get_local $19) + ) + (i32.and + (get_local $22) + (i32.const 255) ) ) - (set_local $60 - (i32.const 0) + (set_local $20 + (get_local $9) ) - (set_local $61 - (i32.const 4091) + (set_local $1 + (get_local $17) ) - (set_local $12 - (i32.const 76) + (set_local $8 + (get_local $21) ) - (br $switch$24) + (br $label$continue$L1) ) - (set_local $5 + (i32.store (i32.load - (set_local $1 - (get_local $19) - ) + (get_local $19) ) + (get_local $22) ) - (i32.load offset=4 - (get_local $1) - ) - (i32.store8 - (get_local $72) - (i32.and - (get_local $5) - (i32.const 255) - ) + (set_local $20 + (get_local $9) ) - (set_local $47 - (get_local $72) + (set_local $1 + (get_local $17) ) - (set_local $37 - (get_local $7) + (set_local $8 + (get_local $21) ) - (set_local $42 - (i32.const 1) + (br $label$continue$L1) + ) + (i32.store + (set_local $1 + (i32.load + (get_local $19) + ) ) - (set_local $43 - (i32.const 0) + (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 $48 - (i32.const 4091) + ) + (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 + (set_local $5 + (i32.load + (set_local $1 + (get_local $19) ) - (set_local $49 - (get_local $28) + ) + ) + (i32.const 0) + ) + (i32.eq + (set_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-out$38 $while-in$39 + (i32.store8 + (set_local $6 + (i32.add + (get_local $6) + (i32.const -1) ) - (br $switch$24) ) - (set_local $50 - (call $_strerror - (i32.load - (call $___errno_location) + (i32.and + (i32.or + (i32.and + (get_local $5) + (i32.const 7) ) + (i32.const 48) ) + (i32.const 255) ) - (set_local $12 - (i32.const 82) + ) + (if + (i32.and + (i32.eq + (set_local $5 + (call $_bitshift64Lshr + (get_local $5) + (get_local $1) + (i32.const 3) + ) + ) + (i32.const 0) + ) + (i32.eq + (set_local $1 + (i32.load + (i32.const 168) + ) + ) + (i32.const 0) + ) ) - (br $switch$24) + (br $while-out$38) ) + (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.ne + (i32.lt_s + (get_local $10) (set_local $1 - (i32.load - (get_local $19) + (i32.add + (i32.sub + (get_local $71) + (get_local $6) + ) + (i32.const 1) ) ) - (i32.const 0) ) ) - (set_local $50 + (set_local $34 + (get_local $18) + ) + (set_local $32 (select (get_local $1) - (i32.const 4101) + (get_local $10) (get_local $5) ) ) - (set_local $12 - (i32.const 82) + (set_local $35 + (i32.const 0) ) - (br $switch$24) - ) - (set_local $5 - (i32.load - (set_local $1 - (get_local $19) - ) + (set_local $36 + (i32.const 4091) + ) + (set_local $12 + (i32.const 77) ) + (get_local $6) ) + ) + ) + (br $switch$24) + ) + (set_local $5 + (i32.load + (set_local $1 + (get_local $19) + ) + ) + ) + (if + (i32.lt_s + (set_local $33 (i32.load offset=4 (get_local $1) ) - (i32.store - (get_local $73) + ) + (i32.const 0) + ) + (block + (set_local $1 + (call $_i64Subtract + (i32.const 0) + (i32.const 0) (get_local $5) + (get_local $33) ) - (i32.store - (get_local $76) - (i32.const 0) + ) + (set_local $5 + (i32.load + (i32.const 168) ) - (i32.store + ) + (i32.store + (set_local $33 (get_local $19) - (get_local $73) - ) - (set_local $69 - (i32.const -1) - ) - (set_local $12 - (i32.const 86) ) - (br $switch$24) + (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 - (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 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 + (set_local $6 + (i32.and + (get_local $18) + (i32.const 1) + ) + ) (i32.const 0) ) - (i32.const 98) - ) - (block - (set_local $69 - (get_local $10) - ) - (i32.const 86) ) ) + (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) ) - (br $switch$24) + (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 + (set_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 $5 + (i32.load + (set_local $1 + (get_local $19) + ) + ) + ) + (i32.load offset=4 + (get_local $1) + ) + (i32.store8 + (get_local $72) + (i32.and + (get_local $5) + (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 + (set_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 $15 - (f64.load + (set_local $5 + (i32.load + (set_local $1 + (get_local $19) + ) + ) + ) + (i32.load offset=4 + (get_local $1) + ) + (i32.store + (get_local $73) + (get_local $5) + ) + (i32.store + (get_local $76) + (i32.const 0) + ) + (i32.store (get_local $19) + (get_local $73) ) - ) - (i32.store - (get_local $25) - (i32.const 0) - ) - (f64.store - (i32.load - (i32.const 24) + (set_local $69 + (i32.const -1) ) - (get_local $15) - ) - (i32.load - (i32.load - (i32.const 24) + (set_local $12 + (i32.const 86) ) + (br $switch$24) ) - (set_local $51 + (set_local $12 (if - (i32.lt_s - (i32.load offset=4 - (i32.load - (i32.const 24) - ) - ) + (i32.eq + (get_local $10) (i32.const 0) ) (block - (set_local $39 - (i32.const 4108) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $16) + (i32.const 0) + (get_local $18) ) - (set_local $15 - (f64.neg - (get_local $15) - ) + (set_local $38 + (i32.const 0) ) - (i32.const 1) + (i32.const 98) ) - (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) - ) - (i32.const 0) + (block + (set_local $69 + (get_local $10) ) - (block - (set_local $39 - (select - (i32.const 4109) - (i32.const 4114) - (i32.eq - (set_local $1 - (i32.and - (get_local $18) - (i32.const 1) - ) + (i32.const 86) + ) + ) + ) + (br $switch$24) + ) + (set_local $15 + (f64.load + (get_local $19) + ) + ) + (i32.store + (get_local $25) + (i32.const 0) + ) + (f64.store + (i32.load + (i32.const 24) + ) + (get_local $15) + ) + (i32.load + (i32.load + (i32.const 24) + ) + ) + (set_local $51 + (if + (i32.lt_s + (i32.load offset=4 + (i32.load + (i32.const 24) + ) + ) + (i32.const 0) + ) + (block + (set_local $39 + (i32.const 4108) + ) + (set_local $15 + (f64.neg + (get_local $15) + ) + ) + (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 + (set_local $1 + (i32.and + (get_local $18) + (i32.const 1) ) - (i32.const 0) ) + (i32.const 0) ) ) - (get_local $1) ) - (block - (set_local $39 - (i32.const 4111) - ) - (i32.const 1) + (get_local $1) + ) + (block + (set_local $39 + (i32.const 4111) ) + (i32.const 1) ) ) ) - (f64.store - (i32.load - (i32.const 24) - ) - (get_local $15) - ) + ) + (f64.store (i32.load - (i32.load - (i32.const 24) - ) + (i32.const 24) ) - (set_local $20 - (get_local $9) + (get_local $15) + ) + (i32.load + (i32.load + (i32.const 24) ) - (set_local $1 - (block $do-once$56 - (if - (i32.or - (i32.lt_u - (set_local $1 - (i32.and - (i32.load offset=4 - (i32.load - (i32.const 24) - ) + ) + (set_local $20 + (get_local $9) + ) + (set_local $1 + (block $do-once$56 + (if + (i32.or + (i32.lt_u + (set_local $1 + (i32.and + (i32.load offset=4 + (i32.load + (i32.const 24) ) - (i32.const 2146435072) ) - ) - (i32.const 2146435072) - ) - (i32.and - (i32.eq - (get_local $1) (i32.const 2146435072) ) - (i32.const 0) ) + (i32.const 2146435072) ) - (block - (if - (set_local $5 - (f64.ne - (set_local $15 - (f64.mul - (call $_frexpl - (get_local $15) - (get_local $25) - ) - (f64.const 2) + (i32.and + (i32.eq + (get_local $1) + (i32.const 2146435072) + ) + (i32.const 0) + ) + ) + (block + (if + (set_local $5 + (f64.ne + (set_local $15 + (f64.mul + (call $_frexpl + (get_local $15) + (get_local $25) ) + (f64.const 2) ) - (f64.const 0) ) + (f64.const 0) ) - (i32.store - (get_local $25) - (i32.add - (i32.load - (get_local $25) - ) - (i32.const -1) + ) + (i32.store + (get_local $25) + (i32.add + (i32.load + (get_local $25) ) + (i32.const -1) ) ) - (if - (i32.eq - (set_local $14 - (i32.or - (get_local $26) - (i32.const 32) - ) + ) + (if + (i32.eq + (set_local $14 + (i32.or + (get_local $26) + (i32.const 32) ) - (i32.const 97) ) - (block - (set_local $9 - (select + (i32.const 97) + ) + (block + (set_local $9 + (select + (get_local $39) + (i32.add (get_local $39) - (i32.add - (get_local $39) - (i32.const 9) - ) - (i32.eq - (set_local $6 - (i32.and - (get_local $26) - (i32.const 32) - ) + (i32.const 9) + ) + (i32.eq + (set_local $6 + (i32.and + (get_local $26) + (i32.const 32) ) - (i32.const 0) ) + (i32.const 0) ) ) - (set_local $7 - (i32.or - (get_local $51) - (i32.const 2) - ) + ) + (set_local $7 + (i32.or + (get_local $51) + (i32.const 2) ) - (set_local $15 - (if - (i32.or - (i32.gt_u - (get_local $10) - (i32.const 11) - ) - (i32.eq - (set_local $1 - (i32.sub - (i32.const 12) - (get_local $10) - ) + ) + (set_local $15 + (if + (i32.or + (i32.gt_u + (get_local $10) + (i32.const 11) + ) + (i32.eq + (set_local $1 + (i32.sub + (i32.const 12) + (get_local $10) ) - (i32.const 0) ) + (i32.const 0) ) - (get_local $15) - (block + ) + (get_local $15) + (block + (set_local $30 + (f64.const 8) + ) + (loop $while-out$60 $while-in$61 (set_local $30 - (f64.const 8) - ) - (loop $while-out$60 $while-in$61 - (set_local $30 - (f64.mul - (get_local $30) - (f64.const 16) - ) + (f64.mul + (get_local $30) + (f64.const 16) ) - (if - (i32.eq - (set_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) + ) + (if + (i32.eq + (set_local $1 + (i32.add + (get_local $1) + (i32.const -1) ) - (i32.const 0) ) - (br $while-out$60) + (i32.const 0) ) - (br $while-in$61) + (br $while-out$60) ) - (select - (f64.neg - (f64.add - (get_local $30) - (f64.sub - (f64.neg - (get_local $15) - ) - (get_local $30) + (br $while-in$61) + ) + (select + (f64.neg + (f64.add + (get_local $30) + (f64.sub + (f64.neg + (get_local $15) ) - ) - ) - (f64.sub - (f64.add - (get_local $15) (get_local $30) ) + ) + ) + (f64.sub + (f64.add + (get_local $15) (get_local $30) ) - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $9) - ) - (i32.const 24) + (get_local $30) + ) + (i32.eq + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $9) ) (i32.const 24) ) - (i32.const 45) + (i32.const 24) ) + (i32.const 45) ) ) ) ) - (set_local $5 - (i32.lt_s - (set_local $1 - (i32.load - (get_local $25) - ) + ) + (set_local $5 + (i32.lt_s + (set_local $1 + (i32.load + (get_local $25) ) - (i32.const 0) ) + (i32.const 0) ) - (set_local $5 - (i32.shr_s - (i32.shl - (i32.lt_s - (set_local $8 - (select - (i32.sub - (i32.const 0) - (get_local $1) - ) + ) + (set_local $5 + (i32.shr_s + (i32.shl + (i32.lt_s + (set_local $8 + (select + (i32.sub + (i32.const 0) (get_local $1) - (get_local $5) ) + (get_local $1) + (get_local $5) ) - (i32.const 0) ) - (i32.const 31) + (i32.const 0) ) (i32.const 31) ) + (i32.const 31) ) - (i32.store8 - (i32.add - (set_local $5 - (if - (i32.eq - (set_local $5 - (call $_fmt_u - (get_local $8) - (get_local $5) - (get_local $52) - ) + ) + (i32.store8 + (i32.add + (set_local $5 + (if + (i32.eq + (set_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 $52) + ) + (block + (i32.store8 (get_local $74) + (i32.const 48) ) - (get_local $5) + (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 -1) + ) + (i32.and + (i32.add + (i32.and + (i32.shr_s + (get_local $1) + (i32.const 31) ) - (i32.const 43) + (i32.const 2) ) - (i32.const 255) + (i32.const 43) ) + (i32.const 255) ) - (i32.store8 - (set_local $8 - (i32.add - (get_local $5) - (i32.const -2) - ) - ) - (i32.and - (i32.add - (get_local $26) - (i32.const 15) - ) - (i32.const 255) + ) + (i32.store8 + (set_local $8 + (i32.add + (get_local $5) + (i32.const -2) ) ) - (set_local $5 - (i32.lt_s - (get_local $10) - (i32.const 1) + (i32.and + (i32.add + (get_local $26) + (i32.const 15) ) + (i32.const 255) ) - (set_local $13 - (i32.eq - (i32.and - (get_local $18) - (i32.const 8) - ) - (i32.const 0) - ) + ) + (set_local $5 + (i32.lt_s + (get_local $10) + (i32.const 1) ) - (set_local $11 - (get_local $29) + ) + (set_local $13 + (i32.eq + (i32.and + (get_local $18) + (i32.const 8) + ) + (i32.const 0) ) - (loop $while-out$62 $while-in$63 - (i32.store8 - (get_local $11) - (i32.and - (i32.or - (i32.and - (i32.load8_s - (i32.add - (set_local $1 - (i32.trunc_s/f64 - (get_local $15) - ) + ) + (set_local $11 + (get_local $29) + ) + (loop $while-out$62 $while-in$63 + (i32.store8 + (get_local $11) + (i32.and + (i32.or + (i32.and + (i32.load8_s + (i32.add + (set_local $1 + (i32.trunc_s/f64 + (get_local $15) ) - (i32.const 4075) ) + (i32.const 4075) ) - (i32.const 255) ) - (get_local $6) + (i32.const 255) ) - (i32.const 255) + (get_local $6) ) + (i32.const 255) ) - (set_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_s/i32 - (get_local $1) - ) + ) + (set_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_s/i32 + (get_local $1) ) - (f64.const 16) ) + (f64.const 16) ) - (set_local $11 - (block $do-once$64 - (if - (i32.eq - (i32.sub - (set_local $1 - (i32.add - (get_local $11) - (i32.const 1) - ) + ) + (set_local $11 + (block $do-once$64 + (if + (i32.eq + (i32.sub + (set_local $1 + (i32.add + (get_local $11) + (i32.const 1) ) - (get_local $64) ) - (i32.const 1) + (get_local $64) ) - (block - (br_if $do-once$64 - (get_local $1) + (i32.const 1) + ) + (block + (br_if $do-once$64 + (get_local $1) + (i32.and + (get_local $13) (i32.and - (get_local $13) - (i32.and - (get_local $5) - (f64.eq - (get_local $15) - (f64.const 0) - ) + (get_local $5) + (f64.eq + (get_local $15) + (f64.const 0) ) ) ) - (i32.store8 - (get_local $1) - (i32.const 46) - ) - (i32.add - (get_local $11) - (i32.const 2) - ) ) - (get_local $1) + (i32.store8 + (get_local $1) + (i32.const 46) + ) + (i32.add + (get_local $11) + (i32.const 2) + ) ) + (get_local $1) ) ) - (if - (f64.eq - (get_local $15) - (f64.const 0) - ) - (block - (set_local $1 - (get_local $11) - ) - (br $while-out$62) + ) + (if + (f64.eq + (get_local $15) + (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) + (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) - (set_local $5 - (i32.add - (set_local $6 - (select + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $16) + (set_local $5 + (i32.add + (set_local $6 + (select + (i32.sub + (i32.add + (get_local $79) + (get_local $10) + ) + (get_local $8) + ) + (i32.add (i32.sub - (i32.add - (get_local $79) - (get_local $10) - ) + (get_local $77) (get_local $8) ) - (i32.add - (i32.sub - (get_local $77) - (get_local $8) - ) - (get_local $1) - ) - (get_local $5) + (get_local $1) ) + (get_local $5) ) - (get_local $7) ) + (get_local $7) ) - (get_local $18) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (get_local $18) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $9) - (get_local $7) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $9) + (get_local $7) (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) - ) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $16) + (get_local $5) + (i32.xor + (get_local $18) + (i32.const 65536) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + ) + (set_local $1 + (i32.sub + (get_local $1) + (get_local $64) + ) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $29) - (get_local $1) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $29) + (get_local $1) (get_local $0) - (i32.const 48) - (i32.sub - (get_local $6) - (i32.add - (get_local $1) - (set_local $1 - (i32.sub - (get_local $40) - (get_local $8) - ) + ) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.sub + (get_local $6) + (i32.add + (get_local $1) + (set_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) + (i32.const 0) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (get_local $1) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $8) + (get_local $1) (get_local $0) - (i32.const 32) + ) + ) + (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.xor - (get_local $18) - (i32.const 8192) - ) - ) - (br $do-once$56 - (select - (get_local $16) + (i32.lt_s (get_local $5) - (i32.lt_s - (get_local $5) - (get_local $16) - ) + (get_local $16) ) ) ) ) - (set_local $1 - (select - (i32.const 6) + ) + (set_local $1 + (select + (i32.const 6) + (get_local $10) + (i32.lt_s (get_local $10) - (i32.lt_s - (get_local $10) - (i32.const 0) - ) + (i32.const 0) ) ) - (set_local $62 - (set_local $9 - (select - (get_local $80) - (get_local $81) - (i32.lt_s - (if - (get_local $5) - (block - (i32.store - (get_local $25) - (set_local $5 - (i32.add - (i32.load - (get_local $25) - ) - (i32.const -28) + ) + (set_local $62 + (set_local $9 + (select + (get_local $80) + (get_local $81) + (i32.lt_s + (if + (get_local $5) + (block + (i32.store + (get_local $25) + (set_local $5 + (i32.add + (i32.load + (get_local $25) ) + (i32.const -28) ) ) - (set_local $15 - (f64.mul - (get_local $15) - (f64.const 268435456) - ) - ) - (get_local $5) ) - (i32.load - (get_local $25) + (set_local $15 + (f64.mul + (get_local $15) + (f64.const 268435456) + ) ) + (get_local $5) + ) + (i32.load + (get_local $25) ) - (i32.const 0) ) + (i32.const 0) ) ) ) - (set_local $7 - (get_local $9) - ) - (loop $while-out$66 $while-in$67 - (i32.store - (get_local $7) - (set_local $5 - (i32.trunc_s/f64 - (get_local $15) - ) + ) + (set_local $7 + (get_local $9) + ) + (loop $while-out$66 $while-in$67 + (i32.store + (get_local $7) + (set_local $5 + (i32.trunc_s/f64 + (get_local $15) ) ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) + ) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) - (if - (f64.eq - (set_local $15 - (f64.mul - (f64.sub - (get_local $15) - (f64.convert_u/i32 - (get_local $5) - ) + ) + (if + (f64.eq + (set_local $15 + (f64.mul + (f64.sub + (get_local $15) + (f64.convert_u/i32 + (get_local $5) ) - (f64.const 1e9) ) + (f64.const 1e9) ) - (f64.const 0) ) - (block - (set_local $6 - (get_local $7) - ) - (br $while-out$66) + (f64.const 0) + ) + (block + (set_local $6 + (get_local $7) ) + (br $while-out$66) ) - (br $while-in$67) ) - (if - (i32.gt_s - (set_local $5 - (i32.load - (get_local $25) - ) + (br $while-in$67) + ) + (if + (i32.gt_s + (set_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-out$68 $while-in$69 - (set_local $11 - (select - (i32.const 29) + (i32.const 0) + ) + (block + (set_local $8 + (get_local $9) + ) + (set_local $13 + (get_local $6) + ) + (loop $while-out$68 $while-in$69 + (set_local $11 + (select + (i32.const 29) + (get_local $5) + (i32.gt_s (get_local $5) - (i32.gt_s - (get_local $5) - (i32.const 29) - ) + (i32.const 29) ) ) - (set_local $7 - (block $do-once$70 - (if - (i32.lt_u - (set_local $7 - (i32.add - (get_local $13) - (i32.const -4) - ) + ) + (set_local $7 + (block $do-once$70 + (if + (i32.lt_u + (set_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-out$72 $while-in$73 - (set_local $6 - (call $___uremdi3 - (set_local $5 - (call $_i64Add - (call $_bitshift64Shl - (i32.load - (get_local $10) - ) - (i32.const 0) - (get_local $11) - ) + ) + (get_local $8) + (block + (set_local $5 + (i32.const 0) + ) + (set_local $10 + (get_local $7) + ) + (loop $while-out$72 $while-in$73 + (set_local $6 + (call $___uremdi3 + (set_local $5 + (call $_i64Add + (call $_bitshift64Shl (i32.load - (i32.const 168) + (get_local $10) ) - (get_local $5) (i32.const 0) + (get_local $11) ) - ) - (set_local $7 (i32.load (i32.const 168) ) + (get_local $5) + (i32.const 0) ) - (i32.const 1000000000) - (i32.const 0) - ) - ) - (i32.load - (i32.const 168) - ) - (i32.store - (get_local $10) - (get_local $6) - ) - (set_local $5 - (call $___udivdi3 - (get_local $5) - (get_local $7) - (i32.const 1000000000) - (i32.const 0) ) - ) - (i32.load - (i32.const 168) - ) - (if - (i32.lt_u - (set_local $7 - (i32.add - (get_local $10) - (i32.const -4) - ) + (set_local $7 + (i32.load + (i32.const 168) ) - (get_local $8) - ) - (br $while-out$72) - (set_local $10 - (get_local $7) ) + (i32.const 1000000000) + (i32.const 0) ) - (br $while-in$73) ) - (br_if $do-once$70 - (get_local $8) - (i32.eq + (i32.load + (i32.const 168) + ) + (i32.store + (get_local $10) + (get_local $6) + ) + (set_local $5 + (call $___udivdi3 (get_local $5) + (get_local $7) + (i32.const 1000000000) (i32.const 0) ) ) - (i32.store - (set_local $7 - (i32.add - (get_local $8) - (i32.const -4) + (i32.load + (i32.const 168) + ) + (if + (i32.lt_u + (set_local $7 + (i32.add + (get_local $10) + (i32.const -4) + ) ) + (get_local $8) ) + (br $while-out$72) + (set_local $10 + (get_local $7) + ) + ) + (br $while-in$73) + ) + (br_if $do-once$70 + (get_local $8) + (i32.eq (get_local $5) + (i32.const 0) ) - (get_local $7) ) - ) - ) - ) - (loop $while-out$74 $while-in$75 - (if - (i32.le_u - (get_local $13) - (get_local $7) - ) - (br $while-out$74) - ) - (if - (i32.eq - (i32.load - (set_local $5 + (i32.store + (set_local $7 (i32.add - (get_local $13) + (get_local $8) (i32.const -4) ) ) + (get_local $5) ) - (i32.const 0) - ) - (set_local $13 - (get_local $5) + (get_local $7) ) - (br $while-out$74) ) - (br $while-in$75) ) - (i32.store - (get_local $25) - (set_local $5 - (i32.sub - (i32.load - (get_local $25) - ) - (get_local $11) - ) + ) + (loop $while-out$74 $while-in$75 + (if + (i32.le_u + (get_local $13) + (get_local $7) ) + (br $while-out$74) ) (if - (i32.gt_s - (get_local $5) + (i32.eq + (i32.load + (set_local $5 + (i32.add + (get_local $13) + (i32.const -4) + ) + ) + ) (i32.const 0) ) - (set_local $8 - (get_local $7) + (set_local $13 + (get_local $5) ) - (block - (set_local $6 - (get_local $13) + (br $while-out$74) + ) + (br $while-in$75) + ) + (i32.store + (get_local $25) + (set_local $5 + (i32.sub + (i32.load + (get_local $25) ) - (br $while-out$68) + (get_local $11) ) ) - (br $while-in$69) ) - ) - (set_local $7 - (get_local $9) + (if + (i32.gt_s + (get_local $5) + (i32.const 0) + ) + (set_local $8 + (get_local $7) + ) + (block + (set_local $6 + (get_local $13) + ) + (br $while-out$68) + ) + ) + (br $while-in$69) ) ) - (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) + (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 -1) + (i32.const 9) ) - (i32.const 1) - ) - ) - (set_local $10 - (i32.eq - (get_local $14) - (i32.const 102) + (i32.const -1) ) + (i32.const 1) ) - (set_local $23 - (get_local $6) + ) + (set_local $10 + (i32.eq + (get_local $14) + (i32.const 102) ) - (loop $while-out$76 $while-in$77 - (set_local $5 - (i32.gt_s - (set_local $6 - (i32.sub - (i32.const 0) - (get_local $5) - ) + ) + (set_local $23 + (get_local $6) + ) + (loop $while-out$76 $while-in$77 + (set_local $5 + (i32.gt_s + (set_local $6 + (i32.sub + (i32.const 0) + (get_local $5) ) - (i32.const 9) ) + (i32.const 9) ) - (set_local $13 - (select - (i32.const 9) - (get_local $6) - (get_local $5) - ) + ) + (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) + ) + (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 $11 - (i32.const 0) - ) - (set_local $17 - (get_local $7) + ) + (set_local $27 + (i32.shr_u + (i32.const 1000000000) + (get_local $13) ) - (loop $while-out$80 $while-in$81 - (set_local $6 - (i32.and - (set_local $5 - (i32.load - (get_local $17) - ) + ) + (set_local $11 + (i32.const 0) + ) + (set_local $17 + (get_local $7) + ) + (loop $while-out$80 $while-in$81 + (set_local $6 + (i32.and + (set_local $5 + (i32.load + (get_local $17) ) - (get_local $70) ) + (get_local $70) ) - (i32.store - (get_local $17) - (i32.add - (i32.shr_u - (get_local $5) - (get_local $13) - ) - (get_local $11) + ) + (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) - ) + ) + (set_local $11 + (i32.mul + (get_local $6) + (get_local $27) ) - (if - (i32.ge_u - (set_local $17 - (i32.add - (get_local $17) - (i32.const 4) - ) + ) + (if + (i32.ge_u + (set_local $17 + (i32.add + (get_local $17) + (i32.const 4) ) - (get_local $23) ) - (br $while-out$80) + (get_local $23) ) - (br $while-in$81) + (br $while-out$80) ) - (set_local $5 - (select - (i32.add - (get_local $7) - (i32.const 4) - ) + (br $while-in$81) + ) + (set_local $5 + (select + (i32.add (get_local $7) - (i32.eq - (i32.load - (get_local $7) - ) - (i32.const 0) - ) + (i32.const 4) ) - ) - (if + (get_local $7) (i32.eq - (get_local $11) + (i32.load + (get_local $7) + ) (i32.const 0) ) - (br $do-once$78 - (get_local $5) - ) ) - (i32.store - (get_local $23) + ) + (if + (i32.eq (get_local $11) + (i32.const 0) ) - (set_local $23 - (i32.add - (get_local $23) - (i32.const 4) - ) + (br $do-once$78 + (get_local $5) ) - (get_local $5) ) - (select + (i32.store + (get_local $23) + (get_local $11) + ) + (set_local $23 (i32.add - (get_local $7) + (get_local $23) (i32.const 4) ) + ) + (get_local $5) + ) + (select + (i32.add (get_local $7) - (i32.eq - (i32.load - (get_local $7) - ) - (i32.const 0) + (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) - (set_local $7 - (select - (get_local $9) - (get_local $11) - (get_local $10) - ) + ) + (set_local $5 + (i32.gt_s + (i32.shr_s + (i32.sub + (get_local $23) + (set_local $7 + (select + (get_local $9) + (get_local $11) + (get_local $10) ) ) - (i32.const 2) ) - (get_local $8) + (i32.const 2) ) + (get_local $8) ) - (set_local $6 - (select - (i32.add - (get_local $7) - (i32.shl - (get_local $8) - (i32.const 2) - ) + ) + (set_local $6 + (select + (i32.add + (get_local $7) + (i32.shl + (get_local $8) + (i32.const 2) ) - (get_local $23) - (get_local $5) ) + (get_local $23) + (get_local $5) ) - (i32.store - (get_local $25) - (set_local $5 - (i32.add - (i32.load - (get_local $25) - ) - (get_local $13) + ) + (i32.store + (get_local $25) + (set_local $5 + (i32.add + (i32.load + (get_local $25) ) + (get_local $13) ) ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) + ) + (if + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + (block + (set_local $7 + (get_local $11) ) - (block - (set_local $7 - (get_local $11) - ) - (set_local $23 - (get_local $6) - ) + (set_local $23 + (get_local $6) ) - (block - (set_local $7 - (get_local $11) - ) - (set_local $27 - (get_local $6) - ) - (br $while-out$76) + ) + (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) + (br $while-in$77) ) ) - (block $do-once$82 - (if - (i32.lt_u - (get_local $7) - (get_local $27) + (set_local $27 + (get_local $6) + ) + ) + (block $do-once$82 + (if + (i32.lt_u + (get_local $7) + (get_local $27) + ) + (block + (set_local $6 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $62) + (get_local $7) + ) + (i32.const 2) + ) + (i32.const 9) + ) ) - (block - (set_local $6 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $62) - (get_local $7) - ) - (i32.const 2) + (if + (i32.lt_u + (set_local $5 + (i32.load + (get_local $7) ) - (i32.const 9) + ) + (i32.const 10) + ) + (block + (set_local $13 + (get_local $6) + ) + (br $do-once$82) + ) + (set_local $8 + (i32.const 10) + ) + ) + (loop $while-out$84 $while-in$85 + (set_local $6 + (i32.add + (get_local $6) + (i32.const 1) ) ) (if (i32.lt_u - (set_local $5 - (i32.load - (get_local $7) + (get_local $5) + (set_local $8 + (i32.mul + (get_local $8) + (i32.const 10) ) ) - (i32.const 10) ) (block (set_local $13 (get_local $6) ) - (br $do-once$82) - ) - (set_local $8 - (i32.const 10) + (br $while-out$84) ) ) - (loop $while-out$84 $while-in$85 - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (if - (i32.lt_u - (get_local $5) - (set_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) + (br $while-in$85) ) ) + (set_local $13 + (i32.const 0) + ) ) - (set_local $7 - (if - (i32.lt_s - (set_local $5 - (i32.add - (i32.sub - (get_local $1) - (select - (get_local $13) - (i32.const 0) - (i32.ne - (get_local $14) - (i32.const 102) - ) + ) + (set_local $7 + (if + (i32.lt_s + (set_local $5 + (i32.add + (i32.sub + (get_local $1) + (select + (get_local $13) + (i32.const 0) + (i32.ne + (get_local $14) + (i32.const 102) ) ) - (i32.shr_s - (i32.shl - (i32.and - (set_local $70 - (i32.ne - (get_local $1) - (i32.const 0) - ) + ) + (i32.shr_s + (i32.shl + (i32.and + (set_local $70 + (i32.ne + (get_local $1) + (i32.const 0) ) - (set_local $8 - (i32.eq - (get_local $14) - (i32.const 103) - ) + ) + (set_local $8 + (i32.eq + (get_local $14) + (i32.const 103) ) ) - (i32.const 31) ) (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.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $27) + (get_local $62) ) - (i32.const 9) + (i32.const 2) ) - (i32.const -9) + (i32.const 9) ) + (i32.const -9) ) - (block - (set_local $6 + ) + (block + (set_local $6 + (i32.add (i32.add + (get_local $9) + (i32.const 4) + ) + (i32.shl (i32.add - (get_local $9) - (i32.const 4) - ) - (i32.shl - (i32.add - (i32.and - (i32.div_s - (set_local $5 - (i32.add - (get_local $5) - (i32.const 9216) - ) + (i32.and + (i32.div_s + (set_local $5 + (i32.add + (get_local $5) + (i32.const 9216) ) - (i32.const 9) ) - (i32.const -1) + (i32.const 9) ) - (i32.const -1024) + (i32.const -1) ) - (i32.const 2) + (i32.const -1024) ) + (i32.const 2) ) ) - (if - (i32.lt_s - (set_local $11 - (i32.add - (i32.and - (i32.rem_s - (get_local $5) - (i32.const 9) - ) - (i32.const -1) + ) + (if + (i32.lt_s + (set_local $11 + (i32.add + (i32.and + (i32.rem_s + (get_local $5) + (i32.const 9) ) - (i32.const 1) + (i32.const -1) ) + (i32.const 1) ) - (i32.const 9) ) - (block + (i32.const 9) + ) + (block + (set_local $5 + (i32.const 10) + ) + (loop $while-out$86 $while-in$87 (set_local $5 - (i32.const 10) + (i32.mul + (get_local $5) + (i32.const 10) + ) ) - (loop $while-out$86 $while-in$87 - (set_local $5 - (i32.mul + (if + (i32.eq + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (i32.const 9) + ) + (block + (set_local $17 (get_local $5) - (i32.const 10) ) + (br $while-out$86) ) - (if + ) + (br $while-in$87) + ) + ) + (set_local $17 + (i32.const 10) + ) + ) + (block $do-once$88 + (if + (i32.eqz + (i32.and + (set_local $11 (i32.eq - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) + (i32.add + (get_local $6) + (i32.const 4) ) - (i32.const 9) + (get_local $27) ) - (block - (set_local $17 - (get_local $5) + ) + (i32.eq + (set_local $14 + (i32.and + (i32.rem_u + (set_local $5 + (i32.load + (get_local $6) + ) + ) + (get_local $17) + ) + (i32.const -1) ) - (br $while-out$86) ) + (i32.const 0) ) - (br $while-in$87) ) ) - (set_local $17 - (i32.const 10) - ) - ) - (block $do-once$88 - (if - (i32.eqz - (i32.and - (set_local $11 - (i32.eq - (i32.add - (get_local $6) - (i32.const 4) - ) - (get_local $27) - ) - ) + (block + (set_local $15 + (select + (f64.const 9007199254740992) + (f64.const 9007199254740994) (i32.eq - (set_local $14 + (i32.and (i32.and - (i32.rem_u - (set_local $5 - (i32.load - (get_local $6) - ) - ) + (i32.div_u + (get_local $5) (get_local $17) ) (i32.const -1) ) + (i32.const 1) ) (i32.const 0) ) ) ) - (block - (set_local $15 - (select - (f64.const 9007199254740992) - (f64.const 9007199254740994) - (i32.eq + (set_local $30 + (if + (i32.lt_u + (get_local $14) + (set_local $10 (i32.and - (i32.and - (i32.div_u - (get_local $5) - (get_local $17) - ) - (i32.const -1) + (i32.div_s + (get_local $17) + (i32.const 2) ) - (i32.const 1) + (i32.const -1) ) - (i32.const 0) ) ) - ) - (set_local $30 - (if - (i32.lt_u - (get_local $14) - (set_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 $14) - (get_local $10) - ) + (f64.const 0.5) + (select + (f64.const 1) + (f64.const 1.5) + (i32.and + (get_local $11) + (i32.eq + (get_local $14) + (get_local $10) ) ) ) ) - (set_local $15 - (block $do-once$90 - (if - (i32.eq - (get_local $51) - (i32.const 0) - ) - (get_local $15) - (block - (if - (i32.ne - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $39) - ) - (i32.const 24) + ) + (set_local $15 + (block $do-once$90 + (if + (i32.eq + (get_local $51) + (i32.const 0) + ) + (get_local $15) + (block + (if + (i32.ne + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $39) ) (i32.const 24) ) - (i32.const 45) - ) - (br $do-once$90 - (get_local $15) + (i32.const 24) ) + (i32.const 45) ) - (set_local $30 - (f64.neg - (get_local $30) - ) + (br $do-once$90 + (get_local $15) ) + ) + (set_local $30 (f64.neg - (get_local $15) + (get_local $30) ) ) + (f64.neg + (get_local $15) + ) ) ) ) - (i32.store - (get_local $6) - (set_local $5 - (i32.sub - (get_local $5) - (get_local $14) - ) + ) + (i32.store + (get_local $6) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $14) ) ) - (if - (f64.eq - (f64.add - (get_local $15) - (get_local $30) - ) + ) + (if + (f64.eq + (f64.add (get_local $15) + (get_local $30) ) - (br $do-once$88) + (get_local $15) ) - (i32.store - (get_local $6) - (set_local $5 - (i32.add - (get_local $5) - (get_local $17) - ) + (br $do-once$88) + ) + (i32.store + (get_local $6) + (set_local $5 + (i32.add + (get_local $5) + (get_local $17) ) ) - (if - (i32.gt_u - (get_local $5) - (i32.const 999999999) + ) + (if + (i32.gt_u + (get_local $5) + (i32.const 999999999) + ) + (loop $while-out$92 $while-in$93 + (i32.store + (get_local $6) + (i32.const 0) ) - (loop $while-out$92 $while-in$93 - (i32.store - (get_local $6) - (i32.const 0) - ) - (set_local $7 - (if - (i32.lt_u - (set_local $6 - (i32.add - (get_local $6) - (i32.const -4) - ) + (set_local $7 + (if + (i32.lt_u + (set_local $6 + (i32.add + (get_local $6) + (i32.const -4) ) - (get_local $7) ) - (block - (i32.store - (set_local $5 - (i32.add - (get_local $7) - (i32.const -4) - ) + (get_local $7) + ) + (block + (i32.store + (set_local $5 + (i32.add + (get_local $7) + (i32.const -4) ) - (i32.const 0) ) - (get_local $5) + (i32.const 0) ) - (get_local $7) + (get_local $5) ) + (get_local $7) ) - (i32.store - (get_local $6) - (set_local $5 - (i32.add - (i32.load - (get_local $6) - ) - (i32.const 1) + ) + (i32.store + (get_local $6) + (set_local $5 + (i32.add + (i32.load + (get_local $6) ) + (i32.const 1) ) ) - (if - (i32.le_u - (get_local $5) - (i32.const 999999999) - ) - (br $while-out$92) + ) + (if + (i32.le_u + (get_local $5) + (i32.const 999999999) ) - (br $while-in$93) + (br $while-out$92) ) + (br $while-in$93) ) - (set_local $11 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $62) - (get_local $7) - ) - (i32.const 2) + ) + (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 + (set_local $5 + (i32.load + (get_local $7) ) - (i32.const 9) + ) + (i32.const 10) + ) + (block + (set_local $13 + (get_local $11) + ) + (br $do-once$88) + ) + (set_local $10 + (i32.const 10) + ) + ) + (loop $while-out$94 $while-in$95 + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) ) ) (if (i32.lt_u - (set_local $5 - (i32.load - (get_local $7) + (get_local $5) + (set_local $10 + (i32.mul + (get_local $10) + (i32.const 10) ) ) - (i32.const 10) ) (block (set_local $13 (get_local $11) ) - (br $do-once$88) - ) - (set_local $10 - (i32.const 10) + (br $while-out$94) ) ) - (loop $while-out$94 $while-in$95 - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (if - (i32.lt_u - (get_local $5) - (set_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) - ) + (br $while-in$95) ) ) ) - (set_local $6 - (i32.gt_u - (get_local $27) - (set_local $5 - (i32.add - (get_local $6) - (i32.const 4) - ) + ) + (set_local $6 + (i32.gt_u + (get_local $27) + (set_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 + (set_local $6 + (select + (get_local $5) (get_local $27) + (get_local $6) ) - (get_local $7) ) + (get_local $7) ) - ) - (set_local $27 - (i32.sub - (i32.const 0) - (get_local $13) + (block + (set_local $6 + (get_local $27) + ) + (get_local $7) ) ) - (loop $while-out$96 $while-in$97 - (if - (i32.le_u - (get_local $6) - (get_local $7) + ) + (set_local $27 + (i32.sub + (i32.const 0) + (get_local $13) + ) + ) + (loop $while-out$96 $while-in$97 + (if + (i32.le_u + (get_local $6) + (get_local $7) + ) + (block + (set_local $11 + (i32.const 0) ) - (block - (set_local $11 - (i32.const 0) - ) - (set_local $23 - (get_local $6) - ) - (br $while-out$96) + (set_local $23 + (get_local $6) ) + (br $while-out$96) ) - (if - (i32.eq - (i32.load - (set_local $5 - (i32.add - (get_local $6) - (i32.const -4) - ) + ) + (if + (i32.eq + (i32.load + (set_local $5 + (i32.add + (get_local $6) + (i32.const -4) ) ) - (i32.const 0) ) - (set_local $6 - (get_local $5) + (i32.const 0) + ) + (set_local $6 + (get_local $5) + ) + (block + (set_local $11 + (i32.const 1) ) - (block - (set_local $11 - (i32.const 1) - ) - (set_local $23 - (get_local $6) - ) - (br $while-out$96) + (set_local $23 + (get_local $6) ) + (br $while-out$96) ) - (br $while-in$97) ) - (set_local $8 - (block $do-once$98 - (if - (get_local $8) - (block - (set_local $8 - (if - (i32.and - (i32.gt_s - (set_local $1 - (i32.add - (i32.xor - (i32.and - (get_local $70) - (i32.const 1) - ) + (br $while-in$97) + ) + (set_local $8 + (block $do-once$98 + (if + (get_local $8) + (block + (set_local $8 + (if + (i32.and + (i32.gt_s + (set_local $1 + (i32.add + (i32.xor + (i32.and + (get_local $70) (i32.const 1) ) - (get_local $1) + (i32.const 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) ) + (get_local $13) ) - (block - (set_local $10 - (i32.add - (get_local $26) - (i32.const -2) - ) - ) + (i32.gt_s + (get_local $13) + (i32.const -5) + ) + ) + (block + (set_local $10 (i32.add - (get_local $1) + (get_local $26) (i32.const -1) ) ) - ) - ) - (if - (i32.ne - (set_local $1 - (i32.and - (get_local $18) - (i32.const 8) + (i32.sub + (i32.add + (get_local $1) + (i32.const -1) ) + (get_local $13) ) - (i32.const 0) ) (block - (set_local $14 - (get_local $8) - ) - (set_local $26 - (get_local $10) + (set_local $10 + (i32.add + (get_local $26) + (i32.const -2) + ) ) - (br $do-once$98 + (i32.add (get_local $1) + (i32.const -1) ) ) ) - (block $do-once$100 - (if - (get_local $11) - (block - (if - (i32.eq - (set_local $1 - (i32.load - (i32.add - (get_local $23) - (i32.const -4) - ) + ) + (if + (i32.ne + (set_local $1 + (i32.and + (get_local $18) + (i32.const 8) + ) + ) + (i32.const 0) + ) + (block + (set_local $14 + (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 + (set_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) ) + (i32.const 0) ) - (if - (i32.eq - (i32.and - (i32.rem_u - (get_local $1) - (i32.const 10) - ) - (i32.const -1) - ) - (i32.const 0) + (block + (set_local $6 + (i32.const 9) ) - (block - (set_local $5 + (br $do-once$100) + ) + ) + (if + (i32.eq + (i32.and + (i32.rem_u + (get_local $1) (i32.const 10) ) - (set_local $6 - (i32.const 0) - ) + (i32.const -1) ) - (block - (set_local $6 - (i32.const 0) - ) - (br $do-once$100) + (i32.const 0) + ) + (block + (set_local $5 + (i32.const 10) + ) + (set_local $6 + (i32.const 0) ) ) - (loop $while-out$102 $while-in$103 + (block (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) + (i32.const 0) ) - (if - (i32.ne - (i32.and - (i32.rem_u - (get_local $1) - (set_local $5 - (i32.mul - (get_local $5) - (i32.const 10) - ) + (br $do-once$100) + ) + ) + (loop $while-out$102 $while-in$103 + (set_local $6 + (i32.add + (get_local $6) + (i32.const 1) + ) + ) + (if + (i32.ne + (i32.and + (i32.rem_u + (get_local $1) + (set_local $5 + (i32.mul + (get_local $5) + (i32.const 10) ) ) - (i32.const -1) ) - (i32.const 0) + (i32.const -1) ) - (br $while-out$102) + (i32.const 0) ) - (br $while-in$103) + (br $while-out$102) ) + (br $while-in$103) ) - (set_local $6 - (i32.const 9) - ) + ) + (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) + ) + (set_local $1 + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $23) + (get_local $62) ) - (i32.const 9) + (i32.const 2) ) - (i32.const -9) + (i32.const 9) ) + (i32.const -9) ) - (if - (i32.eq - (i32.or - (get_local $10) - (i32.const 32) - ) - (i32.const 102) + ) + (if + (i32.eq + (i32.or + (get_local $10) + (i32.const 32) ) - (block - (set_local $1 - (i32.lt_s - (set_local $5 - (i32.sub - (get_local $1) - (get_local $6) - ) + (i32.const 102) + ) + (block + (set_local $1 + (i32.lt_s + (set_local $5 + (i32.sub + (get_local $1) + (get_local $6) ) - (i32.const 0) ) + (i32.const 0) ) - (set_local $5 - (i32.lt_s - (get_local $8) - (set_local $1 - (select - (i32.const 0) - (get_local $5) - (get_local $1) - ) + ) + (set_local $5 + (i32.lt_s + (get_local $8) + (set_local $1 + (select + (i32.const 0) + (get_local $5) + (get_local $1) ) ) ) - (set_local $14 - (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 - (set_local $5 - (i32.sub - (i32.add - (get_local $1) - (get_local $13) - ) - (get_local $6) - ) - ) - (i32.const 0) - ) + (set_local $14 + (select + (get_local $8) + (get_local $1) + (get_local $5) ) - (set_local $5 - (i32.lt_s - (get_local $8) - (set_local $1 - (select - (i32.const 0) - (get_local $5) + ) + (set_local $26 + (get_local $10) + ) + (i32.const 0) + ) + (block + (set_local $1 + (i32.lt_s + (set_local $5 + (i32.sub + (i32.add (get_local $1) + (get_local $13) ) + (get_local $6) ) ) + (i32.const 0) ) - (set_local $14 - (select - (get_local $8) - (get_local $1) - (get_local $5) + ) + (set_local $5 + (i32.lt_s + (get_local $8) + (set_local $1 + (select + (i32.const 0) + (get_local $5) + (get_local $1) + ) ) ) - (set_local $26 - (get_local $10) + ) + (set_local $14 + (select + (get_local $8) + (get_local $1) + (get_local $5) ) - (i32.const 0) ) + (set_local $26 + (get_local $10) + ) + (i32.const 0) ) ) - (block - (set_local $14 - (get_local $1) - ) - (i32.and - (get_local $18) - (i32.const 8) - ) + ) + (block + (set_local $14 + (get_local $1) + ) + (i32.and + (get_local $18) + (i32.const 8) ) ) ) ) - (set_local $17 - (i32.and - (i32.ne - (set_local $1 - (i32.or - (get_local $14) - (get_local $8) - ) + ) + (set_local $17 + (i32.and + (i32.ne + (set_local $1 + (i32.or + (get_local $14) + (get_local $8) ) - (i32.const 0) ) - (i32.const 1) + (i32.const 0) ) + (i32.const 1) ) - (set_local $13 - (if - (set_local $10 - (i32.eq - (i32.or - (get_local $26) - (i32.const 32) - ) - (i32.const 102) + ) + (set_local $13 + (if + (set_local $10 + (i32.eq + (i32.or + (get_local $26) + (i32.const 32) ) + (i32.const 102) ) - (block - (set_local $6 - (select + ) + (block + (set_local $6 + (select + (get_local $13) + (i32.const 0) + (i32.gt_s (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 - (set_local $6 - (select - (get_local $27) + (i32.const 0) + ) + (block + (set_local $5 + (i32.shr_s + (i32.shl + (i32.lt_s + (set_local $6 + (select + (get_local $27) + (get_local $13) + (i32.lt_s (get_local $13) - (i32.lt_s - (get_local $13) - (i32.const 0) - ) + (i32.const 0) ) ) - (i32.const 0) ) - (i32.const 31) + (i32.const 0) ) (i32.const 31) ) + (i32.const 31) ) - (if - (i32.lt_s - (i32.sub - (get_local $40) - (set_local $5 - (call $_fmt_u - (get_local $6) - (get_local $5) - (get_local $52) - ) + ) + (if + (i32.lt_s + (i32.sub + (get_local $40) + (set_local $5 + (call $_fmt_u + (get_local $6) + (get_local $5) + (get_local $52) ) ) - (i32.const 2) ) - (loop $while-out$104 $while-in$105 - (i32.store8 - (set_local $5 - (i32.add - (get_local $5) - (i32.const -1) - ) + (i32.const 2) + ) + (loop $while-out$104 $while-in$105 + (i32.store8 + (set_local $5 + (i32.add + (get_local $5) + (i32.const -1) ) - (i32.const 48) ) - (if - (i32.lt_s - (i32.sub - (get_local $40) - (get_local $5) - ) - (i32.const 2) + (i32.const 48) + ) + (if + (i32.lt_s + (i32.sub + (get_local $40) + (get_local $5) ) - (get_local $5) - (br $while-out$104) + (i32.const 2) ) - (br $while-in$105) + (get_local $5) + (br $while-out$104) ) + (br $while-in$105) + ) + (get_local $5) + ) + (i32.store8 + (i32.add (get_local $5) + (i32.const -1) ) - (i32.store8 + (i32.and (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.and + (i32.shr_s + (get_local $13) + (i32.const 31) ) - (i32.const 43) - ) - (i32.const 255) - ) - ) - (i32.store8 - (set_local $5 - (i32.add - (get_local $5) - (i32.const -2) + (i32.const 2) ) + (i32.const 43) ) - (i32.and - (get_local $26) - (i32.const 255) - ) + (i32.const 255) ) - (set_local $6 - (i32.sub - (get_local $40) + ) + (i32.store8 + (set_local $5 + (i32.add (get_local $5) + (i32.const -2) ) ) - (get_local $5) + (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) - (set_local $6 + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $16) + (set_local $6 + (i32.add (i32.add (i32.add (i32.add - (i32.add - (get_local $51) - (i32.const 1) - ) - (get_local $14) + (get_local $51) + (i32.const 1) ) - (get_local $17) + (get_local $14) ) - (get_local $6) + (get_local $17) ) + (get_local $6) ) - (get_local $18) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (get_local $18) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $39) - (get_local $51) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $39) + (get_local $51) (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 - (set_local $8 - (select - (get_local $9) + ) + (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 + (set_local $8 + (select + (get_local $9) + (get_local $7) + (i32.gt_u (get_local $7) - (i32.gt_u - (get_local $7) - (get_local $9) - ) + (get_local $9) ) ) ) - (loop $while-out$108 $while-in$109 - (set_local $5 - (call $_fmt_u - (i32.load - (get_local $7) - ) - (i32.const 0) - (get_local $45) + ) + (loop $while-out$108 $while-in$109 + (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 $do-once$110 + (if + (i32.eq + (get_local $7) + (get_local $8) + ) + (block + (if + (i32.ne + (get_local $5) + (get_local $45) + ) + (br $do-once$110) ) - (block - (if - (i32.ne - (get_local $5) - (get_local $45) - ) - (br $do-once$110) + (i32.store8 + (get_local $53) + (i32.const 48) + ) + (set_local $5 + (get_local $53) + ) + ) + (block + (if + (i32.gt_u + (get_local $5) + (get_local $29) ) + (get_local $5) + (br $do-once$110) + ) + (loop $while-out$112 $while-in$113 (i32.store8 - (get_local $53) + (set_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) (i32.const 48) ) - (set_local $5 - (get_local $53) - ) - ) - (block (if (i32.gt_u (get_local $5) (get_local $29) ) (get_local $5) - (br $do-once$110) - ) - (loop $while-out$112 $while-in$113 - (i32.store8 - (set_local $5 - (i32.add - (get_local $5) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (if - (i32.gt_u - (get_local $5) - (get_local $29) - ) - (get_local $5) - (br $while-out$112) - ) - (br $while-in$113) + (br $while-out$112) ) + (br $while-in$113) ) ) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 32) ) - (call $___fwritex + (i32.const 0) + ) + (call $___fwritex + (get_local $5) + (i32.sub + (get_local $75) (get_local $5) - (i32.sub - (get_local $75) - (get_local $5) - ) - (get_local $0) ) + (get_local $0) ) - (if - (i32.gt_u - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) - ) - (get_local $9) - ) - (block - (set_local $5 + ) + (if + (i32.gt_u + (set_local $7 + (i32.add (get_local $7) + (i32.const 4) ) - (br $while-out$108) ) - (get_local $7) + (get_local $9) ) - (br $while-in$109) - ) - (block $do-once$114 - (if - (i32.ne - (get_local $1) - (i32.const 0) + (block + (set_local $5 + (get_local $7) ) - (block - (br_if $do-once$114 - (i32.ne - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (br $while-out$108) + ) + (get_local $7) + ) + (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 0) + (i32.const 32) ) - ) - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) + (i32.const 0) ) ) + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) ) ) - (if - (i32.and - (i32.gt_s - (get_local $14) - (i32.const 0) - ) - (i32.lt_u - (get_local $5) - (get_local $23) - ) + ) + (if + (i32.and + (i32.gt_s + (get_local $14) + (i32.const 0) ) - (loop $while-out$116 $while-in$117 - (if - (i32.gt_u - (set_local $1 - (call $_fmt_u - (i32.load - (get_local $5) - ) - (i32.const 0) - (get_local $45) + (i32.lt_u + (get_local $5) + (get_local $23) + ) + ) + (loop $while-out$116 $while-in$117 + (if + (i32.gt_u + (set_local $1 + (call $_fmt_u + (i32.load + (get_local $5) ) + (i32.const 0) + (get_local $45) ) - (get_local $29) ) - (loop $while-out$118 $while-in$119 - (i32.store8 - (set_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (if - (i32.gt_u + (get_local $29) + ) + (loop $while-out$118 $while-in$119 + (i32.store8 + (set_local $1 + (i32.add (get_local $1) - (get_local $29) + (i32.const -1) ) - (get_local $1) - (br $while-out$118) ) - (br $while-in$119) + (i32.const 48) ) - (get_local $1) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (if + (i32.gt_u + (get_local $1) + (get_local $29) ) - (i32.const 0) - ) - (call $___fwritex (get_local $1) - (select - (i32.const 9) - (get_local $14) - (i32.gt_s - (get_local $14) - (i32.const 9) - ) - ) - (get_local $0) + (br $while-out$118) ) + (br $while-in$119) ) - (set_local $1 - (i32.add - (get_local $14) - (i32.const -9) + (get_local $1) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) + (i32.const 0) ) - (if - (i32.and + (call $___fwritex + (get_local $1) + (select + (i32.const 9) + (get_local $14) (i32.gt_s (get_local $14) (i32.const 9) ) - (i32.lt_u - (set_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) + ) + (get_local $0) + ) + ) + (set_local $1 + (i32.add + (get_local $14) + (i32.const -9) + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $14) + (i32.const 9) + ) + (i32.lt_u + (set_local $5 + (i32.add + (get_local $5) + (i32.const 4) ) - (get_local $23) ) + (get_local $23) ) + ) + (set_local $14 + (get_local $1) + ) + (block (set_local $14 (get_local $1) ) - (block - (set_local $14 - (get_local $1) - ) - (br $while-out$116) - ) + (br $while-out$116) ) - (br $while-in$117) ) + (br $while-in$117) + ) + (get_local $14) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add (get_local $14) + (i32.const 9) ) - (call $_pad - (get_local $0) - (i32.const 48) + (i32.const 9) + (i32.const 0) + ) + ) + (block + (set_local $11 + (select + (get_local $23) (i32.add - (get_local $14) - (i32.const 9) + (get_local $7) + (i32.const 4) ) - (i32.const 9) - (i32.const 0) + (get_local $11) ) ) - (block - (set_local $11 - (select - (get_local $23) - (i32.add - (get_local $7) - (i32.const 4) + (if + (i32.gt_s + (get_local $14) + (i32.const -1) + ) + (block + (set_local $9 + (i32.eq + (get_local $8) + (i32.const 0) ) - (get_local $11) ) - ) - (if - (i32.gt_s - (get_local $14) - (i32.const -1) + (set_local $5 + (get_local $7) ) - (block - (set_local $9 - (i32.eq - (get_local $8) - (i32.const 0) - ) - ) - (set_local $5 - (get_local $7) - ) - (loop $while-out$120 $while-in$121 - (set_local $8 - (if - (i32.eq - (set_local $1 - (call $_fmt_u - (i32.load - (get_local $5) - ) - (i32.const 0) - (get_local $45) + (loop $while-out$120 $while-in$121 + (set_local $8 + (if + (i32.eq + (set_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 $45) + ) + (block + (i32.store8 (get_local $53) + (i32.const 48) ) - (get_local $1) + (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) - ) + ) + (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) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 32) ) - (call $___fwritex - (get_local $8) + (i32.const 0) + ) + (call $___fwritex + (get_local $8) + (i32.const 1) + (get_local $0) + ) + ) + (if + (i32.and + (get_local $9) + (i32.lt_s + (get_local $14) (i32.const 1) - (get_local $0) ) ) - (if + (br $do-once$122) + ) + (if + (i32.ne (i32.and - (get_local $9) - (i32.lt_s - (get_local $14) - (i32.const 1) + (i32.load + (get_local $0) ) + (i32.const 32) ) - (br $do-once$122) + (i32.const 0) ) - (if - (i32.ne - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (br $do-once$122) + (br $do-once$122) + ) + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) + ) + (block + (if + (i32.gt_u + (get_local $8) + (get_local $29) ) - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) + (set_local $1 + (get_local $8) ) - ) - (block - (if - (i32.gt_u - (get_local $8) - (get_local $29) - ) + (block (set_local $1 (get_local $8) ) - (block - (set_local $1 - (get_local $8) - ) - (br $do-once$122) - ) + (br $do-once$122) ) - (loop $while-out$124 $while-in$125 - (i32.store8 - (set_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (if - (i32.gt_u + ) + (loop $while-out$124 $while-in$125 + (i32.store8 + (set_local $1 + (i32.add (get_local $1) - (get_local $29) + (i32.const -1) ) + ) + (i32.const 48) + ) + (if + (i32.gt_u (get_local $1) - (br $while-out$124) + (get_local $29) ) - (br $while-in$125) + (get_local $1) + (br $while-out$124) ) + (br $while-in$125) ) ) ) - (set_local $8 - (i32.sub - (get_local $75) - (get_local $1) - ) + ) + (set_local $8 + (i32.sub + (get_local $75) + (get_local $1) ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + ) + (if + (i32.eq + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 32) ) - (call $___fwritex - (get_local $1) - (select - (get_local $8) + (i32.const 0) + ) + (call $___fwritex + (get_local $1) + (select + (get_local $8) + (get_local $14) + (i32.gt_s (get_local $14) - (i32.gt_s - (get_local $14) - (get_local $8) - ) + (get_local $8) ) - (get_local $0) ) + (get_local $0) ) - (if - (i32.eqz - (i32.and - (i32.lt_u - (set_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) + ) + (if + (i32.eqz + (i32.and + (i32.lt_u + (set_local $5 + (i32.add + (get_local $5) + (i32.const 4) ) - (get_local $11) ) - (i32.gt_s - (set_local $14 - (i32.sub - (get_local $14) - (get_local $8) - ) + (get_local $11) + ) + (i32.gt_s + (set_local $14 + (i32.sub + (get_local $14) + (get_local $8) ) - (i32.const -1) ) + (i32.const -1) ) ) - (br $while-out$120) ) - (br $while-in$121) + (br $while-out$120) ) + (br $while-in$121) ) - (get_local $14) ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $14) - (i32.const 18) - ) + (get_local $14) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $14) (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 18) + (i32.const 0) + ) + (br_if $do-once$106 + (i32.ne + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 32) ) + (i32.const 0) ) - (call $___fwritex + ) + (call $___fwritex + (get_local $13) + (i32.sub + (get_local $40) (get_local $13) - (i32.sub - (get_local $40) - (get_local $13) - ) - (get_local $0) ) + (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) - ) + ) + (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) + ) + (select + (get_local $16) + (get_local $6) + (i32.lt_s (get_local $6) - (i32.lt_s - (get_local $6) - (get_local $16) - ) + (get_local $16) ) ) - (block - (set_local $5 - (select - (i32.const 4127) - (i32.const 4131) - (set_local $8 - (i32.ne - (i32.and - (get_local $26) - (i32.const 32) - ) - (i32.const 0) + ) + (block + (set_local $5 + (select + (i32.const 4127) + (i32.const 4131) + (set_local $8 + (i32.ne + (i32.and + (get_local $26) + (i32.const 32) ) + (i32.const 0) ) ) ) - (set_local $6 - (select - (i32.const 0) - (get_local $51) - (set_local $1 - (i32.or - (f64.ne - (get_local $15) - (get_local $15) - ) - (i32.const 0) + ) + (set_local $6 + (select + (i32.const 0) + (get_local $51) + (set_local $1 + (i32.or + (f64.ne + (get_local $15) + (get_local $15) ) + (i32.const 0) ) ) ) - (set_local $8 + ) + (set_local $8 + (select (select - (select - (i32.const 4135) - (i32.const 4139) - (get_local $8) - ) - (get_local $5) - (get_local $1) + (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) - (set_local $5 - (i32.add - (get_local $6) - (i32.const 3) - ) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $16) + (set_local $5 + (i32.add + (get_local $6) + (i32.const 3) ) - (get_local $7) ) - (if - (i32.eq - (i32.and - (if - (i32.eq - (i32.and - (set_local $1 - (i32.load - (get_local $0) - ) + (get_local $7) + ) + (if + (i32.eq + (i32.and + (if + (i32.eq + (i32.and + (set_local $1 + (i32.load + (get_local $0) ) - (i32.const 32) ) - (i32.const 0) + (i32.const 32) ) - (block - (call $___fwritex - (get_local $39) - (get_local $6) - (get_local $0) - ) - (i32.load - (get_local $0) - ) + (i32.const 0) + ) + (block + (call $___fwritex + (get_local $39) + (get_local $6) + (get_local $0) + ) + (i32.load + (get_local $0) ) - (get_local $1) ) - (i32.const 32) + (get_local $1) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (i32.const 3) - (get_local $0) + (i32.const 32) ) + (i32.const 0) ) - (call $_pad + (call $___fwritex + (get_local $8) + (i32.const 3) (get_local $0) - (i32.const 32) - (get_local $16) - (get_local $5) - (i32.xor - (get_local $18) - (i32.const 8192) - ) ) - (select - (get_local $16) + ) + (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) - (i32.lt_s - (get_local $5) - (get_local $16) - ) + (get_local $16) ) ) ) ) ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) - ) - (set_local $47 - (get_local $20) - ) - (set_local $37 - (get_local $18) - ) - (set_local $42 - (get_local $10) ) - (set_local $43 - (i32.const 0) - ) - (set_local $48 - (i32.const 4091) - ) - (set_local $49 - (get_local $28) + (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 diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index 0d27fa464..64f5fc3b4 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -904,19 +904,17 @@ optimized: ) ) (func $loop-tail (type $v) - (block $block$3$break - (loop $shape$0$continue - (call_import $check - (i32.const 0) - ) - (call_import $check - (i32.const 1) - ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $block$3$break) - ) + (loop $block$3$break $shape$0$continue + (call_import $check + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) ) ) (call_import $check @@ -928,22 +926,20 @@ optimized: (i32.const 0) ) (block $block$7$break - (block $block$4$break - (loop $shape$1$continue - (call_import $check - (i32.const 1) - ) - (br_if $block$7$break - (i32.const 0) - ) - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (br $block$4$break) - (br $shape$1$continue) - ) + (loop $block$4$break $shape$1$continue + (call_import $check + (i32.const 1) + ) + (br_if $block$7$break + (i32.const 0) + ) + (call_import $check + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (br $shape$1$continue) ) ) (call_import $check @@ -2751,19 +2747,17 @@ optimized: ) ) (func $loop-tail (type $v) - (block $block$3$break - (loop $shape$0$continue - (call_import $check - (i32.const 0) - ) - (call_import $check - (i32.const 1) - ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $block$3$break) - ) + (loop $block$3$break $shape$0$continue + (call_import $check + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) ) ) (call_import $check @@ -2775,22 +2769,20 @@ optimized: (i32.const 0) ) (block $block$7$break - (block $block$4$break - (loop $shape$1$continue - (call_import $check - (i32.const 1) - ) - (br_if $block$7$break - (i32.const 0) - ) - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (br $block$4$break) - (br $shape$1$continue) - ) + (loop $block$4$break $shape$1$continue + (call_import $check + (i32.const 1) + ) + (br_if $block$7$break + (i32.const 0) + ) + (call_import $check + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (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 0ba8ccf94..96cbaaa00 100644 --- a/test/example/c-api-kitchen-sink.txt.txt +++ b/test/example/c-api-kitchen-sink.txt.txt @@ -897,19 +897,17 @@ ) ) (func $loop-tail (type $v) - (block $block$3$break - (loop $shape$0$continue - (call_import $check - (i32.const 0) - ) - (call_import $check - (i32.const 1) - ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $block$3$break) - ) + (loop $block$3$break $shape$0$continue + (call_import $check + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) ) ) (call_import $check @@ -921,22 +919,20 @@ (i32.const 0) ) (block $block$7$break - (block $block$4$break - (loop $shape$1$continue - (call_import $check - (i32.const 1) - ) - (br_if $block$7$break - (i32.const 0) - ) - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (br $block$4$break) - (br $shape$1$continue) - ) + (loop $block$4$break $shape$1$continue + (call_import $check + (i32.const 1) + ) + (br_if $block$7$break + (i32.const 0) + ) + (call_import $check + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (br $shape$1$continue) ) ) (call_import $check diff --git a/test/passes/remove-unused-names.txt b/test/passes/remove-unused-names.txt index ed9e4b53f..74cde2f1a 100644 --- a/test/passes/remove-unused-names.txt +++ b/test/passes/remove-unused-names.txt @@ -29,10 +29,32 @@ (br $in) ) ) - (loop $in - (block $out - (br $out) - (br $in) + (loop $out $in + (br $out) + (br $in) + ) + (loop $out $in + (br $out) + (br $in) + ) + (loop $out $in + (br $out) + (br $in) + ) + ) + (func $merges + (block $b + (br $b) + (br $b) + ) + (block $b + (br_table $b $b + (i32.const 3) + ) + ) + (block $b + (br_table $b $b + (i32.const 3) ) ) ) diff --git a/test/passes/remove-unused-names.wast b/test/passes/remove-unused-names.wast index 5e1ba5fd5..9423b2675 100644 --- a/test/passes/remove-unused-names.wast +++ b/test/passes/remove-unused-names.wast @@ -37,6 +37,36 @@ (br $in) ) ) + (loop $in + (block $out + (br $out) + (br $in) + ) + ) + (block $out + (loop $in + (br $out) + (br $in) + ) + ) + ) + (func $merges + (block $a + (block $b + (br $a) + (br $b) + ) + ) + (block $a + (block $b + (br_table $a $b (i32.const 3)) + ) + ) + (block $a + (block $b + (br_table $b $a (i32.const 3)) + ) + ) ) ) diff --git a/test/unit.fromasm b/test/unit.fromasm index e4a2ec488..f939782e7 100644 --- a/test/unit.fromasm +++ b/test/unit.fromasm @@ -143,30 +143,28 @@ (i32.const 51) ) ) - (block $label$break$Lout - (block $switch-default$16 - (block $switch-case$15 - (block $switch-case$12 - (block $switch-case$9 - (block $switch-case$8 - (br_table $switch-case$15 $switch-default$16 $switch-default$16 $switch-case$12 $switch-default$16 $switch-default$16 $switch-default$16 $switch-default$16 $switch-case$9 $switch-default$16 $switch-case$8 $switch-default$16 - (i32.sub - (get_local $0) - (i32.const 2) - ) + (block $switch-default$16 + (block $switch-case$15 + (block $switch-case$12 + (block $switch-case$9 + (block $switch-case$8 + (br_table $switch-case$15 $switch-default$16 $switch-default$16 $switch-case$12 $switch-default$16 $switch-default$16 $switch-default$16 $switch-default$16 $switch-case$9 $switch-default$16 $switch-case$8 $switch-default$16 + (i32.sub + (get_local $0) + (i32.const 2) ) ) - (br $label$break$Lout) ) - (br $label$break$Lout) - ) - (block $while-out$10 + (br $switch-default$16) ) - (br $label$break$Lout) + (br $switch-default$16) ) - (loop - (br $label$break$Lout) + (block $while-out$10 ) + (br $switch-default$16) + ) + (loop + (br $switch-default$16) ) ) (loop $label$break$L1 $label$continue$L1 diff --git a/test/unit.fromasm.imprecise b/test/unit.fromasm.imprecise index 81ce89a88..f80f4ce6c 100644 --- a/test/unit.fromasm.imprecise +++ b/test/unit.fromasm.imprecise @@ -133,30 +133,28 @@ (i32.const 51) ) ) - (block $label$break$Lout - (block $switch-default$16 - (block $switch-case$15 - (block $switch-case$12 - (block $switch-case$9 - (block $switch-case$8 - (br_table $switch-case$15 $switch-default$16 $switch-default$16 $switch-case$12 $switch-default$16 $switch-default$16 $switch-default$16 $switch-default$16 $switch-case$9 $switch-default$16 $switch-case$8 $switch-default$16 - (i32.sub - (get_local $0) - (i32.const 2) - ) + (block $switch-default$16 + (block $switch-case$15 + (block $switch-case$12 + (block $switch-case$9 + (block $switch-case$8 + (br_table $switch-case$15 $switch-default$16 $switch-default$16 $switch-case$12 $switch-default$16 $switch-default$16 $switch-default$16 $switch-default$16 $switch-case$9 $switch-default$16 $switch-case$8 $switch-default$16 + (i32.sub + (get_local $0) + (i32.const 2) ) ) - (br $label$break$Lout) ) - (br $label$break$Lout) - ) - (block $while-out$10 + (br $switch-default$16) ) - (br $label$break$Lout) + (br $switch-default$16) ) - (loop - (br $label$break$Lout) + (block $while-out$10 ) + (br $switch-default$16) + ) + (loop + (br $switch-default$16) ) ) (loop $label$break$L1 $label$continue$L1 |