diff options
author | Alon Zakai <alonzakai@gmail.com> | 2019-03-01 10:28:07 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-01 10:28:07 -0800 |
commit | 689fe405a3417fbfd59456035add6f6f53149f35 (patch) | |
tree | d6f1dcaf0cbb85eb3ae830f68a46c9a6627d1562 /test | |
parent | f59c3033e678ced61bc8c78e8ac9fbee31ef0210 (diff) | |
download | binaryen-689fe405a3417fbfd59456035add6f6f53149f35.tar.gz binaryen-689fe405a3417fbfd59456035add6f6f53149f35.tar.bz2 binaryen-689fe405a3417fbfd59456035add6f6f53149f35.zip |
Consistently optimize small added constants into load/store offsets (#1924)
See #1919 - we did not do this consistently before.
This adds a lowMemoryUnused option to PassOptions. It can be passed on the commandline with --low-memory-unused. If enabled, we run the new optimize-added-constants pass, which does the real work here, replacing older code in post-emscripten.
Aside from running at the proper time (unlike the old pass, see #1919), this also has a -propagate mode, which can do stuff like this:
y = x + 10
[..]
load(y)
[..]
load(y)
=>
y = x + 10
[..]
load(x, offset=10)
[..]
load(x, offset=10)
That is, it can propagate such offsets to the loads/stores. This pattern is common in big interpreter loops, where the pointers are offsets into a big struct of state.
The pass does this propagation by using a new feature of LocalGraph, which can verify which locals are in SSA mode. Binaryen IR is not SSA (intentionally, since it's a later IR), but if a local only has a single set for all gets, that means that local is in such a state, and can be optimized. The tricky thing is that all locals are initialized to zero, so there are at minimum two sets. But if we verify that the real set dominates all the gets, then the zero initialization cannot reach them, and we are safe.
This PR also makes safe-heap aware of lowMemoryUnused. If so, we check for not just an access of 0, but the range 0-1023.
This makes zlib 5% faster, with either the wasm backend or asm2wasm. It also makes it 0.5% smaller. Also helps sqlite (1.5% faster) and lua (1% faster)
Diffstat (limited to 'test')
19 files changed, 26046 insertions, 15126 deletions
diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm index 7ea5ff8d6..b62a74e88 100644 --- a/test/emcc_O2_hello_world.fromasm +++ b/test/emcc_O2_hello_world.fromasm @@ -7641,9 +7641,7 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 i32) - (local.set $12 + (local.set $7 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -7652,29 +7650,25 @@ (i32.const 48) ) ) - (local.set $9 + (local.set $11 (i32.add - (local.get $12) + (local.get $7) (i32.const 16) ) ) + (local.set $9 + (local.get $7) + ) (i32.store (local.tee $3 (i32.add - (local.tee $10 - (local.get $12) - ) + (local.get $7) (i32.const 32) ) ) - (local.tee $11 - (i32.load - (local.tee $7 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (local.tee $10 + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7682,15 +7676,10 @@ (local.get $3) (local.tee $8 (i32.sub - (i32.load - (local.tee $13 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (local.get $11) + (local.get $10) ) ) ) @@ -7708,7 +7697,7 @@ (i32.const 60) ) ) - (local.set $11 + (local.set $10 (i32.add (local.get $0) (i32.const 44) @@ -7742,24 +7731,24 @@ (local.get $0) ) (i32.store - (local.get $10) + (local.get $9) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $10) + (local.get $9) (local.get $5) ) (i32.store offset=8 - (local.get $10) + (local.get $9) (local.get $3) ) (local.set $8 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $10) + (local.get $9) ) ) ) @@ -7769,24 +7758,24 @@ (local.get $8) ) (block (result i32) - (i32.store - (local.get $9) + (i32.store offset=16 + (local.get $7) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $9) + (local.get $11) (local.get $5) ) (i32.store offset=8 - (local.get $9) + (local.get $11) (local.get $3) ) (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $9) + (local.get $11) ) ) ) @@ -7806,10 +7795,10 @@ (i32.const 0) ) (block - (local.set $16 + (local.set $14 (local.get $5) ) - (local.set $17 + (local.set $15 (local.get $3) ) (local.set $1 @@ -7827,7 +7816,7 @@ (if (i32.le_u (local.get $6) - (local.tee $14 + (local.tee $12 (i32.load offset=4 (local.get $5) ) @@ -7840,12 +7829,12 @@ (i32.const 2) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.add (local.get $6) - (i32.load - (local.get $7) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7855,20 +7844,20 @@ ) ) (local.set $4 - (local.get $14) + (local.get $12) ) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.set $4 @@ -7879,7 +7868,7 @@ (local.set $6 (i32.sub (local.get $6) - (local.get $14) + (local.get $12) ) ) (local.set $5 @@ -7918,7 +7907,7 @@ (br $while-in) ) ) - (local.set $15 + (local.set $13 (if (result i32) (i32.eq (local.get $1) @@ -7930,7 +7919,7 @@ (i32.add (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) (i32.load offset=48 @@ -7938,12 +7927,12 @@ ) ) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.get $4) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.get $2) @@ -7958,12 +7947,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -7977,26 +7966,26 @@ ) (if (result i32) (i32.eq - (local.get $17) + (local.get $15) (i32.const 2) ) (i32.const 0) (i32.sub (local.get $2) (i32.load offset=4 - (local.get $16) + (local.get $14) ) ) ) ) - (local.get $15) + (local.get $13) ) ) ) (global.set $STACKTOP - (local.get $12) + (local.get $7) ) - (local.get $15) + (local.get $13) ) (func $___fwritex (; 18 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8109,15 +8098,12 @@ ) (if (i32.ne - (i32.load8_s - (i32.add - (local.tee $5 - (i32.add - (local.get $2) - (i32.const -1) - ) + (i32.load8_s offset=672 + (local.tee $5 + (i32.add + (local.get $2) + (i32.const -1) ) - (i32.const 672) ) ) (i32.const 10) @@ -8538,28 +8524,14 @@ (func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) (if (result i32) (if (result i32) (i32.gt_u - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) (block (result i32) @@ -8580,8 +8552,8 @@ ) ) (i32.eqz - (i32.load - (local.get $1) + (i32.load offset=20 + (local.get $0) ) ) ) @@ -8591,24 +8563,14 @@ (block (result i32) (if (i32.lt_u - (local.tee $4 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 4) - ) - ) + (local.tee $1 + (i32.load offset=4 + (local.get $0) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $2 + (i32.load offset=8 + (local.get $0) ) ) ) @@ -8616,8 +8578,8 @@ (call_indirect (type $FUNCSIG$iiii) (local.get $0) (i32.sub - (local.get $4) - (local.get $6) + (local.get $1) + (local.get $2) ) (i32.const 1) (i32.add @@ -8636,20 +8598,20 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $1) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=4 + (local.get $0) (i32.const 0) ) (i32.const 0) @@ -9022,8 +8984,7 @@ ) (func $___stdio_seek (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local.set $4 + (local.set $3 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -9033,9 +8994,7 @@ ) ) (i32.store - (local.tee $3 - (local.get $4) - ) + (local.get $3) (i32.load offset=60 (local.get $0) ) @@ -9050,11 +9009,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -9073,19 +9030,19 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $3) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $3) ) ) ) (global.set $STACKTOP - (local.get $4) + (local.get $3) ) (local.get $0) ) diff --git a/test/emcc_O2_hello_world.fromasm.clamp b/test/emcc_O2_hello_world.fromasm.clamp index 7ea5ff8d6..b62a74e88 100644 --- a/test/emcc_O2_hello_world.fromasm.clamp +++ b/test/emcc_O2_hello_world.fromasm.clamp @@ -7641,9 +7641,7 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 i32) - (local.set $12 + (local.set $7 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -7652,29 +7650,25 @@ (i32.const 48) ) ) - (local.set $9 + (local.set $11 (i32.add - (local.get $12) + (local.get $7) (i32.const 16) ) ) + (local.set $9 + (local.get $7) + ) (i32.store (local.tee $3 (i32.add - (local.tee $10 - (local.get $12) - ) + (local.get $7) (i32.const 32) ) ) - (local.tee $11 - (i32.load - (local.tee $7 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (local.tee $10 + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7682,15 +7676,10 @@ (local.get $3) (local.tee $8 (i32.sub - (i32.load - (local.tee $13 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (local.get $11) + (local.get $10) ) ) ) @@ -7708,7 +7697,7 @@ (i32.const 60) ) ) - (local.set $11 + (local.set $10 (i32.add (local.get $0) (i32.const 44) @@ -7742,24 +7731,24 @@ (local.get $0) ) (i32.store - (local.get $10) + (local.get $9) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $10) + (local.get $9) (local.get $5) ) (i32.store offset=8 - (local.get $10) + (local.get $9) (local.get $3) ) (local.set $8 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $10) + (local.get $9) ) ) ) @@ -7769,24 +7758,24 @@ (local.get $8) ) (block (result i32) - (i32.store - (local.get $9) + (i32.store offset=16 + (local.get $7) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $9) + (local.get $11) (local.get $5) ) (i32.store offset=8 - (local.get $9) + (local.get $11) (local.get $3) ) (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $9) + (local.get $11) ) ) ) @@ -7806,10 +7795,10 @@ (i32.const 0) ) (block - (local.set $16 + (local.set $14 (local.get $5) ) - (local.set $17 + (local.set $15 (local.get $3) ) (local.set $1 @@ -7827,7 +7816,7 @@ (if (i32.le_u (local.get $6) - (local.tee $14 + (local.tee $12 (i32.load offset=4 (local.get $5) ) @@ -7840,12 +7829,12 @@ (i32.const 2) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.add (local.get $6) - (i32.load - (local.get $7) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7855,20 +7844,20 @@ ) ) (local.set $4 - (local.get $14) + (local.get $12) ) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.set $4 @@ -7879,7 +7868,7 @@ (local.set $6 (i32.sub (local.get $6) - (local.get $14) + (local.get $12) ) ) (local.set $5 @@ -7918,7 +7907,7 @@ (br $while-in) ) ) - (local.set $15 + (local.set $13 (if (result i32) (i32.eq (local.get $1) @@ -7930,7 +7919,7 @@ (i32.add (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) (i32.load offset=48 @@ -7938,12 +7927,12 @@ ) ) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.get $4) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.get $2) @@ -7958,12 +7947,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -7977,26 +7966,26 @@ ) (if (result i32) (i32.eq - (local.get $17) + (local.get $15) (i32.const 2) ) (i32.const 0) (i32.sub (local.get $2) (i32.load offset=4 - (local.get $16) + (local.get $14) ) ) ) ) - (local.get $15) + (local.get $13) ) ) ) (global.set $STACKTOP - (local.get $12) + (local.get $7) ) - (local.get $15) + (local.get $13) ) (func $___fwritex (; 18 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8109,15 +8098,12 @@ ) (if (i32.ne - (i32.load8_s - (i32.add - (local.tee $5 - (i32.add - (local.get $2) - (i32.const -1) - ) + (i32.load8_s offset=672 + (local.tee $5 + (i32.add + (local.get $2) + (i32.const -1) ) - (i32.const 672) ) ) (i32.const 10) @@ -8538,28 +8524,14 @@ (func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) (if (result i32) (if (result i32) (i32.gt_u - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) (block (result i32) @@ -8580,8 +8552,8 @@ ) ) (i32.eqz - (i32.load - (local.get $1) + (i32.load offset=20 + (local.get $0) ) ) ) @@ -8591,24 +8563,14 @@ (block (result i32) (if (i32.lt_u - (local.tee $4 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 4) - ) - ) + (local.tee $1 + (i32.load offset=4 + (local.get $0) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $2 + (i32.load offset=8 + (local.get $0) ) ) ) @@ -8616,8 +8578,8 @@ (call_indirect (type $FUNCSIG$iiii) (local.get $0) (i32.sub - (local.get $4) - (local.get $6) + (local.get $1) + (local.get $2) ) (i32.const 1) (i32.add @@ -8636,20 +8598,20 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $1) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=4 + (local.get $0) (i32.const 0) ) (i32.const 0) @@ -9022,8 +8984,7 @@ ) (func $___stdio_seek (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local.set $4 + (local.set $3 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -9033,9 +8994,7 @@ ) ) (i32.store - (local.tee $3 - (local.get $4) - ) + (local.get $3) (i32.load offset=60 (local.get $0) ) @@ -9050,11 +9009,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -9073,19 +9030,19 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $3) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $3) ) ) ) (global.set $STACKTOP - (local.get $4) + (local.get $3) ) (local.get $0) ) diff --git a/test/emcc_O2_hello_world.fromasm.imprecise b/test/emcc_O2_hello_world.fromasm.imprecise index c493e11b2..5be7015b2 100644 --- a/test/emcc_O2_hello_world.fromasm.imprecise +++ b/test/emcc_O2_hello_world.fromasm.imprecise @@ -7642,9 +7642,7 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 i32) - (local.set $12 + (local.set $7 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -7653,29 +7651,25 @@ (i32.const 48) ) ) - (local.set $9 + (local.set $11 (i32.add - (local.get $12) + (local.get $7) (i32.const 16) ) ) + (local.set $9 + (local.get $7) + ) (i32.store (local.tee $3 (i32.add - (local.tee $10 - (local.get $12) - ) + (local.get $7) (i32.const 32) ) ) - (local.tee $11 - (i32.load - (local.tee $7 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (local.tee $10 + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7683,15 +7677,10 @@ (local.get $3) (local.tee $8 (i32.sub - (i32.load - (local.tee $13 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (local.get $11) + (local.get $10) ) ) ) @@ -7709,7 +7698,7 @@ (i32.const 60) ) ) - (local.set $11 + (local.set $10 (i32.add (local.get $0) (i32.const 44) @@ -7743,24 +7732,24 @@ (local.get $0) ) (i32.store - (local.get $10) + (local.get $9) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $10) + (local.get $9) (local.get $5) ) (i32.store offset=8 - (local.get $10) + (local.get $9) (local.get $3) ) (local.set $8 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $10) + (local.get $9) ) ) ) @@ -7770,24 +7759,24 @@ (local.get $8) ) (block (result i32) - (i32.store - (local.get $9) + (i32.store offset=16 + (local.get $7) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $9) + (local.get $11) (local.get $5) ) (i32.store offset=8 - (local.get $9) + (local.get $11) (local.get $3) ) (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $9) + (local.get $11) ) ) ) @@ -7807,10 +7796,10 @@ (i32.const 0) ) (block - (local.set $15 + (local.set $13 (local.get $5) ) - (local.set $16 + (local.set $14 (local.get $3) ) (local.set $1 @@ -7828,7 +7817,7 @@ (if (i32.le_u (local.get $6) - (local.tee $14 + (local.tee $12 (i32.load offset=4 (local.get $5) ) @@ -7841,12 +7830,12 @@ (i32.const 2) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.add (local.get $6) - (i32.load - (local.get $7) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7856,20 +7845,20 @@ ) ) (local.set $4 - (local.get $14) + (local.get $12) ) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.set $4 @@ -7880,7 +7869,7 @@ (local.set $6 (i32.sub (local.get $6) - (local.get $14) + (local.get $12) ) ) (local.set $5 @@ -7920,7 +7909,7 @@ ) ) (global.set $STACKTOP - (local.get $12) + (local.get $7) ) (if (result i32) (i32.eq @@ -7933,7 +7922,7 @@ (i32.add (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) (i32.load offset=48 @@ -7941,12 +7930,12 @@ ) ) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.get $4) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.get $2) @@ -7961,12 +7950,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -7983,16 +7972,16 @@ (i32.sub (local.get $2) (i32.load offset=4 - (local.get $15) + (local.get $13) ) ) (i32.eq - (local.get $16) + (local.get $14) (i32.const 2) ) ) ) - (local.get $17) + (local.get $15) ) ) ) @@ -8107,15 +8096,12 @@ ) (if (i32.ne - (i32.load8_s - (i32.add - (local.tee $5 - (i32.add - (local.get $2) - (i32.const -1) - ) + (i32.load8_s offset=672 + (local.tee $5 + (i32.add + (local.get $2) + (i32.const -1) ) - (i32.const 672) ) ) (i32.const 10) @@ -8531,28 +8517,14 @@ (func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) (if (result i32) (if (result i32) (i32.gt_u - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) (block (result i32) @@ -8573,8 +8545,8 @@ ) ) (i32.eqz - (i32.load - (local.get $1) + (i32.load offset=20 + (local.get $0) ) ) ) @@ -8584,24 +8556,14 @@ (block (result i32) (if (i32.lt_u - (local.tee $4 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 4) - ) - ) + (local.tee $1 + (i32.load offset=4 + (local.get $0) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $2 + (i32.load offset=8 + (local.get $0) ) ) ) @@ -8609,8 +8571,8 @@ (call_indirect (type $FUNCSIG$iiii) (local.get $0) (i32.sub - (local.get $4) - (local.get $6) + (local.get $1) + (local.get $2) ) (i32.const 1) (i32.add @@ -8629,20 +8591,20 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $1) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=4 + (local.get $0) (i32.const 0) ) (i32.const 0) @@ -9034,8 +8996,7 @@ ) (func $___stdio_seek (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local.set $4 + (local.set $3 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -9045,9 +9006,7 @@ ) ) (i32.store - (local.tee $3 - (local.get $4) - ) + (local.get $3) (i32.load offset=60 (local.get $0) ) @@ -9062,11 +9021,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -9085,19 +9042,19 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $3) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $3) ) ) ) (global.set $STACKTOP - (local.get $4) + (local.get $3) ) (local.get $0) ) diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm index 16adc1457..917f9589f 100644 --- a/test/emcc_hello_world.fromasm +++ b/test/emcc_hello_world.fromasm @@ -264,8 +264,11 @@ (loop $while-in (if (i32.ne - (i32.load8_u offset=687 - (local.get $1) + (i32.load8_u + (i32.add + (local.get $1) + (i32.const 687) + ) ) (local.get $0) ) @@ -499,11 +502,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -522,14 +523,14 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $4) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $4) ) ) ) @@ -666,11 +667,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local.set $10 + (local.set $8 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -686,43 +683,33 @@ ) (call $abort) ) - (local.set $8 + (local.set $9 (i32.add - (local.get $10) + (local.get $8) (i32.const 16) ) ) - (i32.store - (local.tee $4 - (i32.add - (local.tee $9 - (local.get $10) - ) - (i32.const 32) - ) + (i32.store offset=32 + (local.tee $6 + (local.get $8) ) (local.tee $3 - (i32.load - (local.tee $6 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) ) (i32.store offset=4 - (local.get $4) + (local.tee $4 + (i32.add + (local.get $6) + (i32.const 32) + ) + ) (local.tee $3 (i32.sub - (i32.load - (local.tee $11 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) (local.get $3) ) @@ -736,25 +723,13 @@ (local.get $4) (local.get $2) ) - (local.set $13 - (i32.add - (local.get $0) - (i32.const 60) - ) - ) - (local.set $14 - (i32.add - (local.get $0) - (i32.const 44) - ) - ) (local.set $1 (local.get $4) ) (local.set $4 (i32.const 2) ) - (local.set $12 + (local.set $10 (i32.add (local.get $2) (local.get $3) @@ -774,24 +749,24 @@ (local.get $0) ) (i32.store - (local.get $9) - (i32.load - (local.get $13) + (local.get $6) + (i32.load offset=60 + (local.get $0) ) ) (i32.store offset=4 - (local.get $9) + (local.get $6) (local.get $1) ) (i32.store offset=8 - (local.get $9) + (local.get $6) (local.get $4) ) (local.set $3 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $9) + (local.get $6) ) ) ) @@ -800,25 +775,25 @@ ) ) (block - (i32.store + (i32.store offset=16 (local.get $8) - (i32.load - (local.get $13) + (i32.load offset=60 + (local.get $0) ) ) (i32.store offset=4 - (local.get $8) + (local.get $9) (local.get $1) ) (i32.store offset=8 - (local.get $8) + (local.get $9) (local.get $4) ) (local.set $3 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $8) + (local.get $9) ) ) ) @@ -827,7 +802,7 @@ (br_if $__rjti$0 (i32.eq (local.get $3) - (local.get $12) + (local.get $10) ) ) (br_if $__rjti$1 @@ -841,27 +816,33 @@ (i32.gt_u (local.get $3) (local.tee $5 - (i32.load offset=4 - (local.get $1) + (i32.load + (i32.add + (local.get $1) + (i32.const 4) + ) ) ) ) (block (result i32) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (local.tee $7 - (i32.load - (local.get $14) + (i32.load offset=44 + (local.get $0) ) ) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (local.get $7) ) (local.set $7 - (i32.load offset=12 - (local.get $1) + (i32.load + (i32.add + (local.get $1) + (i32.const 12) + ) ) ) (local.set $1 @@ -888,11 +869,11 @@ (i32.const 2) ) (block - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (i32.add - (i32.load - (local.get $6) + (i32.load offset=28 + (local.get $0) ) (local.get $3) ) @@ -921,16 +902,19 @@ (local.get $5) ) ) - (i32.store offset=4 - (local.get $1) + (i32.store + (i32.add + (local.get $1) + (i32.const 4) + ) (i32.sub (local.get $7) (local.get $5) ) ) - (local.set $12 + (local.set $10 (i32.sub - (local.get $12) + (local.get $10) (local.get $3) ) ) @@ -941,8 +925,8 @@ (local.get $0) (i32.add (local.tee $1 - (i32.load - (local.get $14) + (i32.load offset=44 + (local.get $0) ) ) (i32.load offset=48 @@ -950,12 +934,12 @@ ) ) ) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (local.get $1) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (local.get $1) ) (br $__rjto$1) @@ -964,12 +948,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -998,7 +982,7 @@ ) ) (global.set $STACKTOP - (local.get $10) + (local.get $8) ) (local.get $2) ) @@ -1010,11 +994,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local.set $6 + (local.set $2 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -1030,26 +1010,27 @@ ) (call $abort) ) - (local.set $3 + (local.set $6 (i32.add - (local.get $6) + (local.get $2) (i32.const 120) ) ) - (local.set $5 + (local.set $7 + (local.get $2) + ) + (local.set $4 (i32.add - (local.tee $4 - (local.get $6) - ) + (local.get $2) (i32.const 136) ) ) - (local.set $8 + (local.set $5 (i32.add - (local.tee $2 - (local.tee $7 + (local.tee $3 + (local.tee $8 (i32.add - (local.get $4) + (local.get $2) (i32.const 80) ) ) @@ -1059,23 +1040,23 @@ ) (loop $do-in (i32.store - (local.get $2) + (local.get $3) (i32.const 0) ) (br_if $do-in (i32.lt_s - (local.tee $2 + (local.tee $3 (i32.add - (local.get $2) + (local.get $3) (i32.const 4) ) ) - (local.get $8) + (local.get $5) ) ) ) - (i32.store - (local.get $3) + (i32.store offset=120 + (local.get $2) (i32.load (local.get $1) ) @@ -1085,9 +1066,9 @@ (i32.lt_s (call $_printf_core (i32.const 0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) (i32.const 0) ) @@ -1098,7 +1079,7 @@ (local.get $0) ) ) - (local.set $9 + (local.set $3 (i32.load (local.get $0) ) @@ -1113,87 +1094,62 @@ (i32.store (local.get $0) (i32.and - (local.get $9) + (local.get $3) (i32.const -33) ) ) ) (if - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 48) - ) - ) + (i32.load offset=48 + (local.get $0) ) (drop (call $_printf_core (local.get $0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) ) (block - (local.set $11 - (i32.load - (local.tee $10 - (i32.add - (local.get $0) - (i32.const 44) - ) - ) + (local.set $5 + (i32.load offset=44 + (local.get $0) ) ) - (i32.store - (local.get $10) - (local.get $5) + (i32.store offset=44 + (local.get $0) + (local.get $4) ) - (i32.store - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) - (local.get $5) + (i32.store offset=28 + (local.get $0) + (local.get $4) ) - (i32.store - (local.tee $12 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) - (local.get $5) + (i32.store offset=20 + (local.get $0) + (local.get $4) ) - (i32.store - (local.get $1) + (i32.store offset=48 + (local.get $0) (i32.const 80) ) - (i32.store - (local.tee $8 - (i32.add - (local.get $0) - (i32.const 16) - ) - ) + (i32.store offset=16 + (local.get $0) (i32.add - (local.get $5) + (local.get $4) (i32.const 80) ) ) (drop (call $_printf_core (local.get $0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) ) (if - (local.get $11) + (local.get $5) (block (drop (call_indirect (type $FUNCSIG$iiii) @@ -1212,28 +1168,28 @@ ) ) (drop - (i32.load - (local.get $12) + (i32.load offset=20 + (local.get $0) ) ) - (i32.store - (local.get $10) - (local.get $11) + (i32.store offset=44 + (local.get $0) + (local.get $5) ) - (i32.store - (local.get $1) + (i32.store offset=48 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $8) + (i32.store offset=16 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $12) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) ) @@ -1247,7 +1203,7 @@ (local.get $0) ) (i32.and - (local.get $9) + (local.get $3) (i32.const 32) ) ) @@ -1257,25 +1213,19 @@ ) ) (global.set $STACKTOP - (local.get $6) + (local.get $2) ) ) (func $___fwritex (; 37 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) (block $label$break$L5 (block $__rjti$0 (br_if $__rjti$0 (local.tee $3 - (i32.load - (local.tee $4 - (i32.add - (local.get $2) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $2) ) ) ) @@ -1287,8 +1237,8 @@ ) (block (local.set $3 - (i32.load - (local.get $4) + (i32.load offset=16 + (local.get $2) ) ) (br $__rjti$0) @@ -1301,13 +1251,8 @@ (i32.sub (local.get $3) (local.tee $4 - (i32.load - (local.tee $5 - (i32.add - (local.get $2) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $2) ) ) ) @@ -1359,7 +1304,7 @@ (i32.load8_s (i32.add (local.get $0) - (local.tee $6 + (local.tee $5 (i32.add (local.get $3) (i32.const -1) @@ -1371,7 +1316,7 @@ ) (block (local.set $3 - (local.get $6) + (local.get $5) ) (br $while-in) ) @@ -1397,8 +1342,8 @@ ) ) (local.set $4 - (i32.load - (local.get $5) + (i32.load offset=20 + (local.get $2) ) ) (local.set $1 @@ -1425,11 +1370,11 @@ (local.get $1) ) ) - (i32.store - (local.get $5) + (i32.store offset=20 + (local.get $2) (i32.add - (i32.load - (local.get $5) + (i32.load offset=20 + (local.get $2) ) (local.get $1) ) @@ -1438,21 +1383,14 @@ ) (func $___towrite (; 38 ;) (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local.set $1 - (i32.load8_s - (local.tee $2 - (i32.add + (i32.store8 offset=74 + (local.get $0) + (i32.or + (local.tee $1 + (i32.load8_s offset=74 (local.get $0) - (i32.const 74) ) ) - ) - ) - (i32.store8 - (local.get $2) - (i32.or - (local.get $1) (i32.add (local.get $1) (i32.const 255) @@ -1910,29 +1848,15 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) (block $__rjto$0 (result i32) (block $__rjti$0 (br_if $__rjti$0 (i32.le_u - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -1956,8 +1880,8 @@ ) ) (br_if $__rjti$0 - (i32.load - (local.get $2) + (i32.load offset=20 + (local.get $0) ) ) (br $__rjto$0 @@ -1966,29 +1890,19 @@ ) (if (i32.lt_u - (local.tee $4 - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 4) - ) - ) + (local.tee $1 + (i32.load offset=4 + (local.get $0) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $2 + (i32.load offset=8 + (local.get $0) ) ) ) (block - (local.set $7 + (local.set $3 (i32.load offset=40 (local.get $0) ) @@ -1997,13 +1911,13 @@ (call_indirect (type $FUNCSIG$iiii) (local.get $0) (i32.sub - (local.get $4) - (local.get $6) + (local.get $1) + (local.get $2) ) (i32.const 1) (i32.add (i32.and - (local.get $7) + (local.get $3) (i32.const 7) ) (i32.const 2) @@ -2016,20 +1930,20 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $1) + (i32.store offset=4 + (local.get $0) (i32.const 0) ) (i32.const 0) @@ -2133,8 +2047,7 @@ (local $48 i32) (local $49 i32) (local $50 i32) - (local $51 i32) - (local.set $34 + (local.set $20 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -2150,16 +2063,16 @@ ) (call $abort) ) - (local.set $20 + (local.set $39 (i32.add - (local.get $34) + (local.get $20) (i32.const 16) ) ) - (local.set $35 + (local.set $33 (i32.add (local.tee $13 - (local.get $34) + (local.get $20) ) (i32.const 528) ) @@ -2170,7 +2083,7 @@ (i32.const 0) ) ) - (local.set $38 + (local.set $36 (local.tee $25 (i32.add (local.tee $4 @@ -2183,21 +2096,16 @@ ) ) ) - (local.set $39 + (local.set $40 (i32.add (local.get $4) (i32.const 39) ) ) - (local.set $43 + (local.set $41 (i32.add - (local.tee $40 - (i32.add - (local.get $13) - (i32.const 8) - ) - ) - (i32.const 4) + (local.get $13) + (i32.const 8) ) ) (local.set $32 @@ -2211,18 +2119,18 @@ (i32.const 12) ) ) - (local.set $41 + (local.set $42 (i32.add (local.get $4) (i32.const 11) ) ) - (local.set $44 + (local.set $43 (i32.sub (local.tee $27 (local.get $32) ) - (local.tee $36 + (local.tee $34 (local.tee $23 (i32.add (local.get $13) @@ -2232,21 +2140,21 @@ ) ) ) - (local.set $45 + (local.set $44 (i32.sub (i32.const -2) - (local.get $36) + (local.get $34) ) ) - (local.set $46 + (local.set $45 (i32.add (local.get $27) (i32.const 2) ) ) - (local.set $48 + (local.set $47 (i32.add - (local.tee $47 + (local.tee $46 (i32.add (local.get $13) (i32.const 24) @@ -2255,7 +2163,7 @@ (i32.const 288) ) ) - (local.set $42 + (local.set $37 (local.tee $29 (i32.add (local.get $23) @@ -2263,7 +2171,7 @@ ) ) ) - (local.set $33 + (local.set $38 (i32.add (local.get $23) (i32.const 8) @@ -3571,7 +3479,7 @@ (local.tee $10 (i32.add (i32.sub - (local.get $38) + (local.get $36) (local.tee $6 (local.get $7) ) @@ -3699,14 +3607,14 @@ (local.get $13) ) ) - (i32.store8 - (local.get $39) + (i32.store8 offset=575 + (local.get $13) (i32.load (local.get $13) ) ) (local.set $4 - (local.get $39) + (local.get $40) ) (local.set $10 (local.get $7) @@ -3751,19 +3659,19 @@ (local.get $13) ) ) - (i32.store - (local.get $40) + (i32.store offset=8 + (local.get $20) (i32.load (local.get $13) ) ) - (i32.store - (local.get $43) + (i32.store offset=12 + (local.get $13) (i32.const 0) ) (i32.store (local.get $13) - (local.get $40) + (local.get $41) ) (local.set $7 (i32.const -1) @@ -3797,7 +3705,7 @@ (local.get $13) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (i32.const 0) ) @@ -3886,7 +3794,7 @@ (f64.mul (call $_frexp (local.get $15) - (local.get $20) + (local.get $39) ) (f64.const 2) ) @@ -3894,10 +3802,10 @@ (f64.const 0) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (i32.const -1) @@ -4011,7 +3919,7 @@ (i32.sub (i32.const 0) (local.tee $6 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -4039,12 +3947,12 @@ (local.get $32) ) (block - (i32.store8 - (local.get $41) + (i32.store8 offset=587 + (local.get $13) (i32.const 48) ) (local.set $4 - (local.get $41) + (local.get $42) ) ) ) @@ -4131,7 +4039,7 @@ (i32.const 1) ) ) - (local.get $36) + (local.get $34) ) (i32.const 1) ) @@ -4180,14 +4088,14 @@ (i32.sub (i32.add (local.get $5) - (local.get $46) + (local.get $45) ) (local.get $7) ) (i32.add (local.get $4) (i32.sub - (local.get $44) + (local.get $43) (local.get $7) ) ) @@ -4199,7 +4107,7 @@ (i32.lt_s (i32.add (local.get $4) - (local.get $45) + (local.get $44) ) (local.get $5) ) @@ -4238,7 +4146,7 @@ (local.set $4 (i32.sub (local.get $4) - (local.get $36) + (local.get $34) ) ) (if @@ -4315,11 +4223,11 @@ (if (result f64) (local.get $4) (block (result f64) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $4 (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (i32.const -28) @@ -4333,7 +4241,7 @@ ) (block (result f64) (local.set $4 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -4344,8 +4252,8 @@ (local.set $6 (local.tee $7 (select + (local.get $46) (local.get $47) - (local.get $48) (i32.lt_s (local.get $4) (i32.const 0) @@ -4388,7 +4296,7 @@ (if (i32.gt_s (local.tee $8 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -4508,11 +4416,11 @@ ) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $8 (i32.sub - (i32.load + (i32.load offset=16 (local.get $20) ) (local.get $12) @@ -4603,7 +4511,7 @@ (i32.const -1) ) ) - (local.set $37 + (local.set $35 (i32.shr_u (i32.const 1000000000) (local.get $12) @@ -4636,7 +4544,7 @@ (local.get $8) (local.get $11) ) - (local.get $37) + (local.get $35) ) ) (br_if $while-in74 @@ -4720,11 +4628,11 @@ ) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $8 (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (local.get $12) @@ -4842,7 +4750,7 @@ (i32.const 103) ) ) - (local.tee $37 + (local.tee $35 (i32.ne (local.get $17) (i32.const 0) @@ -4946,7 +4854,7 @@ (if (i32.eqz (i32.and - (local.tee $49 + (local.tee $48 (i32.eq (i32.add (local.get $5) @@ -4961,7 +4869,7 @@ ) ) (block $do-once81 - (local.set $50 + (local.set $49 (call $i32u-div (local.get $24) (local.get $11) @@ -4971,7 +4879,7 @@ (if (result f64) (i32.lt_u (local.get $12) - (local.tee $51 + (local.tee $50 (call $i32s-div (local.get $11) (i32.const 2) @@ -4983,10 +4891,10 @@ (f64.const 1) (f64.const 1.5) (i32.and - (local.get $49) + (local.get $48) (i32.eq (local.get $12) - (local.get $51) + (local.get $50) ) ) ) @@ -4997,7 +4905,7 @@ (f64.const 9007199254740994) (f64.const 9007199254740992) (i32.and - (local.get $50) + (local.get $49) (i32.const 1) ) ) @@ -5232,7 +5140,7 @@ (i32.add (local.get $17) (i32.xor - (local.get $37) + (local.get $35) (i32.const 1) ) ) @@ -5657,12 +5565,12 @@ (local.get $29) ) ) - (i32.store8 - (local.get $33) + (i32.store8 offset=596 + (local.get $13) (i32.const 48) ) (local.set $6 - (local.get $33) + (local.get $38) ) ) (block @@ -5704,7 +5612,7 @@ (call $___fwritex (local.get $6) (i32.sub - (local.get $42) + (local.get $37) (local.get $6) ) (local.get $0) @@ -5901,12 +5809,12 @@ (local.get $29) ) (block - (i32.store8 - (local.get $33) + (i32.store8 offset=596 + (local.get $13) (i32.const 48) ) (local.set $4 - (local.get $33) + (local.get $38) ) ) ) @@ -5990,7 +5898,7 @@ ) (local.set $7 (i32.sub - (local.get $42) + (local.get $37) (local.get $4) ) ) @@ -6403,7 +6311,7 @@ (i32.lt_s (local.tee $6 (call $_wctomb - (local.get $35) + (local.get $33) (local.get $8) ) ) @@ -6488,7 +6396,7 @@ (i32.add (local.tee $7 (call $_wctomb - (local.get $35) + (local.get $33) (local.get $7) ) ) @@ -6509,7 +6417,7 @@ ) ) (call $___fwritex - (local.get $35) + (local.get $33) (local.get $7) (local.get $0) ) @@ -6600,7 +6508,7 @@ (i32.const 1) ) (i32.sub - (local.get $38) + (local.get $36) (local.tee $4 (local.get $6) ) @@ -6815,7 +6723,7 @@ ) ) (global.set $STACKTOP - (local.get $34) + (local.get $20) ) (local.get $16) ) @@ -6900,8 +6808,11 @@ (local.get $0) (local.get $1) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -6941,8 +6852,11 @@ (local.get $0) (local.get $3) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -6965,8 +6879,11 @@ ) ) (local.set $3 - (i32.load offset=4 - (local.get $3) + (i32.load + (i32.add + (local.get $3) + (i32.const 4) + ) ) ) (i32.store @@ -6980,8 +6897,11 @@ (local.get $0) (local.get $5) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (local.get $3) ) (br $label$break$L1) @@ -7023,8 +6943,11 @@ ) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -7067,8 +6990,11 @@ (i32.const 65535) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -7110,8 +7036,11 @@ ) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -7154,8 +7083,11 @@ (i32.const 255) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -7496,569 +7428,575 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local.set $0 - (if (result i32) - (i32.lt_u - (local.get $0) - (i32.const 245) - ) - (block (result i32) - (if - (i32.and - (local.tee $10 - (i32.shr_u - (local.tee $6 - (i32.load - (i32.const 176) + (block $folding-inner1 + (local.set $0 + (if (result i32) + (i32.lt_u + (local.get $0) + (i32.const 245) + ) + (block (result i32) + (if + (i32.and + (local.tee $12 + (i32.shr_u + (local.tee $6 + (i32.load + (i32.const 176) + ) ) - ) - (local.tee $13 - (i32.shr_u - (local.tee $2 - (select - (i32.const 16) - (i32.and - (i32.add + (local.tee $13 + (i32.shr_u + (local.tee $4 + (select + (i32.const 16) + (i32.and + (i32.add + (local.get $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (local.get $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (local.get $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (if - (i32.eq - (local.tee $7 - (i32.load - (local.tee $1 - (i32.add - (local.tee $11 - (i32.load - (local.tee $3 - (i32.add - (local.tee $2 + (block + (if + (i32.eq + (local.tee $2 + (i32.load offset=8 + (local.tee $3 + (i32.load offset=8 + (local.tee $1 + (i32.add + (i32.shl + (local.tee $0 (i32.add - (i32.shl - (local.tee $4 - (i32.add - (i32.xor - (i32.and - (local.get $10) - (i32.const 1) - ) - (i32.const 1) - ) - (local.get $13) - ) + (i32.xor + (i32.and + (local.get $12) + (i32.const 1) ) - (i32.const 3) + (i32.const 1) ) - (i32.const 216) + (local.get $13) ) ) - (i32.const 8) + (i32.const 3) ) + (i32.const 216) ) ) ) - (i32.const 8) ) ) ) + (local.get $1) ) - (local.get $2) - ) - (i32.store - (i32.const 176) - (i32.and - (local.get $6) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $4) - ) - (i32.const -1) - ) - ) - ) - (block - (if - (i32.lt_u - (local.get $7) - (i32.load - (i32.const 192) + (i32.store + (i32.const 176) + (i32.and + (local.get $6) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $0) + ) + (i32.const -1) ) ) - (call $_abort) ) - (if - (i32.eq - (local.get $11) - (i32.load - (local.tee $0 - (i32.add - (local.get $7) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (local.get $2) + (i32.load + (i32.const 192) ) ) + (call $_abort) ) - (block - (i32.store - (local.get $0) - (local.get $2) - ) - (i32.store + (if + (i32.eq (local.get $3) - (local.get $7) + (i32.load offset=12 + (local.get $2) + ) ) + (block + (i32.store offset=12 + (local.get $2) + (local.get $1) + ) + (i32.store offset=8 + (local.get $1) + (local.get $2) + ) + ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (local.get $11) - (i32.or - (local.tee $0 - (i32.shl - (local.get $4) - (i32.const 3) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.tee $0 + (i32.shl + (local.get $0) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) - (local.get $11) + (local.get $3) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (return - (local.get $1) + (br $folding-inner1) ) ) - ) - (if (result i32) - (i32.gt_u - (local.get $2) - (local.tee $0 - (i32.load - (i32.const 184) + (if (result i32) + (i32.gt_u + (local.get $4) + (local.tee $0 + (i32.load + (i32.const 184) + ) ) ) - ) - (block (result i32) - (if - (local.get $10) - (block - (if - (i32.eq - (local.tee $8 - (i32.load - (local.tee $4 - (i32.add - (local.tee $10 - (i32.load - (local.tee $3 - (i32.add - (local.tee $7 + (block (result i32) + (if + (local.get $12) + (block + (if + (i32.eq + (local.tee $9 + (i32.load offset=8 + (local.tee $11 + (i32.load offset=8 + (local.tee $7 + (i32.add + (i32.shl + (local.tee $2 (i32.add - (i32.shl - (local.tee $11 - (i32.add + (i32.or + (i32.or + (i32.or (i32.or - (i32.or - (i32.or - (i32.or - (local.tee $3 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.add - (i32.and - (local.tee $3 - (i32.and - (i32.or - (local.tee $3 - (i32.shl - (i32.const 2) - (local.get $13) - ) - ) - (i32.sub - (i32.const 0) - (local.get $3) - ) - ) - (i32.shl - (local.get $10) - (local.get $13) - ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 + (i32.add + (i32.and + (local.tee $2 + (i32.and + (i32.or + (local.tee $2 + (i32.shl + (i32.const 2) + (local.get $13) ) ) (i32.sub (i32.const 0) - (local.get $3) + (local.get $2) ) ) - (i32.const -1) + (i32.shl + (local.get $12) + (local.get $13) + ) ) ) - (i32.const 12) - ) - (i32.const 16) - ) - ) - (local.tee $3 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) + (i32.sub + (i32.const 0) + (local.get $2) ) - (i32.const 5) ) - (i32.const 8) + (i32.const -1) ) ) + (i32.const 12) ) - (local.tee $3 - (i32.and + (i32.const 16) + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 2) + (local.get $7) + (local.get $2) ) - (i32.const 4) ) + (i32.const 5) ) + (i32.const 8) ) - (local.tee $3 - (i32.and + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 1) + (local.get $7) + (local.get $2) ) - (i32.const 2) ) + (i32.const 2) ) + (i32.const 4) ) - (local.tee $3 - (i32.and + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 1) + (local.get $7) + (local.get $2) ) - (i32.const 1) ) + (i32.const 1) ) + (i32.const 2) ) + ) + ) + (local.tee $2 + (i32.and (i32.shr_u - (local.get $4) - (local.get $3) + (local.tee $7 + (i32.shr_u + (local.get $7) + (local.get $2) + ) + ) + (i32.const 1) ) + (i32.const 1) ) ) - (i32.const 3) ) - (i32.const 216) + (i32.shr_u + (local.get $7) + (local.get $2) + ) ) ) - (i32.const 8) + (i32.const 3) ) + (i32.const 216) ) ) ) - (i32.const 8) ) ) ) + (local.get $7) ) - (local.get $7) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (local.get $6) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $11) + (block + (i32.store + (i32.const 176) + (i32.and + (local.get $6) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $2) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (local.set $9 - (local.get $0) - ) - ) - (block - (if - (i32.lt_u - (local.get $8) - (i32.load - (i32.const 192) - ) + (local.set $8 + (local.get $0) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 12) - ) - ) - ) - (local.get $10) - ) - (block - (i32.store - (local.get $0) - (local.get $7) - ) - (i32.store - (local.get $3) - (local.get $8) - ) - (local.set $9 + (block + (if + (i32.lt_u + (local.get $9) (i32.load - (i32.const 184) + (i32.const 192) ) ) + (call $_abort) ) - (call $_abort) - ) - ) - ) - (i32.store offset=4 - (local.get $10) - (i32.or - (local.get $2) - (i32.const 3) - ) - ) - (i32.store offset=4 - (local.tee $7 - (i32.add - (local.get $2) - (local.get $10) - ) - ) - (i32.or - (local.tee $11 - (i32.sub - (i32.shl + (if + (i32.eq + (i32.load offset=12 + (local.get $9) + ) (local.get $11) - (i32.const 3) ) - (local.get $2) + (block + (i32.store offset=12 + (local.get $9) + (local.get $7) + ) + (i32.store offset=8 + (local.get $7) + (local.get $9) + ) + (local.set $8 + (i32.load + (i32.const 184) + ) + ) + ) + (call $_abort) ) ) - (i32.const 1) ) - ) - (i32.store - (i32.add - (local.get $7) + (i32.store offset=4 (local.get $11) + (i32.or + (local.get $4) + (i32.const 3) + ) ) - (local.get $11) - ) - (if - (local.get $9) - (block - (local.set $6 - (i32.load - (i32.const 196) + (i32.store offset=4 + (local.tee $7 + (i32.add + (local.get $4) + (local.get $11) ) ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $0 - (i32.shr_u - (local.get $9) - (i32.const 3) - ) + (i32.or + (local.tee $9 + (i32.sub + (i32.shl + (local.get $2) + (i32.const 3) ) - (i32.const 3) + (local.get $4) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (local.tee $3 - (i32.load - (i32.const 176) - ) + ) + (i32.store + (i32.add + (local.get $7) + (local.get $9) + ) + (local.get $9) + ) + (if + (local.get $8) + (block + (local.set $6 + (i32.load + (i32.const 196) ) - (local.tee $0 + ) + (local.set $4 + (i32.add (i32.shl - (i32.const 1) - (local.get $0) + (local.tee $0 + (i32.shr_u + (local.get $8) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $2 (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (i32.const 176) ) ) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) ) ) - (call $_abort) (block - (local.set $5 - (local.get $3) + (local.set $2 + (i32.add + (local.get $4) + (i32.const 8) + ) ) - (local.set $1 - (local.get $0) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $4) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $3 + (local.get $2) + ) + (local.set $1 + (local.get $0) + ) + ) ) ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $3) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $2) + ) ) - ) - (local.set $5 - (i32.add - (local.get $2) - (i32.const 8) + (local.set $3 + (i32.add + (local.get $4) + (i32.const 8) + ) + ) + (local.set $1 + (local.get $4) ) ) - (local.set $1 - (local.get $2) + ) + (i32.store + (local.get $3) + (local.get $6) + ) + (i32.store + (i32.add + (local.get $1) + (i32.const 12) ) + (local.get $6) + ) + (i32.store offset=8 + (local.get $6) + (local.get $1) + ) + (i32.store offset=12 + (local.get $6) + (local.get $4) ) ) - (i32.store - (local.get $5) - (local.get $6) - ) - (i32.store offset=12 - (local.get $1) - (local.get $6) - ) - (i32.store offset=8 - (local.get $6) - (local.get $1) - ) - (i32.store offset=12 - (local.get $6) - (local.get $2) + ) + (i32.store + (i32.const 184) + (local.get $9) + ) + (i32.store + (i32.const 196) + (local.get $7) + ) + (return + (i32.add + (local.get $11) + (i32.const 8) ) ) ) - (i32.store - (i32.const 184) - (local.get $11) - ) - (i32.store - (i32.const 196) - (local.get $7) - ) - (return - (local.get $4) - ) ) - ) - (if (result i32) - (local.tee $0 - (i32.load - (i32.const 180) + (if (result i32) + (local.tee $0 + (i32.load + (i32.const 180) + ) ) - ) - (block - (local.set $11 - (i32.sub - (i32.and - (i32.load offset=4 - (local.tee $0 - (i32.load offset=480 - (i32.shl + (block + (local.set $7 + (i32.sub + (i32.and + (i32.load offset=4 + (local.tee $0 + (i32.load (i32.add - (i32.or - (i32.or + (i32.shl + (i32.add (i32.or (i32.or - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.add - (i32.and - (local.get $0) - (i32.sub - (i32.const 0) + (i32.or + (i32.or + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.add + (i32.and + (local.get $0) + (i32.sub + (i32.const 0) + (local.get $0) + ) + ) + (i32.const -1) + ) + ) + (i32.const 12) + ) + (i32.const 16) + ) + ) + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.shr_u + (local.get $1) (local.get $0) ) ) - (i32.const -1) + (i32.const 5) ) + (i32.const 8) ) - (i32.const 12) ) - (i32.const 16) + ) + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.shr_u + (local.get $1) + (local.get $0) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) ) ) (local.tee $0 @@ -8070,9 +8008,9 @@ (local.get $0) ) ) - (i32.const 5) + (i32.const 1) ) - (i32.const 8) + (i32.const 2) ) ) ) @@ -8085,881 +8023,876 @@ (local.get $0) ) ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.shr_u - (local.get $1) - (local.get $0) - ) + (i32.const 1) ) (i32.const 1) ) - (i32.const 2) ) ) - ) - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.shr_u - (local.get $1) - (local.get $0) - ) - ) - (i32.const 1) - ) - (i32.const 1) + (i32.shr_u + (local.get $1) + (local.get $0) ) ) + (i32.const 2) ) - (i32.shr_u - (local.get $1) - (local.get $0) - ) + (i32.const 480) ) - (i32.const 2) ) ) ) + (i32.const -8) ) - (i32.const -8) + (local.get $4) ) - (local.get $2) ) - ) - (local.set $7 - (local.get $0) - ) - (loop $while-in - (block $while-out - (if - (local.tee $1 - (i32.load offset=16 - (local.get $0) - ) - ) - (local.set $0 - (local.get $1) - ) + (local.set $3 + (local.tee $1 + (local.get $0) + ) + ) + (loop $while-in + (block $while-out (if (i32.eqz (local.tee $0 - (i32.load offset=20 - (local.get $0) + (i32.load + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) ) - (block - (local.set $6 - (local.get $11) + (if + (i32.eqz + (local.tee $0 + (i32.load + (i32.add + (local.get $1) + (i32.const 20) + ) + ) + ) ) - (local.set $8 - (local.get $7) + (block + (local.set $9 + (local.get $7) + ) + (local.set $6 + (local.get $3) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (local.set $6 - (i32.lt_u - (local.tee $1 - (i32.sub - (i32.and - (i32.load offset=4 - (local.get $0) + (local.set $9 + (i32.lt_u + (local.tee $1 + (i32.sub + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $4) ) - (local.get $2) ) + (local.get $7) ) - (local.get $11) ) - ) - (local.set $11 - (select - (local.get $1) - (local.get $11) - (local.get $6) + (local.set $7 + (select + (local.get $1) + (local.get $7) + (local.get $9) + ) ) - ) - (local.set $7 - (select - (local.get $0) - (local.get $7) - (local.get $6) + (local.set $3 + (select + (local.tee $1 + (local.get $0) + ) + (local.get $3) + (local.get $9) + ) ) + (br $while-in) ) - (br $while-in) ) - ) - (if - (i32.lt_u - (local.get $8) - (local.tee $10 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $6) + (local.tee $11 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.ge_u - (local.get $8) - (local.tee $5 - (i32.add - (local.get $2) - (local.get $8) + (if + (i32.ge_u + (local.get $6) + (local.tee $12 + (i32.add + (local.get $4) + (local.get $6) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (local.set $9 - (i32.load offset=24 - (local.get $8) + (local.set $8 + (i32.load offset=24 + (local.get $6) + ) ) - ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 - (local.get $8) + (if + (i32.eq + (local.tee $0 + (i32.load offset=12 + (local.get $6) + ) ) + (local.get $6) ) - (local.get $8) - ) - (block $do-once4 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 20) - ) - ) - ) + (block $do-once4 + (local.set $0 + (i32.add + (local.get $6) + (i32.const 20) ) ) - (br_if $do-once4 + (if (i32.eqz (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 16) + (i32.load offset=20 + (local.get $6) + ) + ) + ) + (block + (local.set $0 + (i32.add + (local.get $6) + (i32.const 16) + ) + ) + (br_if $do-once4 + (i32.eqz + (local.tee $1 + (i32.load offset=16 + (local.get $6) ) ) ) ) ) ) - ) - (loop $while-in7 - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 20) + (loop $while-in7 + (if + (local.tee $3 + (i32.load + (local.tee $7 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) - ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $3) + ) + (local.set $0 + (local.get $7) + ) + (br $while-in7) ) - (br $while-in7) ) - ) - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 16) + (if + (local.tee $3 + (i32.load + (local.tee $7 + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) ) - ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $3) + ) + (local.set $0 + (local.get $7) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $10) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $4 - (local.get $1) + (local.get $11) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $11 - (i32.load offset=8 - (local.get $8) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $10) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $8) - (i32.load - (local.tee $7 - (i32.add - (local.get $11) - (i32.const 12) - ) + (local.set $10 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load offset=8 + (local.get $6) ) ) + (local.get $11) ) - (local.get $8) + (call $_abort) ) - (block - (i32.store - (local.get $7) - (local.get $0) + (if + (i32.ne + (local.get $6) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $11) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $6) ) - (local.set $4 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $10 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (if - (local.get $9) - (block $do-once8 - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $8) + (if + (local.get $8) + (block $do-once8 + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load offset=28 + (local.get $6) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $6) ) - (local.get $8) - ) - (block - (i32.store - (local.get $0) - (local.get $4) - ) - (if - (i32.eqz - (local.get $4) + (block + (i32.store + (local.get $0) + (local.get $10) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (if + (i32.eqz + (local.get $10) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (local.get $9) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (local.get $8) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $9) - (i32.const 16) - ) + (if + (i32.eq + (i32.load offset=16 + (local.get $8) ) + (local.get $6) + ) + (i32.store offset=16 + (local.get $8) + (local.get $10) + ) + (i32.store offset=20 + (local.get $8) + (local.get $10) ) - (local.get $8) - ) - (i32.store - (local.get $0) - (local.get $4) - ) - (i32.store offset=20 - (local.get $9) - (local.get $4) ) - ) - (br_if $do-once8 - (i32.eqz - (local.get $4) + (br_if $do-once8 + (i32.eqz + (local.get $10) + ) ) ) ) - ) - (if - (i32.lt_u - (local.get $4) - (local.tee $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $10) + (local.tee $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $4) - (local.get $9) - ) - (if - (local.tee $1 - (i32.load offset=16 - (local.get $8) + (i32.store + (i32.add + (local.get $10) + (i32.const 24) ) + (local.get $8) ) (if - (i32.lt_u - (local.get $1) - (local.get $0) + (local.tee $1 + (i32.load offset=16 + (local.get $6) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (local.get $4) + (if + (i32.lt_u (local.get $1) + (local.get $0) ) - (i32.store offset=24 - (local.get $1) - (local.get $4) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $10) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $10) + ) ) ) ) - ) - (if - (local.tee $0 - (i32.load offset=20 - (local.get $8) - ) - ) (if - (i32.lt_u - (local.get $0) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.load offset=20 + (local.get $6) ) ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $4) + (if + (i32.lt_u (local.get $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (local.get $0) - (local.get $4) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $10) + (i32.const 20) + ) + (local.get $0) + ) + (i32.store offset=24 + (local.get $0) + (local.get $10) + ) ) ) ) ) ) - ) - (if - (i32.lt_u - (local.get $6) - (i32.const 16) - ) - (block - (i32.store offset=4 - (local.get $8) - (i32.or - (local.tee $0 - (i32.add - (local.get $2) - (local.get $6) + (if + (i32.lt_u + (local.get $9) + (i32.const 16) + ) + (block + (i32.store offset=4 + (local.get $6) + (i32.or + (local.tee $0 + (i32.add + (local.get $4) + (local.get $9) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) - (local.get $8) + (local.get $6) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (local.get $8) - (i32.or - (local.get $2) - (i32.const 3) - ) - ) - (i32.store offset=4 - (local.get $5) - (i32.or + (block + (i32.store offset=4 (local.get $6) - (i32.const 1) + (i32.or + (local.get $4) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add - (local.get $5) - (local.get $6) + (i32.store offset=4 + (local.get $12) + (i32.or + (local.get $9) + (i32.const 1) + ) ) - (local.get $6) - ) - (if - (local.tee $0 - (i32.load - (i32.const 184) + (i32.store + (i32.add + (local.get $9) + (local.get $12) ) + (local.get $9) ) - (block - (local.set $4 + (if + (local.tee $0 (i32.load - (i32.const 196) + (i32.const 184) ) ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $0 - (i32.shr_u - (local.get $0) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (local.set $4 + (i32.load + (i32.const 196) ) - (i32.const 216) ) - ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (local.set $3 + (i32.add (i32.shl - (i32.const 1) - (local.get $0) + (local.tee $0 + (i32.shr_u + (local.get $0) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $1 (i32.load - (local.tee $1 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (i32.const 176) ) ) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) ) ) - (call $_abort) (block - (local.set $12 - (local.get $1) + (local.set $1 + (i32.add + (local.get $3) + (i32.const 8) + ) ) - (local.set $3 - (local.get $0) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $3) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $5 + (local.get $1) + ) + (local.set $2 + (local.get $0) + ) + ) ) ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) ) - ) - (local.set $12 - (i32.add - (local.get $2) - (i32.const 8) + (local.set $5 + (i32.add + (local.get $3) + (i32.const 8) + ) + ) + (local.set $2 + (local.get $3) ) ) - (local.set $3 + ) + (i32.store + (local.get $5) + (local.get $4) + ) + (i32.store + (i32.add (local.get $2) + (i32.const 12) ) + (local.get $4) + ) + (i32.store offset=8 + (local.get $4) + (local.get $2) + ) + (i32.store offset=12 + (local.get $4) + (local.get $3) ) ) - (i32.store - (local.get $12) - (local.get $4) - ) - (i32.store offset=12 - (local.get $3) - (local.get $4) - ) - (i32.store offset=8 - (local.get $4) - (local.get $3) - ) - (i32.store offset=12 - (local.get $4) - (local.get $2) - ) + ) + (i32.store + (i32.const 184) + (local.get $9) + ) + (i32.store + (i32.const 196) + (local.get $12) ) ) - (i32.store - (i32.const 184) + ) + (return + (i32.add (local.get $6) - ) - (i32.store - (i32.const 196) - (local.get $5) + (i32.const 8) ) ) ) - (return - (i32.add - (local.get $8) - (i32.const 8) - ) - ) + (local.get $4) ) - (local.get $2) ) + (local.get $4) ) - (local.get $2) ) - ) - (if (result i32) - (i32.gt_u - (local.get $0) - (i32.const -65) - ) - (i32.const -1) - (block $do-once (result i32) - (local.set $2 - (i32.and - (local.tee $0 - (i32.add - (local.get $0) - (i32.const 11) + (if (result i32) + (i32.gt_u + (local.get $0) + (i32.const -65) + ) + (i32.const -1) + (block $do-once (result i32) + (local.set $3 + (i32.and + (local.tee $0 + (i32.add + (local.get $0) + (i32.const 11) + ) ) + (i32.const -8) ) - (i32.const -8) ) - ) - (if (result i32) - (local.tee $18 - (i32.load - (i32.const 180) + (if (result i32) + (local.tee $18 + (i32.load + (i32.const 180) + ) ) - ) - (block (result i32) - (local.set $14 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $0) - (i32.const 8) - ) - ) + (block (result i32) + (local.set $14 (if (result i32) - (i32.gt_u - (local.get $2) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $0) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $4 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $3) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $4 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $3 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $4) + (local.set $2 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $4) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $2) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $3) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) - (local.get $4) + (i32.or + (local.get $1) + (local.get $4) + ) + (local.get $2) ) - (local.get $3) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $3) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $2) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) - ) - (local.set $3 - (i32.sub - (i32.const 0) - (local.get $2) + (local.set $2 + (i32.sub + (i32.const 0) + (local.get $3) + ) ) - ) - (block $__rjto$3 - (block $__rjti$3 - (local.set $0 - (if (result i32) - (local.tee $0 - (i32.load offset=480 - (i32.shl - (local.get $14) - (i32.const 2) + (block $__rjto$3 + (block $__rjti$3 + (local.set $0 + (if (result i32) + (local.tee $0 + (i32.load + (i32.add + (i32.shl + (local.get $14) + (i32.const 2) + ) + (i32.const 480) + ) ) ) - ) - (block (result i32) - (local.set $9 - (i32.shl - (local.get $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block (result i32) + (local.set $8 + (i32.shl + (local.get $3) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $14) + (i32.const 1) + ) + ) + (i32.eq (local.get $14) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $14) - (i32.const 31) - ) ) ) - ) - (local.set $1 - (i32.const 0) - ) - (loop $while-in14 (result i32) - (if - (i32.lt_u - (local.tee $4 - (i32.sub - (local.tee $12 - (i32.and - (i32.load offset=4 - (local.get $0) + (local.set $1 + (i32.const 0) + ) + (loop $while-in14 (result i32) + (if + (i32.lt_u + (local.tee $4 + (i32.sub + (local.tee $10 + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) ) + (local.get $3) ) - (local.get $2) ) + (local.get $2) ) - (local.get $3) - ) - (local.set $1 - (if (result i32) - (i32.eq - (local.get $2) - (local.get $12) - ) - (block - (local.set $1 - (local.get $4) + (local.set $1 + (if (result i32) + (i32.eq + (local.get $3) + (local.get $10) ) - (local.set $3 - (local.get $0) + (block + (local.set $1 + (local.get $4) + ) + (local.set $2 + (local.get $0) + ) + (br $__rjti$3) ) - (br $__rjti$3) - ) - (block (result i32) - (local.set $3 - (local.get $4) + (block (result i32) + (local.set $2 + (local.get $4) + ) + (local.get $0) ) - (local.get $0) ) ) ) - ) - (local.set $0 - (select - (local.get $5) - (local.tee $4 - (i32.load offset=20 - (local.get $0) - ) - ) - (i32.or - (i32.eqz - (local.get $4) + (local.set $0 + (select + (local.get $5) + (local.tee $4 + (i32.load + (i32.add + (local.get $0) + (i32.const 20) + ) + ) ) - (i32.eq - (local.get $4) - (local.tee $12 - (i32.load - (i32.add + (i32.or + (i32.eqz + (local.get $4) + ) + (i32.eq + (local.get $4) + (local.tee $10 + (i32.load (i32.add - (local.get $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $9) - (i32.const 31) + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $8) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -8967,109 +8900,139 @@ ) ) ) - ) - (local.set $4 - (i32.shl - (local.get $9) - (i32.xor - (local.tee $5 - (i32.eqz - (local.get $12) + (local.set $4 + (i32.shl + (local.get $8) + (i32.xor + (local.tee $5 + (i32.eqz + (local.get $10) + ) ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (if (result i32) - (local.get $5) - (block (result i32) - (local.set $4 - (local.get $0) ) - (local.get $1) ) - (block - (local.set $5 - (local.get $0) - ) - (local.set $9 - (local.get $4) + (if (result i32) + (local.get $5) + (block (result i32) + (local.set $4 + (local.get $0) + ) + (local.get $1) ) - (local.set $0 - (local.get $12) + (block + (local.set $5 + (local.get $0) + ) + (local.set $8 + (local.get $4) + ) + (local.set $0 + (local.get $10) + ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block (result i32) - (local.set $4 + (block (result i32) + (local.set $4 + (i32.const 0) + ) (i32.const 0) ) - (i32.const 0) ) ) - ) - (if - (i32.eqz - (i32.or - (local.get $0) - (local.get $4) + (if + (i32.eqz + (i32.or + (local.get $0) + (local.get $4) + ) ) - ) - (block - (drop - (br_if $do-once - (local.get $2) - (i32.eqz - (local.tee $1 - (i32.and - (local.get $18) - (i32.or - (local.tee $1 - (i32.shl - (i32.const 2) - (local.get $14) + (block + (drop + (br_if $do-once + (local.get $3) + (i32.eqz + (local.tee $1 + (i32.and + (local.get $18) + (i32.or + (local.tee $1 + (i32.shl + (i32.const 2) + (local.get $14) + ) + ) + (i32.sub + (i32.const 0) + (local.get $1) ) - ) - (i32.sub - (i32.const 0) - (local.get $1) ) ) ) ) ) ) - ) - (local.set $4 - (i32.load offset=480 - (i32.shl + (local.set $4 + (i32.load (i32.add - (i32.or - (i32.or + (i32.shl + (i32.add (i32.or (i32.or - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.add - (i32.and - (local.get $1) - (i32.sub - (i32.const 0) + (i32.or + (i32.or + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.add + (i32.and + (local.get $1) + (i32.sub + (i32.const 0) + (local.get $1) + ) + ) + (i32.const -1) + ) + ) + (i32.const 12) + ) + (i32.const 16) + ) + ) + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.shr_u + (local.get $4) (local.get $1) ) ) - (i32.const -1) + (i32.const 5) ) + (i32.const 8) ) - (i32.const 12) ) - (i32.const 16) + ) + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.shr_u + (local.get $4) + (local.get $1) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) ) ) (local.tee $1 @@ -9081,9 +9044,9 @@ (local.get $1) ) ) - (i32.const 5) + (i32.const 1) ) - (i32.const 8) + (i32.const 2) ) ) ) @@ -9096,1889 +9059,1852 @@ (local.get $1) ) ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $1) - ) + (i32.const 1) ) (i32.const 1) ) - (i32.const 2) ) ) - ) - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $1) - ) - ) - (i32.const 1) - ) - (i32.const 1) + (i32.shr_u + (local.get $4) + (local.get $1) ) ) + (i32.const 2) ) - (i32.shr_u - (local.get $4) - (local.get $1) - ) + (i32.const 480) ) - (i32.const 2) ) ) ) ) - ) - (local.set $4 - (if (result i32) - (local.get $4) - (block - (local.set $1 - (local.get $3) - ) - (local.set $3 - (local.get $4) + (local.set $4 + (if (result i32) + (local.get $4) + (block + (local.set $1 + (local.get $2) + ) + (local.set $2 + (local.get $4) + ) + (br $__rjti$3) ) - (br $__rjti$3) + (local.get $0) ) - (local.get $0) ) + (br $__rjto$3) ) - (br $__rjto$3) - ) - (local.set $3 - (loop $while-in16 (result i32) - (local.set $12 - (i32.lt_u - (local.tee $4 - (i32.sub - (i32.and - (i32.load offset=4 - (local.get $3) + (local.set $2 + (loop $while-in16 (result i32) + (local.set $10 + (i32.lt_u + (local.tee $4 + (i32.sub + (i32.and + (i32.load + (i32.add + (local.get $2) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $3) ) - (local.get $2) ) + (local.get $1) ) - (local.get $1) - ) - ) - (local.set $1 - (select - (local.get $4) - (local.get $1) - (local.get $12) ) - ) - (local.set $0 - (select - (local.get $3) - (local.get $0) - (local.get $12) + (local.set $1 + (select + (local.get $4) + (local.get $1) + (local.get $10) + ) ) - ) - (if - (local.tee $4 - (i32.load offset=16 - (local.get $3) + (local.set $0 + (select + (local.get $2) + (local.get $0) + (local.get $10) ) ) - (block - (local.set $3 - (local.get $4) + (if + (local.tee $4 + (i32.load + (i32.add + (local.get $2) + (i32.const 16) + ) + ) + ) + (block + (local.set $2 + (local.get $4) + ) + (br $while-in16) ) - (br $while-in16) ) - ) - (br_if $while-in16 - (local.tee $3 - (i32.load offset=20 - (local.get $3) + (br_if $while-in16 + (local.tee $2 + (i32.load + (i32.add + (local.get $2) + (i32.const 20) + ) + ) ) ) + (local.set $4 + (local.get $0) + ) + (local.get $1) ) - (local.set $4 - (local.get $0) - ) - (local.get $1) ) ) - ) - (if (result i32) - (local.get $4) (if (result i32) - (i32.lt_u - (local.get $3) - (i32.sub - (i32.load - (i32.const 184) - ) + (local.get $4) + (if (result i32) + (i32.lt_u (local.get $2) - ) - ) - (block - (if - (i32.lt_u - (local.get $4) - (local.tee $8 - (i32.load - (i32.const 192) - ) + (i32.sub + (i32.load + (i32.const 184) ) + (local.get $3) ) - (call $_abort) ) - (if - (i32.ge_u - (local.get $4) - (local.tee $5 - (i32.add - (local.get $2) - (local.get $4) + (block + (if + (i32.lt_u + (local.get $4) + (local.tee $11 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (local.set $12 - (i32.load offset=24 - (local.get $4) + (if + (i32.ge_u + (local.get $4) + (local.tee $5 + (i32.add + (local.get $3) + (local.get $4) + ) + ) + ) + (call $_abort) ) - ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 + (local.set $10 + (i32.load + (i32.add (local.get $4) + (i32.const 24) ) ) - (local.get $4) ) - (block $do-once17 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $4) - (i32.const 20) - ) - ) + (if + (i32.eq + (local.tee $0 + (i32.load + (i32.add + (local.get $4) + (i32.const 12) ) ) ) - (br_if $do-once17 + (local.get $4) + ) + (block $do-once17 + (if (i32.eqz (local.tee $1 (i32.load (local.tee $0 (i32.add (local.get $4) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - ) - ) - (loop $while-in20 - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 20) + (br_if $do-once17 + (i32.eqz + (local.tee $1 + (i32.load + (local.tee $0 + (i32.add + (local.get $4) + (i32.const 16) + ) + ) ) ) ) ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) - ) - (br $while-in20) - ) ) - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 16) + (loop $while-in20 + (if + (local.tee $7 + (i32.load + (local.tee $9 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) + (block + (local.set $1 + (local.get $7) + ) + (local.set $0 + (local.get $9) + ) + (br $while-in20) + ) ) - (block - (local.set $1 - (local.get $7) + (if + (local.tee $7 + (i32.load + (local.tee $9 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + ) ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $7) + ) + (local.set $0 + (local.get $9) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $8) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $10 - (local.get $1) + (local.get $11) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $11 - (i32.load offset=8 - (local.get $4) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $8) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $4) - (i32.load - (local.tee $7 - (i32.add - (local.get $11) - (i32.const 12) - ) + (local.set $12 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load + (i32.add + (local.get $4) + (i32.const 8) + ) ) ) + (local.get $11) ) - (local.get $4) + (call $_abort) ) - (block - (i32.store - (local.get $7) - (local.get $0) + (if + (i32.ne + (local.get $4) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $11) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $4) ) - (local.set $10 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $12 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (if - (local.get $12) - (block $do-once21 - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $4) + (if + (local.get $10) + (block $do-once21 + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load + (i32.add + (local.get $4) + (i32.const 28) + ) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $4) ) - (local.get $4) - ) - (block - (i32.store - (local.get $0) - (local.get $10) - ) - (if - (i32.eqz - (local.get $10) + (block + (i32.store + (local.get $0) + (local.get $12) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (if + (i32.eqz + (local.get $12) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (local.get $12) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (local.get $10) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $12) - (i32.const 16) - ) + (if + (i32.eq + (i32.load offset=16 + (local.get $10) ) + (local.get $4) + ) + (i32.store offset=16 + (local.get $10) + (local.get $12) + ) + (i32.store offset=20 + (local.get $10) + (local.get $12) ) - (local.get $4) - ) - (i32.store - (local.get $0) - (local.get $10) - ) - (i32.store offset=20 - (local.get $12) - (local.get $10) ) - ) - (br_if $do-once21 - (i32.eqz - (local.get $10) + (br_if $do-once21 + (i32.eqz + (local.get $12) + ) ) ) ) - ) - (if - (i32.lt_u - (local.get $10) - (local.tee $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $12) + (local.tee $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $10) - (local.get $12) - ) - (if - (local.tee $1 - (i32.load offset=16 - (local.get $4) + (i32.store + (i32.add + (local.get $12) + (i32.const 24) ) + (local.get $10) ) (if - (i32.lt_u - (local.get $1) - (local.get $0) + (local.tee $1 + (i32.load + (i32.add + (local.get $4) + (i32.const 16) + ) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (local.get $10) + (if + (i32.lt_u (local.get $1) + (local.get $0) ) - (i32.store offset=24 - (local.get $1) - (local.get $10) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $12) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $12) + ) ) ) ) - ) - (if - (local.tee $0 - (i32.load offset=20 - (local.get $4) - ) - ) (if - (i32.lt_u - (local.get $0) + (local.tee $0 (i32.load - (i32.const 192) + (i32.add + (local.get $4) + (i32.const 20) + ) ) ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $10) + (if + (i32.lt_u (local.get $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (local.get $0) - (local.get $10) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $12) + (i32.const 20) + ) + (local.get $0) + ) + (i32.store offset=24 + (local.get $0) + (local.get $12) + ) ) ) ) ) ) - ) - (if - (i32.lt_u - (local.get $3) - (i32.const 16) - ) - (block - (i32.store offset=4 - (local.get $4) - (i32.or - (local.tee $0 - (i32.add - (local.get $2) - (local.get $3) + (if + (i32.lt_u + (local.get $2) + (i32.const 16) + ) + (block + (i32.store + (i32.add + (local.get $4) + (i32.const 4) + ) + (i32.or + (local.tee $0 + (i32.add + (local.get $2) + (local.get $3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) (local.get $4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (block $do-once25 - (i32.store offset=4 - (local.get $4) - (i32.or - (local.get $2) - (i32.const 3) ) ) - (i32.store offset=4 - (local.get $5) - (i32.or - (local.get $3) - (i32.const 1) + (block $do-once25 + (i32.store + (i32.add + (local.get $4) + (i32.const 4) + ) + (i32.or + (local.get $3) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add - (local.get $3) + (i32.store offset=4 (local.get $5) + (i32.or + (local.get $2) + (i32.const 1) + ) ) - (local.get $3) - ) - (local.set $0 - (i32.shr_u - (local.get $3) - (i32.const 3) + (i32.store + (i32.add + (local.get $2) + (local.get $5) + ) + (local.get $2) ) - ) - (if - (i32.lt_u - (local.get $3) - (i32.const 256) + (local.set $0 + (i32.shr_u + (local.get $2) + (i32.const 3) + ) ) - (block - (local.set $3 - (i32.add - (i32.shl - (local.get $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (local.get $2) + (i32.const 256) ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (block + (local.set $2 + (i32.add (i32.shl - (i32.const 1) (local.get $0) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $1 (i32.load - (local.tee $1 - (i32.add - (local.get $3) - (i32.const 8) + (i32.const 176) + ) + ) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) + ) + ) + (block + (local.set $1 + (i32.add + (local.get $2) + (i32.const 8) + ) + ) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $2) ) ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $13 + (local.get $1) + ) + (local.set $6 + (local.get $0) + ) ) - ) - (i32.load - (i32.const 192) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) + ) (local.set $13 - (local.get $1) + (i32.add + (local.get $2) + (i32.const 8) + ) ) (local.set $6 - (local.get $0) + (local.get $2) ) ) ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) - ) - ) - (local.set $13 - (i32.add - (local.get $3) - (i32.const 8) - ) - ) - (local.set $6 - (local.get $3) + (i32.store + (local.get $13) + (local.get $5) + ) + (i32.store + (i32.add + (local.get $6) + (i32.const 12) ) + (local.get $5) ) + (i32.store offset=8 + (local.get $5) + (local.get $6) + ) + (i32.store offset=12 + (local.get $5) + (local.get $2) + ) + (br $do-once25) ) - (i32.store - (local.get $13) - (local.get $5) - ) - (i32.store offset=12 - (local.get $6) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $6) - ) - (i32.store offset=12 - (local.get $5) - (local.get $3) - ) - (br $do-once25) ) - ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $7 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $3) - (i32.const 8) - ) - ) + (local.set $3 + (i32.add + (i32.shl + (local.tee $7 (if (result i32) - (i32.gt_u - (local.get $3) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $2) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $7 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $2) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $7 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $7) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $7) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $3) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $2) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) - (local.get $7) + (i32.or + (local.get $1) + (local.get $7) + ) + (local.get $3) ) - (local.get $2) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $2) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $5) - (local.get $7) - ) - (i32.store offset=4 - (local.tee $0 + (i32.store offset=28 + (local.get $5) + (local.get $7) + ) + (i32.store offset=4 (i32.add (local.get $5) (i32.const 16) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (local.get $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $1 - (i32.load - (i32.const 180) + (i32.store offset=16 + (local.get $5) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $1 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $0 - (i32.shl - (i32.const 1) - (local.get $7) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $7) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $0) - (local.get $1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $0) + (local.get $1) + ) ) + (i32.store + (local.get $3) + (local.get $5) + ) + (i32.store offset=24 + (local.get $5) + (local.get $3) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once25) ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=24 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $5) - ) - (br $do-once25) ) - ) - (local.set $7 - (i32.shl - (local.get $3) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (local.set $7 + (i32.shl + (local.get $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $7) + (i32.const 1) + ) + ) + (i32.eq (local.get $7) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $7) - (i32.const 31) - ) ) ) - ) - (local.set $0 - (i32.load - (local.get $2) + (local.set $0 + (i32.load + (local.get $3) + ) ) - ) - (block $__rjto$1 - (block $__rjti$1 - (loop $while-in28 - (br_if $__rjti$1 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $0) + (block $__rjto$1 + (block $__rjti$1 + (loop $while-in28 + (br_if $__rjti$1 + (i32.eq + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $2) ) - (local.get $3) ) - ) - (local.set $2 - (i32.shl - (local.get $7) - (i32.const 1) + (local.set $3 + (i32.shl + (local.get $7) + (i32.const 1) + ) ) - ) - (if - (local.tee $1 - (i32.load - (local.tee $7 - (i32.add + (if + (local.tee $1 + (i32.load + (local.tee $7 (i32.add - (local.get $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $7) - (i32.const 31) + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $7) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $7 + (local.get $3) + ) + (local.set $0 + (local.get $1) + ) + (br $while-in28) + ) + ) + ) + (if + (i32.lt_u + (local.get $7) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (local.set $7 - (local.get $2) + (i32.store + (local.get $7) + (local.get $5) ) - (local.set $0 - (local.get $1) + (i32.store offset=24 + (local.get $5) + (local.get $0) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) ) - (br $while-in28) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once25) ) ) + (br $__rjto$1) ) (if - (i32.lt_u - (local.get $7) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $2 + (i32.load offset=8 + (local.get $0) + ) + ) + (local.tee $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $0) + (local.get $1) ) ) - (call $_abort) (block - (i32.store - (local.get $7) + (i32.store offset=12 + (local.get $2) (local.get $5) ) - (i32.store offset=24 - (local.get $5) + (i32.store offset=8 (local.get $0) - ) - (i32.store offset=12 - (local.get $5) (local.get $5) ) (i32.store offset=8 (local.get $5) - (local.get $5) + (local.get $2) ) - (br $do-once25) - ) - ) - (br $__rjto$1) - ) - (if - (i32.and - (i32.ge_u - (local.tee $2 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $5) + (local.get $0) ) - (local.tee $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $5) + (i32.const 0) ) ) - (i32.ge_u - (local.get $0) - (local.get $1) - ) - ) - (block - (i32.store offset=12 - (local.get $2) - (local.get $5) - ) - (i32.store - (local.get $3) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $0) - ) - (i32.store offset=24 - (local.get $5) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (return - (i32.add - (local.get $4) - (i32.const 8) + (return + (i32.add + (local.get $4) + (i32.const 8) + ) ) ) + (local.get $3) ) - (local.get $2) + (local.get $3) ) - (local.get $2) ) + (local.get $3) ) - (local.get $2) ) ) ) ) - ) - (if - (i32.ge_u - (local.tee $1 - (i32.load - (i32.const 184) - ) - ) - (local.get $0) - ) - (block - (local.set $2 - (i32.load - (i32.const 196) + (if + (i32.ge_u + (local.tee $1 + (i32.load + (i32.const 184) + ) ) + (local.get $0) ) - (if - (i32.gt_u - (local.tee $3 - (i32.sub - (local.get $1) - (local.get $0) - ) + (block + (local.set $3 + (i32.load + (i32.const 196) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 196) - (local.tee $1 - (i32.add + (if + (i32.gt_u + (local.tee $2 + (i32.sub + (local.get $1) (local.get $0) - (local.get $2) ) ) + (i32.const 15) ) - (i32.store - (i32.const 184) - (local.get $3) - ) - (i32.store offset=4 - (local.get $1) - (i32.or - (local.get $3) - (i32.const 1) + (block + (i32.store + (i32.const 196) + (local.tee $1 + (i32.add + (local.get $0) + (local.get $3) + ) + ) ) - ) - (i32.store - (i32.add + (i32.store + (i32.const 184) + (local.get $2) + ) + (i32.store offset=4 (local.get $1) + (i32.or + (local.get $2) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (local.get $1) + (local.get $2) + ) + (local.get $2) + ) + (i32.store offset=4 (local.get $3) + (i32.or + (local.get $0) + (i32.const 3) + ) ) - (local.get $3) ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $0) - (i32.const 3) + (block + (i32.store + (i32.const 184) + (i32.const 0) ) - ) - ) - (block - (i32.store - (i32.const 184) - (i32.const 0) - ) - (i32.store - (i32.const 196) - (i32.const 0) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $1) - (i32.const 3) + (i32.store + (i32.const 196) + (i32.const 0) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $1) + (i32.const 3) + ) + ) + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $1) - (local.get $2) + (local.get $3) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (return - (i32.add - (local.get $2) - (i32.const 8) - ) + (br $folding-inner1) ) ) - ) - (block $folding-inner0 - (br_if $folding-inner0 - (i32.gt_u - (local.tee $1 - (i32.load - (i32.const 188) + (block $folding-inner0 + (br_if $folding-inner0 + (i32.gt_u + (local.tee $1 + (i32.load + (i32.const 188) + ) ) - ) - (local.get $0) - ) - ) - (if - (i32.eqz - (i32.load - (i32.const 648) + (local.get $0) ) ) (if - (i32.and - (local.tee $1 - (call $_sysconf - (i32.const 30) - ) - ) - (i32.add - (local.get $1) - (i32.const -1) + (i32.eqz + (i32.load + (i32.const 648) ) ) - (call $_abort) - (block - (i32.store - (i32.const 656) - (local.get $1) - ) - (i32.store - (i32.const 652) - (local.get $1) - ) - (i32.store - (i32.const 660) - (i32.const -1) - ) - (i32.store - (i32.const 664) - (i32.const -1) - ) - (i32.store - (i32.const 668) - (i32.const 0) - ) - (i32.store - (i32.const 620) - (i32.const 0) + (if + (i32.and + (local.tee $1 + (call $_sysconf + (i32.const 30) + ) + ) + (i32.add + (local.get $1) + (i32.const -1) + ) ) - (i32.store - (i32.const 648) - (i32.xor - (i32.and - (call $_time - (i32.const 0) + (call $_abort) + (block + (i32.store + (i32.const 656) + (local.get $1) + ) + (i32.store + (i32.const 652) + (local.get $1) + ) + (i32.store + (i32.const 660) + (i32.const -1) + ) + (i32.store + (i32.const 664) + (i32.const -1) + ) + (i32.store + (i32.const 668) + (i32.const 0) + ) + (i32.store + (i32.const 620) + (i32.const 0) + ) + (i32.store + (i32.const 648) + (i32.xor + (i32.and + (call $_time + (i32.const 0) + ) + (i32.const -16) ) - (i32.const -16) + (i32.const 1431655768) ) - (i32.const 1431655768) ) ) ) ) - ) - (if - (i32.le_u - (local.tee $6 - (i32.and - (local.tee $5 - (i32.add - (local.tee $1 - (i32.load - (i32.const 656) + (if + (i32.le_u + (local.tee $6 + (i32.and + (local.tee $5 + (i32.add + (local.tee $1 + (i32.load + (i32.const 656) + ) ) - ) - (local.tee $9 - (i32.add - (local.get $0) - (i32.const 47) + (local.tee $8 + (i32.add + (local.get $0) + (i32.const 47) + ) ) ) ) - ) - (local.tee $12 - (i32.sub - (i32.const 0) - (local.get $1) + (local.tee $10 + (i32.sub + (i32.const 0) + (local.get $1) + ) ) ) ) + (local.get $0) ) - (local.get $0) - ) - (return - (i32.const 0) - ) - ) - (if - (local.tee $2 - (i32.load - (i32.const 616) + (return + (i32.const 0) ) ) (if - (i32.or - (i32.le_u - (local.tee $1 - (i32.add - (local.tee $3 - (i32.load - (i32.const 608) + (local.tee $3 + (i32.load + (i32.const 616) + ) + ) + (if + (i32.or + (i32.le_u + (local.tee $1 + (i32.add + (local.tee $2 + (i32.load + (i32.const 608) + ) ) + (local.get $6) ) - (local.get $6) ) + (local.get $2) + ) + (i32.gt_u + (local.get $1) + (local.get $3) ) - (local.get $3) ) - (i32.gt_u - (local.get $1) - (local.get $2) + (return + (i32.const 0) ) ) - (return - (i32.const 0) - ) ) - ) - (local.set $10 - (i32.add - (local.get $0) - (i32.const 48) + (local.set $12 + (i32.add + (local.get $0) + (i32.const 48) + ) ) - ) - (block $__rjto$13 - (block $__rjti$13 - (if - (i32.eqz - (i32.and - (i32.load - (i32.const 620) + (block $__rjto$13 + (block $__rjti$13 + (if + (i32.eqz + (i32.and + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (block - (block $label$break$L279 - (block $__rjti$5 - (block $__rjti$4 - (br_if $__rjti$4 - (i32.eqz - (local.tee $4 - (i32.load - (i32.const 200) + (block + (block $label$break$L279 + (block $__rjti$5 + (block $__rjti$4 + (br_if $__rjti$4 + (i32.eqz + (local.tee $4 + (i32.load + (i32.const 200) + ) ) ) ) - ) - (local.set $1 - (i32.const 624) - ) - (loop $while-in34 - (block $while-out33 - (if - (i32.le_u - (local.tee $3 - (i32.load - (local.get $1) - ) - ) - (local.get $4) - ) + (local.set $1 + (i32.const 624) + ) + (loop $while-in34 + (block $while-out33 (if - (i32.gt_u - (i32.add - (local.get $3) + (i32.le_u + (local.tee $2 (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 4) - ) - ) + (local.get $1) ) ) (local.get $4) ) - (block - (local.set $4 - (local.get $1) + (if + (i32.gt_u + (i32.add + (local.get $2) + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 4) + ) + ) + ) + ) + (local.get $4) + ) + (block + (local.set $4 + (local.get $1) + ) + (br $while-out33) ) - (br $while-out33) - ) - ) - ) - (br_if $while-in34 - (local.tee $1 - (i32.load offset=8 - (local.get $1) ) ) - ) - (br $__rjti$4) - ) - ) - (if - (i32.lt_u - (local.tee $3 - (i32.and - (i32.sub - (local.get $5) + (br_if $while-in34 + (local.tee $1 (i32.load - (i32.const 188) + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) - (local.get $12) ) + (br $__rjti$4) ) - (i32.const 2147483647) ) - (block - (local.set $1 - (call $_sbrk - (local.get $3) - ) - ) - (if - (i32.eq - (i32.add - (i32.load - (local.get $4) - ) - (i32.load - (local.get $2) + (if + (i32.lt_u + (local.tee $2 + (i32.and + (i32.sub + (local.get $5) + (i32.load + (i32.const 188) + ) ) + (local.get $10) ) - (local.get $1) ) - (br_if $__rjti$13 - (i32.ne - (local.get $1) - (i32.const -1) + (i32.const 2147483647) + ) + (block + (local.set $1 + (call $_sbrk + (local.get $2) ) ) - (block - (local.set $2 + (if + (i32.eq + (i32.add + (i32.load + (local.get $4) + ) + (i32.load + (local.get $3) + ) + ) (local.get $1) ) - (br $__rjti$5) + (br_if $__rjti$13 + (i32.ne + (local.get $1) + (i32.const -1) + ) + ) + (block + (local.set $3 + (local.get $1) + ) + (br $__rjti$5) + ) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (if - (i32.ne - (local.tee $1 - (call $_sbrk - (i32.const 0) + (if + (i32.ne + (local.tee $1 + (call $_sbrk + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (local.set $3 - (if (result i32) - (i32.and - (local.tee $3 - (local.get $1) - ) - (local.tee $2 - (i32.add - (local.tee $4 - (i32.load - (i32.const 652) + (block + (local.set $2 + (if (result i32) + (i32.and + (local.tee $2 + (local.get $1) + ) + (local.tee $3 + (i32.add + (local.tee $4 + (i32.load + (i32.const 652) + ) ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (i32.add - (i32.sub - (local.get $6) - (local.get $3) - ) - (i32.and - (i32.add + (i32.add + (i32.sub + (local.get $6) (local.get $2) - (local.get $3) ) - (i32.sub - (i32.const 0) - (local.get $4) + (i32.and + (i32.add + (local.get $2) + (local.get $3) + ) + (i32.sub + (i32.const 0) + (local.get $4) + ) ) ) + (local.get $6) ) - (local.get $6) ) - ) - (local.set $12 - (i32.add - (local.tee $4 - (i32.load - (i32.const 608) + (local.set $10 + (i32.add + (local.tee $4 + (i32.load + (i32.const 608) + ) ) - ) - (local.get $3) - ) - ) - (if - (i32.and - (i32.lt_u - (local.get $3) - (i32.const 2147483647) - ) - (i32.gt_u - (local.get $3) - (local.get $0) + (local.get $2) ) ) - (block - (if - (local.tee $2 - (i32.load - (i32.const 616) - ) + (if + (i32.and + (i32.lt_u + (local.get $2) + (i32.const 2147483647) ) - (br_if $label$break$L279 - (i32.or - (i32.le_u - (local.get $12) - (local.get $4) + (i32.gt_u + (local.get $2) + (local.get $0) + ) + ) + (block + (if + (local.tee $3 + (i32.load + (i32.const 616) ) - (i32.gt_u - (local.get $12) - (local.get $2) + ) + (br_if $label$break$L279 + (i32.or + (i32.le_u + (local.get $10) + (local.get $4) + ) + (i32.gt_u + (local.get $10) + (local.get $3) + ) ) ) ) - ) - (br_if $__rjti$13 - (i32.eq - (local.get $1) - (local.tee $2 - (call $_sbrk - (local.get $3) + (br_if $__rjti$13 + (i32.eq + (local.get $1) + (local.tee $3 + (call $_sbrk + (local.get $2) + ) ) ) ) + (br $__rjti$5) ) - (br $__rjti$5) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (local.set $1 - (local.get $3) - ) - (local.set $4 - (i32.sub - (i32.const 0) - (local.get $1) + (local.set $1 + (local.get $2) ) - ) - (local.set $3 - (if (result i32) - (i32.and + (local.set $4 + (i32.sub + (i32.const 0) + (local.get $1) + ) + ) + (local.set $2 + (if (result i32) (i32.and - (i32.ne - (local.get $2) - (i32.const -1) + (i32.and + (i32.ne + (local.get $3) + (i32.const -1) + ) + (i32.lt_u + (local.get $1) + (i32.const 2147483647) + ) ) - (i32.lt_u + (i32.gt_u + (local.get $12) (local.get $1) - (i32.const 2147483647) ) ) - (i32.gt_u - (local.get $10) - (local.get $1) - ) - ) - (if (result i32) - (i32.lt_u - (local.tee $3 - (i32.and - (i32.add - (local.tee $3 - (i32.load - (i32.const 656) + (if (result i32) + (i32.lt_u + (local.tee $2 + (i32.and + (i32.add + (local.tee $2 + (i32.load + (i32.const 656) + ) + ) + (i32.sub + (local.get $8) + (local.get $1) ) ) (i32.sub - (local.get $9) - (local.get $1) + (i32.const 0) + (local.get $2) ) ) - (i32.sub - (i32.const 0) - (local.get $3) - ) ) + (i32.const 2147483647) ) - (i32.const 2147483647) - ) - (if (result i32) - (i32.eq - (call $_sbrk - (local.get $3) - ) - (i32.const -1) - ) - (block - (drop + (if (result i32) + (i32.eq (call $_sbrk - (local.get $4) + (local.get $2) ) + (i32.const -1) + ) + (block + (drop + (call $_sbrk + (local.get $4) + ) + ) + (br $label$break$L279) + ) + (i32.add + (local.get $1) + (local.get $2) ) - (br $label$break$L279) - ) - (i32.add - (local.get $1) - (local.get $3) ) + (local.get $1) ) (local.get $1) ) - (local.get $1) ) - ) - (if - (i32.ne - (local.get $2) - (i32.const -1) - ) - (block - (local.set $1 - (local.get $2) + (if + (i32.ne + (local.get $3) + (i32.const -1) + ) + (block + (local.set $1 + (local.get $3) + ) + (br $__rjti$13) ) - (br $__rjti$13) ) ) - ) - (i32.store - (i32.const 620) - (i32.or - (i32.load - (i32.const 620) + (i32.store + (i32.const 620) + (i32.or + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (if - (i32.lt_u - (local.get $6) - (i32.const 2147483647) - ) (if - (i32.and - (i32.lt_u - (local.tee $1 - (call $_sbrk - (local.get $6) + (i32.lt_u + (local.get $6) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (local.tee $1 + (call $_sbrk + (local.get $6) + ) + ) + (local.tee $2 + (call $_sbrk + (i32.const 0) + ) ) ) - (local.tee $3 - (call $_sbrk - (i32.const 0) + (i32.and + (i32.ne + (local.get $1) + (i32.const -1) + ) + (i32.ne + (local.get $2) + (i32.const -1) ) ) ) - (i32.and - (i32.ne - (local.get $1) - (i32.const -1) - ) - (i32.ne - (local.get $3) - (i32.const -1) + (br_if $__rjti$13 + (i32.gt_u + (local.tee $2 + (i32.sub + (local.get $2) + (local.get $1) + ) + ) + (i32.add + (local.get $0) + (i32.const 40) + ) ) ) ) - (br_if $__rjti$13 - (i32.gt_u - (local.tee $3 - (i32.sub - (local.get $3) - (local.get $1) - ) - ) - (i32.add - (local.get $0) - (i32.const 40) - ) + ) + (br $__rjto$13) + ) + (i32.store + (i32.const 608) + (local.tee $3 + (i32.add + (i32.load + (i32.const 608) ) + (local.get $2) ) ) ) - (br $__rjto$13) - ) - (i32.store - (i32.const 608) - (local.tee $2 - (i32.add + (if + (i32.gt_u + (local.get $3) (i32.load - (i32.const 608) + (i32.const 612) ) - (local.get $3) ) - ) - ) - (if - (i32.gt_u - (local.get $2) - (i32.load + (i32.store (i32.const 612) + (local.get $3) ) ) - (i32.store - (i32.const 612) - (local.get $2) - ) - ) - (if - (local.tee $5 - (i32.load - (i32.const 200) - ) - ) - (block $do-once40 - (local.set $2 - (i32.const 624) + (if + (local.tee $5 + (i32.load + (i32.const 200) + ) ) - (block $__rjto$10 - (block $__rjti$10 - (loop $while-in45 - (br_if $__rjti$10 - (i32.eq - (i32.add - (local.tee $10 - (i32.load - (local.get $2) + (block $do-once40 + (local.set $3 + (i32.const 624) + ) + (block $__rjto$10 + (block $__rjti$10 + (loop $while-in45 + (br_if $__rjti$10 + (i32.eq + (i32.add + (local.tee $12 + (i32.load + (local.get $3) + ) ) - ) - (local.tee $6 - (i32.load - (local.tee $4 - (i32.add - (local.get $2) - (i32.const 4) + (local.tee $6 + (i32.load + (local.tee $4 + (i32.add + (local.get $3) + (i32.const 4) + ) ) ) ) ) + (local.get $1) ) - (local.get $1) ) - ) - (br_if $while-in45 - (local.tee $2 - (i32.load offset=8 - (local.get $2) + (br_if $while-in45 + (local.tee $3 + (i32.load + (i32.add + (local.get $3) + (i32.const 8) + ) + ) ) ) ) - ) - (br $__rjto$10) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (local.get $2) - ) - (i32.const 8) - ) + (br $__rjto$10) ) (if - (i32.and - (i32.lt_u - (local.get $5) - (local.get $1) - ) - (i32.ge_u - (local.get $5) - (local.get $10) - ) - ) - (block - (i32.store - (local.get $4) - (i32.add + (i32.eqz + (i32.and + (i32.load offset=12 (local.get $3) - (local.get $6) ) + (i32.const 8) ) - (local.set $2 - (i32.add + ) + (if + (i32.and + (i32.lt_u (local.get $5) - (local.tee $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $1 - (i32.add - (local.get $5) - (i32.const 8) + (local.get $1) + ) + (i32.ge_u + (local.get $5) + (local.get $12) + ) + ) + (block + (i32.store + (local.get $4) + (i32.add + (local.get $2) + (local.get $6) + ) + ) + (local.set $3 + (i32.add + (local.get $5) + (local.tee $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $1 + (i32.add + (local.get $5) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $1) - (i32.const 7) ) ) ) ) - ) - (local.set $1 - (i32.add - (i32.load - (i32.const 188) - ) - (i32.sub - (local.get $3) - (local.get $1) + (local.set $1 + (i32.add + (i32.load + (i32.const 188) + ) + (i32.sub + (local.get $2) + (local.get $1) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.get $2) - ) - (i32.store - (i32.const 188) - (local.get $1) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $1) - (i32.const 1) + (i32.store + (i32.const 200) + (local.get $3) ) - ) - (i32.store offset=4 - (i32.add + (i32.store + (i32.const 188) (local.get $1) - (local.get $2) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (local.get $1) + (local.get $3) + ) + (i32.const 40) ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + (br $do-once40) ) - (br $do-once40) ) ) ) - ) - (if - (i32.lt_u - (local.get $1) - (local.tee $4 - (i32.load + (if + (i32.lt_u + (local.get $1) + (local.tee $4 + (i32.load + (i32.const 192) + ) + ) + ) + (block + (i32.store (i32.const 192) + (local.get $1) + ) + (local.set $4 + (local.get $1) ) ) ) - (block - (i32.store - (i32.const 192) - (local.get $1) - ) - (local.set $4 + (local.set $12 + (i32.add (local.get $1) + (local.get $2) ) ) - ) - (local.set $10 - (i32.add - (local.get $1) - (local.get $3) + (local.set $3 + (i32.const 624) ) - ) - (local.set $2 - (i32.const 624) - ) - (local.set $4 - (block $__rjto$11 (result i32) - (block $__rjti$11 - (br $__rjto$11 - (loop $while-in47 (result i32) - (if - (i32.eq - (i32.load - (local.get $2) + (local.set $4 + (block $__rjto$11 (result i32) + (block $__rjti$11 + (br $__rjto$11 + (loop $while-in47 (result i32) + (if + (i32.eq + (i32.load + (local.get $3) + ) + (local.get $12) ) - (local.get $10) - ) - (block - (local.set $6 - (local.get $2) + (block + (local.set $6 + (local.get $3) + ) + (br $__rjti$11) ) - (br $__rjti$11) ) - ) - (br_if $while-in47 - (local.tee $2 - (i32.load offset=8 - (local.get $2) + (br_if $while-in47 + (local.tee $3 + (i32.load + (i32.add + (local.get $3) + (i32.const 8) + ) + ) ) ) + (i32.const 624) ) - (i32.const 624) - ) - ) - ) - (if (result i32) - (i32.and - (i32.load offset=12 - (local.get $2) ) - (i32.const 8) ) - (i32.const 624) - (block - (i32.store - (local.get $6) - (local.get $1) - ) - (i32.store - (local.tee $2 - (i32.add - (local.get $2) - (i32.const 4) - ) - ) - (i32.add - (i32.load - (local.get $2) - ) + (if (result i32) + (i32.and + (i32.load offset=12 (local.get $3) ) + (i32.const 8) ) - (local.set $9 - (i32.add - (local.tee $12 - (i32.add - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $3 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $3) - (i32.const 7) - ) - ) - (local.get $1) + (i32.const 624) + (block + (i32.store + (local.get $6) + (local.get $1) + ) + (i32.store offset=4 + (local.get $3) + (i32.add + (i32.load offset=4 + (local.get $3) ) + (local.get $2) ) - (local.get $0) ) - ) - (local.set $7 - (i32.sub - (i32.sub - (local.tee $6 + (local.set $8 + (i32.add + (local.tee $10 (i32.add - (local.get $10) (select (i32.and (i32.sub (i32.const 0) - (local.tee $1 + (local.tee $2 (i32.add - (local.get $10) + (local.get $1) (i32.const 8) ) ) @@ -10987,1116 +10913,1146 @@ ) (i32.const 0) (i32.and - (local.get $1) + (local.get $2) (i32.const 7) ) ) + (local.get $1) ) ) - (local.get $12) + (local.get $0) ) - (local.get $0) - ) - ) - (i32.store offset=4 - (local.get $12) - (i32.or - (local.get $0) - (i32.const 3) - ) - ) - (if - (i32.eq - (local.get $5) - (local.get $6) ) - (block - (i32.store - (i32.const 188) - (local.tee $0 - (i32.add - (i32.load - (i32.const 188) + (local.set $7 + (i32.sub + (i32.sub + (local.tee $6 + (i32.add + (local.get $12) + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $1 + (i32.add + (local.get $12) + (i32.const 8) + ) + ) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $1) + (i32.const 7) + ) + ) ) - (local.get $7) ) + (local.get $10) ) + (local.get $0) ) - (i32.store - (i32.const 200) - (local.get $9) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $0) - (i32.const 1) - ) + ) + (i32.store offset=4 + (local.get $10) + (i32.or + (local.get $0) + (i32.const 3) ) ) - (block $do-once48 - (if - (i32.eq - (i32.load - (i32.const 196) - ) - (local.get $6) - ) - (block - (i32.store - (i32.const 184) - (local.tee $0 - (i32.add - (i32.load - (i32.const 184) - ) - (local.get $7) + (if + (i32.eq + (local.get $5) + (local.get $6) + ) + (block + (i32.store + (i32.const 188) + (local.tee $0 + (i32.add + (i32.load + (i32.const 188) ) + (local.get $7) ) ) - (i32.store - (i32.const 196) - (local.get $9) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $0) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (local.get $0) - (local.get $9) - ) + ) + (i32.store + (i32.const 200) + (local.get $8) + ) + (i32.store offset=4 + (local.get $8) + (i32.or (local.get $0) + (i32.const 1) ) - (br $do-once48) ) ) - (i32.store - (local.tee $0 - (i32.add - (if (result i32) - (i32.eq - (i32.and - (local.tee $0 - (i32.load offset=4 - (local.get $6) - ) + (block $do-once48 + (if + (i32.eq + (i32.load + (i32.const 196) + ) + (local.get $6) + ) + (block + (i32.store + (i32.const 184) + (local.tee $0 + (i32.add + (i32.load + (i32.const 184) ) - (i32.const 3) + (local.get $7) ) + ) + ) + (i32.store + (i32.const 196) + (local.get $8) + ) + (i32.store offset=4 + (local.get $8) + (i32.or + (local.get $0) (i32.const 1) ) - (block (result i32) - (local.set $10 + ) + (i32.store + (i32.add + (local.get $0) + (local.get $8) + ) + (local.get $0) + ) + (br $do-once48) + ) + ) + (i32.store + (local.tee $0 + (i32.add + (if (result i32) + (i32.eq (i32.and - (local.get $0) - (i32.const -8) - ) - ) - (local.set $1 - (i32.shr_u - (local.get $0) + (local.tee $0 + (i32.load offset=4 + (local.get $6) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$L331 - (if - (i32.lt_u + (block (result i32) + (local.set $12 + (i32.and (local.get $0) - (i32.const 256) + (i32.const -8) ) - (block - (local.set $2 - (i32.load offset=12 - (local.get $6) - ) + ) + (local.set $1 + (i32.shr_u + (local.get $0) + (i32.const 3) + ) + ) + (block $label$break$L331 + (if + (i32.lt_u + (local.get $0) + (i32.const 256) ) - (if - (i32.ne - (local.tee $3 - (i32.load offset=8 - (local.get $6) - ) - ) - (local.tee $0 - (i32.add - (i32.shl - (local.get $1) - (i32.const 3) - ) - (i32.const 216) - ) + (block + (local.set $3 + (i32.load offset=12 + (local.get $6) ) ) - (block $do-once51 - (if - (i32.lt_u - (local.get $3) - (local.get $4) + (if + (i32.ne + (local.tee $2 + (i32.load offset=8 + (local.get $6) + ) ) - (call $_abort) - ) - (br_if $do-once51 - (i32.eq - (i32.load offset=12 - (local.get $3) + (local.tee $0 + (i32.add + (i32.shl + (local.get $1) + (i32.const 3) + ) + (i32.const 216) ) - (local.get $6) ) ) - (call $_abort) - ) - ) - (if - (i32.eq - (local.get $2) - (local.get $3) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (i32.load - (i32.const 176) + (block $do-once51 + (if + (i32.lt_u + (local.get $2) + (local.get $4) ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (call $_abort) + ) + (br_if $do-once51 + (i32.eq + (i32.load offset=12 + (local.get $2) ) - (i32.const -1) + (local.get $6) ) ) + (call $_abort) ) - (br $label$break$L331) ) - ) - (if - (i32.eq - (local.get $0) - (local.get $2) - ) - (local.set $15 - (i32.add + (if + (i32.eq (local.get $2) - (i32.const 8) + (local.get $3) + ) + (block + (i32.store + (i32.const 176) + (i32.and + (i32.load + (i32.const 176) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) + ) + ) + ) + (br $label$break$L331) ) ) - (block $do-once53 - (if - (i32.lt_u - (local.get $2) - (local.get $4) + (if + (i32.eq + (local.get $0) + (local.get $3) + ) + (local.set $15 + (i32.add + (local.get $3) + (i32.const 8) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (block $do-once53 + (if + (i32.lt_u + (local.get $3) + (local.get $4) ) - (local.get $6) + (call $_abort) ) - (block - (local.set $15 - (local.get $0) + (local.set $0 + (i32.add + (local.get $3) + (i32.const 8) ) - (br $do-once53) ) + (if + (i32.eq + (i32.load offset=8 + (local.get $3) + ) + (local.get $6) + ) + (block + (local.set $15 + (local.get $0) + ) + (br $do-once53) + ) + ) + (call $_abort) ) - (call $_abort) ) - ) - (i32.store offset=12 - (local.get $3) - (local.get $2) - ) - (i32.store - (local.get $15) - (local.get $3) - ) - ) - (block - (local.set $5 - (i32.load offset=24 - (local.get $6) + (i32.store offset=12 + (local.get $2) + (local.get $3) + ) + (i32.store + (local.get $15) + (local.get $2) ) ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 - (local.get $6) - ) + (block + (local.set $5 + (i32.load offset=24 + (local.get $6) ) - (local.get $6) ) - (block $do-once55 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.tee $3 - (i32.add - (local.get $6) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) - ) + (if + (i32.eq + (local.tee $0 + (i32.load offset=12 + (local.get $6) ) ) - (block - (br_if $do-once55 - (i32.eqz - (local.tee $1 - (i32.load - (local.get $3) - ) + (local.get $6) + ) + (block $do-once55 + (local.set $0 + (i32.add + (local.tee $2 + (i32.add + (local.get $6) + (i32.const 16) ) ) - ) - (local.set $0 - (local.get $3) + (i32.const 4) ) ) - ) - (loop $while-in58 (if - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 20) - ) + (i32.eqz + (local.tee $1 + (i32.load offset=4 + (local.get $2) ) ) ) (block - (local.set $1 - (local.get $3) + (br_if $do-once55 + (i32.eqz + (local.tee $1 + (i32.load offset=16 + (local.get $6) + ) + ) + ) ) (local.set $0 (local.get $2) ) - (br $while-in58) ) ) - (if - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 16) + (loop $while-in58 + (if + (local.tee $2 + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) + (block + (local.set $1 + (local.get $2) + ) + (local.set $0 + (local.get $3) + ) + (br $while-in58) + ) ) - (block - (local.set $1 - (local.get $3) + (if + (local.tee $2 + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + ) ) - (local.set $0 - (local.get $2) + (block + (local.set $1 + (local.get $2) + ) + (local.set $0 + (local.get $3) + ) + (br $while-in58) ) - (br $while-in58) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $4) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $8 - (local.get $1) + (local.get $4) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $2 - (i32.load offset=8 - (local.get $6) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $4) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $6) - (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 12) - ) + (local.set $11 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load offset=8 + (local.get $6) ) ) + (local.get $4) ) - (local.get $6) + (call $_abort) ) - (block - (i32.store - (local.get $3) - (local.get $0) + (if + (i32.ne + (local.get $6) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $2) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $6) ) - (local.set $8 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $11 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (br_if $label$break$L331 - (i32.eqz - (local.get $5) + (br_if $label$break$L331 + (i32.eqz + (local.get $5) + ) ) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $6) + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load offset=28 + (local.get $6) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $6) ) - (local.get $6) - ) - (block $do-once59 - (i32.store - (local.get $0) - (local.get $8) - ) - (br_if $do-once59 - (local.get $8) + (block $do-once59 + (i32.store + (local.get $0) + (local.get $11) + ) + (br_if $do-once59 + (local.get $11) + ) + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) + ) + ) + ) + (br $label$break$L331) ) - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) + (block + (if + (i32.lt_u + (local.get $5) + (i32.load + (i32.const 192) + ) ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=16 + (local.get $5) ) - (i32.const -1) + (local.get $6) + ) + (i32.store offset=16 + (local.get $5) + (local.get $11) + ) + (i32.store offset=20 + (local.get $5) + (local.get $11) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (local.get $11) ) ) ) - (br $label$break$L331) ) - (block - (if - (i32.lt_u - (local.get $5) + (if + (i32.lt_u + (local.get $11) + (local.tee $0 (i32.load (i32.const 192) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $5) - (i32.const 16) - ) - ) - ) + (call $_abort) + ) + (i32.store + (i32.add + (local.get $11) + (i32.const 24) + ) + (local.get $5) + ) + (if + (local.tee $1 + (i32.load offset=16 (local.get $6) ) - (i32.store - (local.get $0) - (local.get $8) - ) - (i32.store offset=20 - (local.get $5) - (local.get $8) - ) ) - (br_if $label$break$L331 - (i32.eqz - (local.get $8) + (if + (i32.lt_u + (local.get $1) + (local.get $0) ) - ) - ) - ) - (if - (i32.lt_u - (local.get $8) - (local.tee $1 - (i32.load - (i32.const 192) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $11) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $11) + ) ) ) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $8) - (local.get $5) - ) - (if - (local.tee $3 - (i32.load + (br_if $label$break$L331 + (i32.eqz (local.tee $0 - (i32.add - (local.get $6) - (i32.const 16) + (i32.load offset=4 + (i32.add + (local.get $6) + (i32.const 16) + ) ) ) ) ) (if (i32.lt_u - (local.get $3) - (local.get $1) + (local.get $0) + (i32.load + (i32.const 192) + ) ) (call $_abort) (block - (i32.store offset=16 - (local.get $8) - (local.get $3) + (i32.store + (i32.add + (local.get $11) + (i32.const 20) + ) + (local.get $0) ) (i32.store offset=24 - (local.get $3) - (local.get $8) - ) - ) - ) - ) - (br_if $label$break$L331 - (i32.eqz - (local.tee $0 - (i32.load offset=4 (local.get $0) + (local.get $11) ) ) ) ) - (if - (i32.lt_u - (local.get $0) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $8) - (local.get $0) - ) - (i32.store offset=24 - (local.get $0) - (local.get $8) - ) - ) - ) ) ) - ) - (local.set $7 + (local.set $7 + (i32.add + (local.get $7) + (local.get $12) + ) + ) (i32.add - (local.get $7) - (local.get $10) + (local.get $6) + (local.get $12) ) ) - (i32.add - (local.get $6) - (local.get $10) - ) + (local.get $6) ) - (local.get $6) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.and - (i32.load - (local.get $0) + (i32.and + (i32.load + (local.get $0) + ) + (i32.const -2) ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $7) - (i32.const 1) ) - ) - (i32.store - (i32.add - (local.get $7) - (local.get $9) + (i32.store offset=4 + (local.get $8) + (i32.or + (local.get $7) + (i32.const 1) + ) ) - (local.get $7) - ) - (local.set $0 - (i32.shr_u + (i32.store + (i32.add + (local.get $7) + (local.get $8) + ) (local.get $7) - (i32.const 3) ) - ) - (if - (i32.lt_u - (local.get $7) - (i32.const 256) + (local.set $0 + (i32.shr_u + (local.get $7) + (i32.const 3) + ) ) - (block - (local.set $3 - (i32.add - (i32.shl - (local.get $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (local.get $7) + (i32.const 256) ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (block + (local.set $2 + (i32.add (i32.shl - (i32.const 1) (local.get $0) + (i32.const 3) ) + (i32.const 216) ) ) - (block $do-once63 - (if - (i32.ge_u - (local.tee $0 - (i32.load - (local.tee $1 - (i32.add - (local.get $3) - (i32.const 8) - ) - ) - ) - ) + (if + (i32.and + (local.tee $1 (i32.load - (i32.const 192) + (i32.const 176) ) ) - (block - (local.set $16 - (local.get $1) - ) - (local.set $11 + (local.tee $0 + (i32.shl + (i32.const 1) (local.get $0) ) - (br $do-once63) ) ) - (call $_abort) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) + (block $do-once63 + (local.set $1 + (i32.add + (local.get $2) + (i32.const 8) + ) + ) + (if + (i32.ge_u + (local.tee $0 + (i32.load offset=8 + (local.get $2) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (block + (local.set $16 + (local.get $1) + ) + (local.set $9 + (local.get $0) + ) + (br $do-once63) + ) ) + (call $_abort) ) - (local.set $16 - (i32.add - (local.get $3) - (i32.const 8) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) + ) + (local.set $16 + (i32.add + (local.get $2) + (i32.const 8) + ) + ) + (local.set $9 + (local.get $2) ) ) - (local.set $11 - (local.get $3) + ) + (i32.store + (local.get $16) + (local.get $8) + ) + (i32.store + (i32.add + (local.get $9) + (i32.const 12) ) + (local.get $8) ) + (i32.store offset=8 + (local.get $8) + (local.get $9) + ) + (i32.store offset=12 + (local.get $8) + (local.get $2) + ) + (br $do-once48) ) - (i32.store - (local.get $16) - (local.get $9) - ) - (i32.store offset=12 - (local.get $11) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $11) - ) - (i32.store offset=12 - (local.get $9) - (local.get $3) - ) - (br $do-once48) ) - ) - (local.set $3 - (i32.add - (i32.shl - (local.tee $2 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $7) - (i32.const 8) - ) - ) + (local.set $2 + (i32.add + (i32.shl + (local.tee $3 (if (result i32) - (i32.gt_u - (local.get $7) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $7) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $7) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $3 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $2) + (local.set $2 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $3) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $7) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $7) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) + (i32.or + (local.get $1) + (local.get $3) + ) (local.get $2) ) - (local.get $3) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $3) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $2) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $9) - (local.get $2) - ) - (i32.store offset=4 - (local.tee $0 + (i32.store offset=28 + (local.get $8) + (local.get $3) + ) + (i32.store offset=4 (i32.add - (local.get $9) + (local.get $8) (i32.const 16) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (local.get $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $1 - (i32.load - (i32.const 180) + (i32.store offset=16 + (local.get $8) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $1 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $0 - (i32.shl - (i32.const 1) - (local.get $2) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $3) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $0) - (local.get $1) - ) - ) - (i32.store - (local.get $3) - (local.get $9) - ) - (i32.store offset=24 - (local.get $9) - (local.get $3) - ) - (i32.store offset=12 - (local.get $9) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $9) - ) - (br $do-once48) - ) - ) - (local.set $2 - (i32.shl - (local.get $7) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (local.get $2) - (i32.const 1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $0) + (local.get $1) ) ) - (i32.eq + (i32.store + (local.get $2) + (local.get $8) + ) + (i32.store offset=24 + (local.get $8) (local.get $2) - (i32.const 31) ) + (i32.store offset=12 + (local.get $8) + (local.get $8) + ) + (i32.store offset=8 + (local.get $8) + (local.get $8) + ) + (br $do-once48) ) ) - ) - (local.set $0 - (i32.load - (local.get $3) - ) - ) - (block $__rjto$7 - (block $__rjti$7 - (loop $while-in68 - (br_if $__rjti$7 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $0) - ) - (i32.const -8) + (local.set $3 + (i32.shl + (local.get $7) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $3) + (i32.const 1) ) - (local.get $7) ) - ) - (local.set $3 - (i32.shl - (local.get $2) - (i32.const 1) + (i32.eq + (local.get $3) + (i32.const 31) ) ) - (if - (local.tee $1 - (i32.load - (local.tee $2 - (i32.add + ) + ) + (local.set $0 + (i32.load + (local.get $2) + ) + ) + (block $__rjto$7 + (block $__rjti$7 + (loop $while-in68 + (br_if $__rjti$7 + (i32.eq + (i32.and + (i32.load (i32.add (local.get $0) - (i32.const 16) + (i32.const 4) ) - (i32.shl - (i32.shr_u - (local.get $2) - (i32.const 31) + ) + (i32.const -8) + ) + (local.get $7) + ) + ) + (local.set $2 + (i32.shl + (local.get $3) + (i32.const 1) + ) + ) + (if + (local.tee $1 + (i32.load + (local.tee $3 + (i32.add + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $3) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $3 + (local.get $2) + ) + (local.set $0 + (local.get $1) + ) + (br $while-in68) + ) + ) + ) + (if + (i32.lt_u + (local.get $3) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (local.set $2 + (i32.store (local.get $3) + (local.get $8) ) - (local.set $0 - (local.get $1) + (i32.store offset=24 + (local.get $8) + (local.get $0) ) - (br $while-in68) + (i32.store offset=12 + (local.get $8) + (local.get $8) + ) + (i32.store offset=8 + (local.get $8) + (local.get $8) + ) + (br $do-once48) ) ) + (br $__rjto$7) ) (if - (i32.lt_u - (local.get $2) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $2 + (i32.load offset=8 + (local.get $0) + ) + ) + (local.tee $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $0) + (local.get $1) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (local.get $2) - (local.get $9) + (local.get $8) ) - (i32.store offset=24 - (local.get $9) + (i32.store offset=8 (local.get $0) - ) - (i32.store offset=12 - (local.get $9) - (local.get $9) + (local.get $8) ) (i32.store offset=8 - (local.get $9) - (local.get $9) + (local.get $8) + (local.get $2) ) - (br $do-once48) - ) - ) - (br $__rjto$7) - ) - (if - (i32.and - (i32.ge_u - (local.tee $2 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $8) + (local.get $0) ) - (local.tee $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $8) + (i32.const 0) ) ) - (i32.ge_u - (local.get $0) - (local.get $1) - ) - ) - (block - (i32.store offset=12 - (local.get $2) - (local.get $9) - ) - (i32.store - (local.get $3) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $2) - ) - (i32.store offset=12 - (local.get $9) - (local.get $0) - ) - (i32.store offset=24 - (local.get $9) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (return - (i32.add - (local.get $12) - (i32.const 8) + (return + (i32.add + (local.get $10) + (i32.const 8) + ) ) ) ) ) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.le_u - (local.tee $2 - (i32.load - (local.get $4) + (loop $while-in70 + (block $while-out69 + (if + (i32.le_u + (local.tee $3 + (i32.load + (local.get $4) + ) ) + (local.get $5) ) - (local.get $5) - ) - (br_if $while-out69 - (i32.gt_u - (local.tee $2 - (i32.add - (local.get $2) - (i32.load offset=4 - (local.get $4) + (br_if $while-out69 + (i32.gt_u + (local.tee $3 + (i32.add + (local.get $3) + (i32.load + (i32.add + (local.get $4) + (i32.const 4) + ) + ) ) ) + (local.get $5) ) - (local.get $5) ) ) - ) - (local.set $4 - (i32.load offset=8 - (local.get $4) + (local.set $4 + (i32.load + (i32.add + (local.get $4) + (i32.const 8) + ) + ) ) + (br $while-in70) ) - (br $while-in70) ) - ) - (local.set $11 - (i32.add - (local.tee $4 - (i32.add - (local.get $2) - (i32.const -47) + (local.set $9 + (i32.add + (local.tee $4 + (i32.add + (local.get $3) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (local.set $8 - (i32.add - (local.tee $10 - (select - (local.get $5) - (local.tee $4 - (i32.add - (local.get $4) - (select - (i32.and - (i32.sub - (i32.const 0) - (local.get $11) + (local.set $6 + (i32.add + (local.tee $11 + (select + (local.get $5) + (local.tee $4 + (i32.add + (local.get $4) + (select + (i32.and + (i32.sub + (i32.const 0) + (local.get $9) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $9) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $11) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (local.get $4) - (local.tee $11 + (i32.lt_u + (local.get $4) (i32.add (local.get $5) (i32.const 16) @@ -12104,791 +12060,790 @@ ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 200) - (local.tee $6 - (i32.add - (local.tee $4 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $4 - (i32.add - (local.get $1) - (i32.const 8) + (i32.store + (i32.const 200) + (local.tee $9 + (i32.add + (local.tee $4 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $4 + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $4) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $4) - (i32.const 7) ) ) + (local.get $1) ) - (local.get $1) ) ) - ) - (i32.store - (i32.const 188) - (local.tee $4 - (i32.sub - (i32.add - (local.get $3) - (i32.const -40) + (i32.store + (i32.const 188) + (local.tee $4 + (i32.sub + (i32.add + (local.get $2) + (i32.const -40) + ) + (local.get $4) ) + ) + ) + (i32.store offset=4 + (local.get $9) + (i32.or + (local.get $4) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add (local.get $4) + (local.get $9) ) + (i32.const 40) ) - ) - (i32.store offset=4 - (local.get $6) - (i32.or - (local.get $4) - (i32.const 1) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) - ) - (i32.store offset=4 - (i32.add - (local.get $4) + (i32.store offset=4 + (local.get $11) + (i32.const 27) + ) + (i32.store offset=8 + (local.get $11) + (i32.load + (i32.const 624) + ) + ) + (i32.store offset=4 (local.get $6) + (i32.load + (i32.const 628) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=8 + (local.get $6) + (i32.load + (i32.const 632) + ) ) - ) - (i32.store - (local.tee $4 - (i32.add - (local.get $10) - (i32.const 4) + (i32.store offset=12 + (local.get $6) + (i32.load + (i32.const 636) ) ) - (i32.const 27) - ) - (i32.store - (local.get $8) - (i32.load + (i32.store (i32.const 624) + (local.get $1) ) - ) - (i32.store offset=4 - (local.get $8) - (i32.load + (i32.store (i32.const 628) + (local.get $2) ) - ) - (i32.store offset=8 - (local.get $8) - (i32.load - (i32.const 632) - ) - ) - (i32.store offset=12 - (local.get $8) - (i32.load + (i32.store (i32.const 636) + (i32.const 0) ) - ) - (i32.store - (i32.const 624) - (local.get $1) - ) - (i32.store - (i32.const 628) - (local.get $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 632) - (local.get $8) - ) - (local.set $1 - (i32.add - (local.get $10) - (i32.const 24) - ) - ) - (loop $while-in72 (i32.store - (local.tee $1 - (i32.add - (local.get $1) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 632) + (local.get $6) ) - (br_if $while-in72 - (i32.lt_u - (i32.add - (local.get $1) - (i32.const 4) - ) - (local.get $2) + (local.set $1 + (i32.add + (local.get $11) + (i32.const 24) ) ) - ) - (if - (i32.ne - (local.get $5) - (local.get $10) - ) - (block + (loop $while-in72 (i32.store - (local.get $4) - (i32.and - (i32.load - (local.get $4) + (local.tee $1 + (i32.add + (local.get $1) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (local.get $5) - (i32.or - (local.tee $6 - (i32.sub - (local.get $10) - (local.get $5) - ) + (br_if $while-in72 + (i32.lt_u + (i32.add + (local.get $1) + (i32.const 4) ) - (i32.const 1) + (local.get $3) ) ) - (i32.store - (local.get $10) - (local.get $6) - ) - (local.set $1 - (i32.shr_u - (local.get $6) - (i32.const 3) - ) + ) + (if + (i32.ne + (local.get $5) + (local.get $11) ) - (if - (i32.lt_u - (local.get $6) - (i32.const 256) + (block + (i32.store offset=4 + (local.get $11) + (i32.and + (i32.load offset=4 + (local.get $11) + ) + (i32.const -2) + ) ) - (block - (local.set $2 - (i32.add - (i32.shl - (local.get $1) - (i32.const 3) + (i32.store offset=4 + (local.get $5) + (i32.or + (local.tee $9 + (i32.sub + (local.get $11) + (local.get $5) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (local.tee $3 - (i32.load - (i32.const 176) - ) - ) - (local.tee $1 + ) + (i32.store + (local.get $11) + (local.get $9) + ) + (local.set $1 + (i32.shr_u + (local.get $9) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (local.get $9) + (i32.const 256) + ) + (block + (local.set $3 + (i32.add (i32.shl - (i32.const 1) (local.get $1) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $1 + (i32.and + (local.tee $2 (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 8) + (i32.const 176) + ) + ) + (local.tee $1 + (i32.shl + (i32.const 1) + (local.get $1) + ) + ) + ) + (block + (local.set $2 + (i32.add + (local.get $3) + (i32.const 8) + ) + ) + (if + (i32.lt_u + (local.tee $1 + (i32.load offset=8 + (local.get $3) ) ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $17 + (local.get $2) + ) + (local.set $7 + (local.get $1) + ) ) - ) - (i32.load - (i32.const 192) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (local.get $1) + (local.get $2) + ) + ) (local.set $17 - (local.get $3) + (i32.add + (local.get $3) + (i32.const 8) + ) ) (local.set $7 - (local.get $1) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $1) (local.get $3) ) ) - (local.set $17 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) - (local.set $7 - (local.get $2) + ) + (i32.store + (local.get $17) + (local.get $5) + ) + (i32.store + (i32.add + (local.get $7) + (i32.const 12) ) + (local.get $5) ) + (i32.store offset=8 + (local.get $5) + (local.get $7) + ) + (i32.store offset=12 + (local.get $5) + (local.get $3) + ) + (br $do-once40) ) - (i32.store - (local.get $17) - (local.get $5) - ) - (i32.store offset=12 - (local.get $7) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $7) - ) - (i32.store offset=12 - (local.get $5) - (local.get $2) - ) - (br $do-once40) ) - ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $4 - (if (result i32) - (local.tee $1 - (i32.shr_u - (local.get $6) - (i32.const 8) - ) - ) + (local.set $3 + (i32.add + (i32.shl + (local.tee $4 (if (result i32) - (i32.gt_u - (local.get $6) - (i32.const 16777215) + (local.tee $1 + (i32.shr_u + (local.get $9) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $4 - (i32.and - (i32.shr_u - (i32.add - (local.tee $1 - (i32.shl - (local.get $1) - (local.tee $3 - (i32.and - (i32.shr_u - (i32.add - (local.get $1) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $9) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $4 + (i32.and + (i32.shr_u + (i32.add + (local.tee $1 + (i32.shl + (local.get $1) + (local.tee $2 + (i32.and + (i32.shr_u + (i32.add + (local.get $1) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $1 - (i32.shl - (local.get $1) - (local.get $4) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $1 + (i32.shl + (local.get $1) + (local.get $4) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $6) - (i32.add - (local.tee $1 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $9) + (i32.add + (local.tee $1 + (i32.add + (i32.sub + (i32.const 14) (i32.or + (i32.or + (local.get $2) + (local.get $4) + ) (local.get $3) - (local.get $4) ) - (local.get $2) ) - ) - (i32.shr_u - (i32.shl - (local.get $1) - (local.get $2) + (i32.shr_u + (i32.shl + (local.get $1) + (local.get $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $1) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $1) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $5) - (local.get $4) - ) - (i32.store offset=20 - (local.get $5) - (i32.const 0) - ) - (i32.store - (local.get $11) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $3 - (i32.load - (i32.const 180) + (i32.store offset=28 + (local.get $5) + (local.get $4) + ) + (i32.store offset=20 + (local.get $5) + (i32.const 0) + ) + (i32.store offset=16 + (local.get $5) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $2 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $1 - (i32.shl - (i32.const 1) - (local.get $4) + (local.tee $1 + (i32.shl + (i32.const 1) + (local.get $4) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $1) + (local.get $2) + ) + ) + (i32.store (local.get $3) + (local.get $5) ) + (i32.store offset=24 + (local.get $5) + (local.get $3) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once40) ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=24 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $5) - ) - (br $do-once40) ) - ) - (local.set $4 - (i32.shl - (local.get $6) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (local.set $4 + (i32.shl + (local.get $9) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $4) + (i32.const 1) + ) + ) + (i32.eq (local.get $4) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $4) - (i32.const 31) - ) ) ) - ) - (local.set $1 - (i32.load - (local.get $2) + (local.set $1 + (i32.load + (local.get $3) + ) ) - ) - (block $__rjto$9 - (block $__rjti$9 - (loop $while-in74 - (br_if $__rjti$9 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $1) + (block $__rjto$9 + (block $__rjti$9 + (loop $while-in74 + (br_if $__rjti$9 + (i32.eq + (i32.and + (i32.load + (i32.add + (local.get $1) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $9) ) - (local.get $6) ) - ) - (local.set $2 - (i32.shl - (local.get $4) - (i32.const 1) + (local.set $3 + (i32.shl + (local.get $4) + (i32.const 1) + ) ) - ) - (if - (local.tee $3 - (i32.load - (local.tee $4 - (i32.add + (if + (local.tee $2 + (i32.load + (local.tee $4 (i32.add - (local.get $1) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $4) - (i32.const 31) + (i32.add + (local.get $1) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $4) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $4 + (local.get $3) + ) + (local.set $1 + (local.get $2) + ) + (br $while-in74) + ) + ) + ) + (if + (i32.lt_u + (local.get $4) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (local.set $4 - (local.get $2) + (i32.store + (local.get $4) + (local.get $5) ) - (local.set $1 - (local.get $3) + (i32.store offset=24 + (local.get $5) + (local.get $1) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) ) - (br $while-in74) + (br $do-once40) ) ) + (br $__rjto$9) ) (if - (i32.lt_u - (local.get $4) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $3 + (i32.load offset=8 + (local.get $1) + ) + ) + (local.tee $2 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $1) + (local.get $2) ) ) - (call $_abort) (block - (i32.store - (local.get $4) + (i32.store offset=12 + (local.get $3) (local.get $5) ) - (i32.store offset=24 - (local.get $5) + (i32.store offset=8 (local.get $1) - ) - (i32.store offset=12 - (local.get $5) (local.get $5) ) (i32.store offset=8 (local.get $5) - (local.get $5) + (local.get $3) ) - (br $do-once40) - ) - ) - (br $__rjto$9) - ) - (if - (i32.and - (i32.ge_u - (local.tee $4 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $5) + (local.get $1) ) - (local.tee $3 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $5) + (i32.const 0) ) ) - (i32.ge_u - (local.get $1) - (local.get $3) - ) - ) - (block - (i32.store offset=12 - (local.get $4) - (local.get $5) - ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $4) - ) - (i32.store offset=12 - (local.get $5) - (local.get $1) - ) - (i32.store offset=24 - (local.get $5) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (local.tee $2 - (i32.load - (i32.const 192) + (block + (if + (i32.or + (i32.eqz + (local.tee $3 + (i32.load + (i32.const 192) + ) ) ) + (i32.lt_u + (local.get $1) + (local.get $3) + ) ) - (i32.lt_u + (i32.store + (i32.const 192) (local.get $1) - (local.get $2) ) ) (i32.store - (i32.const 192) + (i32.const 624) (local.get $1) ) - ) - (i32.store - (i32.const 624) - (local.get $1) - ) - (i32.store - (i32.const 628) - (local.get $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) + (i32.store + (i32.const 628) + (local.get $2) ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (local.set $2 - (i32.const 0) - ) - (loop $while-in43 - (i32.store offset=12 - (local.tee $4 - (i32.add - (i32.shl - (local.get $2) - (i32.const 3) - ) - (i32.const 216) - ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) + (i32.load + (i32.const 648) ) - (local.get $4) ) - (i32.store offset=8 - (local.get $4) - (local.get $4) + (i32.store + (i32.const 208) + (i32.const -1) ) - (br_if $while-in43 - (i32.ne - (local.tee $2 + (local.set $3 + (i32.const 0) + ) + (loop $while-in43 + (i32.store offset=12 + (local.tee $4 (i32.add - (local.get $2) - (i32.const 1) + (i32.shl + (local.get $3) + (i32.const 3) + ) + (i32.const 216) ) ) - (i32.const 32) + (local.get $4) + ) + (i32.store offset=8 + (local.get $4) + (local.get $4) + ) + (br_if $while-in43 + (i32.ne + (local.tee $3 + (i32.add + (local.get $3) + (i32.const 1) + ) + ) + (i32.const 32) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.tee $4 - (i32.add - (local.tee $2 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 8) + (i32.store + (i32.const 200) + (local.tee $4 + (i32.add + (local.tee $3 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $3) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $2) - (i32.const 7) ) ) + (local.get $1) ) - (local.get $1) ) ) - ) - (i32.store - (i32.const 188) - (local.tee $1 - (i32.sub - (i32.add + (i32.store + (i32.const 188) + (local.tee $1 + (i32.sub + (i32.add + (local.get $2) + (i32.const -40) + ) (local.get $3) - (i32.const -40) ) - (local.get $2) ) ) - ) - (i32.store offset=4 - (local.get $4) - (i32.or - (local.get $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (local.get $1) + (i32.store offset=4 (local.get $4) + (i32.or + (local.get $1) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (i32.add + (local.get $1) + (local.get $4) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) ) ) - ) - (br_if $folding-inner0 - (i32.gt_u - (local.tee $1 - (i32.load - (i32.const 188) + (br_if $folding-inner0 + (i32.gt_u + (local.tee $1 + (i32.load + (i32.const 188) + ) ) + (local.get $0) ) - (local.get $0) ) ) + (i32.store + (call $___errno_location) + (i32.const 12) + ) + (return + (i32.const 0) + ) ) (i32.store - (call $___errno_location) - (i32.const 12) - ) - (return - (i32.const 0) - ) - ) - (i32.store - (i32.const 188) - (local.tee $3 - (i32.sub - (local.get $1) - (local.get $0) + (i32.const 188) + (local.tee $2 + (i32.sub + (local.get $1) + (local.get $0) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.tee $1 - (i32.add - (local.tee $2 - (i32.load - (i32.const 200) + (i32.store + (i32.const 200) + (local.tee $1 + (i32.add + (local.tee $3 + (i32.load + (i32.const 200) + ) ) + (local.get $0) ) - (local.get $0) ) ) - ) - (i32.store offset=4 - (local.get $1) - (i32.or - (local.get $3) - (i32.const 1) + (i32.store offset=4 + (local.get $1) + (i32.or + (local.get $2) + (i32.const 1) + ) ) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $0) - (i32.const 3) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $0) + (i32.const 3) + ) ) ) (i32.add - (local.get $2) + (local.get $3) (i32.const 8) ) ) @@ -12932,9 +12887,9 @@ ) (if (i32.eq - (local.tee $5 + (local.tee $4 (i32.and - (local.tee $7 + (local.tee $8 (i32.load (i32.add (local.get $0) @@ -12949,12 +12904,12 @@ ) (call $_abort) ) - (local.set $8 + (local.set $7 (i32.add (local.get $1) (local.tee $0 (i32.and - (local.get $7) + (local.get $8) (i32.const -8) ) ) @@ -12962,26 +12917,26 @@ ) (if (i32.and - (local.get $7) + (local.get $8) (i32.const 1) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) (block $do-once - (local.set $7 + (local.set $8 (i32.load (local.get $1) ) ) (if (i32.eqz - (local.get $5) + (local.get $4) ) (return) ) @@ -12990,7 +12945,7 @@ (local.tee $1 (i32.sub (local.get $1) - (local.get $7) + (local.get $8) ) ) (local.get $11) @@ -13000,7 +12955,7 @@ (local.set $0 (i32.add (local.get $0) - (local.get $7) + (local.get $8) ) ) (if @@ -13014,14 +12969,9 @@ (if (i32.ne (i32.and - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $8) - (i32.const 4) - ) - ) + (local.tee $2 + (i32.load offset=4 + (local.get $7) ) ) (i32.const 3) @@ -13029,10 +12979,10 @@ (i32.const 3) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13042,10 +12992,10 @@ (i32.const 184) (local.get $0) ) - (i32.store - (local.get $2) + (i32.store offset=4 + (local.get $7) (i32.and - (local.get $3) + (local.get $2) (i32.const -2) ) ) @@ -13066,15 +13016,15 @@ (return) ) ) - (local.set $5 + (local.set $4 (i32.shr_u - (local.get $7) + (local.get $8) (i32.const 3) ) ) (if (i32.lt_u - (local.get $7) + (local.get $8) (i32.const 256) ) (block @@ -13085,15 +13035,15 @@ ) (if (i32.ne - (local.tee $2 + (local.tee $3 (i32.load offset=8 (local.get $1) ) ) - (local.tee $3 + (local.tee $2 (i32.add (i32.shl - (local.get $5) + (local.get $4) (i32.const 3) ) (i32.const 216) @@ -13103,7 +13053,7 @@ (block (if (i32.lt_u - (local.get $2) + (local.get $3) (local.get $11) ) (call $_abort) @@ -13112,7 +13062,7 @@ (i32.ne (local.get $1) (i32.load offset=12 - (local.get $2) + (local.get $3) ) ) (call $_abort) @@ -13121,7 +13071,7 @@ ) (if (i32.eq - (local.get $2) + (local.get $3) (local.get $6) ) (block @@ -13134,16 +13084,16 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) (i32.const -1) ) ) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13151,10 +13101,10 @@ ) (if (i32.eq - (local.get $3) + (local.get $2) (local.get $6) ) - (local.set $4 + (local.set $5 (i32.add (local.get $6) (i32.const 8) @@ -13168,50 +13118,51 @@ ) (call $_abort) ) + (local.set $2 + (i32.add + (local.get $6) + (i32.const 8) + ) + ) (if (i32.eq - (i32.load - (local.tee $3 - (i32.add - (local.get $6) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $6) ) (local.get $1) ) - (local.set $4 - (local.get $3) + (local.set $5 + (local.get $2) ) (call $_abort) ) ) ) (i32.store offset=12 - (local.get $2) + (local.get $3) (local.get $6) ) (i32.store - (local.get $4) - (local.get $2) + (local.get $5) + (local.get $3) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) ) ) - (local.set $12 + (local.set $10 (i32.load offset=24 (local.get $1) ) ) (if (i32.eq - (local.tee $4 + (local.tee $5 (i32.load offset=12 (local.get $1) ) @@ -13219,78 +13170,79 @@ (local.get $1) ) (block $do-once0 + (local.set $5 + (i32.add + (local.tee $8 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + (i32.const 4) + ) + ) (if (i32.eqz - (local.tee $5 - (i32.load - (local.tee $4 - (i32.add - (local.tee $7 - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) + (local.tee $4 + (i32.load offset=4 + (local.get $8) ) ) ) (block (br_if $do-once0 (i32.eqz - (local.tee $5 - (i32.load - (local.get $7) + (local.tee $4 + (i32.load offset=16 + (local.get $1) ) ) ) ) - (local.set $4 - (local.get $7) + (local.set $5 + (local.get $8) ) ) ) (loop $while-in (if - (local.tee $7 + (local.tee $8 (i32.load - (local.tee $10 + (local.tee $12 (i32.add - (local.get $5) + (local.get $4) (i32.const 20) ) ) ) ) (block - (local.set $5 - (local.get $7) - ) (local.set $4 - (local.get $10) + (local.get $8) + ) + (local.set $5 + (local.get $12) ) (br $while-in) ) ) (if - (local.tee $7 + (local.tee $8 (i32.load - (local.tee $10 + (local.tee $12 (i32.add - (local.get $5) + (local.get $4) (i32.const 16) ) ) ) ) (block - (local.set $5 - (local.get $7) - ) (local.set $4 - (local.get $10) + (local.get $8) + ) + (local.set $5 + (local.get $12) ) (br $while-in) ) @@ -13298,17 +13250,17 @@ ) (if (i32.lt_u - (local.get $4) + (local.get $5) (local.get $11) ) (call $_abort) (block (i32.store - (local.get $4) + (local.get $5) (i32.const 0) ) (local.set $6 - (local.get $5) + (local.get $4) ) ) ) @@ -13316,7 +13268,7 @@ (block (if (i32.lt_u - (local.tee $10 + (local.tee $4 (i32.load offset=8 (local.get $1) ) @@ -13328,40 +13280,30 @@ (if (i32.ne (local.get $1) - (i32.load - (local.tee $7 - (i32.add - (local.get $10) - (i32.const 12) - ) - ) + (i32.load offset=12 + (local.get $4) ) ) (call $_abort) ) (if (i32.eq - (i32.load - (local.tee $5 - (i32.add - (local.get $4) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $5) ) (local.get $1) ) (block - (i32.store - (local.get $7) + (i32.store offset=12 (local.get $4) + (local.get $5) ) - (i32.store + (i32.store offset=8 (local.get $5) - (local.get $10) + (local.get $4) ) (local.set $6 - (local.get $4) + (local.get $5) ) ) (call $_abort) @@ -13369,15 +13311,15 @@ ) ) (if - (local.get $12) + (local.get $10) (block (if (i32.eq (i32.load - (local.tee $4 + (local.tee $5 (i32.add (i32.shl - (local.tee $5 + (local.tee $4 (i32.load offset=28 (local.get $1) ) @@ -13392,7 +13334,7 @@ ) (block (i32.store - (local.get $4) + (local.get $5) (local.get $6) ) (if @@ -13409,16 +13351,16 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) (i32.const -1) ) ) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13428,7 +13370,7 @@ (block (if (i32.lt_u - (local.get $12) + (local.get $10) (i32.load (i32.const 192) ) @@ -13437,22 +13379,17 @@ ) (if (i32.eq - (i32.load - (local.tee $4 - (i32.add - (local.get $12) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $10) ) (local.get $1) ) - (i32.store - (local.get $4) + (i32.store offset=16 + (local.get $10) (local.get $6) ) (i32.store offset=20 - (local.get $12) + (local.get $10) (local.get $6) ) ) @@ -13461,10 +13398,10 @@ (local.get $6) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13483,85 +13420,92 @@ ) (call $_abort) ) - (i32.store offset=24 - (local.get $6) - (local.get $12) + (i32.store + (i32.add + (local.get $6) + (i32.const 24) + ) + (local.get $10) ) (if - (local.tee $7 - (i32.load - (local.tee $4 - (i32.add - (local.get $1) - (i32.const 16) - ) - ) + (local.tee $4 + (i32.load offset=16 + (local.get $1) ) ) (if (i32.lt_u - (local.get $7) + (local.get $4) (local.get $5) ) (call $_abort) (block - (i32.store offset=16 - (local.get $6) - (local.get $7) + (i32.store + (i32.add + (local.get $6) + (i32.const 16) + ) + (local.get $4) ) (i32.store offset=24 - (local.get $7) + (local.get $4) (local.get $6) ) ) ) ) (if - (local.tee $4 + (local.tee $5 (i32.load offset=4 - (local.get $4) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) (if (i32.lt_u - (local.get $4) + (local.get $5) (i32.load (i32.const 192) ) ) (call $_abort) (block - (i32.store offset=20 - (local.get $6) - (local.get $4) + (i32.store + (i32.add + (local.get $6) + (i32.const 20) + ) + (local.get $5) ) (i32.store offset=24 - (local.get $4) + (local.get $5) (local.get $6) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) ) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) @@ -13570,22 +13514,17 @@ ) (if (i32.ge_u - (local.get $2) - (local.get $8) + (local.get $3) + (local.get $7) ) (call $_abort) ) (if (i32.eqz (i32.and - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 4) - ) - ) + (local.tee $0 + (i32.load offset=4 + (local.get $7) ) ) (i32.const 1) @@ -13595,21 +13534,24 @@ ) (if (i32.and - (local.get $1) + (local.get $0) (i32.const 2) ) (block - (i32.store - (local.get $0) + (i32.store offset=4 + (local.get $7) (i32.and - (local.get $1) + (local.get $0) (i32.const -2) ) ) - (i32.store offset=4 - (local.get $2) - (i32.or + (i32.store + (i32.add (local.get $3) + (i32.const 4) + ) + (i32.or + (local.get $2) (i32.const 1) ) ) @@ -13618,7 +13560,7 @@ (local.get $2) (local.get $3) ) - (local.get $3) + (local.get $2) ) ) (block @@ -13627,7 +13569,7 @@ (i32.load (i32.const 200) ) - (local.get $8) + (local.get $7) ) (block (i32.store @@ -13637,16 +13579,19 @@ (i32.load (i32.const 188) ) - (local.get $3) + (local.get $2) ) ) ) (i32.store (i32.const 200) - (local.get $2) + (local.get $3) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or (local.get $0) (i32.const 1) @@ -13654,7 +13599,7 @@ ) (if (i32.ne - (local.get $2) + (local.get $3) (i32.load (i32.const 196) ) @@ -13677,7 +13622,7 @@ (i32.load (i32.const 196) ) - (local.get $8) + (local.get $7) ) (block (i32.store @@ -13687,16 +13632,19 @@ (i32.load (i32.const 184) ) - (local.get $3) + (local.get $2) ) ) ) (i32.store (i32.const 196) - (local.get $2) + (local.get $3) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or (local.get $0) (i32.const 1) @@ -13705,51 +13653,51 @@ (i32.store (i32.add (local.get $0) - (local.get $2) + (local.get $3) ) (local.get $0) ) (return) ) ) - (local.set $5 + (local.set $4 (i32.add (i32.and - (local.get $1) + (local.get $0) (i32.const -8) ) - (local.get $3) + (local.get $2) ) ) - (local.set $3 + (local.set $2 (i32.shr_u - (local.get $1) + (local.get $0) (i32.const 3) ) ) (block $do-once4 (if (i32.lt_u - (local.get $1) + (local.get $0) (i32.const 256) ) (block - (local.set $4 + (local.set $5 (i32.load offset=12 - (local.get $8) + (local.get $7) ) ) (if (i32.ne (local.tee $1 (i32.load offset=8 - (local.get $8) + (local.get $7) ) ) (local.tee $0 (i32.add (i32.shl - (local.get $3) + (local.get $2) (i32.const 3) ) (i32.const 216) @@ -13768,7 +13716,7 @@ ) (if (i32.ne - (local.get $8) + (local.get $7) (i32.load offset=12 (local.get $1) ) @@ -13780,7 +13728,7 @@ (if (i32.eq (local.get $1) - (local.get $4) + (local.get $5) ) (block (i32.store @@ -13792,7 +13740,7 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $3) + (local.get $2) ) (i32.const -1) ) @@ -13804,35 +13752,36 @@ (if (i32.eq (local.get $0) - (local.get $4) + (local.get $5) ) (local.set $14 (i32.add - (local.get $4) + (local.get $5) (i32.const 8) ) ) (block (if (i32.lt_u - (local.get $4) + (local.get $5) (i32.load (i32.const 192) ) ) (call $_abort) ) + (local.set $0 + (i32.add + (local.get $5) + (i32.const 8) + ) + ) (if (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $4) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $5) ) - (local.get $8) + (local.get $7) ) (local.set $14 (local.get $0) @@ -13843,7 +13792,7 @@ ) (i32.store offset=12 (local.get $1) - (local.get $4) + (local.get $5) ) (i32.store (local.get $14) @@ -13853,43 +13802,44 @@ (block (local.set $6 (i32.load offset=24 - (local.get $8) + (local.get $7) ) ) (if (i32.eq (local.tee $0 (i32.load offset=12 - (local.get $8) + (local.get $7) ) ) - (local.get $8) + (local.get $7) ) (block $do-once6 + (local.set $0 + (i32.add + (local.tee $1 + (i32.add + (local.get $7) + (i32.const 16) + ) + ) + (i32.const 4) + ) + ) (if (i32.eqz - (local.tee $3 - (i32.load - (local.tee $0 - (i32.add - (local.tee $1 - (i32.add - (local.get $8) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) + (local.tee $2 + (i32.load offset=4 + (local.get $1) ) ) ) (block (br_if $do-once6 (i32.eqz - (local.tee $3 - (i32.load - (local.get $1) + (local.tee $2 + (i32.load offset=16 + (local.get $7) ) ) ) @@ -13903,20 +13853,20 @@ (if (local.tee $1 (i32.load - (local.tee $4 + (local.tee $5 (i32.add - (local.get $3) + (local.get $2) (i32.const 20) ) ) ) ) (block - (local.set $3 + (local.set $2 (local.get $1) ) (local.set $0 - (local.get $4) + (local.get $5) ) (br $while-in9) ) @@ -13924,20 +13874,20 @@ (if (local.tee $1 (i32.load - (local.tee $4 + (local.tee $5 (i32.add - (local.get $3) + (local.get $2) (i32.const 16) ) ) ) ) (block - (local.set $3 + (local.set $2 (local.get $1) ) (local.set $0 - (local.get $4) + (local.get $5) ) (br $while-in9) ) @@ -13957,7 +13907,7 @@ (i32.const 0) ) (local.set $9 - (local.get $3) + (local.get $2) ) ) ) @@ -13965,9 +13915,9 @@ (block (if (i32.lt_u - (local.tee $4 + (local.tee $2 (i32.load offset=8 - (local.get $8) + (local.get $7) ) ) (i32.load @@ -13978,38 +13928,28 @@ ) (if (i32.ne - (local.get $8) - (i32.load - (local.tee $1 - (i32.add - (local.get $4) - (i32.const 12) - ) - ) + (local.get $7) + (i32.load offset=12 + (local.get $2) ) ) (call $_abort) ) (if (i32.eq - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $0) ) - (local.get $8) + (local.get $7) ) (block - (i32.store - (local.get $1) + (i32.store offset=12 + (local.get $2) (local.get $0) ) - (i32.store - (local.get $3) - (local.get $4) + (i32.store offset=8 + (local.get $0) + (local.get $2) ) (local.set $9 (local.get $0) @@ -14028,9 +13968,9 @@ (local.tee $0 (i32.add (i32.shl - (local.tee $3 + (local.tee $2 (i32.load offset=28 - (local.get $8) + (local.get $7) ) ) (i32.const 2) @@ -14039,7 +13979,7 @@ ) ) ) - (local.get $8) + (local.get $7) ) (block (i32.store @@ -14060,7 +14000,7 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $3) + (local.get $2) ) (i32.const -1) ) @@ -14082,18 +14022,13 @@ ) (if (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $6) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $6) ) - (local.get $8) + (local.get $7) ) - (i32.store - (local.get $0) + (i32.store offset=16 + (local.get $6) (local.get $9) ) (i32.store offset=20 @@ -14111,7 +14046,7 @@ (if (i32.lt_u (local.get $9) - (local.tee $3 + (local.tee $0 (i32.load (i32.const 192) ) @@ -14119,34 +14054,35 @@ ) (call $_abort) ) - (i32.store offset=24 - (local.get $9) + (i32.store + (i32.add + (local.get $9) + (i32.const 24) + ) (local.get $6) ) (if - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 16) - ) - ) + (local.tee $2 + (i32.load offset=16 + (local.get $7) ) ) (if (i32.lt_u - (local.get $1) - (local.get $3) + (local.get $2) + (local.get $0) ) (call $_abort) (block - (i32.store offset=16 - (local.get $9) - (local.get $1) + (i32.store + (i32.add + (local.get $9) + (i32.const 16) + ) + (local.get $2) ) (i32.store offset=24 - (local.get $1) + (local.get $2) (local.get $9) ) ) @@ -14155,7 +14091,10 @@ (if (local.tee $0 (i32.load offset=4 - (local.get $0) + (i32.add + (local.get $7) + (i32.const 16) + ) ) ) (if @@ -14167,8 +14106,11 @@ ) (call $_abort) (block - (i32.store offset=20 - (local.get $9) + (i32.store + (i32.add + (local.get $9) + (i32.const 20) + ) (local.get $0) ) (i32.store offset=24 @@ -14183,49 +14125,52 @@ ) ) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or - (local.get $5) + (local.get $4) (i32.const 1) ) ) (i32.store (i32.add - (local.get $2) - (local.get $5) + (local.get $3) + (local.get $4) ) - (local.get $5) + (local.get $4) ) - (local.set $3 + (local.set $2 (if (result i32) (i32.eq (i32.load (i32.const 196) ) - (local.get $2) + (local.get $3) ) (block (i32.store (i32.const 184) - (local.get $5) + (local.get $4) ) (return) ) - (local.get $5) + (local.get $4) ) ) ) ) (local.set $0 (i32.shr_u - (local.get $3) + (local.get $2) (i32.const 3) ) ) (if (i32.lt_u - (local.get $3) + (local.get $2) (i32.const 256) ) (block @@ -14240,7 +14185,7 @@ ) (if (i32.and - (local.tee $3 + (local.tee $2 (i32.load (i32.const 176) ) @@ -14252,29 +14197,32 @@ ) ) ) - (if - (i32.lt_u - (local.tee $0 - (i32.load - (local.tee $3 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) - ) - (i32.load - (i32.const 192) + (block + (local.set $2 + (i32.add + (local.get $1) + (i32.const 8) ) ) - (call $_abort) - (block - (local.set $15 - (local.get $3) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $1) + ) + ) + (i32.load + (i32.const 192) + ) ) - (local.set $13 - (local.get $0) + (call $_abort) + (block + (local.set $15 + (local.get $2) + ) + (local.set $13 + (local.get $0) + ) ) ) ) @@ -14283,7 +14231,7 @@ (i32.const 176) (i32.or (local.get $0) - (local.get $3) + (local.get $2) ) ) (local.set $15 @@ -14299,42 +14247,51 @@ ) (i32.store (local.get $15) - (local.get $2) + (local.get $3) ) - (i32.store offset=12 - (local.get $13) - (local.get $2) + (i32.store + (i32.add + (local.get $13) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) (local.get $13) ) - (i32.store offset=12 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) (local.get $1) ) (return) ) ) - (local.set $4 + (local.set $5 (i32.add (i32.shl - (local.tee $5 + (local.tee $4 (if (result i32) (local.tee $0 (i32.shr_u - (local.get $3) + (local.get $2) (i32.const 8) ) ) (if (result i32) (i32.gt_u - (local.get $3) + (local.get $2) (i32.const 16777215) ) (i32.const 31) (block (result i32) - (local.set $5 + (local.set $4 (i32.and (i32.shr_u (i32.add @@ -14362,14 +14319,14 @@ (i32.const 4) ) ) - (local.set $4 + (local.set $5 (i32.and (i32.shr_u (i32.add (local.tee $0 (i32.shl (local.get $0) - (local.get $5) + (local.get $4) ) ) (i32.const 245760) @@ -14382,7 +14339,7 @@ (i32.or (i32.and (i32.shr_u - (local.get $3) + (local.get $2) (i32.add (local.tee $0 (i32.add @@ -14391,15 +14348,15 @@ (i32.or (i32.or (local.get $1) - (local.get $5) + (local.get $4) ) - (local.get $4) + (local.get $5) ) ) (i32.shr_u (i32.shl (local.get $0) - (local.get $4) + (local.get $5) ) (i32.const 15) ) @@ -14425,16 +14382,25 @@ (i32.const 480) ) ) - (i32.store offset=28 - (local.get $2) - (local.get $5) + (i32.store + (i32.add + (local.get $3) + (i32.const 28) + ) + (local.get $4) ) - (i32.store offset=20 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 20) + ) (i32.const 0) ) - (i32.store offset=16 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 16) + ) (i32.const 0) ) (if @@ -14447,25 +14413,25 @@ (local.tee $0 (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) ) ) (block $do-once12 - (local.set $5 + (local.set $4 (i32.shl - (local.get $3) + (local.get $2) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (local.get $5) + (local.get $4) (i32.const 1) ) ) (i32.eq - (local.get $5) + (local.get $4) (i32.const 31) ) ) @@ -14473,7 +14439,7 @@ ) (local.set $0 (i32.load - (local.get $4) + (local.get $5) ) ) (block $__rjto$1 @@ -14482,24 +14448,27 @@ (br_if $__rjti$1 (i32.eq (i32.and - (i32.load offset=4 - (local.get $0) + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) ) (i32.const -8) ) - (local.get $3) + (local.get $2) ) ) - (local.set $4 + (local.set $5 (i32.shl - (local.get $5) + (local.get $4) (i32.const 1) ) ) (if (local.tee $1 (i32.load - (local.tee $5 + (local.tee $4 (i32.add (i32.add (local.get $0) @@ -14507,7 +14476,7 @@ ) (i32.shl (i32.shr_u - (local.get $5) + (local.get $4) (i32.const 31) ) (i32.const 2) @@ -14517,8 +14486,8 @@ ) ) (block - (local.set $5 - (local.get $4) + (local.set $4 + (local.get $5) ) (local.set $0 (local.get $1) @@ -14529,7 +14498,7 @@ ) (if (i32.lt_u - (local.get $5) + (local.get $4) (i32.load (i32.const 192) ) @@ -14537,20 +14506,29 @@ (call $_abort) (block (i32.store - (local.get $5) - (local.get $2) + (local.get $4) + (local.get $3) ) - (i32.store offset=24 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) (local.get $0) ) - (i32.store offset=12 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $3) ) (br $do-once12) ) @@ -14560,17 +14538,12 @@ (if (i32.and (i32.ge_u - (local.tee $4 - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $1 + (i32.load offset=8 + (local.get $0) ) ) - (local.tee $3 + (local.tee $2 (i32.load (i32.const 192) ) @@ -14578,28 +14551,37 @@ ) (i32.ge_u (local.get $0) - (local.get $3) + (local.get $2) ) ) (block (i32.store offset=12 - (local.get $4) - (local.get $2) - ) - (i32.store (local.get $1) - (local.get $2) + (local.get $3) ) (i32.store offset=8 - (local.get $2) - (local.get $4) + (local.get $0) + (local.get $3) ) - (i32.store offset=12 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $1) + ) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) (local.get $0) ) - (i32.store offset=24 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) (i32.const 0) ) ) @@ -14616,20 +14598,29 @@ ) ) (i32.store - (local.get $4) - (local.get $2) + (local.get $5) + (local.get $3) ) - (i32.store offset=24 - (local.get $2) - (local.get $4) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) + (local.get $5) ) - (i32.store offset=12 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $3) ) ) ) @@ -14654,7 +14645,7 @@ (loop $while-in17 (local.set $0 (i32.add - (local.tee $3 + (local.tee $2 (i32.load (local.get $0) ) @@ -14663,7 +14654,7 @@ ) ) (br_if $while-in17 - (local.get $3) + (local.get $2) ) ) (i32.store diff --git a/test/emcc_hello_world.fromasm.clamp b/test/emcc_hello_world.fromasm.clamp index 9a4aad57b..68a172d25 100644 --- a/test/emcc_hello_world.fromasm.clamp +++ b/test/emcc_hello_world.fromasm.clamp @@ -262,8 +262,11 @@ (loop $while-in (if (i32.ne - (i32.load8_u offset=687 - (local.get $1) + (i32.load8_u + (i32.add + (local.get $1) + (i32.const 687) + ) ) (local.get $0) ) @@ -497,11 +500,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -520,14 +521,14 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $4) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $4) ) ) ) @@ -664,11 +665,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local.set $10 + (local.set $8 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -684,43 +681,33 @@ ) (call $abort) ) - (local.set $8 + (local.set $9 (i32.add - (local.get $10) + (local.get $8) (i32.const 16) ) ) - (i32.store - (local.tee $4 - (i32.add - (local.tee $9 - (local.get $10) - ) - (i32.const 32) - ) + (i32.store offset=32 + (local.tee $6 + (local.get $8) ) (local.tee $3 - (i32.load - (local.tee $6 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) ) (i32.store offset=4 - (local.get $4) + (local.tee $4 + (i32.add + (local.get $6) + (i32.const 32) + ) + ) (local.tee $3 (i32.sub - (i32.load - (local.tee $11 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) (local.get $3) ) @@ -734,25 +721,13 @@ (local.get $4) (local.get $2) ) - (local.set $13 - (i32.add - (local.get $0) - (i32.const 60) - ) - ) - (local.set $14 - (i32.add - (local.get $0) - (i32.const 44) - ) - ) (local.set $1 (local.get $4) ) (local.set $4 (i32.const 2) ) - (local.set $12 + (local.set $10 (i32.add (local.get $2) (local.get $3) @@ -772,24 +747,24 @@ (local.get $0) ) (i32.store - (local.get $9) - (i32.load - (local.get $13) + (local.get $6) + (i32.load offset=60 + (local.get $0) ) ) (i32.store offset=4 - (local.get $9) + (local.get $6) (local.get $1) ) (i32.store offset=8 - (local.get $9) + (local.get $6) (local.get $4) ) (local.set $3 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $9) + (local.get $6) ) ) ) @@ -798,25 +773,25 @@ ) ) (block - (i32.store + (i32.store offset=16 (local.get $8) - (i32.load - (local.get $13) + (i32.load offset=60 + (local.get $0) ) ) (i32.store offset=4 - (local.get $8) + (local.get $9) (local.get $1) ) (i32.store offset=8 - (local.get $8) + (local.get $9) (local.get $4) ) (local.set $3 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $8) + (local.get $9) ) ) ) @@ -825,7 +800,7 @@ (br_if $__rjti$0 (i32.eq (local.get $3) - (local.get $12) + (local.get $10) ) ) (br_if $__rjti$1 @@ -839,27 +814,33 @@ (i32.gt_u (local.get $3) (local.tee $5 - (i32.load offset=4 - (local.get $1) + (i32.load + (i32.add + (local.get $1) + (i32.const 4) + ) ) ) ) (block (result i32) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (local.tee $7 - (i32.load - (local.get $14) + (i32.load offset=44 + (local.get $0) ) ) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (local.get $7) ) (local.set $7 - (i32.load offset=12 - (local.get $1) + (i32.load + (i32.add + (local.get $1) + (i32.const 12) + ) ) ) (local.set $1 @@ -886,11 +867,11 @@ (i32.const 2) ) (block - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (i32.add - (i32.load - (local.get $6) + (i32.load offset=28 + (local.get $0) ) (local.get $3) ) @@ -919,16 +900,19 @@ (local.get $5) ) ) - (i32.store offset=4 - (local.get $1) + (i32.store + (i32.add + (local.get $1) + (i32.const 4) + ) (i32.sub (local.get $7) (local.get $5) ) ) - (local.set $12 + (local.set $10 (i32.sub - (local.get $12) + (local.get $10) (local.get $3) ) ) @@ -939,8 +923,8 @@ (local.get $0) (i32.add (local.tee $1 - (i32.load - (local.get $14) + (i32.load offset=44 + (local.get $0) ) ) (i32.load offset=48 @@ -948,12 +932,12 @@ ) ) ) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (local.get $1) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (local.get $1) ) (br $__rjto$1) @@ -962,12 +946,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -996,7 +980,7 @@ ) ) (global.set $STACKTOP - (local.get $10) + (local.get $8) ) (local.get $2) ) @@ -1008,11 +992,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local.set $6 + (local.set $2 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -1028,26 +1008,27 @@ ) (call $abort) ) - (local.set $3 + (local.set $6 (i32.add - (local.get $6) + (local.get $2) (i32.const 120) ) ) - (local.set $5 + (local.set $7 + (local.get $2) + ) + (local.set $4 (i32.add - (local.tee $4 - (local.get $6) - ) + (local.get $2) (i32.const 136) ) ) - (local.set $8 + (local.set $5 (i32.add - (local.tee $2 - (local.tee $7 + (local.tee $3 + (local.tee $8 (i32.add - (local.get $4) + (local.get $2) (i32.const 80) ) ) @@ -1057,23 +1038,23 @@ ) (loop $do-in (i32.store - (local.get $2) + (local.get $3) (i32.const 0) ) (br_if $do-in (i32.lt_s - (local.tee $2 + (local.tee $3 (i32.add - (local.get $2) + (local.get $3) (i32.const 4) ) ) - (local.get $8) + (local.get $5) ) ) ) - (i32.store - (local.get $3) + (i32.store offset=120 + (local.get $2) (i32.load (local.get $1) ) @@ -1083,9 +1064,9 @@ (i32.lt_s (call $_printf_core (i32.const 0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) (i32.const 0) ) @@ -1096,7 +1077,7 @@ (local.get $0) ) ) - (local.set $9 + (local.set $3 (i32.load (local.get $0) ) @@ -1111,87 +1092,62 @@ (i32.store (local.get $0) (i32.and - (local.get $9) + (local.get $3) (i32.const -33) ) ) ) (if - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 48) - ) - ) + (i32.load offset=48 + (local.get $0) ) (drop (call $_printf_core (local.get $0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) ) (block - (local.set $11 - (i32.load - (local.tee $10 - (i32.add - (local.get $0) - (i32.const 44) - ) - ) + (local.set $5 + (i32.load offset=44 + (local.get $0) ) ) - (i32.store - (local.get $10) - (local.get $5) + (i32.store offset=44 + (local.get $0) + (local.get $4) ) - (i32.store - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) - (local.get $5) + (i32.store offset=28 + (local.get $0) + (local.get $4) ) - (i32.store - (local.tee $12 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) - (local.get $5) + (i32.store offset=20 + (local.get $0) + (local.get $4) ) - (i32.store - (local.get $1) + (i32.store offset=48 + (local.get $0) (i32.const 80) ) - (i32.store - (local.tee $8 - (i32.add - (local.get $0) - (i32.const 16) - ) - ) + (i32.store offset=16 + (local.get $0) (i32.add - (local.get $5) + (local.get $4) (i32.const 80) ) ) (drop (call $_printf_core (local.get $0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) ) (if - (local.get $11) + (local.get $5) (block (drop (call_indirect (type $FUNCSIG$iiii) @@ -1210,28 +1166,28 @@ ) ) (drop - (i32.load - (local.get $12) + (i32.load offset=20 + (local.get $0) ) ) - (i32.store - (local.get $10) - (local.get $11) + (i32.store offset=44 + (local.get $0) + (local.get $5) ) - (i32.store - (local.get $1) + (i32.store offset=48 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $8) + (i32.store offset=16 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $12) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) ) @@ -1245,7 +1201,7 @@ (local.get $0) ) (i32.and - (local.get $9) + (local.get $3) (i32.const 32) ) ) @@ -1255,25 +1211,19 @@ ) ) (global.set $STACKTOP - (local.get $6) + (local.get $2) ) ) (func $___fwritex (; 36 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) (block $label$break$L5 (block $__rjti$0 (br_if $__rjti$0 (local.tee $3 - (i32.load - (local.tee $4 - (i32.add - (local.get $2) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $2) ) ) ) @@ -1285,8 +1235,8 @@ ) (block (local.set $3 - (i32.load - (local.get $4) + (i32.load offset=16 + (local.get $2) ) ) (br $__rjti$0) @@ -1299,13 +1249,8 @@ (i32.sub (local.get $3) (local.tee $4 - (i32.load - (local.tee $5 - (i32.add - (local.get $2) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $2) ) ) ) @@ -1357,7 +1302,7 @@ (i32.load8_s (i32.add (local.get $0) - (local.tee $6 + (local.tee $5 (i32.add (local.get $3) (i32.const -1) @@ -1369,7 +1314,7 @@ ) (block (local.set $3 - (local.get $6) + (local.get $5) ) (br $while-in) ) @@ -1395,8 +1340,8 @@ ) ) (local.set $4 - (i32.load - (local.get $5) + (i32.load offset=20 + (local.get $2) ) ) (local.set $1 @@ -1423,11 +1368,11 @@ (local.get $1) ) ) - (i32.store - (local.get $5) + (i32.store offset=20 + (local.get $2) (i32.add - (i32.load - (local.get $5) + (i32.load offset=20 + (local.get $2) ) (local.get $1) ) @@ -1436,21 +1381,14 @@ ) (func $___towrite (; 37 ;) (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local.set $1 - (i32.load8_s - (local.tee $2 - (i32.add + (i32.store8 offset=74 + (local.get $0) + (i32.or + (local.tee $1 + (i32.load8_s offset=74 (local.get $0) - (i32.const 74) ) ) - ) - ) - (i32.store8 - (local.get $2) - (i32.or - (local.get $1) (i32.add (local.get $1) (i32.const 255) @@ -1908,29 +1846,15 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) (block $__rjto$0 (result i32) (block $__rjti$0 (br_if $__rjti$0 (i32.le_u - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -1954,8 +1878,8 @@ ) ) (br_if $__rjti$0 - (i32.load - (local.get $2) + (i32.load offset=20 + (local.get $0) ) ) (br $__rjto$0 @@ -1964,29 +1888,19 @@ ) (if (i32.lt_u - (local.tee $4 - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 4) - ) - ) + (local.tee $1 + (i32.load offset=4 + (local.get $0) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $2 + (i32.load offset=8 + (local.get $0) ) ) ) (block - (local.set $7 + (local.set $3 (i32.load offset=40 (local.get $0) ) @@ -1995,13 +1909,13 @@ (call_indirect (type $FUNCSIG$iiii) (local.get $0) (i32.sub - (local.get $4) - (local.get $6) + (local.get $1) + (local.get $2) ) (i32.const 1) (i32.add (i32.and - (local.get $7) + (local.get $3) (i32.const 7) ) (i32.const 2) @@ -2014,20 +1928,20 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $1) + (i32.store offset=4 + (local.get $0) (i32.const 0) ) (i32.const 0) @@ -2183,8 +2097,7 @@ (local $48 i32) (local $49 i32) (local $50 i32) - (local $51 i32) - (local.set $34 + (local.set $20 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -2200,16 +2113,16 @@ ) (call $abort) ) - (local.set $20 + (local.set $39 (i32.add - (local.get $34) + (local.get $20) (i32.const 16) ) ) - (local.set $35 + (local.set $33 (i32.add (local.tee $13 - (local.get $34) + (local.get $20) ) (i32.const 528) ) @@ -2220,7 +2133,7 @@ (i32.const 0) ) ) - (local.set $38 + (local.set $36 (local.tee $25 (i32.add (local.tee $4 @@ -2233,21 +2146,16 @@ ) ) ) - (local.set $39 + (local.set $40 (i32.add (local.get $4) (i32.const 39) ) ) - (local.set $43 + (local.set $41 (i32.add - (local.tee $40 - (i32.add - (local.get $13) - (i32.const 8) - ) - ) - (i32.const 4) + (local.get $13) + (i32.const 8) ) ) (local.set $32 @@ -2261,18 +2169,18 @@ (i32.const 12) ) ) - (local.set $41 + (local.set $42 (i32.add (local.get $4) (i32.const 11) ) ) - (local.set $44 + (local.set $43 (i32.sub (local.tee $27 (local.get $32) ) - (local.tee $36 + (local.tee $34 (local.tee $23 (i32.add (local.get $13) @@ -2282,21 +2190,21 @@ ) ) ) - (local.set $45 + (local.set $44 (i32.sub (i32.const -2) - (local.get $36) + (local.get $34) ) ) - (local.set $46 + (local.set $45 (i32.add (local.get $27) (i32.const 2) ) ) - (local.set $48 + (local.set $47 (i32.add - (local.tee $47 + (local.tee $46 (i32.add (local.get $13) (i32.const 24) @@ -2305,7 +2213,7 @@ (i32.const 288) ) ) - (local.set $42 + (local.set $37 (local.tee $29 (i32.add (local.get $23) @@ -2313,7 +2221,7 @@ ) ) ) - (local.set $33 + (local.set $38 (i32.add (local.get $23) (i32.const 8) @@ -3621,7 +3529,7 @@ (local.tee $10 (i32.add (i32.sub - (local.get $38) + (local.get $36) (local.tee $6 (local.get $7) ) @@ -3749,14 +3657,14 @@ (local.get $13) ) ) - (i32.store8 - (local.get $39) + (i32.store8 offset=575 + (local.get $13) (i32.load (local.get $13) ) ) (local.set $4 - (local.get $39) + (local.get $40) ) (local.set $10 (local.get $7) @@ -3801,19 +3709,19 @@ (local.get $13) ) ) - (i32.store - (local.get $40) + (i32.store offset=8 + (local.get $20) (i32.load (local.get $13) ) ) - (i32.store - (local.get $43) + (i32.store offset=12 + (local.get $13) (i32.const 0) ) (i32.store (local.get $13) - (local.get $40) + (local.get $41) ) (local.set $7 (i32.const -1) @@ -3847,7 +3755,7 @@ (local.get $13) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (i32.const 0) ) @@ -3936,7 +3844,7 @@ (f64.mul (call $_frexp (local.get $15) - (local.get $20) + (local.get $39) ) (f64.const 2) ) @@ -3944,10 +3852,10 @@ (f64.const 0) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (i32.const -1) @@ -4061,7 +3969,7 @@ (i32.sub (i32.const 0) (local.tee $6 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -4089,12 +3997,12 @@ (local.get $32) ) (block - (i32.store8 - (local.get $41) + (i32.store8 offset=587 + (local.get $13) (i32.const 48) ) (local.set $4 - (local.get $41) + (local.get $42) ) ) ) @@ -4181,7 +4089,7 @@ (i32.const 1) ) ) - (local.get $36) + (local.get $34) ) (i32.const 1) ) @@ -4230,14 +4138,14 @@ (i32.sub (i32.add (local.get $5) - (local.get $46) + (local.get $45) ) (local.get $7) ) (i32.add (local.get $4) (i32.sub - (local.get $44) + (local.get $43) (local.get $7) ) ) @@ -4249,7 +4157,7 @@ (i32.lt_s (i32.add (local.get $4) - (local.get $45) + (local.get $44) ) (local.get $5) ) @@ -4288,7 +4196,7 @@ (local.set $4 (i32.sub (local.get $4) - (local.get $36) + (local.get $34) ) ) (if @@ -4365,11 +4273,11 @@ (if (result f64) (local.get $4) (block (result f64) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $4 (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (i32.const -28) @@ -4383,7 +4291,7 @@ ) (block (result f64) (local.set $4 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -4394,8 +4302,8 @@ (local.set $6 (local.tee $7 (select + (local.get $46) (local.get $47) - (local.get $48) (i32.lt_s (local.get $4) (i32.const 0) @@ -4438,7 +4346,7 @@ (if (i32.gt_s (local.tee $8 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -4558,11 +4466,11 @@ ) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $8 (i32.sub - (i32.load + (i32.load offset=16 (local.get $20) ) (local.get $12) @@ -4653,7 +4561,7 @@ (i32.const -1) ) ) - (local.set $37 + (local.set $35 (i32.shr_u (i32.const 1000000000) (local.get $12) @@ -4686,7 +4594,7 @@ (local.get $8) (local.get $11) ) - (local.get $37) + (local.get $35) ) ) (br_if $while-in74 @@ -4770,11 +4678,11 @@ ) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $8 (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (local.get $12) @@ -4892,7 +4800,7 @@ (i32.const 103) ) ) - (local.tee $37 + (local.tee $35 (i32.ne (local.get $17) (i32.const 0) @@ -4996,7 +4904,7 @@ (if (i32.eqz (i32.and - (local.tee $49 + (local.tee $48 (i32.eq (i32.add (local.get $5) @@ -5011,7 +4919,7 @@ ) ) (block $do-once81 - (local.set $50 + (local.set $49 (call $i32u-div (local.get $24) (local.get $11) @@ -5021,7 +4929,7 @@ (if (result f64) (i32.lt_u (local.get $12) - (local.tee $51 + (local.tee $50 (call $i32s-div (local.get $11) (i32.const 2) @@ -5033,10 +4941,10 @@ (f64.const 1) (f64.const 1.5) (i32.and - (local.get $49) + (local.get $48) (i32.eq (local.get $12) - (local.get $51) + (local.get $50) ) ) ) @@ -5047,7 +4955,7 @@ (f64.const 9007199254740994) (f64.const 9007199254740992) (i32.and - (local.get $50) + (local.get $49) (i32.const 1) ) ) @@ -5282,7 +5190,7 @@ (i32.add (local.get $17) (i32.xor - (local.get $37) + (local.get $35) (i32.const 1) ) ) @@ -5707,12 +5615,12 @@ (local.get $29) ) ) - (i32.store8 - (local.get $33) + (i32.store8 offset=596 + (local.get $13) (i32.const 48) ) (local.set $6 - (local.get $33) + (local.get $38) ) ) (block @@ -5754,7 +5662,7 @@ (call $___fwritex (local.get $6) (i32.sub - (local.get $42) + (local.get $37) (local.get $6) ) (local.get $0) @@ -5951,12 +5859,12 @@ (local.get $29) ) (block - (i32.store8 - (local.get $33) + (i32.store8 offset=596 + (local.get $13) (i32.const 48) ) (local.set $4 - (local.get $33) + (local.get $38) ) ) ) @@ -6040,7 +5948,7 @@ ) (local.set $7 (i32.sub - (local.get $42) + (local.get $37) (local.get $4) ) ) @@ -6453,7 +6361,7 @@ (i32.lt_s (local.tee $6 (call $_wctomb - (local.get $35) + (local.get $33) (local.get $8) ) ) @@ -6538,7 +6446,7 @@ (i32.add (local.tee $7 (call $_wctomb - (local.get $35) + (local.get $33) (local.get $7) ) ) @@ -6559,7 +6467,7 @@ ) ) (call $___fwritex - (local.get $35) + (local.get $33) (local.get $7) (local.get $0) ) @@ -6650,7 +6558,7 @@ (i32.const 1) ) (i32.sub - (local.get $38) + (local.get $36) (local.tee $4 (local.get $6) ) @@ -6865,7 +6773,7 @@ ) ) (global.set $STACKTOP - (local.get $34) + (local.get $20) ) (local.get $16) ) @@ -6950,8 +6858,11 @@ (local.get $0) (local.get $1) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -6991,8 +6902,11 @@ (local.get $0) (local.get $3) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -7015,8 +6929,11 @@ ) ) (local.set $3 - (i32.load offset=4 - (local.get $3) + (i32.load + (i32.add + (local.get $3) + (i32.const 4) + ) ) ) (i32.store @@ -7030,8 +6947,11 @@ (local.get $0) (local.get $5) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (local.get $3) ) (br $label$break$L1) @@ -7073,8 +6993,11 @@ ) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -7117,8 +7040,11 @@ (i32.const 65535) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -7160,8 +7086,11 @@ ) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -7204,8 +7133,11 @@ (i32.const 255) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -7546,569 +7478,575 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local.set $0 - (if (result i32) - (i32.lt_u - (local.get $0) - (i32.const 245) - ) - (block (result i32) - (if - (i32.and - (local.tee $10 - (i32.shr_u - (local.tee $6 - (i32.load - (i32.const 176) + (block $folding-inner1 + (local.set $0 + (if (result i32) + (i32.lt_u + (local.get $0) + (i32.const 245) + ) + (block (result i32) + (if + (i32.and + (local.tee $12 + (i32.shr_u + (local.tee $6 + (i32.load + (i32.const 176) + ) ) - ) - (local.tee $13 - (i32.shr_u - (local.tee $2 - (select - (i32.const 16) - (i32.and - (i32.add + (local.tee $13 + (i32.shr_u + (local.tee $4 + (select + (i32.const 16) + (i32.and + (i32.add + (local.get $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (local.get $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (local.get $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (if - (i32.eq - (local.tee $7 - (i32.load - (local.tee $1 - (i32.add - (local.tee $11 - (i32.load - (local.tee $3 - (i32.add - (local.tee $2 + (block + (if + (i32.eq + (local.tee $2 + (i32.load offset=8 + (local.tee $3 + (i32.load offset=8 + (local.tee $1 + (i32.add + (i32.shl + (local.tee $0 (i32.add - (i32.shl - (local.tee $4 - (i32.add - (i32.xor - (i32.and - (local.get $10) - (i32.const 1) - ) - (i32.const 1) - ) - (local.get $13) - ) + (i32.xor + (i32.and + (local.get $12) + (i32.const 1) ) - (i32.const 3) + (i32.const 1) ) - (i32.const 216) + (local.get $13) ) ) - (i32.const 8) + (i32.const 3) ) + (i32.const 216) ) ) ) - (i32.const 8) ) ) ) + (local.get $1) ) - (local.get $2) - ) - (i32.store - (i32.const 176) - (i32.and - (local.get $6) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $4) - ) - (i32.const -1) - ) - ) - ) - (block - (if - (i32.lt_u - (local.get $7) - (i32.load - (i32.const 192) + (i32.store + (i32.const 176) + (i32.and + (local.get $6) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $0) + ) + (i32.const -1) ) ) - (call $_abort) ) - (if - (i32.eq - (local.get $11) - (i32.load - (local.tee $0 - (i32.add - (local.get $7) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (local.get $2) + (i32.load + (i32.const 192) ) ) + (call $_abort) ) - (block - (i32.store - (local.get $0) - (local.get $2) - ) - (i32.store + (if + (i32.eq (local.get $3) - (local.get $7) + (i32.load offset=12 + (local.get $2) + ) ) + (block + (i32.store offset=12 + (local.get $2) + (local.get $1) + ) + (i32.store offset=8 + (local.get $1) + (local.get $2) + ) + ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (local.get $11) - (i32.or - (local.tee $0 - (i32.shl - (local.get $4) - (i32.const 3) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.tee $0 + (i32.shl + (local.get $0) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) - (local.get $11) + (local.get $3) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (return - (local.get $1) + (br $folding-inner1) ) ) - ) - (if (result i32) - (i32.gt_u - (local.get $2) - (local.tee $0 - (i32.load - (i32.const 184) + (if (result i32) + (i32.gt_u + (local.get $4) + (local.tee $0 + (i32.load + (i32.const 184) + ) ) ) - ) - (block (result i32) - (if - (local.get $10) - (block - (if - (i32.eq - (local.tee $8 - (i32.load - (local.tee $4 - (i32.add - (local.tee $10 - (i32.load - (local.tee $3 - (i32.add - (local.tee $7 + (block (result i32) + (if + (local.get $12) + (block + (if + (i32.eq + (local.tee $9 + (i32.load offset=8 + (local.tee $11 + (i32.load offset=8 + (local.tee $7 + (i32.add + (i32.shl + (local.tee $2 (i32.add - (i32.shl - (local.tee $11 - (i32.add + (i32.or + (i32.or + (i32.or (i32.or - (i32.or - (i32.or - (i32.or - (local.tee $3 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.add - (i32.and - (local.tee $3 - (i32.and - (i32.or - (local.tee $3 - (i32.shl - (i32.const 2) - (local.get $13) - ) - ) - (i32.sub - (i32.const 0) - (local.get $3) - ) - ) - (i32.shl - (local.get $10) - (local.get $13) - ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 + (i32.add + (i32.and + (local.tee $2 + (i32.and + (i32.or + (local.tee $2 + (i32.shl + (i32.const 2) + (local.get $13) ) ) (i32.sub (i32.const 0) - (local.get $3) + (local.get $2) ) ) - (i32.const -1) + (i32.shl + (local.get $12) + (local.get $13) + ) ) ) - (i32.const 12) - ) - (i32.const 16) - ) - ) - (local.tee $3 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) + (i32.sub + (i32.const 0) + (local.get $2) ) - (i32.const 5) ) - (i32.const 8) + (i32.const -1) ) ) + (i32.const 12) ) - (local.tee $3 - (i32.and + (i32.const 16) + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 2) + (local.get $7) + (local.get $2) ) - (i32.const 4) ) + (i32.const 5) ) + (i32.const 8) ) - (local.tee $3 - (i32.and + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 1) + (local.get $7) + (local.get $2) ) - (i32.const 2) ) + (i32.const 2) ) + (i32.const 4) ) - (local.tee $3 - (i32.and + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 1) + (local.get $7) + (local.get $2) ) - (i32.const 1) ) + (i32.const 1) ) + (i32.const 2) ) + ) + ) + (local.tee $2 + (i32.and (i32.shr_u - (local.get $4) - (local.get $3) + (local.tee $7 + (i32.shr_u + (local.get $7) + (local.get $2) + ) + ) + (i32.const 1) ) + (i32.const 1) ) ) - (i32.const 3) ) - (i32.const 216) + (i32.shr_u + (local.get $7) + (local.get $2) + ) ) ) - (i32.const 8) + (i32.const 3) ) + (i32.const 216) ) ) ) - (i32.const 8) ) ) ) + (local.get $7) ) - (local.get $7) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (local.get $6) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $11) + (block + (i32.store + (i32.const 176) + (i32.and + (local.get $6) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $2) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (local.set $9 - (local.get $0) - ) - ) - (block - (if - (i32.lt_u - (local.get $8) - (i32.load - (i32.const 192) - ) + (local.set $8 + (local.get $0) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 12) - ) - ) - ) - (local.get $10) - ) - (block - (i32.store - (local.get $0) - (local.get $7) - ) - (i32.store - (local.get $3) - (local.get $8) - ) - (local.set $9 + (block + (if + (i32.lt_u + (local.get $9) (i32.load - (i32.const 184) + (i32.const 192) ) ) + (call $_abort) ) - (call $_abort) - ) - ) - ) - (i32.store offset=4 - (local.get $10) - (i32.or - (local.get $2) - (i32.const 3) - ) - ) - (i32.store offset=4 - (local.tee $7 - (i32.add - (local.get $2) - (local.get $10) - ) - ) - (i32.or - (local.tee $11 - (i32.sub - (i32.shl + (if + (i32.eq + (i32.load offset=12 + (local.get $9) + ) (local.get $11) - (i32.const 3) ) - (local.get $2) + (block + (i32.store offset=12 + (local.get $9) + (local.get $7) + ) + (i32.store offset=8 + (local.get $7) + (local.get $9) + ) + (local.set $8 + (i32.load + (i32.const 184) + ) + ) + ) + (call $_abort) ) ) - (i32.const 1) ) - ) - (i32.store - (i32.add - (local.get $7) + (i32.store offset=4 (local.get $11) + (i32.or + (local.get $4) + (i32.const 3) + ) ) - (local.get $11) - ) - (if - (local.get $9) - (block - (local.set $6 - (i32.load - (i32.const 196) + (i32.store offset=4 + (local.tee $7 + (i32.add + (local.get $4) + (local.get $11) ) ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $0 - (i32.shr_u - (local.get $9) - (i32.const 3) - ) + (i32.or + (local.tee $9 + (i32.sub + (i32.shl + (local.get $2) + (i32.const 3) ) - (i32.const 3) + (local.get $4) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (local.tee $3 - (i32.load - (i32.const 176) - ) + ) + (i32.store + (i32.add + (local.get $7) + (local.get $9) + ) + (local.get $9) + ) + (if + (local.get $8) + (block + (local.set $6 + (i32.load + (i32.const 196) ) - (local.tee $0 + ) + (local.set $4 + (i32.add (i32.shl - (i32.const 1) - (local.get $0) + (local.tee $0 + (i32.shr_u + (local.get $8) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $2 (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (i32.const 176) ) ) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) ) ) - (call $_abort) (block - (local.set $5 - (local.get $3) + (local.set $2 + (i32.add + (local.get $4) + (i32.const 8) + ) ) - (local.set $1 - (local.get $0) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $4) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $3 + (local.get $2) + ) + (local.set $1 + (local.get $0) + ) + ) ) ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $3) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $2) + ) ) - ) - (local.set $5 - (i32.add - (local.get $2) - (i32.const 8) + (local.set $3 + (i32.add + (local.get $4) + (i32.const 8) + ) + ) + (local.set $1 + (local.get $4) ) ) - (local.set $1 - (local.get $2) + ) + (i32.store + (local.get $3) + (local.get $6) + ) + (i32.store + (i32.add + (local.get $1) + (i32.const 12) ) + (local.get $6) + ) + (i32.store offset=8 + (local.get $6) + (local.get $1) + ) + (i32.store offset=12 + (local.get $6) + (local.get $4) ) ) - (i32.store - (local.get $5) - (local.get $6) - ) - (i32.store offset=12 - (local.get $1) - (local.get $6) - ) - (i32.store offset=8 - (local.get $6) - (local.get $1) - ) - (i32.store offset=12 - (local.get $6) - (local.get $2) + ) + (i32.store + (i32.const 184) + (local.get $9) + ) + (i32.store + (i32.const 196) + (local.get $7) + ) + (return + (i32.add + (local.get $11) + (i32.const 8) ) ) ) - (i32.store - (i32.const 184) - (local.get $11) - ) - (i32.store - (i32.const 196) - (local.get $7) - ) - (return - (local.get $4) - ) ) - ) - (if (result i32) - (local.tee $0 - (i32.load - (i32.const 180) + (if (result i32) + (local.tee $0 + (i32.load + (i32.const 180) + ) ) - ) - (block - (local.set $11 - (i32.sub - (i32.and - (i32.load offset=4 - (local.tee $0 - (i32.load offset=480 - (i32.shl + (block + (local.set $7 + (i32.sub + (i32.and + (i32.load offset=4 + (local.tee $0 + (i32.load (i32.add - (i32.or - (i32.or + (i32.shl + (i32.add (i32.or (i32.or - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.add - (i32.and - (local.get $0) - (i32.sub - (i32.const 0) + (i32.or + (i32.or + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.add + (i32.and + (local.get $0) + (i32.sub + (i32.const 0) + (local.get $0) + ) + ) + (i32.const -1) + ) + ) + (i32.const 12) + ) + (i32.const 16) + ) + ) + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.shr_u + (local.get $1) (local.get $0) ) ) - (i32.const -1) + (i32.const 5) ) + (i32.const 8) ) - (i32.const 12) ) - (i32.const 16) + ) + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.shr_u + (local.get $1) + (local.get $0) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) ) ) (local.tee $0 @@ -8120,9 +8058,9 @@ (local.get $0) ) ) - (i32.const 5) + (i32.const 1) ) - (i32.const 8) + (i32.const 2) ) ) ) @@ -8135,881 +8073,876 @@ (local.get $0) ) ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.shr_u - (local.get $1) - (local.get $0) - ) + (i32.const 1) ) (i32.const 1) ) - (i32.const 2) ) ) - ) - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.shr_u - (local.get $1) - (local.get $0) - ) - ) - (i32.const 1) - ) - (i32.const 1) + (i32.shr_u + (local.get $1) + (local.get $0) ) ) + (i32.const 2) ) - (i32.shr_u - (local.get $1) - (local.get $0) - ) + (i32.const 480) ) - (i32.const 2) ) ) ) + (i32.const -8) ) - (i32.const -8) + (local.get $4) ) - (local.get $2) ) - ) - (local.set $7 - (local.get $0) - ) - (loop $while-in - (block $while-out - (if - (local.tee $1 - (i32.load offset=16 - (local.get $0) - ) - ) - (local.set $0 - (local.get $1) - ) + (local.set $3 + (local.tee $1 + (local.get $0) + ) + ) + (loop $while-in + (block $while-out (if (i32.eqz (local.tee $0 - (i32.load offset=20 - (local.get $0) + (i32.load + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) ) - (block - (local.set $6 - (local.get $11) + (if + (i32.eqz + (local.tee $0 + (i32.load + (i32.add + (local.get $1) + (i32.const 20) + ) + ) + ) ) - (local.set $8 - (local.get $7) + (block + (local.set $9 + (local.get $7) + ) + (local.set $6 + (local.get $3) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (local.set $6 - (i32.lt_u - (local.tee $1 - (i32.sub - (i32.and - (i32.load offset=4 - (local.get $0) + (local.set $9 + (i32.lt_u + (local.tee $1 + (i32.sub + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $4) ) - (local.get $2) ) + (local.get $7) ) - (local.get $11) ) - ) - (local.set $11 - (select - (local.get $1) - (local.get $11) - (local.get $6) + (local.set $7 + (select + (local.get $1) + (local.get $7) + (local.get $9) + ) ) - ) - (local.set $7 - (select - (local.get $0) - (local.get $7) - (local.get $6) + (local.set $3 + (select + (local.tee $1 + (local.get $0) + ) + (local.get $3) + (local.get $9) + ) ) + (br $while-in) ) - (br $while-in) ) - ) - (if - (i32.lt_u - (local.get $8) - (local.tee $10 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $6) + (local.tee $11 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.ge_u - (local.get $8) - (local.tee $5 - (i32.add - (local.get $2) - (local.get $8) + (if + (i32.ge_u + (local.get $6) + (local.tee $12 + (i32.add + (local.get $4) + (local.get $6) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (local.set $9 - (i32.load offset=24 - (local.get $8) + (local.set $8 + (i32.load offset=24 + (local.get $6) + ) ) - ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 - (local.get $8) + (if + (i32.eq + (local.tee $0 + (i32.load offset=12 + (local.get $6) + ) ) + (local.get $6) ) - (local.get $8) - ) - (block $do-once4 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 20) - ) - ) - ) + (block $do-once4 + (local.set $0 + (i32.add + (local.get $6) + (i32.const 20) ) ) - (br_if $do-once4 + (if (i32.eqz (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 16) + (i32.load offset=20 + (local.get $6) + ) + ) + ) + (block + (local.set $0 + (i32.add + (local.get $6) + (i32.const 16) + ) + ) + (br_if $do-once4 + (i32.eqz + (local.tee $1 + (i32.load offset=16 + (local.get $6) ) ) ) ) ) ) - ) - (loop $while-in7 - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 20) + (loop $while-in7 + (if + (local.tee $3 + (i32.load + (local.tee $7 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) - ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $3) + ) + (local.set $0 + (local.get $7) + ) + (br $while-in7) ) - (br $while-in7) ) - ) - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 16) + (if + (local.tee $3 + (i32.load + (local.tee $7 + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) ) - ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $3) + ) + (local.set $0 + (local.get $7) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $10) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $4 - (local.get $1) + (local.get $11) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $11 - (i32.load offset=8 - (local.get $8) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $10) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $8) - (i32.load - (local.tee $7 - (i32.add - (local.get $11) - (i32.const 12) - ) + (local.set $10 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load offset=8 + (local.get $6) ) ) + (local.get $11) ) - (local.get $8) + (call $_abort) ) - (block - (i32.store - (local.get $7) - (local.get $0) + (if + (i32.ne + (local.get $6) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $11) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $6) ) - (local.set $4 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $10 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (if - (local.get $9) - (block $do-once8 - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $8) + (if + (local.get $8) + (block $do-once8 + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load offset=28 + (local.get $6) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $6) ) - (local.get $8) - ) - (block - (i32.store - (local.get $0) - (local.get $4) - ) - (if - (i32.eqz - (local.get $4) + (block + (i32.store + (local.get $0) + (local.get $10) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (if + (i32.eqz + (local.get $10) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (local.get $9) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (local.get $8) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $9) - (i32.const 16) - ) + (if + (i32.eq + (i32.load offset=16 + (local.get $8) ) + (local.get $6) + ) + (i32.store offset=16 + (local.get $8) + (local.get $10) + ) + (i32.store offset=20 + (local.get $8) + (local.get $10) ) - (local.get $8) - ) - (i32.store - (local.get $0) - (local.get $4) - ) - (i32.store offset=20 - (local.get $9) - (local.get $4) ) - ) - (br_if $do-once8 - (i32.eqz - (local.get $4) + (br_if $do-once8 + (i32.eqz + (local.get $10) + ) ) ) ) - ) - (if - (i32.lt_u - (local.get $4) - (local.tee $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $10) + (local.tee $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $4) - (local.get $9) - ) - (if - (local.tee $1 - (i32.load offset=16 - (local.get $8) + (i32.store + (i32.add + (local.get $10) + (i32.const 24) ) + (local.get $8) ) (if - (i32.lt_u - (local.get $1) - (local.get $0) + (local.tee $1 + (i32.load offset=16 + (local.get $6) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (local.get $4) + (if + (i32.lt_u (local.get $1) + (local.get $0) ) - (i32.store offset=24 - (local.get $1) - (local.get $4) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $10) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $10) + ) ) ) ) - ) - (if - (local.tee $0 - (i32.load offset=20 - (local.get $8) - ) - ) (if - (i32.lt_u - (local.get $0) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.load offset=20 + (local.get $6) ) ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $4) + (if + (i32.lt_u (local.get $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (local.get $0) - (local.get $4) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $10) + (i32.const 20) + ) + (local.get $0) + ) + (i32.store offset=24 + (local.get $0) + (local.get $10) + ) ) ) ) ) ) - ) - (if - (i32.lt_u - (local.get $6) - (i32.const 16) - ) - (block - (i32.store offset=4 - (local.get $8) - (i32.or - (local.tee $0 - (i32.add - (local.get $2) - (local.get $6) + (if + (i32.lt_u + (local.get $9) + (i32.const 16) + ) + (block + (i32.store offset=4 + (local.get $6) + (i32.or + (local.tee $0 + (i32.add + (local.get $4) + (local.get $9) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) - (local.get $8) + (local.get $6) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (local.get $8) - (i32.or - (local.get $2) - (i32.const 3) - ) - ) - (i32.store offset=4 - (local.get $5) - (i32.or + (block + (i32.store offset=4 (local.get $6) - (i32.const 1) + (i32.or + (local.get $4) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add - (local.get $5) - (local.get $6) + (i32.store offset=4 + (local.get $12) + (i32.or + (local.get $9) + (i32.const 1) + ) ) - (local.get $6) - ) - (if - (local.tee $0 - (i32.load - (i32.const 184) + (i32.store + (i32.add + (local.get $9) + (local.get $12) ) + (local.get $9) ) - (block - (local.set $4 + (if + (local.tee $0 (i32.load - (i32.const 196) + (i32.const 184) ) ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $0 - (i32.shr_u - (local.get $0) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (local.set $4 + (i32.load + (i32.const 196) ) - (i32.const 216) ) - ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (local.set $3 + (i32.add (i32.shl - (i32.const 1) - (local.get $0) + (local.tee $0 + (i32.shr_u + (local.get $0) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $1 (i32.load - (local.tee $1 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (i32.const 176) ) ) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) ) ) - (call $_abort) (block - (local.set $12 - (local.get $1) + (local.set $1 + (i32.add + (local.get $3) + (i32.const 8) + ) ) - (local.set $3 - (local.get $0) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $3) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $5 + (local.get $1) + ) + (local.set $2 + (local.get $0) + ) + ) ) ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) ) - ) - (local.set $12 - (i32.add - (local.get $2) - (i32.const 8) + (local.set $5 + (i32.add + (local.get $3) + (i32.const 8) + ) + ) + (local.set $2 + (local.get $3) ) ) - (local.set $3 + ) + (i32.store + (local.get $5) + (local.get $4) + ) + (i32.store + (i32.add (local.get $2) + (i32.const 12) ) + (local.get $4) + ) + (i32.store offset=8 + (local.get $4) + (local.get $2) + ) + (i32.store offset=12 + (local.get $4) + (local.get $3) ) ) - (i32.store - (local.get $12) - (local.get $4) - ) - (i32.store offset=12 - (local.get $3) - (local.get $4) - ) - (i32.store offset=8 - (local.get $4) - (local.get $3) - ) - (i32.store offset=12 - (local.get $4) - (local.get $2) - ) + ) + (i32.store + (i32.const 184) + (local.get $9) + ) + (i32.store + (i32.const 196) + (local.get $12) ) ) - (i32.store - (i32.const 184) + ) + (return + (i32.add (local.get $6) - ) - (i32.store - (i32.const 196) - (local.get $5) + (i32.const 8) ) ) ) - (return - (i32.add - (local.get $8) - (i32.const 8) - ) - ) + (local.get $4) ) - (local.get $2) ) + (local.get $4) ) - (local.get $2) ) - ) - (if (result i32) - (i32.gt_u - (local.get $0) - (i32.const -65) - ) - (i32.const -1) - (block $do-once (result i32) - (local.set $2 - (i32.and - (local.tee $0 - (i32.add - (local.get $0) - (i32.const 11) + (if (result i32) + (i32.gt_u + (local.get $0) + (i32.const -65) + ) + (i32.const -1) + (block $do-once (result i32) + (local.set $3 + (i32.and + (local.tee $0 + (i32.add + (local.get $0) + (i32.const 11) + ) ) + (i32.const -8) ) - (i32.const -8) ) - ) - (if (result i32) - (local.tee $18 - (i32.load - (i32.const 180) + (if (result i32) + (local.tee $18 + (i32.load + (i32.const 180) + ) ) - ) - (block (result i32) - (local.set $14 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $0) - (i32.const 8) - ) - ) + (block (result i32) + (local.set $14 (if (result i32) - (i32.gt_u - (local.get $2) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $0) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $4 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $3) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $4 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $3 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $4) + (local.set $2 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $4) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $2) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $3) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) - (local.get $4) + (i32.or + (local.get $1) + (local.get $4) + ) + (local.get $2) ) - (local.get $3) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $3) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $2) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) - ) - (local.set $3 - (i32.sub - (i32.const 0) - (local.get $2) + (local.set $2 + (i32.sub + (i32.const 0) + (local.get $3) + ) ) - ) - (block $__rjto$3 - (block $__rjti$3 - (local.set $0 - (if (result i32) - (local.tee $0 - (i32.load offset=480 - (i32.shl - (local.get $14) - (i32.const 2) + (block $__rjto$3 + (block $__rjti$3 + (local.set $0 + (if (result i32) + (local.tee $0 + (i32.load + (i32.add + (i32.shl + (local.get $14) + (i32.const 2) + ) + (i32.const 480) + ) ) ) - ) - (block (result i32) - (local.set $9 - (i32.shl - (local.get $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block (result i32) + (local.set $8 + (i32.shl + (local.get $3) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $14) + (i32.const 1) + ) + ) + (i32.eq (local.get $14) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $14) - (i32.const 31) - ) ) ) - ) - (local.set $1 - (i32.const 0) - ) - (loop $while-in14 (result i32) - (if - (i32.lt_u - (local.tee $4 - (i32.sub - (local.tee $12 - (i32.and - (i32.load offset=4 - (local.get $0) + (local.set $1 + (i32.const 0) + ) + (loop $while-in14 (result i32) + (if + (i32.lt_u + (local.tee $4 + (i32.sub + (local.tee $10 + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) ) + (local.get $3) ) - (local.get $2) ) + (local.get $2) ) - (local.get $3) - ) - (local.set $1 - (if (result i32) - (i32.eq - (local.get $2) - (local.get $12) - ) - (block - (local.set $1 - (local.get $4) + (local.set $1 + (if (result i32) + (i32.eq + (local.get $3) + (local.get $10) ) - (local.set $3 - (local.get $0) + (block + (local.set $1 + (local.get $4) + ) + (local.set $2 + (local.get $0) + ) + (br $__rjti$3) ) - (br $__rjti$3) - ) - (block (result i32) - (local.set $3 - (local.get $4) + (block (result i32) + (local.set $2 + (local.get $4) + ) + (local.get $0) ) - (local.get $0) ) ) ) - ) - (local.set $0 - (select - (local.get $5) - (local.tee $4 - (i32.load offset=20 - (local.get $0) - ) - ) - (i32.or - (i32.eqz - (local.get $4) + (local.set $0 + (select + (local.get $5) + (local.tee $4 + (i32.load + (i32.add + (local.get $0) + (i32.const 20) + ) + ) ) - (i32.eq - (local.get $4) - (local.tee $12 - (i32.load - (i32.add + (i32.or + (i32.eqz + (local.get $4) + ) + (i32.eq + (local.get $4) + (local.tee $10 + (i32.load (i32.add - (local.get $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $9) - (i32.const 31) + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $8) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -9017,109 +8950,139 @@ ) ) ) - ) - (local.set $4 - (i32.shl - (local.get $9) - (i32.xor - (local.tee $5 - (i32.eqz - (local.get $12) + (local.set $4 + (i32.shl + (local.get $8) + (i32.xor + (local.tee $5 + (i32.eqz + (local.get $10) + ) ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (if (result i32) - (local.get $5) - (block (result i32) - (local.set $4 - (local.get $0) ) - (local.get $1) ) - (block - (local.set $5 - (local.get $0) - ) - (local.set $9 - (local.get $4) + (if (result i32) + (local.get $5) + (block (result i32) + (local.set $4 + (local.get $0) + ) + (local.get $1) ) - (local.set $0 - (local.get $12) + (block + (local.set $5 + (local.get $0) + ) + (local.set $8 + (local.get $4) + ) + (local.set $0 + (local.get $10) + ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block (result i32) - (local.set $4 + (block (result i32) + (local.set $4 + (i32.const 0) + ) (i32.const 0) ) - (i32.const 0) ) ) - ) - (if - (i32.eqz - (i32.or - (local.get $0) - (local.get $4) + (if + (i32.eqz + (i32.or + (local.get $0) + (local.get $4) + ) ) - ) - (block - (drop - (br_if $do-once - (local.get $2) - (i32.eqz - (local.tee $1 - (i32.and - (local.get $18) - (i32.or - (local.tee $1 - (i32.shl - (i32.const 2) - (local.get $14) + (block + (drop + (br_if $do-once + (local.get $3) + (i32.eqz + (local.tee $1 + (i32.and + (local.get $18) + (i32.or + (local.tee $1 + (i32.shl + (i32.const 2) + (local.get $14) + ) + ) + (i32.sub + (i32.const 0) + (local.get $1) ) - ) - (i32.sub - (i32.const 0) - (local.get $1) ) ) ) ) ) ) - ) - (local.set $4 - (i32.load offset=480 - (i32.shl + (local.set $4 + (i32.load (i32.add - (i32.or - (i32.or + (i32.shl + (i32.add (i32.or (i32.or - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.add - (i32.and - (local.get $1) - (i32.sub - (i32.const 0) + (i32.or + (i32.or + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.add + (i32.and + (local.get $1) + (i32.sub + (i32.const 0) + (local.get $1) + ) + ) + (i32.const -1) + ) + ) + (i32.const 12) + ) + (i32.const 16) + ) + ) + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.shr_u + (local.get $4) (local.get $1) ) ) - (i32.const -1) + (i32.const 5) ) + (i32.const 8) ) - (i32.const 12) ) - (i32.const 16) + ) + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.shr_u + (local.get $4) + (local.get $1) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) ) ) (local.tee $1 @@ -9131,9 +9094,9 @@ (local.get $1) ) ) - (i32.const 5) + (i32.const 1) ) - (i32.const 8) + (i32.const 2) ) ) ) @@ -9146,1889 +9109,1852 @@ (local.get $1) ) ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $1) - ) + (i32.const 1) ) (i32.const 1) ) - (i32.const 2) ) ) - ) - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $1) - ) - ) - (i32.const 1) - ) - (i32.const 1) + (i32.shr_u + (local.get $4) + (local.get $1) ) ) + (i32.const 2) ) - (i32.shr_u - (local.get $4) - (local.get $1) - ) + (i32.const 480) ) - (i32.const 2) ) ) ) ) - ) - (local.set $4 - (if (result i32) - (local.get $4) - (block - (local.set $1 - (local.get $3) - ) - (local.set $3 - (local.get $4) + (local.set $4 + (if (result i32) + (local.get $4) + (block + (local.set $1 + (local.get $2) + ) + (local.set $2 + (local.get $4) + ) + (br $__rjti$3) ) - (br $__rjti$3) + (local.get $0) ) - (local.get $0) ) + (br $__rjto$3) ) - (br $__rjto$3) - ) - (local.set $3 - (loop $while-in16 (result i32) - (local.set $12 - (i32.lt_u - (local.tee $4 - (i32.sub - (i32.and - (i32.load offset=4 - (local.get $3) + (local.set $2 + (loop $while-in16 (result i32) + (local.set $10 + (i32.lt_u + (local.tee $4 + (i32.sub + (i32.and + (i32.load + (i32.add + (local.get $2) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $3) ) - (local.get $2) ) + (local.get $1) ) - (local.get $1) - ) - ) - (local.set $1 - (select - (local.get $4) - (local.get $1) - (local.get $12) ) - ) - (local.set $0 - (select - (local.get $3) - (local.get $0) - (local.get $12) + (local.set $1 + (select + (local.get $4) + (local.get $1) + (local.get $10) + ) ) - ) - (if - (local.tee $4 - (i32.load offset=16 - (local.get $3) + (local.set $0 + (select + (local.get $2) + (local.get $0) + (local.get $10) ) ) - (block - (local.set $3 - (local.get $4) + (if + (local.tee $4 + (i32.load + (i32.add + (local.get $2) + (i32.const 16) + ) + ) + ) + (block + (local.set $2 + (local.get $4) + ) + (br $while-in16) ) - (br $while-in16) ) - ) - (br_if $while-in16 - (local.tee $3 - (i32.load offset=20 - (local.get $3) + (br_if $while-in16 + (local.tee $2 + (i32.load + (i32.add + (local.get $2) + (i32.const 20) + ) + ) ) ) + (local.set $4 + (local.get $0) + ) + (local.get $1) ) - (local.set $4 - (local.get $0) - ) - (local.get $1) ) ) - ) - (if (result i32) - (local.get $4) (if (result i32) - (i32.lt_u - (local.get $3) - (i32.sub - (i32.load - (i32.const 184) - ) + (local.get $4) + (if (result i32) + (i32.lt_u (local.get $2) - ) - ) - (block - (if - (i32.lt_u - (local.get $4) - (local.tee $8 - (i32.load - (i32.const 192) - ) + (i32.sub + (i32.load + (i32.const 184) ) + (local.get $3) ) - (call $_abort) ) - (if - (i32.ge_u - (local.get $4) - (local.tee $5 - (i32.add - (local.get $2) - (local.get $4) + (block + (if + (i32.lt_u + (local.get $4) + (local.tee $11 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (local.set $12 - (i32.load offset=24 - (local.get $4) + (if + (i32.ge_u + (local.get $4) + (local.tee $5 + (i32.add + (local.get $3) + (local.get $4) + ) + ) + ) + (call $_abort) ) - ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 + (local.set $10 + (i32.load + (i32.add (local.get $4) + (i32.const 24) ) ) - (local.get $4) ) - (block $do-once17 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $4) - (i32.const 20) - ) - ) + (if + (i32.eq + (local.tee $0 + (i32.load + (i32.add + (local.get $4) + (i32.const 12) ) ) ) - (br_if $do-once17 + (local.get $4) + ) + (block $do-once17 + (if (i32.eqz (local.tee $1 (i32.load (local.tee $0 (i32.add (local.get $4) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - ) - ) - (loop $while-in20 - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 20) + (br_if $do-once17 + (i32.eqz + (local.tee $1 + (i32.load + (local.tee $0 + (i32.add + (local.get $4) + (i32.const 16) + ) + ) ) ) ) ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) - ) - (br $while-in20) - ) ) - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 16) + (loop $while-in20 + (if + (local.tee $7 + (i32.load + (local.tee $9 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) + (block + (local.set $1 + (local.get $7) + ) + (local.set $0 + (local.get $9) + ) + (br $while-in20) + ) ) - (block - (local.set $1 - (local.get $7) + (if + (local.tee $7 + (i32.load + (local.tee $9 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + ) ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $7) + ) + (local.set $0 + (local.get $9) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $8) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $10 - (local.get $1) + (local.get $11) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $11 - (i32.load offset=8 - (local.get $4) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $8) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $4) - (i32.load - (local.tee $7 - (i32.add - (local.get $11) - (i32.const 12) - ) + (local.set $12 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load + (i32.add + (local.get $4) + (i32.const 8) + ) ) ) + (local.get $11) ) - (local.get $4) + (call $_abort) ) - (block - (i32.store - (local.get $7) - (local.get $0) + (if + (i32.ne + (local.get $4) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $11) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $4) ) - (local.set $10 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $12 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (if - (local.get $12) - (block $do-once21 - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $4) + (if + (local.get $10) + (block $do-once21 + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load + (i32.add + (local.get $4) + (i32.const 28) + ) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $4) ) - (local.get $4) - ) - (block - (i32.store - (local.get $0) - (local.get $10) - ) - (if - (i32.eqz - (local.get $10) + (block + (i32.store + (local.get $0) + (local.get $12) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (if + (i32.eqz + (local.get $12) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (local.get $12) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (local.get $10) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $12) - (i32.const 16) - ) + (if + (i32.eq + (i32.load offset=16 + (local.get $10) ) + (local.get $4) + ) + (i32.store offset=16 + (local.get $10) + (local.get $12) + ) + (i32.store offset=20 + (local.get $10) + (local.get $12) ) - (local.get $4) - ) - (i32.store - (local.get $0) - (local.get $10) - ) - (i32.store offset=20 - (local.get $12) - (local.get $10) ) - ) - (br_if $do-once21 - (i32.eqz - (local.get $10) + (br_if $do-once21 + (i32.eqz + (local.get $12) + ) ) ) ) - ) - (if - (i32.lt_u - (local.get $10) - (local.tee $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $12) + (local.tee $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $10) - (local.get $12) - ) - (if - (local.tee $1 - (i32.load offset=16 - (local.get $4) + (i32.store + (i32.add + (local.get $12) + (i32.const 24) ) + (local.get $10) ) (if - (i32.lt_u - (local.get $1) - (local.get $0) + (local.tee $1 + (i32.load + (i32.add + (local.get $4) + (i32.const 16) + ) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (local.get $10) + (if + (i32.lt_u (local.get $1) + (local.get $0) ) - (i32.store offset=24 - (local.get $1) - (local.get $10) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $12) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $12) + ) ) ) ) - ) - (if - (local.tee $0 - (i32.load offset=20 - (local.get $4) - ) - ) (if - (i32.lt_u - (local.get $0) + (local.tee $0 (i32.load - (i32.const 192) + (i32.add + (local.get $4) + (i32.const 20) + ) ) ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $10) + (if + (i32.lt_u (local.get $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (local.get $0) - (local.get $10) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $12) + (i32.const 20) + ) + (local.get $0) + ) + (i32.store offset=24 + (local.get $0) + (local.get $12) + ) ) ) ) ) ) - ) - (if - (i32.lt_u - (local.get $3) - (i32.const 16) - ) - (block - (i32.store offset=4 - (local.get $4) - (i32.or - (local.tee $0 - (i32.add - (local.get $2) - (local.get $3) + (if + (i32.lt_u + (local.get $2) + (i32.const 16) + ) + (block + (i32.store + (i32.add + (local.get $4) + (i32.const 4) + ) + (i32.or + (local.tee $0 + (i32.add + (local.get $2) + (local.get $3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) (local.get $4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (block $do-once25 - (i32.store offset=4 - (local.get $4) - (i32.or - (local.get $2) - (i32.const 3) ) ) - (i32.store offset=4 - (local.get $5) - (i32.or - (local.get $3) - (i32.const 1) + (block $do-once25 + (i32.store + (i32.add + (local.get $4) + (i32.const 4) + ) + (i32.or + (local.get $3) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add - (local.get $3) + (i32.store offset=4 (local.get $5) + (i32.or + (local.get $2) + (i32.const 1) + ) ) - (local.get $3) - ) - (local.set $0 - (i32.shr_u - (local.get $3) - (i32.const 3) + (i32.store + (i32.add + (local.get $2) + (local.get $5) + ) + (local.get $2) ) - ) - (if - (i32.lt_u - (local.get $3) - (i32.const 256) + (local.set $0 + (i32.shr_u + (local.get $2) + (i32.const 3) + ) ) - (block - (local.set $3 - (i32.add - (i32.shl - (local.get $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (local.get $2) + (i32.const 256) ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (block + (local.set $2 + (i32.add (i32.shl - (i32.const 1) (local.get $0) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $1 (i32.load - (local.tee $1 - (i32.add - (local.get $3) - (i32.const 8) + (i32.const 176) + ) + ) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) + ) + ) + (block + (local.set $1 + (i32.add + (local.get $2) + (i32.const 8) + ) + ) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $2) ) ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $13 + (local.get $1) + ) + (local.set $6 + (local.get $0) + ) ) - ) - (i32.load - (i32.const 192) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) + ) (local.set $13 - (local.get $1) + (i32.add + (local.get $2) + (i32.const 8) + ) ) (local.set $6 - (local.get $0) + (local.get $2) ) ) ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) - ) - ) - (local.set $13 - (i32.add - (local.get $3) - (i32.const 8) - ) - ) - (local.set $6 - (local.get $3) + (i32.store + (local.get $13) + (local.get $5) + ) + (i32.store + (i32.add + (local.get $6) + (i32.const 12) ) + (local.get $5) ) + (i32.store offset=8 + (local.get $5) + (local.get $6) + ) + (i32.store offset=12 + (local.get $5) + (local.get $2) + ) + (br $do-once25) ) - (i32.store - (local.get $13) - (local.get $5) - ) - (i32.store offset=12 - (local.get $6) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $6) - ) - (i32.store offset=12 - (local.get $5) - (local.get $3) - ) - (br $do-once25) ) - ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $7 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $3) - (i32.const 8) - ) - ) + (local.set $3 + (i32.add + (i32.shl + (local.tee $7 (if (result i32) - (i32.gt_u - (local.get $3) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $2) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $7 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $2) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $7 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $7) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $7) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $3) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $2) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) - (local.get $7) + (i32.or + (local.get $1) + (local.get $7) + ) + (local.get $3) ) - (local.get $2) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $2) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $5) - (local.get $7) - ) - (i32.store offset=4 - (local.tee $0 + (i32.store offset=28 + (local.get $5) + (local.get $7) + ) + (i32.store offset=4 (i32.add (local.get $5) (i32.const 16) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (local.get $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $1 - (i32.load - (i32.const 180) + (i32.store offset=16 + (local.get $5) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $1 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $0 - (i32.shl - (i32.const 1) - (local.get $7) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $7) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $0) - (local.get $1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $0) + (local.get $1) + ) ) + (i32.store + (local.get $3) + (local.get $5) + ) + (i32.store offset=24 + (local.get $5) + (local.get $3) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once25) ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=24 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $5) - ) - (br $do-once25) ) - ) - (local.set $7 - (i32.shl - (local.get $3) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (local.set $7 + (i32.shl + (local.get $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $7) + (i32.const 1) + ) + ) + (i32.eq (local.get $7) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $7) - (i32.const 31) - ) ) ) - ) - (local.set $0 - (i32.load - (local.get $2) + (local.set $0 + (i32.load + (local.get $3) + ) ) - ) - (block $__rjto$1 - (block $__rjti$1 - (loop $while-in28 - (br_if $__rjti$1 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $0) + (block $__rjto$1 + (block $__rjti$1 + (loop $while-in28 + (br_if $__rjti$1 + (i32.eq + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $2) ) - (local.get $3) ) - ) - (local.set $2 - (i32.shl - (local.get $7) - (i32.const 1) + (local.set $3 + (i32.shl + (local.get $7) + (i32.const 1) + ) ) - ) - (if - (local.tee $1 - (i32.load - (local.tee $7 - (i32.add + (if + (local.tee $1 + (i32.load + (local.tee $7 (i32.add - (local.get $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $7) - (i32.const 31) + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $7) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $7 + (local.get $3) + ) + (local.set $0 + (local.get $1) + ) + (br $while-in28) + ) + ) + ) + (if + (i32.lt_u + (local.get $7) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (local.set $7 - (local.get $2) + (i32.store + (local.get $7) + (local.get $5) ) - (local.set $0 - (local.get $1) + (i32.store offset=24 + (local.get $5) + (local.get $0) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) ) - (br $while-in28) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once25) ) ) + (br $__rjto$1) ) (if - (i32.lt_u - (local.get $7) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $2 + (i32.load offset=8 + (local.get $0) + ) + ) + (local.tee $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $0) + (local.get $1) ) ) - (call $_abort) (block - (i32.store - (local.get $7) + (i32.store offset=12 + (local.get $2) (local.get $5) ) - (i32.store offset=24 - (local.get $5) + (i32.store offset=8 (local.get $0) - ) - (i32.store offset=12 - (local.get $5) (local.get $5) ) (i32.store offset=8 (local.get $5) - (local.get $5) + (local.get $2) ) - (br $do-once25) - ) - ) - (br $__rjto$1) - ) - (if - (i32.and - (i32.ge_u - (local.tee $2 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $5) + (local.get $0) ) - (local.tee $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $5) + (i32.const 0) ) ) - (i32.ge_u - (local.get $0) - (local.get $1) - ) - ) - (block - (i32.store offset=12 - (local.get $2) - (local.get $5) - ) - (i32.store - (local.get $3) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $0) - ) - (i32.store offset=24 - (local.get $5) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (return - (i32.add - (local.get $4) - (i32.const 8) + (return + (i32.add + (local.get $4) + (i32.const 8) + ) ) ) + (local.get $3) ) - (local.get $2) + (local.get $3) ) - (local.get $2) ) + (local.get $3) ) - (local.get $2) ) ) ) ) - ) - (if - (i32.ge_u - (local.tee $1 - (i32.load - (i32.const 184) - ) - ) - (local.get $0) - ) - (block - (local.set $2 - (i32.load - (i32.const 196) + (if + (i32.ge_u + (local.tee $1 + (i32.load + (i32.const 184) + ) ) + (local.get $0) ) - (if - (i32.gt_u - (local.tee $3 - (i32.sub - (local.get $1) - (local.get $0) - ) + (block + (local.set $3 + (i32.load + (i32.const 196) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 196) - (local.tee $1 - (i32.add + (if + (i32.gt_u + (local.tee $2 + (i32.sub + (local.get $1) (local.get $0) - (local.get $2) ) ) + (i32.const 15) ) - (i32.store - (i32.const 184) - (local.get $3) - ) - (i32.store offset=4 - (local.get $1) - (i32.or - (local.get $3) - (i32.const 1) + (block + (i32.store + (i32.const 196) + (local.tee $1 + (i32.add + (local.get $0) + (local.get $3) + ) + ) ) - ) - (i32.store - (i32.add + (i32.store + (i32.const 184) + (local.get $2) + ) + (i32.store offset=4 (local.get $1) + (i32.or + (local.get $2) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (local.get $1) + (local.get $2) + ) + (local.get $2) + ) + (i32.store offset=4 (local.get $3) + (i32.or + (local.get $0) + (i32.const 3) + ) ) - (local.get $3) ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $0) - (i32.const 3) + (block + (i32.store + (i32.const 184) + (i32.const 0) ) - ) - ) - (block - (i32.store - (i32.const 184) - (i32.const 0) - ) - (i32.store - (i32.const 196) - (i32.const 0) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $1) - (i32.const 3) + (i32.store + (i32.const 196) + (i32.const 0) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $1) + (i32.const 3) + ) + ) + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $1) - (local.get $2) + (local.get $3) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (return - (i32.add - (local.get $2) - (i32.const 8) - ) + (br $folding-inner1) ) ) - ) - (block $folding-inner0 - (br_if $folding-inner0 - (i32.gt_u - (local.tee $1 - (i32.load - (i32.const 188) + (block $folding-inner0 + (br_if $folding-inner0 + (i32.gt_u + (local.tee $1 + (i32.load + (i32.const 188) + ) ) - ) - (local.get $0) - ) - ) - (if - (i32.eqz - (i32.load - (i32.const 648) + (local.get $0) ) ) (if - (i32.and - (local.tee $1 - (call $_sysconf - (i32.const 30) - ) - ) - (i32.add - (local.get $1) - (i32.const -1) + (i32.eqz + (i32.load + (i32.const 648) ) ) - (call $_abort) - (block - (i32.store - (i32.const 656) - (local.get $1) - ) - (i32.store - (i32.const 652) - (local.get $1) - ) - (i32.store - (i32.const 660) - (i32.const -1) - ) - (i32.store - (i32.const 664) - (i32.const -1) - ) - (i32.store - (i32.const 668) - (i32.const 0) - ) - (i32.store - (i32.const 620) - (i32.const 0) + (if + (i32.and + (local.tee $1 + (call $_sysconf + (i32.const 30) + ) + ) + (i32.add + (local.get $1) + (i32.const -1) + ) ) - (i32.store - (i32.const 648) - (i32.xor - (i32.and - (call $_time - (i32.const 0) + (call $_abort) + (block + (i32.store + (i32.const 656) + (local.get $1) + ) + (i32.store + (i32.const 652) + (local.get $1) + ) + (i32.store + (i32.const 660) + (i32.const -1) + ) + (i32.store + (i32.const 664) + (i32.const -1) + ) + (i32.store + (i32.const 668) + (i32.const 0) + ) + (i32.store + (i32.const 620) + (i32.const 0) + ) + (i32.store + (i32.const 648) + (i32.xor + (i32.and + (call $_time + (i32.const 0) + ) + (i32.const -16) ) - (i32.const -16) + (i32.const 1431655768) ) - (i32.const 1431655768) ) ) ) ) - ) - (if - (i32.le_u - (local.tee $6 - (i32.and - (local.tee $5 - (i32.add - (local.tee $1 - (i32.load - (i32.const 656) + (if + (i32.le_u + (local.tee $6 + (i32.and + (local.tee $5 + (i32.add + (local.tee $1 + (i32.load + (i32.const 656) + ) ) - ) - (local.tee $9 - (i32.add - (local.get $0) - (i32.const 47) + (local.tee $8 + (i32.add + (local.get $0) + (i32.const 47) + ) ) ) ) - ) - (local.tee $12 - (i32.sub - (i32.const 0) - (local.get $1) + (local.tee $10 + (i32.sub + (i32.const 0) + (local.get $1) + ) ) ) ) + (local.get $0) ) - (local.get $0) - ) - (return - (i32.const 0) - ) - ) - (if - (local.tee $2 - (i32.load - (i32.const 616) + (return + (i32.const 0) ) ) (if - (i32.or - (i32.le_u - (local.tee $1 - (i32.add - (local.tee $3 - (i32.load - (i32.const 608) + (local.tee $3 + (i32.load + (i32.const 616) + ) + ) + (if + (i32.or + (i32.le_u + (local.tee $1 + (i32.add + (local.tee $2 + (i32.load + (i32.const 608) + ) ) + (local.get $6) ) - (local.get $6) ) + (local.get $2) + ) + (i32.gt_u + (local.get $1) + (local.get $3) ) - (local.get $3) ) - (i32.gt_u - (local.get $1) - (local.get $2) + (return + (i32.const 0) ) ) - (return - (i32.const 0) - ) ) - ) - (local.set $10 - (i32.add - (local.get $0) - (i32.const 48) + (local.set $12 + (i32.add + (local.get $0) + (i32.const 48) + ) ) - ) - (block $__rjto$13 - (block $__rjti$13 - (if - (i32.eqz - (i32.and - (i32.load - (i32.const 620) + (block $__rjto$13 + (block $__rjti$13 + (if + (i32.eqz + (i32.and + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (block - (block $label$break$L279 - (block $__rjti$5 - (block $__rjti$4 - (br_if $__rjti$4 - (i32.eqz - (local.tee $4 - (i32.load - (i32.const 200) + (block + (block $label$break$L279 + (block $__rjti$5 + (block $__rjti$4 + (br_if $__rjti$4 + (i32.eqz + (local.tee $4 + (i32.load + (i32.const 200) + ) ) ) ) - ) - (local.set $1 - (i32.const 624) - ) - (loop $while-in34 - (block $while-out33 - (if - (i32.le_u - (local.tee $3 - (i32.load - (local.get $1) - ) - ) - (local.get $4) - ) + (local.set $1 + (i32.const 624) + ) + (loop $while-in34 + (block $while-out33 (if - (i32.gt_u - (i32.add - (local.get $3) + (i32.le_u + (local.tee $2 (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 4) - ) - ) + (local.get $1) ) ) (local.get $4) ) - (block - (local.set $4 - (local.get $1) + (if + (i32.gt_u + (i32.add + (local.get $2) + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 4) + ) + ) + ) + ) + (local.get $4) + ) + (block + (local.set $4 + (local.get $1) + ) + (br $while-out33) ) - (br $while-out33) - ) - ) - ) - (br_if $while-in34 - (local.tee $1 - (i32.load offset=8 - (local.get $1) ) ) - ) - (br $__rjti$4) - ) - ) - (if - (i32.lt_u - (local.tee $3 - (i32.and - (i32.sub - (local.get $5) + (br_if $while-in34 + (local.tee $1 (i32.load - (i32.const 188) + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) - (local.get $12) ) + (br $__rjti$4) ) - (i32.const 2147483647) ) - (block - (local.set $1 - (call $_sbrk - (local.get $3) - ) - ) - (if - (i32.eq - (i32.add - (i32.load - (local.get $4) - ) - (i32.load - (local.get $2) + (if + (i32.lt_u + (local.tee $2 + (i32.and + (i32.sub + (local.get $5) + (i32.load + (i32.const 188) + ) ) + (local.get $10) ) - (local.get $1) ) - (br_if $__rjti$13 - (i32.ne - (local.get $1) - (i32.const -1) + (i32.const 2147483647) + ) + (block + (local.set $1 + (call $_sbrk + (local.get $2) ) ) - (block - (local.set $2 + (if + (i32.eq + (i32.add + (i32.load + (local.get $4) + ) + (i32.load + (local.get $3) + ) + ) (local.get $1) ) - (br $__rjti$5) + (br_if $__rjti$13 + (i32.ne + (local.get $1) + (i32.const -1) + ) + ) + (block + (local.set $3 + (local.get $1) + ) + (br $__rjti$5) + ) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (if - (i32.ne - (local.tee $1 - (call $_sbrk - (i32.const 0) + (if + (i32.ne + (local.tee $1 + (call $_sbrk + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (local.set $3 - (if (result i32) - (i32.and - (local.tee $3 - (local.get $1) - ) - (local.tee $2 - (i32.add - (local.tee $4 - (i32.load - (i32.const 652) + (block + (local.set $2 + (if (result i32) + (i32.and + (local.tee $2 + (local.get $1) + ) + (local.tee $3 + (i32.add + (local.tee $4 + (i32.load + (i32.const 652) + ) ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (i32.add - (i32.sub - (local.get $6) - (local.get $3) - ) - (i32.and - (i32.add + (i32.add + (i32.sub + (local.get $6) (local.get $2) - (local.get $3) ) - (i32.sub - (i32.const 0) - (local.get $4) + (i32.and + (i32.add + (local.get $2) + (local.get $3) + ) + (i32.sub + (i32.const 0) + (local.get $4) + ) ) ) + (local.get $6) ) - (local.get $6) ) - ) - (local.set $12 - (i32.add - (local.tee $4 - (i32.load - (i32.const 608) + (local.set $10 + (i32.add + (local.tee $4 + (i32.load + (i32.const 608) + ) ) - ) - (local.get $3) - ) - ) - (if - (i32.and - (i32.lt_u - (local.get $3) - (i32.const 2147483647) - ) - (i32.gt_u - (local.get $3) - (local.get $0) + (local.get $2) ) ) - (block - (if - (local.tee $2 - (i32.load - (i32.const 616) - ) + (if + (i32.and + (i32.lt_u + (local.get $2) + (i32.const 2147483647) ) - (br_if $label$break$L279 - (i32.or - (i32.le_u - (local.get $12) - (local.get $4) + (i32.gt_u + (local.get $2) + (local.get $0) + ) + ) + (block + (if + (local.tee $3 + (i32.load + (i32.const 616) ) - (i32.gt_u - (local.get $12) - (local.get $2) + ) + (br_if $label$break$L279 + (i32.or + (i32.le_u + (local.get $10) + (local.get $4) + ) + (i32.gt_u + (local.get $10) + (local.get $3) + ) ) ) ) - ) - (br_if $__rjti$13 - (i32.eq - (local.get $1) - (local.tee $2 - (call $_sbrk - (local.get $3) + (br_if $__rjti$13 + (i32.eq + (local.get $1) + (local.tee $3 + (call $_sbrk + (local.get $2) + ) ) ) ) + (br $__rjti$5) ) - (br $__rjti$5) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (local.set $1 - (local.get $3) - ) - (local.set $4 - (i32.sub - (i32.const 0) - (local.get $1) + (local.set $1 + (local.get $2) ) - ) - (local.set $3 - (if (result i32) - (i32.and + (local.set $4 + (i32.sub + (i32.const 0) + (local.get $1) + ) + ) + (local.set $2 + (if (result i32) (i32.and - (i32.ne - (local.get $2) - (i32.const -1) + (i32.and + (i32.ne + (local.get $3) + (i32.const -1) + ) + (i32.lt_u + (local.get $1) + (i32.const 2147483647) + ) ) - (i32.lt_u + (i32.gt_u + (local.get $12) (local.get $1) - (i32.const 2147483647) ) ) - (i32.gt_u - (local.get $10) - (local.get $1) - ) - ) - (if (result i32) - (i32.lt_u - (local.tee $3 - (i32.and - (i32.add - (local.tee $3 - (i32.load - (i32.const 656) + (if (result i32) + (i32.lt_u + (local.tee $2 + (i32.and + (i32.add + (local.tee $2 + (i32.load + (i32.const 656) + ) + ) + (i32.sub + (local.get $8) + (local.get $1) ) ) (i32.sub - (local.get $9) - (local.get $1) + (i32.const 0) + (local.get $2) ) ) - (i32.sub - (i32.const 0) - (local.get $3) - ) ) + (i32.const 2147483647) ) - (i32.const 2147483647) - ) - (if (result i32) - (i32.eq - (call $_sbrk - (local.get $3) - ) - (i32.const -1) - ) - (block - (drop + (if (result i32) + (i32.eq (call $_sbrk - (local.get $4) + (local.get $2) ) + (i32.const -1) + ) + (block + (drop + (call $_sbrk + (local.get $4) + ) + ) + (br $label$break$L279) + ) + (i32.add + (local.get $1) + (local.get $2) ) - (br $label$break$L279) - ) - (i32.add - (local.get $1) - (local.get $3) ) + (local.get $1) ) (local.get $1) ) - (local.get $1) ) - ) - (if - (i32.ne - (local.get $2) - (i32.const -1) - ) - (block - (local.set $1 - (local.get $2) + (if + (i32.ne + (local.get $3) + (i32.const -1) + ) + (block + (local.set $1 + (local.get $3) + ) + (br $__rjti$13) ) - (br $__rjti$13) ) ) - ) - (i32.store - (i32.const 620) - (i32.or - (i32.load - (i32.const 620) + (i32.store + (i32.const 620) + (i32.or + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (if - (i32.lt_u - (local.get $6) - (i32.const 2147483647) - ) (if - (i32.and - (i32.lt_u - (local.tee $1 - (call $_sbrk - (local.get $6) + (i32.lt_u + (local.get $6) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (local.tee $1 + (call $_sbrk + (local.get $6) + ) + ) + (local.tee $2 + (call $_sbrk + (i32.const 0) + ) ) ) - (local.tee $3 - (call $_sbrk - (i32.const 0) + (i32.and + (i32.ne + (local.get $1) + (i32.const -1) + ) + (i32.ne + (local.get $2) + (i32.const -1) ) ) ) - (i32.and - (i32.ne - (local.get $1) - (i32.const -1) - ) - (i32.ne - (local.get $3) - (i32.const -1) + (br_if $__rjti$13 + (i32.gt_u + (local.tee $2 + (i32.sub + (local.get $2) + (local.get $1) + ) + ) + (i32.add + (local.get $0) + (i32.const 40) + ) ) ) ) - (br_if $__rjti$13 - (i32.gt_u - (local.tee $3 - (i32.sub - (local.get $3) - (local.get $1) - ) - ) - (i32.add - (local.get $0) - (i32.const 40) - ) + ) + (br $__rjto$13) + ) + (i32.store + (i32.const 608) + (local.tee $3 + (i32.add + (i32.load + (i32.const 608) ) + (local.get $2) ) ) ) - (br $__rjto$13) - ) - (i32.store - (i32.const 608) - (local.tee $2 - (i32.add + (if + (i32.gt_u + (local.get $3) (i32.load - (i32.const 608) + (i32.const 612) ) - (local.get $3) ) - ) - ) - (if - (i32.gt_u - (local.get $2) - (i32.load + (i32.store (i32.const 612) + (local.get $3) ) ) - (i32.store - (i32.const 612) - (local.get $2) - ) - ) - (if - (local.tee $5 - (i32.load - (i32.const 200) - ) - ) - (block $do-once40 - (local.set $2 - (i32.const 624) + (if + (local.tee $5 + (i32.load + (i32.const 200) + ) ) - (block $__rjto$10 - (block $__rjti$10 - (loop $while-in45 - (br_if $__rjti$10 - (i32.eq - (i32.add - (local.tee $10 - (i32.load - (local.get $2) + (block $do-once40 + (local.set $3 + (i32.const 624) + ) + (block $__rjto$10 + (block $__rjti$10 + (loop $while-in45 + (br_if $__rjti$10 + (i32.eq + (i32.add + (local.tee $12 + (i32.load + (local.get $3) + ) ) - ) - (local.tee $6 - (i32.load - (local.tee $4 - (i32.add - (local.get $2) - (i32.const 4) + (local.tee $6 + (i32.load + (local.tee $4 + (i32.add + (local.get $3) + (i32.const 4) + ) ) ) ) ) + (local.get $1) ) - (local.get $1) ) - ) - (br_if $while-in45 - (local.tee $2 - (i32.load offset=8 - (local.get $2) + (br_if $while-in45 + (local.tee $3 + (i32.load + (i32.add + (local.get $3) + (i32.const 8) + ) + ) ) ) ) - ) - (br $__rjto$10) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (local.get $2) - ) - (i32.const 8) - ) + (br $__rjto$10) ) (if - (i32.and - (i32.lt_u - (local.get $5) - (local.get $1) - ) - (i32.ge_u - (local.get $5) - (local.get $10) - ) - ) - (block - (i32.store - (local.get $4) - (i32.add + (i32.eqz + (i32.and + (i32.load offset=12 (local.get $3) - (local.get $6) ) + (i32.const 8) ) - (local.set $2 - (i32.add + ) + (if + (i32.and + (i32.lt_u (local.get $5) - (local.tee $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $1 - (i32.add - (local.get $5) - (i32.const 8) + (local.get $1) + ) + (i32.ge_u + (local.get $5) + (local.get $12) + ) + ) + (block + (i32.store + (local.get $4) + (i32.add + (local.get $2) + (local.get $6) + ) + ) + (local.set $3 + (i32.add + (local.get $5) + (local.tee $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $1 + (i32.add + (local.get $5) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $1) - (i32.const 7) ) ) ) ) - ) - (local.set $1 - (i32.add - (i32.load - (i32.const 188) - ) - (i32.sub - (local.get $3) - (local.get $1) + (local.set $1 + (i32.add + (i32.load + (i32.const 188) + ) + (i32.sub + (local.get $2) + (local.get $1) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.get $2) - ) - (i32.store - (i32.const 188) - (local.get $1) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $1) - (i32.const 1) + (i32.store + (i32.const 200) + (local.get $3) ) - ) - (i32.store offset=4 - (i32.add + (i32.store + (i32.const 188) (local.get $1) - (local.get $2) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (local.get $1) + (local.get $3) + ) + (i32.const 40) ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + (br $do-once40) ) - (br $do-once40) ) ) ) - ) - (if - (i32.lt_u - (local.get $1) - (local.tee $4 - (i32.load + (if + (i32.lt_u + (local.get $1) + (local.tee $4 + (i32.load + (i32.const 192) + ) + ) + ) + (block + (i32.store (i32.const 192) + (local.get $1) + ) + (local.set $4 + (local.get $1) ) ) ) - (block - (i32.store - (i32.const 192) - (local.get $1) - ) - (local.set $4 + (local.set $12 + (i32.add (local.get $1) + (local.get $2) ) ) - ) - (local.set $10 - (i32.add - (local.get $1) - (local.get $3) + (local.set $3 + (i32.const 624) ) - ) - (local.set $2 - (i32.const 624) - ) - (local.set $4 - (block $__rjto$11 (result i32) - (block $__rjti$11 - (br $__rjto$11 - (loop $while-in47 (result i32) - (if - (i32.eq - (i32.load - (local.get $2) + (local.set $4 + (block $__rjto$11 (result i32) + (block $__rjti$11 + (br $__rjto$11 + (loop $while-in47 (result i32) + (if + (i32.eq + (i32.load + (local.get $3) + ) + (local.get $12) ) - (local.get $10) - ) - (block - (local.set $6 - (local.get $2) + (block + (local.set $6 + (local.get $3) + ) + (br $__rjti$11) ) - (br $__rjti$11) ) - ) - (br_if $while-in47 - (local.tee $2 - (i32.load offset=8 - (local.get $2) + (br_if $while-in47 + (local.tee $3 + (i32.load + (i32.add + (local.get $3) + (i32.const 8) + ) + ) ) ) + (i32.const 624) ) - (i32.const 624) - ) - ) - ) - (if (result i32) - (i32.and - (i32.load offset=12 - (local.get $2) ) - (i32.const 8) ) - (i32.const 624) - (block - (i32.store - (local.get $6) - (local.get $1) - ) - (i32.store - (local.tee $2 - (i32.add - (local.get $2) - (i32.const 4) - ) - ) - (i32.add - (i32.load - (local.get $2) - ) + (if (result i32) + (i32.and + (i32.load offset=12 (local.get $3) ) + (i32.const 8) ) - (local.set $9 - (i32.add - (local.tee $12 - (i32.add - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $3 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $3) - (i32.const 7) - ) - ) - (local.get $1) + (i32.const 624) + (block + (i32.store + (local.get $6) + (local.get $1) + ) + (i32.store offset=4 + (local.get $3) + (i32.add + (i32.load offset=4 + (local.get $3) ) + (local.get $2) ) - (local.get $0) ) - ) - (local.set $7 - (i32.sub - (i32.sub - (local.tee $6 + (local.set $8 + (i32.add + (local.tee $10 (i32.add - (local.get $10) (select (i32.and (i32.sub (i32.const 0) - (local.tee $1 + (local.tee $2 (i32.add - (local.get $10) + (local.get $1) (i32.const 8) ) ) @@ -11037,1116 +10963,1146 @@ ) (i32.const 0) (i32.and - (local.get $1) + (local.get $2) (i32.const 7) ) ) + (local.get $1) ) ) - (local.get $12) + (local.get $0) ) - (local.get $0) - ) - ) - (i32.store offset=4 - (local.get $12) - (i32.or - (local.get $0) - (i32.const 3) - ) - ) - (if - (i32.eq - (local.get $5) - (local.get $6) ) - (block - (i32.store - (i32.const 188) - (local.tee $0 - (i32.add - (i32.load - (i32.const 188) + (local.set $7 + (i32.sub + (i32.sub + (local.tee $6 + (i32.add + (local.get $12) + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $1 + (i32.add + (local.get $12) + (i32.const 8) + ) + ) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $1) + (i32.const 7) + ) + ) ) - (local.get $7) ) + (local.get $10) ) + (local.get $0) ) - (i32.store - (i32.const 200) - (local.get $9) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $0) - (i32.const 1) - ) + ) + (i32.store offset=4 + (local.get $10) + (i32.or + (local.get $0) + (i32.const 3) ) ) - (block $do-once48 - (if - (i32.eq - (i32.load - (i32.const 196) - ) - (local.get $6) - ) - (block - (i32.store - (i32.const 184) - (local.tee $0 - (i32.add - (i32.load - (i32.const 184) - ) - (local.get $7) + (if + (i32.eq + (local.get $5) + (local.get $6) + ) + (block + (i32.store + (i32.const 188) + (local.tee $0 + (i32.add + (i32.load + (i32.const 188) ) + (local.get $7) ) ) - (i32.store - (i32.const 196) - (local.get $9) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $0) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (local.get $0) - (local.get $9) - ) + ) + (i32.store + (i32.const 200) + (local.get $8) + ) + (i32.store offset=4 + (local.get $8) + (i32.or (local.get $0) + (i32.const 1) ) - (br $do-once48) ) ) - (i32.store - (local.tee $0 - (i32.add - (if (result i32) - (i32.eq - (i32.and - (local.tee $0 - (i32.load offset=4 - (local.get $6) - ) + (block $do-once48 + (if + (i32.eq + (i32.load + (i32.const 196) + ) + (local.get $6) + ) + (block + (i32.store + (i32.const 184) + (local.tee $0 + (i32.add + (i32.load + (i32.const 184) ) - (i32.const 3) + (local.get $7) ) + ) + ) + (i32.store + (i32.const 196) + (local.get $8) + ) + (i32.store offset=4 + (local.get $8) + (i32.or + (local.get $0) (i32.const 1) ) - (block (result i32) - (local.set $10 + ) + (i32.store + (i32.add + (local.get $0) + (local.get $8) + ) + (local.get $0) + ) + (br $do-once48) + ) + ) + (i32.store + (local.tee $0 + (i32.add + (if (result i32) + (i32.eq (i32.and - (local.get $0) - (i32.const -8) - ) - ) - (local.set $1 - (i32.shr_u - (local.get $0) + (local.tee $0 + (i32.load offset=4 + (local.get $6) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$L331 - (if - (i32.lt_u + (block (result i32) + (local.set $12 + (i32.and (local.get $0) - (i32.const 256) + (i32.const -8) ) - (block - (local.set $2 - (i32.load offset=12 - (local.get $6) - ) + ) + (local.set $1 + (i32.shr_u + (local.get $0) + (i32.const 3) + ) + ) + (block $label$break$L331 + (if + (i32.lt_u + (local.get $0) + (i32.const 256) ) - (if - (i32.ne - (local.tee $3 - (i32.load offset=8 - (local.get $6) - ) - ) - (local.tee $0 - (i32.add - (i32.shl - (local.get $1) - (i32.const 3) - ) - (i32.const 216) - ) + (block + (local.set $3 + (i32.load offset=12 + (local.get $6) ) ) - (block $do-once51 - (if - (i32.lt_u - (local.get $3) - (local.get $4) + (if + (i32.ne + (local.tee $2 + (i32.load offset=8 + (local.get $6) + ) ) - (call $_abort) - ) - (br_if $do-once51 - (i32.eq - (i32.load offset=12 - (local.get $3) + (local.tee $0 + (i32.add + (i32.shl + (local.get $1) + (i32.const 3) + ) + (i32.const 216) ) - (local.get $6) ) ) - (call $_abort) - ) - ) - (if - (i32.eq - (local.get $2) - (local.get $3) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (i32.load - (i32.const 176) + (block $do-once51 + (if + (i32.lt_u + (local.get $2) + (local.get $4) ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (call $_abort) + ) + (br_if $do-once51 + (i32.eq + (i32.load offset=12 + (local.get $2) ) - (i32.const -1) + (local.get $6) ) ) + (call $_abort) ) - (br $label$break$L331) ) - ) - (if - (i32.eq - (local.get $0) - (local.get $2) - ) - (local.set $15 - (i32.add + (if + (i32.eq (local.get $2) - (i32.const 8) + (local.get $3) + ) + (block + (i32.store + (i32.const 176) + (i32.and + (i32.load + (i32.const 176) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) + ) + ) + ) + (br $label$break$L331) ) ) - (block $do-once53 - (if - (i32.lt_u - (local.get $2) - (local.get $4) + (if + (i32.eq + (local.get $0) + (local.get $3) + ) + (local.set $15 + (i32.add + (local.get $3) + (i32.const 8) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (block $do-once53 + (if + (i32.lt_u + (local.get $3) + (local.get $4) ) - (local.get $6) + (call $_abort) ) - (block - (local.set $15 - (local.get $0) + (local.set $0 + (i32.add + (local.get $3) + (i32.const 8) ) - (br $do-once53) ) + (if + (i32.eq + (i32.load offset=8 + (local.get $3) + ) + (local.get $6) + ) + (block + (local.set $15 + (local.get $0) + ) + (br $do-once53) + ) + ) + (call $_abort) ) - (call $_abort) ) - ) - (i32.store offset=12 - (local.get $3) - (local.get $2) - ) - (i32.store - (local.get $15) - (local.get $3) - ) - ) - (block - (local.set $5 - (i32.load offset=24 - (local.get $6) + (i32.store offset=12 + (local.get $2) + (local.get $3) + ) + (i32.store + (local.get $15) + (local.get $2) ) ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 - (local.get $6) - ) + (block + (local.set $5 + (i32.load offset=24 + (local.get $6) ) - (local.get $6) ) - (block $do-once55 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.tee $3 - (i32.add - (local.get $6) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) - ) + (if + (i32.eq + (local.tee $0 + (i32.load offset=12 + (local.get $6) ) ) - (block - (br_if $do-once55 - (i32.eqz - (local.tee $1 - (i32.load - (local.get $3) - ) + (local.get $6) + ) + (block $do-once55 + (local.set $0 + (i32.add + (local.tee $2 + (i32.add + (local.get $6) + (i32.const 16) ) ) - ) - (local.set $0 - (local.get $3) + (i32.const 4) ) ) - ) - (loop $while-in58 (if - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 20) - ) + (i32.eqz + (local.tee $1 + (i32.load offset=4 + (local.get $2) ) ) ) (block - (local.set $1 - (local.get $3) + (br_if $do-once55 + (i32.eqz + (local.tee $1 + (i32.load offset=16 + (local.get $6) + ) + ) + ) ) (local.set $0 (local.get $2) ) - (br $while-in58) ) ) - (if - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 16) + (loop $while-in58 + (if + (local.tee $2 + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) + (block + (local.set $1 + (local.get $2) + ) + (local.set $0 + (local.get $3) + ) + (br $while-in58) + ) ) - (block - (local.set $1 - (local.get $3) + (if + (local.tee $2 + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + ) ) - (local.set $0 - (local.get $2) + (block + (local.set $1 + (local.get $2) + ) + (local.set $0 + (local.get $3) + ) + (br $while-in58) ) - (br $while-in58) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $4) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $8 - (local.get $1) + (local.get $4) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $2 - (i32.load offset=8 - (local.get $6) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $4) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $6) - (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 12) - ) + (local.set $11 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load offset=8 + (local.get $6) ) ) + (local.get $4) ) - (local.get $6) + (call $_abort) ) - (block - (i32.store - (local.get $3) - (local.get $0) + (if + (i32.ne + (local.get $6) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $2) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $6) ) - (local.set $8 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $11 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (br_if $label$break$L331 - (i32.eqz - (local.get $5) + (br_if $label$break$L331 + (i32.eqz + (local.get $5) + ) ) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $6) + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load offset=28 + (local.get $6) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $6) ) - (local.get $6) - ) - (block $do-once59 - (i32.store - (local.get $0) - (local.get $8) - ) - (br_if $do-once59 - (local.get $8) + (block $do-once59 + (i32.store + (local.get $0) + (local.get $11) + ) + (br_if $do-once59 + (local.get $11) + ) + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) + ) + ) + ) + (br $label$break$L331) ) - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) + (block + (if + (i32.lt_u + (local.get $5) + (i32.load + (i32.const 192) + ) ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=16 + (local.get $5) ) - (i32.const -1) + (local.get $6) + ) + (i32.store offset=16 + (local.get $5) + (local.get $11) + ) + (i32.store offset=20 + (local.get $5) + (local.get $11) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (local.get $11) ) ) ) - (br $label$break$L331) ) - (block - (if - (i32.lt_u - (local.get $5) + (if + (i32.lt_u + (local.get $11) + (local.tee $0 (i32.load (i32.const 192) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $5) - (i32.const 16) - ) - ) - ) + (call $_abort) + ) + (i32.store + (i32.add + (local.get $11) + (i32.const 24) + ) + (local.get $5) + ) + (if + (local.tee $1 + (i32.load offset=16 (local.get $6) ) - (i32.store - (local.get $0) - (local.get $8) - ) - (i32.store offset=20 - (local.get $5) - (local.get $8) - ) ) - (br_if $label$break$L331 - (i32.eqz - (local.get $8) + (if + (i32.lt_u + (local.get $1) + (local.get $0) ) - ) - ) - ) - (if - (i32.lt_u - (local.get $8) - (local.tee $1 - (i32.load - (i32.const 192) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $11) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $11) + ) ) ) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $8) - (local.get $5) - ) - (if - (local.tee $3 - (i32.load + (br_if $label$break$L331 + (i32.eqz (local.tee $0 - (i32.add - (local.get $6) - (i32.const 16) + (i32.load offset=4 + (i32.add + (local.get $6) + (i32.const 16) + ) ) ) ) ) (if (i32.lt_u - (local.get $3) - (local.get $1) + (local.get $0) + (i32.load + (i32.const 192) + ) ) (call $_abort) (block - (i32.store offset=16 - (local.get $8) - (local.get $3) + (i32.store + (i32.add + (local.get $11) + (i32.const 20) + ) + (local.get $0) ) (i32.store offset=24 - (local.get $3) - (local.get $8) - ) - ) - ) - ) - (br_if $label$break$L331 - (i32.eqz - (local.tee $0 - (i32.load offset=4 (local.get $0) + (local.get $11) ) ) ) ) - (if - (i32.lt_u - (local.get $0) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $8) - (local.get $0) - ) - (i32.store offset=24 - (local.get $0) - (local.get $8) - ) - ) - ) ) ) - ) - (local.set $7 + (local.set $7 + (i32.add + (local.get $7) + (local.get $12) + ) + ) (i32.add - (local.get $7) - (local.get $10) + (local.get $6) + (local.get $12) ) ) - (i32.add - (local.get $6) - (local.get $10) - ) + (local.get $6) ) - (local.get $6) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.and - (i32.load - (local.get $0) + (i32.and + (i32.load + (local.get $0) + ) + (i32.const -2) ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $7) - (i32.const 1) ) - ) - (i32.store - (i32.add - (local.get $7) - (local.get $9) + (i32.store offset=4 + (local.get $8) + (i32.or + (local.get $7) + (i32.const 1) + ) ) - (local.get $7) - ) - (local.set $0 - (i32.shr_u + (i32.store + (i32.add + (local.get $7) + (local.get $8) + ) (local.get $7) - (i32.const 3) ) - ) - (if - (i32.lt_u - (local.get $7) - (i32.const 256) + (local.set $0 + (i32.shr_u + (local.get $7) + (i32.const 3) + ) ) - (block - (local.set $3 - (i32.add - (i32.shl - (local.get $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (local.get $7) + (i32.const 256) ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (block + (local.set $2 + (i32.add (i32.shl - (i32.const 1) (local.get $0) + (i32.const 3) ) + (i32.const 216) ) ) - (block $do-once63 - (if - (i32.ge_u - (local.tee $0 - (i32.load - (local.tee $1 - (i32.add - (local.get $3) - (i32.const 8) - ) - ) - ) - ) + (if + (i32.and + (local.tee $1 (i32.load - (i32.const 192) + (i32.const 176) ) ) - (block - (local.set $16 - (local.get $1) - ) - (local.set $11 + (local.tee $0 + (i32.shl + (i32.const 1) (local.get $0) ) - (br $do-once63) ) ) - (call $_abort) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) + (block $do-once63 + (local.set $1 + (i32.add + (local.get $2) + (i32.const 8) + ) + ) + (if + (i32.ge_u + (local.tee $0 + (i32.load offset=8 + (local.get $2) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (block + (local.set $16 + (local.get $1) + ) + (local.set $9 + (local.get $0) + ) + (br $do-once63) + ) ) + (call $_abort) ) - (local.set $16 - (i32.add - (local.get $3) - (i32.const 8) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) + ) + (local.set $16 + (i32.add + (local.get $2) + (i32.const 8) + ) + ) + (local.set $9 + (local.get $2) ) ) - (local.set $11 - (local.get $3) + ) + (i32.store + (local.get $16) + (local.get $8) + ) + (i32.store + (i32.add + (local.get $9) + (i32.const 12) ) + (local.get $8) ) + (i32.store offset=8 + (local.get $8) + (local.get $9) + ) + (i32.store offset=12 + (local.get $8) + (local.get $2) + ) + (br $do-once48) ) - (i32.store - (local.get $16) - (local.get $9) - ) - (i32.store offset=12 - (local.get $11) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $11) - ) - (i32.store offset=12 - (local.get $9) - (local.get $3) - ) - (br $do-once48) ) - ) - (local.set $3 - (i32.add - (i32.shl - (local.tee $2 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $7) - (i32.const 8) - ) - ) + (local.set $2 + (i32.add + (i32.shl + (local.tee $3 (if (result i32) - (i32.gt_u - (local.get $7) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $7) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $7) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $3 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $2) + (local.set $2 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $3) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $7) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $7) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) + (i32.or + (local.get $1) + (local.get $3) + ) (local.get $2) ) - (local.get $3) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $3) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $2) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $9) - (local.get $2) - ) - (i32.store offset=4 - (local.tee $0 + (i32.store offset=28 + (local.get $8) + (local.get $3) + ) + (i32.store offset=4 (i32.add - (local.get $9) + (local.get $8) (i32.const 16) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (local.get $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $1 - (i32.load - (i32.const 180) + (i32.store offset=16 + (local.get $8) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $1 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $0 - (i32.shl - (i32.const 1) - (local.get $2) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $3) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $0) - (local.get $1) - ) - ) - (i32.store - (local.get $3) - (local.get $9) - ) - (i32.store offset=24 - (local.get $9) - (local.get $3) - ) - (i32.store offset=12 - (local.get $9) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $9) - ) - (br $do-once48) - ) - ) - (local.set $2 - (i32.shl - (local.get $7) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (local.get $2) - (i32.const 1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $0) + (local.get $1) ) ) - (i32.eq + (i32.store + (local.get $2) + (local.get $8) + ) + (i32.store offset=24 + (local.get $8) (local.get $2) - (i32.const 31) ) + (i32.store offset=12 + (local.get $8) + (local.get $8) + ) + (i32.store offset=8 + (local.get $8) + (local.get $8) + ) + (br $do-once48) ) ) - ) - (local.set $0 - (i32.load - (local.get $3) - ) - ) - (block $__rjto$7 - (block $__rjti$7 - (loop $while-in68 - (br_if $__rjti$7 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $0) - ) - (i32.const -8) + (local.set $3 + (i32.shl + (local.get $7) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $3) + (i32.const 1) ) - (local.get $7) ) - ) - (local.set $3 - (i32.shl - (local.get $2) - (i32.const 1) + (i32.eq + (local.get $3) + (i32.const 31) ) ) - (if - (local.tee $1 - (i32.load - (local.tee $2 - (i32.add + ) + ) + (local.set $0 + (i32.load + (local.get $2) + ) + ) + (block $__rjto$7 + (block $__rjti$7 + (loop $while-in68 + (br_if $__rjti$7 + (i32.eq + (i32.and + (i32.load (i32.add (local.get $0) - (i32.const 16) + (i32.const 4) ) - (i32.shl - (i32.shr_u - (local.get $2) - (i32.const 31) + ) + (i32.const -8) + ) + (local.get $7) + ) + ) + (local.set $2 + (i32.shl + (local.get $3) + (i32.const 1) + ) + ) + (if + (local.tee $1 + (i32.load + (local.tee $3 + (i32.add + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $3) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $3 + (local.get $2) + ) + (local.set $0 + (local.get $1) + ) + (br $while-in68) + ) + ) + ) + (if + (i32.lt_u + (local.get $3) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (local.set $2 + (i32.store (local.get $3) + (local.get $8) ) - (local.set $0 - (local.get $1) + (i32.store offset=24 + (local.get $8) + (local.get $0) ) - (br $while-in68) + (i32.store offset=12 + (local.get $8) + (local.get $8) + ) + (i32.store offset=8 + (local.get $8) + (local.get $8) + ) + (br $do-once48) ) ) + (br $__rjto$7) ) (if - (i32.lt_u - (local.get $2) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $2 + (i32.load offset=8 + (local.get $0) + ) + ) + (local.tee $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $0) + (local.get $1) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (local.get $2) - (local.get $9) + (local.get $8) ) - (i32.store offset=24 - (local.get $9) + (i32.store offset=8 (local.get $0) - ) - (i32.store offset=12 - (local.get $9) - (local.get $9) + (local.get $8) ) (i32.store offset=8 - (local.get $9) - (local.get $9) + (local.get $8) + (local.get $2) ) - (br $do-once48) - ) - ) - (br $__rjto$7) - ) - (if - (i32.and - (i32.ge_u - (local.tee $2 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $8) + (local.get $0) ) - (local.tee $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $8) + (i32.const 0) ) ) - (i32.ge_u - (local.get $0) - (local.get $1) - ) - ) - (block - (i32.store offset=12 - (local.get $2) - (local.get $9) - ) - (i32.store - (local.get $3) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $2) - ) - (i32.store offset=12 - (local.get $9) - (local.get $0) - ) - (i32.store offset=24 - (local.get $9) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (return - (i32.add - (local.get $12) - (i32.const 8) + (return + (i32.add + (local.get $10) + (i32.const 8) + ) ) ) ) ) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.le_u - (local.tee $2 - (i32.load - (local.get $4) + (loop $while-in70 + (block $while-out69 + (if + (i32.le_u + (local.tee $3 + (i32.load + (local.get $4) + ) ) + (local.get $5) ) - (local.get $5) - ) - (br_if $while-out69 - (i32.gt_u - (local.tee $2 - (i32.add - (local.get $2) - (i32.load offset=4 - (local.get $4) + (br_if $while-out69 + (i32.gt_u + (local.tee $3 + (i32.add + (local.get $3) + (i32.load + (i32.add + (local.get $4) + (i32.const 4) + ) + ) ) ) + (local.get $5) ) - (local.get $5) ) ) - ) - (local.set $4 - (i32.load offset=8 - (local.get $4) + (local.set $4 + (i32.load + (i32.add + (local.get $4) + (i32.const 8) + ) + ) ) + (br $while-in70) ) - (br $while-in70) ) - ) - (local.set $11 - (i32.add - (local.tee $4 - (i32.add - (local.get $2) - (i32.const -47) + (local.set $9 + (i32.add + (local.tee $4 + (i32.add + (local.get $3) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (local.set $8 - (i32.add - (local.tee $10 - (select - (local.get $5) - (local.tee $4 - (i32.add - (local.get $4) - (select - (i32.and - (i32.sub - (i32.const 0) - (local.get $11) + (local.set $6 + (i32.add + (local.tee $11 + (select + (local.get $5) + (local.tee $4 + (i32.add + (local.get $4) + (select + (i32.and + (i32.sub + (i32.const 0) + (local.get $9) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $9) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $11) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (local.get $4) - (local.tee $11 + (i32.lt_u + (local.get $4) (i32.add (local.get $5) (i32.const 16) @@ -12154,791 +12110,790 @@ ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 200) - (local.tee $6 - (i32.add - (local.tee $4 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $4 - (i32.add - (local.get $1) - (i32.const 8) + (i32.store + (i32.const 200) + (local.tee $9 + (i32.add + (local.tee $4 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $4 + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $4) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $4) - (i32.const 7) ) ) + (local.get $1) ) - (local.get $1) ) ) - ) - (i32.store - (i32.const 188) - (local.tee $4 - (i32.sub - (i32.add - (local.get $3) - (i32.const -40) + (i32.store + (i32.const 188) + (local.tee $4 + (i32.sub + (i32.add + (local.get $2) + (i32.const -40) + ) + (local.get $4) ) + ) + ) + (i32.store offset=4 + (local.get $9) + (i32.or + (local.get $4) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add (local.get $4) + (local.get $9) ) + (i32.const 40) ) - ) - (i32.store offset=4 - (local.get $6) - (i32.or - (local.get $4) - (i32.const 1) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) - ) - (i32.store offset=4 - (i32.add - (local.get $4) + (i32.store offset=4 + (local.get $11) + (i32.const 27) + ) + (i32.store offset=8 + (local.get $11) + (i32.load + (i32.const 624) + ) + ) + (i32.store offset=4 (local.get $6) + (i32.load + (i32.const 628) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=8 + (local.get $6) + (i32.load + (i32.const 632) + ) ) - ) - (i32.store - (local.tee $4 - (i32.add - (local.get $10) - (i32.const 4) + (i32.store offset=12 + (local.get $6) + (i32.load + (i32.const 636) ) ) - (i32.const 27) - ) - (i32.store - (local.get $8) - (i32.load + (i32.store (i32.const 624) + (local.get $1) ) - ) - (i32.store offset=4 - (local.get $8) - (i32.load + (i32.store (i32.const 628) + (local.get $2) ) - ) - (i32.store offset=8 - (local.get $8) - (i32.load - (i32.const 632) - ) - ) - (i32.store offset=12 - (local.get $8) - (i32.load + (i32.store (i32.const 636) + (i32.const 0) ) - ) - (i32.store - (i32.const 624) - (local.get $1) - ) - (i32.store - (i32.const 628) - (local.get $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 632) - (local.get $8) - ) - (local.set $1 - (i32.add - (local.get $10) - (i32.const 24) - ) - ) - (loop $while-in72 (i32.store - (local.tee $1 - (i32.add - (local.get $1) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 632) + (local.get $6) ) - (br_if $while-in72 - (i32.lt_u - (i32.add - (local.get $1) - (i32.const 4) - ) - (local.get $2) + (local.set $1 + (i32.add + (local.get $11) + (i32.const 24) ) ) - ) - (if - (i32.ne - (local.get $5) - (local.get $10) - ) - (block + (loop $while-in72 (i32.store - (local.get $4) - (i32.and - (i32.load - (local.get $4) + (local.tee $1 + (i32.add + (local.get $1) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (local.get $5) - (i32.or - (local.tee $6 - (i32.sub - (local.get $10) - (local.get $5) - ) + (br_if $while-in72 + (i32.lt_u + (i32.add + (local.get $1) + (i32.const 4) ) - (i32.const 1) + (local.get $3) ) ) - (i32.store - (local.get $10) - (local.get $6) - ) - (local.set $1 - (i32.shr_u - (local.get $6) - (i32.const 3) - ) + ) + (if + (i32.ne + (local.get $5) + (local.get $11) ) - (if - (i32.lt_u - (local.get $6) - (i32.const 256) + (block + (i32.store offset=4 + (local.get $11) + (i32.and + (i32.load offset=4 + (local.get $11) + ) + (i32.const -2) + ) ) - (block - (local.set $2 - (i32.add - (i32.shl - (local.get $1) - (i32.const 3) + (i32.store offset=4 + (local.get $5) + (i32.or + (local.tee $9 + (i32.sub + (local.get $11) + (local.get $5) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (local.tee $3 - (i32.load - (i32.const 176) - ) - ) - (local.tee $1 + ) + (i32.store + (local.get $11) + (local.get $9) + ) + (local.set $1 + (i32.shr_u + (local.get $9) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (local.get $9) + (i32.const 256) + ) + (block + (local.set $3 + (i32.add (i32.shl - (i32.const 1) (local.get $1) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $1 + (i32.and + (local.tee $2 (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 8) + (i32.const 176) + ) + ) + (local.tee $1 + (i32.shl + (i32.const 1) + (local.get $1) + ) + ) + ) + (block + (local.set $2 + (i32.add + (local.get $3) + (i32.const 8) + ) + ) + (if + (i32.lt_u + (local.tee $1 + (i32.load offset=8 + (local.get $3) ) ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $17 + (local.get $2) + ) + (local.set $7 + (local.get $1) + ) ) - ) - (i32.load - (i32.const 192) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (local.get $1) + (local.get $2) + ) + ) (local.set $17 - (local.get $3) + (i32.add + (local.get $3) + (i32.const 8) + ) ) (local.set $7 - (local.get $1) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $1) (local.get $3) ) ) - (local.set $17 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) - (local.set $7 - (local.get $2) + ) + (i32.store + (local.get $17) + (local.get $5) + ) + (i32.store + (i32.add + (local.get $7) + (i32.const 12) ) + (local.get $5) ) + (i32.store offset=8 + (local.get $5) + (local.get $7) + ) + (i32.store offset=12 + (local.get $5) + (local.get $3) + ) + (br $do-once40) ) - (i32.store - (local.get $17) - (local.get $5) - ) - (i32.store offset=12 - (local.get $7) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $7) - ) - (i32.store offset=12 - (local.get $5) - (local.get $2) - ) - (br $do-once40) ) - ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $4 - (if (result i32) - (local.tee $1 - (i32.shr_u - (local.get $6) - (i32.const 8) - ) - ) + (local.set $3 + (i32.add + (i32.shl + (local.tee $4 (if (result i32) - (i32.gt_u - (local.get $6) - (i32.const 16777215) + (local.tee $1 + (i32.shr_u + (local.get $9) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $4 - (i32.and - (i32.shr_u - (i32.add - (local.tee $1 - (i32.shl - (local.get $1) - (local.tee $3 - (i32.and - (i32.shr_u - (i32.add - (local.get $1) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $9) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $4 + (i32.and + (i32.shr_u + (i32.add + (local.tee $1 + (i32.shl + (local.get $1) + (local.tee $2 + (i32.and + (i32.shr_u + (i32.add + (local.get $1) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $1 - (i32.shl - (local.get $1) - (local.get $4) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $1 + (i32.shl + (local.get $1) + (local.get $4) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $6) - (i32.add - (local.tee $1 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $9) + (i32.add + (local.tee $1 + (i32.add + (i32.sub + (i32.const 14) (i32.or + (i32.or + (local.get $2) + (local.get $4) + ) (local.get $3) - (local.get $4) ) - (local.get $2) ) - ) - (i32.shr_u - (i32.shl - (local.get $1) - (local.get $2) + (i32.shr_u + (i32.shl + (local.get $1) + (local.get $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $1) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $1) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $5) - (local.get $4) - ) - (i32.store offset=20 - (local.get $5) - (i32.const 0) - ) - (i32.store - (local.get $11) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $3 - (i32.load - (i32.const 180) + (i32.store offset=28 + (local.get $5) + (local.get $4) + ) + (i32.store offset=20 + (local.get $5) + (i32.const 0) + ) + (i32.store offset=16 + (local.get $5) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $2 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $1 - (i32.shl - (i32.const 1) - (local.get $4) + (local.tee $1 + (i32.shl + (i32.const 1) + (local.get $4) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $1) + (local.get $2) + ) + ) + (i32.store (local.get $3) + (local.get $5) ) + (i32.store offset=24 + (local.get $5) + (local.get $3) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once40) ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=24 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $5) - ) - (br $do-once40) ) - ) - (local.set $4 - (i32.shl - (local.get $6) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (local.set $4 + (i32.shl + (local.get $9) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $4) + (i32.const 1) + ) + ) + (i32.eq (local.get $4) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $4) - (i32.const 31) - ) ) ) - ) - (local.set $1 - (i32.load - (local.get $2) + (local.set $1 + (i32.load + (local.get $3) + ) ) - ) - (block $__rjto$9 - (block $__rjti$9 - (loop $while-in74 - (br_if $__rjti$9 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $1) + (block $__rjto$9 + (block $__rjti$9 + (loop $while-in74 + (br_if $__rjti$9 + (i32.eq + (i32.and + (i32.load + (i32.add + (local.get $1) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $9) ) - (local.get $6) ) - ) - (local.set $2 - (i32.shl - (local.get $4) - (i32.const 1) + (local.set $3 + (i32.shl + (local.get $4) + (i32.const 1) + ) ) - ) - (if - (local.tee $3 - (i32.load - (local.tee $4 - (i32.add + (if + (local.tee $2 + (i32.load + (local.tee $4 (i32.add - (local.get $1) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $4) - (i32.const 31) + (i32.add + (local.get $1) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $4) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $4 + (local.get $3) + ) + (local.set $1 + (local.get $2) + ) + (br $while-in74) + ) + ) + ) + (if + (i32.lt_u + (local.get $4) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (local.set $4 - (local.get $2) + (i32.store + (local.get $4) + (local.get $5) ) - (local.set $1 - (local.get $3) + (i32.store offset=24 + (local.get $5) + (local.get $1) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) ) - (br $while-in74) + (br $do-once40) ) ) + (br $__rjto$9) ) (if - (i32.lt_u - (local.get $4) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $3 + (i32.load offset=8 + (local.get $1) + ) + ) + (local.tee $2 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $1) + (local.get $2) ) ) - (call $_abort) (block - (i32.store - (local.get $4) + (i32.store offset=12 + (local.get $3) (local.get $5) ) - (i32.store offset=24 - (local.get $5) + (i32.store offset=8 (local.get $1) - ) - (i32.store offset=12 - (local.get $5) (local.get $5) ) (i32.store offset=8 (local.get $5) - (local.get $5) + (local.get $3) ) - (br $do-once40) - ) - ) - (br $__rjto$9) - ) - (if - (i32.and - (i32.ge_u - (local.tee $4 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $5) + (local.get $1) ) - (local.tee $3 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $5) + (i32.const 0) ) ) - (i32.ge_u - (local.get $1) - (local.get $3) - ) - ) - (block - (i32.store offset=12 - (local.get $4) - (local.get $5) - ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $4) - ) - (i32.store offset=12 - (local.get $5) - (local.get $1) - ) - (i32.store offset=24 - (local.get $5) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (local.tee $2 - (i32.load - (i32.const 192) + (block + (if + (i32.or + (i32.eqz + (local.tee $3 + (i32.load + (i32.const 192) + ) ) ) + (i32.lt_u + (local.get $1) + (local.get $3) + ) ) - (i32.lt_u + (i32.store + (i32.const 192) (local.get $1) - (local.get $2) ) ) (i32.store - (i32.const 192) + (i32.const 624) (local.get $1) ) - ) - (i32.store - (i32.const 624) - (local.get $1) - ) - (i32.store - (i32.const 628) - (local.get $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) + (i32.store + (i32.const 628) + (local.get $2) ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (local.set $2 - (i32.const 0) - ) - (loop $while-in43 - (i32.store offset=12 - (local.tee $4 - (i32.add - (i32.shl - (local.get $2) - (i32.const 3) - ) - (i32.const 216) - ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) + (i32.load + (i32.const 648) ) - (local.get $4) ) - (i32.store offset=8 - (local.get $4) - (local.get $4) + (i32.store + (i32.const 208) + (i32.const -1) ) - (br_if $while-in43 - (i32.ne - (local.tee $2 + (local.set $3 + (i32.const 0) + ) + (loop $while-in43 + (i32.store offset=12 + (local.tee $4 (i32.add - (local.get $2) - (i32.const 1) + (i32.shl + (local.get $3) + (i32.const 3) + ) + (i32.const 216) ) ) - (i32.const 32) + (local.get $4) + ) + (i32.store offset=8 + (local.get $4) + (local.get $4) + ) + (br_if $while-in43 + (i32.ne + (local.tee $3 + (i32.add + (local.get $3) + (i32.const 1) + ) + ) + (i32.const 32) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.tee $4 - (i32.add - (local.tee $2 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 8) + (i32.store + (i32.const 200) + (local.tee $4 + (i32.add + (local.tee $3 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $3) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $2) - (i32.const 7) ) ) + (local.get $1) ) - (local.get $1) ) ) - ) - (i32.store - (i32.const 188) - (local.tee $1 - (i32.sub - (i32.add + (i32.store + (i32.const 188) + (local.tee $1 + (i32.sub + (i32.add + (local.get $2) + (i32.const -40) + ) (local.get $3) - (i32.const -40) ) - (local.get $2) ) ) - ) - (i32.store offset=4 - (local.get $4) - (i32.or - (local.get $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (local.get $1) + (i32.store offset=4 (local.get $4) + (i32.or + (local.get $1) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (i32.add + (local.get $1) + (local.get $4) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) ) ) - ) - (br_if $folding-inner0 - (i32.gt_u - (local.tee $1 - (i32.load - (i32.const 188) + (br_if $folding-inner0 + (i32.gt_u + (local.tee $1 + (i32.load + (i32.const 188) + ) ) + (local.get $0) ) - (local.get $0) ) ) + (i32.store + (call $___errno_location) + (i32.const 12) + ) + (return + (i32.const 0) + ) ) (i32.store - (call $___errno_location) - (i32.const 12) - ) - (return - (i32.const 0) - ) - ) - (i32.store - (i32.const 188) - (local.tee $3 - (i32.sub - (local.get $1) - (local.get $0) + (i32.const 188) + (local.tee $2 + (i32.sub + (local.get $1) + (local.get $0) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.tee $1 - (i32.add - (local.tee $2 - (i32.load - (i32.const 200) + (i32.store + (i32.const 200) + (local.tee $1 + (i32.add + (local.tee $3 + (i32.load + (i32.const 200) + ) ) + (local.get $0) ) - (local.get $0) ) ) - ) - (i32.store offset=4 - (local.get $1) - (i32.or - (local.get $3) - (i32.const 1) + (i32.store offset=4 + (local.get $1) + (i32.or + (local.get $2) + (i32.const 1) + ) ) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $0) - (i32.const 3) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $0) + (i32.const 3) + ) ) ) (i32.add - (local.get $2) + (local.get $3) (i32.const 8) ) ) @@ -12982,9 +12937,9 @@ ) (if (i32.eq - (local.tee $5 + (local.tee $4 (i32.and - (local.tee $7 + (local.tee $8 (i32.load (i32.add (local.get $0) @@ -12999,12 +12954,12 @@ ) (call $_abort) ) - (local.set $8 + (local.set $7 (i32.add (local.get $1) (local.tee $0 (i32.and - (local.get $7) + (local.get $8) (i32.const -8) ) ) @@ -13012,26 +12967,26 @@ ) (if (i32.and - (local.get $7) + (local.get $8) (i32.const 1) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) (block $do-once - (local.set $7 + (local.set $8 (i32.load (local.get $1) ) ) (if (i32.eqz - (local.get $5) + (local.get $4) ) (return) ) @@ -13040,7 +12995,7 @@ (local.tee $1 (i32.sub (local.get $1) - (local.get $7) + (local.get $8) ) ) (local.get $11) @@ -13050,7 +13005,7 @@ (local.set $0 (i32.add (local.get $0) - (local.get $7) + (local.get $8) ) ) (if @@ -13064,14 +13019,9 @@ (if (i32.ne (i32.and - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $8) - (i32.const 4) - ) - ) + (local.tee $2 + (i32.load offset=4 + (local.get $7) ) ) (i32.const 3) @@ -13079,10 +13029,10 @@ (i32.const 3) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13092,10 +13042,10 @@ (i32.const 184) (local.get $0) ) - (i32.store - (local.get $2) + (i32.store offset=4 + (local.get $7) (i32.and - (local.get $3) + (local.get $2) (i32.const -2) ) ) @@ -13116,15 +13066,15 @@ (return) ) ) - (local.set $5 + (local.set $4 (i32.shr_u - (local.get $7) + (local.get $8) (i32.const 3) ) ) (if (i32.lt_u - (local.get $7) + (local.get $8) (i32.const 256) ) (block @@ -13135,15 +13085,15 @@ ) (if (i32.ne - (local.tee $2 + (local.tee $3 (i32.load offset=8 (local.get $1) ) ) - (local.tee $3 + (local.tee $2 (i32.add (i32.shl - (local.get $5) + (local.get $4) (i32.const 3) ) (i32.const 216) @@ -13153,7 +13103,7 @@ (block (if (i32.lt_u - (local.get $2) + (local.get $3) (local.get $11) ) (call $_abort) @@ -13162,7 +13112,7 @@ (i32.ne (local.get $1) (i32.load offset=12 - (local.get $2) + (local.get $3) ) ) (call $_abort) @@ -13171,7 +13121,7 @@ ) (if (i32.eq - (local.get $2) + (local.get $3) (local.get $6) ) (block @@ -13184,16 +13134,16 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) (i32.const -1) ) ) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13201,10 +13151,10 @@ ) (if (i32.eq - (local.get $3) + (local.get $2) (local.get $6) ) - (local.set $4 + (local.set $5 (i32.add (local.get $6) (i32.const 8) @@ -13218,50 +13168,51 @@ ) (call $_abort) ) + (local.set $2 + (i32.add + (local.get $6) + (i32.const 8) + ) + ) (if (i32.eq - (i32.load - (local.tee $3 - (i32.add - (local.get $6) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $6) ) (local.get $1) ) - (local.set $4 - (local.get $3) + (local.set $5 + (local.get $2) ) (call $_abort) ) ) ) (i32.store offset=12 - (local.get $2) + (local.get $3) (local.get $6) ) (i32.store - (local.get $4) - (local.get $2) + (local.get $5) + (local.get $3) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) ) ) - (local.set $12 + (local.set $10 (i32.load offset=24 (local.get $1) ) ) (if (i32.eq - (local.tee $4 + (local.tee $5 (i32.load offset=12 (local.get $1) ) @@ -13269,78 +13220,79 @@ (local.get $1) ) (block $do-once0 + (local.set $5 + (i32.add + (local.tee $8 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + (i32.const 4) + ) + ) (if (i32.eqz - (local.tee $5 - (i32.load - (local.tee $4 - (i32.add - (local.tee $7 - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) + (local.tee $4 + (i32.load offset=4 + (local.get $8) ) ) ) (block (br_if $do-once0 (i32.eqz - (local.tee $5 - (i32.load - (local.get $7) + (local.tee $4 + (i32.load offset=16 + (local.get $1) ) ) ) ) - (local.set $4 - (local.get $7) + (local.set $5 + (local.get $8) ) ) ) (loop $while-in (if - (local.tee $7 + (local.tee $8 (i32.load - (local.tee $10 + (local.tee $12 (i32.add - (local.get $5) + (local.get $4) (i32.const 20) ) ) ) ) (block - (local.set $5 - (local.get $7) - ) (local.set $4 - (local.get $10) + (local.get $8) + ) + (local.set $5 + (local.get $12) ) (br $while-in) ) ) (if - (local.tee $7 + (local.tee $8 (i32.load - (local.tee $10 + (local.tee $12 (i32.add - (local.get $5) + (local.get $4) (i32.const 16) ) ) ) ) (block - (local.set $5 - (local.get $7) - ) (local.set $4 - (local.get $10) + (local.get $8) + ) + (local.set $5 + (local.get $12) ) (br $while-in) ) @@ -13348,17 +13300,17 @@ ) (if (i32.lt_u - (local.get $4) + (local.get $5) (local.get $11) ) (call $_abort) (block (i32.store - (local.get $4) + (local.get $5) (i32.const 0) ) (local.set $6 - (local.get $5) + (local.get $4) ) ) ) @@ -13366,7 +13318,7 @@ (block (if (i32.lt_u - (local.tee $10 + (local.tee $4 (i32.load offset=8 (local.get $1) ) @@ -13378,40 +13330,30 @@ (if (i32.ne (local.get $1) - (i32.load - (local.tee $7 - (i32.add - (local.get $10) - (i32.const 12) - ) - ) + (i32.load offset=12 + (local.get $4) ) ) (call $_abort) ) (if (i32.eq - (i32.load - (local.tee $5 - (i32.add - (local.get $4) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $5) ) (local.get $1) ) (block - (i32.store - (local.get $7) + (i32.store offset=12 (local.get $4) + (local.get $5) ) - (i32.store + (i32.store offset=8 (local.get $5) - (local.get $10) + (local.get $4) ) (local.set $6 - (local.get $4) + (local.get $5) ) ) (call $_abort) @@ -13419,15 +13361,15 @@ ) ) (if - (local.get $12) + (local.get $10) (block (if (i32.eq (i32.load - (local.tee $4 + (local.tee $5 (i32.add (i32.shl - (local.tee $5 + (local.tee $4 (i32.load offset=28 (local.get $1) ) @@ -13442,7 +13384,7 @@ ) (block (i32.store - (local.get $4) + (local.get $5) (local.get $6) ) (if @@ -13459,16 +13401,16 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) (i32.const -1) ) ) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13478,7 +13420,7 @@ (block (if (i32.lt_u - (local.get $12) + (local.get $10) (i32.load (i32.const 192) ) @@ -13487,22 +13429,17 @@ ) (if (i32.eq - (i32.load - (local.tee $4 - (i32.add - (local.get $12) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $10) ) (local.get $1) ) - (i32.store - (local.get $4) + (i32.store offset=16 + (local.get $10) (local.get $6) ) (i32.store offset=20 - (local.get $12) + (local.get $10) (local.get $6) ) ) @@ -13511,10 +13448,10 @@ (local.get $6) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13533,85 +13470,92 @@ ) (call $_abort) ) - (i32.store offset=24 - (local.get $6) - (local.get $12) + (i32.store + (i32.add + (local.get $6) + (i32.const 24) + ) + (local.get $10) ) (if - (local.tee $7 - (i32.load - (local.tee $4 - (i32.add - (local.get $1) - (i32.const 16) - ) - ) + (local.tee $4 + (i32.load offset=16 + (local.get $1) ) ) (if (i32.lt_u - (local.get $7) + (local.get $4) (local.get $5) ) (call $_abort) (block - (i32.store offset=16 - (local.get $6) - (local.get $7) + (i32.store + (i32.add + (local.get $6) + (i32.const 16) + ) + (local.get $4) ) (i32.store offset=24 - (local.get $7) + (local.get $4) (local.get $6) ) ) ) ) (if - (local.tee $4 + (local.tee $5 (i32.load offset=4 - (local.get $4) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) (if (i32.lt_u - (local.get $4) + (local.get $5) (i32.load (i32.const 192) ) ) (call $_abort) (block - (i32.store offset=20 - (local.get $6) - (local.get $4) + (i32.store + (i32.add + (local.get $6) + (i32.const 20) + ) + (local.get $5) ) (i32.store offset=24 - (local.get $4) + (local.get $5) (local.get $6) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) ) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) @@ -13620,22 +13564,17 @@ ) (if (i32.ge_u - (local.get $2) - (local.get $8) + (local.get $3) + (local.get $7) ) (call $_abort) ) (if (i32.eqz (i32.and - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 4) - ) - ) + (local.tee $0 + (i32.load offset=4 + (local.get $7) ) ) (i32.const 1) @@ -13645,21 +13584,24 @@ ) (if (i32.and - (local.get $1) + (local.get $0) (i32.const 2) ) (block - (i32.store - (local.get $0) + (i32.store offset=4 + (local.get $7) (i32.and - (local.get $1) + (local.get $0) (i32.const -2) ) ) - (i32.store offset=4 - (local.get $2) - (i32.or + (i32.store + (i32.add (local.get $3) + (i32.const 4) + ) + (i32.or + (local.get $2) (i32.const 1) ) ) @@ -13668,7 +13610,7 @@ (local.get $2) (local.get $3) ) - (local.get $3) + (local.get $2) ) ) (block @@ -13677,7 +13619,7 @@ (i32.load (i32.const 200) ) - (local.get $8) + (local.get $7) ) (block (i32.store @@ -13687,16 +13629,19 @@ (i32.load (i32.const 188) ) - (local.get $3) + (local.get $2) ) ) ) (i32.store (i32.const 200) - (local.get $2) + (local.get $3) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or (local.get $0) (i32.const 1) @@ -13704,7 +13649,7 @@ ) (if (i32.ne - (local.get $2) + (local.get $3) (i32.load (i32.const 196) ) @@ -13727,7 +13672,7 @@ (i32.load (i32.const 196) ) - (local.get $8) + (local.get $7) ) (block (i32.store @@ -13737,16 +13682,19 @@ (i32.load (i32.const 184) ) - (local.get $3) + (local.get $2) ) ) ) (i32.store (i32.const 196) - (local.get $2) + (local.get $3) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or (local.get $0) (i32.const 1) @@ -13755,51 +13703,51 @@ (i32.store (i32.add (local.get $0) - (local.get $2) + (local.get $3) ) (local.get $0) ) (return) ) ) - (local.set $5 + (local.set $4 (i32.add (i32.and - (local.get $1) + (local.get $0) (i32.const -8) ) - (local.get $3) + (local.get $2) ) ) - (local.set $3 + (local.set $2 (i32.shr_u - (local.get $1) + (local.get $0) (i32.const 3) ) ) (block $do-once4 (if (i32.lt_u - (local.get $1) + (local.get $0) (i32.const 256) ) (block - (local.set $4 + (local.set $5 (i32.load offset=12 - (local.get $8) + (local.get $7) ) ) (if (i32.ne (local.tee $1 (i32.load offset=8 - (local.get $8) + (local.get $7) ) ) (local.tee $0 (i32.add (i32.shl - (local.get $3) + (local.get $2) (i32.const 3) ) (i32.const 216) @@ -13818,7 +13766,7 @@ ) (if (i32.ne - (local.get $8) + (local.get $7) (i32.load offset=12 (local.get $1) ) @@ -13830,7 +13778,7 @@ (if (i32.eq (local.get $1) - (local.get $4) + (local.get $5) ) (block (i32.store @@ -13842,7 +13790,7 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $3) + (local.get $2) ) (i32.const -1) ) @@ -13854,35 +13802,36 @@ (if (i32.eq (local.get $0) - (local.get $4) + (local.get $5) ) (local.set $14 (i32.add - (local.get $4) + (local.get $5) (i32.const 8) ) ) (block (if (i32.lt_u - (local.get $4) + (local.get $5) (i32.load (i32.const 192) ) ) (call $_abort) ) + (local.set $0 + (i32.add + (local.get $5) + (i32.const 8) + ) + ) (if (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $4) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $5) ) - (local.get $8) + (local.get $7) ) (local.set $14 (local.get $0) @@ -13893,7 +13842,7 @@ ) (i32.store offset=12 (local.get $1) - (local.get $4) + (local.get $5) ) (i32.store (local.get $14) @@ -13903,43 +13852,44 @@ (block (local.set $6 (i32.load offset=24 - (local.get $8) + (local.get $7) ) ) (if (i32.eq (local.tee $0 (i32.load offset=12 - (local.get $8) + (local.get $7) ) ) - (local.get $8) + (local.get $7) ) (block $do-once6 + (local.set $0 + (i32.add + (local.tee $1 + (i32.add + (local.get $7) + (i32.const 16) + ) + ) + (i32.const 4) + ) + ) (if (i32.eqz - (local.tee $3 - (i32.load - (local.tee $0 - (i32.add - (local.tee $1 - (i32.add - (local.get $8) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) + (local.tee $2 + (i32.load offset=4 + (local.get $1) ) ) ) (block (br_if $do-once6 (i32.eqz - (local.tee $3 - (i32.load - (local.get $1) + (local.tee $2 + (i32.load offset=16 + (local.get $7) ) ) ) @@ -13953,20 +13903,20 @@ (if (local.tee $1 (i32.load - (local.tee $4 + (local.tee $5 (i32.add - (local.get $3) + (local.get $2) (i32.const 20) ) ) ) ) (block - (local.set $3 + (local.set $2 (local.get $1) ) (local.set $0 - (local.get $4) + (local.get $5) ) (br $while-in9) ) @@ -13974,20 +13924,20 @@ (if (local.tee $1 (i32.load - (local.tee $4 + (local.tee $5 (i32.add - (local.get $3) + (local.get $2) (i32.const 16) ) ) ) ) (block - (local.set $3 + (local.set $2 (local.get $1) ) (local.set $0 - (local.get $4) + (local.get $5) ) (br $while-in9) ) @@ -14007,7 +13957,7 @@ (i32.const 0) ) (local.set $9 - (local.get $3) + (local.get $2) ) ) ) @@ -14015,9 +13965,9 @@ (block (if (i32.lt_u - (local.tee $4 + (local.tee $2 (i32.load offset=8 - (local.get $8) + (local.get $7) ) ) (i32.load @@ -14028,38 +13978,28 @@ ) (if (i32.ne - (local.get $8) - (i32.load - (local.tee $1 - (i32.add - (local.get $4) - (i32.const 12) - ) - ) + (local.get $7) + (i32.load offset=12 + (local.get $2) ) ) (call $_abort) ) (if (i32.eq - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $0) ) - (local.get $8) + (local.get $7) ) (block - (i32.store - (local.get $1) + (i32.store offset=12 + (local.get $2) (local.get $0) ) - (i32.store - (local.get $3) - (local.get $4) + (i32.store offset=8 + (local.get $0) + (local.get $2) ) (local.set $9 (local.get $0) @@ -14078,9 +14018,9 @@ (local.tee $0 (i32.add (i32.shl - (local.tee $3 + (local.tee $2 (i32.load offset=28 - (local.get $8) + (local.get $7) ) ) (i32.const 2) @@ -14089,7 +14029,7 @@ ) ) ) - (local.get $8) + (local.get $7) ) (block (i32.store @@ -14110,7 +14050,7 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $3) + (local.get $2) ) (i32.const -1) ) @@ -14132,18 +14072,13 @@ ) (if (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $6) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $6) ) - (local.get $8) + (local.get $7) ) - (i32.store - (local.get $0) + (i32.store offset=16 + (local.get $6) (local.get $9) ) (i32.store offset=20 @@ -14161,7 +14096,7 @@ (if (i32.lt_u (local.get $9) - (local.tee $3 + (local.tee $0 (i32.load (i32.const 192) ) @@ -14169,34 +14104,35 @@ ) (call $_abort) ) - (i32.store offset=24 - (local.get $9) + (i32.store + (i32.add + (local.get $9) + (i32.const 24) + ) (local.get $6) ) (if - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 16) - ) - ) + (local.tee $2 + (i32.load offset=16 + (local.get $7) ) ) (if (i32.lt_u - (local.get $1) - (local.get $3) + (local.get $2) + (local.get $0) ) (call $_abort) (block - (i32.store offset=16 - (local.get $9) - (local.get $1) + (i32.store + (i32.add + (local.get $9) + (i32.const 16) + ) + (local.get $2) ) (i32.store offset=24 - (local.get $1) + (local.get $2) (local.get $9) ) ) @@ -14205,7 +14141,10 @@ (if (local.tee $0 (i32.load offset=4 - (local.get $0) + (i32.add + (local.get $7) + (i32.const 16) + ) ) ) (if @@ -14217,8 +14156,11 @@ ) (call $_abort) (block - (i32.store offset=20 - (local.get $9) + (i32.store + (i32.add + (local.get $9) + (i32.const 20) + ) (local.get $0) ) (i32.store offset=24 @@ -14233,49 +14175,52 @@ ) ) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or - (local.get $5) + (local.get $4) (i32.const 1) ) ) (i32.store (i32.add - (local.get $2) - (local.get $5) + (local.get $3) + (local.get $4) ) - (local.get $5) + (local.get $4) ) - (local.set $3 + (local.set $2 (if (result i32) (i32.eq (i32.load (i32.const 196) ) - (local.get $2) + (local.get $3) ) (block (i32.store (i32.const 184) - (local.get $5) + (local.get $4) ) (return) ) - (local.get $5) + (local.get $4) ) ) ) ) (local.set $0 (i32.shr_u - (local.get $3) + (local.get $2) (i32.const 3) ) ) (if (i32.lt_u - (local.get $3) + (local.get $2) (i32.const 256) ) (block @@ -14290,7 +14235,7 @@ ) (if (i32.and - (local.tee $3 + (local.tee $2 (i32.load (i32.const 176) ) @@ -14302,29 +14247,32 @@ ) ) ) - (if - (i32.lt_u - (local.tee $0 - (i32.load - (local.tee $3 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) - ) - (i32.load - (i32.const 192) + (block + (local.set $2 + (i32.add + (local.get $1) + (i32.const 8) ) ) - (call $_abort) - (block - (local.set $15 - (local.get $3) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $1) + ) + ) + (i32.load + (i32.const 192) + ) ) - (local.set $13 - (local.get $0) + (call $_abort) + (block + (local.set $15 + (local.get $2) + ) + (local.set $13 + (local.get $0) + ) ) ) ) @@ -14333,7 +14281,7 @@ (i32.const 176) (i32.or (local.get $0) - (local.get $3) + (local.get $2) ) ) (local.set $15 @@ -14349,42 +14297,51 @@ ) (i32.store (local.get $15) - (local.get $2) + (local.get $3) ) - (i32.store offset=12 - (local.get $13) - (local.get $2) + (i32.store + (i32.add + (local.get $13) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) (local.get $13) ) - (i32.store offset=12 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) (local.get $1) ) (return) ) ) - (local.set $4 + (local.set $5 (i32.add (i32.shl - (local.tee $5 + (local.tee $4 (if (result i32) (local.tee $0 (i32.shr_u - (local.get $3) + (local.get $2) (i32.const 8) ) ) (if (result i32) (i32.gt_u - (local.get $3) + (local.get $2) (i32.const 16777215) ) (i32.const 31) (block (result i32) - (local.set $5 + (local.set $4 (i32.and (i32.shr_u (i32.add @@ -14412,14 +14369,14 @@ (i32.const 4) ) ) - (local.set $4 + (local.set $5 (i32.and (i32.shr_u (i32.add (local.tee $0 (i32.shl (local.get $0) - (local.get $5) + (local.get $4) ) ) (i32.const 245760) @@ -14432,7 +14389,7 @@ (i32.or (i32.and (i32.shr_u - (local.get $3) + (local.get $2) (i32.add (local.tee $0 (i32.add @@ -14441,15 +14398,15 @@ (i32.or (i32.or (local.get $1) - (local.get $5) + (local.get $4) ) - (local.get $4) + (local.get $5) ) ) (i32.shr_u (i32.shl (local.get $0) - (local.get $4) + (local.get $5) ) (i32.const 15) ) @@ -14475,16 +14432,25 @@ (i32.const 480) ) ) - (i32.store offset=28 - (local.get $2) - (local.get $5) + (i32.store + (i32.add + (local.get $3) + (i32.const 28) + ) + (local.get $4) ) - (i32.store offset=20 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 20) + ) (i32.const 0) ) - (i32.store offset=16 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 16) + ) (i32.const 0) ) (if @@ -14497,25 +14463,25 @@ (local.tee $0 (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) ) ) (block $do-once12 - (local.set $5 + (local.set $4 (i32.shl - (local.get $3) + (local.get $2) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (local.get $5) + (local.get $4) (i32.const 1) ) ) (i32.eq - (local.get $5) + (local.get $4) (i32.const 31) ) ) @@ -14523,7 +14489,7 @@ ) (local.set $0 (i32.load - (local.get $4) + (local.get $5) ) ) (block $__rjto$1 @@ -14532,24 +14498,27 @@ (br_if $__rjti$1 (i32.eq (i32.and - (i32.load offset=4 - (local.get $0) + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) ) (i32.const -8) ) - (local.get $3) + (local.get $2) ) ) - (local.set $4 + (local.set $5 (i32.shl - (local.get $5) + (local.get $4) (i32.const 1) ) ) (if (local.tee $1 (i32.load - (local.tee $5 + (local.tee $4 (i32.add (i32.add (local.get $0) @@ -14557,7 +14526,7 @@ ) (i32.shl (i32.shr_u - (local.get $5) + (local.get $4) (i32.const 31) ) (i32.const 2) @@ -14567,8 +14536,8 @@ ) ) (block - (local.set $5 - (local.get $4) + (local.set $4 + (local.get $5) ) (local.set $0 (local.get $1) @@ -14579,7 +14548,7 @@ ) (if (i32.lt_u - (local.get $5) + (local.get $4) (i32.load (i32.const 192) ) @@ -14587,20 +14556,29 @@ (call $_abort) (block (i32.store - (local.get $5) - (local.get $2) + (local.get $4) + (local.get $3) ) - (i32.store offset=24 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) (local.get $0) ) - (i32.store offset=12 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $3) ) (br $do-once12) ) @@ -14610,17 +14588,12 @@ (if (i32.and (i32.ge_u - (local.tee $4 - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $1 + (i32.load offset=8 + (local.get $0) ) ) - (local.tee $3 + (local.tee $2 (i32.load (i32.const 192) ) @@ -14628,28 +14601,37 @@ ) (i32.ge_u (local.get $0) - (local.get $3) + (local.get $2) ) ) (block (i32.store offset=12 - (local.get $4) - (local.get $2) - ) - (i32.store (local.get $1) - (local.get $2) + (local.get $3) ) (i32.store offset=8 - (local.get $2) - (local.get $4) + (local.get $0) + (local.get $3) ) - (i32.store offset=12 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $1) + ) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) (local.get $0) ) - (i32.store offset=24 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) (i32.const 0) ) ) @@ -14666,20 +14648,29 @@ ) ) (i32.store - (local.get $4) - (local.get $2) + (local.get $5) + (local.get $3) ) - (i32.store offset=24 - (local.get $2) - (local.get $4) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) + (local.get $5) ) - (i32.store offset=12 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $3) ) ) ) @@ -14704,7 +14695,7 @@ (loop $while-in17 (local.set $0 (i32.add - (local.tee $3 + (local.tee $2 (i32.load (local.get $0) ) @@ -14713,7 +14704,7 @@ ) ) (br_if $while-in17 - (local.get $3) + (local.get $2) ) ) (i32.store diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise index e3feaa729..aedcabd06 100644 --- a/test/emcc_hello_world.fromasm.imprecise +++ b/test/emcc_hello_world.fromasm.imprecise @@ -261,8 +261,11 @@ (loop $while-in (if (i32.ne - (i32.load8_u offset=687 - (local.get $1) + (i32.load8_u + (i32.add + (local.get $1) + (i32.const 687) + ) ) (local.get $0) ) @@ -496,11 +499,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -519,14 +520,14 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $4) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $4) ) ) ) @@ -658,11 +659,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local.set $10 + (local.set $8 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -678,43 +675,33 @@ ) (call $abort) ) - (local.set $8 + (local.set $9 (i32.add - (local.get $10) + (local.get $8) (i32.const 16) ) ) - (i32.store - (local.tee $4 - (i32.add - (local.tee $9 - (local.get $10) - ) - (i32.const 32) - ) + (i32.store offset=32 + (local.tee $6 + (local.get $8) ) (local.tee $3 - (i32.load - (local.tee $6 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) ) (i32.store offset=4 - (local.get $4) + (local.tee $4 + (i32.add + (local.get $6) + (i32.const 32) + ) + ) (local.tee $3 (i32.sub - (i32.load - (local.tee $11 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) (local.get $3) ) @@ -728,25 +715,13 @@ (local.get $4) (local.get $2) ) - (local.set $13 - (i32.add - (local.get $0) - (i32.const 60) - ) - ) - (local.set $14 - (i32.add - (local.get $0) - (i32.const 44) - ) - ) (local.set $1 (local.get $4) ) (local.set $4 (i32.const 2) ) - (local.set $12 + (local.set $10 (i32.add (local.get $2) (local.get $3) @@ -766,24 +741,24 @@ (local.get $0) ) (i32.store - (local.get $9) - (i32.load - (local.get $13) + (local.get $6) + (i32.load offset=60 + (local.get $0) ) ) (i32.store offset=4 - (local.get $9) + (local.get $6) (local.get $1) ) (i32.store offset=8 - (local.get $9) + (local.get $6) (local.get $4) ) (local.set $3 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $9) + (local.get $6) ) ) ) @@ -792,25 +767,25 @@ ) ) (block - (i32.store + (i32.store offset=16 (local.get $8) - (i32.load - (local.get $13) + (i32.load offset=60 + (local.get $0) ) ) (i32.store offset=4 - (local.get $8) + (local.get $9) (local.get $1) ) (i32.store offset=8 - (local.get $8) + (local.get $9) (local.get $4) ) (local.set $3 (call $___syscall_ret (call $___syscall146 (i32.const 146) - (local.get $8) + (local.get $9) ) ) ) @@ -819,7 +794,7 @@ (br_if $__rjti$0 (i32.eq (local.get $3) - (local.get $12) + (local.get $10) ) ) (br_if $__rjti$1 @@ -833,27 +808,33 @@ (i32.gt_u (local.get $3) (local.tee $5 - (i32.load offset=4 - (local.get $1) + (i32.load + (i32.add + (local.get $1) + (i32.const 4) + ) ) ) ) (block (result i32) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (local.tee $7 - (i32.load - (local.get $14) + (i32.load offset=44 + (local.get $0) ) ) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (local.get $7) ) (local.set $7 - (i32.load offset=12 - (local.get $1) + (i32.load + (i32.add + (local.get $1) + (i32.const 12) + ) ) ) (local.set $1 @@ -880,11 +861,11 @@ (i32.const 2) ) (block - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (i32.add - (i32.load - (local.get $6) + (i32.load offset=28 + (local.get $0) ) (local.get $3) ) @@ -913,16 +894,19 @@ (local.get $5) ) ) - (i32.store offset=4 - (local.get $1) + (i32.store + (i32.add + (local.get $1) + (i32.const 4) + ) (i32.sub (local.get $7) (local.get $5) ) ) - (local.set $12 + (local.set $10 (i32.sub - (local.get $12) + (local.get $10) (local.get $3) ) ) @@ -933,8 +917,8 @@ (local.get $0) (i32.add (local.tee $1 - (i32.load - (local.get $14) + (i32.load offset=44 + (local.get $0) ) ) (i32.load offset=48 @@ -942,12 +926,12 @@ ) ) ) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (local.get $1) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (local.get $1) ) (br $__rjto$1) @@ -956,12 +940,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $6) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $11) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -990,7 +974,7 @@ ) ) (global.set $STACKTOP - (local.get $10) + (local.get $8) ) (local.get $2) ) @@ -1002,11 +986,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local.set $6 + (local.set $2 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -1022,26 +1002,27 @@ ) (call $abort) ) - (local.set $3 + (local.set $6 (i32.add - (local.get $6) + (local.get $2) (i32.const 120) ) ) - (local.set $5 + (local.set $7 + (local.get $2) + ) + (local.set $4 (i32.add - (local.tee $4 - (local.get $6) - ) + (local.get $2) (i32.const 136) ) ) - (local.set $8 + (local.set $5 (i32.add - (local.tee $2 - (local.tee $7 + (local.tee $3 + (local.tee $8 (i32.add - (local.get $4) + (local.get $2) (i32.const 80) ) ) @@ -1051,23 +1032,23 @@ ) (loop $do-in (i32.store - (local.get $2) + (local.get $3) (i32.const 0) ) (br_if $do-in (i32.lt_s - (local.tee $2 + (local.tee $3 (i32.add - (local.get $2) + (local.get $3) (i32.const 4) ) ) - (local.get $8) + (local.get $5) ) ) ) - (i32.store - (local.get $3) + (i32.store offset=120 + (local.get $2) (i32.load (local.get $1) ) @@ -1077,15 +1058,15 @@ (i32.lt_s (call $_printf_core (i32.const 0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) (i32.const 0) ) (i32.const -1) (block (result i32) - (local.set $9 + (local.set $3 (i32.load (local.get $0) ) @@ -1100,87 +1081,62 @@ (i32.store (local.get $0) (i32.and - (local.get $9) + (local.get $3) (i32.const -33) ) ) ) (if - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 48) - ) - ) + (i32.load offset=48 + (local.get $0) ) (drop (call $_printf_core (local.get $0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) ) (block - (local.set $11 - (i32.load - (local.tee $10 - (i32.add - (local.get $0) - (i32.const 44) - ) - ) + (local.set $5 + (i32.load offset=44 + (local.get $0) ) ) - (i32.store - (local.get $10) - (local.get $5) + (i32.store offset=44 + (local.get $0) + (local.get $4) ) - (i32.store - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) - (local.get $5) + (i32.store offset=28 + (local.get $0) + (local.get $4) ) - (i32.store - (local.tee $12 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) - (local.get $5) + (i32.store offset=20 + (local.get $0) + (local.get $4) ) - (i32.store - (local.get $1) + (i32.store offset=48 + (local.get $0) (i32.const 80) ) - (i32.store - (local.tee $8 - (i32.add - (local.get $0) - (i32.const 16) - ) - ) + (i32.store offset=16 + (local.get $0) (i32.add - (local.get $5) + (local.get $4) (i32.const 80) ) ) (drop (call $_printf_core (local.get $0) - (local.get $3) - (local.get $4) + (local.get $6) (local.get $7) + (local.get $8) ) ) (if - (local.get $11) + (local.get $5) (block (drop (call_indirect (type $FUNCSIG$iiii) @@ -1198,24 +1154,24 @@ ) ) ) - (i32.store - (local.get $10) - (local.get $11) + (i32.store offset=44 + (local.get $0) + (local.get $5) ) - (i32.store - (local.get $1) + (i32.store offset=48 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $8) + (i32.store offset=16 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $12) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) ) @@ -1229,7 +1185,7 @@ (local.get $0) ) (i32.and - (local.get $9) + (local.get $3) (i32.const 32) ) ) @@ -1239,25 +1195,19 @@ ) ) (global.set $STACKTOP - (local.get $6) + (local.get $2) ) ) (func $___fwritex (; 36 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) (block $label$break$L5 (block $__rjti$0 (br_if $__rjti$0 (local.tee $3 - (i32.load - (local.tee $4 - (i32.add - (local.get $2) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $2) ) ) ) @@ -1269,8 +1219,8 @@ ) (block (local.set $3 - (i32.load - (local.get $4) + (i32.load offset=16 + (local.get $2) ) ) (br $__rjti$0) @@ -1283,13 +1233,8 @@ (i32.sub (local.get $3) (local.tee $4 - (i32.load - (local.tee $5 - (i32.add - (local.get $2) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $2) ) ) ) @@ -1341,7 +1286,7 @@ (i32.load8_s (i32.add (local.get $0) - (local.tee $6 + (local.tee $5 (i32.add (local.get $3) (i32.const -1) @@ -1353,7 +1298,7 @@ ) (block (local.set $3 - (local.get $6) + (local.get $5) ) (br $while-in) ) @@ -1379,8 +1324,8 @@ ) ) (local.set $4 - (i32.load - (local.get $5) + (i32.load offset=20 + (local.get $2) ) ) (local.set $1 @@ -1407,11 +1352,11 @@ (local.get $1) ) ) - (i32.store - (local.get $5) + (i32.store offset=20 + (local.get $2) (i32.add - (i32.load - (local.get $5) + (i32.load offset=20 + (local.get $2) ) (local.get $1) ) @@ -1420,21 +1365,14 @@ ) (func $___towrite (; 37 ;) (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local.set $1 - (i32.load8_s - (local.tee $2 - (i32.add + (i32.store8 offset=74 + (local.get $0) + (i32.or + (local.tee $1 + (i32.load8_s offset=74 (local.get $0) - (i32.const 74) ) ) - ) - ) - (i32.store8 - (local.get $2) - (i32.or - (local.get $1) (i32.add (local.get $1) (i32.const 255) @@ -1892,29 +1830,15 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) (block $__rjto$0 (result i32) (block $__rjti$0 (br_if $__rjti$0 (i32.le_u - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -1938,8 +1862,8 @@ ) ) (br_if $__rjti$0 - (i32.load - (local.get $2) + (i32.load offset=20 + (local.get $0) ) ) (br $__rjto$0 @@ -1948,29 +1872,19 @@ ) (if (i32.lt_u - (local.tee $4 - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 4) - ) - ) + (local.tee $1 + (i32.load offset=4 + (local.get $0) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $2 + (i32.load offset=8 + (local.get $0) ) ) ) (block - (local.set $7 + (local.set $3 (i32.load offset=40 (local.get $0) ) @@ -1979,13 +1893,13 @@ (call_indirect (type $FUNCSIG$iiii) (local.get $0) (i32.sub - (local.get $4) - (local.get $6) + (local.get $1) + (local.get $2) ) (i32.const 1) (i32.add (i32.and - (local.get $7) + (local.get $3) (i32.const 7) ) (i32.const 2) @@ -1998,20 +1912,20 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $2) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $1) + (i32.store offset=4 + (local.get $0) (i32.const 0) ) (i32.const 0) @@ -2067,8 +1981,7 @@ (local $47 i32) (local $48 i32) (local $49 i32) - (local $50 i32) - (local.set $34 + (local.set $20 (global.get $STACKTOP) ) (global.set $STACKTOP @@ -2084,16 +1997,16 @@ ) (call $abort) ) - (local.set $20 + (local.set $39 (i32.add - (local.get $34) + (local.get $20) (i32.const 16) ) ) - (local.set $35 + (local.set $33 (i32.add (local.tee $13 - (local.get $34) + (local.get $20) ) (i32.const 528) ) @@ -2104,7 +2017,7 @@ (i32.const 0) ) ) - (local.set $38 + (local.set $36 (local.tee $25 (i32.add (local.tee $4 @@ -2117,21 +2030,16 @@ ) ) ) - (local.set $39 + (local.set $40 (i32.add (local.get $4) (i32.const 39) ) ) - (local.set $43 + (local.set $41 (i32.add - (local.tee $40 - (i32.add - (local.get $13) - (i32.const 8) - ) - ) - (i32.const 4) + (local.get $13) + (i32.const 8) ) ) (local.set $32 @@ -2145,18 +2053,18 @@ (i32.const 12) ) ) - (local.set $41 + (local.set $42 (i32.add (local.get $4) (i32.const 11) ) ) - (local.set $44 + (local.set $43 (i32.sub (local.tee $27 (local.get $32) ) - (local.tee $36 + (local.tee $34 (local.tee $23 (i32.add (local.get $13) @@ -2166,21 +2074,21 @@ ) ) ) - (local.set $45 + (local.set $44 (i32.sub (i32.const -2) - (local.get $36) + (local.get $34) ) ) - (local.set $46 + (local.set $45 (i32.add (local.get $27) (i32.const 2) ) ) - (local.set $48 + (local.set $47 (i32.add - (local.tee $47 + (local.tee $46 (i32.add (local.get $13) (i32.const 24) @@ -2189,7 +2097,7 @@ (i32.const 288) ) ) - (local.set $42 + (local.set $37 (local.tee $29 (i32.add (local.get $23) @@ -2197,7 +2105,7 @@ ) ) ) - (local.set $33 + (local.set $38 (i32.add (local.get $23) (i32.const 8) @@ -3507,7 +3415,7 @@ (local.tee $10 (i32.add (i32.sub - (local.get $38) + (local.get $36) (local.tee $6 (local.get $7) ) @@ -3630,14 +3538,14 @@ ) (br $__rjti$4) ) - (i32.store8 - (local.get $39) + (i32.store8 offset=575 + (local.get $13) (i32.load (local.get $13) ) ) (local.set $4 - (local.get $39) + (local.get $40) ) (local.set $10 (local.get $7) @@ -3677,19 +3585,19 @@ ) (br $__rjti$5) ) - (i32.store - (local.get $40) + (i32.store offset=8 + (local.get $20) (i32.load (local.get $13) ) ) - (i32.store - (local.get $43) + (i32.store offset=12 + (local.get $13) (i32.const 0) ) (i32.store (local.get $13) - (local.get $40) + (local.get $41) ) (local.set $7 (i32.const -1) @@ -3723,7 +3631,7 @@ (local.get $13) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (i32.const 0) ) @@ -3802,7 +3710,7 @@ (f64.mul (call $_frexp (local.get $15) - (local.get $20) + (local.get $39) ) (f64.const 2) ) @@ -3810,10 +3718,10 @@ (f64.const 0) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (i32.const -1) @@ -3927,7 +3835,7 @@ (i32.sub (i32.const 0) (local.tee $6 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -3955,12 +3863,12 @@ (local.get $32) ) (block - (i32.store8 - (local.get $41) + (i32.store8 offset=587 + (local.get $13) (i32.const 48) ) (local.set $4 - (local.get $41) + (local.get $42) ) ) ) @@ -4047,7 +3955,7 @@ (i32.const 1) ) ) - (local.get $36) + (local.get $34) ) (i32.const 1) ) @@ -4096,14 +4004,14 @@ (i32.sub (i32.add (local.get $5) - (local.get $46) + (local.get $45) ) (local.get $7) ) (i32.add (local.get $4) (i32.sub - (local.get $44) + (local.get $43) (local.get $7) ) ) @@ -4115,7 +4023,7 @@ (i32.lt_s (i32.add (local.get $4) - (local.get $45) + (local.get $44) ) (local.get $5) ) @@ -4154,7 +4062,7 @@ (local.set $4 (i32.sub (local.get $4) - (local.get $36) + (local.get $34) ) ) (if @@ -4231,11 +4139,11 @@ (if (result f64) (local.get $4) (block (result f64) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $4 (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (i32.const -28) @@ -4249,7 +4157,7 @@ ) (block (result f64) (local.set $4 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -4260,8 +4168,8 @@ (local.set $6 (local.tee $7 (select + (local.get $46) (local.get $47) - (local.get $48) (i32.lt_s (local.get $4) (i32.const 0) @@ -4304,7 +4212,7 @@ (if (i32.gt_s (local.tee $8 - (i32.load + (i32.load offset=16 (local.get $20) ) ) @@ -4424,11 +4332,11 @@ ) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $8 (i32.sub - (i32.load + (i32.load offset=16 (local.get $20) ) (local.get $12) @@ -4519,7 +4427,7 @@ (i32.const -1) ) ) - (local.set $37 + (local.set $35 (i32.shr_u (i32.const 1000000000) (local.get $12) @@ -4552,7 +4460,7 @@ (local.get $8) (local.get $11) ) - (local.get $37) + (local.get $35) ) ) (br_if $while-in74 @@ -4636,11 +4544,11 @@ ) ) ) - (i32.store + (i32.store offset=16 (local.get $20) (local.tee $8 (i32.add - (i32.load + (i32.load offset=16 (local.get $20) ) (local.get $12) @@ -4758,7 +4666,7 @@ (i32.const 103) ) ) - (local.tee $37 + (local.tee $35 (i32.ne (local.get $17) (i32.const 0) @@ -4859,7 +4767,7 @@ (if (i32.eqz (i32.and - (local.tee $49 + (local.tee $48 (i32.eq (i32.add (local.get $5) @@ -4878,7 +4786,7 @@ (if (result f64) (i32.lt_u (local.get $12) - (local.tee $50 + (local.tee $49 (i32.div_s (local.get $11) (i32.const 2) @@ -4890,10 +4798,10 @@ (f64.const 1) (f64.const 1.5) (i32.and - (local.get $49) + (local.get $48) (i32.eq (local.get $12) - (local.get $50) + (local.get $49) ) ) ) @@ -5142,7 +5050,7 @@ (i32.add (local.get $17) (i32.xor - (local.get $37) + (local.get $35) (i32.const 1) ) ) @@ -5567,12 +5475,12 @@ (local.get $29) ) ) - (i32.store8 - (local.get $33) + (i32.store8 offset=596 + (local.get $13) (i32.const 48) ) (local.set $6 - (local.get $33) + (local.get $38) ) ) (block @@ -5614,7 +5522,7 @@ (call $___fwritex (local.get $6) (i32.sub - (local.get $42) + (local.get $37) (local.get $6) ) (local.get $0) @@ -5811,12 +5719,12 @@ (local.get $29) ) (block - (i32.store8 - (local.get $33) + (i32.store8 offset=596 + (local.get $13) (i32.const 48) ) (local.set $4 - (local.get $33) + (local.get $38) ) ) ) @@ -5900,7 +5808,7 @@ ) (local.set $7 (i32.sub - (local.get $42) + (local.get $37) (local.get $4) ) ) @@ -6313,7 +6221,7 @@ (i32.lt_s (local.tee $6 (call $_wctomb - (local.get $35) + (local.get $33) (local.get $8) ) ) @@ -6398,7 +6306,7 @@ (i32.add (local.tee $7 (call $_wctomb - (local.get $35) + (local.get $33) (local.get $7) ) ) @@ -6419,7 +6327,7 @@ ) ) (call $___fwritex - (local.get $35) + (local.get $33) (local.get $7) (local.get $0) ) @@ -6510,7 +6418,7 @@ (i32.const 1) ) (i32.sub - (local.get $38) + (local.get $36) (local.tee $4 (local.get $6) ) @@ -6725,7 +6633,7 @@ ) ) (global.set $STACKTOP - (local.get $34) + (local.get $20) ) (local.get $16) ) @@ -6810,8 +6718,11 @@ (local.get $0) (local.get $1) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -6851,8 +6762,11 @@ (local.get $0) (local.get $3) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -6875,8 +6789,11 @@ ) ) (local.set $3 - (i32.load offset=4 - (local.get $3) + (i32.load + (i32.add + (local.get $3) + (i32.const 4) + ) ) ) (i32.store @@ -6890,8 +6807,11 @@ (local.get $0) (local.get $5) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (local.get $3) ) (br $label$break$L1) @@ -6933,8 +6853,11 @@ ) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -6977,8 +6900,11 @@ (i32.const 65535) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -7020,8 +6946,11 @@ ) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.shr_s (i32.shl (i32.lt_s @@ -7064,8 +6993,11 @@ (i32.const 255) ) ) - (i32.store offset=4 - (local.get $0) + (i32.store + (i32.add + (local.get $0) + (i32.const 4) + ) (i32.const 0) ) (br $label$break$L1) @@ -7406,569 +7338,575 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local.set $0 - (if (result i32) - (i32.lt_u - (local.get $0) - (i32.const 245) - ) - (block (result i32) - (if - (i32.and - (local.tee $10 - (i32.shr_u - (local.tee $6 - (i32.load - (i32.const 176) + (block $folding-inner1 + (local.set $0 + (if (result i32) + (i32.lt_u + (local.get $0) + (i32.const 245) + ) + (block (result i32) + (if + (i32.and + (local.tee $12 + (i32.shr_u + (local.tee $6 + (i32.load + (i32.const 176) + ) ) - ) - (local.tee $13 - (i32.shr_u - (local.tee $2 - (select - (i32.const 16) - (i32.and - (i32.add + (local.tee $13 + (i32.shr_u + (local.tee $4 + (select + (i32.const 16) + (i32.and + (i32.add + (local.get $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (local.get $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (local.get $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (if - (i32.eq - (local.tee $7 - (i32.load - (local.tee $1 - (i32.add - (local.tee $11 - (i32.load - (local.tee $3 - (i32.add - (local.tee $2 + (block + (if + (i32.eq + (local.tee $2 + (i32.load offset=8 + (local.tee $3 + (i32.load offset=8 + (local.tee $1 + (i32.add + (i32.shl + (local.tee $0 (i32.add - (i32.shl - (local.tee $4 - (i32.add - (i32.xor - (i32.and - (local.get $10) - (i32.const 1) - ) - (i32.const 1) - ) - (local.get $13) - ) + (i32.xor + (i32.and + (local.get $12) + (i32.const 1) ) - (i32.const 3) + (i32.const 1) ) - (i32.const 216) + (local.get $13) ) ) - (i32.const 8) + (i32.const 3) ) + (i32.const 216) ) ) ) - (i32.const 8) ) ) ) + (local.get $1) ) - (local.get $2) - ) - (i32.store - (i32.const 176) - (i32.and - (local.get $6) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $4) - ) - (i32.const -1) - ) - ) - ) - (block - (if - (i32.lt_u - (local.get $7) - (i32.load - (i32.const 192) + (i32.store + (i32.const 176) + (i32.and + (local.get $6) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $0) + ) + (i32.const -1) ) ) - (call $_abort) ) - (if - (i32.eq - (local.get $11) - (i32.load - (local.tee $0 - (i32.add - (local.get $7) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (local.get $2) + (i32.load + (i32.const 192) ) ) + (call $_abort) ) - (block - (i32.store - (local.get $0) - (local.get $2) - ) - (i32.store + (if + (i32.eq (local.get $3) - (local.get $7) + (i32.load offset=12 + (local.get $2) + ) ) + (block + (i32.store offset=12 + (local.get $2) + (local.get $1) + ) + (i32.store offset=8 + (local.get $1) + (local.get $2) + ) + ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (local.get $11) - (i32.or - (local.tee $0 - (i32.shl - (local.get $4) - (i32.const 3) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.tee $0 + (i32.shl + (local.get $0) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) - (local.get $11) + (local.get $3) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (return - (local.get $1) + (br $folding-inner1) ) ) - ) - (if (result i32) - (i32.gt_u - (local.get $2) - (local.tee $0 - (i32.load - (i32.const 184) + (if (result i32) + (i32.gt_u + (local.get $4) + (local.tee $0 + (i32.load + (i32.const 184) + ) ) ) - ) - (block (result i32) - (if - (local.get $10) - (block - (if - (i32.eq - (local.tee $8 - (i32.load - (local.tee $4 - (i32.add - (local.tee $10 - (i32.load - (local.tee $3 - (i32.add - (local.tee $7 + (block (result i32) + (if + (local.get $12) + (block + (if + (i32.eq + (local.tee $9 + (i32.load offset=8 + (local.tee $11 + (i32.load offset=8 + (local.tee $7 + (i32.add + (i32.shl + (local.tee $2 (i32.add - (i32.shl - (local.tee $11 - (i32.add + (i32.or + (i32.or + (i32.or (i32.or - (i32.or - (i32.or - (i32.or - (local.tee $3 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.add - (i32.and - (local.tee $3 - (i32.and - (i32.or - (local.tee $3 - (i32.shl - (i32.const 2) - (local.get $13) - ) - ) - (i32.sub - (i32.const 0) - (local.get $3) - ) - ) - (i32.shl - (local.get $10) - (local.get $13) - ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 + (i32.add + (i32.and + (local.tee $2 + (i32.and + (i32.or + (local.tee $2 + (i32.shl + (i32.const 2) + (local.get $13) ) ) (i32.sub (i32.const 0) - (local.get $3) + (local.get $2) ) ) - (i32.const -1) + (i32.shl + (local.get $12) + (local.get $13) + ) ) ) - (i32.const 12) - ) - (i32.const 16) - ) - ) - (local.tee $3 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) + (i32.sub + (i32.const 0) + (local.get $2) ) - (i32.const 5) ) - (i32.const 8) + (i32.const -1) ) ) + (i32.const 12) ) - (local.tee $3 - (i32.and + (i32.const 16) + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 2) + (local.get $7) + (local.get $2) ) - (i32.const 4) ) + (i32.const 5) ) + (i32.const 8) ) - (local.tee $3 - (i32.and + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 1) + (local.get $7) + (local.get $2) ) - (i32.const 2) ) + (i32.const 2) ) + (i32.const 4) ) - (local.tee $3 - (i32.and + ) + ) + (local.tee $2 + (i32.and + (i32.shr_u + (local.tee $7 (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $3) - ) - ) - (i32.const 1) + (local.get $7) + (local.get $2) ) - (i32.const 1) ) + (i32.const 1) ) + (i32.const 2) ) + ) + ) + (local.tee $2 + (i32.and (i32.shr_u - (local.get $4) - (local.get $3) + (local.tee $7 + (i32.shr_u + (local.get $7) + (local.get $2) + ) + ) + (i32.const 1) ) + (i32.const 1) ) ) - (i32.const 3) ) - (i32.const 216) + (i32.shr_u + (local.get $7) + (local.get $2) + ) ) ) - (i32.const 8) + (i32.const 3) ) + (i32.const 216) ) ) ) - (i32.const 8) ) ) ) + (local.get $7) ) - (local.get $7) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (local.get $6) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $11) + (block + (i32.store + (i32.const 176) + (i32.and + (local.get $6) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $2) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (local.set $9 - (local.get $0) - ) - ) - (block - (if - (i32.lt_u - (local.get $8) - (i32.load - (i32.const 192) - ) + (local.set $8 + (local.get $0) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 12) - ) - ) - ) - (local.get $10) - ) - (block - (i32.store - (local.get $0) - (local.get $7) - ) - (i32.store - (local.get $3) - (local.get $8) - ) - (local.set $9 + (block + (if + (i32.lt_u + (local.get $9) (i32.load - (i32.const 184) + (i32.const 192) ) ) + (call $_abort) ) - (call $_abort) - ) - ) - ) - (i32.store offset=4 - (local.get $10) - (i32.or - (local.get $2) - (i32.const 3) - ) - ) - (i32.store offset=4 - (local.tee $7 - (i32.add - (local.get $2) - (local.get $10) - ) - ) - (i32.or - (local.tee $11 - (i32.sub - (i32.shl + (if + (i32.eq + (i32.load offset=12 + (local.get $9) + ) (local.get $11) - (i32.const 3) ) - (local.get $2) + (block + (i32.store offset=12 + (local.get $9) + (local.get $7) + ) + (i32.store offset=8 + (local.get $7) + (local.get $9) + ) + (local.set $8 + (i32.load + (i32.const 184) + ) + ) + ) + (call $_abort) ) ) - (i32.const 1) ) - ) - (i32.store - (i32.add - (local.get $7) + (i32.store offset=4 (local.get $11) + (i32.or + (local.get $4) + (i32.const 3) + ) ) - (local.get $11) - ) - (if - (local.get $9) - (block - (local.set $6 - (i32.load - (i32.const 196) + (i32.store offset=4 + (local.tee $7 + (i32.add + (local.get $4) + (local.get $11) ) ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $0 - (i32.shr_u - (local.get $9) - (i32.const 3) - ) + (i32.or + (local.tee $9 + (i32.sub + (i32.shl + (local.get $2) + (i32.const 3) ) - (i32.const 3) + (local.get $4) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (local.tee $3 - (i32.load - (i32.const 176) - ) + ) + (i32.store + (i32.add + (local.get $7) + (local.get $9) + ) + (local.get $9) + ) + (if + (local.get $8) + (block + (local.set $6 + (i32.load + (i32.const 196) ) - (local.tee $0 + ) + (local.set $4 + (i32.add (i32.shl - (i32.const 1) - (local.get $0) + (local.tee $0 + (i32.shr_u + (local.get $8) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $2 (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (i32.const 176) ) ) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) ) ) - (call $_abort) (block - (local.set $5 - (local.get $3) + (local.set $2 + (i32.add + (local.get $4) + (i32.const 8) + ) ) - (local.set $1 - (local.get $0) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $4) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $3 + (local.get $2) + ) + (local.set $1 + (local.get $0) + ) + ) ) ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $3) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $2) + ) ) - ) - (local.set $5 - (i32.add - (local.get $2) - (i32.const 8) + (local.set $3 + (i32.add + (local.get $4) + (i32.const 8) + ) + ) + (local.set $1 + (local.get $4) ) ) - (local.set $1 - (local.get $2) + ) + (i32.store + (local.get $3) + (local.get $6) + ) + (i32.store + (i32.add + (local.get $1) + (i32.const 12) ) + (local.get $6) + ) + (i32.store offset=8 + (local.get $6) + (local.get $1) + ) + (i32.store offset=12 + (local.get $6) + (local.get $4) ) ) - (i32.store - (local.get $5) - (local.get $6) - ) - (i32.store offset=12 - (local.get $1) - (local.get $6) - ) - (i32.store offset=8 - (local.get $6) - (local.get $1) - ) - (i32.store offset=12 - (local.get $6) - (local.get $2) + ) + (i32.store + (i32.const 184) + (local.get $9) + ) + (i32.store + (i32.const 196) + (local.get $7) + ) + (return + (i32.add + (local.get $11) + (i32.const 8) ) ) ) - (i32.store - (i32.const 184) - (local.get $11) - ) - (i32.store - (i32.const 196) - (local.get $7) - ) - (return - (local.get $4) - ) ) - ) - (if (result i32) - (local.tee $0 - (i32.load - (i32.const 180) + (if (result i32) + (local.tee $0 + (i32.load + (i32.const 180) + ) ) - ) - (block - (local.set $11 - (i32.sub - (i32.and - (i32.load offset=4 - (local.tee $0 - (i32.load offset=480 - (i32.shl + (block + (local.set $7 + (i32.sub + (i32.and + (i32.load offset=4 + (local.tee $0 + (i32.load (i32.add - (i32.or - (i32.or + (i32.shl + (i32.add (i32.or (i32.or - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.add - (i32.and - (local.get $0) - (i32.sub - (i32.const 0) + (i32.or + (i32.or + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.add + (i32.and + (local.get $0) + (i32.sub + (i32.const 0) + (local.get $0) + ) + ) + (i32.const -1) + ) + ) + (i32.const 12) + ) + (i32.const 16) + ) + ) + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.shr_u + (local.get $1) (local.get $0) ) ) - (i32.const -1) + (i32.const 5) ) + (i32.const 8) ) - (i32.const 12) ) - (i32.const 16) + ) + (local.tee $0 + (i32.and + (i32.shr_u + (local.tee $1 + (i32.shr_u + (local.get $1) + (local.get $0) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) ) ) (local.tee $0 @@ -7980,9 +7918,9 @@ (local.get $0) ) ) - (i32.const 5) + (i32.const 1) ) - (i32.const 8) + (i32.const 2) ) ) ) @@ -7995,881 +7933,876 @@ (local.get $0) ) ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.shr_u - (local.get $1) - (local.get $0) - ) + (i32.const 1) ) (i32.const 1) ) - (i32.const 2) ) ) - ) - (local.tee $0 - (i32.and - (i32.shr_u - (local.tee $1 - (i32.shr_u - (local.get $1) - (local.get $0) - ) - ) - (i32.const 1) - ) - (i32.const 1) + (i32.shr_u + (local.get $1) + (local.get $0) ) ) + (i32.const 2) ) - (i32.shr_u - (local.get $1) - (local.get $0) - ) + (i32.const 480) ) - (i32.const 2) ) ) ) + (i32.const -8) ) - (i32.const -8) + (local.get $4) ) - (local.get $2) ) - ) - (local.set $7 - (local.get $0) - ) - (loop $while-in - (block $while-out - (if - (local.tee $1 - (i32.load offset=16 - (local.get $0) - ) - ) - (local.set $0 - (local.get $1) - ) + (local.set $3 + (local.tee $1 + (local.get $0) + ) + ) + (loop $while-in + (block $while-out (if (i32.eqz (local.tee $0 - (i32.load offset=20 - (local.get $0) + (i32.load + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) ) - (block - (local.set $6 - (local.get $11) + (if + (i32.eqz + (local.tee $0 + (i32.load + (i32.add + (local.get $1) + (i32.const 20) + ) + ) + ) ) - (local.set $8 - (local.get $7) + (block + (local.set $9 + (local.get $7) + ) + (local.set $6 + (local.get $3) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (local.set $6 - (i32.lt_u - (local.tee $1 - (i32.sub - (i32.and - (i32.load offset=4 - (local.get $0) + (local.set $9 + (i32.lt_u + (local.tee $1 + (i32.sub + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $4) ) - (local.get $2) ) + (local.get $7) ) - (local.get $11) ) - ) - (local.set $11 - (select - (local.get $1) - (local.get $11) - (local.get $6) + (local.set $7 + (select + (local.get $1) + (local.get $7) + (local.get $9) + ) ) - ) - (local.set $7 - (select - (local.get $0) - (local.get $7) - (local.get $6) + (local.set $3 + (select + (local.tee $1 + (local.get $0) + ) + (local.get $3) + (local.get $9) + ) ) + (br $while-in) ) - (br $while-in) ) - ) - (if - (i32.lt_u - (local.get $8) - (local.tee $10 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $6) + (local.tee $11 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.ge_u - (local.get $8) - (local.tee $5 - (i32.add - (local.get $2) - (local.get $8) + (if + (i32.ge_u + (local.get $6) + (local.tee $12 + (i32.add + (local.get $4) + (local.get $6) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (local.set $9 - (i32.load offset=24 - (local.get $8) + (local.set $8 + (i32.load offset=24 + (local.get $6) + ) ) - ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 - (local.get $8) + (if + (i32.eq + (local.tee $0 + (i32.load offset=12 + (local.get $6) + ) ) + (local.get $6) ) - (local.get $8) - ) - (block $do-once4 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 20) - ) - ) - ) + (block $do-once4 + (local.set $0 + (i32.add + (local.get $6) + (i32.const 20) ) ) - (br_if $do-once4 + (if (i32.eqz (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $8) - (i32.const 16) + (i32.load offset=20 + (local.get $6) + ) + ) + ) + (block + (local.set $0 + (i32.add + (local.get $6) + (i32.const 16) + ) + ) + (br_if $do-once4 + (i32.eqz + (local.tee $1 + (i32.load offset=16 + (local.get $6) ) ) ) ) ) ) - ) - (loop $while-in7 - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 20) + (loop $while-in7 + (if + (local.tee $3 + (i32.load + (local.tee $7 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) - ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $3) + ) + (local.set $0 + (local.get $7) + ) + (br $while-in7) ) - (br $while-in7) ) - ) - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 16) + (if + (local.tee $3 + (i32.load + (local.tee $7 + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) ) - ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $3) + ) + (local.set $0 + (local.get $7) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $10) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $4 - (local.get $1) + (local.get $11) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $11 - (i32.load offset=8 - (local.get $8) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $10) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $8) - (i32.load - (local.tee $7 - (i32.add - (local.get $11) - (i32.const 12) - ) + (local.set $10 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load offset=8 + (local.get $6) ) ) + (local.get $11) ) - (local.get $8) + (call $_abort) ) - (block - (i32.store - (local.get $7) - (local.get $0) + (if + (i32.ne + (local.get $6) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $11) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $6) ) - (local.set $4 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $10 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (if - (local.get $9) - (block $do-once8 - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $8) + (if + (local.get $8) + (block $do-once8 + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load offset=28 + (local.get $6) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $6) ) - (local.get $8) - ) - (block - (i32.store - (local.get $0) - (local.get $4) - ) - (if - (i32.eqz - (local.get $4) + (block + (i32.store + (local.get $0) + (local.get $10) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (if + (i32.eqz + (local.get $10) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (local.get $9) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (local.get $8) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $9) - (i32.const 16) - ) + (if + (i32.eq + (i32.load offset=16 + (local.get $8) ) + (local.get $6) + ) + (i32.store offset=16 + (local.get $8) + (local.get $10) + ) + (i32.store offset=20 + (local.get $8) + (local.get $10) ) - (local.get $8) - ) - (i32.store - (local.get $0) - (local.get $4) - ) - (i32.store offset=20 - (local.get $9) - (local.get $4) ) - ) - (br_if $do-once8 - (i32.eqz - (local.get $4) + (br_if $do-once8 + (i32.eqz + (local.get $10) + ) ) ) ) - ) - (if - (i32.lt_u - (local.get $4) - (local.tee $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $10) + (local.tee $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $4) - (local.get $9) - ) - (if - (local.tee $1 - (i32.load offset=16 - (local.get $8) + (i32.store + (i32.add + (local.get $10) + (i32.const 24) ) + (local.get $8) ) (if - (i32.lt_u - (local.get $1) - (local.get $0) + (local.tee $1 + (i32.load offset=16 + (local.get $6) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (local.get $4) + (if + (i32.lt_u (local.get $1) + (local.get $0) ) - (i32.store offset=24 - (local.get $1) - (local.get $4) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $10) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $10) + ) ) ) ) - ) - (if - (local.tee $0 - (i32.load offset=20 - (local.get $8) - ) - ) (if - (i32.lt_u - (local.get $0) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.load offset=20 + (local.get $6) ) ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $4) + (if + (i32.lt_u (local.get $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (local.get $0) - (local.get $4) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $10) + (i32.const 20) + ) + (local.get $0) + ) + (i32.store offset=24 + (local.get $0) + (local.get $10) + ) ) ) ) ) ) - ) - (if - (i32.lt_u - (local.get $6) - (i32.const 16) - ) - (block - (i32.store offset=4 - (local.get $8) - (i32.or - (local.tee $0 - (i32.add - (local.get $2) - (local.get $6) + (if + (i32.lt_u + (local.get $9) + (i32.const 16) + ) + (block + (i32.store offset=4 + (local.get $6) + (i32.or + (local.tee $0 + (i32.add + (local.get $4) + (local.get $9) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) - (local.get $8) + (local.get $6) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (local.get $8) - (i32.or - (local.get $2) - (i32.const 3) - ) - ) - (i32.store offset=4 - (local.get $5) - (i32.or + (block + (i32.store offset=4 (local.get $6) - (i32.const 1) + (i32.or + (local.get $4) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add - (local.get $5) - (local.get $6) + (i32.store offset=4 + (local.get $12) + (i32.or + (local.get $9) + (i32.const 1) + ) ) - (local.get $6) - ) - (if - (local.tee $0 - (i32.load - (i32.const 184) + (i32.store + (i32.add + (local.get $9) + (local.get $12) ) + (local.get $9) ) - (block - (local.set $4 + (if + (local.tee $0 (i32.load - (i32.const 196) + (i32.const 184) ) ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $0 - (i32.shr_u - (local.get $0) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (local.set $4 + (i32.load + (i32.const 196) ) - (i32.const 216) ) - ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (local.set $3 + (i32.add (i32.shl - (i32.const 1) - (local.get $0) + (local.tee $0 + (i32.shr_u + (local.get $0) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $1 (i32.load - (local.tee $1 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (i32.const 176) ) ) - (i32.load - (i32.const 192) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) ) ) - (call $_abort) (block - (local.set $12 - (local.get $1) + (local.set $1 + (i32.add + (local.get $3) + (i32.const 8) + ) ) - (local.set $3 - (local.get $0) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $3) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $5 + (local.get $1) + ) + (local.set $2 + (local.get $0) + ) + ) ) ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) ) - ) - (local.set $12 - (i32.add - (local.get $2) - (i32.const 8) + (local.set $5 + (i32.add + (local.get $3) + (i32.const 8) + ) + ) + (local.set $2 + (local.get $3) ) ) - (local.set $3 + ) + (i32.store + (local.get $5) + (local.get $4) + ) + (i32.store + (i32.add (local.get $2) + (i32.const 12) ) + (local.get $4) + ) + (i32.store offset=8 + (local.get $4) + (local.get $2) + ) + (i32.store offset=12 + (local.get $4) + (local.get $3) ) ) - (i32.store - (local.get $12) - (local.get $4) - ) - (i32.store offset=12 - (local.get $3) - (local.get $4) - ) - (i32.store offset=8 - (local.get $4) - (local.get $3) - ) - (i32.store offset=12 - (local.get $4) - (local.get $2) - ) + ) + (i32.store + (i32.const 184) + (local.get $9) + ) + (i32.store + (i32.const 196) + (local.get $12) ) ) - (i32.store - (i32.const 184) + ) + (return + (i32.add (local.get $6) + (i32.const 8) ) - (i32.store - (i32.const 196) - (local.get $5) - ) - ) - ) - (return - (i32.add - (local.get $8) - (i32.const 8) ) ) + (local.get $4) ) - (local.get $2) ) + (local.get $4) ) - (local.get $2) - ) - ) - (if (result i32) - (i32.gt_u - (local.get $0) - (i32.const -65) ) - (i32.const -1) - (block $do-once (result i32) - (local.set $2 - (i32.and - (local.tee $0 - (i32.add - (local.get $0) - (i32.const 11) + (if (result i32) + (i32.gt_u + (local.get $0) + (i32.const -65) + ) + (i32.const -1) + (block $do-once (result i32) + (local.set $3 + (i32.and + (local.tee $0 + (i32.add + (local.get $0) + (i32.const 11) + ) ) + (i32.const -8) ) - (i32.const -8) ) - ) - (if (result i32) - (local.tee $18 - (i32.load - (i32.const 180) + (if (result i32) + (local.tee $18 + (i32.load + (i32.const 180) + ) ) - ) - (block (result i32) - (local.set $14 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $0) - (i32.const 8) - ) - ) + (block (result i32) + (local.set $14 (if (result i32) - (i32.gt_u - (local.get $2) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $0) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $4 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $3) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $4 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $3 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $4) + (local.set $2 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $4) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $2) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $3) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) - (local.get $4) + (i32.or + (local.get $1) + (local.get $4) + ) + (local.get $2) ) - (local.get $3) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $3) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $2) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) - ) - (local.set $3 - (i32.sub - (i32.const 0) - (local.get $2) + (local.set $2 + (i32.sub + (i32.const 0) + (local.get $3) + ) ) - ) - (block $__rjto$3 - (block $__rjti$3 - (local.set $0 - (if (result i32) - (local.tee $0 - (i32.load offset=480 - (i32.shl - (local.get $14) - (i32.const 2) + (block $__rjto$3 + (block $__rjti$3 + (local.set $0 + (if (result i32) + (local.tee $0 + (i32.load + (i32.add + (i32.shl + (local.get $14) + (i32.const 2) + ) + (i32.const 480) + ) ) ) - ) - (block (result i32) - (local.set $9 - (i32.shl - (local.get $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block (result i32) + (local.set $8 + (i32.shl + (local.get $3) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $14) + (i32.const 1) + ) + ) + (i32.eq (local.get $14) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $14) - (i32.const 31) - ) ) ) - ) - (local.set $1 - (i32.const 0) - ) - (loop $while-in14 (result i32) - (if - (i32.lt_u - (local.tee $4 - (i32.sub - (local.tee $12 - (i32.and - (i32.load offset=4 - (local.get $0) + (local.set $1 + (i32.const 0) + ) + (loop $while-in14 (result i32) + (if + (i32.lt_u + (local.tee $4 + (i32.sub + (local.tee $10 + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) ) + (local.get $3) ) - (local.get $2) ) + (local.get $2) ) - (local.get $3) - ) - (local.set $1 - (if (result i32) - (i32.eq - (local.get $2) - (local.get $12) - ) - (block - (local.set $1 - (local.get $4) + (local.set $1 + (if (result i32) + (i32.eq + (local.get $3) + (local.get $10) ) - (local.set $3 - (local.get $0) + (block + (local.set $1 + (local.get $4) + ) + (local.set $2 + (local.get $0) + ) + (br $__rjti$3) ) - (br $__rjti$3) - ) - (block (result i32) - (local.set $3 - (local.get $4) + (block (result i32) + (local.set $2 + (local.get $4) + ) + (local.get $0) ) - (local.get $0) ) ) ) - ) - (local.set $0 - (select - (local.get $5) - (local.tee $4 - (i32.load offset=20 - (local.get $0) - ) - ) - (i32.or - (i32.eqz - (local.get $4) + (local.set $0 + (select + (local.get $5) + (local.tee $4 + (i32.load + (i32.add + (local.get $0) + (i32.const 20) + ) + ) ) - (i32.eq - (local.get $4) - (local.tee $12 - (i32.load - (i32.add + (i32.or + (i32.eqz + (local.get $4) + ) + (i32.eq + (local.get $4) + (local.tee $10 + (i32.load (i32.add - (local.get $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $9) - (i32.const 31) + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $8) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -8877,109 +8810,139 @@ ) ) ) - ) - (local.set $4 - (i32.shl - (local.get $9) - (i32.xor - (local.tee $5 - (i32.eqz - (local.get $12) + (local.set $4 + (i32.shl + (local.get $8) + (i32.xor + (local.tee $5 + (i32.eqz + (local.get $10) + ) ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (if (result i32) - (local.get $5) - (block (result i32) - (local.set $4 - (local.get $0) ) - (local.get $1) ) - (block - (local.set $5 - (local.get $0) - ) - (local.set $9 - (local.get $4) + (if (result i32) + (local.get $5) + (block (result i32) + (local.set $4 + (local.get $0) + ) + (local.get $1) ) - (local.set $0 - (local.get $12) + (block + (local.set $5 + (local.get $0) + ) + (local.set $8 + (local.get $4) + ) + (local.set $0 + (local.get $10) + ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block (result i32) - (local.set $4 + (block (result i32) + (local.set $4 + (i32.const 0) + ) (i32.const 0) ) - (i32.const 0) ) ) - ) - (if - (i32.eqz - (i32.or - (local.get $0) - (local.get $4) + (if + (i32.eqz + (i32.or + (local.get $0) + (local.get $4) + ) ) - ) - (block - (drop - (br_if $do-once - (local.get $2) - (i32.eqz - (local.tee $1 - (i32.and - (local.get $18) - (i32.or - (local.tee $1 - (i32.shl - (i32.const 2) - (local.get $14) + (block + (drop + (br_if $do-once + (local.get $3) + (i32.eqz + (local.tee $1 + (i32.and + (local.get $18) + (i32.or + (local.tee $1 + (i32.shl + (i32.const 2) + (local.get $14) + ) + ) + (i32.sub + (i32.const 0) + (local.get $1) ) - ) - (i32.sub - (i32.const 0) - (local.get $1) ) ) ) ) ) ) - ) - (local.set $4 - (i32.load offset=480 - (i32.shl + (local.set $4 + (i32.load (i32.add - (i32.or - (i32.or + (i32.shl + (i32.add (i32.or (i32.or - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.add - (i32.and - (local.get $1) - (i32.sub - (i32.const 0) + (i32.or + (i32.or + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.add + (i32.and + (local.get $1) + (i32.sub + (i32.const 0) + (local.get $1) + ) + ) + (i32.const -1) + ) + ) + (i32.const 12) + ) + (i32.const 16) + ) + ) + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.shr_u + (local.get $4) (local.get $1) ) ) - (i32.const -1) + (i32.const 5) ) + (i32.const 8) ) - (i32.const 12) ) - (i32.const 16) + ) + (local.tee $1 + (i32.and + (i32.shr_u + (local.tee $4 + (i32.shr_u + (local.get $4) + (local.get $1) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) ) ) (local.tee $1 @@ -8991,9 +8954,9 @@ (local.get $1) ) ) - (i32.const 5) + (i32.const 1) ) - (i32.const 8) + (i32.const 2) ) ) ) @@ -9006,1889 +8969,1852 @@ (local.get $1) ) ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $1) - ) + (i32.const 1) ) (i32.const 1) ) - (i32.const 2) ) ) - ) - (local.tee $1 - (i32.and - (i32.shr_u - (local.tee $4 - (i32.shr_u - (local.get $4) - (local.get $1) - ) - ) - (i32.const 1) - ) - (i32.const 1) + (i32.shr_u + (local.get $4) + (local.get $1) ) ) + (i32.const 2) ) - (i32.shr_u - (local.get $4) - (local.get $1) - ) + (i32.const 480) ) - (i32.const 2) ) ) ) ) - ) - (local.set $4 - (if (result i32) - (local.get $4) - (block - (local.set $1 - (local.get $3) - ) - (local.set $3 - (local.get $4) + (local.set $4 + (if (result i32) + (local.get $4) + (block + (local.set $1 + (local.get $2) + ) + (local.set $2 + (local.get $4) + ) + (br $__rjti$3) ) - (br $__rjti$3) + (local.get $0) ) - (local.get $0) ) + (br $__rjto$3) ) - (br $__rjto$3) - ) - (local.set $3 - (loop $while-in16 (result i32) - (local.set $12 - (i32.lt_u - (local.tee $4 - (i32.sub - (i32.and - (i32.load offset=4 - (local.get $3) + (local.set $2 + (loop $while-in16 (result i32) + (local.set $10 + (i32.lt_u + (local.tee $4 + (i32.sub + (i32.and + (i32.load + (i32.add + (local.get $2) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $3) ) - (local.get $2) ) + (local.get $1) ) - (local.get $1) ) - ) - (local.set $1 - (select - (local.get $4) - (local.get $1) - (local.get $12) - ) - ) - (local.set $0 - (select - (local.get $3) - (local.get $0) - (local.get $12) + (local.set $1 + (select + (local.get $4) + (local.get $1) + (local.get $10) + ) ) - ) - (if - (local.tee $4 - (i32.load offset=16 - (local.get $3) + (local.set $0 + (select + (local.get $2) + (local.get $0) + (local.get $10) ) ) - (block - (local.set $3 - (local.get $4) + (if + (local.tee $4 + (i32.load + (i32.add + (local.get $2) + (i32.const 16) + ) + ) + ) + (block + (local.set $2 + (local.get $4) + ) + (br $while-in16) ) - (br $while-in16) ) - ) - (br_if $while-in16 - (local.tee $3 - (i32.load offset=20 - (local.get $3) + (br_if $while-in16 + (local.tee $2 + (i32.load + (i32.add + (local.get $2) + (i32.const 20) + ) + ) ) ) + (local.set $4 + (local.get $0) + ) + (local.get $1) ) - (local.set $4 - (local.get $0) - ) - (local.get $1) ) ) - ) - (if (result i32) - (local.get $4) (if (result i32) - (i32.lt_u - (local.get $3) - (i32.sub - (i32.load - (i32.const 184) - ) + (local.get $4) + (if (result i32) + (i32.lt_u (local.get $2) - ) - ) - (block - (if - (i32.lt_u - (local.get $4) - (local.tee $8 - (i32.load - (i32.const 192) - ) + (i32.sub + (i32.load + (i32.const 184) ) + (local.get $3) ) - (call $_abort) ) - (if - (i32.ge_u - (local.get $4) - (local.tee $5 - (i32.add - (local.get $2) - (local.get $4) + (block + (if + (i32.lt_u + (local.get $4) + (local.tee $11 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (local.set $12 - (i32.load offset=24 - (local.get $4) + (if + (i32.ge_u + (local.get $4) + (local.tee $5 + (i32.add + (local.get $3) + (local.get $4) + ) + ) + ) + (call $_abort) ) - ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 + (local.set $10 + (i32.load + (i32.add (local.get $4) + (i32.const 24) ) ) - (local.get $4) ) - (block $do-once17 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $4) - (i32.const 20) - ) - ) + (if + (i32.eq + (local.tee $0 + (i32.load + (i32.add + (local.get $4) + (i32.const 12) ) ) ) - (br_if $do-once17 + (local.get $4) + ) + (block $do-once17 + (if (i32.eqz (local.tee $1 (i32.load (local.tee $0 (i32.add (local.get $4) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - ) - ) - (loop $while-in20 - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 20) + (br_if $do-once17 + (i32.eqz + (local.tee $1 + (i32.load + (local.tee $0 + (i32.add + (local.get $4) + (i32.const 16) + ) + ) ) ) ) ) - (block - (local.set $1 - (local.get $7) - ) - (local.set $0 - (local.get $11) - ) - (br $while-in20) - ) ) - (if - (local.tee $7 - (i32.load - (local.tee $11 - (i32.add - (local.get $1) - (i32.const 16) + (loop $while-in20 + (if + (local.tee $7 + (i32.load + (local.tee $9 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) + (block + (local.set $1 + (local.get $7) + ) + (local.set $0 + (local.get $9) + ) + (br $while-in20) + ) ) - (block - (local.set $1 - (local.get $7) + (if + (local.tee $7 + (i32.load + (local.tee $9 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + ) ) - (local.set $0 - (local.get $11) + (block + (local.set $1 + (local.get $7) + ) + (local.set $0 + (local.get $9) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $8) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $10 - (local.get $1) + (local.get $11) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $11 - (i32.load offset=8 - (local.get $4) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $8) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $4) - (i32.load - (local.tee $7 - (i32.add - (local.get $11) - (i32.const 12) - ) + (local.set $12 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load + (i32.add + (local.get $4) + (i32.const 8) + ) ) ) + (local.get $11) ) - (local.get $4) + (call $_abort) ) - (block - (i32.store - (local.get $7) - (local.get $0) + (if + (i32.ne + (local.get $4) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $11) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $4) ) - (local.set $10 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $12 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (if - (local.get $12) - (block $do-once21 - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $4) + (if + (local.get $10) + (block $do-once21 + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load + (i32.add + (local.get $4) + (i32.const 28) + ) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $4) ) - (local.get $4) - ) - (block - (i32.store - (local.get $0) - (local.get $10) - ) - (if - (i32.eqz - (local.get $10) + (block + (i32.store + (local.get $0) + (local.get $12) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (if + (i32.eqz + (local.get $12) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (local.get $12) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (local.get $10) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $12) - (i32.const 16) - ) + (if + (i32.eq + (i32.load offset=16 + (local.get $10) ) + (local.get $4) + ) + (i32.store offset=16 + (local.get $10) + (local.get $12) + ) + (i32.store offset=20 + (local.get $10) + (local.get $12) ) - (local.get $4) - ) - (i32.store - (local.get $0) - (local.get $10) - ) - (i32.store offset=20 - (local.get $12) - (local.get $10) ) - ) - (br_if $do-once21 - (i32.eqz - (local.get $10) + (br_if $do-once21 + (i32.eqz + (local.get $12) + ) ) ) ) - ) - (if - (i32.lt_u - (local.get $10) - (local.tee $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (local.get $12) + (local.tee $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $10) - (local.get $12) - ) - (if - (local.tee $1 - (i32.load offset=16 - (local.get $4) + (i32.store + (i32.add + (local.get $12) + (i32.const 24) ) + (local.get $10) ) (if - (i32.lt_u - (local.get $1) - (local.get $0) + (local.tee $1 + (i32.load + (i32.add + (local.get $4) + (i32.const 16) + ) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (local.get $10) + (if + (i32.lt_u (local.get $1) + (local.get $0) ) - (i32.store offset=24 - (local.get $1) - (local.get $10) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $12) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $12) + ) ) ) ) - ) - (if - (local.tee $0 - (i32.load offset=20 - (local.get $4) - ) - ) (if - (i32.lt_u - (local.get $0) + (local.tee $0 (i32.load - (i32.const 192) + (i32.add + (local.get $4) + (i32.const 20) + ) ) ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $10) + (if + (i32.lt_u (local.get $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (local.get $0) - (local.get $10) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $12) + (i32.const 20) + ) + (local.get $0) + ) + (i32.store offset=24 + (local.get $0) + (local.get $12) + ) ) ) ) ) ) - ) - (if - (i32.lt_u - (local.get $3) - (i32.const 16) - ) - (block - (i32.store offset=4 - (local.get $4) - (i32.or - (local.tee $0 - (i32.add - (local.get $2) - (local.get $3) + (if + (i32.lt_u + (local.get $2) + (i32.const 16) + ) + (block + (i32.store + (i32.add + (local.get $4) + (i32.const 4) + ) + (i32.or + (local.tee $0 + (i32.add + (local.get $2) + (local.get $3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $0) (local.get $4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block $do-once25 - (i32.store offset=4 - (local.get $4) - (i32.or - (local.get $2) - (i32.const 3) - ) - ) - (i32.store offset=4 - (local.get $5) - (i32.or - (local.get $3) - (i32.const 1) + (block $do-once25 + (i32.store + (i32.add + (local.get $4) + (i32.const 4) + ) + (i32.or + (local.get $3) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add - (local.get $3) + (i32.store offset=4 (local.get $5) + (i32.or + (local.get $2) + (i32.const 1) + ) ) - (local.get $3) - ) - (local.set $0 - (i32.shr_u - (local.get $3) - (i32.const 3) + (i32.store + (i32.add + (local.get $2) + (local.get $5) + ) + (local.get $2) ) - ) - (if - (i32.lt_u - (local.get $3) - (i32.const 256) + (local.set $0 + (i32.shr_u + (local.get $2) + (i32.const 3) + ) ) - (block - (local.set $3 - (i32.add - (i32.shl - (local.get $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (local.get $2) + (i32.const 256) ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (block + (local.set $2 + (i32.add (i32.shl - (i32.const 1) (local.get $0) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $0 + (i32.and + (local.tee $1 (i32.load - (local.tee $1 - (i32.add - (local.get $3) - (i32.const 8) + (i32.const 176) + ) + ) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $0) + ) + ) + ) + (block + (local.set $1 + (i32.add + (local.get $2) + (i32.const 8) + ) + ) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $2) ) ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $13 + (local.get $1) + ) + (local.set $6 + (local.get $0) + ) ) - ) - (i32.load - (i32.const 192) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) + ) (local.set $13 - (local.get $1) + (i32.add + (local.get $2) + (i32.const 8) + ) ) (local.set $6 - (local.get $0) + (local.get $2) ) ) ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) - ) - ) - (local.set $13 - (i32.add - (local.get $3) - (i32.const 8) - ) - ) - (local.set $6 - (local.get $3) + (i32.store + (local.get $13) + (local.get $5) + ) + (i32.store + (i32.add + (local.get $6) + (i32.const 12) ) + (local.get $5) ) + (i32.store offset=8 + (local.get $5) + (local.get $6) + ) + (i32.store offset=12 + (local.get $5) + (local.get $2) + ) + (br $do-once25) ) - (i32.store - (local.get $13) - (local.get $5) - ) - (i32.store offset=12 - (local.get $6) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $6) - ) - (i32.store offset=12 - (local.get $5) - (local.get $3) - ) - (br $do-once25) ) - ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $7 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $3) - (i32.const 8) - ) - ) + (local.set $3 + (i32.add + (i32.shl + (local.tee $7 (if (result i32) - (i32.gt_u - (local.get $3) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $2) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $7 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $2) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $7 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $7) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $7) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $3) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $2) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) - (local.get $7) + (i32.or + (local.get $1) + (local.get $7) + ) + (local.get $3) ) - (local.get $2) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $2) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $5) - (local.get $7) - ) - (i32.store offset=4 - (local.tee $0 + (i32.store offset=28 + (local.get $5) + (local.get $7) + ) + (i32.store offset=4 (i32.add (local.get $5) (i32.const 16) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (local.get $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $1 - (i32.load - (i32.const 180) + (i32.store offset=16 + (local.get $5) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $1 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $0 - (i32.shl - (i32.const 1) - (local.get $7) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $7) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $0) - (local.get $1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $0) + (local.get $1) + ) ) + (i32.store + (local.get $3) + (local.get $5) + ) + (i32.store offset=24 + (local.get $5) + (local.get $3) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once25) ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=24 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $5) - ) - (br $do-once25) ) - ) - (local.set $7 - (i32.shl - (local.get $3) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (local.set $7 + (i32.shl + (local.get $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $7) + (i32.const 1) + ) + ) + (i32.eq (local.get $7) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $7) - (i32.const 31) - ) ) ) - ) - (local.set $0 - (i32.load - (local.get $2) + (local.set $0 + (i32.load + (local.get $3) + ) ) - ) - (block $__rjto$1 - (block $__rjti$1 - (loop $while-in28 - (br_if $__rjti$1 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $0) + (block $__rjto$1 + (block $__rjti$1 + (loop $while-in28 + (br_if $__rjti$1 + (i32.eq + (i32.and + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $2) ) - (local.get $3) ) - ) - (local.set $2 - (i32.shl - (local.get $7) - (i32.const 1) + (local.set $3 + (i32.shl + (local.get $7) + (i32.const 1) + ) ) - ) - (if - (local.tee $1 - (i32.load - (local.tee $7 - (i32.add + (if + (local.tee $1 + (i32.load + (local.tee $7 (i32.add - (local.get $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $7) - (i32.const 31) + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $7) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $7 + (local.get $3) + ) + (local.set $0 + (local.get $1) + ) + (br $while-in28) + ) + ) + ) + (if + (i32.lt_u + (local.get $7) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (local.set $7 - (local.get $2) + (i32.store + (local.get $7) + (local.get $5) ) - (local.set $0 - (local.get $1) + (i32.store offset=24 + (local.get $5) + (local.get $0) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) ) - (br $while-in28) + (br $do-once25) ) ) + (br $__rjto$1) ) (if - (i32.lt_u - (local.get $7) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $2 + (i32.load offset=8 + (local.get $0) + ) + ) + (local.tee $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $0) + (local.get $1) ) ) - (call $_abort) (block - (i32.store - (local.get $7) + (i32.store offset=12 + (local.get $2) (local.get $5) ) - (i32.store offset=24 - (local.get $5) + (i32.store offset=8 (local.get $0) - ) - (i32.store offset=12 - (local.get $5) (local.get $5) ) (i32.store offset=8 (local.get $5) - (local.get $5) + (local.get $2) ) - (br $do-once25) - ) - ) - (br $__rjto$1) - ) - (if - (i32.and - (i32.ge_u - (local.tee $2 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $5) + (local.get $0) ) - (local.tee $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $5) + (i32.const 0) ) ) - (i32.ge_u - (local.get $0) - (local.get $1) - ) - ) - (block - (i32.store offset=12 - (local.get $2) - (local.get $5) - ) - (i32.store - (local.get $3) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $0) - ) - (i32.store offset=24 - (local.get $5) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (return - (i32.add - (local.get $4) - (i32.const 8) + (return + (i32.add + (local.get $4) + (i32.const 8) + ) ) ) + (local.get $3) ) - (local.get $2) + (local.get $3) ) - (local.get $2) ) + (local.get $3) ) - (local.get $2) ) ) ) ) - ) - (if - (i32.ge_u - (local.tee $1 - (i32.load - (i32.const 184) - ) - ) - (local.get $0) - ) - (block - (local.set $2 - (i32.load - (i32.const 196) + (if + (i32.ge_u + (local.tee $1 + (i32.load + (i32.const 184) + ) ) + (local.get $0) ) - (if - (i32.gt_u - (local.tee $3 - (i32.sub - (local.get $1) - (local.get $0) - ) + (block + (local.set $3 + (i32.load + (i32.const 196) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 196) - (local.tee $1 - (i32.add + (if + (i32.gt_u + (local.tee $2 + (i32.sub + (local.get $1) (local.get $0) - (local.get $2) ) ) + (i32.const 15) ) - (i32.store - (i32.const 184) - (local.get $3) - ) - (i32.store offset=4 - (local.get $1) - (i32.or - (local.get $3) - (i32.const 1) + (block + (i32.store + (i32.const 196) + (local.tee $1 + (i32.add + (local.get $0) + (local.get $3) + ) + ) ) - ) - (i32.store - (i32.add + (i32.store + (i32.const 184) + (local.get $2) + ) + (i32.store offset=4 (local.get $1) + (i32.or + (local.get $2) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (local.get $1) + (local.get $2) + ) + (local.get $2) + ) + (i32.store offset=4 (local.get $3) + (i32.or + (local.get $0) + (i32.const 3) + ) ) - (local.get $3) ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $0) - (i32.const 3) + (block + (i32.store + (i32.const 184) + (i32.const 0) ) - ) - ) - (block - (i32.store - (i32.const 184) - (i32.const 0) - ) - (i32.store - (i32.const 196) - (i32.const 0) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $1) - (i32.const 3) + (i32.store + (i32.const 196) + (i32.const 0) ) - ) - (i32.store - (local.tee $0 - (i32.add + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $1) + (i32.const 3) + ) + ) + (i32.store offset=4 + (local.tee $0 (i32.add (local.get $1) - (local.get $2) + (local.get $3) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (local.get $0) + (i32.or + (i32.load offset=4 + (local.get $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (return - (i32.add - (local.get $2) - (i32.const 8) - ) + (br $folding-inner1) ) ) - ) - (block $folding-inner0 - (br_if $folding-inner0 - (i32.gt_u - (local.tee $1 - (i32.load - (i32.const 188) + (block $folding-inner0 + (br_if $folding-inner0 + (i32.gt_u + (local.tee $1 + (i32.load + (i32.const 188) + ) ) - ) - (local.get $0) - ) - ) - (if - (i32.eqz - (i32.load - (i32.const 648) + (local.get $0) ) ) (if - (i32.and - (local.tee $1 - (call $_sysconf - (i32.const 30) - ) - ) - (i32.add - (local.get $1) - (i32.const -1) + (i32.eqz + (i32.load + (i32.const 648) ) ) - (call $_abort) - (block - (i32.store - (i32.const 656) - (local.get $1) - ) - (i32.store - (i32.const 652) - (local.get $1) - ) - (i32.store - (i32.const 660) - (i32.const -1) - ) - (i32.store - (i32.const 664) - (i32.const -1) - ) - (i32.store - (i32.const 668) - (i32.const 0) - ) - (i32.store - (i32.const 620) - (i32.const 0) + (if + (i32.and + (local.tee $1 + (call $_sysconf + (i32.const 30) + ) + ) + (i32.add + (local.get $1) + (i32.const -1) + ) ) - (i32.store - (i32.const 648) - (i32.xor - (i32.and - (call $_time - (i32.const 0) + (call $_abort) + (block + (i32.store + (i32.const 656) + (local.get $1) + ) + (i32.store + (i32.const 652) + (local.get $1) + ) + (i32.store + (i32.const 660) + (i32.const -1) + ) + (i32.store + (i32.const 664) + (i32.const -1) + ) + (i32.store + (i32.const 668) + (i32.const 0) + ) + (i32.store + (i32.const 620) + (i32.const 0) + ) + (i32.store + (i32.const 648) + (i32.xor + (i32.and + (call $_time + (i32.const 0) + ) + (i32.const -16) ) - (i32.const -16) + (i32.const 1431655768) ) - (i32.const 1431655768) ) ) ) ) - ) - (if - (i32.le_u - (local.tee $6 - (i32.and - (local.tee $5 - (i32.add - (local.tee $1 - (i32.load - (i32.const 656) + (if + (i32.le_u + (local.tee $6 + (i32.and + (local.tee $5 + (i32.add + (local.tee $1 + (i32.load + (i32.const 656) + ) ) - ) - (local.tee $9 - (i32.add - (local.get $0) - (i32.const 47) + (local.tee $8 + (i32.add + (local.get $0) + (i32.const 47) + ) ) ) ) - ) - (local.tee $12 - (i32.sub - (i32.const 0) - (local.get $1) + (local.tee $10 + (i32.sub + (i32.const 0) + (local.get $1) + ) ) ) ) + (local.get $0) ) - (local.get $0) - ) - (return - (i32.const 0) - ) - ) - (if - (local.tee $2 - (i32.load - (i32.const 616) + (return + (i32.const 0) ) ) (if - (i32.or - (i32.le_u - (local.tee $1 - (i32.add - (local.tee $3 - (i32.load - (i32.const 608) + (local.tee $3 + (i32.load + (i32.const 616) + ) + ) + (if + (i32.or + (i32.le_u + (local.tee $1 + (i32.add + (local.tee $2 + (i32.load + (i32.const 608) + ) ) + (local.get $6) ) - (local.get $6) ) + (local.get $2) + ) + (i32.gt_u + (local.get $1) + (local.get $3) ) - (local.get $3) ) - (i32.gt_u - (local.get $1) - (local.get $2) + (return + (i32.const 0) ) ) - (return - (i32.const 0) - ) ) - ) - (local.set $10 - (i32.add - (local.get $0) - (i32.const 48) + (local.set $12 + (i32.add + (local.get $0) + (i32.const 48) + ) ) - ) - (block $__rjto$13 - (block $__rjti$13 - (if - (i32.eqz - (i32.and - (i32.load - (i32.const 620) + (block $__rjto$13 + (block $__rjti$13 + (if + (i32.eqz + (i32.and + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (block - (block $label$break$L279 - (block $__rjti$5 - (block $__rjti$4 - (br_if $__rjti$4 - (i32.eqz - (local.tee $4 - (i32.load - (i32.const 200) + (block + (block $label$break$L279 + (block $__rjti$5 + (block $__rjti$4 + (br_if $__rjti$4 + (i32.eqz + (local.tee $4 + (i32.load + (i32.const 200) + ) ) ) ) - ) - (local.set $1 - (i32.const 624) - ) - (loop $while-in34 - (block $while-out33 - (if - (i32.le_u - (local.tee $3 - (i32.load - (local.get $1) - ) - ) - (local.get $4) - ) + (local.set $1 + (i32.const 624) + ) + (loop $while-in34 + (block $while-out33 (if - (i32.gt_u - (i32.add - (local.get $3) + (i32.le_u + (local.tee $2 (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 4) - ) - ) + (local.get $1) ) ) (local.get $4) ) - (block - (local.set $4 - (local.get $1) + (if + (i32.gt_u + (i32.add + (local.get $2) + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 4) + ) + ) + ) + ) + (local.get $4) + ) + (block + (local.set $4 + (local.get $1) + ) + (br $while-out33) ) - (br $while-out33) - ) - ) - ) - (br_if $while-in34 - (local.tee $1 - (i32.load offset=8 - (local.get $1) ) ) - ) - (br $__rjti$4) - ) - ) - (if - (i32.lt_u - (local.tee $3 - (i32.and - (i32.sub - (local.get $5) + (br_if $while-in34 + (local.tee $1 (i32.load - (i32.const 188) + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) - (local.get $12) ) + (br $__rjti$4) ) - (i32.const 2147483647) ) - (block - (local.set $1 - (call $_sbrk - (local.get $3) - ) - ) - (if - (i32.eq - (i32.add - (i32.load - (local.get $4) - ) - (i32.load - (local.get $2) + (if + (i32.lt_u + (local.tee $2 + (i32.and + (i32.sub + (local.get $5) + (i32.load + (i32.const 188) + ) ) + (local.get $10) ) - (local.get $1) ) - (br_if $__rjti$13 - (i32.ne - (local.get $1) - (i32.const -1) + (i32.const 2147483647) + ) + (block + (local.set $1 + (call $_sbrk + (local.get $2) ) ) - (block - (local.set $2 + (if + (i32.eq + (i32.add + (i32.load + (local.get $4) + ) + (i32.load + (local.get $3) + ) + ) (local.get $1) ) - (br $__rjti$5) + (br_if $__rjti$13 + (i32.ne + (local.get $1) + (i32.const -1) + ) + ) + (block + (local.set $3 + (local.get $1) + ) + (br $__rjti$5) + ) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (if - (i32.ne - (local.tee $1 - (call $_sbrk - (i32.const 0) + (if + (i32.ne + (local.tee $1 + (call $_sbrk + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (local.set $3 - (if (result i32) - (i32.and - (local.tee $3 - (local.get $1) - ) - (local.tee $2 - (i32.add - (local.tee $4 - (i32.load - (i32.const 652) + (block + (local.set $2 + (if (result i32) + (i32.and + (local.tee $2 + (local.get $1) + ) + (local.tee $3 + (i32.add + (local.tee $4 + (i32.load + (i32.const 652) + ) ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (i32.add - (i32.sub - (local.get $6) - (local.get $3) - ) - (i32.and - (i32.add + (i32.add + (i32.sub + (local.get $6) (local.get $2) - (local.get $3) ) - (i32.sub - (i32.const 0) - (local.get $4) + (i32.and + (i32.add + (local.get $2) + (local.get $3) + ) + (i32.sub + (i32.const 0) + (local.get $4) + ) ) ) + (local.get $6) ) - (local.get $6) ) - ) - (local.set $12 - (i32.add - (local.tee $4 - (i32.load - (i32.const 608) + (local.set $10 + (i32.add + (local.tee $4 + (i32.load + (i32.const 608) + ) ) - ) - (local.get $3) - ) - ) - (if - (i32.and - (i32.lt_u - (local.get $3) - (i32.const 2147483647) - ) - (i32.gt_u - (local.get $3) - (local.get $0) + (local.get $2) ) ) - (block - (if - (local.tee $2 - (i32.load - (i32.const 616) - ) + (if + (i32.and + (i32.lt_u + (local.get $2) + (i32.const 2147483647) ) - (br_if $label$break$L279 - (i32.or - (i32.le_u - (local.get $12) - (local.get $4) + (i32.gt_u + (local.get $2) + (local.get $0) + ) + ) + (block + (if + (local.tee $3 + (i32.load + (i32.const 616) ) - (i32.gt_u - (local.get $12) - (local.get $2) + ) + (br_if $label$break$L279 + (i32.or + (i32.le_u + (local.get $10) + (local.get $4) + ) + (i32.gt_u + (local.get $10) + (local.get $3) + ) ) ) ) - ) - (br_if $__rjti$13 - (i32.eq - (local.get $1) - (local.tee $2 - (call $_sbrk - (local.get $3) + (br_if $__rjti$13 + (i32.eq + (local.get $1) + (local.tee $3 + (call $_sbrk + (local.get $2) + ) ) ) ) + (br $__rjti$5) ) - (br $__rjti$5) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (local.set $1 - (local.get $3) - ) - (local.set $4 - (i32.sub - (i32.const 0) - (local.get $1) + (local.set $1 + (local.get $2) ) - ) - (local.set $3 - (if (result i32) - (i32.and + (local.set $4 + (i32.sub + (i32.const 0) + (local.get $1) + ) + ) + (local.set $2 + (if (result i32) (i32.and - (i32.ne - (local.get $2) - (i32.const -1) + (i32.and + (i32.ne + (local.get $3) + (i32.const -1) + ) + (i32.lt_u + (local.get $1) + (i32.const 2147483647) + ) ) - (i32.lt_u + (i32.gt_u + (local.get $12) (local.get $1) - (i32.const 2147483647) ) ) - (i32.gt_u - (local.get $10) - (local.get $1) - ) - ) - (if (result i32) - (i32.lt_u - (local.tee $3 - (i32.and - (i32.add - (local.tee $3 - (i32.load - (i32.const 656) + (if (result i32) + (i32.lt_u + (local.tee $2 + (i32.and + (i32.add + (local.tee $2 + (i32.load + (i32.const 656) + ) + ) + (i32.sub + (local.get $8) + (local.get $1) ) ) (i32.sub - (local.get $9) - (local.get $1) + (i32.const 0) + (local.get $2) ) ) - (i32.sub - (i32.const 0) - (local.get $3) - ) ) + (i32.const 2147483647) ) - (i32.const 2147483647) - ) - (if (result i32) - (i32.eq - (call $_sbrk - (local.get $3) - ) - (i32.const -1) - ) - (block - (drop + (if (result i32) + (i32.eq (call $_sbrk - (local.get $4) + (local.get $2) ) + (i32.const -1) + ) + (block + (drop + (call $_sbrk + (local.get $4) + ) + ) + (br $label$break$L279) + ) + (i32.add + (local.get $1) + (local.get $2) ) - (br $label$break$L279) - ) - (i32.add - (local.get $1) - (local.get $3) ) + (local.get $1) ) (local.get $1) ) - (local.get $1) - ) - ) - (if - (i32.ne - (local.get $2) - (i32.const -1) ) - (block - (local.set $1 - (local.get $2) + (if + (i32.ne + (local.get $3) + (i32.const -1) + ) + (block + (local.set $1 + (local.get $3) + ) + (br $__rjti$13) ) - (br $__rjti$13) ) ) - ) - (i32.store - (i32.const 620) - (i32.or - (i32.load - (i32.const 620) + (i32.store + (i32.const 620) + (i32.or + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (if - (i32.lt_u - (local.get $6) - (i32.const 2147483647) - ) (if - (i32.and - (i32.lt_u - (local.tee $1 - (call $_sbrk - (local.get $6) + (i32.lt_u + (local.get $6) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (local.tee $1 + (call $_sbrk + (local.get $6) + ) + ) + (local.tee $2 + (call $_sbrk + (i32.const 0) + ) ) ) - (local.tee $3 - (call $_sbrk - (i32.const 0) + (i32.and + (i32.ne + (local.get $1) + (i32.const -1) + ) + (i32.ne + (local.get $2) + (i32.const -1) ) ) ) - (i32.and - (i32.ne - (local.get $1) - (i32.const -1) - ) - (i32.ne - (local.get $3) - (i32.const -1) + (br_if $__rjti$13 + (i32.gt_u + (local.tee $2 + (i32.sub + (local.get $2) + (local.get $1) + ) + ) + (i32.add + (local.get $0) + (i32.const 40) + ) ) ) ) - (br_if $__rjti$13 - (i32.gt_u - (local.tee $3 - (i32.sub - (local.get $3) - (local.get $1) - ) - ) - (i32.add - (local.get $0) - (i32.const 40) - ) + ) + (br $__rjto$13) + ) + (i32.store + (i32.const 608) + (local.tee $3 + (i32.add + (i32.load + (i32.const 608) ) + (local.get $2) ) ) ) - (br $__rjto$13) - ) - (i32.store - (i32.const 608) - (local.tee $2 - (i32.add + (if + (i32.gt_u + (local.get $3) (i32.load - (i32.const 608) + (i32.const 612) ) - (local.get $3) ) - ) - ) - (if - (i32.gt_u - (local.get $2) - (i32.load + (i32.store (i32.const 612) + (local.get $3) ) ) - (i32.store - (i32.const 612) - (local.get $2) - ) - ) - (if - (local.tee $5 - (i32.load - (i32.const 200) - ) - ) - (block $do-once40 - (local.set $2 - (i32.const 624) + (if + (local.tee $5 + (i32.load + (i32.const 200) + ) ) - (block $__rjto$10 - (block $__rjti$10 - (loop $while-in45 - (br_if $__rjti$10 - (i32.eq - (i32.add - (local.tee $10 - (i32.load - (local.get $2) + (block $do-once40 + (local.set $3 + (i32.const 624) + ) + (block $__rjto$10 + (block $__rjti$10 + (loop $while-in45 + (br_if $__rjti$10 + (i32.eq + (i32.add + (local.tee $12 + (i32.load + (local.get $3) + ) ) - ) - (local.tee $6 - (i32.load - (local.tee $4 - (i32.add - (local.get $2) - (i32.const 4) + (local.tee $6 + (i32.load + (local.tee $4 + (i32.add + (local.get $3) + (i32.const 4) + ) ) ) ) ) + (local.get $1) ) - (local.get $1) ) - ) - (br_if $while-in45 - (local.tee $2 - (i32.load offset=8 - (local.get $2) + (br_if $while-in45 + (local.tee $3 + (i32.load + (i32.add + (local.get $3) + (i32.const 8) + ) + ) ) ) ) - ) - (br $__rjto$10) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (local.get $2) - ) - (i32.const 8) - ) + (br $__rjto$10) ) (if - (i32.and - (i32.lt_u - (local.get $5) - (local.get $1) - ) - (i32.ge_u - (local.get $5) - (local.get $10) - ) - ) - (block - (i32.store - (local.get $4) - (i32.add + (i32.eqz + (i32.and + (i32.load offset=12 (local.get $3) - (local.get $6) ) + (i32.const 8) ) - (local.set $2 - (i32.add + ) + (if + (i32.and + (i32.lt_u (local.get $5) - (local.tee $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $1 - (i32.add - (local.get $5) - (i32.const 8) + (local.get $1) + ) + (i32.ge_u + (local.get $5) + (local.get $12) + ) + ) + (block + (i32.store + (local.get $4) + (i32.add + (local.get $2) + (local.get $6) + ) + ) + (local.set $3 + (i32.add + (local.get $5) + (local.tee $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $1 + (i32.add + (local.get $5) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $1) - (i32.const 7) ) ) ) ) - ) - (local.set $1 - (i32.add - (i32.load - (i32.const 188) - ) - (i32.sub - (local.get $3) - (local.get $1) + (local.set $1 + (i32.add + (i32.load + (i32.const 188) + ) + (i32.sub + (local.get $2) + (local.get $1) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.get $2) - ) - (i32.store - (i32.const 188) - (local.get $1) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $1) - (i32.const 1) + (i32.store + (i32.const 200) + (local.get $3) ) - ) - (i32.store offset=4 - (i32.add + (i32.store + (i32.const 188) (local.get $1) - (local.get $2) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $1) + (i32.const 1) + ) ) + (i32.store offset=4 + (i32.add + (local.get $1) + (local.get $3) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + (br $do-once40) ) - (br $do-once40) ) ) ) - ) - (if - (i32.lt_u - (local.get $1) - (local.tee $4 - (i32.load + (if + (i32.lt_u + (local.get $1) + (local.tee $4 + (i32.load + (i32.const 192) + ) + ) + ) + (block + (i32.store (i32.const 192) + (local.get $1) + ) + (local.set $4 + (local.get $1) ) ) ) - (block - (i32.store - (i32.const 192) - (local.get $1) - ) - (local.set $4 + (local.set $12 + (i32.add (local.get $1) + (local.get $2) ) ) - ) - (local.set $10 - (i32.add - (local.get $1) - (local.get $3) + (local.set $3 + (i32.const 624) ) - ) - (local.set $2 - (i32.const 624) - ) - (local.set $4 - (block $__rjto$11 (result i32) - (block $__rjti$11 - (br $__rjto$11 - (loop $while-in47 (result i32) - (if - (i32.eq - (i32.load - (local.get $2) + (local.set $4 + (block $__rjto$11 (result i32) + (block $__rjti$11 + (br $__rjto$11 + (loop $while-in47 (result i32) + (if + (i32.eq + (i32.load + (local.get $3) + ) + (local.get $12) ) - (local.get $10) - ) - (block - (local.set $6 - (local.get $2) + (block + (local.set $6 + (local.get $3) + ) + (br $__rjti$11) ) - (br $__rjti$11) ) - ) - (br_if $while-in47 - (local.tee $2 - (i32.load offset=8 - (local.get $2) + (br_if $while-in47 + (local.tee $3 + (i32.load + (i32.add + (local.get $3) + (i32.const 8) + ) + ) ) ) + (i32.const 624) ) - (i32.const 624) ) ) - ) - (if (result i32) - (i32.and - (i32.load offset=12 - (local.get $2) - ) - (i32.const 8) - ) - (i32.const 624) - (block - (i32.store - (local.get $6) - (local.get $1) - ) - (i32.store - (local.tee $2 - (i32.add - (local.get $2) - (i32.const 4) - ) - ) - (i32.add - (i32.load - (local.get $2) - ) + (if (result i32) + (i32.and + (i32.load offset=12 (local.get $3) ) + (i32.const 8) ) - (local.set $9 - (i32.add - (local.tee $12 - (i32.add - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $3 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $3) - (i32.const 7) - ) - ) - (local.get $1) + (i32.const 624) + (block + (i32.store + (local.get $6) + (local.get $1) + ) + (i32.store offset=4 + (local.get $3) + (i32.add + (i32.load offset=4 + (local.get $3) ) + (local.get $2) ) - (local.get $0) ) - ) - (local.set $7 - (i32.sub - (i32.sub - (local.tee $6 + (local.set $8 + (i32.add + (local.tee $10 (i32.add - (local.get $10) (select (i32.and (i32.sub (i32.const 0) - (local.tee $1 + (local.tee $2 (i32.add - (local.get $10) + (local.get $1) (i32.const 8) ) ) @@ -10897,1116 +10823,1146 @@ ) (i32.const 0) (i32.and - (local.get $1) + (local.get $2) (i32.const 7) ) ) + (local.get $1) ) ) - (local.get $12) + (local.get $0) ) - (local.get $0) ) - ) - (i32.store offset=4 - (local.get $12) - (i32.or - (local.get $0) - (i32.const 3) - ) - ) - (if - (i32.eq - (local.get $5) - (local.get $6) - ) - (block - (i32.store - (i32.const 188) - (local.tee $0 - (i32.add - (i32.load - (i32.const 188) + (local.set $7 + (i32.sub + (i32.sub + (local.tee $6 + (i32.add + (local.get $12) + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $1 + (i32.add + (local.get $12) + (i32.const 8) + ) + ) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $1) + (i32.const 7) + ) + ) ) - (local.get $7) ) + (local.get $10) ) + (local.get $0) ) - (i32.store - (i32.const 200) - (local.get $9) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $0) - (i32.const 1) - ) + ) + (i32.store offset=4 + (local.get $10) + (i32.or + (local.get $0) + (i32.const 3) ) ) - (block $do-once48 - (if - (i32.eq - (i32.load - (i32.const 196) - ) - (local.get $6) - ) - (block - (i32.store - (i32.const 184) - (local.tee $0 - (i32.add - (i32.load - (i32.const 184) - ) - (local.get $7) + (if + (i32.eq + (local.get $5) + (local.get $6) + ) + (block + (i32.store + (i32.const 188) + (local.tee $0 + (i32.add + (i32.load + (i32.const 188) ) + (local.get $7) ) ) - (i32.store - (i32.const 196) - (local.get $9) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $0) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (local.get $0) - (local.get $9) - ) + ) + (i32.store + (i32.const 200) + (local.get $8) + ) + (i32.store offset=4 + (local.get $8) + (i32.or (local.get $0) + (i32.const 1) ) - (br $do-once48) ) ) - (i32.store - (local.tee $0 - (i32.add - (if (result i32) - (i32.eq - (i32.and - (local.tee $0 - (i32.load offset=4 - (local.get $6) - ) + (block $do-once48 + (if + (i32.eq + (i32.load + (i32.const 196) + ) + (local.get $6) + ) + (block + (i32.store + (i32.const 184) + (local.tee $0 + (i32.add + (i32.load + (i32.const 184) ) - (i32.const 3) + (local.get $7) ) + ) + ) + (i32.store + (i32.const 196) + (local.get $8) + ) + (i32.store offset=4 + (local.get $8) + (i32.or + (local.get $0) (i32.const 1) ) - (block (result i32) - (local.set $10 + ) + (i32.store + (i32.add + (local.get $0) + (local.get $8) + ) + (local.get $0) + ) + (br $do-once48) + ) + ) + (i32.store + (local.tee $0 + (i32.add + (if (result i32) + (i32.eq (i32.and - (local.get $0) - (i32.const -8) - ) - ) - (local.set $1 - (i32.shr_u - (local.get $0) + (local.tee $0 + (i32.load offset=4 + (local.get $6) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$L331 - (if - (i32.lt_u + (block (result i32) + (local.set $12 + (i32.and (local.get $0) - (i32.const 256) + (i32.const -8) ) - (block - (local.set $2 - (i32.load offset=12 - (local.get $6) - ) + ) + (local.set $1 + (i32.shr_u + (local.get $0) + (i32.const 3) + ) + ) + (block $label$break$L331 + (if + (i32.lt_u + (local.get $0) + (i32.const 256) ) - (if - (i32.ne - (local.tee $3 - (i32.load offset=8 - (local.get $6) - ) - ) - (local.tee $0 - (i32.add - (i32.shl - (local.get $1) - (i32.const 3) - ) - (i32.const 216) - ) + (block + (local.set $3 + (i32.load offset=12 + (local.get $6) ) ) - (block $do-once51 - (if - (i32.lt_u - (local.get $3) - (local.get $4) + (if + (i32.ne + (local.tee $2 + (i32.load offset=8 + (local.get $6) + ) ) - (call $_abort) - ) - (br_if $do-once51 - (i32.eq - (i32.load offset=12 - (local.get $3) + (local.tee $0 + (i32.add + (i32.shl + (local.get $1) + (i32.const 3) + ) + (i32.const 216) ) - (local.get $6) ) ) - (call $_abort) - ) - ) - (if - (i32.eq - (local.get $2) - (local.get $3) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (i32.load - (i32.const 176) + (block $do-once51 + (if + (i32.lt_u + (local.get $2) + (local.get $4) ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (call $_abort) + ) + (br_if $do-once51 + (i32.eq + (i32.load offset=12 + (local.get $2) ) - (i32.const -1) + (local.get $6) ) ) + (call $_abort) ) - (br $label$break$L331) ) - ) - (if - (i32.eq - (local.get $0) - (local.get $2) - ) - (local.set $15 - (i32.add + (if + (i32.eq (local.get $2) - (i32.const 8) + (local.get $3) + ) + (block + (i32.store + (i32.const 176) + (i32.and + (i32.load + (i32.const 176) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) + ) + ) + ) + (br $label$break$L331) ) ) - (block $do-once53 - (if - (i32.lt_u - (local.get $2) - (local.get $4) + (if + (i32.eq + (local.get $0) + (local.get $3) + ) + (local.set $15 + (i32.add + (local.get $3) + (i32.const 8) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) + (block $do-once53 + (if + (i32.lt_u + (local.get $3) + (local.get $4) ) - (local.get $6) + (call $_abort) ) - (block - (local.set $15 - (local.get $0) + (local.set $0 + (i32.add + (local.get $3) + (i32.const 8) ) - (br $do-once53) ) + (if + (i32.eq + (i32.load offset=8 + (local.get $3) + ) + (local.get $6) + ) + (block + (local.set $15 + (local.get $0) + ) + (br $do-once53) + ) + ) + (call $_abort) ) - (call $_abort) ) - ) - (i32.store offset=12 - (local.get $3) - (local.get $2) - ) - (i32.store - (local.get $15) - (local.get $3) - ) - ) - (block - (local.set $5 - (i32.load offset=24 - (local.get $6) + (i32.store offset=12 + (local.get $2) + (local.get $3) + ) + (i32.store + (local.get $15) + (local.get $2) ) ) - (if - (i32.eq - (local.tee $0 - (i32.load offset=12 - (local.get $6) - ) + (block + (local.set $5 + (i32.load offset=24 + (local.get $6) ) - (local.get $6) ) - (block $do-once55 - (if - (i32.eqz - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.tee $3 - (i32.add - (local.get $6) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) - ) + (if + (i32.eq + (local.tee $0 + (i32.load offset=12 + (local.get $6) ) ) - (block - (br_if $do-once55 - (i32.eqz - (local.tee $1 - (i32.load - (local.get $3) - ) + (local.get $6) + ) + (block $do-once55 + (local.set $0 + (i32.add + (local.tee $2 + (i32.add + (local.get $6) + (i32.const 16) ) ) - ) - (local.set $0 - (local.get $3) + (i32.const 4) ) ) - ) - (loop $while-in58 (if - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 20) - ) + (i32.eqz + (local.tee $1 + (i32.load offset=4 + (local.get $2) ) ) ) (block - (local.set $1 - (local.get $3) + (br_if $do-once55 + (i32.eqz + (local.tee $1 + (i32.load offset=16 + (local.get $6) + ) + ) + ) ) (local.set $0 (local.get $2) ) - (br $while-in58) ) ) - (if - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 16) + (loop $while-in58 + (if + (local.tee $2 + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 20) + ) ) ) ) + (block + (local.set $1 + (local.get $2) + ) + (local.set $0 + (local.get $3) + ) + (br $while-in58) + ) ) - (block - (local.set $1 - (local.get $3) + (if + (local.tee $2 + (i32.load + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + ) ) - (local.set $0 - (local.get $2) + (block + (local.set $1 + (local.get $2) + ) + (local.set $0 + (local.get $3) + ) + (br $while-in58) ) - (br $while-in58) ) ) - ) - (if - (i32.lt_u - (local.get $0) - (local.get $4) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (local.get $0) - (i32.const 0) - ) - (local.set $8 - (local.get $1) + (local.get $4) ) - ) - ) - ) - (block - (if - (i32.lt_u - (local.tee $2 - (i32.load offset=8 - (local.get $6) + (call $_abort) + (block + (i32.store + (local.get $0) + (i32.const 0) ) - ) - (local.get $4) - ) - (call $_abort) - ) - (if - (i32.ne - (local.get $6) - (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 12) - ) + (local.set $11 + (local.get $1) ) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load + (block + (if + (i32.lt_u (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) + (i32.load offset=8 + (local.get $6) ) ) + (local.get $4) ) - (local.get $6) + (call $_abort) ) - (block - (i32.store - (local.get $3) - (local.get $0) + (if + (i32.ne + (local.get $6) + (i32.load offset=12 + (local.get $1) + ) ) - (i32.store - (local.get $1) - (local.get $2) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=8 + (local.get $0) + ) + (local.get $6) ) - (local.set $8 - (local.get $0) + (block + (i32.store offset=12 + (local.get $1) + (local.get $0) + ) + (i32.store offset=8 + (local.get $0) + (local.get $1) + ) + (local.set $11 + (local.get $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (br_if $label$break$L331 - (i32.eqz - (local.get $5) + (br_if $label$break$L331 + (i32.eqz + (local.get $5) + ) ) - ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (i32.shl - (local.tee $1 - (i32.load offset=28 - (local.get $6) + (if + (i32.eq + (i32.load + (local.tee $0 + (i32.add + (i32.shl + (local.tee $1 + (i32.load offset=28 + (local.get $6) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) + (local.get $6) ) - (local.get $6) - ) - (block $do-once59 - (i32.store - (local.get $0) - (local.get $8) - ) - (br_if $do-once59 - (local.get $8) + (block $do-once59 + (i32.store + (local.get $0) + (local.get $11) + ) + (br_if $do-once59 + (local.get $11) + ) + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (local.get $1) + ) + (i32.const -1) + ) + ) + ) + (br $label$break$L331) ) - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) + (block + (if + (i32.lt_u + (local.get $5) + (i32.load + (i32.const 192) + ) ) - (i32.xor - (i32.shl - (i32.const 1) - (local.get $1) + (call $_abort) + ) + (if + (i32.eq + (i32.load offset=16 + (local.get $5) ) - (i32.const -1) + (local.get $6) + ) + (i32.store offset=16 + (local.get $5) + (local.get $11) + ) + (i32.store offset=20 + (local.get $5) + (local.get $11) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (local.get $11) ) ) ) - (br $label$break$L331) ) - (block - (if - (i32.lt_u - (local.get $5) + (if + (i32.lt_u + (local.get $11) + (local.tee $0 (i32.load (i32.const 192) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $5) - (i32.const 16) - ) - ) - ) + (call $_abort) + ) + (i32.store + (i32.add + (local.get $11) + (i32.const 24) + ) + (local.get $5) + ) + (if + (local.tee $1 + (i32.load offset=16 (local.get $6) ) - (i32.store - (local.get $0) - (local.get $8) - ) - (i32.store offset=20 - (local.get $5) - (local.get $8) - ) ) - (br_if $label$break$L331 - (i32.eqz - (local.get $8) + (if + (i32.lt_u + (local.get $1) + (local.get $0) ) - ) - ) - ) - (if - (i32.lt_u - (local.get $8) - (local.tee $1 - (i32.load - (i32.const 192) + (call $_abort) + (block + (i32.store + (i32.add + (local.get $11) + (i32.const 16) + ) + (local.get $1) + ) + (i32.store offset=24 + (local.get $1) + (local.get $11) + ) ) ) ) - (call $_abort) - ) - (i32.store offset=24 - (local.get $8) - (local.get $5) - ) - (if - (local.tee $3 - (i32.load + (br_if $label$break$L331 + (i32.eqz (local.tee $0 - (i32.add - (local.get $6) - (i32.const 16) + (i32.load offset=4 + (i32.add + (local.get $6) + (i32.const 16) + ) ) ) ) ) (if (i32.lt_u - (local.get $3) - (local.get $1) + (local.get $0) + (i32.load + (i32.const 192) + ) ) (call $_abort) (block - (i32.store offset=16 - (local.get $8) - (local.get $3) + (i32.store + (i32.add + (local.get $11) + (i32.const 20) + ) + (local.get $0) ) (i32.store offset=24 - (local.get $3) - (local.get $8) - ) - ) - ) - ) - (br_if $label$break$L331 - (i32.eqz - (local.tee $0 - (i32.load offset=4 (local.get $0) + (local.get $11) ) ) ) ) - (if - (i32.lt_u - (local.get $0) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) - (block - (i32.store offset=20 - (local.get $8) - (local.get $0) - ) - (i32.store offset=24 - (local.get $0) - (local.get $8) - ) - ) - ) ) ) - ) - (local.set $7 + (local.set $7 + (i32.add + (local.get $7) + (local.get $12) + ) + ) (i32.add - (local.get $7) - (local.get $10) + (local.get $6) + (local.get $12) ) ) - (i32.add - (local.get $6) - (local.get $10) - ) + (local.get $6) ) - (local.get $6) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.and - (i32.load - (local.get $0) + (i32.and + (i32.load + (local.get $0) + ) + (i32.const -2) ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (local.get $9) - (i32.or - (local.get $7) - (i32.const 1) ) - ) - (i32.store - (i32.add - (local.get $7) - (local.get $9) + (i32.store offset=4 + (local.get $8) + (i32.or + (local.get $7) + (i32.const 1) + ) ) - (local.get $7) - ) - (local.set $0 - (i32.shr_u + (i32.store + (i32.add + (local.get $7) + (local.get $8) + ) (local.get $7) - (i32.const 3) ) - ) - (if - (i32.lt_u - (local.get $7) - (i32.const 256) + (local.set $0 + (i32.shr_u + (local.get $7) + (i32.const 3) + ) ) - (block - (local.set $3 - (i32.add - (i32.shl - (local.get $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (local.get $7) + (i32.const 256) ) - (if - (i32.and - (local.tee $1 - (i32.load - (i32.const 176) - ) - ) - (local.tee $0 + (block + (local.set $2 + (i32.add (i32.shl - (i32.const 1) (local.get $0) + (i32.const 3) ) + (i32.const 216) ) ) - (block $do-once63 - (if - (i32.ge_u - (local.tee $0 - (i32.load - (local.tee $1 - (i32.add - (local.get $3) - (i32.const 8) - ) - ) - ) - ) + (if + (i32.and + (local.tee $1 (i32.load - (i32.const 192) + (i32.const 176) ) ) - (block - (local.set $16 - (local.get $1) - ) - (local.set $11 + (local.tee $0 + (i32.shl + (i32.const 1) (local.get $0) ) - (br $do-once63) ) ) - (call $_abort) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $0) - (local.get $1) + (block $do-once63 + (local.set $1 + (i32.add + (local.get $2) + (i32.const 8) + ) ) + (if + (i32.ge_u + (local.tee $0 + (i32.load offset=8 + (local.get $2) + ) + ) + (i32.load + (i32.const 192) + ) + ) + (block + (local.set $16 + (local.get $1) + ) + (local.set $9 + (local.get $0) + ) + (br $do-once63) + ) + ) + (call $_abort) ) - (local.set $16 - (i32.add - (local.get $3) - (i32.const 8) + (block + (i32.store + (i32.const 176) + (i32.or + (local.get $0) + (local.get $1) + ) + ) + (local.set $16 + (i32.add + (local.get $2) + (i32.const 8) + ) + ) + (local.set $9 + (local.get $2) ) ) - (local.set $11 - (local.get $3) + ) + (i32.store + (local.get $16) + (local.get $8) + ) + (i32.store + (i32.add + (local.get $9) + (i32.const 12) ) + (local.get $8) ) + (i32.store offset=8 + (local.get $8) + (local.get $9) + ) + (i32.store offset=12 + (local.get $8) + (local.get $2) + ) + (br $do-once48) ) - (i32.store - (local.get $16) - (local.get $9) - ) - (i32.store offset=12 - (local.get $11) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $11) - ) - (i32.store offset=12 - (local.get $9) - (local.get $3) - ) - (br $do-once48) ) - ) - (local.set $3 - (i32.add - (i32.shl - (local.tee $2 - (if (result i32) - (local.tee $0 - (i32.shr_u - (local.get $7) - (i32.const 8) - ) - ) + (local.set $2 + (i32.add + (i32.shl + (local.tee $3 (if (result i32) - (i32.gt_u - (local.get $7) - (i32.const 16777215) + (local.tee $0 + (i32.shr_u + (local.get $7) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.tee $1 - (i32.and - (i32.shr_u - (i32.add - (local.get $0) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $7) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.tee $1 + (i32.and + (i32.shr_u + (i32.add + (local.get $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $3 - (i32.and - (i32.shr_u - (i32.add - (local.tee $0 - (i32.shl - (local.get $0) - (local.get $2) + (local.set $2 + (i32.and + (i32.shr_u + (i32.add + (local.tee $0 + (i32.shl + (local.get $0) + (local.get $3) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $7) - (i32.add - (local.tee $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $7) + (i32.add + (local.tee $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (local.get $1) + (i32.or + (local.get $1) + (local.get $3) + ) (local.get $2) ) - (local.get $3) ) - ) - (i32.shr_u - (i32.shl - (local.get $0) - (local.get $3) + (i32.shr_u + (i32.shl + (local.get $0) + (local.get $2) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $0) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $9) - (local.get $2) - ) - (i32.store offset=4 - (local.tee $0 + (i32.store offset=28 + (local.get $8) + (local.get $3) + ) + (i32.store offset=4 (i32.add - (local.get $9) + (local.get $8) (i32.const 16) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (local.get $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $1 - (i32.load - (i32.const 180) + (i32.store offset=16 + (local.get $8) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $1 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $0 - (i32.shl - (i32.const 1) - (local.get $2) + (local.tee $0 + (i32.shl + (i32.const 1) + (local.get $3) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $0) - (local.get $1) - ) - ) - (i32.store - (local.get $3) - (local.get $9) - ) - (i32.store offset=24 - (local.get $9) - (local.get $3) - ) - (i32.store offset=12 - (local.get $9) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $9) - ) - (br $do-once48) - ) - ) - (local.set $2 - (i32.shl - (local.get $7) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (local.get $2) - (i32.const 1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $0) + (local.get $1) ) ) - (i32.eq + (i32.store (local.get $2) - (i32.const 31) + (local.get $8) ) + (i32.store offset=24 + (local.get $8) + (local.get $2) + ) + (i32.store offset=12 + (local.get $8) + (local.get $8) + ) + (i32.store offset=8 + (local.get $8) + (local.get $8) + ) + (br $do-once48) ) ) - ) - (local.set $0 - (i32.load - (local.get $3) - ) - ) - (block $__rjto$7 - (block $__rjti$7 - (loop $while-in68 - (br_if $__rjti$7 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $0) - ) - (i32.const -8) + (local.set $3 + (i32.shl + (local.get $7) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $3) + (i32.const 1) ) - (local.get $7) ) - ) - (local.set $3 - (i32.shl - (local.get $2) - (i32.const 1) + (i32.eq + (local.get $3) + (i32.const 31) ) ) - (if - (local.tee $1 - (i32.load - (local.tee $2 - (i32.add + ) + ) + (local.set $0 + (i32.load + (local.get $2) + ) + ) + (block $__rjto$7 + (block $__rjti$7 + (loop $while-in68 + (br_if $__rjti$7 + (i32.eq + (i32.and + (i32.load (i32.add (local.get $0) - (i32.const 16) + (i32.const 4) ) - (i32.shl - (i32.shr_u - (local.get $2) - (i32.const 31) + ) + (i32.const -8) + ) + (local.get $7) + ) + ) + (local.set $2 + (i32.shl + (local.get $3) + (i32.const 1) + ) + ) + (if + (local.tee $1 + (i32.load + (local.tee $3 + (i32.add + (i32.add + (local.get $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $3) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $3 + (local.get $2) + ) + (local.set $0 + (local.get $1) + ) + (br $while-in68) + ) ) + ) + (if + (i32.lt_u + (local.get $3) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) (block - (local.set $2 + (i32.store (local.get $3) + (local.get $8) ) - (local.set $0 - (local.get $1) + (i32.store offset=24 + (local.get $8) + (local.get $0) + ) + (i32.store offset=12 + (local.get $8) + (local.get $8) + ) + (i32.store offset=8 + (local.get $8) + (local.get $8) ) - (br $while-in68) + (br $do-once48) ) ) + (br $__rjto$7) ) (if - (i32.lt_u - (local.get $2) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $2 + (i32.load offset=8 + (local.get $0) + ) + ) + (local.tee $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $0) + (local.get $1) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (local.get $2) - (local.get $9) + (local.get $8) ) - (i32.store offset=24 - (local.get $9) + (i32.store offset=8 (local.get $0) - ) - (i32.store offset=12 - (local.get $9) - (local.get $9) + (local.get $8) ) (i32.store offset=8 - (local.get $9) - (local.get $9) + (local.get $8) + (local.get $2) ) - (br $do-once48) - ) - ) - (br $__rjto$7) - ) - (if - (i32.and - (i32.ge_u - (local.tee $2 - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $8) + (local.get $0) ) - (local.tee $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $8) + (i32.const 0) ) ) - (i32.ge_u - (local.get $0) - (local.get $1) - ) - ) - (block - (i32.store offset=12 - (local.get $2) - (local.get $9) - ) - (i32.store - (local.get $3) - (local.get $9) - ) - (i32.store offset=8 - (local.get $9) - (local.get $2) - ) - (i32.store offset=12 - (local.get $9) - (local.get $0) - ) - (i32.store offset=24 - (local.get $9) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (return - (i32.add - (local.get $12) - (i32.const 8) + (return + (i32.add + (local.get $10) + (i32.const 8) + ) ) ) ) ) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.le_u - (local.tee $2 - (i32.load - (local.get $4) + (loop $while-in70 + (block $while-out69 + (if + (i32.le_u + (local.tee $3 + (i32.load + (local.get $4) + ) ) + (local.get $5) ) - (local.get $5) - ) - (br_if $while-out69 - (i32.gt_u - (local.tee $2 - (i32.add - (local.get $2) - (i32.load offset=4 - (local.get $4) + (br_if $while-out69 + (i32.gt_u + (local.tee $3 + (i32.add + (local.get $3) + (i32.load + (i32.add + (local.get $4) + (i32.const 4) + ) + ) ) ) + (local.get $5) ) - (local.get $5) ) ) - ) - (local.set $4 - (i32.load offset=8 - (local.get $4) + (local.set $4 + (i32.load + (i32.add + (local.get $4) + (i32.const 8) + ) + ) ) + (br $while-in70) ) - (br $while-in70) ) - ) - (local.set $11 - (i32.add - (local.tee $4 - (i32.add - (local.get $2) - (i32.const -47) + (local.set $9 + (i32.add + (local.tee $4 + (i32.add + (local.get $3) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (local.set $8 - (i32.add - (local.tee $10 - (select - (local.get $5) - (local.tee $4 - (i32.add - (local.get $4) - (select - (i32.and - (i32.sub - (i32.const 0) - (local.get $11) + (local.set $6 + (i32.add + (local.tee $11 + (select + (local.get $5) + (local.tee $4 + (i32.add + (local.get $4) + (select + (i32.and + (i32.sub + (i32.const 0) + (local.get $9) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $9) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $11) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (local.get $4) - (local.tee $11 + (i32.lt_u + (local.get $4) (i32.add (local.get $5) (i32.const 16) @@ -12014,791 +11970,790 @@ ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 200) - (local.tee $6 - (i32.add - (local.tee $4 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $4 - (i32.add - (local.get $1) - (i32.const 8) + (i32.store + (i32.const 200) + (local.tee $9 + (i32.add + (local.tee $4 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $4 + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $4) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $4) - (i32.const 7) ) ) + (local.get $1) ) - (local.get $1) ) ) - ) - (i32.store - (i32.const 188) - (local.tee $4 - (i32.sub - (i32.add - (local.get $3) - (i32.const -40) + (i32.store + (i32.const 188) + (local.tee $4 + (i32.sub + (i32.add + (local.get $2) + (i32.const -40) + ) + (local.get $4) ) + ) + ) + (i32.store offset=4 + (local.get $9) + (i32.or (local.get $4) + (i32.const 1) ) ) - ) - (i32.store offset=4 - (local.get $6) - (i32.or - (local.get $4) - (i32.const 1) + (i32.store offset=4 + (i32.add + (local.get $4) + (local.get $9) + ) + (i32.const 40) ) - ) - (i32.store offset=4 - (i32.add - (local.get $4) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + (i32.store offset=4 + (local.get $11) + (i32.const 27) + ) + (i32.store offset=8 + (local.get $11) + (i32.load + (i32.const 624) + ) + ) + (i32.store offset=4 (local.get $6) + (i32.load + (i32.const 628) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=8 + (local.get $6) + (i32.load + (i32.const 632) + ) ) - ) - (i32.store - (local.tee $4 - (i32.add - (local.get $10) - (i32.const 4) + (i32.store offset=12 + (local.get $6) + (i32.load + (i32.const 636) ) ) - (i32.const 27) - ) - (i32.store - (local.get $8) - (i32.load + (i32.store (i32.const 624) + (local.get $1) ) - ) - (i32.store offset=4 - (local.get $8) - (i32.load + (i32.store (i32.const 628) + (local.get $2) ) - ) - (i32.store offset=8 - (local.get $8) - (i32.load - (i32.const 632) - ) - ) - (i32.store offset=12 - (local.get $8) - (i32.load + (i32.store (i32.const 636) + (i32.const 0) ) - ) - (i32.store - (i32.const 624) - (local.get $1) - ) - (i32.store - (i32.const 628) - (local.get $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 632) - (local.get $8) - ) - (local.set $1 - (i32.add - (local.get $10) - (i32.const 24) - ) - ) - (loop $while-in72 (i32.store - (local.tee $1 - (i32.add - (local.get $1) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 632) + (local.get $6) ) - (br_if $while-in72 - (i32.lt_u - (i32.add - (local.get $1) - (i32.const 4) - ) - (local.get $2) + (local.set $1 + (i32.add + (local.get $11) + (i32.const 24) ) ) - ) - (if - (i32.ne - (local.get $5) - (local.get $10) - ) - (block + (loop $while-in72 (i32.store - (local.get $4) - (i32.and - (i32.load - (local.get $4) + (local.tee $1 + (i32.add + (local.get $1) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (local.get $5) - (i32.or - (local.tee $6 - (i32.sub - (local.get $10) - (local.get $5) - ) + (br_if $while-in72 + (i32.lt_u + (i32.add + (local.get $1) + (i32.const 4) ) - (i32.const 1) + (local.get $3) ) ) - (i32.store - (local.get $10) - (local.get $6) - ) - (local.set $1 - (i32.shr_u - (local.get $6) - (i32.const 3) - ) + ) + (if + (i32.ne + (local.get $5) + (local.get $11) ) - (if - (i32.lt_u - (local.get $6) - (i32.const 256) + (block + (i32.store offset=4 + (local.get $11) + (i32.and + (i32.load offset=4 + (local.get $11) + ) + (i32.const -2) + ) ) - (block - (local.set $2 - (i32.add - (i32.shl - (local.get $1) - (i32.const 3) + (i32.store offset=4 + (local.get $5) + (i32.or + (local.tee $9 + (i32.sub + (local.get $11) + (local.get $5) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (local.tee $3 - (i32.load - (i32.const 176) - ) - ) - (local.tee $1 + ) + (i32.store + (local.get $11) + (local.get $9) + ) + (local.set $1 + (i32.shr_u + (local.get $9) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (local.get $9) + (i32.const 256) + ) + (block + (local.set $3 + (i32.add (i32.shl - (i32.const 1) (local.get $1) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (local.tee $1 + (i32.and + (local.tee $2 (i32.load - (local.tee $3 - (i32.add - (local.get $2) - (i32.const 8) + (i32.const 176) + ) + ) + (local.tee $1 + (i32.shl + (i32.const 1) + (local.get $1) + ) + ) + ) + (block + (local.set $2 + (i32.add + (local.get $3) + (i32.const 8) + ) + ) + (if + (i32.lt_u + (local.tee $1 + (i32.load offset=8 + (local.get $3) ) ) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) + (block + (local.set $17 + (local.get $2) + ) + (local.set $7 + (local.get $1) + ) ) - ) - (i32.load - (i32.const 192) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (local.get $1) + (local.get $2) + ) + ) (local.set $17 - (local.get $3) + (i32.add + (local.get $3) + (i32.const 8) + ) ) (local.set $7 - (local.get $1) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (local.get $1) (local.get $3) ) ) - (local.set $17 - (i32.add - (local.get $2) - (i32.const 8) - ) - ) - (local.set $7 - (local.get $2) + ) + (i32.store + (local.get $17) + (local.get $5) + ) + (i32.store + (i32.add + (local.get $7) + (i32.const 12) ) + (local.get $5) ) + (i32.store offset=8 + (local.get $5) + (local.get $7) + ) + (i32.store offset=12 + (local.get $5) + (local.get $3) + ) + (br $do-once40) ) - (i32.store - (local.get $17) - (local.get $5) - ) - (i32.store offset=12 - (local.get $7) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $7) - ) - (i32.store offset=12 - (local.get $5) - (local.get $2) - ) - (br $do-once40) ) - ) - (local.set $2 - (i32.add - (i32.shl - (local.tee $4 - (if (result i32) - (local.tee $1 - (i32.shr_u - (local.get $6) - (i32.const 8) - ) - ) + (local.set $3 + (i32.add + (i32.shl + (local.tee $4 (if (result i32) - (i32.gt_u - (local.get $6) - (i32.const 16777215) + (local.tee $1 + (i32.shr_u + (local.get $9) + (i32.const 8) + ) ) - (i32.const 31) - (block (result i32) - (local.set $4 - (i32.and - (i32.shr_u - (i32.add - (local.tee $1 - (i32.shl - (local.get $1) - (local.tee $3 - (i32.and - (i32.shr_u - (i32.add - (local.get $1) - (i32.const 1048320) + (if (result i32) + (i32.gt_u + (local.get $9) + (i32.const 16777215) + ) + (i32.const 31) + (block (result i32) + (local.set $4 + (i32.and + (i32.shr_u + (i32.add + (local.tee $1 + (i32.shl + (local.get $1) + (local.tee $2 + (i32.and + (i32.shr_u + (i32.add + (local.get $1) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) - ) - (local.set $2 - (i32.and - (i32.shr_u - (i32.add - (local.tee $1 - (i32.shl - (local.get $1) - (local.get $4) + (local.set $3 + (i32.and + (i32.shr_u + (i32.add + (local.tee $1 + (i32.shl + (local.get $1) + (local.get $4) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) - ) - (i32.or - (i32.and - (i32.shr_u - (local.get $6) - (i32.add - (local.tee $1 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (local.get $9) + (i32.add + (local.tee $1 + (i32.add + (i32.sub + (i32.const 14) (i32.or + (i32.or + (local.get $2) + (local.get $4) + ) (local.get $3) - (local.get $4) ) - (local.get $2) ) - ) - (i32.shr_u - (i32.shl - (local.get $1) - (local.get $2) + (i32.shr_u + (i32.shl + (local.get $1) + (local.get $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (local.get $1) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (local.get $1) - (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (local.get $5) - (local.get $4) - ) - (i32.store offset=20 - (local.get $5) - (i32.const 0) - ) - (i32.store - (local.get $11) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (local.tee $3 - (i32.load - (i32.const 180) + (i32.store offset=28 + (local.get $5) + (local.get $4) + ) + (i32.store offset=20 + (local.get $5) + (i32.const 0) + ) + (i32.store offset=16 + (local.get $5) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (local.tee $2 + (i32.load + (i32.const 180) + ) ) - ) - (local.tee $1 - (i32.shl - (i32.const 1) - (local.get $4) + (local.tee $1 + (i32.shl + (i32.const 1) + (local.get $4) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (local.get $1) + (block + (i32.store + (i32.const 180) + (i32.or + (local.get $1) + (local.get $2) + ) + ) + (i32.store + (local.get $3) + (local.get $5) + ) + (i32.store offset=24 + (local.get $5) (local.get $3) ) + (i32.store offset=12 + (local.get $5) + (local.get $5) + ) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once40) ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=24 - (local.get $5) - (local.get $2) - ) - (i32.store offset=12 - (local.get $5) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $5) - ) - (br $do-once40) ) - ) - (local.set $4 - (i32.shl - (local.get $6) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (local.set $4 + (i32.shl + (local.get $9) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (local.get $4) + (i32.const 1) + ) + ) + (i32.eq (local.get $4) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (local.get $4) - (i32.const 31) - ) ) ) - ) - (local.set $1 - (i32.load - (local.get $2) + (local.set $1 + (i32.load + (local.get $3) + ) ) - ) - (block $__rjto$9 - (block $__rjti$9 - (loop $while-in74 - (br_if $__rjti$9 - (i32.eq - (i32.and - (i32.load offset=4 - (local.get $1) + (block $__rjto$9 + (block $__rjti$9 + (loop $while-in74 + (br_if $__rjti$9 + (i32.eq + (i32.and + (i32.load + (i32.add + (local.get $1) + (i32.const 4) + ) + ) + (i32.const -8) ) - (i32.const -8) + (local.get $9) ) - (local.get $6) ) - ) - (local.set $2 - (i32.shl - (local.get $4) - (i32.const 1) + (local.set $3 + (i32.shl + (local.get $4) + (i32.const 1) + ) ) - ) - (if - (local.tee $3 - (i32.load - (local.tee $4 - (i32.add + (if + (local.tee $2 + (i32.load + (local.tee $4 (i32.add - (local.get $1) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (local.get $4) - (i32.const 31) + (i32.add + (local.get $1) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (local.get $4) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (local.set $4 + (local.get $3) + ) + (local.set $1 + (local.get $2) + ) + (br $while-in74) + ) ) + ) + (if + (i32.lt_u + (local.get $4) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) (block - (local.set $4 - (local.get $2) + (i32.store + (local.get $4) + (local.get $5) ) - (local.set $1 - (local.get $3) + (i32.store offset=24 + (local.get $5) + (local.get $1) + ) + (i32.store offset=12 + (local.get $5) + (local.get $5) ) - (br $while-in74) + (i32.store offset=8 + (local.get $5) + (local.get $5) + ) + (br $do-once40) ) ) + (br $__rjto$9) ) (if - (i32.lt_u - (local.get $4) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (local.tee $3 + (i32.load offset=8 + (local.get $1) + ) + ) + (local.tee $2 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (local.get $1) + (local.get $2) ) ) - (call $_abort) (block - (i32.store - (local.get $4) + (i32.store offset=12 + (local.get $3) (local.get $5) ) - (i32.store offset=24 - (local.get $5) + (i32.store offset=8 (local.get $1) - ) - (i32.store offset=12 - (local.get $5) (local.get $5) ) (i32.store offset=8 (local.get $5) - (local.get $5) + (local.get $3) ) - (br $do-once40) - ) - ) - (br $__rjto$9) - ) - (if - (i32.and - (i32.ge_u - (local.tee $4 - (i32.load - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (local.get $5) + (local.get $1) ) - (local.tee $3 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (local.get $5) + (i32.const 0) ) ) - (i32.ge_u - (local.get $1) - (local.get $3) - ) - ) - (block - (i32.store offset=12 - (local.get $4) - (local.get $5) - ) - (i32.store - (local.get $2) - (local.get $5) - ) - (i32.store offset=8 - (local.get $5) - (local.get $4) - ) - (i32.store offset=12 - (local.get $5) - (local.get $1) - ) - (i32.store offset=24 - (local.get $5) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (local.tee $2 - (i32.load - (i32.const 192) + (block + (if + (i32.or + (i32.eqz + (local.tee $3 + (i32.load + (i32.const 192) + ) ) ) + (i32.lt_u + (local.get $1) + (local.get $3) + ) ) - (i32.lt_u + (i32.store + (i32.const 192) (local.get $1) - (local.get $2) ) ) (i32.store - (i32.const 192) + (i32.const 624) (local.get $1) ) - ) - (i32.store - (i32.const 624) - (local.get $1) - ) - (i32.store - (i32.const 628) - (local.get $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) + (i32.store + (i32.const 628) + (local.get $2) ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (local.set $2 - (i32.const 0) - ) - (loop $while-in43 - (i32.store offset=12 - (local.tee $4 - (i32.add - (i32.shl - (local.get $2) - (i32.const 3) - ) - (i32.const 216) - ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) + (i32.load + (i32.const 648) ) - (local.get $4) ) - (i32.store offset=8 - (local.get $4) - (local.get $4) + (i32.store + (i32.const 208) + (i32.const -1) ) - (br_if $while-in43 - (i32.ne - (local.tee $2 + (local.set $3 + (i32.const 0) + ) + (loop $while-in43 + (i32.store offset=12 + (local.tee $4 (i32.add - (local.get $2) - (i32.const 1) + (i32.shl + (local.get $3) + (i32.const 3) + ) + (i32.const 216) ) ) - (i32.const 32) + (local.get $4) + ) + (i32.store offset=8 + (local.get $4) + (local.get $4) + ) + (br_if $while-in43 + (i32.ne + (local.tee $3 + (i32.add + (local.get $3) + (i32.const 1) + ) + ) + (i32.const 32) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.tee $4 - (i32.add - (local.tee $2 - (select - (i32.and - (i32.sub - (i32.const 0) - (local.tee $2 - (i32.add - (local.get $1) - (i32.const 8) + (i32.store + (i32.const 200) + (local.tee $4 + (i32.add + (local.tee $3 + (select + (i32.and + (i32.sub + (i32.const 0) + (local.tee $3 + (i32.add + (local.get $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (local.get $3) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (local.get $2) - (i32.const 7) ) ) + (local.get $1) ) - (local.get $1) ) ) - ) - (i32.store - (i32.const 188) - (local.tee $1 - (i32.sub - (i32.add + (i32.store + (i32.const 188) + (local.tee $1 + (i32.sub + (i32.add + (local.get $2) + (i32.const -40) + ) (local.get $3) - (i32.const -40) ) - (local.get $2) ) ) - ) - (i32.store offset=4 - (local.get $4) - (i32.or - (local.get $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (local.get $1) + (i32.store offset=4 (local.get $4) + (i32.or + (local.get $1) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (i32.add + (local.get $1) + (local.get $4) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) ) ) - ) - (br_if $folding-inner0 - (i32.gt_u - (local.tee $1 - (i32.load - (i32.const 188) + (br_if $folding-inner0 + (i32.gt_u + (local.tee $1 + (i32.load + (i32.const 188) + ) ) + (local.get $0) ) - (local.get $0) ) ) + (i32.store + (call $___errno_location) + (i32.const 12) + ) + (return + (i32.const 0) + ) ) (i32.store - (call $___errno_location) - (i32.const 12) - ) - (return - (i32.const 0) - ) - ) - (i32.store - (i32.const 188) - (local.tee $3 - (i32.sub - (local.get $1) - (local.get $0) + (i32.const 188) + (local.tee $2 + (i32.sub + (local.get $1) + (local.get $0) + ) ) ) - ) - (i32.store - (i32.const 200) - (local.tee $1 - (i32.add - (local.tee $2 - (i32.load - (i32.const 200) + (i32.store + (i32.const 200) + (local.tee $1 + (i32.add + (local.tee $3 + (i32.load + (i32.const 200) + ) ) + (local.get $0) ) - (local.get $0) ) ) - ) - (i32.store offset=4 - (local.get $1) - (i32.or - (local.get $3) - (i32.const 1) + (i32.store offset=4 + (local.get $1) + (i32.or + (local.get $2) + (i32.const 1) + ) ) - ) - (i32.store offset=4 - (local.get $2) - (i32.or - (local.get $0) - (i32.const 3) + (i32.store offset=4 + (local.get $3) + (i32.or + (local.get $0) + (i32.const 3) + ) ) ) (i32.add - (local.get $2) + (local.get $3) (i32.const 8) ) ) @@ -12842,7 +12797,7 @@ ) (if (i32.eq - (local.tee $5 + (local.tee $4 (i32.and (local.tee $8 (i32.load @@ -12876,17 +12831,17 @@ (i32.const 1) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) (block $do-once (if (i32.eqz - (local.get $5) + (local.get $4) ) (return) ) @@ -12923,14 +12878,9 @@ (if (i32.ne (i32.and - (local.tee $3 - (i32.load - (local.tee $2 - (i32.add - (local.get $7) - (i32.const 4) - ) - ) + (local.tee $2 + (i32.load offset=4 + (local.get $7) ) ) (i32.const 3) @@ -12938,10 +12888,10 @@ (i32.const 3) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -12951,10 +12901,10 @@ (i32.const 184) (local.get $0) ) - (i32.store - (local.get $2) + (i32.store offset=4 + (local.get $7) (i32.and - (local.get $3) + (local.get $2) (i32.const -2) ) ) @@ -12975,7 +12925,7 @@ (return) ) ) - (local.set $5 + (local.set $4 (i32.shr_u (local.get $8) (i32.const 3) @@ -12994,15 +12944,15 @@ ) (if (i32.ne - (local.tee $2 + (local.tee $3 (i32.load offset=8 (local.get $1) ) ) - (local.tee $3 + (local.tee $2 (i32.add (i32.shl - (local.get $5) + (local.get $4) (i32.const 3) ) (i32.const 216) @@ -13012,7 +12962,7 @@ (block (if (i32.lt_u - (local.get $2) + (local.get $3) (local.get $11) ) (call $_abort) @@ -13021,7 +12971,7 @@ (i32.ne (local.get $1) (i32.load offset=12 - (local.get $2) + (local.get $3) ) ) (call $_abort) @@ -13030,7 +12980,7 @@ ) (if (i32.eq - (local.get $2) + (local.get $3) (local.get $6) ) (block @@ -13043,16 +12993,16 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) (i32.const -1) ) ) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13060,10 +13010,10 @@ ) (if (i32.eq - (local.get $3) + (local.get $2) (local.get $6) ) - (local.set $4 + (local.set $5 (i32.add (local.get $6) (i32.const 8) @@ -13077,50 +13027,51 @@ ) (call $_abort) ) + (local.set $2 + (i32.add + (local.get $6) + (i32.const 8) + ) + ) (if (i32.eq - (i32.load - (local.tee $3 - (i32.add - (local.get $6) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $6) ) (local.get $1) ) - (local.set $4 - (local.get $3) + (local.set $5 + (local.get $2) ) (call $_abort) ) ) ) (i32.store offset=12 - (local.get $2) + (local.get $3) (local.get $6) ) (i32.store - (local.get $4) - (local.get $2) + (local.get $5) + (local.get $3) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) ) ) - (local.set $12 + (local.set $10 (i32.load offset=24 (local.get $1) ) ) (if (i32.eq - (local.tee $4 + (local.tee $5 (i32.load offset=12 (local.get $1) ) @@ -13128,35 +13079,36 @@ (local.get $1) ) (block $do-once0 + (local.set $5 + (i32.add + (local.tee $8 + (i32.add + (local.get $1) + (i32.const 16) + ) + ) + (i32.const 4) + ) + ) (if (i32.eqz - (local.tee $5 - (i32.load - (local.tee $4 - (i32.add - (local.tee $8 - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) + (local.tee $4 + (i32.load offset=4 + (local.get $8) ) ) ) (block (br_if $do-once0 (i32.eqz - (local.tee $5 - (i32.load - (local.get $8) + (local.tee $4 + (i32.load offset=16 + (local.get $1) ) ) ) ) - (local.set $4 + (local.set $5 (local.get $8) ) ) @@ -13165,20 +13117,20 @@ (if (local.tee $8 (i32.load - (local.tee $10 + (local.tee $12 (i32.add - (local.get $5) + (local.get $4) (i32.const 20) ) ) ) ) (block - (local.set $5 + (local.set $4 (local.get $8) ) - (local.set $4 - (local.get $10) + (local.set $5 + (local.get $12) ) (br $while-in) ) @@ -13186,20 +13138,20 @@ (if (local.tee $8 (i32.load - (local.tee $10 + (local.tee $12 (i32.add - (local.get $5) + (local.get $4) (i32.const 16) ) ) ) ) (block - (local.set $5 + (local.set $4 (local.get $8) ) - (local.set $4 - (local.get $10) + (local.set $5 + (local.get $12) ) (br $while-in) ) @@ -13207,17 +13159,17 @@ ) (if (i32.lt_u - (local.get $4) + (local.get $5) (local.get $11) ) (call $_abort) (block (i32.store - (local.get $4) + (local.get $5) (i32.const 0) ) (local.set $6 - (local.get $5) + (local.get $4) ) ) ) @@ -13225,7 +13177,7 @@ (block (if (i32.lt_u - (local.tee $10 + (local.tee $4 (i32.load offset=8 (local.get $1) ) @@ -13237,40 +13189,30 @@ (if (i32.ne (local.get $1) - (i32.load - (local.tee $8 - (i32.add - (local.get $10) - (i32.const 12) - ) - ) + (i32.load offset=12 + (local.get $4) ) ) (call $_abort) ) (if (i32.eq - (i32.load - (local.tee $5 - (i32.add - (local.get $4) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $5) ) (local.get $1) ) (block - (i32.store - (local.get $8) + (i32.store offset=12 (local.get $4) + (local.get $5) ) - (i32.store + (i32.store offset=8 (local.get $5) - (local.get $10) + (local.get $4) ) (local.set $6 - (local.get $4) + (local.get $5) ) ) (call $_abort) @@ -13278,15 +13220,15 @@ ) ) (if - (local.get $12) + (local.get $10) (block (if (i32.eq (i32.load - (local.tee $4 + (local.tee $5 (i32.add (i32.shl - (local.tee $5 + (local.tee $4 (i32.load offset=28 (local.get $1) ) @@ -13301,7 +13243,7 @@ ) (block (i32.store - (local.get $4) + (local.get $5) (local.get $6) ) (if @@ -13318,16 +13260,16 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) (i32.const -1) ) ) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13337,7 +13279,7 @@ (block (if (i32.lt_u - (local.get $12) + (local.get $10) (i32.load (i32.const 192) ) @@ -13346,22 +13288,17 @@ ) (if (i32.eq - (i32.load - (local.tee $4 - (i32.add - (local.get $12) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $10) ) (local.get $1) ) - (i32.store - (local.get $4) + (i32.store offset=16 + (local.get $10) (local.get $6) ) (i32.store offset=20 - (local.get $12) + (local.get $10) (local.get $6) ) ) @@ -13370,10 +13307,10 @@ (local.get $6) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) (br $do-once) @@ -13392,85 +13329,92 @@ ) (call $_abort) ) - (i32.store offset=24 - (local.get $6) - (local.get $12) + (i32.store + (i32.add + (local.get $6) + (i32.const 24) + ) + (local.get $10) ) (if - (local.tee $8 - (i32.load - (local.tee $4 - (i32.add - (local.get $1) - (i32.const 16) - ) - ) + (local.tee $4 + (i32.load offset=16 + (local.get $1) ) ) (if (i32.lt_u - (local.get $8) + (local.get $4) (local.get $5) ) (call $_abort) (block - (i32.store offset=16 - (local.get $6) - (local.get $8) + (i32.store + (i32.add + (local.get $6) + (i32.const 16) + ) + (local.get $4) ) (i32.store offset=24 - (local.get $8) + (local.get $4) (local.get $6) ) ) ) ) (if - (local.tee $4 + (local.tee $5 (i32.load offset=4 - (local.get $4) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) (if (i32.lt_u - (local.get $4) + (local.get $5) (i32.load (i32.const 192) ) ) (call $_abort) (block - (i32.store offset=20 - (local.get $6) - (local.get $4) + (i32.store + (i32.add + (local.get $6) + (i32.const 20) + ) + (local.get $5) ) (i32.store offset=24 - (local.get $4) + (local.get $5) (local.get $6) ) - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) ) ) (block - (local.set $2 + (local.set $3 (local.get $1) ) - (local.set $3 + (local.set $2 (local.get $0) ) ) @@ -13479,7 +13423,7 @@ ) (if (i32.ge_u - (local.get $2) + (local.get $3) (local.get $7) ) (call $_abort) @@ -13487,14 +13431,9 @@ (if (i32.eqz (i32.and - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $7) - (i32.const 4) - ) - ) + (local.tee $0 + (i32.load offset=4 + (local.get $7) ) ) (i32.const 1) @@ -13504,21 +13443,24 @@ ) (if (i32.and - (local.get $1) + (local.get $0) (i32.const 2) ) (block - (i32.store - (local.get $0) + (i32.store offset=4 + (local.get $7) (i32.and - (local.get $1) + (local.get $0) (i32.const -2) ) ) - (i32.store offset=4 - (local.get $2) - (i32.or + (i32.store + (i32.add (local.get $3) + (i32.const 4) + ) + (i32.or + (local.get $2) (i32.const 1) ) ) @@ -13527,7 +13469,7 @@ (local.get $2) (local.get $3) ) - (local.get $3) + (local.get $2) ) ) (block @@ -13546,16 +13488,19 @@ (i32.load (i32.const 188) ) - (local.get $3) + (local.get $2) ) ) ) (i32.store (i32.const 200) - (local.get $2) + (local.get $3) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or (local.get $0) (i32.const 1) @@ -13563,7 +13508,7 @@ ) (if (i32.ne - (local.get $2) + (local.get $3) (i32.load (i32.const 196) ) @@ -13596,16 +13541,19 @@ (i32.load (i32.const 184) ) - (local.get $3) + (local.get $2) ) ) ) (i32.store (i32.const 196) - (local.get $2) + (local.get $3) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or (local.get $0) (i32.const 1) @@ -13614,36 +13562,36 @@ (i32.store (i32.add (local.get $0) - (local.get $2) + (local.get $3) ) (local.get $0) ) (return) ) ) - (local.set $5 + (local.set $4 (i32.add (i32.and - (local.get $1) + (local.get $0) (i32.const -8) ) - (local.get $3) + (local.get $2) ) ) - (local.set $3 + (local.set $2 (i32.shr_u - (local.get $1) + (local.get $0) (i32.const 3) ) ) (block $do-once4 (if (i32.lt_u - (local.get $1) + (local.get $0) (i32.const 256) ) (block - (local.set $4 + (local.set $5 (i32.load offset=12 (local.get $7) ) @@ -13658,7 +13606,7 @@ (local.tee $0 (i32.add (i32.shl - (local.get $3) + (local.get $2) (i32.const 3) ) (i32.const 216) @@ -13689,7 +13637,7 @@ (if (i32.eq (local.get $1) - (local.get $4) + (local.get $5) ) (block (i32.store @@ -13701,7 +13649,7 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $3) + (local.get $2) ) (i32.const -1) ) @@ -13713,33 +13661,34 @@ (if (i32.eq (local.get $0) - (local.get $4) + (local.get $5) ) (local.set $14 (i32.add - (local.get $4) + (local.get $5) (i32.const 8) ) ) (block (if (i32.lt_u - (local.get $4) + (local.get $5) (i32.load (i32.const 192) ) ) (call $_abort) ) + (local.set $0 + (i32.add + (local.get $5) + (i32.const 8) + ) + ) (if (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $4) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $5) ) (local.get $7) ) @@ -13752,7 +13701,7 @@ ) (i32.store offset=12 (local.get $1) - (local.get $4) + (local.get $5) ) (i32.store (local.get $14) @@ -13775,30 +13724,31 @@ (local.get $7) ) (block $do-once6 + (local.set $0 + (i32.add + (local.tee $1 + (i32.add + (local.get $7) + (i32.const 16) + ) + ) + (i32.const 4) + ) + ) (if (i32.eqz - (local.tee $3 - (i32.load - (local.tee $0 - (i32.add - (local.tee $1 - (i32.add - (local.get $7) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) + (local.tee $2 + (i32.load offset=4 + (local.get $1) ) ) ) (block (br_if $do-once6 (i32.eqz - (local.tee $3 - (i32.load - (local.get $1) + (local.tee $2 + (i32.load offset=16 + (local.get $7) ) ) ) @@ -13812,20 +13762,20 @@ (if (local.tee $1 (i32.load - (local.tee $4 + (local.tee $5 (i32.add - (local.get $3) + (local.get $2) (i32.const 20) ) ) ) ) (block - (local.set $3 + (local.set $2 (local.get $1) ) (local.set $0 - (local.get $4) + (local.get $5) ) (br $while-in9) ) @@ -13833,20 +13783,20 @@ (if (local.tee $1 (i32.load - (local.tee $4 + (local.tee $5 (i32.add - (local.get $3) + (local.get $2) (i32.const 16) ) ) ) ) (block - (local.set $3 + (local.set $2 (local.get $1) ) (local.set $0 - (local.get $4) + (local.get $5) ) (br $while-in9) ) @@ -13866,7 +13816,7 @@ (i32.const 0) ) (local.set $9 - (local.get $3) + (local.get $2) ) ) ) @@ -13874,7 +13824,7 @@ (block (if (i32.lt_u - (local.tee $4 + (local.tee $2 (i32.load offset=8 (local.get $7) ) @@ -13888,37 +13838,27 @@ (if (i32.ne (local.get $7) - (i32.load - (local.tee $1 - (i32.add - (local.get $4) - (i32.const 12) - ) - ) + (i32.load offset=12 + (local.get $2) ) ) (call $_abort) ) (if (i32.eq - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (i32.load offset=8 + (local.get $0) ) (local.get $7) ) (block - (i32.store - (local.get $1) + (i32.store offset=12 + (local.get $2) (local.get $0) ) - (i32.store - (local.get $3) - (local.get $4) + (i32.store offset=8 + (local.get $0) + (local.get $2) ) (local.set $9 (local.get $0) @@ -13937,7 +13877,7 @@ (local.tee $0 (i32.add (i32.shl - (local.tee $3 + (local.tee $2 (i32.load offset=28 (local.get $7) ) @@ -13969,7 +13909,7 @@ (i32.xor (i32.shl (i32.const 1) - (local.get $3) + (local.get $2) ) (i32.const -1) ) @@ -13991,18 +13931,13 @@ ) (if (i32.eq - (i32.load - (local.tee $0 - (i32.add - (local.get $6) - (i32.const 16) - ) - ) + (i32.load offset=16 + (local.get $6) ) (local.get $7) ) - (i32.store - (local.get $0) + (i32.store offset=16 + (local.get $6) (local.get $9) ) (i32.store offset=20 @@ -14020,7 +13955,7 @@ (if (i32.lt_u (local.get $9) - (local.tee $3 + (local.tee $0 (i32.load (i32.const 192) ) @@ -14028,34 +13963,35 @@ ) (call $_abort) ) - (i32.store offset=24 - (local.get $9) + (i32.store + (i32.add + (local.get $9) + (i32.const 24) + ) (local.get $6) ) (if - (local.tee $1 - (i32.load - (local.tee $0 - (i32.add - (local.get $7) - (i32.const 16) - ) - ) + (local.tee $2 + (i32.load offset=16 + (local.get $7) ) ) (if (i32.lt_u - (local.get $1) - (local.get $3) + (local.get $2) + (local.get $0) ) (call $_abort) (block - (i32.store offset=16 - (local.get $9) - (local.get $1) + (i32.store + (i32.add + (local.get $9) + (i32.const 16) + ) + (local.get $2) ) (i32.store offset=24 - (local.get $1) + (local.get $2) (local.get $9) ) ) @@ -14064,7 +14000,10 @@ (if (local.tee $0 (i32.load offset=4 - (local.get $0) + (i32.add + (local.get $7) + (i32.const 16) + ) ) ) (if @@ -14076,8 +14015,11 @@ ) (call $_abort) (block - (i32.store offset=20 - (local.get $9) + (i32.store + (i32.add + (local.get $9) + (i32.const 20) + ) (local.get $0) ) (i32.store offset=24 @@ -14092,49 +14034,52 @@ ) ) ) - (i32.store offset=4 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 4) + ) (i32.or - (local.get $5) + (local.get $4) (i32.const 1) ) ) (i32.store (i32.add - (local.get $2) - (local.get $5) + (local.get $3) + (local.get $4) ) - (local.get $5) + (local.get $4) ) - (local.set $3 + (local.set $2 (if (result i32) (i32.eq (i32.load (i32.const 196) ) - (local.get $2) + (local.get $3) ) (block (i32.store (i32.const 184) - (local.get $5) + (local.get $4) ) (return) ) - (local.get $5) + (local.get $4) ) ) ) ) (local.set $0 (i32.shr_u - (local.get $3) + (local.get $2) (i32.const 3) ) ) (if (i32.lt_u - (local.get $3) + (local.get $2) (i32.const 256) ) (block @@ -14149,7 +14094,7 @@ ) (if (i32.and - (local.tee $3 + (local.tee $2 (i32.load (i32.const 176) ) @@ -14161,29 +14106,32 @@ ) ) ) - (if - (i32.lt_u - (local.tee $0 - (i32.load - (local.tee $3 - (i32.add - (local.get $1) - (i32.const 8) - ) - ) - ) - ) - (i32.load - (i32.const 192) + (block + (local.set $2 + (i32.add + (local.get $1) + (i32.const 8) ) ) - (call $_abort) - (block - (local.set $15 - (local.get $3) + (if + (i32.lt_u + (local.tee $0 + (i32.load offset=8 + (local.get $1) + ) + ) + (i32.load + (i32.const 192) + ) ) - (local.set $13 - (local.get $0) + (call $_abort) + (block + (local.set $15 + (local.get $2) + ) + (local.set $13 + (local.get $0) + ) ) ) ) @@ -14192,7 +14140,7 @@ (i32.const 176) (i32.or (local.get $0) - (local.get $3) + (local.get $2) ) ) (local.set $15 @@ -14208,42 +14156,51 @@ ) (i32.store (local.get $15) - (local.get $2) + (local.get $3) ) - (i32.store offset=12 - (local.get $13) - (local.get $2) + (i32.store + (i32.add + (local.get $13) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) (local.get $13) ) - (i32.store offset=12 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) (local.get $1) ) (return) ) ) - (local.set $4 + (local.set $5 (i32.add (i32.shl - (local.tee $5 + (local.tee $4 (if (result i32) (local.tee $0 (i32.shr_u - (local.get $3) + (local.get $2) (i32.const 8) ) ) (if (result i32) (i32.gt_u - (local.get $3) + (local.get $2) (i32.const 16777215) ) (i32.const 31) (block (result i32) - (local.set $5 + (local.set $4 (i32.and (i32.shr_u (i32.add @@ -14271,14 +14228,14 @@ (i32.const 4) ) ) - (local.set $4 + (local.set $5 (i32.and (i32.shr_u (i32.add (local.tee $0 (i32.shl (local.get $0) - (local.get $5) + (local.get $4) ) ) (i32.const 245760) @@ -14291,7 +14248,7 @@ (i32.or (i32.and (i32.shr_u - (local.get $3) + (local.get $2) (i32.add (local.tee $0 (i32.add @@ -14300,15 +14257,15 @@ (i32.or (i32.or (local.get $1) - (local.get $5) + (local.get $4) ) - (local.get $4) + (local.get $5) ) ) (i32.shr_u (i32.shl (local.get $0) - (local.get $4) + (local.get $5) ) (i32.const 15) ) @@ -14334,16 +14291,25 @@ (i32.const 480) ) ) - (i32.store offset=28 - (local.get $2) - (local.get $5) + (i32.store + (i32.add + (local.get $3) + (i32.const 28) + ) + (local.get $4) ) - (i32.store offset=20 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 20) + ) (i32.const 0) ) - (i32.store offset=16 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 16) + ) (i32.const 0) ) (if @@ -14356,25 +14322,25 @@ (local.tee $0 (i32.shl (i32.const 1) - (local.get $5) + (local.get $4) ) ) ) (block $do-once12 - (local.set $5 + (local.set $4 (i32.shl - (local.get $3) + (local.get $2) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (local.get $5) + (local.get $4) (i32.const 1) ) ) (i32.eq - (local.get $5) + (local.get $4) (i32.const 31) ) ) @@ -14382,7 +14348,7 @@ ) (local.set $0 (i32.load - (local.get $4) + (local.get $5) ) ) (block $__rjto$1 @@ -14391,24 +14357,27 @@ (br_if $__rjti$1 (i32.eq (i32.and - (i32.load offset=4 - (local.get $0) + (i32.load + (i32.add + (local.get $0) + (i32.const 4) + ) ) (i32.const -8) ) - (local.get $3) + (local.get $2) ) ) - (local.set $4 + (local.set $5 (i32.shl - (local.get $5) + (local.get $4) (i32.const 1) ) ) (if (local.tee $1 (i32.load - (local.tee $5 + (local.tee $4 (i32.add (i32.add (local.get $0) @@ -14416,7 +14385,7 @@ ) (i32.shl (i32.shr_u - (local.get $5) + (local.get $4) (i32.const 31) ) (i32.const 2) @@ -14426,8 +14395,8 @@ ) ) (block - (local.set $5 - (local.get $4) + (local.set $4 + (local.get $5) ) (local.set $0 (local.get $1) @@ -14438,7 +14407,7 @@ ) (if (i32.lt_u - (local.get $5) + (local.get $4) (i32.load (i32.const 192) ) @@ -14446,20 +14415,29 @@ (call $_abort) (block (i32.store - (local.get $5) - (local.get $2) + (local.get $4) + (local.get $3) ) - (i32.store offset=24 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) (local.get $0) ) - (i32.store offset=12 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $3) ) (br $do-once12) ) @@ -14469,17 +14447,12 @@ (if (i32.and (i32.ge_u - (local.tee $4 - (i32.load - (local.tee $1 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $1 + (i32.load offset=8 + (local.get $0) ) ) - (local.tee $3 + (local.tee $2 (i32.load (i32.const 192) ) @@ -14487,28 +14460,37 @@ ) (i32.ge_u (local.get $0) - (local.get $3) + (local.get $2) ) ) (block (i32.store offset=12 - (local.get $4) - (local.get $2) - ) - (i32.store (local.get $1) - (local.get $2) + (local.get $3) ) (i32.store offset=8 - (local.get $2) - (local.get $4) + (local.get $0) + (local.get $3) ) - (i32.store offset=12 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $1) + ) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) (local.get $0) ) - (i32.store offset=24 - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) (i32.const 0) ) ) @@ -14525,20 +14507,29 @@ ) ) (i32.store - (local.get $4) - (local.get $2) + (local.get $5) + (local.get $3) ) - (i32.store offset=24 - (local.get $2) - (local.get $4) + (i32.store + (i32.add + (local.get $3) + (i32.const 24) + ) + (local.get $5) ) - (i32.store offset=12 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 12) + ) + (local.get $3) ) - (i32.store offset=8 - (local.get $2) - (local.get $2) + (i32.store + (i32.add + (local.get $3) + (i32.const 8) + ) + (local.get $3) ) ) ) @@ -14563,7 +14554,7 @@ (loop $while-in17 (local.set $0 (i32.add - (local.tee $3 + (local.tee $2 (i32.load (local.get $0) ) @@ -14572,7 +14563,7 @@ ) ) (br_if $while-in17 - (local.get $3) + (local.get $2) ) ) (i32.store diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm index 6a67b7fc0..cf59a4baf 100644 --- a/test/memorygrowth.fromasm +++ b/test/memorygrowth.fromasm @@ -7687,9 +7687,7 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 i32) - (local.set $12 + (local.set $7 (global.get $r) ) (global.set $r @@ -7698,29 +7696,25 @@ (i32.const 48) ) ) - (local.set $9 + (local.set $11 (i32.add - (local.get $12) + (local.get $7) (i32.const 16) ) ) + (local.set $9 + (local.get $7) + ) (i32.store (local.tee $3 (i32.add - (local.tee $10 - (local.get $12) - ) + (local.get $7) (i32.const 32) ) ) - (local.tee $11 - (i32.load - (local.tee $7 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (local.tee $10 + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7728,15 +7722,10 @@ (local.get $3) (local.tee $8 (i32.sub - (i32.load - (local.tee $13 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (local.get $11) + (local.get $10) ) ) ) @@ -7754,7 +7743,7 @@ (i32.const 60) ) ) - (local.set $11 + (local.set $10 (i32.add (local.get $0) (i32.const 44) @@ -7788,24 +7777,24 @@ (local.get $0) ) (i32.store - (local.get $10) + (local.get $9) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $10) + (local.get $9) (local.get $5) ) (i32.store offset=8 - (local.get $10) + (local.get $9) (local.get $3) ) (local.set $8 (call $Pa (call $ya (i32.const 146) - (local.get $10) + (local.get $9) ) ) ) @@ -7815,24 +7804,24 @@ (local.get $8) ) (block (result i32) - (i32.store - (local.get $9) + (i32.store offset=16 + (local.get $7) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $9) + (local.get $11) (local.get $5) ) (i32.store offset=8 - (local.get $9) + (local.get $11) (local.get $3) ) (call $Pa (call $ya (i32.const 146) - (local.get $9) + (local.get $11) ) ) ) @@ -7852,10 +7841,10 @@ (i32.const 0) ) (block - (local.set $16 + (local.set $14 (local.get $5) ) - (local.set $17 + (local.set $15 (local.get $3) ) (local.set $1 @@ -7873,23 +7862,23 @@ (if (i32.gt_u (local.get $6) - (local.tee $14 + (local.tee $12 (i32.load offset=4 (local.get $5) ) ) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.set $4 @@ -7900,7 +7889,7 @@ (local.set $6 (i32.sub (local.get $6) - (local.get $14) + (local.get $12) ) ) (local.set $5 @@ -7923,12 +7912,12 @@ (i32.const 2) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.add (local.get $6) - (i32.load - (local.get $7) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7938,7 +7927,7 @@ ) ) (local.set $4 - (local.get $14) + (local.get $12) ) ) ) @@ -7964,7 +7953,7 @@ (br $while-in) ) ) - (local.set $15 + (local.set $13 (if (result i32) (i32.eq (local.get $1) @@ -7976,7 +7965,7 @@ (i32.add (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) (i32.load offset=48 @@ -7984,12 +7973,12 @@ ) ) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.get $4) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.get $2) @@ -8004,12 +7993,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -8023,26 +8012,26 @@ ) (if (result i32) (i32.eq - (local.get $17) + (local.get $15) (i32.const 2) ) (i32.const 0) (i32.sub (local.get $2) (i32.load offset=4 - (local.get $16) + (local.get $14) ) ) ) ) - (local.get $15) + (local.get $13) ) ) ) (global.set $r - (local.get $12) + (local.get $7) ) - (local.get $15) + (local.get $13) ) (func $Wa (; 16 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8579,26 +8568,13 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) (if (i32.gt_u - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $4 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) (block @@ -8619,8 +8595,8 @@ ) ) (if - (i32.load - (local.get $3) + (i32.load offset=20 + (local.get $0) ) (local.set $1 (i32.const 3) @@ -8652,14 +8628,9 @@ ) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $3 + (i32.load offset=8 + (local.get $0) ) ) ) @@ -8668,7 +8639,7 @@ (local.get $0) (i32.sub (local.get $2) - (local.get $6) + (local.get $3) ) (i32.const 1) (i32.add @@ -8687,16 +8658,16 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $4) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) (i32.store @@ -8999,7 +8970,6 @@ (func $db (; 24 ;) (; has Stack IR ;) (local $0 i32) (local $1 i32) - (local $2 i32) (drop (i32.load offset=76 (local.tee $0 @@ -9033,13 +9003,8 @@ (if (i32.lt_u (local.tee $1 - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) ) (i32.load offset=16 @@ -9047,8 +9012,8 @@ ) ) (block - (i32.store - (local.get $2) + (i32.store offset=20 + (local.get $0) (i32.add (local.get $1) (i32.const 1) @@ -9182,8 +9147,7 @@ ) (func $Ua (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local.set $4 + (local.set $3 (global.get $r) ) (global.set $r @@ -9193,9 +9157,7 @@ ) ) (i32.store - (local.tee $3 - (local.get $4) - ) + (local.get $3) (i32.load offset=60 (local.get $0) ) @@ -9210,11 +9172,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -9233,19 +9193,19 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $3) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $3) ) ) ) (global.set $r - (local.get $4) + (local.get $3) ) (local.get $0) ) diff --git a/test/memorygrowth.fromasm.clamp b/test/memorygrowth.fromasm.clamp index 6a67b7fc0..cf59a4baf 100644 --- a/test/memorygrowth.fromasm.clamp +++ b/test/memorygrowth.fromasm.clamp @@ -7687,9 +7687,7 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 i32) - (local.set $12 + (local.set $7 (global.get $r) ) (global.set $r @@ -7698,29 +7696,25 @@ (i32.const 48) ) ) - (local.set $9 + (local.set $11 (i32.add - (local.get $12) + (local.get $7) (i32.const 16) ) ) + (local.set $9 + (local.get $7) + ) (i32.store (local.tee $3 (i32.add - (local.tee $10 - (local.get $12) - ) + (local.get $7) (i32.const 32) ) ) - (local.tee $11 - (i32.load - (local.tee $7 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (local.tee $10 + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7728,15 +7722,10 @@ (local.get $3) (local.tee $8 (i32.sub - (i32.load - (local.tee $13 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (local.get $11) + (local.get $10) ) ) ) @@ -7754,7 +7743,7 @@ (i32.const 60) ) ) - (local.set $11 + (local.set $10 (i32.add (local.get $0) (i32.const 44) @@ -7788,24 +7777,24 @@ (local.get $0) ) (i32.store - (local.get $10) + (local.get $9) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $10) + (local.get $9) (local.get $5) ) (i32.store offset=8 - (local.get $10) + (local.get $9) (local.get $3) ) (local.set $8 (call $Pa (call $ya (i32.const 146) - (local.get $10) + (local.get $9) ) ) ) @@ -7815,24 +7804,24 @@ (local.get $8) ) (block (result i32) - (i32.store - (local.get $9) + (i32.store offset=16 + (local.get $7) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $9) + (local.get $11) (local.get $5) ) (i32.store offset=8 - (local.get $9) + (local.get $11) (local.get $3) ) (call $Pa (call $ya (i32.const 146) - (local.get $9) + (local.get $11) ) ) ) @@ -7852,10 +7841,10 @@ (i32.const 0) ) (block - (local.set $16 + (local.set $14 (local.get $5) ) - (local.set $17 + (local.set $15 (local.get $3) ) (local.set $1 @@ -7873,23 +7862,23 @@ (if (i32.gt_u (local.get $6) - (local.tee $14 + (local.tee $12 (i32.load offset=4 (local.get $5) ) ) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.set $4 @@ -7900,7 +7889,7 @@ (local.set $6 (i32.sub (local.get $6) - (local.get $14) + (local.get $12) ) ) (local.set $5 @@ -7923,12 +7912,12 @@ (i32.const 2) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.add (local.get $6) - (i32.load - (local.get $7) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7938,7 +7927,7 @@ ) ) (local.set $4 - (local.get $14) + (local.get $12) ) ) ) @@ -7964,7 +7953,7 @@ (br $while-in) ) ) - (local.set $15 + (local.set $13 (if (result i32) (i32.eq (local.get $1) @@ -7976,7 +7965,7 @@ (i32.add (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) (i32.load offset=48 @@ -7984,12 +7973,12 @@ ) ) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.get $4) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.get $2) @@ -8004,12 +7993,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -8023,26 +8012,26 @@ ) (if (result i32) (i32.eq - (local.get $17) + (local.get $15) (i32.const 2) ) (i32.const 0) (i32.sub (local.get $2) (i32.load offset=4 - (local.get $16) + (local.get $14) ) ) ) ) - (local.get $15) + (local.get $13) ) ) ) (global.set $r - (local.get $12) + (local.get $7) ) - (local.get $15) + (local.get $13) ) (func $Wa (; 16 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8579,26 +8568,13 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) (if (i32.gt_u - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $4 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) (block @@ -8619,8 +8595,8 @@ ) ) (if - (i32.load - (local.get $3) + (i32.load offset=20 + (local.get $0) ) (local.set $1 (i32.const 3) @@ -8652,14 +8628,9 @@ ) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $3 + (i32.load offset=8 + (local.get $0) ) ) ) @@ -8668,7 +8639,7 @@ (local.get $0) (i32.sub (local.get $2) - (local.get $6) + (local.get $3) ) (i32.const 1) (i32.add @@ -8687,16 +8658,16 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $4) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) (i32.store @@ -8999,7 +8970,6 @@ (func $db (; 24 ;) (; has Stack IR ;) (local $0 i32) (local $1 i32) - (local $2 i32) (drop (i32.load offset=76 (local.tee $0 @@ -9033,13 +9003,8 @@ (if (i32.lt_u (local.tee $1 - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) ) (i32.load offset=16 @@ -9047,8 +9012,8 @@ ) ) (block - (i32.store - (local.get $2) + (i32.store offset=20 + (local.get $0) (i32.add (local.get $1) (i32.const 1) @@ -9182,8 +9147,7 @@ ) (func $Ua (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local.set $4 + (local.set $3 (global.get $r) ) (global.set $r @@ -9193,9 +9157,7 @@ ) ) (i32.store - (local.tee $3 - (local.get $4) - ) + (local.get $3) (i32.load offset=60 (local.get $0) ) @@ -9210,11 +9172,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -9233,19 +9193,19 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $3) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $3) ) ) ) (global.set $r - (local.get $4) + (local.get $3) ) (local.get $0) ) diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise index 075614f71..2ffcd0c51 100644 --- a/test/memorygrowth.fromasm.imprecise +++ b/test/memorygrowth.fromasm.imprecise @@ -7685,9 +7685,7 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 i32) - (local.set $12 + (local.set $7 (global.get $r) ) (global.set $r @@ -7696,29 +7694,25 @@ (i32.const 48) ) ) - (local.set $9 + (local.set $11 (i32.add - (local.get $12) + (local.get $7) (i32.const 16) ) ) + (local.set $9 + (local.get $7) + ) (i32.store (local.tee $3 (i32.add - (local.tee $10 - (local.get $12) - ) + (local.get $7) (i32.const 32) ) ) - (local.tee $11 - (i32.load - (local.tee $7 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (local.tee $10 + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7726,15 +7720,10 @@ (local.get $3) (local.tee $8 (i32.sub - (i32.load - (local.tee $13 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (local.get $11) + (local.get $10) ) ) ) @@ -7752,7 +7741,7 @@ (i32.const 60) ) ) - (local.set $11 + (local.set $10 (i32.add (local.get $0) (i32.const 44) @@ -7786,24 +7775,24 @@ (local.get $0) ) (i32.store - (local.get $10) + (local.get $9) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $10) + (local.get $9) (local.get $5) ) (i32.store offset=8 - (local.get $10) + (local.get $9) (local.get $3) ) (local.set $8 (call $Pa (call $ya (i32.const 146) - (local.get $10) + (local.get $9) ) ) ) @@ -7813,24 +7802,24 @@ (local.get $8) ) (block (result i32) - (i32.store - (local.get $9) + (i32.store offset=16 + (local.get $7) (i32.load (local.get $1) ) ) (i32.store offset=4 - (local.get $9) + (local.get $11) (local.get $5) ) (i32.store offset=8 - (local.get $9) + (local.get $11) (local.get $3) ) (call $Pa (call $ya (i32.const 146) - (local.get $9) + (local.get $11) ) ) ) @@ -7850,10 +7839,10 @@ (i32.const 0) ) (block - (local.set $15 + (local.set $13 (local.get $5) ) - (local.set $16 + (local.set $14 (local.get $3) ) (local.set $1 @@ -7871,23 +7860,23 @@ (if (i32.gt_u (local.get $6) - (local.tee $14 + (local.tee $12 (i32.load offset=4 (local.get $5) ) ) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.set $4 @@ -7898,7 +7887,7 @@ (local.set $6 (i32.sub (local.get $6) - (local.get $14) + (local.get $12) ) ) (local.set $5 @@ -7921,12 +7910,12 @@ (i32.const 2) ) (block - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.add (local.get $6) - (i32.load - (local.get $7) + (i32.load offset=28 + (local.get $0) ) ) ) @@ -7936,7 +7925,7 @@ ) ) (local.set $4 - (local.get $14) + (local.get $12) ) ) ) @@ -7963,7 +7952,7 @@ ) ) (global.set $r - (local.get $12) + (local.get $7) ) (if (result i32) (i32.eq @@ -7976,7 +7965,7 @@ (i32.add (local.tee $4 (i32.load - (local.get $11) + (local.get $10) ) ) (i32.load offset=48 @@ -7984,12 +7973,12 @@ ) ) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (local.get $4) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (local.get $4) ) (local.get $2) @@ -8004,12 +7993,12 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $7) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $13) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) (i32.store @@ -8026,16 +8015,16 @@ (i32.sub (local.get $2) (i32.load offset=4 - (local.get $15) + (local.get $13) ) ) (i32.eq - (local.get $16) + (local.get $14) (i32.const 2) ) ) ) - (local.get $17) + (local.get $15) ) ) ) @@ -8569,26 +8558,13 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) (if (i32.gt_u - (i32.load - (local.tee $3 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) - (i32.load - (local.tee $4 - (i32.add - (local.get $0) - (i32.const 28) - ) - ) + (i32.load offset=28 + (local.get $0) ) ) (block @@ -8609,8 +8585,8 @@ ) ) (if - (i32.load - (local.get $3) + (i32.load offset=20 + (local.get $0) ) (local.set $1 (i32.const 3) @@ -8642,14 +8618,9 @@ ) ) ) - (local.tee $6 - (i32.load - (local.tee $5 - (i32.add - (local.get $0) - (i32.const 8) - ) - ) + (local.tee $3 + (i32.load offset=8 + (local.get $0) ) ) ) @@ -8658,7 +8629,7 @@ (local.get $0) (i32.sub (local.get $2) - (local.get $6) + (local.get $3) ) (i32.const 1) (i32.add @@ -8677,16 +8648,16 @@ (local.get $0) (i32.const 0) ) - (i32.store - (local.get $4) + (i32.store offset=28 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $3) + (i32.store offset=20 + (local.get $0) (i32.const 0) ) - (i32.store - (local.get $5) + (i32.store offset=8 + (local.get $0) (i32.const 0) ) (i32.store @@ -9006,22 +8977,22 @@ (i32.add (select (i32.div_u - (local.tee $2 + (local.tee $1 (call $Wa - (local.tee $1 - (local.tee $3 + (local.tee $3 + (local.tee $2 (call $Za) ) ) (local.get $0) ) ) - (local.get $3) + (local.get $2) ) (i32.const 1) (i32.ne (local.get $1) - (local.get $2) + (local.get $3) ) ) (i32.const -1) @@ -9040,13 +9011,8 @@ (if (i32.lt_u (local.tee $1 - (i32.load - (local.tee $2 - (i32.add - (local.get $0) - (i32.const 20) - ) - ) + (i32.load offset=20 + (local.get $0) ) ) (i32.load offset=16 @@ -9054,8 +9020,8 @@ ) ) (block - (i32.store - (local.get $2) + (i32.store offset=20 + (local.get $0) (i32.add (local.get $1) (i32.const 1) @@ -9156,8 +9122,7 @@ ) (func $Ua (; 26 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local.set $4 + (local.set $3 (global.get $r) ) (global.set $r @@ -9167,9 +9132,7 @@ ) ) (i32.store - (local.tee $3 - (local.get $4) - ) + (local.get $3) (i32.load offset=60 (local.get $0) ) @@ -9184,11 +9147,9 @@ ) (i32.store offset=12 (local.get $3) - (local.tee $0 - (i32.add - (local.get $3) - (i32.const 20) - ) + (i32.add + (local.get $3) + (i32.const 20) ) ) (i32.store offset=16 @@ -9207,19 +9168,19 @@ (i32.const 0) ) (block (result i32) - (i32.store - (local.get $0) + (i32.store offset=20 + (local.get $3) (i32.const -1) ) (i32.const -1) ) - (i32.load - (local.get $0) + (i32.load offset=20 + (local.get $3) ) ) ) (global.set $r - (local.get $4) + (local.get $3) ) (local.get $0) ) diff --git a/test/passes/optimize-added-constants-propagate_low-memory-unused.txt b/test/passes/optimize-added-constants-propagate_low-memory-unused.txt new file mode 100644 index 000000000..6d823ed2b --- /dev/null +++ b/test/passes/optimize-added-constants-propagate_low-memory-unused.txt @@ -0,0 +1,410 @@ +(module + (type $0 (func)) + (type $1 (func (param i32))) + (type $2 (func (param i32) (result i32))) + (func $consts (; 0 ;) (type $0) + (drop + (i32.load + (i32.const 0) + ) + ) + (drop + (i32.load + (i32.const 1) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 1024) + ) + ) + (drop + (i32.load + (i32.const 0) + ) + ) + (drop + (i32.load + (i32.const 1) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 1024) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 1024) + ) + ) + (i32.store + (i32.const 1) + (i32.const 1) + ) + ) + (func $offsets (; 1 ;) (type $1) (param $x i32) + (drop + (i32.load offset=1 + (local.get $x) + ) + ) + (drop + (i32.load offset=8 + (local.get $x) + ) + ) + (drop + (i32.load offset=1023 + (local.get $x) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 1024) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 2048) + ) + ) + ) + (drop + (i32.load offset=4 + (local.get $x) + ) + ) + ) + (func $load-off-2 (; 2 ;) (type $2) (param $0 i32) (result i32) + (i32.store + (i32.const 6) + (local.get $0) + ) + (i32.store + (i32.const 6) + (local.get $0) + ) + (i32.store offset=7 + (local.get $0) + (local.get $0) + ) + (i32.store offset=9 + (local.get $0) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const -11) + (local.get $0) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (local.get $0) + (i32.const -13) + ) + (local.get $0) + ) + (i32.store offset=19 + (i32.const -15) + (local.get $0) + ) + (i32.store offset=21 + (i32.const -21) + (local.get $0) + ) + (i32.store + (i32.const 25) + (local.get $0) + ) + (i32.store + (i32.const -23) + (local.get $0) + ) + (drop + (i32.load + (i32.const 8) + ) + ) + (drop + (i32.load + (i32.const 8) + ) + ) + (drop + (i32.load offset=8 + (local.get $0) + ) + ) + (drop + (i32.load + (i32.const 10) + ) + ) + (i32.load offset=12 + (local.get $0) + ) + ) + (func $offset-constant (; 3 ;) (type $0) + (drop + (i32.load + (i32.const 10) + ) + ) + (drop + (i32.load + (i32.const 10) + ) + ) + (drop + (i32.load + (i32.const 20) + ) + ) + (drop + (i32.load + (i32.const 1024) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 100511) + ) + ) + ) + (func $offset-propagate-param (; 4 ;) (type $1) (param $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.const 1) + ) + ) + (drop + (i32.load offset=1 + (local.get $y) + ) + ) + ) + (func $offset-propagate (; 5 ;) (type $0) + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.const 1) + ) + ) + (drop + (i32.load offset=1 + (local.get $y) + ) + ) + ) + (func $offset-propagate2 (; 6 ;) (type $0) + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate3 (; 7 ;) (type $0) + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load offset=1 + (local.get $y) + ) + ) + ) + (func $offset-propagate4 (; 8 ;) (type $0) + (local $x i32) + (local $y i32) + (local.set $y + (i32.const -1) + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load offset=1 + (local.get $y) + ) + ) + ) + (func $offset-propagate5 (; 9 ;) (type $1) (param $z i32) + (local $x i32) + (local $y i32) + (if + (local.get $z) + (local.set $y + (i32.const -1) + ) + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate6 (; 10 ;) (type $1) (param $z i32) + (local $x i32) + (local $y i32) + (local.set $y + (local.get $z) + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (local.set $y + (i32.const -2) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate7 (; 11 ;) (type $1) (param $z i32) + (local $x i32) + (local $y i32) + (local.set $y + (local.get $z) + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (if + (i32.const 1) + (local.set $x + (i32.add + (i32.const 2) + (local.get $y) + ) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-realistic (; 12 ;) (type $1) (param $ptr i32) + (local $x i32) + (local $y i32) + (local $z i32) + (local.set $x + (i32.add + (local.get $ptr) + (i32.const 8) + ) + ) + (local.set $y + (i32.add + (local.get $ptr) + (i32.const 16) + ) + ) + (local.set $z + (i32.add + (local.get $ptr) + (i32.const 24) + ) + ) + (loop $l + (call $offset-realistic + (i32.load offset=8 + (local.get $ptr) + ) + ) + (call $offset-realistic + (i32.load offset=16 + (local.get $ptr) + ) + ) + (call $offset-realistic + (i32.load offset=16 + (local.get $ptr) + ) + ) + (i32.store offset=24 + (local.get $ptr) + (i32.add + (i32.load offset=24 + (local.get $ptr) + ) + (i32.const 1) + ) + ) + (br_if $l + (i32.load offset=24 + (local.get $ptr) + ) + ) + ) + ) +) diff --git a/test/passes/optimize-added-constants-propagate_low-memory-unused.wast b/test/passes/optimize-added-constants-propagate_low-memory-unused.wast new file mode 100644 index 000000000..4f549aa47 --- /dev/null +++ b/test/passes/optimize-added-constants-propagate_low-memory-unused.wast @@ -0,0 +1,415 @@ +(module + (func $consts + (drop + (i32.load (i32.const 0)) + ) + (drop + (i32.load (i32.const 1)) + ) + (drop + (i32.load (i32.const 1023)) + ) + (drop + (i32.load (i32.const 1024)) + ) + (drop + (i32.load offset=0 (i32.const 0)) + ) + (drop + (i32.load offset=1 (i32.const 0)) + ) + (drop + (i32.load offset=1023 (i32.const 0)) + ) + (drop + (i32.load offset=1024 (i32.const 0)) + ) + (drop + (i32.load offset=512 (i32.const 511)) + ) + (drop + (i32.load offset=512 (i32.const 512)) + ) + (i32.store (i32.const 1) (i32.const 1)) + ) + (func $offsets (param $x i32) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 1) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 8) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 1023) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 1024) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 2048) + ) + ) + ) + (drop + (i32.load + (i32.add + (i32.const 4) + (local.get $x) + ) + ) + ) + ) + (func $load-off-2 (param $0 i32) (result i32) + (i32.store offset=2 + (i32.add + (i32.const 1) + (i32.const 3) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const 3) + (i32.const 1) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (local.get $0) + (i32.const 5) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const 7) + (local.get $0) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const -11) ;; do not fold this! + (local.get $0) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (local.get $0) + (i32.const -13) ;; do not fold this! + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const -15) + (i32.const 17) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const -21) + (i32.const 19) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.const 23) + (local.get $0) + ) + (i32.store offset=2 + (i32.const -25) + (local.get $0) + ) + (drop + (i32.load offset=2 + (i32.add + (i32.const 2) + (i32.const 4) + ) + ) + ) + (drop + (i32.load offset=2 + (i32.add + (i32.const 4) + (i32.const 2) + ) + ) + ) + (drop + (i32.load offset=2 + (i32.add + (local.get $0) + (i32.const 6) + ) + ) + ) + (drop + (i32.load offset=2 + (i32.const 8) + ) + ) + (i32.load offset=2 + (i32.add + (i32.const 10) + (local.get $0) + ) + ) + ) + (func $offset-constant + (drop + (i32.load offset=10 + (i32.const 0) + ) + ) + (drop + (i32.load offset=0 + (i32.const 10) + ) + ) + (drop + (i32.load offset=10 + (i32.const 10) + ) + ) + (drop + (i32.load offset=512 + (i32.const 512) + ) + ) + (drop + (i32.load offset=512 + (i32.const 511) + ) + ) + (drop + (i32.load offset=511 + (i32.const 512) + ) + ) + (drop + (i32.load offset=99999 + (i32.const 512) + ) + ) + ) + (func $offset-propagate-param (param $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.const 1) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.const 1) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate2 + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate3 + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate4 + (local $x i32) + (local $y i32) + (local.set $y (i32.const -1)) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate5 (param $z i32) + (local $x i32) + (local $y i32) + (if (local.get $z) + (local.set $y (i32.const -1)) ;; y is not ssa + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate6 (param $z i32) + (local $x i32) + (local $y i32) + (local.set $y (local.get $z)) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (local.set $y (i32.const -2)) ;; y has another set, so not ssa + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate7 (param $z i32) + (local $x i32) + (local $y i32) + (local.set $y (local.get $z)) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (if (i32.const 1) + (local.set $x ;; x is not ssa + (i32.add + (i32.const 2) + (local.get $y) + ) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-realistic (param $ptr i32) + (local $x i32) + (local $y i32) + (local $z i32) + (local.set $x + (i32.add + (local.get $ptr) + (i32.const 8) + ) + ) + (local.set $y + (i32.add + (local.get $ptr) + (i32.const 16) + ) + ) + (local.set $z + (i32.add + (local.get $ptr) + (i32.const 24) + ) + ) + (loop $l + (call $offset-realistic + (i32.load + (local.get $x) + ) + ) + (call $offset-realistic + (i32.load + (local.get $y) + ) + ) + (call $offset-realistic + (i32.load + (local.get $y) + ) + ) + (i32.store + (local.get $z) + (i32.add + (i32.load + (local.get $z) + ) + (i32.const 1) + ) + ) + (br_if $l + (i32.load + (local.get $z) + ) + ) + ) + ) +) + diff --git a/test/passes/optimize-added-constants_low-memory-unused.txt b/test/passes/optimize-added-constants_low-memory-unused.txt new file mode 100644 index 000000000..81f2ba216 --- /dev/null +++ b/test/passes/optimize-added-constants_low-memory-unused.txt @@ -0,0 +1,383 @@ +(module + (type $0 (func)) + (type $1 (func (param i32))) + (type $2 (func (param i32) (result i32))) + (func $consts (; 0 ;) (type $0) + (drop + (i32.load + (i32.const 0) + ) + ) + (drop + (i32.load + (i32.const 1) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 1024) + ) + ) + (drop + (i32.load + (i32.const 0) + ) + ) + (drop + (i32.load + (i32.const 1) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 1024) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 1024) + ) + ) + (i32.store + (i32.const 1) + (i32.const 1) + ) + ) + (func $offsets (; 1 ;) (type $1) (param $x i32) + (drop + (i32.load offset=1 + (local.get $x) + ) + ) + (drop + (i32.load offset=8 + (local.get $x) + ) + ) + (drop + (i32.load offset=1023 + (local.get $x) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 1024) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 2048) + ) + ) + ) + (drop + (i32.load offset=4 + (local.get $x) + ) + ) + ) + (func $load-off-2 (; 2 ;) (type $2) (param $0 i32) (result i32) + (i32.store + (i32.const 6) + (local.get $0) + ) + (i32.store + (i32.const 6) + (local.get $0) + ) + (i32.store offset=7 + (local.get $0) + (local.get $0) + ) + (i32.store offset=9 + (local.get $0) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const -11) + (local.get $0) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (local.get $0) + (i32.const -13) + ) + (local.get $0) + ) + (i32.store offset=19 + (i32.const -15) + (local.get $0) + ) + (i32.store offset=21 + (i32.const -21) + (local.get $0) + ) + (i32.store + (i32.const 25) + (local.get $0) + ) + (i32.store + (i32.const -23) + (local.get $0) + ) + (drop + (i32.load + (i32.const 8) + ) + ) + (drop + (i32.load + (i32.const 8) + ) + ) + (drop + (i32.load offset=8 + (local.get $0) + ) + ) + (drop + (i32.load + (i32.const 10) + ) + ) + (i32.load offset=12 + (local.get $0) + ) + ) + (func $offset-constant (; 3 ;) (type $0) + (drop + (i32.load + (i32.const 10) + ) + ) + (drop + (i32.load + (i32.const 10) + ) + ) + (drop + (i32.load + (i32.const 20) + ) + ) + (drop + (i32.load + (i32.const 1024) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 1023) + ) + ) + (drop + (i32.load + (i32.const 100511) + ) + ) + ) + (func $offset-propagate-param (; 4 ;) (type $1) (param $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.const 1) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate (; 5 ;) (type $0) + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.const 1) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate2 (; 6 ;) (type $0) + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate3 (; 7 ;) (type $0) + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate4 (; 8 ;) (type $0) + (local $x i32) + (local $y i32) + (local.set $y + (i32.const -1) + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate5 (; 9 ;) (type $1) (param $z i32) + (local $x i32) + (local $y i32) + (if + (local.get $z) + (local.set $y + (i32.const -1) + ) + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate6 (; 10 ;) (type $1) (param $z i32) + (local $x i32) + (local $y i32) + (local.set $y + (local.get $z) + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (local.set $y + (i32.const -2) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-realistic (; 11 ;) (type $1) (param $ptr i32) + (local $x i32) + (local $y i32) + (local $z i32) + (local.set $x + (i32.add + (local.get $ptr) + (i32.const 8) + ) + ) + (local.set $y + (i32.add + (local.get $ptr) + (i32.const 16) + ) + ) + (local.set $z + (i32.add + (local.get $ptr) + (i32.const 24) + ) + ) + (loop $l + (call $offset-realistic + (i32.load + (local.get $x) + ) + ) + (call $offset-realistic + (i32.load + (local.get $y) + ) + ) + (call $offset-realistic + (i32.load + (local.get $y) + ) + ) + (i32.store + (local.get $z) + (i32.add + (i32.load + (local.get $z) + ) + (i32.const 1) + ) + ) + (br_if $l + (i32.load + (local.get $z) + ) + ) + ) + ) +) diff --git a/test/passes/optimize-added-constants_low-memory-unused.wast b/test/passes/optimize-added-constants_low-memory-unused.wast new file mode 100644 index 000000000..b31f80a25 --- /dev/null +++ b/test/passes/optimize-added-constants_low-memory-unused.wast @@ -0,0 +1,391 @@ +(module + (func $consts + (drop + (i32.load (i32.const 0)) + ) + (drop + (i32.load (i32.const 1)) + ) + (drop + (i32.load (i32.const 1023)) + ) + (drop + (i32.load (i32.const 1024)) + ) + (drop + (i32.load offset=0 (i32.const 0)) + ) + (drop + (i32.load offset=1 (i32.const 0)) + ) + (drop + (i32.load offset=1023 (i32.const 0)) + ) + (drop + (i32.load offset=1024 (i32.const 0)) + ) + (drop + (i32.load offset=512 (i32.const 511)) + ) + (drop + (i32.load offset=512 (i32.const 512)) + ) + (i32.store (i32.const 1) (i32.const 1)) + ) + (func $offsets (param $x i32) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 1) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 8) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 1023) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 1024) + ) + ) + ) + (drop + (i32.load + (i32.add + (local.get $x) + (i32.const 2048) + ) + ) + ) + (drop + (i32.load + (i32.add + (i32.const 4) + (local.get $x) + ) + ) + ) + ) + (func $load-off-2 (param $0 i32) (result i32) + (i32.store offset=2 + (i32.add + (i32.const 1) + (i32.const 3) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const 3) + (i32.const 1) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (local.get $0) + (i32.const 5) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const 7) + (local.get $0) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const -11) ;; do not fold this! + (local.get $0) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (local.get $0) + (i32.const -13) ;; do not fold this! + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const -15) + (i32.const 17) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.add + (i32.const -21) + (i32.const 19) + ) + (local.get $0) + ) + (i32.store offset=2 + (i32.const 23) + (local.get $0) + ) + (i32.store offset=2 + (i32.const -25) + (local.get $0) + ) + (drop + (i32.load offset=2 + (i32.add + (i32.const 2) + (i32.const 4) + ) + ) + ) + (drop + (i32.load offset=2 + (i32.add + (i32.const 4) + (i32.const 2) + ) + ) + ) + (drop + (i32.load offset=2 + (i32.add + (local.get $0) + (i32.const 6) + ) + ) + ) + (drop + (i32.load offset=2 + (i32.const 8) + ) + ) + (i32.load offset=2 + (i32.add + (i32.const 10) + (local.get $0) + ) + ) + ) + (func $offset-constant + (drop + (i32.load offset=10 + (i32.const 0) + ) + ) + (drop + (i32.load offset=0 + (i32.const 10) + ) + ) + (drop + (i32.load offset=10 + (i32.const 10) + ) + ) + (drop + (i32.load offset=512 + (i32.const 512) + ) + ) + (drop + (i32.load offset=512 + (i32.const 511) + ) + ) + (drop + (i32.load offset=511 + (i32.const 512) + ) + ) + (drop + (i32.load offset=99999 + (i32.const 512) + ) + ) + ) + (func $offset-propagate-param (param $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.const 1) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.const 1) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate2 + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (local.get $y) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate3 + (local $x i32) + (local $y i32) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate4 + (local $x i32) + (local $y i32) + (local.set $y (i32.const -1)) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate5 (param $z i32) + (local $x i32) + (local $y i32) + (if (local.get $z) + (local.set $y (i32.const -1)) + ) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-propagate6 (param $z i32) + (local $x i32) + (local $y i32) + (local.set $y (local.get $z)) + (local.set $x + (i32.add + (i32.const 1) + (local.get $y) + ) + ) + (local.set $y (i32.const -2)) + (drop + (i32.load + (local.get $x) + ) + ) + ) + (func $offset-realistic (param $ptr i32) + (local $x i32) + (local $y i32) + (local $z i32) + (local.set $x + (i32.add + (local.get $ptr) + (i32.const 8) + ) + ) + (local.set $y + (i32.add + (local.get $ptr) + (i32.const 16) + ) + ) + (local.set $z + (i32.add + (local.get $ptr) + (i32.const 24) + ) + ) + (loop $l + (call $offset-realistic + (i32.load + (local.get $x) + ) + ) + (call $offset-realistic + (i32.load + (local.get $y) + ) + ) + (call $offset-realistic + (i32.load + (local.get $y) + ) + ) + (i32.store + (local.get $z) + (i32.add + (i32.load + (local.get $z) + ) + (i32.const 1) + ) + ) + (br_if $l + (i32.load + (local.get $z) + ) + ) + ) + ) +) + diff --git a/test/passes/post-emscripten.txt b/test/passes/post-emscripten.txt index f7b531296..089287fbf 100644 --- a/test/passes/post-emscripten.txt +++ b/test/passes/post-emscripten.txt @@ -1,121 +1,10 @@ (module (type $0 (func (param i32))) (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) - (type $2 (func (param i32) (result i32))) - (type $3 (func)) + (type $2 (func)) (import "global.Math" "pow" (func $Math_pow (param f64 f64) (result f64))) (memory $0 256 256) - (export "load-off-2" (func $load-off-2)) - (func $b0 (; 1 ;) (type $0) (param $x i32) - (drop - (i32.load offset=1 - (local.get $x) - ) - ) - (drop - (i32.load offset=8 - (local.get $x) - ) - ) - (drop - (i32.load offset=1023 - (local.get $x) - ) - ) - (drop - (i32.load - (i32.add - (local.get $x) - (i32.const 1024) - ) - ) - ) - (drop - (i32.load - (i32.add - (local.get $x) - (i32.const 2048) - ) - ) - ) - (drop - (i32.load offset=4 - (local.get $x) - ) - ) - ) - (func $load-off-2 (; 2 ;) (type $2) (param $0 i32) (result i32) - (i32.store - (i32.const 6) - (local.get $0) - ) - (i32.store - (i32.const 6) - (local.get $0) - ) - (i32.store offset=7 - (local.get $0) - (local.get $0) - ) - (i32.store offset=9 - (local.get $0) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (i32.const -11) - (local.get $0) - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (local.get $0) - (i32.const -13) - ) - (local.get $0) - ) - (i32.store - (i32.const 4) - (local.get $0) - ) - (i32.store - (i32.const 0) - (local.get $0) - ) - (i32.store - (i32.const 25) - (local.get $0) - ) - (i32.store - (i32.const -23) - (local.get $0) - ) - (drop - (i32.load - (i32.const 8) - ) - ) - (drop - (i32.load - (i32.const 8) - ) - ) - (drop - (i32.load offset=8 - (local.get $0) - ) - ) - (drop - (i32.load - (i32.const 10) - ) - ) - (i32.load offset=12 - (local.get $0) - ) - ) - (func $pow2 (; 3 ;) (type $3) + (func $pow2 (; 1 ;) (type $2) (local $x f64) (local $y f64) (local $2 f64) @@ -166,7 +55,7 @@ ) ) ) - (func $pow.2 (; 4 ;) (type $3) + (func $pow.2 (; 2 ;) (type $2) (drop (f64.sqrt (f64.const 1) diff --git a/test/passes/post-emscripten.wast b/test/passes/post-emscripten.wast index b06d07e7a..f3656eebd 100644 --- a/test/passes/post-emscripten.wast +++ b/test/passes/post-emscripten.wast @@ -2,157 +2,6 @@ (memory 256 256) (type $0 (func (param i32))) (import "global.Math" "pow" (func $Math_pow (param f64 f64) (result f64))) - (func $b0 (type $0) (param $x i32) - (drop - (i32.load - (i32.add - (local.get $x) - (i32.const 1) - ) - ) - ) - (drop - (i32.load - (i32.add - (local.get $x) - (i32.const 8) - ) - ) - ) - (drop - (i32.load - (i32.add - (local.get $x) - (i32.const 1023) - ) - ) - ) - (drop - (i32.load - (i32.add - (local.get $x) - (i32.const 1024) - ) - ) - ) - (drop - (i32.load - (i32.add - (local.get $x) - (i32.const 2048) - ) - ) - ) - (drop - (i32.load - (i32.add - (i32.const 4) - (local.get $x) - ) - ) - ) - ) - (func $load-off-2 "load-off-2" (param $0 i32) (result i32) - (i32.store offset=2 - (i32.add - (i32.const 1) - (i32.const 3) - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (i32.const 3) - (i32.const 1) - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (local.get $0) - (i32.const 5) - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (i32.const 7) - (local.get $0) - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (i32.const -11) ;; do not fold this! - (local.get $0) - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (local.get $0) - (i32.const -13) ;; do not fold this! - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (i32.const -15) - (i32.const 17) - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.add - (i32.const -21) - (i32.const 19) - ) - (local.get $0) - ) - (i32.store offset=2 - (i32.const 23) - (local.get $0) - ) - (i32.store offset=2 - (i32.const -25) - (local.get $0) - ) - (drop - (i32.load offset=2 - (i32.add - (i32.const 2) - (i32.const 4) - ) - ) - ) - (drop - (i32.load offset=2 - (i32.add - (i32.const 4) - (i32.const 2) - ) - ) - ) - (drop - (i32.load offset=2 - (i32.add - (local.get $0) - (i32.const 6) - ) - ) - ) - (drop - (i32.load offset=2 - (i32.const 8) - ) - ) - (i32.load offset=2 - (i32.add - (i32.const 10) - (local.get $0) - ) - ) - ) (func $pow2 (local $x f64) (local $y f64) diff --git a/test/passes/precompute-propagate.txt b/test/passes/precompute-propagate.txt index 21b894355..6ebd7bd5b 100644 --- a/test/passes/precompute-propagate.txt +++ b/test/passes/precompute-propagate.txt @@ -3,6 +3,7 @@ (type $1 (func (param i32) (result i32))) (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32 i32 i32) (result i32))) + (memory $0 10 10) (func $basic (; 0 ;) (type $0) (param $p i32) (local $x i32) (local.set $x diff --git a/test/passes/precompute-propagate.wast b/test/passes/precompute-propagate.wast index 0d53088d3..4b7764b19 100644 --- a/test/passes/precompute-propagate.wast +++ b/test/passes/precompute-propagate.wast @@ -1,4 +1,5 @@ (module + (memory 10 10) (func $basic (param $p i32) (local $x i32) (local.set $x (i32.const 10)) diff --git a/test/passes/safe-heap_low-memory-unused.txt b/test/passes/safe-heap_low-memory-unused.txt new file mode 100644 index 000000000..26dcc10e3 --- /dev/null +++ b/test/passes/safe-heap_low-memory-unused.txt @@ -0,0 +1,9800 @@ +(module + (type $0 (func)) + (type $FUNCSIG$v (func)) + (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32)) + (import "env" "segfault" (func $segfault)) + (import "env" "alignfault" (func $alignfault)) + (memory $0 (shared 100 100)) + (func $loads (; 2 ;) (type $0) + (drop + (call $SAFE_HEAP_LOAD_i32_4_U_4 + (i32.const 1) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_4_U_A + (i32.const 1) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_4_U_4 + (i32.const 2) + (i32.const 31) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_4_U_2 + (i32.const 3) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_4_U_1 + (i32.const 4) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_1_1 + (i32.const 5) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_2_U_2 + (i32.const 6) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_1_1 + (i32.const 7) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_2_U_2 + (i32.const 8) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_4_4 + (i32.const 9) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_8_U_4 + (i32.const 10) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_8_U_8 + (i32.const 11) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_f32_4_4 + (i32.const 12) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_f64_8_8 + (i32.const 13) + (i32.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_v128_16_U_16 + (i32.const 14) + (i32.const 0) + ) + ) + ) + (func $stores (; 3 ;) (type $0) + (call $SAFE_HEAP_STORE_i32_4_4 + (i32.const 1) + (i32.const 0) + (i32.const 100) + ) + (call $SAFE_HEAP_STORE_i32_4_A + (i32.const 1) + (i32.const 0) + (i32.const 100) + ) + (call $SAFE_HEAP_STORE_i32_4_4 + (i32.const 2) + (i32.const 31) + (i32.const 200) + ) + (call $SAFE_HEAP_STORE_i32_4_2 + (i32.const 3) + (i32.const 0) + (i32.const 300) + ) + (call $SAFE_HEAP_STORE_i32_4_1 + (i32.const 4) + (i32.const 0) + (i32.const 400) + ) + (call $SAFE_HEAP_STORE_i32_1_1 + (i32.const 5) + (i32.const 0) + (i32.const 500) + ) + (call $SAFE_HEAP_STORE_i32_2_2 + (i32.const 6) + (i32.const 0) + (i32.const 600) + ) + (call $SAFE_HEAP_STORE_i64_1_1 + (i32.const 7) + (i32.const 0) + (i64.const 700) + ) + (call $SAFE_HEAP_STORE_i64_2_2 + (i32.const 8) + (i32.const 0) + (i64.const 800) + ) + (call $SAFE_HEAP_STORE_i64_4_4 + (i32.const 9) + (i32.const 0) + (i64.const 900) + ) + (call $SAFE_HEAP_STORE_i64_8_4 + (i32.const 10) + (i32.const 0) + (i64.const 1000) + ) + (call $SAFE_HEAP_STORE_i64_8_8 + (i32.const 11) + (i32.const 0) + (i64.const 1100) + ) + (call $SAFE_HEAP_STORE_f32_4_4 + (i32.const 12) + (i32.const 0) + (f32.const 1200) + ) + (call $SAFE_HEAP_STORE_f64_8_8 + (i32.const 13) + (i32.const 0) + (f64.const 1300) + ) + (call $SAFE_HEAP_STORE_v128_16_16 + (i32.const 14) + (i32.const 0) + (v128.const i32 0x1 0x0 0x0 0x0 0x2 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0x4 0x0 0x0 0x0) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_A (; 4 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.shr_s + (i32.shl + (i32.atomic.load8_u + (local.get $2) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_1 (; 5 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_A (; 6 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.atomic.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_1 (; 7 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_1 (; 8 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_A (; 9 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.shr_s + (i32.shl + (i32.atomic.load16_u + (local.get $2) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_2 (; 10 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_1 (; 11 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_A (; 12 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.atomic.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_2 (; 13 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_1 (; 14 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_2 (; 15 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_A (; 16 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_4 (; 17 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_1 (; 18 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_2 (; 19 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_A (; 20 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_4 (; 21 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_A (; 22 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load8_u + (local.get $2) + ) + (i64.const 56) + ) + (i64.const 56) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_1 (; 23 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_A (; 24 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.atomic.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_1 (; 25 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_1 (; 26 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_A (; 27 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load16_u + (local.get $2) + ) + (i64.const 48) + ) + (i64.const 48) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_2 (; 28 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_1 (; 29 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_A (; 30 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.atomic.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_2 (; 31 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_1 (; 32 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load32_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_2 (; 33 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_s align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_A (; 34 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load32_u + (local.get $2) + ) + (i64.const 32) + ) + (i64.const 32) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_4 (; 35 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_1 (; 36 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load32_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_2 (; 37 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_u align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_A (; 38 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.atomic.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_4 (; 39 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_1 (; 40 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_2 (; 41 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_4 (; 42 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_A (; 43 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_8 (; 44 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_1 (; 45 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_2 (; 46 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_4 (; 47 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_A (; 48 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_8 (; 49 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_1 (; 50 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_2 (; 51 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_4 (; 52 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_1 (; 53 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_2 (; 54 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_4 (; 55 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_8 (; 56 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_1 (; 57 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_2 (; 58 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_4 (; 59 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_8 (; 60 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_16 (; 61 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_1 (; 62 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_2 (; 63 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_4 (; 64 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_8 (; 65 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_16 (; 66 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_A (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.atomic.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_1 (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_1 (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_A (; 70 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.atomic.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_2 (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_1 (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_2 (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_A (; 74 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_4 (; 75 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_A (; 76 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.atomic.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_1 (; 77 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_1 (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_A (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.atomic.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_2 (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_1 (; 81 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store32 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_2 (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store32 align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_A (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.atomic.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_4 (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_1 (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_2 (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_4 (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_A (; 88 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_8 (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_1 (; 90 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_2 (; 91 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_4 (; 92 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_1 (; 93 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_2 (; 94 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_4 (; 95 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_8 (; 96 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_1 (; 97 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_2 (; 98 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_4 (; 99 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_8 (; 100 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.store align=8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_16 (; 101 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.store + (local.get $3) + (local.get $2) + ) + ) +) +(module + (type $0 (func)) + (type $FUNCSIG$v (func)) + (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32)) + (import "env" "segfault" (func $segfault)) + (import "env" "alignfault" (func $alignfault)) + (memory $0 100 100) + (func $loads (; 2 ;) (type $0) + (drop + (call $SAFE_HEAP_LOAD_i32_4_U_4 + (i32.const 1) + (i32.const 0) + ) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_1 (; 3 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_1 (; 4 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_1 (; 5 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_2 (; 6 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_1 (; 7 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_2 (; 8 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_1 (; 9 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_2 (; 10 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_4 (; 11 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_1 (; 12 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_2 (; 13 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_4 (; 14 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_1 (; 15 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_1 (; 16 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_1 (; 17 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_2 (; 18 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_1 (; 19 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_2 (; 20 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_1 (; 21 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load32_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_2 (; 22 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_s align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_4 (; 23 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_1 (; 24 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load32_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_2 (; 25 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_u align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_4 (; 26 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_1 (; 27 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_2 (; 28 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_4 (; 29 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_8 (; 30 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_1 (; 31 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_2 (; 32 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_4 (; 33 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_8 (; 34 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_1 (; 35 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_2 (; 36 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_4 (; 37 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_1 (; 38 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_2 (; 39 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_4 (; 40 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_8 (; 41 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_1 (; 42 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_2 (; 43 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_4 (; 44 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_8 (; 45 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_16 (; 46 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_1 (; 47 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_2 (; 48 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_4 (; 49 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_8 (; 50 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_16 (; 51 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_1 (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_1 (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_2 (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_1 (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_2 (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_4 (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_1 (; 58 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_1 (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_2 (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_1 (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store32 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_2 (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store32 align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_4 (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_1 (; 64 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_2 (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_4 (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_8 (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_1 (; 68 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_2 (; 69 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_4 (; 70 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_1 (; 71 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_2 (; 72 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_4 (; 73 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_8 (; 74 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_1 (; 75 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_2 (; 76 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_4 (; 77 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_8 (; 78 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.store align=8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_16 (; 79 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.store + (local.get $3) + (local.get $2) + ) + ) +) +(module + (type $FUNCSIG$v (func)) + (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32)) + (import "env" "segfault" (func $segfault)) + (import "env" "alignfault" (func $alignfault)) + (memory $0 (shared 100 100)) + (func $actions (; 2 ;) (type $FUNCSIG$v) + (drop + (call $SAFE_HEAP_LOAD_i32_4_U_4 + (i32.const 1) + (i32.const 0) + ) + ) + (call $SAFE_HEAP_STORE_i32_4_4 + (i32.const 1) + (i32.const 0) + (i32.const 100) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_A (; 3 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.shr_s + (i32.shl + (i32.atomic.load8_u + (local.get $2) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_1 (; 4 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_A (; 5 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.atomic.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_1 (; 6 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_1 (; 7 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_A (; 8 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.shr_s + (i32.shl + (i32.atomic.load16_u + (local.get $2) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_2 (; 9 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_1 (; 10 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_A (; 11 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.atomic.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_2 (; 12 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_1 (; 13 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_2 (; 14 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_A (; 15 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_4 (; 16 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_1 (; 17 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_2 (; 18 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_A (; 19 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_U_4 (; 20 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_A (; 21 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load8_u + (local.get $2) + ) + (i64.const 56) + ) + (i64.const 56) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_1 (; 22 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_A (; 23 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.atomic.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_1 (; 24 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_1 (; 25 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_A (; 26 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load16_u + (local.get $2) + ) + (i64.const 48) + ) + (i64.const 48) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_2 (; 27 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_1 (; 28 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_A (; 29 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.atomic.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_2 (; 30 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_1 (; 31 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load32_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_2 (; 32 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_s align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_A (; 33 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load32_u + (local.get $2) + ) + (i64.const 32) + ) + (i64.const 32) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_4 (; 34 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_1 (; 35 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load32_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_2 (; 36 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_u align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_A (; 37 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.atomic.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_4 (; 38 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_1 (; 39 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_2 (; 40 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_4 (; 41 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_A (; 42 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_8 (; 43 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_1 (; 44 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_2 (; 45 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_4 (; 46 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_A (; 47 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_U_8 (; 48 ;) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_1 (; 49 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_2 (; 50 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_4 (; 51 ;) (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_1 (; 52 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_2 (; 53 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_4 (; 54 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_8 (; 55 ;) (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_1 (; 56 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_2 (; 57 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_4 (; 58 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_8 (; 59 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_16 (; 60 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_1 (; 61 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_2 (; 62 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_4 (; 63 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_8 (; 64 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_U_16 (; 65 ;) (param $0 i32) (param $1 i32) (result v128) + (local $2 i32) + (local.set $2 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $2) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $2) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $2) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_A (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.atomic.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_1 (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_1 (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_A (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.atomic.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_2 (; 70 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_1 (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_2 (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_A (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_4 (; 74 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_A (; 75 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.atomic.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_1 (; 76 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 1) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_1 (; 77 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_A (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.atomic.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_2 (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 2) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_1 (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store32 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_2 (; 81 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store32 align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_A (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.atomic.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_4 (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_1 (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_2 (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_4 (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_A (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_8 (; 88 ;) (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_1 (; 89 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_2 (; 90 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_4 (; 91 ;) (param $0 i32) (param $1 i32) (param $2 f32) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 4) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_1 (; 92 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_2 (; 93 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_4 (; 94 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_8 (; 95 ;) (param $0 i32) (param $1 i32) (param $2 f64) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 8) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_1 (; 96 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_2 (; 97 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_4 (; 98 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_8 (; 99 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.store align=8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_16 (; 100 ;) (param $0 i32) (param $1 i32) (param $2 v128) + (local $3 i32) + (local.set $3 + (i32.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i32.lt_u + (local.get $3) + (i32.const 1024) + ) + (i32.gt_u + (i32.add + (local.get $3) + (i32.const 16) + ) + (i32.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (local.get $3) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.store + (local.get $3) + (local.get $2) + ) + ) +) diff --git a/test/passes/safe-heap_low-memory-unused.wast b/test/passes/safe-heap_low-memory-unused.wast new file mode 100644 index 000000000..a2754b469 --- /dev/null +++ b/test/passes/safe-heap_low-memory-unused.wast @@ -0,0 +1,56 @@ +(module + (memory (shared 100 100)) + (func $loads + (drop (i32.load (i32.const 1))) + (drop (i32.atomic.load (i32.const 1))) + (drop (i32.load offset=31 (i32.const 2))) + (drop (i32.load align=2 (i32.const 3))) + (drop (i32.load align=1 (i32.const 4))) + (drop (i32.load8_s (i32.const 5))) + (drop (i32.load16_u (i32.const 6))) + (drop (i64.load8_s (i32.const 7))) + (drop (i64.load16_u (i32.const 8))) + (drop (i64.load32_s (i32.const 9))) + (drop (i64.load align=4 (i32.const 10))) + (drop (i64.load (i32.const 11))) + (drop (f32.load (i32.const 12))) + (drop (f64.load (i32.const 13))) + (drop (v128.load (i32.const 14))) + ) + (func $stores + (i32.store (i32.const 1) (i32.const 100)) + (i32.atomic.store (i32.const 1) (i32.const 100)) + (i32.store offset=31 (i32.const 2) (i32.const 200)) + (i32.store align=2 (i32.const 3) (i32.const 300)) + (i32.store align=1 (i32.const 4) (i32.const 400)) + (i32.store8 (i32.const 5) (i32.const 500)) + (i32.store16 (i32.const 6) (i32.const 600)) + (i64.store8 (i32.const 7) (i64.const 700)) + (i64.store16 (i32.const 8) (i64.const 800)) + (i64.store32 (i32.const 9) (i64.const 900)) + (i64.store align=4 (i32.const 10) (i64.const 1000)) + (i64.store (i32.const 11) (i64.const 1100)) + (f32.store (i32.const 12) (f32.const 1200)) + (f64.store (i32.const 13) (f64.const 1300)) + (v128.store (i32.const 14) (v128.const i32 1 2 3 4)) + ) +) +;; not shared +(module + (memory 100 100) + (func $loads + (drop (i32.load (i32.const 1))) + ) +) +;; pre-existing +(module + (type $FUNCSIG$v (func)) + (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32)) + (import "env" "segfault" (func $segfault)) + (import "env" "alignfault" (func $alignfault)) + (memory $0 (shared 100 100)) + (func $actions + (drop (i32.load (i32.const 1))) + (i32.store (i32.const 1) (i32.const 100)) + ) +) |