diff --git a/Makefile.toml b/Makefile.toml index 8c0e7a2c4..c26a56979 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -195,7 +195,7 @@ args = ["component", "add", "rust-src"] category = "Test" description = "Install cargo-component extension" command = "cargo" -args = ["install", "cargo-component@0.6.0"] +args = ["install", "cargo-component@0.7.0"] [tasks.test-rust] category = "Test" diff --git a/tests/integration/expected/components/add_wasm_component.wat b/tests/integration/expected/components/add_wasm_component.wat index 5f24d7a5b..c1837acca 100644 --- a/tests/integration/expected/components/add_wasm_component.wat +++ b/tests/integration/expected/components/add_wasm_component.wat @@ -3,10 +3,8 @@ (type (;0;) (func)) (type (;1;) (func (param i32 i32) (result i32))) (type (;2;) (func (param i32 i32 i32 i32) (result i32))) - (type (;3;) (func (param i32) (result i32))) - (type (;4;) (func (param i32))) - (type (;5;) (func (param i32 i32))) - (type (;6;) (func (param i32 i32 i32) (result i32))) + (type (;3;) (func (param i32 i32 i32) (result i32))) + (type (;4;) (func (param i32 i32 i32 i32))) (func $__wasm_call_ctors (;0;) (type 0)) (func $miden:add/add@1.0.0#add (;1;) (type 1) (param i32 i32) (result i32) call $wit_bindgen::rt::run_ctors_once @@ -15,6094 +13,651 @@ i32.add ) (func $__rust_alloc (;2;) (type 1) (param i32 i32) (result i32) - (local i32) - local.get 0 + i32.const 1048576 local.get 1 - call $__rdl_alloc - local.set 2 - local.get 2 - return + local.get 0 + call $::alloc ) (func $__rust_realloc (;3;) (type 2) (param i32 i32 i32 i32) (result i32) (local i32) - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rdl_realloc - local.set 4 - local.get 4 - return - ) - (func $wit_bindgen::rt::run_ctors_once (;4;) (type 0) - block ;; label = @1 - i32.const 0 - i32.load8_u offset=1048577 - br_if 0 (;@1;) - call $__wasm_call_ctors - i32.const 0 - i32.const 1 - i32.store8 offset=1048577 - end - ) - (func $cabi_realloc (;5;) (type 2) (param i32 i32 i32 i32) (result i32) block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 1 - br_if 0 (;@3;) - local.get 3 - i32.eqz - br_if 2 (;@1;) - i32.const 0 - i32.load8_u offset=1048576 - drop - local.get 3 - local.get 2 - call $__rust_alloc - local.set 2 - br 1 (;@2;) - end - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rust_realloc - local.set 2 - end + i32.const 1048576 local.get 2 + local.get 3 + call $::alloc + local.tee 4 + i32.eqz br_if 0 (;@1;) - unreachable - unreachable - end - local.get 2 - ) - (func $__rdl_alloc (;6;) (type 1) (param i32 i32) (result i32) - (local i32) - block ;; label = @1 - block ;; label = @2 - local.get 1 - i32.const 8 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - local.get 0 - i32.le_u - br_if 1 (;@1;) - end + local.get 4 + local.get 0 local.get 1 + local.get 3 local.get 1 + local.get 3 + i32.lt_u + select + memory.copy + i32.const 1048576 local.get 0 + local.get 2 local.get 1 - i32.rem_u - local.tee 2 - i32.sub - i32.const 0 + call $::dealloc + end + local.get 4 + ) + (func $wee_alloc::alloc_first_fit (;4;) (type 3) (param i32 i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32) + block ;; label = @1 local.get 2 - select - local.get 0 - i32.add - call $aligned_alloc + i32.load + local.tee 3 + br_if 0 (;@1;) + i32.const 0 return end + local.get 1 + i32.const -1 + i32.add + local.set 4 + i32.const 0 + local.get 1 + i32.sub + local.set 5 local.get 0 - call $malloc - ) - (func $__rdl_realloc (;7;) (type 2) (param i32 i32 i32 i32) (result i32) - (local i32 i32) - block ;; label = @1 + i32.const 2 + i32.shl + local.set 6 + loop ;; label = @1 block ;; label = @2 block ;; label = @3 - local.get 2 - i32.const 8 - i32.gt_u + local.get 3 + i32.load offset=8 + local.tee 1 + i32.const 1 + i32.and br_if 0 (;@3;) - local.get 2 local.get 3 - i32.le_u - br_if 1 (;@2;) + local.set 7 + br 1 (;@2;) end - i32.const 0 - local.set 4 - local.get 2 - local.get 2 - local.get 3 - local.get 2 - i32.rem_u - local.tee 5 - i32.sub - i32.const 0 - local.get 5 - select - local.get 3 - i32.add - call $aligned_alloc - local.tee 2 - i32.eqz - br_if 1 (;@1;) - local.get 2 - local.get 0 - local.get 1 - local.get 3 - local.get 1 - local.get 3 - i32.lt_u - select - call $memcpy - local.set 2 - local.get 0 - call $free - local.get 2 - return - end - local.get 0 - local.get 3 - call $realloc - local.set 4 - end - local.get 4 - ) - (func $malloc (;8;) (type 3) (param i32) (result i32) - local.get 0 - call $dlmalloc - ) - (func $dlmalloc (;9;) (type 3) (param i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - global.get $__stack_pointer - i32.const 16 - i32.sub - local.tee 1 - global.set $__stack_pointer - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 + loop ;; label = @3 + local.get 3 + local.get 1 + i32.const -2 + i32.and + i32.store offset=8 block ;; label = @4 block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048604 - local.tee 2 - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - local.tee 3 - br_if 0 (;@13;) - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 8 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - local.tee 3 - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - end - i32.const 1114112 - i32.const 1049088 - i32.lt_u - br_if 1 (;@11;) - i32.const 0 - local.set 2 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const 89 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - local.set 4 - i32.const 0 - i32.const 1049088 - i32.store offset=1049028 - i32.const 0 - i32.const 1049088 - i32.store offset=1048596 - i32.const 0 - local.get 3 - i32.store offset=1048616 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.store offset=1049032 - loop ;; label = @13 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@13;) - end - i32.const 1049088 - i32.const -8 - i32.const 1049088 - i32.sub - i32.const 15 - i32.and - i32.const 0 - i32.const 1049088 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - i32.const 4 - i32.add - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const -56 - i32.add - local.tee 3 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 3 - i32.const 1049088 - i32.add - i32.const 4 - i32.add - i32.const 56 - i32.store - end - block ;; label = @12 - block ;; label = @13 - local.get 0 - i32.const 236 - i32.gt_u - br_if 0 (;@13;) - block ;; label = @14 - i32.const 0 - i32.load offset=1048580 - local.tee 6 - i32.const 16 - local.get 0 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 0 - i32.const 11 - i32.lt_u - select - local.tee 7 - i32.const 3 - i32.shr_u - local.tee 3 - i32.shr_u - local.tee 4 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - i32.const 1 - i32.and - local.get 3 - i32.or - i32.const 1 - i32.xor - local.tee 5 - i32.const 3 - i32.shl - local.tee 3 - i32.const 1048620 - i32.add - local.tee 4 - local.get 3 - i32.const 1048628 - i32.add - i32.load - local.tee 3 - i32.load offset=8 - local.tee 7 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 4 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 4 - i32.store offset=12 - end - local.get 3 - i32.const 8 - i32.add - local.set 4 - local.get 3 - local.get 5 - i32.const 3 - i32.shl - local.tee 5 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 5 - i32.add - local.tee 3 - local.get 3 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 13 (;@1;) - end - local.get 7 - i32.const 0 - i32.load offset=1048588 - local.tee 8 - i32.le_u - br_if 1 (;@12;) - block ;; label = @14 - local.get 4 - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - local.get 3 - i32.shl - i32.const 2 - local.get 3 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - i32.and - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - local.tee 3 - i32.const 3 - i32.shl - local.tee 4 - i32.const 1048620 - i32.add - local.tee 5 - local.get 4 - i32.const 1048628 - i32.add - i32.load - local.tee 4 - i32.load offset=8 - local.tee 0 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 3 - i32.rotl - i32.and - local.tee 6 - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 5 - i32.store offset=12 - end - local.get 4 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - i32.const 3 - i32.shl - local.tee 3 - i32.add - local.get 3 - local.get 7 - i32.sub - local.tee 5 - i32.store - local.get 4 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @15 - local.get 8 - i32.eqz - br_if 0 (;@15;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @16 - block ;; label = @17 - local.get 6 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - i32.and - br_if 0 (;@17;) - i32.const 0 - local.get 6 - local.get 9 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@16;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 9 - i32.store offset=8 - end - local.get 4 - i32.const 8 - i32.add - local.set 4 - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - local.get 5 - i32.store offset=1048588 - br 13 (;@1;) - end - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 1 (;@12;) - local.get 10 - i32.const 0 - local.get 10 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 0 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.set 3 - local.get 0 - local.set 5 - block ;; label = @14 - loop ;; label = @15 - block ;; label = @16 - local.get 5 - i32.load offset=16 - local.tee 4 - br_if 0 (;@16;) - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 2 (;@14;) - end - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 5 - local.get 3 - local.get 5 - local.get 3 - i32.lt_u - local.tee 5 - select - local.set 3 - local.get 4 - local.get 0 - local.get 5 - select - local.set 0 - local.get 4 - local.set 5 - br 0 (;@15;) - end - end - local.get 0 - i32.load offset=24 - local.set 11 - block ;; label = @14 - local.get 0 - i32.load offset=12 - local.tee 9 - local.get 0 - i32.eq - br_if 0 (;@14;) - local.get 0 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 9 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 9 - i32.store offset=12 - br 12 (;@2;) - end - block ;; label = @14 - local.get 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@10;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @14 - local.get 5 - local.set 2 - local.get 4 - local.tee 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - local.get 9 - i32.load offset=16 - local.tee 4 - br_if 0 (;@14;) - end - local.get 2 - i32.const 0 - i32.store - br 11 (;@2;) - end - i32.const -1 - local.set 7 - local.get 0 - i32.const -65 - i32.gt_u - br_if 0 (;@12;) - local.get 0 - i32.const 19 - i32.add - local.tee 4 - i32.const -16 - i32.and - local.set 7 - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 0 (;@12;) - i32.const 0 - local.set 8 - block ;; label = @13 - local.get 7 - i32.const 256 - i32.lt_u - br_if 0 (;@13;) - i32.const 31 - local.set 8 - local.get 7 - i32.const 16777215 - i32.gt_u - br_if 0 (;@13;) - local.get 7 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 8 - end - i32.const 0 - local.get 7 - i32.sub - local.set 3 - block ;; label = @13 - block ;; label = @14 - block ;; label = @15 - block ;; label = @16 - local.get 8 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 5 - br_if 0 (;@16;) - i32.const 0 - local.set 4 - i32.const 0 - local.set 9 - br 1 (;@15;) - end - i32.const 0 - local.set 4 - local.get 7 - i32.const 0 - i32.const 25 - local.get 8 - i32.const 1 - i32.shr_u - i32.sub - local.get 8 - i32.const 31 - i32.eq - select - i32.shl - local.set 0 - i32.const 0 - local.set 9 - loop ;; label = @16 - block ;; label = @17 - local.get 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.ge_u - br_if 0 (;@17;) - local.get 6 - local.set 3 - local.get 5 - local.set 9 - local.get 6 - br_if 0 (;@17;) - i32.const 0 - local.set 3 - local.get 5 - local.set 9 - local.get 5 - local.set 4 - br 3 (;@14;) - end - local.get 4 - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 6 - local.get 6 - local.get 5 - local.get 0 - i32.const 29 - i32.shr_u - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - i32.load - local.tee 5 - i32.eq - select - local.get 4 - local.get 6 - select - local.set 4 - local.get 0 - i32.const 1 - i32.shl - local.set 0 - local.get 5 - br_if 0 (;@16;) - end - end - block ;; label = @15 - local.get 4 - local.get 9 - i32.or - br_if 0 (;@15;) - i32.const 0 - local.set 9 - i32.const 2 - local.get 8 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - local.get 10 - i32.and - local.tee 4 - i32.eqz - br_if 3 (;@12;) - local.get 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.set 4 - end - local.get 4 - i32.eqz - br_if 1 (;@13;) - end - loop ;; label = @14 - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.lt_u - local.set 0 - block ;; label = @15 - local.get 4 - i32.load offset=16 - local.tee 5 - br_if 0 (;@15;) - local.get 4 - i32.const 20 - i32.add - i32.load - local.set 5 - end - local.get 6 - local.get 3 - local.get 0 - select - local.set 3 - local.get 4 - local.get 9 - local.get 0 - select - local.set 9 - local.get 5 - local.set 4 - local.get 5 - br_if 0 (;@14;) - end - end - local.get 9 - i32.eqz - br_if 0 (;@12;) - local.get 3 - i32.const 0 - i32.load offset=1048588 - local.get 7 - i32.sub - i32.ge_u - br_if 0 (;@12;) - local.get 9 - i32.load offset=24 - local.set 2 - block ;; label = @13 - local.get 9 - i32.load offset=12 - local.tee 0 - local.get 9 - i32.eq - br_if 0 (;@13;) - local.get 9 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 0 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 0 - i32.store offset=12 - br 10 (;@3;) - end - block ;; label = @13 - local.get 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 9 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@9;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @13 - local.get 5 - local.set 6 - local.get 4 - local.tee 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - local.get 0 - i32.load offset=16 - local.tee 4 - br_if 0 (;@13;) - end - local.get 6 - i32.const 0 - i32.store - br 9 (;@3;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048588 - local.tee 4 - local.get 7 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @13 - block ;; label = @14 - local.get 4 - local.get 7 - i32.sub - local.tee 5 - i32.const 16 - i32.lt_u - br_if 0 (;@14;) - local.get 3 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.get 5 - i32.store - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - br 1 (;@13;) - end - local.get 3 - local.get 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 0 - i32.const 0 - local.set 5 - end - i32.const 0 - local.get 5 - i32.store offset=1048588 - i32.const 0 - local.get 0 - i32.store offset=1048600 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048592 - local.tee 5 - local.get 7 - i32.le_u - br_if 0 (;@12;) - local.get 2 - local.get 7 - i32.add - local.tee 4 - local.get 5 - local.get 7 - i32.sub - local.tee 3 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048604 - i32.const 0 - local.get 3 - i32.store offset=1048592 - local.get 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - i32.eqz - br_if 0 (;@13;) - i32.const 0 - i32.load offset=1049060 - local.set 3 - br 1 (;@12;) - end - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 12 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - i32.const 65536 - local.set 3 - end - i32.const 0 - local.set 4 - block ;; label = @12 - local.get 3 - local.get 7 - i32.const 71 - i32.add - local.tee 8 - i32.add - local.tee 0 - i32.const 0 - local.get 3 - i32.sub - local.tee 6 - i32.and - local.tee 9 - local.get 7 - i32.gt_u - br_if 0 (;@12;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 9 - i32.add - local.tee 10 - local.get 3 - i32.le_u - br_if 0 (;@13;) - local.get 10 - local.get 4 - i32.le_u - br_if 1 (;@12;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - i32.const 0 - i32.load8_u offset=1049024 - i32.const 4 - i32.and - br_if 5 (;@6;) - block ;; label = @12 - block ;; label = @13 - block ;; label = @14 - local.get 2 - i32.eqz - br_if 0 (;@14;) - i32.const 1049028 - local.set 4 - loop ;; label = @15 - block ;; label = @16 - local.get 4 - i32.load - local.tee 3 - local.get 2 - i32.gt_u - br_if 0 (;@16;) - local.get 3 - local.get 4 - i32.load offset=4 - i32.add - local.get 2 - i32.gt_u - br_if 3 (;@13;) - end - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@15;) - end - end - i32.const 0 - call $sbrk - local.tee 0 - i32.const -1 - i32.eq - br_if 6 (;@7;) - local.get 9 - local.set 6 - block ;; label = @14 - i32.const 0 - i32.load offset=1049056 - local.tee 4 - i32.const -1 - i32.add - local.tee 3 - local.get 0 - i32.and - i32.eqz - br_if 0 (;@14;) - local.get 9 - local.get 0 - i32.sub - local.get 3 - local.get 0 - i32.add - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.add - local.set 6 - end - local.get 6 - local.get 7 - i32.le_u - br_if 6 (;@7;) - local.get 6 - i32.const 2147483646 - i32.gt_u - br_if 6 (;@7;) - block ;; label = @14 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@14;) - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 6 - i32.add - local.tee 5 - local.get 3 - i32.le_u - br_if 7 (;@7;) - local.get 5 - local.get 4 - i32.gt_u - br_if 7 (;@7;) - end - local.get 6 - call $sbrk - local.tee 4 - local.get 0 - i32.ne - br_if 1 (;@12;) - br 8 (;@5;) - end - local.get 0 - local.get 5 - i32.sub - local.get 6 - i32.and - local.tee 6 - i32.const 2147483646 - i32.gt_u - br_if 5 (;@7;) - local.get 6 - call $sbrk - local.tee 0 - local.get 4 - i32.load - local.get 4 - i32.load offset=4 - i32.add - i32.eq - br_if 4 (;@8;) - local.get 0 - local.set 4 - end - block ;; label = @12 - local.get 4 - i32.const -1 - i32.eq - br_if 0 (;@12;) - local.get 7 - i32.const 72 - i32.add - local.get 6 - i32.le_u - br_if 0 (;@12;) - block ;; label = @13 - local.get 8 - local.get 6 - i32.sub - i32.const 0 - i32.load offset=1049060 - local.tee 3 - i32.add - i32.const 0 - local.get 3 - i32.sub - i32.and - local.tee 3 - i32.const 2147483646 - i32.le_u - br_if 0 (;@13;) - local.get 4 - local.set 0 - br 8 (;@5;) - end - block ;; label = @13 - local.get 3 - call $sbrk - i32.const -1 - i32.eq - br_if 0 (;@13;) - local.get 3 - local.get 6 - i32.add - local.set 6 - local.get 4 - local.set 0 - br 8 (;@5;) - end - i32.const 0 - local.get 6 - i32.sub - call $sbrk - drop - br 5 (;@7;) - end - local.get 4 - local.set 0 - local.get 4 - i32.const -1 - i32.ne - br_if 6 (;@5;) - br 4 (;@7;) - end - unreachable - unreachable - end - i32.const 0 - local.set 9 - br 7 (;@2;) - end - i32.const 0 - local.set 0 - br 5 (;@3;) - end - local.get 0 - i32.const -1 - i32.ne - br_if 2 (;@5;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049024 - i32.const 4 - i32.or - i32.store offset=1049024 - end - local.get 9 - i32.const 2147483646 - i32.gt_u - br_if 1 (;@4;) - local.get 9 - call $sbrk - local.set 0 - i32.const 0 - call $sbrk - local.set 4 - local.get 0 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@4;) - local.get 4 - local.get 0 - i32.sub - local.tee 6 - local.get 7 - i32.const 56 - i32.add - i32.le_u - br_if 1 (;@4;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049012 - local.get 6 - i32.add - local.tee 4 - i32.store offset=1049012 - block ;; label = @5 - local.get 4 - i32.const 0 - i32.load offset=1049016 - i32.le_u - br_if 0 (;@5;) - i32.const 0 - local.get 4 - i32.store offset=1049016 - end - block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - i32.const 0 - i32.load offset=1048604 - local.tee 3 - i32.eqz - br_if 0 (;@8;) - i32.const 1049028 - local.set 4 - loop ;; label = @9 - local.get 0 - local.get 4 - i32.load - local.tee 5 - local.get 4 - i32.load offset=4 - local.tee 9 - i32.add - i32.eq - br_if 2 (;@7;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@9;) - br 3 (;@6;) - end - end - block ;; label = @8 - block ;; label = @9 - i32.const 0 - i32.load offset=1048596 - local.tee 4 - i32.eqz - br_if 0 (;@9;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@8;) - end - i32.const 0 - local.get 0 - i32.store offset=1048596 - end - i32.const 0 - local.set 4 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 0 - i32.load offset=1049052 - i32.store offset=1048616 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - loop ;; label = @8 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@8;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 3 - local.get 6 - i32.const -56 - i32.add - local.tee 5 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 3 - i32.store offset=1048604 - local.get 0 - local.get 5 - i32.add - i32.const 56 - i32.store offset=4 - br 2 (;@5;) - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - br_if 0 (;@6;) - local.get 3 - local.get 5 - i32.lt_u - br_if 0 (;@6;) - local.get 3 - local.get 0 - i32.ge_u - br_if 0 (;@6;) - local.get 3 - i32.const -8 - local.get 3 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 3 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 5 - i32.add - local.tee 0 - i32.const 0 - i32.load offset=1048592 - local.get 6 - i32.add - local.tee 2 - local.get 5 - i32.sub - local.tee 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 9 - local.get 6 - i32.add - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 5 - i32.store offset=1048592 - i32.const 0 - local.get 0 - i32.store offset=1048604 - local.get 3 - local.get 2 - i32.add - i32.const 56 - i32.store offset=4 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 0 - i32.load offset=1048596 - local.tee 9 - i32.ge_u - br_if 0 (;@6;) - i32.const 0 - local.get 0 - i32.store offset=1048596 - local.get 0 - local.set 9 - end - local.get 0 - local.get 6 - i32.add - local.set 5 - i32.const 1049028 - local.set 4 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - loop ;; label = @13 - local.get 4 - i32.load - local.get 5 - i32.eq - br_if 1 (;@12;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@13;) - br 2 (;@11;) - end - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - i32.eqz - br_if 1 (;@10;) - end - i32.const 1049028 - local.set 4 - loop ;; label = @11 - block ;; label = @12 - local.get 4 - i32.load - local.tee 5 - local.get 3 - i32.gt_u - br_if 0 (;@12;) - local.get 5 - local.get 4 - i32.load offset=4 - i32.add - local.tee 5 - local.get 3 - i32.gt_u - br_if 3 (;@9;) - end - local.get 4 - i32.load offset=8 - local.set 4 - br 0 (;@11;) - end - end - local.get 4 - local.get 0 - i32.store - local.get 4 - local.get 4 - i32.load offset=4 - local.get 6 - i32.add - i32.store offset=4 - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - i32.const -8 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 6 - local.get 2 - local.get 7 - i32.add - local.tee 7 - i32.sub - local.set 4 - block ;; label = @10 - local.get 6 - local.get 3 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048592 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048588 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 1 - i32.ne - br_if 0 (;@10;) - local.get 3 - i32.const -8 - i32.and - local.set 8 - block ;; label = @11 - block ;; label = @12 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@12;) - local.get 6 - i32.load offset=8 - local.tee 5 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 9 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 0 - i32.eq - drop - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 3 - local.get 5 - i32.ne - br_if 0 (;@13;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 9 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@11;) - end - local.get 3 - local.get 0 - i32.eq - drop - local.get 3 - local.get 5 - i32.store offset=8 - local.get 5 - local.get 3 - i32.store offset=12 - br 1 (;@11;) - end - local.get 6 - i32.load offset=24 - local.set 10 - block ;; label = @12 - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 0 - local.get 6 - i32.eq - br_if 0 (;@13;) - local.get 6 - i32.load offset=8 - local.tee 3 - local.get 9 - i32.lt_u - drop - local.get 0 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 0 - i32.store offset=12 - br 1 (;@12;) - end - block ;; label = @13 - local.get 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 6 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - i32.const 0 - local.set 0 - br 1 (;@12;) - end - loop ;; label = @13 - local.get 3 - local.set 9 - local.get 5 - local.tee 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 3 - local.get 0 - i32.load offset=16 - local.tee 5 - br_if 0 (;@13;) - end - local.get 9 - i32.const 0 - i32.store - end - local.get 10 - i32.eqz - br_if 0 (;@11;) - block ;; label = @12 - block ;; label = @13 - local.get 6 - local.get 6 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@13;) - local.get 3 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@12;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@11;) - end - local.get 10 - i32.const 16 - i32.const 20 - local.get 10 - i32.load offset=16 - local.get 6 - i32.eq - select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@11;) - end - local.get 0 - local.get 10 - i32.store offset=24 - block ;; label = @12 - local.get 6 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@12;) - local.get 0 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 6 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@11;) - local.get 0 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 8 - local.get 4 - i32.add - local.set 4 - local.get 6 - local.get 8 - i32.add - local.tee 6 - i32.load offset=4 - local.set 3 - end - local.get 6 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @10 - local.get 4 - i32.const 255 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 4 - i32.const 3 - i32.shr_u - i32.shl - local.tee 4 - i32.and - br_if 0 (;@12;) - i32.const 0 - local.get 5 - local.get 4 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 4 - br 1 (;@11;) - end - local.get 3 - i32.load offset=8 - local.set 4 - end - local.get 4 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - br 3 (;@7;) - end - i32.const 31 - local.set 3 - block ;; label = @10 - local.get 4 - i32.const 16777215 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 7 - local.get 3 - i32.store offset=28 - local.get 7 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @10 - i32.const 0 - i32.load offset=1048584 - local.tee 0 - i32.const 1 - local.get 3 - i32.shl - local.tee 9 - i32.and - br_if 0 (;@10;) - local.get 5 - local.get 7 - i32.store - i32.const 0 - local.get 0 - local.get 9 - i32.or - i32.store offset=1048584 - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 7 - i32.store offset=12 - br 3 (;@7;) - end - local.get 4 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 5 - i32.load - local.set 0 - loop ;; label = @10 - local.get 0 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 4 - i32.eq - br_if 2 (;@8;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 0 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 5 - local.get 0 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 9 - i32.load - local.tee 0 - br_if 0 (;@10;) - end - local.get 9 - local.get 7 - i32.store - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=12 - local.get 7 - local.get 7 - i32.store offset=8 - br 2 (;@7;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - local.get 6 - i32.const -56 - i32.add - local.tee 9 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 9 - i32.add - i32.const 56 - i32.store offset=4 - local.get 3 - local.get 5 - i32.const 55 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const -55 - i32.add - i32.const 15 - i32.and - select - i32.add - i32.const -63 - i32.add - local.tee 9 - local.get 9 - local.get 3 - i32.const 16 - i32.add - i32.lt_u - select - local.tee 9 - i32.const 35 - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 9 - i32.const 16 - i32.add - i32.const 0 - i64.load offset=1049036 align=4 - i64.store align=4 - local.get 9 - i32.const 0 - i64.load offset=1049028 align=4 - i64.store offset=8 align=4 - i32.const 0 - local.get 9 - i32.const 8 - i32.add - i32.store offset=1049036 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - local.get 9 - i32.const 36 - i32.add - local.set 4 - loop ;; label = @9 - local.get 4 - i32.const 7 - i32.store - local.get 4 - i32.const 4 - i32.add - local.tee 4 - local.get 5 - i32.lt_u - br_if 0 (;@9;) - end - local.get 9 - local.get 3 - i32.eq - br_if 3 (;@5;) - local.get 9 - local.get 9 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - local.get 9 - local.get 9 - local.get 3 - i32.sub - local.tee 0 - i32.store - local.get 3 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @9 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @10 - block ;; label = @11 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@11;) - i32.const 0 - local.get 5 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 5 - br 1 (;@10;) - end - local.get 4 - i32.load offset=8 - local.set 5 - end - local.get 5 - local.get 3 - i32.store offset=12 - local.get 4 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 4 - i32.store offset=12 - local.get 3 - local.get 5 - i32.store offset=8 - br 4 (;@5;) - end - i32.const 31 - local.set 4 - block ;; label = @9 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 - end - local.get 3 - local.get 4 - i32.store offset=28 - local.get 3 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @9 - i32.const 0 - i32.load offset=1048584 - local.tee 9 - i32.const 1 - local.get 4 - i32.shl - local.tee 6 - i32.and - br_if 0 (;@9;) - local.get 5 - local.get 3 - i32.store - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048584 - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 3 - i32.store offset=12 - br 4 (;@5;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 9 - loop ;; label = @9 - local.get 9 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 3 (;@6;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 9 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 9 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 9 - br_if 0 (;@9;) - end - local.get 6 - local.get 3 - i32.store - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=12 - local.get 3 - local.get 3 - i32.store offset=8 - br 3 (;@5;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 7 - i32.store offset=12 - local.get 5 - local.get 7 - i32.store offset=8 - local.get 7 - i32.const 0 - i32.store offset=24 - local.get 7 - local.get 5 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - end - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 5 (;@1;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.store offset=12 - local.get 5 - local.get 3 - i32.store offset=8 local.get 3 + i32.load offset=4 + local.tee 8 + i32.const -4 + i32.and + local.tee 1 + br_if 0 (;@5;) i32.const 0 - i32.store offset=24 - local.get 3 - local.get 5 - i32.store offset=12 - local.get 3 - local.get 4 - i32.store offset=8 + local.set 7 + br 1 (;@4;) end i32.const 0 - i32.load offset=1048592 - local.tee 4 - local.get 7 - i32.le_u - br_if 0 (;@4;) - i32.const 0 - i32.load offset=1048604 - local.tee 3 - local.get 7 - i32.add - local.tee 5 - local.get 4 - local.get 7 - i32.sub - local.tee 4 + local.get 1 + local.get 1 + i32.load8_u i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 5 - i32.store offset=1048604 - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 3 (;@1;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 2 (;@1;) - end - block ;; label = @3 - local.get 2 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 9 - local.get 9 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 4 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@4;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - local.tee 10 - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 2 - i32.const 16 - i32.const 20 - local.get 2 - i32.load offset=16 - local.get 9 - i32.eq + i32.and select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@3;) + local.set 7 end - local.get 0 - local.get 2 - i32.store offset=24 block ;; label = @4 - local.get 9 - i32.load offset=16 - local.tee 4 + local.get 3 + i32.load + local.tee 0 + i32.const -4 + i32.and + local.tee 9 i32.eqz br_if 0 (;@4;) local.get 0 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 0 - i32.store offset=24 - end - local.get 9 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 0 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 0 - i32.store offset=24 - end - block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 15 - i32.gt_u + i32.const 2 + i32.and br_if 0 (;@4;) local.get 9 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 local.get 9 - local.get 4 - i32.add - local.tee 4 - local.get 4 i32.load offset=4 - i32.const 1 + i32.const 3 + i32.and + local.get 1 i32.or i32.store offset=4 - br 1 (;@3;) - end - local.get 9 - local.get 7 - i32.add - local.tee 0 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 9 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 3 - i32.add - local.get 3 - i32.store - block ;; label = @4 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) local.get 3 - i32.const -8 + i32.load offset=4 + local.tee 8 + i32.const -4 i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @5 - block ;; label = @6 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 3 - i32.const 3 - i32.shr_u - i32.shl - local.tee 3 - i32.and - br_if 0 (;@6;) - i32.const 0 - local.get 5 - local.get 3 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 3 - br 1 (;@5;) - end - local.get 4 - i32.load offset=8 - local.set 3 - end - local.get 3 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 + local.set 1 local.get 3 - i32.store offset=8 - br 1 (;@3;) + i32.load + local.set 0 end - i32.const 31 - local.set 4 block ;; label = @4 - local.get 3 - i32.const 16777215 - i32.gt_u + local.get 1 + i32.eqz br_if 0 (;@4;) + local.get 1 + local.get 1 + i32.load + i32.const 3 + i32.and + local.get 0 + i32.const -4 + i32.and + i32.or + i32.store local.get 3 - i32.const 38 + i32.load offset=4 + local.set 8 local.get 3 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 + i32.load + local.set 0 end + local.get 3 + local.get 8 + i32.const 3 + i32.and + i32.store offset=4 + local.get 3 local.get 0 - local.get 4 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 + i32.const 3 + i32.and + i32.store block ;; label = @4 - local.get 10 - i32.const 1 - local.get 4 - i32.shl - local.tee 7 + local.get 0 + i32.const 2 i32.and + i32.eqz br_if 0 (;@4;) - local.get 5 - local.get 0 - i32.store - i32.const 0 - local.get 10 local.get 7 + local.get 7 + i32.load + i32.const 2 i32.or - i32.store offset=1048584 - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - br 1 (;@3;) - end - local.get 3 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 7 - block ;; label = @4 - loop ;; label = @5 - local.get 7 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 3 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 7 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 7 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 7 - br_if 0 (;@5;) - end - local.get 6 - local.get 0 i32.store - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - br 1 (;@3;) end - local.get 5 + local.get 2 + local.get 7 + i32.store + local.get 7 + local.set 3 + local.get 7 i32.load offset=8 - local.tee 4 - local.get 0 - i32.store offset=12 - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 5 - i32.store offset=12 - local.get 0 - local.get 4 - i32.store offset=8 + local.tee 1 + i32.const 1 + i32.and + br_if 0 (;@3;) end - local.get 9 - i32.const 8 - i32.add - local.set 4 - br 1 (;@1;) end block ;; label = @2 - local.get 11 - i32.eqz - br_if 0 (;@2;) - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@4;) - local.get 4 - local.get 9 - i32.store - local.get 9 - br_if 1 (;@3;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@2;) - end - local.get 11 - i32.const 16 - i32.const 20 - local.get 11 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 9 - i32.store - local.get 9 - i32.eqz - br_if 1 (;@2;) - end - local.get 9 - local.get 11 - i32.store offset=24 - block ;; label = @3 - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 9 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 9 - i32.store offset=24 - end - local.get 0 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@2;) - local.get 9 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 9 - i32.store offset=24 - end - block ;; label = @2 - block ;; label = @3 - local.get 3 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 0 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 1 (;@2;) - end - local.get 0 local.get 7 - i32.add - local.tee 5 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 + i32.load + i32.const -4 + i32.and + local.tee 0 local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - local.get 3 + i32.const 8 i32.add - local.get 3 - i32.store - block ;; label = @3 - local.get 8 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 4 - block ;; label = @4 - block ;; label = @5 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - local.get 6 - i32.and - br_if 0 (;@5;) - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@4;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 4 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 7 - i32.store offset=12 - local.get 4 - local.get 9 - i32.store offset=8 - end - i32.const 0 - local.get 5 - i32.store offset=1048600 - i32.const 0 - local.get 3 - i32.store offset=1048588 - end - local.get 0 - i32.const 8 - i32.add - local.set 4 - end - local.get 1 - i32.const 16 - i32.add - global.set $__stack_pointer - local.get 4 - ) - (func $free (;10;) (type 4) (param i32) - local.get 0 - call $dlfree - ) - (func $dlfree (;11;) (type 4) (param i32) - (local i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - i32.eqz - br_if 0 (;@1;) - local.get 0 - i32.const -8 - i32.add - local.tee 1 - local.get 0 - i32.const -4 - i32.add - i32.load - local.tee 2 - i32.const -8 - i32.and - local.tee 0 - i32.add - local.set 3 - block ;; label = @2 - local.get 2 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 2 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 1 - local.get 1 - i32.load - local.tee 2 + local.tee 3 i32.sub - local.tee 1 - i32.const 0 - i32.load offset=1048596 - local.tee 4 + local.get 6 i32.lt_u - br_if 1 (;@1;) - local.get 2 - local.get 0 - i32.add - local.set 0 + br_if 0 (;@2;) block ;; label = @3 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@3;) block ;; label = @4 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 1 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 + local.get 3 + i32.const 72 i32.add - local.tee 6 - i32.eq - drop - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 2 + local.get 0 local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 + i32.sub + local.get 5 + i32.and + local.tee 0 + i32.le_u + br_if 0 (;@4;) local.get 4 + local.get 3 + i32.and + br_if 2 (;@2;) local.get 2 - i32.store offset=12 - br 2 (;@2;) - end - local.get 1 - i32.load offset=24 - local.set 7 - block ;; label = @4 - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 6 - local.get 1 - i32.eq - br_if 0 (;@5;) - local.get 1 - i32.load offset=8 - local.tee 2 - local.get 4 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 1 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 1 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - i32.const 0 - local.set 6 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@5;) - end - local.get 5 - i32.const 0 + local.get 7 + i32.load offset=8 + i32.const -4 + i32.and i32.store - end - local.get 7 - i32.eqz - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 1 - local.get 1 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 3 (;@2;) - end local.get 7 - i32.const 16 - i32.const 20 + i32.load + local.set 1 local.get 7 - i32.load offset=16 - local.get 1 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 2 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @4 - local.get 1 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 1 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - br 1 (;@2;) - end - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 0 (;@2;) - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 1 - local.get 3 - i32.ge_u - br_if 0 (;@1;) - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048592 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - return - end - local.get 2 - i32.const -8 - i32.and - local.get 0 - i32.add - local.set 0 - block ;; label = @4 - block ;; label = @5 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 3 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 2 - local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 2 - i32.store offset=12 - br 1 (;@4;) - end - local.get 3 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 6 - local.get 3 - i32.eq - br_if 0 (;@6;) - local.get 3 - i32.load offset=8 - local.tee 2 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 3 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 3 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 3 - local.get 3 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 3 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 3 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 3 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 0 - i32.store offset=1048588 - return - end - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 2 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 2 - local.set 0 - br 1 (;@3;) - end - local.get 2 - i32.load offset=8 - local.set 0 - end - local.get 0 - local.get 1 - i32.store offset=12 - local.get 2 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 2 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - return - end - i32.const 31 - local.set 2 - block ;; label = @2 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 2 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 2 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 2 - end - local.get 1 - local.get 2 - i32.store offset=28 - local.get 1 - i64.const 0 - i64.store offset=16 align=4 - local.get 2 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - block ;; label = @3 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 2 - i32.shl - local.tee 3 - i32.and - br_if 0 (;@3;) - local.get 4 - local.get 1 - i32.store - i32.const 0 - local.get 6 - local.get 3 - i32.or - i32.store offset=1048584 - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 1 - i32.store offset=12 - br 1 (;@2;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 2 - i32.const 1 - i32.shr_u - i32.sub - local.get 2 - i32.const 31 - i32.eq - select - i32.shl - local.set 2 - local.get 4 - i32.load - local.set 6 - block ;; label = @3 - loop ;; label = @4 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 1 (;@3;) - local.get 2 - i32.const 29 - i32.shr_u - local.set 6 - local.get 2 - i32.const 1 - i32.shl - local.set 2 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 6 - br_if 0 (;@4;) - end - local.get 3 - local.get 1 - i32.store - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=12 - local.get 1 - local.get 1 - i32.store offset=8 - br 1 (;@2;) - end - local.get 4 - i32.load offset=8 - local.tee 0 - local.get 1 - i32.store offset=12 - local.get 4 - local.get 1 - i32.store offset=8 - local.get 1 - i32.const 0 - i32.store offset=24 - local.get 1 - local.get 4 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - end - i32.const 0 - i32.const 0 - i32.load offset=1048612 - i32.const -1 - i32.add - local.tee 1 - i32.const -1 - local.get 1 - select - i32.store offset=1048612 - end - ) - (func $realloc (;12;) (type 1) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - block ;; label = @1 - local.get 1 - i32.const -64 - i32.lt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.set 2 - local.get 0 - i32.const -4 - i32.add - local.tee 3 - i32.load - local.tee 4 - i32.const -8 - i32.and - local.set 5 - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 4 - i32.const 3 - i32.and - br_if 0 (;@3;) - local.get 2 - i32.const 256 - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.const 4 - i32.or - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.sub - i32.const 0 - i32.load offset=1049060 - i32.const 1 - i32.shl - i32.le_u - br_if 2 (;@1;) - br 1 (;@2;) - end - local.get 0 - i32.const -8 - i32.add - local.tee 6 - local.get 5 - i32.add - local.set 7 - block ;; label = @3 - local.get 5 - local.get 2 - i32.lt_u - br_if 0 (;@3;) - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 2 (;@1;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 7 - local.get 7 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 1 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048592 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.le_u - br_if 1 (;@2;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.add - local.tee 1 - i32.store offset=1048604 - i32.const 0 - local.get 5 - local.get 2 - i32.sub - local.tee 2 - i32.store offset=1048592 - local.get 1 - local.get 2 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048588 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.lt_u - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 0 (;@5;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 6 - local.get 5 - i32.add - local.tee 5 - local.get 1 - i32.store - local.get 5 - local.get 5 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - br 1 (;@4;) - end - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 5 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 5 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 1 - i32.const 0 - local.set 2 - end - i32.const 0 - local.get 2 - i32.store offset=1048600 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 0 - return - end - local.get 7 - i32.load offset=4 - local.tee 8 - i32.const 2 - i32.and - br_if 0 (;@2;) - local.get 8 - i32.const -8 - i32.and - local.get 5 - i32.add - local.tee 9 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - local.get 9 - local.get 2 - i32.sub - local.set 10 - block ;; label = @3 - block ;; label = @4 - local.get 8 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 7 - i32.load offset=8 - local.tee 1 - local.get 8 - i32.const 3 - i32.shr_u - local.tee 11 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 8 - i32.eq - drop - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 5 - local.get 1 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 11 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@3;) - end - local.get 5 - local.get 8 - i32.eq - drop - local.get 5 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 5 - i32.store offset=12 - br 1 (;@3;) - end - local.get 7 - i32.load offset=24 - local.set 12 - block ;; label = @4 - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 8 - local.get 7 - i32.eq - br_if 0 (;@5;) - local.get 7 - i32.load offset=8 - local.tee 1 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 8 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 8 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 7 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 7 - i32.const 16 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - i32.const 0 - local.set 8 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 1 - local.set 11 - local.get 5 - local.tee 8 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 8 - i32.const 16 - i32.add - local.set 1 - local.get 8 - i32.load offset=16 - local.tee 5 - br_if 0 (;@5;) - end - local.get 11 - i32.const 0 - i32.store - end - local.get 12 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 7 - local.get 7 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 1 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 1 - local.get 8 - i32.store - local.get 8 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 12 - i32.const 16 - i32.const 20 - local.get 12 - i32.load offset=16 - local.get 7 - i32.eq - select - i32.add - local.get 8 - i32.store - local.get 8 - i32.eqz - br_if 1 (;@3;) - end - local.get 8 - local.get 12 - i32.store offset=24 - block ;; label = @4 - local.get 7 - i32.load offset=16 - local.tee 1 - i32.eqz - br_if 0 (;@4;) - local.get 8 - local.get 1 - i32.store offset=16 - local.get 1 - local.get 8 - i32.store offset=24 - end - local.get 7 - i32.load offset=20 - local.tee 1 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const 20 - i32.add - local.get 1 - i32.store - local.get 1 - local.get 8 - i32.store offset=24 - end - block ;; label = @3 - local.get 10 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 9 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 9 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 1 - local.get 10 - i32.const 3 - i32.or - i32.store offset=4 - local.get 6 - local.get 9 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 10 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @2 - local.get 1 - call $dlmalloc - local.tee 2 - br_if 0 (;@2;) - i32.const 0 - return - end - local.get 2 - local.get 0 - i32.const -4 - i32.const -8 - local.get 3 - i32.load - local.tee 5 - i32.const 3 - i32.and - select - local.get 5 - i32.const -8 - i32.and - i32.add - local.tee 5 - local.get 1 - local.get 5 - local.get 1 - i32.lt_u - select - call $memcpy - local.set 1 - local.get 0 - call $dlfree - local.get 1 - local.set 0 - end - local.get 0 - ) - (func $dispose_chunk (;13;) (type 5) (param i32 i32) - (local i32 i32 i32 i32 i32 i32) - local.get 0 - local.get 1 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 3 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 0 - i32.load - local.tee 3 - local.get 1 - i32.add - local.set 1 - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 3 - i32.sub - local.tee 0 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@4;) - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 0 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - local.get 0 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 2 (;@3;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 0 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 0 - i32.load offset=12 - local.tee 6 - local.get 0 - i32.eq - br_if 0 (;@6;) - local.get 0 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 0 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 3 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 3 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 2 (;@2;) - block ;; label = @5 - block ;; label = @6 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 4 (;@2;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 3 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 0 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 2 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - br 2 (;@2;) - end - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 1 (;@2;) - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 2 - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - end - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048592 - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048588 - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - return - end - local.get 3 - i32.const -8 - i32.and - local.get 1 - i32.add - local.set 1 - block ;; label = @4 - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 2 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - br 1 (;@4;) - end - local.get 2 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 6 - local.get 2 - i32.eq - br_if 0 (;@6;) - local.get 2 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 2 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 2 - i32.const 16 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 4 - local.set 5 - local.get 3 - local.tee 6 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 4 - local.get 6 - i32.load offset=16 - local.tee 3 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 2 - local.get 2 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 2 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 2 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 2 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 1 - i32.store offset=1048588 - return - end - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 1 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 1 - i32.const 3 - i32.shr_u - i32.shl - local.tee 1 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 1 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 1 - br 1 (;@3;) - end - local.get 3 - i32.load offset=8 - local.set 1 - end - local.get 1 - local.get 0 - i32.store offset=12 - local.get 3 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 3 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - return - end - i32.const 31 - local.set 3 - block ;; label = @2 - local.get 1 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const 38 - local.get 1 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 0 - local.get 3 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 3 - i32.shl - local.tee 2 - i32.and - br_if 0 (;@2;) - local.get 4 - local.get 0 - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.or - i32.store offset=1048584 - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - return - end - local.get 1 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 4 - i32.load - local.set 6 - block ;; label = @2 - loop ;; label = @3 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 1 - i32.eq - br_if 1 (;@2;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 6 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 6 - br_if 0 (;@3;) - end - local.get 2 - local.get 0 - i32.store - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - return - end - local.get 4 - i32.load offset=8 - local.tee 1 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - end - ) - (func $internal_memalign (;14;) (type 1) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const 16 - local.get 0 - i32.const 16 - i32.gt_u - select - local.tee 2 - local.get 2 - i32.const -1 - i32.add - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - i32.const 32 - local.set 3 - loop ;; label = @2 - local.get 3 - local.tee 0 - i32.const 1 - i32.shl - local.set 3 - local.get 0 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - end - end - block ;; label = @1 - i32.const -64 - local.get 0 - i32.sub - local.get 1 - i32.gt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - block ;; label = @1 - local.get 0 - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.tee 1 - i32.add - i32.const 12 - i32.add - call $dlmalloc - local.tee 3 - br_if 0 (;@1;) - i32.const 0 - return - end - local.get 3 - i32.const -8 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const -1 - i32.add - local.get 3 - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - local.get 3 - i32.const -4 - i32.add - local.tee 4 - i32.load - local.tee 5 - i32.const -8 - i32.and - local.get 3 - local.get 0 - i32.add - i32.const -1 - i32.add - i32.const 0 - local.get 0 - i32.sub - i32.and - i32.const -8 - i32.add - local.tee 3 - i32.const 0 - local.get 0 - local.get 3 - local.get 2 - i32.sub - i32.const 15 - i32.gt_u - select - i32.add - local.tee 0 - local.get 2 - i32.sub - local.tee 3 - i32.sub - local.set 6 - block ;; label = @2 - local.get 5 - i32.const 3 - i32.and - br_if 0 (;@2;) - local.get 0 - local.get 6 - i32.store offset=4 - local.get 0 - local.get 2 - i32.load - local.get 3 - i32.add - i32.store - br 1 (;@1;) - end - local.get 0 - local.get 6 - local.get 0 - i32.load offset=4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 6 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - local.get 4 - i32.load - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 2 - local.get 3 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 3 - call $dispose_chunk - end - block ;; label = @1 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@1;) - local.get 3 - i32.const -8 - i32.and - local.tee 2 - local.get 1 - i32.const 16 - i32.add - i32.le_u - br_if 0 (;@1;) - local.get 0 - local.get 1 - local.get 3 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.tee 3 - local.get 2 - local.get 1 - i32.sub - local.tee 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 2 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 1 - call $dispose_chunk - end - local.get 0 - i32.const 8 - i32.add - ) - (func $aligned_alloc (;15;) (type 1) (param i32 i32) (result i32) - block ;; label = @1 - local.get 0 - i32.const 16 - i32.gt_u - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - local.get 0 - local.get 1 - call $internal_memalign - ) - (func $abort (;16;) (type 0) - unreachable - unreachable - ) - (func $sbrk (;17;) (type 3) (param i32) (result i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - memory.size - i32.const 16 - i32.shl - return - end - block ;; label = @1 - local.get 0 - i32.const 65535 - i32.and - br_if 0 (;@1;) - local.get 0 - i32.const -1 - i32.le_s - br_if 0 (;@1;) - block ;; label = @2 - local.get 0 - i32.const 16 - i32.shr_u - memory.grow - local.tee 0 - i32.const -1 - i32.ne - br_if 0 (;@2;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const -1 - return - end - local.get 0 - i32.const 16 - i32.shl - return - end - call $abort - unreachable - ) - (func $memcpy (;18;) (type 6) (param i32 i32 i32) (result i32) - (local i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 32 - i32.gt_u - br_if 0 (;@3;) - local.get 1 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@2;) - local.get 2 - i32.eqz - br_if 1 (;@2;) + local.set 3 + br 1 (;@3;) + end + i32.const 0 + local.set 1 local.get 0 - local.get 1 - i32.load8_u - i32.store8 - local.get 2 - i32.const -1 - i32.add - local.set 3 + i32.const 0 + i32.store local.get 0 - i32.const 1 - i32.add - local.set 4 - local.get 1 - i32.const 1 + i32.const -8 i32.add - local.tee 5 - i32.const 3 + local.tee 3 + i64.const 0 + i64.store align=4 + local.get 3 + local.get 7 + i32.load + i32.const -4 i32.and - i32.eqz - br_if 2 (;@1;) + i32.store + block ;; label = @4 + local.get 7 + i32.load + local.tee 8 + i32.const -4 + i32.and + local.tee 0 + i32.eqz + br_if 0 (;@4;) + local.get 8 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 0 + local.get 0 + i32.load offset=4 + i32.const 3 + i32.and + local.get 3 + i32.or + i32.store offset=4 + local.get 3 + i32.load offset=4 + i32.const 3 + i32.and + local.set 1 + end local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 local.get 1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get 2 + local.get 7 + i32.or + i32.store offset=4 + local.get 7 + local.get 7 + i32.load offset=8 i32.const -2 - i32.add - local.set 3 - local.get 0 - i32.const 2 - i32.add - local.set 4 - local.get 1 - i32.const 2 - i32.add - local.tee 5 + i32.and + i32.store offset=8 + local.get 7 + local.get 7 + i32.load + local.tee 1 i32.const 3 i32.and - i32.eqz - br_if 2 (;@1;) local.get 3 - i32.eqz - br_if 2 (;@1;) + i32.or + local.tee 0 + i32.store + block ;; label = @4 + local.get 1 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 3 + i32.load + local.set 1 + br 1 (;@3;) + end + local.get 7 local.get 0 - local.get 1 - i32.load8_u offset=2 - i32.store8 offset=2 - local.get 2 i32.const -3 - i32.add - local.set 3 - local.get 0 - i32.const 3 - i32.add - local.set 4 - local.get 1 - i32.const 3 - i32.add - local.tee 5 - i32.const 3 i32.and - i32.eqz - br_if 2 (;@1;) + i32.store local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 - local.get 1 - i32.load8_u offset=3 - i32.store8 offset=3 - local.get 2 - i32.const -4 - i32.add - local.set 3 - local.get 0 - i32.const 4 - i32.add - local.set 4 - local.get 1 - i32.const 4 - i32.add - local.set 5 - br 2 (;@1;) + i32.load + i32.const 2 + i32.or + local.set 1 end - local.get 0 + local.get 3 local.get 1 - local.get 2 - memory.copy - local.get 0 + i32.const 1 + i32.or + i32.store + local.get 3 + i32.const 8 + i32.add return end local.get 2 + local.get 1 + i32.store + local.get 1 local.set 3 - local.get 0 - local.set 4 local.get 1 - local.set 5 + br_if 0 (;@1;) end + i32.const 0 + ) + (func $::alloc (;5;) (type 3) (param i32 i32 i32) (result i32) + (local i32 i32 i32) + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 3 + global.set $__stack_pointer block ;; label = @1 block ;; label = @2 - local.get 4 + local.get 2 + br_if 0 (;@2;) + local.get 1 + local.set 2 + br 1 (;@1;) + end + local.get 3 + local.get 0 + i32.load + i32.store offset=12 + block ;; label = @2 + local.get 2 i32.const 3 - i32.and + i32.add + local.tee 4 + i32.const 2 + i32.shr_u + local.tee 5 + local.get 1 + local.get 3 + i32.const 12 + i32.add + call $wee_alloc::alloc_first_fit local.tee 2 br_if 0 (;@2;) block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@4;) - local.get 3 - local.set 2 - br 1 (;@3;) - end - block ;; label = @4 - local.get 3 - i32.const -16 - i32.add - local.tee 2 - i32.const 16 - i32.and - br_if 0 (;@4;) - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - i32.const 16 - i32.add - local.set 4 - local.get 5 - i32.const 16 - i32.add - local.set 5 - local.get 2 - local.set 3 - end - local.get 2 - i32.const 16 - i32.lt_u - br_if 0 (;@3;) - local.get 3 - local.set 2 - loop ;; label = @4 - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - local.get 5 - i64.load offset=16 align=4 - i64.store offset=16 align=4 - local.get 4 - local.get 5 - i64.load offset=24 align=4 - i64.store offset=24 align=4 - local.get 4 - i32.const 32 - i32.add - local.set 4 - local.get 5 - i32.const 32 - i32.add - local.set 5 - local.get 2 - i32.const -32 - i32.add - local.tee 2 - i32.const 15 - i32.gt_u - br_if 0 (;@4;) - end - end - block ;; label = @3 - local.get 2 - i32.const 8 - i32.lt_u - br_if 0 (;@3;) local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 5 - i32.const 8 - i32.add - local.set 5 - local.get 4 - i32.const 8 - i32.add - local.set 4 - end - block ;; label = @3 - local.get 2 - i32.const 4 + i32.const -4 i32.and - i32.eqz - br_if 0 (;@3;) - local.get 4 - local.get 5 - i32.load - i32.store - local.get 5 - i32.const 4 - i32.add - local.set 5 - local.get 4 - i32.const 4 + local.tee 2 + local.get 1 + i32.const 3 + i32.shl + i32.const 512 i32.add - local.set 4 - end - block ;; label = @3 + local.tee 4 local.get 2 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@3;) local.get 4 - local.get 5 - i32.load16_u align=1 - i32.store16 align=1 - local.get 4 - i32.const 2 - i32.add - local.set 4 - local.get 5 - i32.const 2 + i32.gt_u + select + i32.const 65543 i32.add - local.set 5 + local.tee 4 + i32.const 16 + i32.shr_u + memory.grow + local.tee 2 + i32.const -1 + i32.ne + br_if 0 (;@3;) + i32.const 0 + local.set 2 + br 1 (;@2;) end local.get 2 - i32.const 1 - i32.and - i32.eqz - br_if 1 (;@1;) + i32.const 16 + i32.shl + local.tee 2 + i32.const 0 + i32.store offset=4 + local.get 2 + local.get 3 + i32.load offset=12 + i32.store offset=8 + local.get 2 + local.get 2 local.get 4 + i32.const -65536 + i32.and + i32.add + i32.const 2 + i32.or + i32.store + local.get 3 + local.get 2 + i32.store offset=12 local.get 5 - i32.load8_u - i32.store8 - local.get 0 - return + local.get 1 + local.get 3 + i32.const 12 + i32.add + call $wee_alloc::alloc_first_fit + local.set 2 end + local.get 0 + local.get 3 + i32.load offset=12 + i32.store + end + local.get 3 + i32.const 16 + i32.add + global.set $__stack_pointer + local.get 2 + ) + (func $::dealloc (;6;) (type 4) (param i32 i32 i32 i32) + (local i32 i32 i32 i32 i32 i32 i32) + block ;; label = @1 + local.get 1 + i32.eqz + br_if 0 (;@1;) + local.get 3 + i32.eqz + br_if 0 (;@1;) + local.get 0 + i32.load + local.set 4 + local.get 1 + i32.const 0 + i32.store + local.get 1 + i32.const -8 + i32.add + local.tee 3 + local.get 3 + i32.load + local.tee 5 + i32.const -2 + i32.and + local.tee 6 + i32.store block ;; label = @2 block ;; label = @3 block ;; label = @4 block ;; label = @5 + local.get 3 + i32.const 4 + i32.add + local.tee 7 + i32.load + i32.const -4 + i32.and + local.tee 8 + i32.eqz + br_if 0 (;@5;) + local.get 8 + i32.load + local.tee 9 + i32.const 1 + i32.and + br_if 0 (;@5;) block ;; label = @6 - local.get 3 - i32.const 32 - i32.lt_u - br_if 0 (;@6;) block ;; label = @7 block ;; label = @8 - local.get 2 - i32.const -1 - i32.add - br_table 3 (;@5;) 0 (;@8;) 1 (;@7;) 7 (;@1;) + local.get 5 + i32.const -4 + i32.and + local.tee 10 + br_if 0 (;@8;) + local.get 8 + local.set 1 + br 1 (;@7;) end - local.get 4 - local.get 5 - i32.load - i32.store16 align=1 - local.get 4 + local.get 8 + local.set 1 local.get 5 i32.const 2 - i32.add - i32.load align=2 - i32.store offset=2 - local.get 4 - local.get 5 - i32.const 6 - i32.add - i64.load align=2 - i64.store offset=6 align=4 - local.get 4 - i32.const 18 - i32.add - local.set 2 - local.get 5 - i32.const 18 - i32.add - local.set 1 - i32.const 14 + i32.and + br_if 0 (;@7;) + local.get 10 + local.get 10 + i32.load offset=4 + i32.const 3 + i32.and + local.get 8 + i32.or + i32.store offset=4 + local.get 3 + i32.load local.set 6 - local.get 5 - i32.const 14 - i32.add - i32.load align=2 - local.set 5 - i32.const 14 - local.set 3 - br 3 (;@4;) + local.get 7 + i32.load + local.tee 5 + i32.const -4 + i32.and + local.tee 1 + i32.eqz + br_if 1 (;@6;) + local.get 1 + i32.load + local.set 9 end - local.get 4 - local.get 5 + local.get 1 + local.get 6 + i32.const -4 + i32.and + local.get 9 + i32.const 3 + i32.and + i32.or + i32.store + local.get 7 i32.load - i32.store8 - local.get 4 - local.get 5 - i32.const 1 - i32.add - i32.load align=1 - i32.store offset=1 - local.get 4 - local.get 5 - i32.const 5 - i32.add - i64.load align=1 - i64.store offset=5 align=4 - local.get 4 - i32.const 17 - i32.add - local.set 2 - local.get 5 - i32.const 17 - i32.add - local.set 1 - i32.const 13 - local.set 6 - local.get 5 - i32.const 13 - i32.add - i32.load align=1 local.set 5 - i32.const 15 - local.set 3 - br 2 (;@4;) - end - block ;; label = @6 - block ;; label = @7 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@7;) - local.get 4 - local.set 2 - local.get 5 - local.set 1 - br 1 (;@6;) - end - local.get 4 - local.get 5 - i32.load8_u - i32.store8 - local.get 4 - local.get 5 - i32.load offset=1 align=1 - i32.store offset=1 align=1 - local.get 4 - local.get 5 - i64.load offset=5 align=1 - i64.store offset=5 align=1 - local.get 4 - local.get 5 - i32.load16_u offset=13 align=1 - i32.store16 offset=13 align=1 - local.get 4 - local.get 5 - i32.load8_u offset=15 - i32.store8 offset=15 - local.get 4 - i32.const 16 - i32.add - local.set 2 - local.get 5 - i32.const 16 - i32.add - local.set 1 + local.get 3 + i32.load + local.set 6 end + local.get 7 + local.get 5 + i32.const 3 + i32.and + i32.store local.get 3 - i32.const 8 + local.get 6 + i32.const 3 + i32.and + i32.store + local.get 6 + i32.const 2 i32.and - br_if 2 (;@3;) - br 3 (;@2;) + i32.eqz + br_if 1 (;@4;) + local.get 8 + local.get 8 + i32.load + i32.const 2 + i32.or + i32.store + br 1 (;@4;) end - local.get 4 - local.get 5 - i32.load - local.tee 2 - i32.store8 - local.get 4 - local.get 2 - i32.const 16 - i32.shr_u - i32.store8 offset=2 - local.get 4 - local.get 2 - i32.const 8 - i32.shr_u - i32.store8 offset=1 - local.get 4 - local.get 5 - i32.const 3 - i32.add - i32.load align=1 - i32.store offset=3 - local.get 4 - local.get 5 - i32.const 7 - i32.add - i64.load align=1 - i64.store offset=7 align=4 - local.get 4 - i32.const 19 - i32.add - local.set 2 local.get 5 - i32.const 19 - i32.add - local.set 1 - i32.const 15 - local.set 6 + i32.const -4 + i32.and + local.tee 8 + i32.eqz + br_if 1 (;@3;) local.get 5 - i32.const 15 - i32.add - i32.load align=1 - local.set 5 - i32.const 13 - local.set 3 + i32.const 2 + i32.and + br_if 1 (;@3;) + local.get 8 + i32.load8_u + i32.const 1 + i32.and + br_if 1 (;@3;) + local.get 1 + local.get 8 + i32.load offset=8 + i32.const -4 + i32.and + i32.store + local.get 8 + local.get 3 + i32.const 1 + i32.or + i32.store offset=8 end local.get 4 - local.get 6 - i32.add - local.get 5 - i32.store + local.set 3 + br 1 (;@2;) end - local.get 2 - local.get 1 - i64.load align=1 - i64.store align=1 - local.get 2 - i32.const 8 - i32.add - local.set 2 local.get 1 - i32.const 8 - i32.add - local.set 1 + local.get 4 + i32.store end + local.get 0 + local.get 3 + i32.store + end + ) + (func $wit_bindgen::rt::run_ctors_once (;7;) (type 0) + block ;; label = @1 + i32.const 0 + i32.load8_u offset=1048581 + br_if 0 (;@1;) + call $__wasm_call_ctors + i32.const 0 + i32.const 1 + i32.store8 offset=1048581 + end + ) + (func $cabi_realloc (;8;) (type 2) (param i32 i32 i32 i32) (result i32) + block ;; label = @1 block ;; label = @2 - local.get 3 - i32.const 4 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 + block ;; label = @3 + local.get 1 + br_if 0 (;@3;) + local.get 3 + i32.eqz + br_if 2 (;@1;) + i32.const 0 + i32.load8_u offset=1048580 + drop + local.get 3 + local.get 2 + call $__rust_alloc + local.set 2 + br 1 (;@2;) + end + local.get 0 local.get 1 - i32.load align=1 - i32.store align=1 local.get 2 - i32.const 4 - i32.add - local.set 2 - local.get 1 - i32.const 4 - i32.add - local.set 1 - end - block ;; label = @2 local.get 3 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 - local.get 1 - i32.load16_u align=1 - i32.store16 align=1 - local.get 2 - i32.const 2 - i32.add + call $__rust_realloc local.set 2 - local.get 1 - i32.const 2 - i32.add - local.set 1 end - local.get 3 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) local.get 2 - local.get 1 - i32.load8_u - i32.store8 + br_if 0 (;@1;) + unreachable + unreachable end - local.get 0 + local.get 2 ) (table (;0;) 1 1 funcref) (memory (;0;) 17) diff --git a/tests/integration/expected/components/bindings/adder_wasm_component_bindings.rs b/tests/integration/expected/components/bindings/adder_wasm_component_bindings.rs deleted file mode 100644 index 2bf8cc119..000000000 --- a/tests/integration/expected/components/bindings/adder_wasm_component_bindings.rs +++ /dev/null @@ -1,42 +0,0 @@ -// Generated by `wit-bindgen` 0.16.0. DO NOT EDIT! -const _: () = { - - #[doc(hidden)] - #[export_name = "add"] - #[allow(non_snake_case)] - unsafe extern "C" fn __export_add(arg0: i32,arg1: i32,) -> i32 { - #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; - - // Before executing any other code, use this function to run all static - // constructors, if they have not yet been run. This is a hack required - // to work around wasi-libc ctors calling import functions to initialize - // the environment. - // - // This functionality will be removed once rust 1.69.0 is stable, at which - // point wasi-libc will no longer have this behavior. - // - // See - // https://github.com/bytecodealliance/preview2-prototyping/issues/99 - // for more details. - #[cfg(target_arch="wasm32")] - ::cargo_component_bindings::rt::run_ctors_once(); - - let result0 = <_GuestImpl as Guest>::add(arg0, arg1); - ::cargo_component_bindings::rt::as_i32(result0) - } -}; -use super::Component as _GuestImpl; -pub trait Guest { - fn add(a: i32,b: i32,) -> i32; -} - -#[cfg(target_arch = "wasm32")] -#[link_section = "component-type:adder"] -#[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 174] = [3, 0, 5, 97, 100, 100, 101, 114, 0, 97, 115, 109, 13, 0, 1, 0, 7, 53, 1, 65, 2, 1, 65, 2, 1, 64, 2, 1, 97, 122, 1, 98, 122, 0, 122, 4, 0, 3, 97, 100, 100, 1, 0, 4, 1, 23, 109, 105, 100, 101, 110, 58, 97, 100, 100, 101, 114, 47, 97, 100, 100, 101, 114, 64, 49, 46, 48, 46, 48, 4, 0, 11, 11, 1, 0, 5, 97, 100, 100, 101, 114, 3, 0, 0, 0, 16, 12, 112, 97, 99, 107, 97, 103, 101, 45, 100, 111, 99, 115, 0, 123, 125, 0, 70, 9, 112, 114, 111, 100, 117, 99, 101, 114, 115, 1, 12, 112, 114, 111, 99, 101, 115, 115, 101, 100, 45, 98, 121, 2, 13, 119, 105, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 6, 48, 46, 49, 56, 46, 50, 16, 119, 105, 116, 45, 98, 105, 110, 100, 103, 101, 110, 45, 114, 117, 115, 116, 6, 48, 46, 49, 54, 46, 48]; - -#[inline(never)] -#[doc(hidden)] -#[cfg(target_arch = "wasm32")] -pub fn __link_section() {} diff --git a/tests/integration/expected/components/inc_wasm_component.wat b/tests/integration/expected/components/inc_wasm_component.wat index 8fd5ff811..8a6d76a60 100644 --- a/tests/integration/expected/components/inc_wasm_component.wat +++ b/tests/integration/expected/components/inc_wasm_component.wat @@ -11,9 +11,8 @@ (type (;1;) (func)) (type (;2;) (func (param i32) (result i32))) (type (;3;) (func (param i32 i32 i32 i32) (result i32))) - (type (;4;) (func (param i32))) - (type (;5;) (func (param i32 i32))) - (type (;6;) (func (param i32 i32 i32) (result i32))) + (type (;4;) (func (param i32 i32 i32) (result i32))) + (type (;5;) (func (param i32 i32 i32 i32))) (import "miden:add/add@1.0.0" "add" (func $inc_wasm_component::bindings::miden::add::add::add::wit_import (;0;) (type 0))) (func $__wasm_call_ctors (;1;) (type 1)) (func $inc (;2;) (type 2) (param i32) (result i32) @@ -23,6094 +22,651 @@ call $inc_wasm_component::bindings::miden::add::add::add::wit_import ) (func $__rust_alloc (;3;) (type 0) (param i32 i32) (result i32) - (local i32) - local.get 0 + i32.const 1048576 local.get 1 - call $__rdl_alloc - local.set 2 - local.get 2 - return + local.get 0 + call $::alloc ) (func $__rust_realloc (;4;) (type 3) (param i32 i32 i32 i32) (result i32) (local i32) - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rdl_realloc - local.set 4 - local.get 4 - return - ) - (func $wit_bindgen::rt::run_ctors_once (;5;) (type 1) - block ;; label = @1 - i32.const 0 - i32.load8_u offset=1048577 - br_if 0 (;@1;) - call $__wasm_call_ctors - i32.const 0 - i32.const 1 - i32.store8 offset=1048577 - end - ) - (func $cabi_realloc (;6;) (type 3) (param i32 i32 i32 i32) (result i32) block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 1 - br_if 0 (;@3;) - local.get 3 - i32.eqz - br_if 2 (;@1;) - i32.const 0 - i32.load8_u offset=1048576 - drop - local.get 3 - local.get 2 - call $__rust_alloc - local.set 2 - br 1 (;@2;) - end - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rust_realloc - local.set 2 - end + i32.const 1048576 local.get 2 + local.get 3 + call $::alloc + local.tee 4 + i32.eqz br_if 0 (;@1;) - unreachable - unreachable - end - local.get 2 - ) - (func $__rdl_alloc (;7;) (type 0) (param i32 i32) (result i32) - (local i32) - block ;; label = @1 - block ;; label = @2 - local.get 1 - i32.const 8 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - local.get 0 - i32.le_u - br_if 1 (;@1;) - end + local.get 4 + local.get 0 local.get 1 + local.get 3 local.get 1 + local.get 3 + i32.lt_u + select + memory.copy + i32.const 1048576 local.get 0 + local.get 2 local.get 1 - i32.rem_u - local.tee 2 - i32.sub - i32.const 0 + call $::dealloc + end + local.get 4 + ) + (func $wee_alloc::alloc_first_fit (;5;) (type 4) (param i32 i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32) + block ;; label = @1 local.get 2 - select - local.get 0 - i32.add - call $aligned_alloc + i32.load + local.tee 3 + br_if 0 (;@1;) + i32.const 0 return end + local.get 1 + i32.const -1 + i32.add + local.set 4 + i32.const 0 + local.get 1 + i32.sub + local.set 5 local.get 0 - call $malloc - ) - (func $__rdl_realloc (;8;) (type 3) (param i32 i32 i32 i32) (result i32) - (local i32 i32) - block ;; label = @1 + i32.const 2 + i32.shl + local.set 6 + loop ;; label = @1 block ;; label = @2 block ;; label = @3 - local.get 2 - i32.const 8 - i32.gt_u + local.get 3 + i32.load offset=8 + local.tee 1 + i32.const 1 + i32.and br_if 0 (;@3;) - local.get 2 local.get 3 - i32.le_u - br_if 1 (;@2;) + local.set 7 + br 1 (;@2;) end - i32.const 0 - local.set 4 - local.get 2 - local.get 2 - local.get 3 - local.get 2 - i32.rem_u - local.tee 5 - i32.sub - i32.const 0 - local.get 5 - select - local.get 3 - i32.add - call $aligned_alloc - local.tee 2 - i32.eqz - br_if 1 (;@1;) - local.get 2 - local.get 0 - local.get 1 - local.get 3 - local.get 1 - local.get 3 - i32.lt_u - select - call $memcpy - local.set 2 - local.get 0 - call $free - local.get 2 - return - end - local.get 0 - local.get 3 - call $realloc - local.set 4 - end - local.get 4 - ) - (func $malloc (;9;) (type 2) (param i32) (result i32) - local.get 0 - call $dlmalloc - ) - (func $dlmalloc (;10;) (type 2) (param i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - global.get $__stack_pointer - i32.const 16 - i32.sub - local.tee 1 - global.set $__stack_pointer - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 + loop ;; label = @3 + local.get 3 + local.get 1 + i32.const -2 + i32.and + i32.store offset=8 block ;; label = @4 block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048604 - local.tee 2 - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - local.tee 3 - br_if 0 (;@13;) - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 8 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - local.tee 3 - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - end - i32.const 1114112 - i32.const 1049088 - i32.lt_u - br_if 1 (;@11;) - i32.const 0 - local.set 2 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const 89 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - local.set 4 - i32.const 0 - i32.const 1049088 - i32.store offset=1049028 - i32.const 0 - i32.const 1049088 - i32.store offset=1048596 - i32.const 0 - local.get 3 - i32.store offset=1048616 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.store offset=1049032 - loop ;; label = @13 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@13;) - end - i32.const 1049088 - i32.const -8 - i32.const 1049088 - i32.sub - i32.const 15 - i32.and - i32.const 0 - i32.const 1049088 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - i32.const 4 - i32.add - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const -56 - i32.add - local.tee 3 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 3 - i32.const 1049088 - i32.add - i32.const 4 - i32.add - i32.const 56 - i32.store - end - block ;; label = @12 - block ;; label = @13 - local.get 0 - i32.const 236 - i32.gt_u - br_if 0 (;@13;) - block ;; label = @14 - i32.const 0 - i32.load offset=1048580 - local.tee 6 - i32.const 16 - local.get 0 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 0 - i32.const 11 - i32.lt_u - select - local.tee 7 - i32.const 3 - i32.shr_u - local.tee 3 - i32.shr_u - local.tee 4 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - i32.const 1 - i32.and - local.get 3 - i32.or - i32.const 1 - i32.xor - local.tee 5 - i32.const 3 - i32.shl - local.tee 3 - i32.const 1048620 - i32.add - local.tee 4 - local.get 3 - i32.const 1048628 - i32.add - i32.load - local.tee 3 - i32.load offset=8 - local.tee 7 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 4 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 4 - i32.store offset=12 - end - local.get 3 - i32.const 8 - i32.add - local.set 4 - local.get 3 - local.get 5 - i32.const 3 - i32.shl - local.tee 5 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 5 - i32.add - local.tee 3 - local.get 3 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 13 (;@1;) - end - local.get 7 - i32.const 0 - i32.load offset=1048588 - local.tee 8 - i32.le_u - br_if 1 (;@12;) - block ;; label = @14 - local.get 4 - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - local.get 3 - i32.shl - i32.const 2 - local.get 3 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - i32.and - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - local.tee 3 - i32.const 3 - i32.shl - local.tee 4 - i32.const 1048620 - i32.add - local.tee 5 - local.get 4 - i32.const 1048628 - i32.add - i32.load - local.tee 4 - i32.load offset=8 - local.tee 0 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 3 - i32.rotl - i32.and - local.tee 6 - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 5 - i32.store offset=12 - end - local.get 4 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - i32.const 3 - i32.shl - local.tee 3 - i32.add - local.get 3 - local.get 7 - i32.sub - local.tee 5 - i32.store - local.get 4 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @15 - local.get 8 - i32.eqz - br_if 0 (;@15;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @16 - block ;; label = @17 - local.get 6 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - i32.and - br_if 0 (;@17;) - i32.const 0 - local.get 6 - local.get 9 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@16;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 9 - i32.store offset=8 - end - local.get 4 - i32.const 8 - i32.add - local.set 4 - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - local.get 5 - i32.store offset=1048588 - br 13 (;@1;) - end - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 1 (;@12;) - local.get 10 - i32.const 0 - local.get 10 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 0 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.set 3 - local.get 0 - local.set 5 - block ;; label = @14 - loop ;; label = @15 - block ;; label = @16 - local.get 5 - i32.load offset=16 - local.tee 4 - br_if 0 (;@16;) - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 2 (;@14;) - end - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 5 - local.get 3 - local.get 5 - local.get 3 - i32.lt_u - local.tee 5 - select - local.set 3 - local.get 4 - local.get 0 - local.get 5 - select - local.set 0 - local.get 4 - local.set 5 - br 0 (;@15;) - end - end - local.get 0 - i32.load offset=24 - local.set 11 - block ;; label = @14 - local.get 0 - i32.load offset=12 - local.tee 9 - local.get 0 - i32.eq - br_if 0 (;@14;) - local.get 0 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 9 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 9 - i32.store offset=12 - br 12 (;@2;) - end - block ;; label = @14 - local.get 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@10;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @14 - local.get 5 - local.set 2 - local.get 4 - local.tee 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - local.get 9 - i32.load offset=16 - local.tee 4 - br_if 0 (;@14;) - end - local.get 2 - i32.const 0 - i32.store - br 11 (;@2;) - end - i32.const -1 - local.set 7 - local.get 0 - i32.const -65 - i32.gt_u - br_if 0 (;@12;) - local.get 0 - i32.const 19 - i32.add - local.tee 4 - i32.const -16 - i32.and - local.set 7 - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 0 (;@12;) - i32.const 0 - local.set 8 - block ;; label = @13 - local.get 7 - i32.const 256 - i32.lt_u - br_if 0 (;@13;) - i32.const 31 - local.set 8 - local.get 7 - i32.const 16777215 - i32.gt_u - br_if 0 (;@13;) - local.get 7 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 8 - end - i32.const 0 - local.get 7 - i32.sub - local.set 3 - block ;; label = @13 - block ;; label = @14 - block ;; label = @15 - block ;; label = @16 - local.get 8 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 5 - br_if 0 (;@16;) - i32.const 0 - local.set 4 - i32.const 0 - local.set 9 - br 1 (;@15;) - end - i32.const 0 - local.set 4 - local.get 7 - i32.const 0 - i32.const 25 - local.get 8 - i32.const 1 - i32.shr_u - i32.sub - local.get 8 - i32.const 31 - i32.eq - select - i32.shl - local.set 0 - i32.const 0 - local.set 9 - loop ;; label = @16 - block ;; label = @17 - local.get 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.ge_u - br_if 0 (;@17;) - local.get 6 - local.set 3 - local.get 5 - local.set 9 - local.get 6 - br_if 0 (;@17;) - i32.const 0 - local.set 3 - local.get 5 - local.set 9 - local.get 5 - local.set 4 - br 3 (;@14;) - end - local.get 4 - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 6 - local.get 6 - local.get 5 - local.get 0 - i32.const 29 - i32.shr_u - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - i32.load - local.tee 5 - i32.eq - select - local.get 4 - local.get 6 - select - local.set 4 - local.get 0 - i32.const 1 - i32.shl - local.set 0 - local.get 5 - br_if 0 (;@16;) - end - end - block ;; label = @15 - local.get 4 - local.get 9 - i32.or - br_if 0 (;@15;) - i32.const 0 - local.set 9 - i32.const 2 - local.get 8 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - local.get 10 - i32.and - local.tee 4 - i32.eqz - br_if 3 (;@12;) - local.get 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.set 4 - end - local.get 4 - i32.eqz - br_if 1 (;@13;) - end - loop ;; label = @14 - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.lt_u - local.set 0 - block ;; label = @15 - local.get 4 - i32.load offset=16 - local.tee 5 - br_if 0 (;@15;) - local.get 4 - i32.const 20 - i32.add - i32.load - local.set 5 - end - local.get 6 - local.get 3 - local.get 0 - select - local.set 3 - local.get 4 - local.get 9 - local.get 0 - select - local.set 9 - local.get 5 - local.set 4 - local.get 5 - br_if 0 (;@14;) - end - end - local.get 9 - i32.eqz - br_if 0 (;@12;) - local.get 3 - i32.const 0 - i32.load offset=1048588 - local.get 7 - i32.sub - i32.ge_u - br_if 0 (;@12;) - local.get 9 - i32.load offset=24 - local.set 2 - block ;; label = @13 - local.get 9 - i32.load offset=12 - local.tee 0 - local.get 9 - i32.eq - br_if 0 (;@13;) - local.get 9 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 0 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 0 - i32.store offset=12 - br 10 (;@3;) - end - block ;; label = @13 - local.get 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 9 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@9;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @13 - local.get 5 - local.set 6 - local.get 4 - local.tee 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - local.get 0 - i32.load offset=16 - local.tee 4 - br_if 0 (;@13;) - end - local.get 6 - i32.const 0 - i32.store - br 9 (;@3;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048588 - local.tee 4 - local.get 7 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @13 - block ;; label = @14 - local.get 4 - local.get 7 - i32.sub - local.tee 5 - i32.const 16 - i32.lt_u - br_if 0 (;@14;) - local.get 3 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.get 5 - i32.store - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - br 1 (;@13;) - end - local.get 3 - local.get 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 0 - i32.const 0 - local.set 5 - end - i32.const 0 - local.get 5 - i32.store offset=1048588 - i32.const 0 - local.get 0 - i32.store offset=1048600 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048592 - local.tee 5 - local.get 7 - i32.le_u - br_if 0 (;@12;) - local.get 2 - local.get 7 - i32.add - local.tee 4 - local.get 5 - local.get 7 - i32.sub - local.tee 3 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048604 - i32.const 0 - local.get 3 - i32.store offset=1048592 - local.get 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - i32.eqz - br_if 0 (;@13;) - i32.const 0 - i32.load offset=1049060 - local.set 3 - br 1 (;@12;) - end - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 12 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - i32.const 65536 - local.set 3 - end - i32.const 0 - local.set 4 - block ;; label = @12 - local.get 3 - local.get 7 - i32.const 71 - i32.add - local.tee 8 - i32.add - local.tee 0 - i32.const 0 - local.get 3 - i32.sub - local.tee 6 - i32.and - local.tee 9 - local.get 7 - i32.gt_u - br_if 0 (;@12;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 9 - i32.add - local.tee 10 - local.get 3 - i32.le_u - br_if 0 (;@13;) - local.get 10 - local.get 4 - i32.le_u - br_if 1 (;@12;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - i32.const 0 - i32.load8_u offset=1049024 - i32.const 4 - i32.and - br_if 5 (;@6;) - block ;; label = @12 - block ;; label = @13 - block ;; label = @14 - local.get 2 - i32.eqz - br_if 0 (;@14;) - i32.const 1049028 - local.set 4 - loop ;; label = @15 - block ;; label = @16 - local.get 4 - i32.load - local.tee 3 - local.get 2 - i32.gt_u - br_if 0 (;@16;) - local.get 3 - local.get 4 - i32.load offset=4 - i32.add - local.get 2 - i32.gt_u - br_if 3 (;@13;) - end - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@15;) - end - end - i32.const 0 - call $sbrk - local.tee 0 - i32.const -1 - i32.eq - br_if 6 (;@7;) - local.get 9 - local.set 6 - block ;; label = @14 - i32.const 0 - i32.load offset=1049056 - local.tee 4 - i32.const -1 - i32.add - local.tee 3 - local.get 0 - i32.and - i32.eqz - br_if 0 (;@14;) - local.get 9 - local.get 0 - i32.sub - local.get 3 - local.get 0 - i32.add - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.add - local.set 6 - end - local.get 6 - local.get 7 - i32.le_u - br_if 6 (;@7;) - local.get 6 - i32.const 2147483646 - i32.gt_u - br_if 6 (;@7;) - block ;; label = @14 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@14;) - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 6 - i32.add - local.tee 5 - local.get 3 - i32.le_u - br_if 7 (;@7;) - local.get 5 - local.get 4 - i32.gt_u - br_if 7 (;@7;) - end - local.get 6 - call $sbrk - local.tee 4 - local.get 0 - i32.ne - br_if 1 (;@12;) - br 8 (;@5;) - end - local.get 0 - local.get 5 - i32.sub - local.get 6 - i32.and - local.tee 6 - i32.const 2147483646 - i32.gt_u - br_if 5 (;@7;) - local.get 6 - call $sbrk - local.tee 0 - local.get 4 - i32.load - local.get 4 - i32.load offset=4 - i32.add - i32.eq - br_if 4 (;@8;) - local.get 0 - local.set 4 - end - block ;; label = @12 - local.get 4 - i32.const -1 - i32.eq - br_if 0 (;@12;) - local.get 7 - i32.const 72 - i32.add - local.get 6 - i32.le_u - br_if 0 (;@12;) - block ;; label = @13 - local.get 8 - local.get 6 - i32.sub - i32.const 0 - i32.load offset=1049060 - local.tee 3 - i32.add - i32.const 0 - local.get 3 - i32.sub - i32.and - local.tee 3 - i32.const 2147483646 - i32.le_u - br_if 0 (;@13;) - local.get 4 - local.set 0 - br 8 (;@5;) - end - block ;; label = @13 - local.get 3 - call $sbrk - i32.const -1 - i32.eq - br_if 0 (;@13;) - local.get 3 - local.get 6 - i32.add - local.set 6 - local.get 4 - local.set 0 - br 8 (;@5;) - end - i32.const 0 - local.get 6 - i32.sub - call $sbrk - drop - br 5 (;@7;) - end - local.get 4 - local.set 0 - local.get 4 - i32.const -1 - i32.ne - br_if 6 (;@5;) - br 4 (;@7;) - end - unreachable - unreachable - end - i32.const 0 - local.set 9 - br 7 (;@2;) - end - i32.const 0 - local.set 0 - br 5 (;@3;) - end - local.get 0 - i32.const -1 - i32.ne - br_if 2 (;@5;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049024 - i32.const 4 - i32.or - i32.store offset=1049024 - end - local.get 9 - i32.const 2147483646 - i32.gt_u - br_if 1 (;@4;) - local.get 9 - call $sbrk - local.set 0 - i32.const 0 - call $sbrk - local.set 4 - local.get 0 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@4;) - local.get 4 - local.get 0 - i32.sub - local.tee 6 - local.get 7 - i32.const 56 - i32.add - i32.le_u - br_if 1 (;@4;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049012 - local.get 6 - i32.add - local.tee 4 - i32.store offset=1049012 - block ;; label = @5 - local.get 4 - i32.const 0 - i32.load offset=1049016 - i32.le_u - br_if 0 (;@5;) - i32.const 0 - local.get 4 - i32.store offset=1049016 - end - block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - i32.const 0 - i32.load offset=1048604 - local.tee 3 - i32.eqz - br_if 0 (;@8;) - i32.const 1049028 - local.set 4 - loop ;; label = @9 - local.get 0 - local.get 4 - i32.load - local.tee 5 - local.get 4 - i32.load offset=4 - local.tee 9 - i32.add - i32.eq - br_if 2 (;@7;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@9;) - br 3 (;@6;) - end - end - block ;; label = @8 - block ;; label = @9 - i32.const 0 - i32.load offset=1048596 - local.tee 4 - i32.eqz - br_if 0 (;@9;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@8;) - end - i32.const 0 - local.get 0 - i32.store offset=1048596 - end - i32.const 0 - local.set 4 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 0 - i32.load offset=1049052 - i32.store offset=1048616 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - loop ;; label = @8 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@8;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 3 - local.get 6 - i32.const -56 - i32.add - local.tee 5 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 3 - i32.store offset=1048604 - local.get 0 - local.get 5 - i32.add - i32.const 56 - i32.store offset=4 - br 2 (;@5;) - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - br_if 0 (;@6;) - local.get 3 - local.get 5 - i32.lt_u - br_if 0 (;@6;) - local.get 3 - local.get 0 - i32.ge_u - br_if 0 (;@6;) - local.get 3 - i32.const -8 - local.get 3 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 3 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 5 - i32.add - local.tee 0 - i32.const 0 - i32.load offset=1048592 - local.get 6 - i32.add - local.tee 2 - local.get 5 - i32.sub - local.tee 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 9 - local.get 6 - i32.add - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 5 - i32.store offset=1048592 - i32.const 0 - local.get 0 - i32.store offset=1048604 - local.get 3 - local.get 2 - i32.add - i32.const 56 - i32.store offset=4 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 0 - i32.load offset=1048596 - local.tee 9 - i32.ge_u - br_if 0 (;@6;) - i32.const 0 - local.get 0 - i32.store offset=1048596 - local.get 0 - local.set 9 - end - local.get 0 - local.get 6 - i32.add - local.set 5 - i32.const 1049028 - local.set 4 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - loop ;; label = @13 - local.get 4 - i32.load - local.get 5 - i32.eq - br_if 1 (;@12;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@13;) - br 2 (;@11;) - end - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - i32.eqz - br_if 1 (;@10;) - end - i32.const 1049028 - local.set 4 - loop ;; label = @11 - block ;; label = @12 - local.get 4 - i32.load - local.tee 5 - local.get 3 - i32.gt_u - br_if 0 (;@12;) - local.get 5 - local.get 4 - i32.load offset=4 - i32.add - local.tee 5 - local.get 3 - i32.gt_u - br_if 3 (;@9;) - end - local.get 4 - i32.load offset=8 - local.set 4 - br 0 (;@11;) - end - end - local.get 4 - local.get 0 - i32.store - local.get 4 - local.get 4 - i32.load offset=4 - local.get 6 - i32.add - i32.store offset=4 - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - i32.const -8 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 6 - local.get 2 - local.get 7 - i32.add - local.tee 7 - i32.sub - local.set 4 - block ;; label = @10 - local.get 6 - local.get 3 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048592 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048588 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 1 - i32.ne - br_if 0 (;@10;) - local.get 3 - i32.const -8 - i32.and - local.set 8 - block ;; label = @11 - block ;; label = @12 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@12;) - local.get 6 - i32.load offset=8 - local.tee 5 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 9 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 0 - i32.eq - drop - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 3 - local.get 5 - i32.ne - br_if 0 (;@13;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 9 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@11;) - end - local.get 3 - local.get 0 - i32.eq - drop - local.get 3 - local.get 5 - i32.store offset=8 - local.get 5 - local.get 3 - i32.store offset=12 - br 1 (;@11;) - end - local.get 6 - i32.load offset=24 - local.set 10 - block ;; label = @12 - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 0 - local.get 6 - i32.eq - br_if 0 (;@13;) - local.get 6 - i32.load offset=8 - local.tee 3 - local.get 9 - i32.lt_u - drop - local.get 0 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 0 - i32.store offset=12 - br 1 (;@12;) - end - block ;; label = @13 - local.get 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 6 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - i32.const 0 - local.set 0 - br 1 (;@12;) - end - loop ;; label = @13 - local.get 3 - local.set 9 - local.get 5 - local.tee 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 3 - local.get 0 - i32.load offset=16 - local.tee 5 - br_if 0 (;@13;) - end - local.get 9 - i32.const 0 - i32.store - end - local.get 10 - i32.eqz - br_if 0 (;@11;) - block ;; label = @12 - block ;; label = @13 - local.get 6 - local.get 6 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@13;) - local.get 3 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@12;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@11;) - end - local.get 10 - i32.const 16 - i32.const 20 - local.get 10 - i32.load offset=16 - local.get 6 - i32.eq - select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@11;) - end - local.get 0 - local.get 10 - i32.store offset=24 - block ;; label = @12 - local.get 6 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@12;) - local.get 0 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 6 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@11;) - local.get 0 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 8 - local.get 4 - i32.add - local.set 4 - local.get 6 - local.get 8 - i32.add - local.tee 6 - i32.load offset=4 - local.set 3 - end - local.get 6 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @10 - local.get 4 - i32.const 255 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 4 - i32.const 3 - i32.shr_u - i32.shl - local.tee 4 - i32.and - br_if 0 (;@12;) - i32.const 0 - local.get 5 - local.get 4 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 4 - br 1 (;@11;) - end - local.get 3 - i32.load offset=8 - local.set 4 - end - local.get 4 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - br 3 (;@7;) - end - i32.const 31 - local.set 3 - block ;; label = @10 - local.get 4 - i32.const 16777215 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 7 - local.get 3 - i32.store offset=28 - local.get 7 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @10 - i32.const 0 - i32.load offset=1048584 - local.tee 0 - i32.const 1 - local.get 3 - i32.shl - local.tee 9 - i32.and - br_if 0 (;@10;) - local.get 5 - local.get 7 - i32.store - i32.const 0 - local.get 0 - local.get 9 - i32.or - i32.store offset=1048584 - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 7 - i32.store offset=12 - br 3 (;@7;) - end - local.get 4 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 5 - i32.load - local.set 0 - loop ;; label = @10 - local.get 0 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 4 - i32.eq - br_if 2 (;@8;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 0 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 5 - local.get 0 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 9 - i32.load - local.tee 0 - br_if 0 (;@10;) - end - local.get 9 - local.get 7 - i32.store - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=12 - local.get 7 - local.get 7 - i32.store offset=8 - br 2 (;@7;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - local.get 6 - i32.const -56 - i32.add - local.tee 9 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 9 - i32.add - i32.const 56 - i32.store offset=4 - local.get 3 - local.get 5 - i32.const 55 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const -55 - i32.add - i32.const 15 - i32.and - select - i32.add - i32.const -63 - i32.add - local.tee 9 - local.get 9 - local.get 3 - i32.const 16 - i32.add - i32.lt_u - select - local.tee 9 - i32.const 35 - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 9 - i32.const 16 - i32.add - i32.const 0 - i64.load offset=1049036 align=4 - i64.store align=4 - local.get 9 - i32.const 0 - i64.load offset=1049028 align=4 - i64.store offset=8 align=4 - i32.const 0 - local.get 9 - i32.const 8 - i32.add - i32.store offset=1049036 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - local.get 9 - i32.const 36 - i32.add - local.set 4 - loop ;; label = @9 - local.get 4 - i32.const 7 - i32.store - local.get 4 - i32.const 4 - i32.add - local.tee 4 - local.get 5 - i32.lt_u - br_if 0 (;@9;) - end - local.get 9 - local.get 3 - i32.eq - br_if 3 (;@5;) - local.get 9 - local.get 9 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - local.get 9 - local.get 9 - local.get 3 - i32.sub - local.tee 0 - i32.store - local.get 3 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @9 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @10 - block ;; label = @11 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@11;) - i32.const 0 - local.get 5 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 5 - br 1 (;@10;) - end - local.get 4 - i32.load offset=8 - local.set 5 - end - local.get 5 - local.get 3 - i32.store offset=12 - local.get 4 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 4 - i32.store offset=12 - local.get 3 - local.get 5 - i32.store offset=8 - br 4 (;@5;) - end - i32.const 31 - local.set 4 - block ;; label = @9 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 - end - local.get 3 - local.get 4 - i32.store offset=28 - local.get 3 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @9 - i32.const 0 - i32.load offset=1048584 - local.tee 9 - i32.const 1 - local.get 4 - i32.shl - local.tee 6 - i32.and - br_if 0 (;@9;) - local.get 5 - local.get 3 - i32.store - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048584 - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 3 - i32.store offset=12 - br 4 (;@5;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 9 - loop ;; label = @9 - local.get 9 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 3 (;@6;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 9 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 9 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 9 - br_if 0 (;@9;) - end - local.get 6 - local.get 3 - i32.store - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=12 - local.get 3 - local.get 3 - i32.store offset=8 - br 3 (;@5;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 7 - i32.store offset=12 - local.get 5 - local.get 7 - i32.store offset=8 - local.get 7 - i32.const 0 - i32.store offset=24 - local.get 7 - local.get 5 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - end - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 5 (;@1;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.store offset=12 - local.get 5 - local.get 3 - i32.store offset=8 local.get 3 + i32.load offset=4 + local.tee 8 + i32.const -4 + i32.and + local.tee 1 + br_if 0 (;@5;) i32.const 0 - i32.store offset=24 - local.get 3 - local.get 5 - i32.store offset=12 - local.get 3 - local.get 4 - i32.store offset=8 + local.set 7 + br 1 (;@4;) end i32.const 0 - i32.load offset=1048592 - local.tee 4 - local.get 7 - i32.le_u - br_if 0 (;@4;) - i32.const 0 - i32.load offset=1048604 - local.tee 3 - local.get 7 - i32.add - local.tee 5 - local.get 4 - local.get 7 - i32.sub - local.tee 4 + local.get 1 + local.get 1 + i32.load8_u i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 5 - i32.store offset=1048604 - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 3 (;@1;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 2 (;@1;) - end - block ;; label = @3 - local.get 2 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 9 - local.get 9 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 4 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@4;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - local.tee 10 - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 2 - i32.const 16 - i32.const 20 - local.get 2 - i32.load offset=16 - local.get 9 - i32.eq + i32.and select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@3;) + local.set 7 end - local.get 0 - local.get 2 - i32.store offset=24 block ;; label = @4 - local.get 9 - i32.load offset=16 - local.tee 4 + local.get 3 + i32.load + local.tee 0 + i32.const -4 + i32.and + local.tee 9 i32.eqz br_if 0 (;@4;) local.get 0 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 0 - i32.store offset=24 - end - local.get 9 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 0 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 0 - i32.store offset=24 - end - block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 15 - i32.gt_u + i32.const 2 + i32.and br_if 0 (;@4;) local.get 9 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 local.get 9 - local.get 4 - i32.add - local.tee 4 - local.get 4 i32.load offset=4 - i32.const 1 + i32.const 3 + i32.and + local.get 1 i32.or i32.store offset=4 - br 1 (;@3;) - end - local.get 9 - local.get 7 - i32.add - local.tee 0 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 9 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 3 - i32.add - local.get 3 - i32.store - block ;; label = @4 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) local.get 3 - i32.const -8 + i32.load offset=4 + local.tee 8 + i32.const -4 i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @5 - block ;; label = @6 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 3 - i32.const 3 - i32.shr_u - i32.shl - local.tee 3 - i32.and - br_if 0 (;@6;) - i32.const 0 - local.get 5 - local.get 3 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 3 - br 1 (;@5;) - end - local.get 4 - i32.load offset=8 - local.set 3 - end - local.get 3 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 + local.set 1 local.get 3 - i32.store offset=8 - br 1 (;@3;) + i32.load + local.set 0 end - i32.const 31 - local.set 4 block ;; label = @4 - local.get 3 - i32.const 16777215 - i32.gt_u + local.get 1 + i32.eqz br_if 0 (;@4;) + local.get 1 + local.get 1 + i32.load + i32.const 3 + i32.and + local.get 0 + i32.const -4 + i32.and + i32.or + i32.store local.get 3 - i32.const 38 + i32.load offset=4 + local.set 8 local.get 3 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 + i32.load + local.set 0 end + local.get 3 + local.get 8 + i32.const 3 + i32.and + i32.store offset=4 + local.get 3 local.get 0 - local.get 4 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 + i32.const 3 + i32.and + i32.store block ;; label = @4 - local.get 10 - i32.const 1 - local.get 4 - i32.shl - local.tee 7 + local.get 0 + i32.const 2 i32.and + i32.eqz br_if 0 (;@4;) - local.get 5 - local.get 0 - i32.store - i32.const 0 - local.get 10 local.get 7 + local.get 7 + i32.load + i32.const 2 i32.or - i32.store offset=1048584 - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - br 1 (;@3;) - end - local.get 3 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 7 - block ;; label = @4 - loop ;; label = @5 - local.get 7 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 3 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 7 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 7 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 7 - br_if 0 (;@5;) - end - local.get 6 - local.get 0 i32.store - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - br 1 (;@3;) end - local.get 5 + local.get 2 + local.get 7 + i32.store + local.get 7 + local.set 3 + local.get 7 i32.load offset=8 - local.tee 4 - local.get 0 - i32.store offset=12 - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 5 - i32.store offset=12 - local.get 0 - local.get 4 - i32.store offset=8 + local.tee 1 + i32.const 1 + i32.and + br_if 0 (;@3;) end - local.get 9 - i32.const 8 - i32.add - local.set 4 - br 1 (;@1;) end block ;; label = @2 - local.get 11 - i32.eqz - br_if 0 (;@2;) - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@4;) - local.get 4 - local.get 9 - i32.store - local.get 9 - br_if 1 (;@3;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@2;) - end - local.get 11 - i32.const 16 - i32.const 20 - local.get 11 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 9 - i32.store - local.get 9 - i32.eqz - br_if 1 (;@2;) - end - local.get 9 - local.get 11 - i32.store offset=24 - block ;; label = @3 - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 9 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 9 - i32.store offset=24 - end - local.get 0 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@2;) - local.get 9 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 9 - i32.store offset=24 - end - block ;; label = @2 - block ;; label = @3 - local.get 3 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 0 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 1 (;@2;) - end - local.get 0 local.get 7 - i32.add - local.tee 5 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 + i32.load + i32.const -4 + i32.and + local.tee 0 local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - local.get 3 + i32.const 8 i32.add - local.get 3 - i32.store - block ;; label = @3 - local.get 8 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 4 - block ;; label = @4 - block ;; label = @5 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - local.get 6 - i32.and - br_if 0 (;@5;) - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@4;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 4 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 7 - i32.store offset=12 - local.get 4 - local.get 9 - i32.store offset=8 - end - i32.const 0 - local.get 5 - i32.store offset=1048600 - i32.const 0 - local.get 3 - i32.store offset=1048588 - end - local.get 0 - i32.const 8 - i32.add - local.set 4 - end - local.get 1 - i32.const 16 - i32.add - global.set $__stack_pointer - local.get 4 - ) - (func $free (;11;) (type 4) (param i32) - local.get 0 - call $dlfree - ) - (func $dlfree (;12;) (type 4) (param i32) - (local i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - i32.eqz - br_if 0 (;@1;) - local.get 0 - i32.const -8 - i32.add - local.tee 1 - local.get 0 - i32.const -4 - i32.add - i32.load - local.tee 2 - i32.const -8 - i32.and - local.tee 0 - i32.add - local.set 3 - block ;; label = @2 - local.get 2 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 2 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 1 - local.get 1 - i32.load - local.tee 2 + local.tee 3 i32.sub - local.tee 1 - i32.const 0 - i32.load offset=1048596 - local.tee 4 + local.get 6 i32.lt_u - br_if 1 (;@1;) - local.get 2 - local.get 0 - i32.add - local.set 0 + br_if 0 (;@2;) block ;; label = @3 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@3;) block ;; label = @4 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 1 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 + local.get 3 + i32.const 72 i32.add - local.tee 6 - i32.eq - drop - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 2 + local.get 0 local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 + i32.sub + local.get 5 + i32.and + local.tee 0 + i32.le_u + br_if 0 (;@4;) local.get 4 + local.get 3 + i32.and + br_if 2 (;@2;) local.get 2 - i32.store offset=12 - br 2 (;@2;) - end - local.get 1 - i32.load offset=24 - local.set 7 - block ;; label = @4 - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 6 - local.get 1 - i32.eq - br_if 0 (;@5;) - local.get 1 - i32.load offset=8 - local.tee 2 - local.get 4 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 1 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 1 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - i32.const 0 - local.set 6 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@5;) - end - local.get 5 - i32.const 0 + local.get 7 + i32.load offset=8 + i32.const -4 + i32.and i32.store - end - local.get 7 - i32.eqz - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 1 - local.get 1 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 3 (;@2;) - end local.get 7 - i32.const 16 - i32.const 20 + i32.load + local.set 1 local.get 7 - i32.load offset=16 - local.get 1 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 2 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @4 - local.get 1 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 1 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - br 1 (;@2;) - end - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 0 (;@2;) - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 1 - local.get 3 - i32.ge_u - br_if 0 (;@1;) - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048592 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - return - end - local.get 2 - i32.const -8 - i32.and - local.get 0 - i32.add - local.set 0 - block ;; label = @4 - block ;; label = @5 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 3 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 2 - local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 2 - i32.store offset=12 - br 1 (;@4;) - end - local.get 3 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 6 - local.get 3 - i32.eq - br_if 0 (;@6;) - local.get 3 - i32.load offset=8 - local.tee 2 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 3 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 3 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 3 - local.get 3 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 3 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 3 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 3 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 0 - i32.store offset=1048588 - return - end - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 2 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 2 - local.set 0 - br 1 (;@3;) - end - local.get 2 - i32.load offset=8 - local.set 0 - end - local.get 0 - local.get 1 - i32.store offset=12 - local.get 2 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 2 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - return - end - i32.const 31 - local.set 2 - block ;; label = @2 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 2 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 2 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 2 - end - local.get 1 - local.get 2 - i32.store offset=28 - local.get 1 - i64.const 0 - i64.store offset=16 align=4 - local.get 2 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - block ;; label = @3 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 2 - i32.shl - local.tee 3 - i32.and - br_if 0 (;@3;) - local.get 4 - local.get 1 - i32.store - i32.const 0 - local.get 6 - local.get 3 - i32.or - i32.store offset=1048584 - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 1 - i32.store offset=12 - br 1 (;@2;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 2 - i32.const 1 - i32.shr_u - i32.sub - local.get 2 - i32.const 31 - i32.eq - select - i32.shl - local.set 2 - local.get 4 - i32.load - local.set 6 - block ;; label = @3 - loop ;; label = @4 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 1 (;@3;) - local.get 2 - i32.const 29 - i32.shr_u - local.set 6 - local.get 2 - i32.const 1 - i32.shl - local.set 2 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 6 - br_if 0 (;@4;) - end - local.get 3 - local.get 1 - i32.store - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=12 - local.get 1 - local.get 1 - i32.store offset=8 - br 1 (;@2;) - end - local.get 4 - i32.load offset=8 - local.tee 0 - local.get 1 - i32.store offset=12 - local.get 4 - local.get 1 - i32.store offset=8 - local.get 1 - i32.const 0 - i32.store offset=24 - local.get 1 - local.get 4 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - end - i32.const 0 - i32.const 0 - i32.load offset=1048612 - i32.const -1 - i32.add - local.tee 1 - i32.const -1 - local.get 1 - select - i32.store offset=1048612 - end - ) - (func $realloc (;13;) (type 0) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - block ;; label = @1 - local.get 1 - i32.const -64 - i32.lt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.set 2 - local.get 0 - i32.const -4 - i32.add - local.tee 3 - i32.load - local.tee 4 - i32.const -8 - i32.and - local.set 5 - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 4 - i32.const 3 - i32.and - br_if 0 (;@3;) - local.get 2 - i32.const 256 - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.const 4 - i32.or - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.sub - i32.const 0 - i32.load offset=1049060 - i32.const 1 - i32.shl - i32.le_u - br_if 2 (;@1;) - br 1 (;@2;) - end - local.get 0 - i32.const -8 - i32.add - local.tee 6 - local.get 5 - i32.add - local.set 7 - block ;; label = @3 - local.get 5 - local.get 2 - i32.lt_u - br_if 0 (;@3;) - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 2 (;@1;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 7 - local.get 7 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 1 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048592 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.le_u - br_if 1 (;@2;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.add - local.tee 1 - i32.store offset=1048604 - i32.const 0 - local.get 5 - local.get 2 - i32.sub - local.tee 2 - i32.store offset=1048592 - local.get 1 - local.get 2 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048588 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.lt_u - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 0 (;@5;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 6 - local.get 5 - i32.add - local.tee 5 - local.get 1 - i32.store - local.get 5 - local.get 5 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - br 1 (;@4;) - end - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 5 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 5 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 1 - i32.const 0 - local.set 2 - end - i32.const 0 - local.get 2 - i32.store offset=1048600 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 0 - return - end - local.get 7 - i32.load offset=4 - local.tee 8 - i32.const 2 - i32.and - br_if 0 (;@2;) - local.get 8 - i32.const -8 - i32.and - local.get 5 - i32.add - local.tee 9 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - local.get 9 - local.get 2 - i32.sub - local.set 10 - block ;; label = @3 - block ;; label = @4 - local.get 8 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 7 - i32.load offset=8 - local.tee 1 - local.get 8 - i32.const 3 - i32.shr_u - local.tee 11 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 8 - i32.eq - drop - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 5 - local.get 1 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 11 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@3;) - end - local.get 5 - local.get 8 - i32.eq - drop - local.get 5 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 5 - i32.store offset=12 - br 1 (;@3;) - end - local.get 7 - i32.load offset=24 - local.set 12 - block ;; label = @4 - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 8 - local.get 7 - i32.eq - br_if 0 (;@5;) - local.get 7 - i32.load offset=8 - local.tee 1 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 8 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 8 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 7 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 7 - i32.const 16 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - i32.const 0 - local.set 8 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 1 - local.set 11 - local.get 5 - local.tee 8 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 8 - i32.const 16 - i32.add - local.set 1 - local.get 8 - i32.load offset=16 - local.tee 5 - br_if 0 (;@5;) - end - local.get 11 - i32.const 0 - i32.store - end - local.get 12 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 7 - local.get 7 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 1 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 1 - local.get 8 - i32.store - local.get 8 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 12 - i32.const 16 - i32.const 20 - local.get 12 - i32.load offset=16 - local.get 7 - i32.eq - select - i32.add - local.get 8 - i32.store - local.get 8 - i32.eqz - br_if 1 (;@3;) - end - local.get 8 - local.get 12 - i32.store offset=24 - block ;; label = @4 - local.get 7 - i32.load offset=16 - local.tee 1 - i32.eqz - br_if 0 (;@4;) - local.get 8 - local.get 1 - i32.store offset=16 - local.get 1 - local.get 8 - i32.store offset=24 - end - local.get 7 - i32.load offset=20 - local.tee 1 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const 20 - i32.add - local.get 1 - i32.store - local.get 1 - local.get 8 - i32.store offset=24 - end - block ;; label = @3 - local.get 10 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 9 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 9 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 1 - local.get 10 - i32.const 3 - i32.or - i32.store offset=4 - local.get 6 - local.get 9 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 10 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @2 - local.get 1 - call $dlmalloc - local.tee 2 - br_if 0 (;@2;) - i32.const 0 - return - end - local.get 2 - local.get 0 - i32.const -4 - i32.const -8 - local.get 3 - i32.load - local.tee 5 - i32.const 3 - i32.and - select - local.get 5 - i32.const -8 - i32.and - i32.add - local.tee 5 - local.get 1 - local.get 5 - local.get 1 - i32.lt_u - select - call $memcpy - local.set 1 - local.get 0 - call $dlfree - local.get 1 - local.set 0 - end - local.get 0 - ) - (func $dispose_chunk (;14;) (type 5) (param i32 i32) - (local i32 i32 i32 i32 i32 i32) - local.get 0 - local.get 1 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 3 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 0 - i32.load - local.tee 3 - local.get 1 - i32.add - local.set 1 - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 3 - i32.sub - local.tee 0 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@4;) - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 0 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - local.get 0 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 2 (;@3;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 0 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 0 - i32.load offset=12 - local.tee 6 - local.get 0 - i32.eq - br_if 0 (;@6;) - local.get 0 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 0 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 3 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 3 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 2 (;@2;) - block ;; label = @5 - block ;; label = @6 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 4 (;@2;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 3 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 0 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 2 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - br 2 (;@2;) - end - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 1 (;@2;) - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 2 - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - end - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048592 - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048588 - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - return - end - local.get 3 - i32.const -8 - i32.and - local.get 1 - i32.add - local.set 1 - block ;; label = @4 - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 2 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - br 1 (;@4;) - end - local.get 2 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 6 - local.get 2 - i32.eq - br_if 0 (;@6;) - local.get 2 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 2 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 2 - i32.const 16 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 4 - local.set 5 - local.get 3 - local.tee 6 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 4 - local.get 6 - i32.load offset=16 - local.tee 3 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 2 - local.get 2 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 2 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 2 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 2 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 1 - i32.store offset=1048588 - return - end - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 1 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 1 - i32.const 3 - i32.shr_u - i32.shl - local.tee 1 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 1 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 1 - br 1 (;@3;) - end - local.get 3 - i32.load offset=8 - local.set 1 - end - local.get 1 - local.get 0 - i32.store offset=12 - local.get 3 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 3 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - return - end - i32.const 31 - local.set 3 - block ;; label = @2 - local.get 1 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const 38 - local.get 1 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 0 - local.get 3 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 3 - i32.shl - local.tee 2 - i32.and - br_if 0 (;@2;) - local.get 4 - local.get 0 - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.or - i32.store offset=1048584 - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - return - end - local.get 1 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 4 - i32.load - local.set 6 - block ;; label = @2 - loop ;; label = @3 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 1 - i32.eq - br_if 1 (;@2;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 6 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 6 - br_if 0 (;@3;) - end - local.get 2 - local.get 0 - i32.store - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - return - end - local.get 4 - i32.load offset=8 - local.tee 1 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - end - ) - (func $internal_memalign (;15;) (type 0) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const 16 - local.get 0 - i32.const 16 - i32.gt_u - select - local.tee 2 - local.get 2 - i32.const -1 - i32.add - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - i32.const 32 - local.set 3 - loop ;; label = @2 - local.get 3 - local.tee 0 - i32.const 1 - i32.shl - local.set 3 - local.get 0 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - end - end - block ;; label = @1 - i32.const -64 - local.get 0 - i32.sub - local.get 1 - i32.gt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - block ;; label = @1 - local.get 0 - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.tee 1 - i32.add - i32.const 12 - i32.add - call $dlmalloc - local.tee 3 - br_if 0 (;@1;) - i32.const 0 - return - end - local.get 3 - i32.const -8 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const -1 - i32.add - local.get 3 - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - local.get 3 - i32.const -4 - i32.add - local.tee 4 - i32.load - local.tee 5 - i32.const -8 - i32.and - local.get 3 - local.get 0 - i32.add - i32.const -1 - i32.add - i32.const 0 - local.get 0 - i32.sub - i32.and - i32.const -8 - i32.add - local.tee 3 - i32.const 0 - local.get 0 - local.get 3 - local.get 2 - i32.sub - i32.const 15 - i32.gt_u - select - i32.add - local.tee 0 - local.get 2 - i32.sub - local.tee 3 - i32.sub - local.set 6 - block ;; label = @2 - local.get 5 - i32.const 3 - i32.and - br_if 0 (;@2;) - local.get 0 - local.get 6 - i32.store offset=4 - local.get 0 - local.get 2 - i32.load - local.get 3 - i32.add - i32.store - br 1 (;@1;) - end - local.get 0 - local.get 6 - local.get 0 - i32.load offset=4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 6 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - local.get 4 - i32.load - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 2 - local.get 3 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 3 - call $dispose_chunk - end - block ;; label = @1 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@1;) - local.get 3 - i32.const -8 - i32.and - local.tee 2 - local.get 1 - i32.const 16 - i32.add - i32.le_u - br_if 0 (;@1;) - local.get 0 - local.get 1 - local.get 3 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.tee 3 - local.get 2 - local.get 1 - i32.sub - local.tee 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 2 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 1 - call $dispose_chunk - end - local.get 0 - i32.const 8 - i32.add - ) - (func $aligned_alloc (;16;) (type 0) (param i32 i32) (result i32) - block ;; label = @1 - local.get 0 - i32.const 16 - i32.gt_u - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - local.get 0 - local.get 1 - call $internal_memalign - ) - (func $abort (;17;) (type 1) - unreachable - unreachable - ) - (func $sbrk (;18;) (type 2) (param i32) (result i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - memory.size - i32.const 16 - i32.shl - return - end - block ;; label = @1 - local.get 0 - i32.const 65535 - i32.and - br_if 0 (;@1;) - local.get 0 - i32.const -1 - i32.le_s - br_if 0 (;@1;) - block ;; label = @2 - local.get 0 - i32.const 16 - i32.shr_u - memory.grow - local.tee 0 - i32.const -1 - i32.ne - br_if 0 (;@2;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const -1 - return - end - local.get 0 - i32.const 16 - i32.shl - return - end - call $abort - unreachable - ) - (func $memcpy (;19;) (type 6) (param i32 i32 i32) (result i32) - (local i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 32 - i32.gt_u - br_if 0 (;@3;) - local.get 1 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@2;) - local.get 2 - i32.eqz - br_if 1 (;@2;) + local.set 3 + br 1 (;@3;) + end + i32.const 0 + local.set 1 local.get 0 - local.get 1 - i32.load8_u - i32.store8 - local.get 2 - i32.const -1 - i32.add - local.set 3 + i32.const 0 + i32.store local.get 0 - i32.const 1 - i32.add - local.set 4 - local.get 1 - i32.const 1 + i32.const -8 i32.add - local.tee 5 - i32.const 3 + local.tee 3 + i64.const 0 + i64.store align=4 + local.get 3 + local.get 7 + i32.load + i32.const -4 i32.and - i32.eqz - br_if 2 (;@1;) + i32.store + block ;; label = @4 + local.get 7 + i32.load + local.tee 8 + i32.const -4 + i32.and + local.tee 0 + i32.eqz + br_if 0 (;@4;) + local.get 8 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 0 + local.get 0 + i32.load offset=4 + i32.const 3 + i32.and + local.get 3 + i32.or + i32.store offset=4 + local.get 3 + i32.load offset=4 + i32.const 3 + i32.and + local.set 1 + end local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 local.get 1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get 2 + local.get 7 + i32.or + i32.store offset=4 + local.get 7 + local.get 7 + i32.load offset=8 i32.const -2 - i32.add - local.set 3 - local.get 0 - i32.const 2 - i32.add - local.set 4 - local.get 1 - i32.const 2 - i32.add - local.tee 5 + i32.and + i32.store offset=8 + local.get 7 + local.get 7 + i32.load + local.tee 1 i32.const 3 i32.and - i32.eqz - br_if 2 (;@1;) local.get 3 - i32.eqz - br_if 2 (;@1;) + i32.or + local.tee 0 + i32.store + block ;; label = @4 + local.get 1 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 3 + i32.load + local.set 1 + br 1 (;@3;) + end + local.get 7 local.get 0 - local.get 1 - i32.load8_u offset=2 - i32.store8 offset=2 - local.get 2 i32.const -3 - i32.add - local.set 3 - local.get 0 - i32.const 3 - i32.add - local.set 4 - local.get 1 - i32.const 3 - i32.add - local.tee 5 - i32.const 3 i32.and - i32.eqz - br_if 2 (;@1;) + i32.store local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 - local.get 1 - i32.load8_u offset=3 - i32.store8 offset=3 - local.get 2 - i32.const -4 - i32.add - local.set 3 - local.get 0 - i32.const 4 - i32.add - local.set 4 - local.get 1 - i32.const 4 - i32.add - local.set 5 - br 2 (;@1;) + i32.load + i32.const 2 + i32.or + local.set 1 end - local.get 0 + local.get 3 local.get 1 - local.get 2 - memory.copy - local.get 0 + i32.const 1 + i32.or + i32.store + local.get 3 + i32.const 8 + i32.add return end local.get 2 + local.get 1 + i32.store + local.get 1 local.set 3 - local.get 0 - local.set 4 local.get 1 - local.set 5 + br_if 0 (;@1;) end + i32.const 0 + ) + (func $::alloc (;6;) (type 4) (param i32 i32 i32) (result i32) + (local i32 i32 i32) + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 3 + global.set $__stack_pointer block ;; label = @1 block ;; label = @2 - local.get 4 + local.get 2 + br_if 0 (;@2;) + local.get 1 + local.set 2 + br 1 (;@1;) + end + local.get 3 + local.get 0 + i32.load + i32.store offset=12 + block ;; label = @2 + local.get 2 i32.const 3 - i32.and + i32.add + local.tee 4 + i32.const 2 + i32.shr_u + local.tee 5 + local.get 1 + local.get 3 + i32.const 12 + i32.add + call $wee_alloc::alloc_first_fit local.tee 2 br_if 0 (;@2;) block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@4;) - local.get 3 - local.set 2 - br 1 (;@3;) - end - block ;; label = @4 - local.get 3 - i32.const -16 - i32.add - local.tee 2 - i32.const 16 - i32.and - br_if 0 (;@4;) - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - i32.const 16 - i32.add - local.set 4 - local.get 5 - i32.const 16 - i32.add - local.set 5 - local.get 2 - local.set 3 - end - local.get 2 - i32.const 16 - i32.lt_u - br_if 0 (;@3;) - local.get 3 - local.set 2 - loop ;; label = @4 - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - local.get 5 - i64.load offset=16 align=4 - i64.store offset=16 align=4 - local.get 4 - local.get 5 - i64.load offset=24 align=4 - i64.store offset=24 align=4 - local.get 4 - i32.const 32 - i32.add - local.set 4 - local.get 5 - i32.const 32 - i32.add - local.set 5 - local.get 2 - i32.const -32 - i32.add - local.tee 2 - i32.const 15 - i32.gt_u - br_if 0 (;@4;) - end - end - block ;; label = @3 - local.get 2 - i32.const 8 - i32.lt_u - br_if 0 (;@3;) local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 5 - i32.const 8 - i32.add - local.set 5 - local.get 4 - i32.const 8 - i32.add - local.set 4 - end - block ;; label = @3 - local.get 2 - i32.const 4 + i32.const -4 i32.and - i32.eqz - br_if 0 (;@3;) - local.get 4 - local.get 5 - i32.load - i32.store - local.get 5 - i32.const 4 - i32.add - local.set 5 - local.get 4 - i32.const 4 + local.tee 2 + local.get 1 + i32.const 3 + i32.shl + i32.const 512 i32.add - local.set 4 - end - block ;; label = @3 + local.tee 4 local.get 2 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@3;) local.get 4 - local.get 5 - i32.load16_u align=1 - i32.store16 align=1 - local.get 4 - i32.const 2 - i32.add - local.set 4 - local.get 5 - i32.const 2 + i32.gt_u + select + i32.const 65543 i32.add - local.set 5 + local.tee 4 + i32.const 16 + i32.shr_u + memory.grow + local.tee 2 + i32.const -1 + i32.ne + br_if 0 (;@3;) + i32.const 0 + local.set 2 + br 1 (;@2;) end local.get 2 - i32.const 1 - i32.and - i32.eqz - br_if 1 (;@1;) + i32.const 16 + i32.shl + local.tee 2 + i32.const 0 + i32.store offset=4 + local.get 2 + local.get 3 + i32.load offset=12 + i32.store offset=8 + local.get 2 + local.get 2 local.get 4 + i32.const -65536 + i32.and + i32.add + i32.const 2 + i32.or + i32.store + local.get 3 + local.get 2 + i32.store offset=12 local.get 5 - i32.load8_u - i32.store8 - local.get 0 - return + local.get 1 + local.get 3 + i32.const 12 + i32.add + call $wee_alloc::alloc_first_fit + local.set 2 end + local.get 0 + local.get 3 + i32.load offset=12 + i32.store + end + local.get 3 + i32.const 16 + i32.add + global.set $__stack_pointer + local.get 2 + ) + (func $::dealloc (;7;) (type 5) (param i32 i32 i32 i32) + (local i32 i32 i32 i32 i32 i32 i32) + block ;; label = @1 + local.get 1 + i32.eqz + br_if 0 (;@1;) + local.get 3 + i32.eqz + br_if 0 (;@1;) + local.get 0 + i32.load + local.set 4 + local.get 1 + i32.const 0 + i32.store + local.get 1 + i32.const -8 + i32.add + local.tee 3 + local.get 3 + i32.load + local.tee 5 + i32.const -2 + i32.and + local.tee 6 + i32.store block ;; label = @2 block ;; label = @3 block ;; label = @4 block ;; label = @5 + local.get 3 + i32.const 4 + i32.add + local.tee 7 + i32.load + i32.const -4 + i32.and + local.tee 8 + i32.eqz + br_if 0 (;@5;) + local.get 8 + i32.load + local.tee 9 + i32.const 1 + i32.and + br_if 0 (;@5;) block ;; label = @6 - local.get 3 - i32.const 32 - i32.lt_u - br_if 0 (;@6;) block ;; label = @7 block ;; label = @8 - local.get 2 - i32.const -1 - i32.add - br_table 3 (;@5;) 0 (;@8;) 1 (;@7;) 7 (;@1;) + local.get 5 + i32.const -4 + i32.and + local.tee 10 + br_if 0 (;@8;) + local.get 8 + local.set 1 + br 1 (;@7;) end - local.get 4 - local.get 5 - i32.load - i32.store16 align=1 - local.get 4 + local.get 8 + local.set 1 local.get 5 i32.const 2 - i32.add - i32.load align=2 - i32.store offset=2 - local.get 4 - local.get 5 - i32.const 6 - i32.add - i64.load align=2 - i64.store offset=6 align=4 - local.get 4 - i32.const 18 - i32.add - local.set 2 - local.get 5 - i32.const 18 - i32.add - local.set 1 - i32.const 14 + i32.and + br_if 0 (;@7;) + local.get 10 + local.get 10 + i32.load offset=4 + i32.const 3 + i32.and + local.get 8 + i32.or + i32.store offset=4 + local.get 3 + i32.load local.set 6 - local.get 5 - i32.const 14 - i32.add - i32.load align=2 - local.set 5 - i32.const 14 - local.set 3 - br 3 (;@4;) + local.get 7 + i32.load + local.tee 5 + i32.const -4 + i32.and + local.tee 1 + i32.eqz + br_if 1 (;@6;) + local.get 1 + i32.load + local.set 9 end - local.get 4 - local.get 5 + local.get 1 + local.get 6 + i32.const -4 + i32.and + local.get 9 + i32.const 3 + i32.and + i32.or + i32.store + local.get 7 i32.load - i32.store8 - local.get 4 - local.get 5 - i32.const 1 - i32.add - i32.load align=1 - i32.store offset=1 - local.get 4 - local.get 5 - i32.const 5 - i32.add - i64.load align=1 - i64.store offset=5 align=4 - local.get 4 - i32.const 17 - i32.add - local.set 2 - local.get 5 - i32.const 17 - i32.add - local.set 1 - i32.const 13 - local.set 6 - local.get 5 - i32.const 13 - i32.add - i32.load align=1 local.set 5 - i32.const 15 - local.set 3 - br 2 (;@4;) - end - block ;; label = @6 - block ;; label = @7 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@7;) - local.get 4 - local.set 2 - local.get 5 - local.set 1 - br 1 (;@6;) - end - local.get 4 - local.get 5 - i32.load8_u - i32.store8 - local.get 4 - local.get 5 - i32.load offset=1 align=1 - i32.store offset=1 align=1 - local.get 4 - local.get 5 - i64.load offset=5 align=1 - i64.store offset=5 align=1 - local.get 4 - local.get 5 - i32.load16_u offset=13 align=1 - i32.store16 offset=13 align=1 - local.get 4 - local.get 5 - i32.load8_u offset=15 - i32.store8 offset=15 - local.get 4 - i32.const 16 - i32.add - local.set 2 - local.get 5 - i32.const 16 - i32.add - local.set 1 + local.get 3 + i32.load + local.set 6 end + local.get 7 + local.get 5 + i32.const 3 + i32.and + i32.store local.get 3 - i32.const 8 + local.get 6 + i32.const 3 + i32.and + i32.store + local.get 6 + i32.const 2 i32.and - br_if 2 (;@3;) - br 3 (;@2;) + i32.eqz + br_if 1 (;@4;) + local.get 8 + local.get 8 + i32.load + i32.const 2 + i32.or + i32.store + br 1 (;@4;) end - local.get 4 - local.get 5 - i32.load - local.tee 2 - i32.store8 - local.get 4 - local.get 2 - i32.const 16 - i32.shr_u - i32.store8 offset=2 - local.get 4 - local.get 2 - i32.const 8 - i32.shr_u - i32.store8 offset=1 - local.get 4 - local.get 5 - i32.const 3 - i32.add - i32.load align=1 - i32.store offset=3 - local.get 4 - local.get 5 - i32.const 7 - i32.add - i64.load align=1 - i64.store offset=7 align=4 - local.get 4 - i32.const 19 - i32.add - local.set 2 local.get 5 - i32.const 19 - i32.add - local.set 1 - i32.const 15 - local.set 6 + i32.const -4 + i32.and + local.tee 8 + i32.eqz + br_if 1 (;@3;) local.get 5 - i32.const 15 - i32.add - i32.load align=1 - local.set 5 - i32.const 13 - local.set 3 + i32.const 2 + i32.and + br_if 1 (;@3;) + local.get 8 + i32.load8_u + i32.const 1 + i32.and + br_if 1 (;@3;) + local.get 1 + local.get 8 + i32.load offset=8 + i32.const -4 + i32.and + i32.store + local.get 8 + local.get 3 + i32.const 1 + i32.or + i32.store offset=8 end local.get 4 - local.get 6 - i32.add - local.get 5 - i32.store + local.set 3 + br 1 (;@2;) end - local.get 2 - local.get 1 - i64.load align=1 - i64.store align=1 - local.get 2 - i32.const 8 - i32.add - local.set 2 local.get 1 - i32.const 8 - i32.add - local.set 1 + local.get 4 + i32.store end + local.get 0 + local.get 3 + i32.store + end + ) + (func $wit_bindgen::rt::run_ctors_once (;8;) (type 1) + block ;; label = @1 + i32.const 0 + i32.load8_u offset=1048581 + br_if 0 (;@1;) + call $__wasm_call_ctors + i32.const 0 + i32.const 1 + i32.store8 offset=1048581 + end + ) + (func $cabi_realloc (;9;) (type 3) (param i32 i32 i32 i32) (result i32) + block ;; label = @1 block ;; label = @2 - local.get 3 - i32.const 4 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 + block ;; label = @3 + local.get 1 + br_if 0 (;@3;) + local.get 3 + i32.eqz + br_if 2 (;@1;) + i32.const 0 + i32.load8_u offset=1048580 + drop + local.get 3 + local.get 2 + call $__rust_alloc + local.set 2 + br 1 (;@2;) + end + local.get 0 local.get 1 - i32.load align=1 - i32.store align=1 local.get 2 - i32.const 4 - i32.add - local.set 2 - local.get 1 - i32.const 4 - i32.add - local.set 1 - end - block ;; label = @2 local.get 3 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 - local.get 1 - i32.load16_u align=1 - i32.store16 align=1 - local.get 2 - i32.const 2 - i32.add + call $__rust_realloc local.set 2 - local.get 1 - i32.const 2 - i32.add - local.set 1 end - local.get 3 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) local.get 2 - local.get 1 - i32.load8_u - i32.store8 + br_if 0 (;@1;) + unreachable + unreachable end - local.get 0 + local.get 2 ) (table (;0;) 1 1 funcref) (memory (;0;) 17) diff --git a/tests/integration/expected/sdk_basic_wallet/basic_wallet.wat b/tests/integration/expected/sdk_basic_wallet/basic_wallet.wat index e0e36101d..3d53176da 100644 --- a/tests/integration/expected/sdk_basic_wallet/basic_wallet.wat +++ b/tests/integration/expected/sdk_basic_wallet/basic_wallet.wat @@ -42,10 +42,8 @@ (type (;3;) (func (param i32 i64 i64 i64 i64))) (type (;4;) (func (param i32 i32) (result i32))) (type (;5;) (func (param i32 i32 i32 i32) (result i32))) - (type (;6;) (func (param i32) (result i32))) - (type (;7;) (func (param i32))) - (type (;8;) (func (param i32 i32))) - (type (;9;) (func (param i32 i32 i32) (result i32))) + (type (;6;) (func (param i32 i32 i32) (result i32))) + (type (;7;) (func (param i32 i32 i32 i32))) (import "miden:base/tx-kernel@1.0.0" "add-asset" (func $basic_wallet::bindings::miden::base::tx_kernel::add_asset::wit_import (;0;) (type 0))) (import "miden:base/tx-kernel@1.0.0" "remove-asset" (func $basic_wallet::bindings::miden::base::tx_kernel::remove_asset::wit_import (;1;) (type 0))) (import "miden:base/tx-kernel@1.0.0" "create-note" (func $basic_wallet::bindings::miden::base::tx_kernel::create_note::wit_import (;2;) (type 1))) @@ -168,6094 +166,651 @@ global.set $__stack_pointer ) (func $__rust_alloc (;6;) (type 4) (param i32 i32) (result i32) - (local i32) - local.get 0 + i32.const 1048576 local.get 1 - call $__rdl_alloc - local.set 2 - local.get 2 - return + local.get 0 + call $::alloc ) (func $__rust_realloc (;7;) (type 5) (param i32 i32 i32 i32) (result i32) (local i32) - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rdl_realloc - local.set 4 - local.get 4 - return - ) - (func $wit_bindgen::rt::run_ctors_once (;8;) (type 2) - block ;; label = @1 - i32.const 0 - i32.load8_u offset=1048577 - br_if 0 (;@1;) - call $__wasm_call_ctors - i32.const 0 - i32.const 1 - i32.store8 offset=1048577 - end - ) - (func $cabi_realloc (;9;) (type 5) (param i32 i32 i32 i32) (result i32) block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 1 - br_if 0 (;@3;) - local.get 3 - i32.eqz - br_if 2 (;@1;) - i32.const 0 - i32.load8_u offset=1048576 - drop - local.get 3 - local.get 2 - call $__rust_alloc - local.set 2 - br 1 (;@2;) - end - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rust_realloc - local.set 2 - end + i32.const 1048576 local.get 2 + local.get 3 + call $::alloc + local.tee 4 + i32.eqz br_if 0 (;@1;) - unreachable - unreachable - end - local.get 2 - ) - (func $__rdl_alloc (;10;) (type 4) (param i32 i32) (result i32) - (local i32) - block ;; label = @1 - block ;; label = @2 - local.get 1 - i32.const 8 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - local.get 0 - i32.le_u - br_if 1 (;@1;) - end + local.get 4 + local.get 0 local.get 1 + local.get 3 local.get 1 + local.get 3 + i32.lt_u + select + memory.copy + i32.const 1048576 local.get 0 + local.get 2 local.get 1 - i32.rem_u - local.tee 2 - i32.sub - i32.const 0 + call $::dealloc + end + local.get 4 + ) + (func $wee_alloc::alloc_first_fit (;8;) (type 6) (param i32 i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32) + block ;; label = @1 local.get 2 - select - local.get 0 - i32.add - call $aligned_alloc + i32.load + local.tee 3 + br_if 0 (;@1;) + i32.const 0 return end + local.get 1 + i32.const -1 + i32.add + local.set 4 + i32.const 0 + local.get 1 + i32.sub + local.set 5 local.get 0 - call $malloc - ) - (func $__rdl_realloc (;11;) (type 5) (param i32 i32 i32 i32) (result i32) - (local i32 i32) - block ;; label = @1 + i32.const 2 + i32.shl + local.set 6 + loop ;; label = @1 block ;; label = @2 block ;; label = @3 - local.get 2 - i32.const 8 - i32.gt_u + local.get 3 + i32.load offset=8 + local.tee 1 + i32.const 1 + i32.and br_if 0 (;@3;) - local.get 2 local.get 3 - i32.le_u - br_if 1 (;@2;) + local.set 7 + br 1 (;@2;) end - i32.const 0 - local.set 4 - local.get 2 - local.get 2 - local.get 3 - local.get 2 - i32.rem_u - local.tee 5 - i32.sub - i32.const 0 - local.get 5 - select - local.get 3 - i32.add - call $aligned_alloc - local.tee 2 - i32.eqz - br_if 1 (;@1;) - local.get 2 - local.get 0 - local.get 1 - local.get 3 - local.get 1 - local.get 3 - i32.lt_u - select - call $memcpy - local.set 2 - local.get 0 - call $free - local.get 2 - return - end - local.get 0 - local.get 3 - call $realloc - local.set 4 - end - local.get 4 - ) - (func $malloc (;12;) (type 6) (param i32) (result i32) - local.get 0 - call $dlmalloc - ) - (func $dlmalloc (;13;) (type 6) (param i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - global.get $__stack_pointer - i32.const 16 - i32.sub - local.tee 1 - global.set $__stack_pointer - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 + loop ;; label = @3 + local.get 3 + local.get 1 + i32.const -2 + i32.and + i32.store offset=8 block ;; label = @4 block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048604 - local.tee 2 - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - local.tee 3 - br_if 0 (;@13;) - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 8 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - local.tee 3 - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - end - i32.const 1114112 - i32.const 1049088 - i32.lt_u - br_if 1 (;@11;) - i32.const 0 - local.set 2 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const 89 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - local.set 4 - i32.const 0 - i32.const 1049088 - i32.store offset=1049028 - i32.const 0 - i32.const 1049088 - i32.store offset=1048596 - i32.const 0 - local.get 3 - i32.store offset=1048616 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.store offset=1049032 - loop ;; label = @13 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@13;) - end - i32.const 1049088 - i32.const -8 - i32.const 1049088 - i32.sub - i32.const 15 - i32.and - i32.const 0 - i32.const 1049088 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - i32.const 4 - i32.add - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const -56 - i32.add - local.tee 3 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 3 - i32.const 1049088 - i32.add - i32.const 4 - i32.add - i32.const 56 - i32.store - end - block ;; label = @12 - block ;; label = @13 - local.get 0 - i32.const 236 - i32.gt_u - br_if 0 (;@13;) - block ;; label = @14 - i32.const 0 - i32.load offset=1048580 - local.tee 6 - i32.const 16 - local.get 0 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 0 - i32.const 11 - i32.lt_u - select - local.tee 7 - i32.const 3 - i32.shr_u - local.tee 3 - i32.shr_u - local.tee 4 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - i32.const 1 - i32.and - local.get 3 - i32.or - i32.const 1 - i32.xor - local.tee 5 - i32.const 3 - i32.shl - local.tee 3 - i32.const 1048620 - i32.add - local.tee 4 - local.get 3 - i32.const 1048628 - i32.add - i32.load - local.tee 3 - i32.load offset=8 - local.tee 7 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 4 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 4 - i32.store offset=12 - end - local.get 3 - i32.const 8 - i32.add - local.set 4 - local.get 3 - local.get 5 - i32.const 3 - i32.shl - local.tee 5 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 5 - i32.add - local.tee 3 - local.get 3 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 13 (;@1;) - end - local.get 7 - i32.const 0 - i32.load offset=1048588 - local.tee 8 - i32.le_u - br_if 1 (;@12;) - block ;; label = @14 - local.get 4 - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - local.get 3 - i32.shl - i32.const 2 - local.get 3 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - i32.and - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - local.tee 3 - i32.const 3 - i32.shl - local.tee 4 - i32.const 1048620 - i32.add - local.tee 5 - local.get 4 - i32.const 1048628 - i32.add - i32.load - local.tee 4 - i32.load offset=8 - local.tee 0 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 3 - i32.rotl - i32.and - local.tee 6 - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 5 - i32.store offset=12 - end - local.get 4 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - i32.const 3 - i32.shl - local.tee 3 - i32.add - local.get 3 - local.get 7 - i32.sub - local.tee 5 - i32.store - local.get 4 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @15 - local.get 8 - i32.eqz - br_if 0 (;@15;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @16 - block ;; label = @17 - local.get 6 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - i32.and - br_if 0 (;@17;) - i32.const 0 - local.get 6 - local.get 9 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@16;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 9 - i32.store offset=8 - end - local.get 4 - i32.const 8 - i32.add - local.set 4 - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - local.get 5 - i32.store offset=1048588 - br 13 (;@1;) - end - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 1 (;@12;) - local.get 10 - i32.const 0 - local.get 10 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 0 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.set 3 - local.get 0 - local.set 5 - block ;; label = @14 - loop ;; label = @15 - block ;; label = @16 - local.get 5 - i32.load offset=16 - local.tee 4 - br_if 0 (;@16;) - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 2 (;@14;) - end - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 5 - local.get 3 - local.get 5 - local.get 3 - i32.lt_u - local.tee 5 - select - local.set 3 - local.get 4 - local.get 0 - local.get 5 - select - local.set 0 - local.get 4 - local.set 5 - br 0 (;@15;) - end - end - local.get 0 - i32.load offset=24 - local.set 11 - block ;; label = @14 - local.get 0 - i32.load offset=12 - local.tee 9 - local.get 0 - i32.eq - br_if 0 (;@14;) - local.get 0 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 9 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 9 - i32.store offset=12 - br 12 (;@2;) - end - block ;; label = @14 - local.get 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@10;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @14 - local.get 5 - local.set 2 - local.get 4 - local.tee 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - local.get 9 - i32.load offset=16 - local.tee 4 - br_if 0 (;@14;) - end - local.get 2 - i32.const 0 - i32.store - br 11 (;@2;) - end - i32.const -1 - local.set 7 - local.get 0 - i32.const -65 - i32.gt_u - br_if 0 (;@12;) - local.get 0 - i32.const 19 - i32.add - local.tee 4 - i32.const -16 - i32.and - local.set 7 - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 0 (;@12;) - i32.const 0 - local.set 8 - block ;; label = @13 - local.get 7 - i32.const 256 - i32.lt_u - br_if 0 (;@13;) - i32.const 31 - local.set 8 - local.get 7 - i32.const 16777215 - i32.gt_u - br_if 0 (;@13;) - local.get 7 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 8 - end - i32.const 0 - local.get 7 - i32.sub - local.set 3 - block ;; label = @13 - block ;; label = @14 - block ;; label = @15 - block ;; label = @16 - local.get 8 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 5 - br_if 0 (;@16;) - i32.const 0 - local.set 4 - i32.const 0 - local.set 9 - br 1 (;@15;) - end - i32.const 0 - local.set 4 - local.get 7 - i32.const 0 - i32.const 25 - local.get 8 - i32.const 1 - i32.shr_u - i32.sub - local.get 8 - i32.const 31 - i32.eq - select - i32.shl - local.set 0 - i32.const 0 - local.set 9 - loop ;; label = @16 - block ;; label = @17 - local.get 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.ge_u - br_if 0 (;@17;) - local.get 6 - local.set 3 - local.get 5 - local.set 9 - local.get 6 - br_if 0 (;@17;) - i32.const 0 - local.set 3 - local.get 5 - local.set 9 - local.get 5 - local.set 4 - br 3 (;@14;) - end - local.get 4 - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 6 - local.get 6 - local.get 5 - local.get 0 - i32.const 29 - i32.shr_u - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - i32.load - local.tee 5 - i32.eq - select - local.get 4 - local.get 6 - select - local.set 4 - local.get 0 - i32.const 1 - i32.shl - local.set 0 - local.get 5 - br_if 0 (;@16;) - end - end - block ;; label = @15 - local.get 4 - local.get 9 - i32.or - br_if 0 (;@15;) - i32.const 0 - local.set 9 - i32.const 2 - local.get 8 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - local.get 10 - i32.and - local.tee 4 - i32.eqz - br_if 3 (;@12;) - local.get 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.set 4 - end - local.get 4 - i32.eqz - br_if 1 (;@13;) - end - loop ;; label = @14 - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.lt_u - local.set 0 - block ;; label = @15 - local.get 4 - i32.load offset=16 - local.tee 5 - br_if 0 (;@15;) - local.get 4 - i32.const 20 - i32.add - i32.load - local.set 5 - end - local.get 6 - local.get 3 - local.get 0 - select - local.set 3 - local.get 4 - local.get 9 - local.get 0 - select - local.set 9 - local.get 5 - local.set 4 - local.get 5 - br_if 0 (;@14;) - end - end - local.get 9 - i32.eqz - br_if 0 (;@12;) - local.get 3 - i32.const 0 - i32.load offset=1048588 - local.get 7 - i32.sub - i32.ge_u - br_if 0 (;@12;) - local.get 9 - i32.load offset=24 - local.set 2 - block ;; label = @13 - local.get 9 - i32.load offset=12 - local.tee 0 - local.get 9 - i32.eq - br_if 0 (;@13;) - local.get 9 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 0 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 0 - i32.store offset=12 - br 10 (;@3;) - end - block ;; label = @13 - local.get 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 9 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@9;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @13 - local.get 5 - local.set 6 - local.get 4 - local.tee 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - local.get 0 - i32.load offset=16 - local.tee 4 - br_if 0 (;@13;) - end - local.get 6 - i32.const 0 - i32.store - br 9 (;@3;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048588 - local.tee 4 - local.get 7 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @13 - block ;; label = @14 - local.get 4 - local.get 7 - i32.sub - local.tee 5 - i32.const 16 - i32.lt_u - br_if 0 (;@14;) - local.get 3 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.get 5 - i32.store - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - br 1 (;@13;) - end - local.get 3 - local.get 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 0 - i32.const 0 - local.set 5 - end - i32.const 0 - local.get 5 - i32.store offset=1048588 - i32.const 0 - local.get 0 - i32.store offset=1048600 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048592 - local.tee 5 - local.get 7 - i32.le_u - br_if 0 (;@12;) - local.get 2 - local.get 7 - i32.add - local.tee 4 - local.get 5 - local.get 7 - i32.sub - local.tee 3 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048604 - i32.const 0 - local.get 3 - i32.store offset=1048592 - local.get 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - i32.eqz - br_if 0 (;@13;) - i32.const 0 - i32.load offset=1049060 - local.set 3 - br 1 (;@12;) - end - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 12 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - i32.const 65536 - local.set 3 - end - i32.const 0 - local.set 4 - block ;; label = @12 - local.get 3 - local.get 7 - i32.const 71 - i32.add - local.tee 8 - i32.add - local.tee 0 - i32.const 0 - local.get 3 - i32.sub - local.tee 6 - i32.and - local.tee 9 - local.get 7 - i32.gt_u - br_if 0 (;@12;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 9 - i32.add - local.tee 10 - local.get 3 - i32.le_u - br_if 0 (;@13;) - local.get 10 - local.get 4 - i32.le_u - br_if 1 (;@12;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - i32.const 0 - i32.load8_u offset=1049024 - i32.const 4 - i32.and - br_if 5 (;@6;) - block ;; label = @12 - block ;; label = @13 - block ;; label = @14 - local.get 2 - i32.eqz - br_if 0 (;@14;) - i32.const 1049028 - local.set 4 - loop ;; label = @15 - block ;; label = @16 - local.get 4 - i32.load - local.tee 3 - local.get 2 - i32.gt_u - br_if 0 (;@16;) - local.get 3 - local.get 4 - i32.load offset=4 - i32.add - local.get 2 - i32.gt_u - br_if 3 (;@13;) - end - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@15;) - end - end - i32.const 0 - call $sbrk - local.tee 0 - i32.const -1 - i32.eq - br_if 6 (;@7;) - local.get 9 - local.set 6 - block ;; label = @14 - i32.const 0 - i32.load offset=1049056 - local.tee 4 - i32.const -1 - i32.add - local.tee 3 - local.get 0 - i32.and - i32.eqz - br_if 0 (;@14;) - local.get 9 - local.get 0 - i32.sub - local.get 3 - local.get 0 - i32.add - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.add - local.set 6 - end - local.get 6 - local.get 7 - i32.le_u - br_if 6 (;@7;) - local.get 6 - i32.const 2147483646 - i32.gt_u - br_if 6 (;@7;) - block ;; label = @14 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@14;) - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 6 - i32.add - local.tee 5 - local.get 3 - i32.le_u - br_if 7 (;@7;) - local.get 5 - local.get 4 - i32.gt_u - br_if 7 (;@7;) - end - local.get 6 - call $sbrk - local.tee 4 - local.get 0 - i32.ne - br_if 1 (;@12;) - br 8 (;@5;) - end - local.get 0 - local.get 5 - i32.sub - local.get 6 - i32.and - local.tee 6 - i32.const 2147483646 - i32.gt_u - br_if 5 (;@7;) - local.get 6 - call $sbrk - local.tee 0 - local.get 4 - i32.load - local.get 4 - i32.load offset=4 - i32.add - i32.eq - br_if 4 (;@8;) - local.get 0 - local.set 4 - end - block ;; label = @12 - local.get 4 - i32.const -1 - i32.eq - br_if 0 (;@12;) - local.get 7 - i32.const 72 - i32.add - local.get 6 - i32.le_u - br_if 0 (;@12;) - block ;; label = @13 - local.get 8 - local.get 6 - i32.sub - i32.const 0 - i32.load offset=1049060 - local.tee 3 - i32.add - i32.const 0 - local.get 3 - i32.sub - i32.and - local.tee 3 - i32.const 2147483646 - i32.le_u - br_if 0 (;@13;) - local.get 4 - local.set 0 - br 8 (;@5;) - end - block ;; label = @13 - local.get 3 - call $sbrk - i32.const -1 - i32.eq - br_if 0 (;@13;) - local.get 3 - local.get 6 - i32.add - local.set 6 - local.get 4 - local.set 0 - br 8 (;@5;) - end - i32.const 0 - local.get 6 - i32.sub - call $sbrk - drop - br 5 (;@7;) - end - local.get 4 - local.set 0 - local.get 4 - i32.const -1 - i32.ne - br_if 6 (;@5;) - br 4 (;@7;) - end - unreachable - unreachable - end - i32.const 0 - local.set 9 - br 7 (;@2;) - end - i32.const 0 - local.set 0 - br 5 (;@3;) - end - local.get 0 - i32.const -1 - i32.ne - br_if 2 (;@5;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049024 - i32.const 4 - i32.or - i32.store offset=1049024 - end - local.get 9 - i32.const 2147483646 - i32.gt_u - br_if 1 (;@4;) - local.get 9 - call $sbrk - local.set 0 - i32.const 0 - call $sbrk - local.set 4 - local.get 0 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@4;) - local.get 4 - local.get 0 - i32.sub - local.tee 6 - local.get 7 - i32.const 56 - i32.add - i32.le_u - br_if 1 (;@4;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049012 - local.get 6 - i32.add - local.tee 4 - i32.store offset=1049012 - block ;; label = @5 - local.get 4 - i32.const 0 - i32.load offset=1049016 - i32.le_u - br_if 0 (;@5;) - i32.const 0 - local.get 4 - i32.store offset=1049016 - end - block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - i32.const 0 - i32.load offset=1048604 - local.tee 3 - i32.eqz - br_if 0 (;@8;) - i32.const 1049028 - local.set 4 - loop ;; label = @9 - local.get 0 - local.get 4 - i32.load - local.tee 5 - local.get 4 - i32.load offset=4 - local.tee 9 - i32.add - i32.eq - br_if 2 (;@7;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@9;) - br 3 (;@6;) - end - end - block ;; label = @8 - block ;; label = @9 - i32.const 0 - i32.load offset=1048596 - local.tee 4 - i32.eqz - br_if 0 (;@9;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@8;) - end - i32.const 0 - local.get 0 - i32.store offset=1048596 - end - i32.const 0 - local.set 4 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 0 - i32.load offset=1049052 - i32.store offset=1048616 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - loop ;; label = @8 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@8;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 3 - local.get 6 - i32.const -56 - i32.add - local.tee 5 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 3 - i32.store offset=1048604 - local.get 0 - local.get 5 - i32.add - i32.const 56 - i32.store offset=4 - br 2 (;@5;) - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - br_if 0 (;@6;) - local.get 3 - local.get 5 - i32.lt_u - br_if 0 (;@6;) - local.get 3 - local.get 0 - i32.ge_u - br_if 0 (;@6;) - local.get 3 - i32.const -8 - local.get 3 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 3 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 5 - i32.add - local.tee 0 - i32.const 0 - i32.load offset=1048592 - local.get 6 - i32.add - local.tee 2 - local.get 5 - i32.sub - local.tee 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 9 - local.get 6 - i32.add - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 5 - i32.store offset=1048592 - i32.const 0 - local.get 0 - i32.store offset=1048604 - local.get 3 - local.get 2 - i32.add - i32.const 56 - i32.store offset=4 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 0 - i32.load offset=1048596 - local.tee 9 - i32.ge_u - br_if 0 (;@6;) - i32.const 0 - local.get 0 - i32.store offset=1048596 - local.get 0 - local.set 9 - end - local.get 0 - local.get 6 - i32.add - local.set 5 - i32.const 1049028 - local.set 4 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - loop ;; label = @13 - local.get 4 - i32.load - local.get 5 - i32.eq - br_if 1 (;@12;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@13;) - br 2 (;@11;) - end - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - i32.eqz - br_if 1 (;@10;) - end - i32.const 1049028 - local.set 4 - loop ;; label = @11 - block ;; label = @12 - local.get 4 - i32.load - local.tee 5 - local.get 3 - i32.gt_u - br_if 0 (;@12;) - local.get 5 - local.get 4 - i32.load offset=4 - i32.add - local.tee 5 - local.get 3 - i32.gt_u - br_if 3 (;@9;) - end - local.get 4 - i32.load offset=8 - local.set 4 - br 0 (;@11;) - end - end - local.get 4 - local.get 0 - i32.store - local.get 4 - local.get 4 - i32.load offset=4 - local.get 6 - i32.add - i32.store offset=4 - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - i32.const -8 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 6 - local.get 2 - local.get 7 - i32.add - local.tee 7 - i32.sub - local.set 4 - block ;; label = @10 - local.get 6 - local.get 3 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048592 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048588 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 1 - i32.ne - br_if 0 (;@10;) - local.get 3 - i32.const -8 - i32.and - local.set 8 - block ;; label = @11 - block ;; label = @12 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@12;) - local.get 6 - i32.load offset=8 - local.tee 5 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 9 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 0 - i32.eq - drop - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 3 - local.get 5 - i32.ne - br_if 0 (;@13;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 9 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@11;) - end - local.get 3 - local.get 0 - i32.eq - drop - local.get 3 - local.get 5 - i32.store offset=8 - local.get 5 - local.get 3 - i32.store offset=12 - br 1 (;@11;) - end - local.get 6 - i32.load offset=24 - local.set 10 - block ;; label = @12 - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 0 - local.get 6 - i32.eq - br_if 0 (;@13;) - local.get 6 - i32.load offset=8 - local.tee 3 - local.get 9 - i32.lt_u - drop - local.get 0 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 0 - i32.store offset=12 - br 1 (;@12;) - end - block ;; label = @13 - local.get 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 6 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - i32.const 0 - local.set 0 - br 1 (;@12;) - end - loop ;; label = @13 - local.get 3 - local.set 9 - local.get 5 - local.tee 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 3 - local.get 0 - i32.load offset=16 - local.tee 5 - br_if 0 (;@13;) - end - local.get 9 - i32.const 0 - i32.store - end - local.get 10 - i32.eqz - br_if 0 (;@11;) - block ;; label = @12 - block ;; label = @13 - local.get 6 - local.get 6 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@13;) - local.get 3 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@12;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@11;) - end - local.get 10 - i32.const 16 - i32.const 20 - local.get 10 - i32.load offset=16 - local.get 6 - i32.eq - select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@11;) - end - local.get 0 - local.get 10 - i32.store offset=24 - block ;; label = @12 - local.get 6 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@12;) - local.get 0 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 6 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@11;) - local.get 0 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 8 - local.get 4 - i32.add - local.set 4 - local.get 6 - local.get 8 - i32.add - local.tee 6 - i32.load offset=4 - local.set 3 - end - local.get 6 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @10 - local.get 4 - i32.const 255 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 4 - i32.const 3 - i32.shr_u - i32.shl - local.tee 4 - i32.and - br_if 0 (;@12;) - i32.const 0 - local.get 5 - local.get 4 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 4 - br 1 (;@11;) - end - local.get 3 - i32.load offset=8 - local.set 4 - end - local.get 4 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - br 3 (;@7;) - end - i32.const 31 - local.set 3 - block ;; label = @10 - local.get 4 - i32.const 16777215 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 7 - local.get 3 - i32.store offset=28 - local.get 7 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @10 - i32.const 0 - i32.load offset=1048584 - local.tee 0 - i32.const 1 - local.get 3 - i32.shl - local.tee 9 - i32.and - br_if 0 (;@10;) - local.get 5 - local.get 7 - i32.store - i32.const 0 - local.get 0 - local.get 9 - i32.or - i32.store offset=1048584 - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 7 - i32.store offset=12 - br 3 (;@7;) - end - local.get 4 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 5 - i32.load - local.set 0 - loop ;; label = @10 - local.get 0 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 4 - i32.eq - br_if 2 (;@8;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 0 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 5 - local.get 0 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 9 - i32.load - local.tee 0 - br_if 0 (;@10;) - end - local.get 9 - local.get 7 - i32.store - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=12 - local.get 7 - local.get 7 - i32.store offset=8 - br 2 (;@7;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - local.get 6 - i32.const -56 - i32.add - local.tee 9 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 9 - i32.add - i32.const 56 - i32.store offset=4 - local.get 3 - local.get 5 - i32.const 55 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const -55 - i32.add - i32.const 15 - i32.and - select - i32.add - i32.const -63 - i32.add - local.tee 9 - local.get 9 - local.get 3 - i32.const 16 - i32.add - i32.lt_u - select - local.tee 9 - i32.const 35 - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 9 - i32.const 16 - i32.add - i32.const 0 - i64.load offset=1049036 align=4 - i64.store align=4 - local.get 9 - i32.const 0 - i64.load offset=1049028 align=4 - i64.store offset=8 align=4 - i32.const 0 - local.get 9 - i32.const 8 - i32.add - i32.store offset=1049036 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - local.get 9 - i32.const 36 - i32.add - local.set 4 - loop ;; label = @9 - local.get 4 - i32.const 7 - i32.store - local.get 4 - i32.const 4 - i32.add - local.tee 4 - local.get 5 - i32.lt_u - br_if 0 (;@9;) - end - local.get 9 - local.get 3 - i32.eq - br_if 3 (;@5;) - local.get 9 - local.get 9 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - local.get 9 - local.get 9 - local.get 3 - i32.sub - local.tee 0 - i32.store - local.get 3 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @9 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @10 - block ;; label = @11 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@11;) - i32.const 0 - local.get 5 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 5 - br 1 (;@10;) - end - local.get 4 - i32.load offset=8 - local.set 5 - end - local.get 5 - local.get 3 - i32.store offset=12 - local.get 4 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 4 - i32.store offset=12 - local.get 3 - local.get 5 - i32.store offset=8 - br 4 (;@5;) - end - i32.const 31 - local.set 4 - block ;; label = @9 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 - end - local.get 3 - local.get 4 - i32.store offset=28 - local.get 3 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @9 - i32.const 0 - i32.load offset=1048584 - local.tee 9 - i32.const 1 - local.get 4 - i32.shl - local.tee 6 - i32.and - br_if 0 (;@9;) - local.get 5 - local.get 3 - i32.store - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048584 - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 3 - i32.store offset=12 - br 4 (;@5;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 9 - loop ;; label = @9 - local.get 9 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 3 (;@6;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 9 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 9 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 9 - br_if 0 (;@9;) - end - local.get 6 - local.get 3 - i32.store - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=12 - local.get 3 - local.get 3 - i32.store offset=8 - br 3 (;@5;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 7 - i32.store offset=12 - local.get 5 - local.get 7 - i32.store offset=8 - local.get 7 - i32.const 0 - i32.store offset=24 - local.get 7 - local.get 5 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - end - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 5 (;@1;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.store offset=12 - local.get 5 - local.get 3 - i32.store offset=8 local.get 3 + i32.load offset=4 + local.tee 8 + i32.const -4 + i32.and + local.tee 1 + br_if 0 (;@5;) i32.const 0 - i32.store offset=24 - local.get 3 - local.get 5 - i32.store offset=12 - local.get 3 - local.get 4 - i32.store offset=8 + local.set 7 + br 1 (;@4;) end i32.const 0 - i32.load offset=1048592 - local.tee 4 - local.get 7 - i32.le_u - br_if 0 (;@4;) - i32.const 0 - i32.load offset=1048604 - local.tee 3 - local.get 7 - i32.add - local.tee 5 - local.get 4 - local.get 7 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 5 - i32.store offset=1048604 - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 3 (;@1;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 2 (;@1;) - end - block ;; label = @3 - local.get 2 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 9 - local.get 9 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 4 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@4;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - local.tee 10 - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 2 - i32.const 16 - i32.const 20 - local.get 2 - i32.load offset=16 - local.get 9 - i32.eq + local.get 1 + local.get 1 + i32.load8_u + i32.const 1 + i32.and select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@3;) + local.set 7 end - local.get 0 - local.get 2 - i32.store offset=24 block ;; label = @4 - local.get 9 - i32.load offset=16 - local.tee 4 + local.get 3 + i32.load + local.tee 0 + i32.const -4 + i32.and + local.tee 9 i32.eqz br_if 0 (;@4;) local.get 0 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 0 - i32.store offset=24 - end - local.get 9 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 0 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 0 - i32.store offset=24 - end - block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 15 - i32.gt_u + i32.const 2 + i32.and br_if 0 (;@4;) local.get 9 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 local.get 9 - local.get 4 - i32.add - local.tee 4 - local.get 4 i32.load offset=4 - i32.const 1 + i32.const 3 + i32.and + local.get 1 i32.or i32.store offset=4 - br 1 (;@3;) - end - local.get 9 - local.get 7 - i32.add - local.tee 0 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 9 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 3 - i32.add - local.get 3 - i32.store - block ;; label = @4 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) local.get 3 - i32.const -8 + i32.load offset=4 + local.tee 8 + i32.const -4 i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @5 - block ;; label = @6 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 3 - i32.const 3 - i32.shr_u - i32.shl - local.tee 3 - i32.and - br_if 0 (;@6;) - i32.const 0 - local.get 5 - local.get 3 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 3 - br 1 (;@5;) - end - local.get 4 - i32.load offset=8 - local.set 3 - end - local.get 3 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 + local.set 1 local.get 3 - i32.store offset=8 - br 1 (;@3;) + i32.load + local.set 0 end - i32.const 31 - local.set 4 block ;; label = @4 - local.get 3 - i32.const 16777215 - i32.gt_u + local.get 1 + i32.eqz br_if 0 (;@4;) + local.get 1 + local.get 1 + i32.load + i32.const 3 + i32.and + local.get 0 + i32.const -4 + i32.and + i32.or + i32.store local.get 3 - i32.const 38 + i32.load offset=4 + local.set 8 local.get 3 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 + i32.load + local.set 0 end + local.get 3 + local.get 8 + i32.const 3 + i32.and + i32.store offset=4 + local.get 3 local.get 0 - local.get 4 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 + i32.const 3 + i32.and + i32.store block ;; label = @4 - local.get 10 - i32.const 1 - local.get 4 - i32.shl - local.tee 7 + local.get 0 + i32.const 2 i32.and + i32.eqz br_if 0 (;@4;) - local.get 5 - local.get 0 - i32.store - i32.const 0 - local.get 10 local.get 7 + local.get 7 + i32.load + i32.const 2 i32.or - i32.store offset=1048584 - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - br 1 (;@3;) - end - local.get 3 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 7 - block ;; label = @4 - loop ;; label = @5 - local.get 7 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 3 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 7 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 7 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 7 - br_if 0 (;@5;) - end - local.get 6 - local.get 0 i32.store - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - br 1 (;@3;) end - local.get 5 + local.get 2 + local.get 7 + i32.store + local.get 7 + local.set 3 + local.get 7 i32.load offset=8 - local.tee 4 - local.get 0 - i32.store offset=12 - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 5 - i32.store offset=12 - local.get 0 - local.get 4 - i32.store offset=8 + local.tee 1 + i32.const 1 + i32.and + br_if 0 (;@3;) end - local.get 9 - i32.const 8 - i32.add - local.set 4 - br 1 (;@1;) end block ;; label = @2 - local.get 11 - i32.eqz - br_if 0 (;@2;) - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@4;) - local.get 4 - local.get 9 - i32.store - local.get 9 - br_if 1 (;@3;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@2;) - end - local.get 11 - i32.const 16 - i32.const 20 - local.get 11 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 9 - i32.store - local.get 9 - i32.eqz - br_if 1 (;@2;) - end - local.get 9 - local.get 11 - i32.store offset=24 - block ;; label = @3 - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 9 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 9 - i32.store offset=24 - end - local.get 0 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@2;) - local.get 9 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 9 - i32.store offset=24 - end - block ;; label = @2 - block ;; label = @3 - local.get 3 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 0 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 1 (;@2;) - end - local.get 0 local.get 7 - i32.add - local.tee 5 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 + i32.load + i32.const -4 + i32.and + local.tee 0 local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - local.get 3 + i32.const 8 i32.add - local.get 3 - i32.store - block ;; label = @3 - local.get 8 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 4 - block ;; label = @4 - block ;; label = @5 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - local.get 6 - i32.and - br_if 0 (;@5;) - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@4;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 4 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 7 - i32.store offset=12 - local.get 4 - local.get 9 - i32.store offset=8 - end - i32.const 0 - local.get 5 - i32.store offset=1048600 - i32.const 0 - local.get 3 - i32.store offset=1048588 - end - local.get 0 - i32.const 8 - i32.add - local.set 4 - end - local.get 1 - i32.const 16 - i32.add - global.set $__stack_pointer - local.get 4 - ) - (func $free (;14;) (type 7) (param i32) - local.get 0 - call $dlfree - ) - (func $dlfree (;15;) (type 7) (param i32) - (local i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - i32.eqz - br_if 0 (;@1;) - local.get 0 - i32.const -8 - i32.add - local.tee 1 - local.get 0 - i32.const -4 - i32.add - i32.load - local.tee 2 - i32.const -8 - i32.and - local.tee 0 - i32.add - local.set 3 - block ;; label = @2 - local.get 2 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 2 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 1 - local.get 1 - i32.load - local.tee 2 + local.tee 3 i32.sub - local.tee 1 - i32.const 0 - i32.load offset=1048596 - local.tee 4 + local.get 6 i32.lt_u - br_if 1 (;@1;) - local.get 2 - local.get 0 - i32.add - local.set 0 + br_if 0 (;@2;) block ;; label = @3 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@3;) block ;; label = @4 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 1 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 + local.get 3 + i32.const 72 i32.add - local.tee 6 - i32.eq - drop - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 2 + local.get 0 local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 + i32.sub + local.get 5 + i32.and + local.tee 0 + i32.le_u + br_if 0 (;@4;) local.get 4 + local.get 3 + i32.and + br_if 2 (;@2;) local.get 2 - i32.store offset=12 - br 2 (;@2;) - end - local.get 1 - i32.load offset=24 - local.set 7 - block ;; label = @4 - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 6 - local.get 1 - i32.eq - br_if 0 (;@5;) - local.get 1 - i32.load offset=8 - local.tee 2 - local.get 4 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 1 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 1 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - i32.const 0 - local.set 6 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@5;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 1 - local.get 1 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 3 (;@2;) - end local.get 7 - i32.const 16 - i32.const 20 + i32.load offset=8 + i32.const -4 + i32.and + i32.store local.get 7 - i32.load offset=16 - local.get 1 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 2 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @4 - local.get 1 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 1 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - br 1 (;@2;) - end - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 0 (;@2;) - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 1 - local.get 3 - i32.ge_u - br_if 0 (;@1;) - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048592 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - return - end - local.get 2 - i32.const -8 - i32.and - local.get 0 - i32.add - local.set 0 - block ;; label = @4 - block ;; label = @5 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 3 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 2 - local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 2 - i32.store offset=12 - br 1 (;@4;) - end - local.get 3 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 6 - local.get 3 - i32.eq - br_if 0 (;@6;) - local.get 3 - i32.load offset=8 - local.tee 2 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 3 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 3 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 3 - local.get 3 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 3 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 + i32.load + local.set 1 local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 3 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 3 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 0 - i32.store offset=1048588 - return - end - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 2 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 2 - local.set 0 + local.set 3 br 1 (;@3;) - end - local.get 2 - i32.load offset=8 - local.set 0 - end - local.get 0 - local.get 1 - i32.store offset=12 - local.get 2 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 2 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - return - end - i32.const 31 - local.set 2 - block ;; label = @2 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 2 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 2 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 2 - end - local.get 1 - local.get 2 - i32.store offset=28 - local.get 1 - i64.const 0 - i64.store offset=16 align=4 - local.get 2 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - block ;; label = @3 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 2 - i32.shl - local.tee 3 - i32.and - br_if 0 (;@3;) - local.get 4 - local.get 1 - i32.store - i32.const 0 - local.get 6 - local.get 3 - i32.or - i32.store offset=1048584 - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 1 - i32.store offset=12 - br 1 (;@2;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 2 - i32.const 1 - i32.shr_u - i32.sub - local.get 2 - i32.const 31 - i32.eq - select - i32.shl - local.set 2 - local.get 4 - i32.load - local.set 6 - block ;; label = @3 - loop ;; label = @4 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 1 (;@3;) - local.get 2 - i32.const 29 - i32.shr_u - local.set 6 - local.get 2 - i32.const 1 - i32.shl - local.set 2 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 6 - br_if 0 (;@4;) - end - local.get 3 - local.get 1 - i32.store - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=12 - local.get 1 - local.get 1 - i32.store offset=8 - br 1 (;@2;) - end - local.get 4 - i32.load offset=8 - local.tee 0 - local.get 1 - i32.store offset=12 - local.get 4 - local.get 1 - i32.store offset=8 - local.get 1 - i32.const 0 - i32.store offset=24 - local.get 1 - local.get 4 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - end - i32.const 0 - i32.const 0 - i32.load offset=1048612 - i32.const -1 - i32.add - local.tee 1 - i32.const -1 - local.get 1 - select - i32.store offset=1048612 - end - ) - (func $realloc (;16;) (type 4) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - block ;; label = @1 - local.get 1 - i32.const -64 - i32.lt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.set 2 - local.get 0 - i32.const -4 - i32.add - local.tee 3 - i32.load - local.tee 4 - i32.const -8 - i32.and - local.set 5 - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 4 - i32.const 3 - i32.and - br_if 0 (;@3;) - local.get 2 - i32.const 256 - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.const 4 - i32.or - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.sub - i32.const 0 - i32.load offset=1049060 - i32.const 1 - i32.shl - i32.le_u - br_if 2 (;@1;) - br 1 (;@2;) - end - local.get 0 - i32.const -8 - i32.add - local.tee 6 - local.get 5 - i32.add - local.set 7 - block ;; label = @3 - local.get 5 - local.get 2 - i32.lt_u - br_if 0 (;@3;) - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 2 (;@1;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 7 - local.get 7 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 1 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048592 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.le_u - br_if 1 (;@2;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.add - local.tee 1 - i32.store offset=1048604 - i32.const 0 - local.get 5 - local.get 2 - i32.sub - local.tee 2 - i32.store offset=1048592 - local.get 1 - local.get 2 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048588 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.lt_u - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 0 (;@5;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 6 - local.get 5 - i32.add - local.tee 5 - local.get 1 - i32.store - local.get 5 - local.get 5 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - br 1 (;@4;) - end - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 5 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 5 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 1 - i32.const 0 - local.set 2 - end - i32.const 0 - local.get 2 - i32.store offset=1048600 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 0 - return - end - local.get 7 - i32.load offset=4 - local.tee 8 - i32.const 2 - i32.and - br_if 0 (;@2;) - local.get 8 - i32.const -8 - i32.and - local.get 5 - i32.add - local.tee 9 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - local.get 9 - local.get 2 - i32.sub - local.set 10 - block ;; label = @3 - block ;; label = @4 - local.get 8 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 7 - i32.load offset=8 - local.tee 1 - local.get 8 - i32.const 3 - i32.shr_u - local.tee 11 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 8 - i32.eq - drop - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 5 - local.get 1 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 11 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@3;) - end - local.get 5 - local.get 8 - i32.eq - drop - local.get 5 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 5 - i32.store offset=12 - br 1 (;@3;) - end - local.get 7 - i32.load offset=24 - local.set 12 - block ;; label = @4 - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 8 - local.get 7 - i32.eq - br_if 0 (;@5;) - local.get 7 - i32.load offset=8 - local.tee 1 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 8 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 8 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 7 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 7 - i32.const 16 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - i32.const 0 - local.set 8 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 1 - local.set 11 - local.get 5 - local.tee 8 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 8 - i32.const 16 - i32.add - local.set 1 - local.get 8 - i32.load offset=16 - local.tee 5 - br_if 0 (;@5;) - end - local.get 11 - i32.const 0 - i32.store - end - local.get 12 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 7 - local.get 7 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 1 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 1 - local.get 8 - i32.store - local.get 8 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 12 - i32.const 16 - i32.const 20 - local.get 12 - i32.load offset=16 - local.get 7 - i32.eq - select - i32.add - local.get 8 - i32.store - local.get 8 - i32.eqz - br_if 1 (;@3;) - end - local.get 8 - local.get 12 - i32.store offset=24 - block ;; label = @4 - local.get 7 - i32.load offset=16 - local.tee 1 - i32.eqz - br_if 0 (;@4;) - local.get 8 - local.get 1 - i32.store offset=16 - local.get 1 - local.get 8 - i32.store offset=24 - end - local.get 7 - i32.load offset=20 - local.tee 1 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const 20 - i32.add - local.get 1 - i32.store - local.get 1 - local.get 8 - i32.store offset=24 - end - block ;; label = @3 - local.get 10 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 9 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 9 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 1 - local.get 10 - i32.const 3 - i32.or - i32.store offset=4 - local.get 6 - local.get 9 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 10 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @2 - local.get 1 - call $dlmalloc - local.tee 2 - br_if 0 (;@2;) - i32.const 0 - return - end - local.get 2 - local.get 0 - i32.const -4 - i32.const -8 - local.get 3 - i32.load - local.tee 5 - i32.const 3 - i32.and - select - local.get 5 - i32.const -8 - i32.and - i32.add - local.tee 5 - local.get 1 - local.get 5 - local.get 1 - i32.lt_u - select - call $memcpy - local.set 1 - local.get 0 - call $dlfree - local.get 1 - local.set 0 - end - local.get 0 - ) - (func $dispose_chunk (;17;) (type 8) (param i32 i32) - (local i32 i32 i32 i32 i32 i32) - local.get 0 - local.get 1 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 3 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 0 - i32.load - local.tee 3 - local.get 1 - i32.add - local.set 1 - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 3 - i32.sub - local.tee 0 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@4;) - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 0 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - local.get 0 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 2 (;@3;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 0 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 0 - i32.load offset=12 - local.tee 6 - local.get 0 - i32.eq - br_if 0 (;@6;) - local.get 0 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 0 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 3 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 3 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 2 (;@2;) - block ;; label = @5 - block ;; label = @6 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 4 (;@2;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 3 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 0 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 2 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - br 2 (;@2;) - end - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 1 (;@2;) - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 2 - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - end - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048592 - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048588 - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - return - end - local.get 3 - i32.const -8 - i32.and - local.get 1 - i32.add - local.set 1 - block ;; label = @4 - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 2 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - br 1 (;@4;) - end - local.get 2 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 6 - local.get 2 - i32.eq - br_if 0 (;@6;) - local.get 2 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 2 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 2 - i32.const 16 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 4 - local.set 5 - local.get 3 - local.tee 6 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 4 - local.get 6 - i32.load offset=16 - local.tee 3 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 2 - local.get 2 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 2 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 2 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 2 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 1 - i32.store offset=1048588 - return - end - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 1 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 1 - i32.const 3 - i32.shr_u - i32.shl - local.tee 1 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 1 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 1 - br 1 (;@3;) - end - local.get 3 - i32.load offset=8 - local.set 1 - end - local.get 1 - local.get 0 - i32.store offset=12 - local.get 3 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 3 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - return - end - i32.const 31 - local.set 3 - block ;; label = @2 - local.get 1 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const 38 - local.get 1 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 0 - local.get 3 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 3 - i32.shl - local.tee 2 - i32.and - br_if 0 (;@2;) - local.get 4 - local.get 0 - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.or - i32.store offset=1048584 - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - return - end - local.get 1 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 4 - i32.load - local.set 6 - block ;; label = @2 - loop ;; label = @3 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 1 - i32.eq - br_if 1 (;@2;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 6 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 6 - br_if 0 (;@3;) - end - local.get 2 - local.get 0 - i32.store - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - return - end - local.get 4 - i32.load offset=8 - local.tee 1 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - end - ) - (func $internal_memalign (;18;) (type 4) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const 16 - local.get 0 - i32.const 16 - i32.gt_u - select - local.tee 2 - local.get 2 - i32.const -1 - i32.add - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - i32.const 32 - local.set 3 - loop ;; label = @2 - local.get 3 - local.tee 0 - i32.const 1 - i32.shl - local.set 3 - local.get 0 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - end - end - block ;; label = @1 - i32.const -64 - local.get 0 - i32.sub - local.get 1 - i32.gt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - block ;; label = @1 - local.get 0 - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.tee 1 - i32.add - i32.const 12 - i32.add - call $dlmalloc - local.tee 3 - br_if 0 (;@1;) - i32.const 0 - return - end - local.get 3 - i32.const -8 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const -1 - i32.add - local.get 3 - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - local.get 3 - i32.const -4 - i32.add - local.tee 4 - i32.load - local.tee 5 - i32.const -8 - i32.and - local.get 3 - local.get 0 - i32.add - i32.const -1 - i32.add - i32.const 0 - local.get 0 - i32.sub - i32.and - i32.const -8 - i32.add - local.tee 3 - i32.const 0 - local.get 0 - local.get 3 - local.get 2 - i32.sub - i32.const 15 - i32.gt_u - select - i32.add - local.tee 0 - local.get 2 - i32.sub - local.tee 3 - i32.sub - local.set 6 - block ;; label = @2 - local.get 5 - i32.const 3 - i32.and - br_if 0 (;@2;) - local.get 0 - local.get 6 - i32.store offset=4 - local.get 0 - local.get 2 - i32.load - local.get 3 - i32.add - i32.store - br 1 (;@1;) - end - local.get 0 - local.get 6 - local.get 0 - i32.load offset=4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 6 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - local.get 4 - i32.load - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 2 - local.get 3 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 3 - call $dispose_chunk - end - block ;; label = @1 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@1;) - local.get 3 - i32.const -8 - i32.and - local.tee 2 - local.get 1 - i32.const 16 - i32.add - i32.le_u - br_if 0 (;@1;) - local.get 0 - local.get 1 - local.get 3 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.tee 3 - local.get 2 - local.get 1 - i32.sub - local.tee 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 2 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 1 - call $dispose_chunk - end - local.get 0 - i32.const 8 - i32.add - ) - (func $aligned_alloc (;19;) (type 4) (param i32 i32) (result i32) - block ;; label = @1 - local.get 0 - i32.const 16 - i32.gt_u - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - local.get 0 - local.get 1 - call $internal_memalign - ) - (func $abort (;20;) (type 2) - unreachable - unreachable - ) - (func $sbrk (;21;) (type 6) (param i32) (result i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - memory.size - i32.const 16 - i32.shl - return - end - block ;; label = @1 - local.get 0 - i32.const 65535 - i32.and - br_if 0 (;@1;) - local.get 0 - i32.const -1 - i32.le_s - br_if 0 (;@1;) - block ;; label = @2 - local.get 0 - i32.const 16 - i32.shr_u - memory.grow - local.tee 0 - i32.const -1 - i32.ne - br_if 0 (;@2;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const -1 - return - end - local.get 0 - i32.const 16 - i32.shl - return - end - call $abort - unreachable - ) - (func $memcpy (;22;) (type 9) (param i32 i32 i32) (result i32) - (local i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 32 - i32.gt_u - br_if 0 (;@3;) - local.get 1 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@2;) - local.get 2 - i32.eqz - br_if 1 (;@2;) + end + i32.const 0 + local.set 1 local.get 0 - local.get 1 - i32.load8_u - i32.store8 - local.get 2 - i32.const -1 - i32.add - local.set 3 + i32.const 0 + i32.store local.get 0 - i32.const 1 - i32.add - local.set 4 - local.get 1 - i32.const 1 + i32.const -8 i32.add - local.tee 5 - i32.const 3 + local.tee 3 + i64.const 0 + i64.store align=4 + local.get 3 + local.get 7 + i32.load + i32.const -4 i32.and - i32.eqz - br_if 2 (;@1;) + i32.store + block ;; label = @4 + local.get 7 + i32.load + local.tee 8 + i32.const -4 + i32.and + local.tee 0 + i32.eqz + br_if 0 (;@4;) + local.get 8 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 0 + local.get 0 + i32.load offset=4 + i32.const 3 + i32.and + local.get 3 + i32.or + i32.store offset=4 + local.get 3 + i32.load offset=4 + i32.const 3 + i32.and + local.set 1 + end local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 local.get 1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get 2 + local.get 7 + i32.or + i32.store offset=4 + local.get 7 + local.get 7 + i32.load offset=8 i32.const -2 - i32.add - local.set 3 - local.get 0 - i32.const 2 - i32.add - local.set 4 - local.get 1 - i32.const 2 - i32.add - local.tee 5 + i32.and + i32.store offset=8 + local.get 7 + local.get 7 + i32.load + local.tee 1 i32.const 3 i32.and - i32.eqz - br_if 2 (;@1;) local.get 3 - i32.eqz - br_if 2 (;@1;) + i32.or + local.tee 0 + i32.store + block ;; label = @4 + local.get 1 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 3 + i32.load + local.set 1 + br 1 (;@3;) + end + local.get 7 local.get 0 - local.get 1 - i32.load8_u offset=2 - i32.store8 offset=2 - local.get 2 i32.const -3 - i32.add - local.set 3 - local.get 0 - i32.const 3 - i32.add - local.set 4 - local.get 1 - i32.const 3 - i32.add - local.tee 5 - i32.const 3 i32.and - i32.eqz - br_if 2 (;@1;) + i32.store local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 - local.get 1 - i32.load8_u offset=3 - i32.store8 offset=3 - local.get 2 - i32.const -4 - i32.add - local.set 3 - local.get 0 - i32.const 4 - i32.add - local.set 4 - local.get 1 - i32.const 4 - i32.add - local.set 5 - br 2 (;@1;) + i32.load + i32.const 2 + i32.or + local.set 1 end - local.get 0 + local.get 3 local.get 1 - local.get 2 - memory.copy - local.get 0 + i32.const 1 + i32.or + i32.store + local.get 3 + i32.const 8 + i32.add return end local.get 2 + local.get 1 + i32.store + local.get 1 local.set 3 - local.get 0 - local.set 4 local.get 1 - local.set 5 + br_if 0 (;@1;) end + i32.const 0 + ) + (func $::alloc (;9;) (type 6) (param i32 i32 i32) (result i32) + (local i32 i32 i32) + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 3 + global.set $__stack_pointer block ;; label = @1 block ;; label = @2 - local.get 4 + local.get 2 + br_if 0 (;@2;) + local.get 1 + local.set 2 + br 1 (;@1;) + end + local.get 3 + local.get 0 + i32.load + i32.store offset=12 + block ;; label = @2 + local.get 2 i32.const 3 - i32.and + i32.add + local.tee 4 + i32.const 2 + i32.shr_u + local.tee 5 + local.get 1 + local.get 3 + i32.const 12 + i32.add + call $wee_alloc::alloc_first_fit local.tee 2 br_if 0 (;@2;) block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@4;) - local.get 3 - local.set 2 - br 1 (;@3;) - end - block ;; label = @4 - local.get 3 - i32.const -16 - i32.add - local.tee 2 - i32.const 16 - i32.and - br_if 0 (;@4;) - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - i32.const 16 - i32.add - local.set 4 - local.get 5 - i32.const 16 - i32.add - local.set 5 - local.get 2 - local.set 3 - end - local.get 2 - i32.const 16 - i32.lt_u - br_if 0 (;@3;) - local.get 3 - local.set 2 - loop ;; label = @4 - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - local.get 5 - i64.load offset=16 align=4 - i64.store offset=16 align=4 - local.get 4 - local.get 5 - i64.load offset=24 align=4 - i64.store offset=24 align=4 - local.get 4 - i32.const 32 - i32.add - local.set 4 - local.get 5 - i32.const 32 - i32.add - local.set 5 - local.get 2 - i32.const -32 - i32.add - local.tee 2 - i32.const 15 - i32.gt_u - br_if 0 (;@4;) - end - end - block ;; label = @3 - local.get 2 - i32.const 8 - i32.lt_u - br_if 0 (;@3;) local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 5 - i32.const 8 - i32.add - local.set 5 - local.get 4 - i32.const 8 - i32.add - local.set 4 - end - block ;; label = @3 - local.get 2 - i32.const 4 + i32.const -4 i32.and - i32.eqz - br_if 0 (;@3;) - local.get 4 - local.get 5 - i32.load - i32.store - local.get 5 - i32.const 4 - i32.add - local.set 5 - local.get 4 - i32.const 4 + local.tee 2 + local.get 1 + i32.const 3 + i32.shl + i32.const 512 i32.add - local.set 4 - end - block ;; label = @3 + local.tee 4 local.get 2 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@3;) local.get 4 - local.get 5 - i32.load16_u align=1 - i32.store16 align=1 - local.get 4 - i32.const 2 - i32.add - local.set 4 - local.get 5 - i32.const 2 + i32.gt_u + select + i32.const 65543 i32.add - local.set 5 + local.tee 4 + i32.const 16 + i32.shr_u + memory.grow + local.tee 2 + i32.const -1 + i32.ne + br_if 0 (;@3;) + i32.const 0 + local.set 2 + br 1 (;@2;) end local.get 2 - i32.const 1 - i32.and - i32.eqz - br_if 1 (;@1;) + i32.const 16 + i32.shl + local.tee 2 + i32.const 0 + i32.store offset=4 + local.get 2 + local.get 3 + i32.load offset=12 + i32.store offset=8 + local.get 2 + local.get 2 local.get 4 + i32.const -65536 + i32.and + i32.add + i32.const 2 + i32.or + i32.store + local.get 3 + local.get 2 + i32.store offset=12 local.get 5 - i32.load8_u - i32.store8 - local.get 0 - return + local.get 1 + local.get 3 + i32.const 12 + i32.add + call $wee_alloc::alloc_first_fit + local.set 2 end + local.get 0 + local.get 3 + i32.load offset=12 + i32.store + end + local.get 3 + i32.const 16 + i32.add + global.set $__stack_pointer + local.get 2 + ) + (func $::dealloc (;10;) (type 7) (param i32 i32 i32 i32) + (local i32 i32 i32 i32 i32 i32 i32) + block ;; label = @1 + local.get 1 + i32.eqz + br_if 0 (;@1;) + local.get 3 + i32.eqz + br_if 0 (;@1;) + local.get 0 + i32.load + local.set 4 + local.get 1 + i32.const 0 + i32.store + local.get 1 + i32.const -8 + i32.add + local.tee 3 + local.get 3 + i32.load + local.tee 5 + i32.const -2 + i32.and + local.tee 6 + i32.store block ;; label = @2 block ;; label = @3 block ;; label = @4 block ;; label = @5 + local.get 3 + i32.const 4 + i32.add + local.tee 7 + i32.load + i32.const -4 + i32.and + local.tee 8 + i32.eqz + br_if 0 (;@5;) + local.get 8 + i32.load + local.tee 9 + i32.const 1 + i32.and + br_if 0 (;@5;) block ;; label = @6 - local.get 3 - i32.const 32 - i32.lt_u - br_if 0 (;@6;) block ;; label = @7 block ;; label = @8 - local.get 2 - i32.const -1 - i32.add - br_table 3 (;@5;) 0 (;@8;) 1 (;@7;) 7 (;@1;) + local.get 5 + i32.const -4 + i32.and + local.tee 10 + br_if 0 (;@8;) + local.get 8 + local.set 1 + br 1 (;@7;) end - local.get 4 - local.get 5 - i32.load - i32.store16 align=1 - local.get 4 + local.get 8 + local.set 1 local.get 5 i32.const 2 - i32.add - i32.load align=2 - i32.store offset=2 - local.get 4 - local.get 5 - i32.const 6 - i32.add - i64.load align=2 - i64.store offset=6 align=4 - local.get 4 - i32.const 18 - i32.add - local.set 2 - local.get 5 - i32.const 18 - i32.add - local.set 1 - i32.const 14 + i32.and + br_if 0 (;@7;) + local.get 10 + local.get 10 + i32.load offset=4 + i32.const 3 + i32.and + local.get 8 + i32.or + i32.store offset=4 + local.get 3 + i32.load local.set 6 - local.get 5 - i32.const 14 - i32.add - i32.load align=2 - local.set 5 - i32.const 14 - local.set 3 - br 3 (;@4;) + local.get 7 + i32.load + local.tee 5 + i32.const -4 + i32.and + local.tee 1 + i32.eqz + br_if 1 (;@6;) + local.get 1 + i32.load + local.set 9 end - local.get 4 - local.get 5 + local.get 1 + local.get 6 + i32.const -4 + i32.and + local.get 9 + i32.const 3 + i32.and + i32.or + i32.store + local.get 7 i32.load - i32.store8 - local.get 4 - local.get 5 - i32.const 1 - i32.add - i32.load align=1 - i32.store offset=1 - local.get 4 - local.get 5 - i32.const 5 - i32.add - i64.load align=1 - i64.store offset=5 align=4 - local.get 4 - i32.const 17 - i32.add - local.set 2 - local.get 5 - i32.const 17 - i32.add - local.set 1 - i32.const 13 - local.set 6 - local.get 5 - i32.const 13 - i32.add - i32.load align=1 local.set 5 - i32.const 15 - local.set 3 - br 2 (;@4;) - end - block ;; label = @6 - block ;; label = @7 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@7;) - local.get 4 - local.set 2 - local.get 5 - local.set 1 - br 1 (;@6;) - end - local.get 4 - local.get 5 - i32.load8_u - i32.store8 - local.get 4 - local.get 5 - i32.load offset=1 align=1 - i32.store offset=1 align=1 - local.get 4 - local.get 5 - i64.load offset=5 align=1 - i64.store offset=5 align=1 - local.get 4 - local.get 5 - i32.load16_u offset=13 align=1 - i32.store16 offset=13 align=1 - local.get 4 - local.get 5 - i32.load8_u offset=15 - i32.store8 offset=15 - local.get 4 - i32.const 16 - i32.add - local.set 2 - local.get 5 - i32.const 16 - i32.add - local.set 1 + local.get 3 + i32.load + local.set 6 end + local.get 7 + local.get 5 + i32.const 3 + i32.and + i32.store local.get 3 - i32.const 8 + local.get 6 + i32.const 3 + i32.and + i32.store + local.get 6 + i32.const 2 i32.and - br_if 2 (;@3;) - br 3 (;@2;) + i32.eqz + br_if 1 (;@4;) + local.get 8 + local.get 8 + i32.load + i32.const 2 + i32.or + i32.store + br 1 (;@4;) end - local.get 4 - local.get 5 - i32.load - local.tee 2 - i32.store8 - local.get 4 - local.get 2 - i32.const 16 - i32.shr_u - i32.store8 offset=2 - local.get 4 - local.get 2 - i32.const 8 - i32.shr_u - i32.store8 offset=1 - local.get 4 - local.get 5 - i32.const 3 - i32.add - i32.load align=1 - i32.store offset=3 - local.get 4 - local.get 5 - i32.const 7 - i32.add - i64.load align=1 - i64.store offset=7 align=4 - local.get 4 - i32.const 19 - i32.add - local.set 2 local.get 5 - i32.const 19 - i32.add - local.set 1 - i32.const 15 - local.set 6 + i32.const -4 + i32.and + local.tee 8 + i32.eqz + br_if 1 (;@3;) local.get 5 - i32.const 15 - i32.add - i32.load align=1 - local.set 5 - i32.const 13 - local.set 3 + i32.const 2 + i32.and + br_if 1 (;@3;) + local.get 8 + i32.load8_u + i32.const 1 + i32.and + br_if 1 (;@3;) + local.get 1 + local.get 8 + i32.load offset=8 + i32.const -4 + i32.and + i32.store + local.get 8 + local.get 3 + i32.const 1 + i32.or + i32.store offset=8 end local.get 4 - local.get 6 - i32.add - local.get 5 - i32.store + local.set 3 + br 1 (;@2;) end - local.get 2 - local.get 1 - i64.load align=1 - i64.store align=1 - local.get 2 - i32.const 8 - i32.add - local.set 2 local.get 1 - i32.const 8 - i32.add - local.set 1 + local.get 4 + i32.store end + local.get 0 + local.get 3 + i32.store + end + ) + (func $wit_bindgen::rt::run_ctors_once (;11;) (type 2) + block ;; label = @1 + i32.const 0 + i32.load8_u offset=1048581 + br_if 0 (;@1;) + call $__wasm_call_ctors + i32.const 0 + i32.const 1 + i32.store8 offset=1048581 + end + ) + (func $cabi_realloc (;12;) (type 5) (param i32 i32 i32 i32) (result i32) + block ;; label = @1 block ;; label = @2 - local.get 3 - i32.const 4 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 + block ;; label = @3 + local.get 1 + br_if 0 (;@3;) + local.get 3 + i32.eqz + br_if 2 (;@1;) + i32.const 0 + i32.load8_u offset=1048580 + drop + local.get 3 + local.get 2 + call $__rust_alloc + local.set 2 + br 1 (;@2;) + end + local.get 0 local.get 1 - i32.load align=1 - i32.store align=1 local.get 2 - i32.const 4 - i32.add - local.set 2 - local.get 1 - i32.const 4 - i32.add - local.set 1 - end - block ;; label = @2 local.get 3 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 - local.get 1 - i32.load16_u align=1 - i32.store16 align=1 - local.get 2 - i32.const 2 - i32.add + call $__rust_realloc local.set 2 - local.get 1 - i32.const 2 - i32.add - local.set 1 end - local.get 3 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) local.get 2 - local.get 1 - i32.load8_u - i32.store8 + br_if 0 (;@1;) + unreachable + unreachable end - local.get 0 + local.get 2 ) (table (;0;) 1 1 funcref) (memory (;0;) 17) diff --git a/tests/integration/expected/sdk_basic_wallet/basic_wallet_p2id_note.wat b/tests/integration/expected/sdk_basic_wallet/basic_wallet_p2id_note.wat index 58be1f60f..ed05bc16a 100644 --- a/tests/integration/expected/sdk_basic_wallet/basic_wallet_p2id_note.wat +++ b/tests/integration/expected/sdk_basic_wallet/basic_wallet_p2id_note.wat @@ -57,15 +57,14 @@ (type (;6;) (func (param i32 i32) (result i32))) (type (;7;) (func (param i32 i32 i32))) (type (;8;) (func (param i32 i32 i32 i32) (result i32))) - (type (;9;) (func (param i32) (result i32))) - (type (;10;) (func (param i32 i32 i32) (result i32))) + (type (;9;) (func (param i32 i32 i32) (result i32))) (import "miden:base/tx-kernel@1.0.0" "get-inputs" (func $basic_wallet_p2id_note::bindings::miden::base::tx_kernel::get_inputs::wit_import (;0;) (type 0))) (import "miden:base/tx-kernel@1.0.0" "get-id" (func $basic_wallet_p2id_note::bindings::miden::base::tx_kernel::get_id::wit_import (;1;) (type 1))) (import "miden:base/tx-kernel@1.0.0" "get-assets" (func $basic_wallet_p2id_note::bindings::miden::base::tx_kernel::get_assets::wit_import (;2;) (type 0))) (import "miden:basic-wallet/basic-wallet@1.0.0" "receive-asset" (func $basic_wallet_p2id_note::bindings::miden::basic_wallet::basic_wallet::receive_asset::wit_import (;3;) (type 2))) (func $__wasm_call_ctors (;4;) (type 3)) (func $alloc::raw_vec::finish_grow (;5;) (type 4) (param i32 i32 i32 i32) - (local i32) + (local i32 i32) block ;; label = @1 block ;; label = @2 block ;; label = @3 @@ -79,58 +78,76 @@ block ;; label = @4 block ;; label = @5 block ;; label = @6 - local.get 3 - i32.load offset=4 - i32.eqz - br_if 0 (;@6;) block ;; label = @7 local.get 3 - i32.const 8 - i32.add - i32.load - local.tee 4 + i32.load offset=4 + i32.eqz br_if 0 (;@7;) block ;; label = @8 - local.get 2 + local.get 3 + i32.const 8 + i32.add + i32.load + local.tee 4 br_if 0 (;@8;) + block ;; label = @9 + local.get 2 + br_if 0 (;@9;) + local.get 1 + local.set 3 + br 3 (;@6;) + end + i32.const 0 + i32.load8_u offset=1048580 + drop + i32.const 1048576 local.get 1 + local.get 2 + call $::alloc local.set 3 - br 4 (;@4;) + br 2 (;@6;) end - i32.const 0 - i32.load8_u offset=1048576 - drop + local.get 3 + i32.load + local.set 5 + i32.const 1048576 + local.get 1 + local.get 2 + call $::alloc + local.tee 3 + i32.eqz + br_if 3 (;@4;) + local.get 3 + local.get 5 + local.get 4 + memory.copy + i32.const 1048576 + local.get 5 + local.get 1 + local.get 4 + call $::dealloc br 2 (;@5;) end - local.get 3 - i32.load - local.get 4 + block ;; label = @7 + local.get 2 + br_if 0 (;@7;) + local.get 1 + local.set 3 + br 1 (;@6;) + end + i32.const 0 + i32.load8_u offset=1048580 + drop + i32.const 1048576 local.get 1 local.get 2 - call $__rust_realloc - local.set 3 - br 2 (;@4;) - end - block ;; label = @6 - local.get 2 - br_if 0 (;@6;) - local.get 1 + call $::alloc local.set 3 - br 2 (;@4;) end - i32.const 0 - i32.load8_u offset=1048576 - drop + local.get 3 + i32.eqz + br_if 1 (;@4;) end - local.get 2 - local.get 1 - call $__rust_alloc - local.set 3 - end - block ;; label = @4 - local.get 3 - i32.eqz - br_if 0 (;@4;) local.get 0 local.get 3 i32.store offset=4 @@ -343,11 +360,12 @@ i32.const 0 local.set 6 i32.const 0 - i32.load8_u offset=1048576 + i32.load8_u offset=1048580 drop - local.get 5 + i32.const 1048576 i32.const 8 - call $__rust_alloc + local.get 5 + call $::alloc local.tee 7 i32.eqz br_if 3 (;@3;) @@ -526,6141 +544,696 @@ local.get 7 i32.eqz br_if 0 (;@1;) + i32.const 1048576 local.get 4 + i32.const 8 local.get 7 i32.const 40 i32.mul - i32.const 8 - call $__rust_dealloc + call $::dealloc end + i32.const 1048576 local.get 2 + i32.const 8 local.get 1 i32.const 3 i32.shl - i32.const 8 - call $__rust_dealloc + call $::dealloc local.get 0 i32.const 32 i32.add global.set $__stack_pointer ) (func $__rust_alloc (;8;) (type 6) (param i32 i32) (result i32) - (local i32) - local.get 0 + i32.const 1048576 local.get 1 - call $__rdl_alloc - local.set 2 - local.get 2 - return + local.get 0 + call $::alloc ) (func $__rust_dealloc (;9;) (type 7) (param i32 i32 i32) + i32.const 1048576 local.get 0 - local.get 1 local.get 2 - call $__rdl_dealloc - return + local.get 1 + call $::dealloc ) (func $__rust_realloc (;10;) (type 8) (param i32 i32 i32 i32) (result i32) (local i32) - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rdl_realloc - local.set 4 - local.get 4 - return - ) - (func $wit_bindgen::rt::run_ctors_once (;11;) (type 3) block ;; label = @1 - i32.const 0 - i32.load8_u offset=1048577 - br_if 0 (;@1;) - call $__wasm_call_ctors - i32.const 0 - i32.const 1 - i32.store8 offset=1048577 - end - ) - (func $cabi_realloc (;12;) (type 8) (param i32 i32 i32 i32) (result i32) - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 1 - br_if 0 (;@3;) - local.get 3 - i32.eqz - br_if 2 (;@1;) - i32.const 0 - i32.load8_u offset=1048576 - drop - local.get 3 - local.get 2 - call $__rust_alloc - local.set 2 - br 1 (;@2;) - end - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rust_realloc - local.set 2 - end + i32.const 1048576 local.get 2 - br_if 0 (;@1;) - unreachable - unreachable - end - local.get 2 - ) - (func $wit_bindgen::rt::dealloc (;13;) (type 7) (param i32 i32 i32) - block ;; label = @1 - local.get 1 + local.get 3 + call $::alloc + local.tee 4 i32.eqz br_if 0 (;@1;) + local.get 4 local.get 0 local.get 1 + local.get 3 + local.get 1 + local.get 3 + i32.lt_u + select + memory.copy + i32.const 1048576 + local.get 0 local.get 2 - call $__rust_dealloc + local.get 1 + call $::dealloc end + local.get 4 ) - (func $__rdl_alloc (;14;) (type 6) (param i32 i32) (result i32) - (local i32) + (func $wee_alloc::alloc_first_fit (;11;) (type 9) (param i32 i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32) block ;; label = @1 - block ;; label = @2 - local.get 1 - i32.const 8 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - local.get 0 - i32.le_u - br_if 1 (;@1;) - end - local.get 1 - local.get 1 - local.get 0 - local.get 1 - i32.rem_u - local.tee 2 - i32.sub - i32.const 0 local.get 2 - select - local.get 0 - i32.add - call $aligned_alloc + i32.load + local.tee 3 + br_if 0 (;@1;) + i32.const 0 return end + local.get 1 + i32.const -1 + i32.add + local.set 4 + i32.const 0 + local.get 1 + i32.sub + local.set 5 local.get 0 - call $malloc - ) - (func $__rdl_dealloc (;15;) (type 7) (param i32 i32 i32) - local.get 0 - call $free - ) - (func $__rdl_realloc (;16;) (type 8) (param i32 i32 i32 i32) (result i32) - (local i32 i32) - block ;; label = @1 + i32.const 2 + i32.shl + local.set 6 + loop ;; label = @1 block ;; label = @2 block ;; label = @3 - local.get 2 - i32.const 8 - i32.gt_u + local.get 3 + i32.load offset=8 + local.tee 1 + i32.const 1 + i32.and br_if 0 (;@3;) - local.get 2 local.get 3 - i32.le_u - br_if 1 (;@2;) + local.set 7 + br 1 (;@2;) end - i32.const 0 - local.set 4 - local.get 2 - local.get 2 - local.get 3 - local.get 2 - i32.rem_u - local.tee 5 - i32.sub - i32.const 0 - local.get 5 - select - local.get 3 - i32.add - call $aligned_alloc - local.tee 2 - i32.eqz - br_if 1 (;@1;) - local.get 2 - local.get 0 - local.get 1 - local.get 3 - local.get 1 - local.get 3 - i32.lt_u - select - call $memcpy - local.set 2 - local.get 0 - call $free - local.get 2 - return - end - local.get 0 - local.get 3 - call $realloc - local.set 4 - end - local.get 4 - ) - (func $malloc (;17;) (type 9) (param i32) (result i32) - local.get 0 - call $dlmalloc - ) - (func $dlmalloc (;18;) (type 9) (param i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - global.get $__stack_pointer - i32.const 16 - i32.sub - local.tee 1 - global.set $__stack_pointer - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 + loop ;; label = @3 + local.get 3 + local.get 1 + i32.const -2 + i32.and + i32.store offset=8 block ;; label = @4 block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048604 - local.tee 2 - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - local.tee 3 - br_if 0 (;@13;) - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 8 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - local.tee 3 - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - end - i32.const 1114112 - i32.const 1049088 - i32.lt_u - br_if 1 (;@11;) - i32.const 0 - local.set 2 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const 89 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - local.set 4 - i32.const 0 - i32.const 1049088 - i32.store offset=1049028 - i32.const 0 - i32.const 1049088 - i32.store offset=1048596 - i32.const 0 - local.get 3 - i32.store offset=1048616 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.store offset=1049032 - loop ;; label = @13 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@13;) - end - i32.const 1049088 - i32.const -8 - i32.const 1049088 - i32.sub - i32.const 15 - i32.and - i32.const 0 - i32.const 1049088 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - i32.const 4 - i32.add - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const -56 - i32.add - local.tee 3 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 3 - i32.const 1049088 - i32.add - i32.const 4 - i32.add - i32.const 56 - i32.store - end - block ;; label = @12 - block ;; label = @13 - local.get 0 - i32.const 236 - i32.gt_u - br_if 0 (;@13;) - block ;; label = @14 - i32.const 0 - i32.load offset=1048580 - local.tee 6 - i32.const 16 - local.get 0 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 0 - i32.const 11 - i32.lt_u - select - local.tee 7 - i32.const 3 - i32.shr_u - local.tee 3 - i32.shr_u - local.tee 4 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - i32.const 1 - i32.and - local.get 3 - i32.or - i32.const 1 - i32.xor - local.tee 5 - i32.const 3 - i32.shl - local.tee 3 - i32.const 1048620 - i32.add - local.tee 4 - local.get 3 - i32.const 1048628 - i32.add - i32.load - local.tee 3 - i32.load offset=8 - local.tee 7 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 4 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 4 - i32.store offset=12 - end - local.get 3 - i32.const 8 - i32.add - local.set 4 - local.get 3 - local.get 5 - i32.const 3 - i32.shl - local.tee 5 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 5 - i32.add - local.tee 3 - local.get 3 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 13 (;@1;) - end - local.get 7 - i32.const 0 - i32.load offset=1048588 - local.tee 8 - i32.le_u - br_if 1 (;@12;) - block ;; label = @14 - local.get 4 - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - local.get 3 - i32.shl - i32.const 2 - local.get 3 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - i32.and - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - local.tee 3 - i32.const 3 - i32.shl - local.tee 4 - i32.const 1048620 - i32.add - local.tee 5 - local.get 4 - i32.const 1048628 - i32.add - i32.load - local.tee 4 - i32.load offset=8 - local.tee 0 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 3 - i32.rotl - i32.and - local.tee 6 - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 5 - i32.store offset=12 - end - local.get 4 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - i32.const 3 - i32.shl - local.tee 3 - i32.add - local.get 3 - local.get 7 - i32.sub - local.tee 5 - i32.store - local.get 4 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @15 - local.get 8 - i32.eqz - br_if 0 (;@15;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @16 - block ;; label = @17 - local.get 6 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - i32.and - br_if 0 (;@17;) - i32.const 0 - local.get 6 - local.get 9 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@16;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 9 - i32.store offset=8 - end - local.get 4 - i32.const 8 - i32.add - local.set 4 - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - local.get 5 - i32.store offset=1048588 - br 13 (;@1;) - end - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 1 (;@12;) - local.get 10 - i32.const 0 - local.get 10 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 0 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.set 3 - local.get 0 - local.set 5 - block ;; label = @14 - loop ;; label = @15 - block ;; label = @16 - local.get 5 - i32.load offset=16 - local.tee 4 - br_if 0 (;@16;) - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 2 (;@14;) - end - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 5 - local.get 3 - local.get 5 - local.get 3 - i32.lt_u - local.tee 5 - select - local.set 3 - local.get 4 - local.get 0 - local.get 5 - select - local.set 0 - local.get 4 - local.set 5 - br 0 (;@15;) - end - end - local.get 0 - i32.load offset=24 - local.set 11 - block ;; label = @14 - local.get 0 - i32.load offset=12 - local.tee 9 - local.get 0 - i32.eq - br_if 0 (;@14;) - local.get 0 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 9 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 9 - i32.store offset=12 - br 12 (;@2;) - end - block ;; label = @14 - local.get 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@10;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @14 - local.get 5 - local.set 2 - local.get 4 - local.tee 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - local.get 9 - i32.load offset=16 - local.tee 4 - br_if 0 (;@14;) - end - local.get 2 - i32.const 0 - i32.store - br 11 (;@2;) - end - i32.const -1 - local.set 7 - local.get 0 - i32.const -65 - i32.gt_u - br_if 0 (;@12;) - local.get 0 - i32.const 19 - i32.add - local.tee 4 - i32.const -16 - i32.and - local.set 7 - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 0 (;@12;) - i32.const 0 - local.set 8 - block ;; label = @13 - local.get 7 - i32.const 256 - i32.lt_u - br_if 0 (;@13;) - i32.const 31 - local.set 8 - local.get 7 - i32.const 16777215 - i32.gt_u - br_if 0 (;@13;) - local.get 7 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 8 - end - i32.const 0 - local.get 7 - i32.sub - local.set 3 - block ;; label = @13 - block ;; label = @14 - block ;; label = @15 - block ;; label = @16 - local.get 8 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 5 - br_if 0 (;@16;) - i32.const 0 - local.set 4 - i32.const 0 - local.set 9 - br 1 (;@15;) - end - i32.const 0 - local.set 4 - local.get 7 - i32.const 0 - i32.const 25 - local.get 8 - i32.const 1 - i32.shr_u - i32.sub - local.get 8 - i32.const 31 - i32.eq - select - i32.shl - local.set 0 - i32.const 0 - local.set 9 - loop ;; label = @16 - block ;; label = @17 - local.get 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.ge_u - br_if 0 (;@17;) - local.get 6 - local.set 3 - local.get 5 - local.set 9 - local.get 6 - br_if 0 (;@17;) - i32.const 0 - local.set 3 - local.get 5 - local.set 9 - local.get 5 - local.set 4 - br 3 (;@14;) - end - local.get 4 - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 6 - local.get 6 - local.get 5 - local.get 0 - i32.const 29 - i32.shr_u - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - i32.load - local.tee 5 - i32.eq - select - local.get 4 - local.get 6 - select - local.set 4 - local.get 0 - i32.const 1 - i32.shl - local.set 0 - local.get 5 - br_if 0 (;@16;) - end - end - block ;; label = @15 - local.get 4 - local.get 9 - i32.or - br_if 0 (;@15;) - i32.const 0 - local.set 9 - i32.const 2 - local.get 8 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - local.get 10 - i32.and - local.tee 4 - i32.eqz - br_if 3 (;@12;) - local.get 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.set 4 - end - local.get 4 - i32.eqz - br_if 1 (;@13;) - end - loop ;; label = @14 - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.lt_u - local.set 0 - block ;; label = @15 - local.get 4 - i32.load offset=16 - local.tee 5 - br_if 0 (;@15;) - local.get 4 - i32.const 20 - i32.add - i32.load - local.set 5 - end - local.get 6 - local.get 3 - local.get 0 - select - local.set 3 - local.get 4 - local.get 9 - local.get 0 - select - local.set 9 - local.get 5 - local.set 4 - local.get 5 - br_if 0 (;@14;) - end - end - local.get 9 - i32.eqz - br_if 0 (;@12;) - local.get 3 - i32.const 0 - i32.load offset=1048588 - local.get 7 - i32.sub - i32.ge_u - br_if 0 (;@12;) - local.get 9 - i32.load offset=24 - local.set 2 - block ;; label = @13 - local.get 9 - i32.load offset=12 - local.tee 0 - local.get 9 - i32.eq - br_if 0 (;@13;) - local.get 9 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 0 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 0 - i32.store offset=12 - br 10 (;@3;) - end - block ;; label = @13 - local.get 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 9 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@9;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @13 - local.get 5 - local.set 6 - local.get 4 - local.tee 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - local.get 0 - i32.load offset=16 - local.tee 4 - br_if 0 (;@13;) - end - local.get 6 - i32.const 0 - i32.store - br 9 (;@3;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048588 - local.tee 4 - local.get 7 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @13 - block ;; label = @14 - local.get 4 - local.get 7 - i32.sub - local.tee 5 - i32.const 16 - i32.lt_u - br_if 0 (;@14;) - local.get 3 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.get 5 - i32.store - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - br 1 (;@13;) - end - local.get 3 - local.get 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 0 - i32.const 0 - local.set 5 - end - i32.const 0 - local.get 5 - i32.store offset=1048588 - i32.const 0 - local.get 0 - i32.store offset=1048600 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048592 - local.tee 5 - local.get 7 - i32.le_u - br_if 0 (;@12;) - local.get 2 - local.get 7 - i32.add - local.tee 4 - local.get 5 - local.get 7 - i32.sub - local.tee 3 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048604 - i32.const 0 - local.get 3 - i32.store offset=1048592 - local.get 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - i32.eqz - br_if 0 (;@13;) - i32.const 0 - i32.load offset=1049060 - local.set 3 - br 1 (;@12;) - end - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 12 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - i32.const 65536 - local.set 3 - end - i32.const 0 - local.set 4 - block ;; label = @12 - local.get 3 - local.get 7 - i32.const 71 - i32.add - local.tee 8 - i32.add - local.tee 0 - i32.const 0 - local.get 3 - i32.sub - local.tee 6 - i32.and - local.tee 9 - local.get 7 - i32.gt_u - br_if 0 (;@12;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 9 - i32.add - local.tee 10 - local.get 3 - i32.le_u - br_if 0 (;@13;) - local.get 10 - local.get 4 - i32.le_u - br_if 1 (;@12;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - i32.const 0 - i32.load8_u offset=1049024 - i32.const 4 - i32.and - br_if 5 (;@6;) - block ;; label = @12 - block ;; label = @13 - block ;; label = @14 - local.get 2 - i32.eqz - br_if 0 (;@14;) - i32.const 1049028 - local.set 4 - loop ;; label = @15 - block ;; label = @16 - local.get 4 - i32.load - local.tee 3 - local.get 2 - i32.gt_u - br_if 0 (;@16;) - local.get 3 - local.get 4 - i32.load offset=4 - i32.add - local.get 2 - i32.gt_u - br_if 3 (;@13;) - end - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@15;) - end - end - i32.const 0 - call $sbrk - local.tee 0 - i32.const -1 - i32.eq - br_if 6 (;@7;) - local.get 9 - local.set 6 - block ;; label = @14 - i32.const 0 - i32.load offset=1049056 - local.tee 4 - i32.const -1 - i32.add - local.tee 3 - local.get 0 - i32.and - i32.eqz - br_if 0 (;@14;) - local.get 9 - local.get 0 - i32.sub - local.get 3 - local.get 0 - i32.add - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.add - local.set 6 - end - local.get 6 - local.get 7 - i32.le_u - br_if 6 (;@7;) - local.get 6 - i32.const 2147483646 - i32.gt_u - br_if 6 (;@7;) - block ;; label = @14 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@14;) - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 6 - i32.add - local.tee 5 - local.get 3 - i32.le_u - br_if 7 (;@7;) - local.get 5 - local.get 4 - i32.gt_u - br_if 7 (;@7;) - end - local.get 6 - call $sbrk - local.tee 4 - local.get 0 - i32.ne - br_if 1 (;@12;) - br 8 (;@5;) - end - local.get 0 - local.get 5 - i32.sub - local.get 6 - i32.and - local.tee 6 - i32.const 2147483646 - i32.gt_u - br_if 5 (;@7;) - local.get 6 - call $sbrk - local.tee 0 - local.get 4 - i32.load - local.get 4 - i32.load offset=4 - i32.add - i32.eq - br_if 4 (;@8;) - local.get 0 - local.set 4 - end - block ;; label = @12 - local.get 4 - i32.const -1 - i32.eq - br_if 0 (;@12;) - local.get 7 - i32.const 72 - i32.add - local.get 6 - i32.le_u - br_if 0 (;@12;) - block ;; label = @13 - local.get 8 - local.get 6 - i32.sub - i32.const 0 - i32.load offset=1049060 - local.tee 3 - i32.add - i32.const 0 - local.get 3 - i32.sub - i32.and - local.tee 3 - i32.const 2147483646 - i32.le_u - br_if 0 (;@13;) - local.get 4 - local.set 0 - br 8 (;@5;) - end - block ;; label = @13 - local.get 3 - call $sbrk - i32.const -1 - i32.eq - br_if 0 (;@13;) - local.get 3 - local.get 6 - i32.add - local.set 6 - local.get 4 - local.set 0 - br 8 (;@5;) - end - i32.const 0 - local.get 6 - i32.sub - call $sbrk - drop - br 5 (;@7;) - end - local.get 4 - local.set 0 - local.get 4 - i32.const -1 - i32.ne - br_if 6 (;@5;) - br 4 (;@7;) - end - unreachable - unreachable - end - i32.const 0 - local.set 9 - br 7 (;@2;) - end - i32.const 0 - local.set 0 - br 5 (;@3;) - end - local.get 0 - i32.const -1 - i32.ne - br_if 2 (;@5;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049024 - i32.const 4 - i32.or - i32.store offset=1049024 - end - local.get 9 - i32.const 2147483646 - i32.gt_u - br_if 1 (;@4;) - local.get 9 - call $sbrk - local.set 0 + local.get 3 + i32.load offset=4 + local.tee 8 + i32.const -4 + i32.and + local.tee 1 + br_if 0 (;@5;) i32.const 0 - call $sbrk - local.set 4 - local.get 0 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@4;) - local.get 4 - local.get 0 - i32.sub - local.tee 6 - local.get 7 - i32.const 56 - i32.add - i32.le_u - br_if 1 (;@4;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049012 - local.get 6 - i32.add - local.tee 4 - i32.store offset=1049012 - block ;; label = @5 - local.get 4 - i32.const 0 - i32.load offset=1049016 - i32.le_u - br_if 0 (;@5;) - i32.const 0 - local.get 4 - i32.store offset=1049016 - end - block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - i32.const 0 - i32.load offset=1048604 - local.tee 3 - i32.eqz - br_if 0 (;@8;) - i32.const 1049028 - local.set 4 - loop ;; label = @9 - local.get 0 - local.get 4 - i32.load - local.tee 5 - local.get 4 - i32.load offset=4 - local.tee 9 - i32.add - i32.eq - br_if 2 (;@7;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@9;) - br 3 (;@6;) - end - end - block ;; label = @8 - block ;; label = @9 - i32.const 0 - i32.load offset=1048596 - local.tee 4 - i32.eqz - br_if 0 (;@9;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@8;) - end - i32.const 0 - local.get 0 - i32.store offset=1048596 - end - i32.const 0 - local.set 4 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 0 - i32.load offset=1049052 - i32.store offset=1048616 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - loop ;; label = @8 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@8;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 3 - local.get 6 - i32.const -56 - i32.add - local.tee 5 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 3 - i32.store offset=1048604 - local.get 0 - local.get 5 - i32.add - i32.const 56 - i32.store offset=4 - br 2 (;@5;) - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - br_if 0 (;@6;) - local.get 3 - local.get 5 - i32.lt_u - br_if 0 (;@6;) - local.get 3 - local.get 0 - i32.ge_u - br_if 0 (;@6;) - local.get 3 - i32.const -8 - local.get 3 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 3 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 5 - i32.add - local.tee 0 - i32.const 0 - i32.load offset=1048592 - local.get 6 - i32.add - local.tee 2 - local.get 5 - i32.sub - local.tee 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 9 - local.get 6 - i32.add - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 5 - i32.store offset=1048592 - i32.const 0 - local.get 0 - i32.store offset=1048604 - local.get 3 - local.get 2 - i32.add - i32.const 56 - i32.store offset=4 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 0 - i32.load offset=1048596 - local.tee 9 - i32.ge_u - br_if 0 (;@6;) - i32.const 0 - local.get 0 - i32.store offset=1048596 - local.get 0 - local.set 9 - end - local.get 0 - local.get 6 - i32.add - local.set 5 - i32.const 1049028 - local.set 4 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - loop ;; label = @13 - local.get 4 - i32.load - local.get 5 - i32.eq - br_if 1 (;@12;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@13;) - br 2 (;@11;) - end - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - i32.eqz - br_if 1 (;@10;) - end - i32.const 1049028 - local.set 4 - loop ;; label = @11 - block ;; label = @12 - local.get 4 - i32.load - local.tee 5 - local.get 3 - i32.gt_u - br_if 0 (;@12;) - local.get 5 - local.get 4 - i32.load offset=4 - i32.add - local.tee 5 - local.get 3 - i32.gt_u - br_if 3 (;@9;) - end - local.get 4 - i32.load offset=8 - local.set 4 - br 0 (;@11;) - end - end - local.get 4 - local.get 0 - i32.store - local.get 4 - local.get 4 - i32.load offset=4 - local.get 6 - i32.add - i32.store offset=4 - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - i32.const -8 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 6 - local.get 2 - local.get 7 - i32.add - local.tee 7 - i32.sub - local.set 4 - block ;; label = @10 - local.get 6 - local.get 3 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048592 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048588 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 1 - i32.ne - br_if 0 (;@10;) - local.get 3 - i32.const -8 - i32.and - local.set 8 - block ;; label = @11 - block ;; label = @12 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@12;) - local.get 6 - i32.load offset=8 - local.tee 5 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 9 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 0 - i32.eq - drop - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 3 - local.get 5 - i32.ne - br_if 0 (;@13;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 9 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@11;) - end - local.get 3 - local.get 0 - i32.eq - drop - local.get 3 - local.get 5 - i32.store offset=8 - local.get 5 - local.get 3 - i32.store offset=12 - br 1 (;@11;) - end - local.get 6 - i32.load offset=24 - local.set 10 - block ;; label = @12 - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 0 - local.get 6 - i32.eq - br_if 0 (;@13;) - local.get 6 - i32.load offset=8 - local.tee 3 - local.get 9 - i32.lt_u - drop - local.get 0 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 0 - i32.store offset=12 - br 1 (;@12;) - end - block ;; label = @13 - local.get 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 6 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - i32.const 0 - local.set 0 - br 1 (;@12;) - end - loop ;; label = @13 - local.get 3 - local.set 9 - local.get 5 - local.tee 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 3 - local.get 0 - i32.load offset=16 - local.tee 5 - br_if 0 (;@13;) - end - local.get 9 - i32.const 0 - i32.store - end - local.get 10 - i32.eqz - br_if 0 (;@11;) - block ;; label = @12 - block ;; label = @13 - local.get 6 - local.get 6 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@13;) - local.get 3 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@12;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@11;) - end - local.get 10 - i32.const 16 - i32.const 20 - local.get 10 - i32.load offset=16 - local.get 6 - i32.eq - select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@11;) - end - local.get 0 - local.get 10 - i32.store offset=24 - block ;; label = @12 - local.get 6 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@12;) - local.get 0 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 6 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@11;) - local.get 0 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 8 - local.get 4 - i32.add - local.set 4 - local.get 6 - local.get 8 - i32.add - local.tee 6 - i32.load offset=4 - local.set 3 - end - local.get 6 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @10 - local.get 4 - i32.const 255 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 4 - i32.const 3 - i32.shr_u - i32.shl - local.tee 4 - i32.and - br_if 0 (;@12;) - i32.const 0 - local.get 5 - local.get 4 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 4 - br 1 (;@11;) - end - local.get 3 - i32.load offset=8 - local.set 4 - end - local.get 4 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - br 3 (;@7;) - end - i32.const 31 - local.set 3 - block ;; label = @10 - local.get 4 - i32.const 16777215 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 7 - local.get 3 - i32.store offset=28 - local.get 7 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @10 - i32.const 0 - i32.load offset=1048584 - local.tee 0 - i32.const 1 - local.get 3 - i32.shl - local.tee 9 - i32.and - br_if 0 (;@10;) - local.get 5 - local.get 7 - i32.store - i32.const 0 - local.get 0 - local.get 9 - i32.or - i32.store offset=1048584 - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 7 - i32.store offset=12 - br 3 (;@7;) - end - local.get 4 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 5 - i32.load - local.set 0 - loop ;; label = @10 - local.get 0 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 4 - i32.eq - br_if 2 (;@8;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 0 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 5 - local.get 0 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 9 - i32.load - local.tee 0 - br_if 0 (;@10;) - end - local.get 9 - local.get 7 - i32.store - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=12 - local.get 7 - local.get 7 - i32.store offset=8 - br 2 (;@7;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - local.get 6 - i32.const -56 - i32.add - local.tee 9 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 9 - i32.add - i32.const 56 - i32.store offset=4 - local.get 3 - local.get 5 - i32.const 55 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const -55 - i32.add - i32.const 15 - i32.and - select - i32.add - i32.const -63 - i32.add - local.tee 9 - local.get 9 - local.get 3 - i32.const 16 - i32.add - i32.lt_u - select - local.tee 9 - i32.const 35 - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 9 - i32.const 16 - i32.add - i32.const 0 - i64.load offset=1049036 align=4 - i64.store align=4 - local.get 9 - i32.const 0 - i64.load offset=1049028 align=4 - i64.store offset=8 align=4 - i32.const 0 - local.get 9 - i32.const 8 - i32.add - i32.store offset=1049036 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - local.get 9 - i32.const 36 - i32.add - local.set 4 - loop ;; label = @9 - local.get 4 - i32.const 7 - i32.store - local.get 4 - i32.const 4 - i32.add - local.tee 4 - local.get 5 - i32.lt_u - br_if 0 (;@9;) - end - local.get 9 - local.get 3 - i32.eq - br_if 3 (;@5;) - local.get 9 - local.get 9 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - local.get 9 - local.get 9 - local.get 3 - i32.sub - local.tee 0 - i32.store - local.get 3 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @9 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @10 - block ;; label = @11 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@11;) - i32.const 0 - local.get 5 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 5 - br 1 (;@10;) - end - local.get 4 - i32.load offset=8 - local.set 5 - end - local.get 5 - local.get 3 - i32.store offset=12 - local.get 4 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 4 - i32.store offset=12 - local.get 3 - local.get 5 - i32.store offset=8 - br 4 (;@5;) - end - i32.const 31 - local.set 4 - block ;; label = @9 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 - end - local.get 3 - local.get 4 - i32.store offset=28 - local.get 3 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @9 - i32.const 0 - i32.load offset=1048584 - local.tee 9 - i32.const 1 - local.get 4 - i32.shl - local.tee 6 - i32.and - br_if 0 (;@9;) - local.get 5 - local.get 3 - i32.store - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048584 - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 3 - i32.store offset=12 - br 4 (;@5;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 9 - loop ;; label = @9 - local.get 9 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 3 (;@6;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 9 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 9 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 9 - br_if 0 (;@9;) - end - local.get 6 - local.get 3 - i32.store - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=12 - local.get 3 - local.get 3 - i32.store offset=8 - br 3 (;@5;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 7 - i32.store offset=12 - local.get 5 - local.get 7 - i32.store offset=8 - local.get 7 - i32.const 0 - i32.store offset=24 - local.get 7 - local.get 5 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - end - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 5 (;@1;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.store offset=12 - local.get 5 - local.get 3 - i32.store offset=8 - local.get 3 - i32.const 0 - i32.store offset=24 - local.get 3 - local.get 5 - i32.store offset=12 - local.get 3 - local.get 4 - i32.store offset=8 - end - i32.const 0 - i32.load offset=1048592 - local.tee 4 - local.get 7 - i32.le_u - br_if 0 (;@4;) - i32.const 0 - i32.load offset=1048604 - local.tee 3 - local.get 7 - i32.add - local.tee 5 - local.get 4 - local.get 7 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 5 - i32.store offset=1048604 - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 3 (;@1;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 2 (;@1;) - end - block ;; label = @3 - local.get 2 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 9 - local.get 9 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 4 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@4;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - local.tee 10 - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 2 - i32.const 16 - i32.const 20 - local.get 2 - i32.load offset=16 - local.get 9 - i32.eq - select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@3;) - end - local.get 0 - local.get 2 - i32.store offset=24 - block ;; label = @4 - local.get 9 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 0 (;@4;) - local.get 0 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 0 - i32.store offset=24 - end - local.get 9 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 0 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 0 - i32.store offset=24 - end - block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 15 - i32.gt_u - br_if 0 (;@4;) - local.get 9 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 9 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 1 (;@3;) - end - local.get 9 - local.get 7 - i32.add - local.tee 0 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 9 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 3 - i32.add - local.get 3 - i32.store - block ;; label = @4 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 3 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @5 - block ;; label = @6 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 3 - i32.const 3 - i32.shr_u - i32.shl - local.tee 3 - i32.and - br_if 0 (;@6;) - i32.const 0 - local.get 5 - local.get 3 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 3 - br 1 (;@5;) - end - local.get 4 - i32.load offset=8 - local.set 3 - end - local.get 3 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 - local.get 3 - i32.store offset=8 - br 1 (;@3;) - end - i32.const 31 - local.set 4 - block ;; label = @4 - local.get 3 - i32.const 16777215 - i32.gt_u - br_if 0 (;@4;) - local.get 3 - i32.const 38 - local.get 3 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 - end - local.get 0 - local.get 4 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @4 - local.get 10 - i32.const 1 - local.get 4 - i32.shl - local.tee 7 - i32.and - br_if 0 (;@4;) - local.get 5 - local.get 0 - i32.store - i32.const 0 - local.get 10 - local.get 7 - i32.or - i32.store offset=1048584 - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - br 1 (;@3;) - end - local.get 3 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 7 - block ;; label = @4 - loop ;; label = @5 - local.get 7 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 3 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 7 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 7 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 7 - br_if 0 (;@5;) - end - local.get 6 - local.get 0 - i32.store - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - br 1 (;@3;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 0 - i32.store offset=12 - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 5 - i32.store offset=12 - local.get 0 - local.get 4 - i32.store offset=8 - end - local.get 9 - i32.const 8 - i32.add - local.set 4 - br 1 (;@1;) - end - block ;; label = @2 - local.get 11 - i32.eqz - br_if 0 (;@2;) - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@4;) - local.get 4 - local.get 9 - i32.store - local.get 9 - br_if 1 (;@3;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@2;) - end - local.get 11 - i32.const 16 - i32.const 20 - local.get 11 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 9 - i32.store - local.get 9 - i32.eqz - br_if 1 (;@2;) - end - local.get 9 - local.get 11 - i32.store offset=24 - block ;; label = @3 - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 9 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 9 - i32.store offset=24 - end - local.get 0 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@2;) - local.get 9 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 9 - i32.store offset=24 - end - block ;; label = @2 - block ;; label = @3 - local.get 3 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 0 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 1 (;@2;) - end - local.get 0 - local.get 7 - i32.add - local.tee 5 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - local.get 3 - i32.add - local.get 3 - i32.store - block ;; label = @3 - local.get 8 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 4 - block ;; label = @4 - block ;; label = @5 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - local.get 6 - i32.and - br_if 0 (;@5;) - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@4;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 4 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 7 - i32.store offset=12 - local.get 4 - local.get 9 - i32.store offset=8 - end - i32.const 0 - local.get 5 - i32.store offset=1048600 - i32.const 0 - local.get 3 - i32.store offset=1048588 - end - local.get 0 - i32.const 8 - i32.add - local.set 4 - end - local.get 1 - i32.const 16 - i32.add - global.set $__stack_pointer - local.get 4 - ) - (func $free (;19;) (type 0) (param i32) - local.get 0 - call $dlfree - ) - (func $dlfree (;20;) (type 0) (param i32) - (local i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - i32.eqz - br_if 0 (;@1;) - local.get 0 - i32.const -8 - i32.add - local.tee 1 - local.get 0 - i32.const -4 - i32.add - i32.load - local.tee 2 - i32.const -8 - i32.and - local.tee 0 - i32.add - local.set 3 - block ;; label = @2 - local.get 2 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 2 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 1 - local.get 1 - i32.load - local.tee 2 - i32.sub - local.tee 1 - i32.const 0 - i32.load offset=1048596 - local.tee 4 - i32.lt_u - br_if 1 (;@1;) - local.get 2 - local.get 0 - i32.add - local.set 0 - block ;; label = @3 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@3;) - block ;; label = @4 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 1 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 2 - local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 2 - i32.store offset=12 - br 2 (;@2;) - end - local.get 1 - i32.load offset=24 - local.set 7 - block ;; label = @4 - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 6 - local.get 1 - i32.eq - br_if 0 (;@5;) - local.get 1 - i32.load offset=8 - local.tee 2 - local.get 4 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 1 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 1 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - i32.const 0 - local.set 6 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@5;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 1 - local.get 1 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 3 (;@2;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 1 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 2 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @4 - local.get 1 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 1 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - br 1 (;@2;) - end - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 0 (;@2;) - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 1 - local.get 3 - i32.ge_u - br_if 0 (;@1;) - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048592 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - return - end - local.get 2 - i32.const -8 - i32.and - local.get 0 - i32.add - local.set 0 - block ;; label = @4 - block ;; label = @5 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 3 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 2 - local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 2 - i32.store offset=12 - br 1 (;@4;) - end - local.get 3 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 6 - local.get 3 - i32.eq - br_if 0 (;@6;) - local.get 3 - i32.load offset=8 - local.tee 2 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 3 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 3 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 3 - local.get 3 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 3 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 3 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 3 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 0 - i32.store offset=1048588 - return - end - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 2 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 2 - local.set 0 - br 1 (;@3;) - end - local.get 2 - i32.load offset=8 - local.set 0 - end - local.get 0 - local.get 1 - i32.store offset=12 - local.get 2 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 2 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - return - end - i32.const 31 - local.set 2 - block ;; label = @2 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 2 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 2 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 2 - end - local.get 1 - local.get 2 - i32.store offset=28 - local.get 1 - i64.const 0 - i64.store offset=16 align=4 - local.get 2 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - block ;; label = @3 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 2 - i32.shl - local.tee 3 - i32.and - br_if 0 (;@3;) - local.get 4 - local.get 1 - i32.store - i32.const 0 - local.get 6 - local.get 3 - i32.or - i32.store offset=1048584 - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 1 - i32.store offset=12 - br 1 (;@2;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 2 - i32.const 1 - i32.shr_u - i32.sub - local.get 2 - i32.const 31 - i32.eq - select - i32.shl - local.set 2 - local.get 4 - i32.load - local.set 6 - block ;; label = @3 - loop ;; label = @4 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 1 (;@3;) - local.get 2 - i32.const 29 - i32.shr_u - local.set 6 - local.get 2 - i32.const 1 - i32.shl - local.set 2 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 6 - br_if 0 (;@4;) - end - local.get 3 - local.get 1 - i32.store - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=12 - local.get 1 - local.get 1 - i32.store offset=8 - br 1 (;@2;) - end - local.get 4 - i32.load offset=8 - local.tee 0 - local.get 1 - i32.store offset=12 - local.get 4 - local.get 1 - i32.store offset=8 - local.get 1 - i32.const 0 - i32.store offset=24 - local.get 1 - local.get 4 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - end - i32.const 0 - i32.const 0 - i32.load offset=1048612 - i32.const -1 - i32.add - local.tee 1 - i32.const -1 - local.get 1 - select - i32.store offset=1048612 - end - ) - (func $realloc (;21;) (type 6) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - block ;; label = @1 - local.get 1 - i32.const -64 - i32.lt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.set 2 - local.get 0 - i32.const -4 - i32.add - local.tee 3 - i32.load - local.tee 4 - i32.const -8 - i32.and - local.set 5 - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 4 - i32.const 3 - i32.and - br_if 0 (;@3;) - local.get 2 - i32.const 256 - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.const 4 - i32.or - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.sub - i32.const 0 - i32.load offset=1049060 - i32.const 1 - i32.shl - i32.le_u - br_if 2 (;@1;) - br 1 (;@2;) - end - local.get 0 - i32.const -8 - i32.add - local.tee 6 - local.get 5 - i32.add - local.set 7 - block ;; label = @3 - local.get 5 - local.get 2 - i32.lt_u - br_if 0 (;@3;) - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 2 (;@1;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 7 - local.get 7 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 1 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048592 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.le_u - br_if 1 (;@2;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.add - local.tee 1 - i32.store offset=1048604 - i32.const 0 - local.get 5 - local.get 2 - i32.sub - local.tee 2 - i32.store offset=1048592 - local.get 1 - local.get 2 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048588 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.lt_u - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 0 (;@5;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 6 - local.get 5 - i32.add - local.tee 5 - local.get 1 - i32.store - local.get 5 - local.get 5 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - br 1 (;@4;) - end - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 5 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 5 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 1 - i32.const 0 - local.set 2 - end - i32.const 0 - local.get 2 - i32.store offset=1048600 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 0 - return - end - local.get 7 - i32.load offset=4 - local.tee 8 - i32.const 2 - i32.and - br_if 0 (;@2;) - local.get 8 - i32.const -8 - i32.and - local.get 5 - i32.add - local.tee 9 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - local.get 9 - local.get 2 - i32.sub - local.set 10 - block ;; label = @3 - block ;; label = @4 - local.get 8 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 7 - i32.load offset=8 - local.tee 1 - local.get 8 - i32.const 3 - i32.shr_u - local.tee 11 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 8 - i32.eq - drop - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 5 - local.get 1 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 11 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@3;) - end - local.get 5 - local.get 8 - i32.eq - drop - local.get 5 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 5 - i32.store offset=12 - br 1 (;@3;) - end - local.get 7 - i32.load offset=24 - local.set 12 - block ;; label = @4 - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 8 - local.get 7 - i32.eq - br_if 0 (;@5;) - local.get 7 - i32.load offset=8 - local.tee 1 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 8 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 8 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 7 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 7 - i32.const 16 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - i32.const 0 - local.set 8 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 1 - local.set 11 - local.get 5 - local.tee 8 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 8 - i32.const 16 - i32.add - local.set 1 - local.get 8 - i32.load offset=16 - local.tee 5 - br_if 0 (;@5;) - end - local.get 11 - i32.const 0 - i32.store - end - local.get 12 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 7 - local.get 7 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 1 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 1 - local.get 8 - i32.store - local.get 8 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 12 - i32.const 16 - i32.const 20 - local.get 12 - i32.load offset=16 - local.get 7 - i32.eq - select - i32.add - local.get 8 - i32.store - local.get 8 - i32.eqz - br_if 1 (;@3;) - end - local.get 8 - local.get 12 - i32.store offset=24 - block ;; label = @4 - local.get 7 - i32.load offset=16 - local.tee 1 - i32.eqz - br_if 0 (;@4;) - local.get 8 - local.get 1 - i32.store offset=16 - local.get 1 - local.get 8 - i32.store offset=24 - end - local.get 7 - i32.load offset=20 - local.tee 1 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const 20 - i32.add - local.get 1 - i32.store - local.get 1 - local.get 8 - i32.store offset=24 - end - block ;; label = @3 - local.get 10 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 9 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 9 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 1 - local.get 10 - i32.const 3 - i32.or - i32.store offset=4 - local.get 6 - local.get 9 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 10 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @2 - local.get 1 - call $dlmalloc - local.tee 2 - br_if 0 (;@2;) - i32.const 0 - return - end - local.get 2 - local.get 0 - i32.const -4 - i32.const -8 - local.get 3 - i32.load - local.tee 5 - i32.const 3 - i32.and - select - local.get 5 - i32.const -8 - i32.and - i32.add - local.tee 5 - local.get 1 - local.get 5 - local.get 1 - i32.lt_u - select - call $memcpy - local.set 1 - local.get 0 - call $dlfree - local.get 1 - local.set 0 - end - local.get 0 - ) - (func $dispose_chunk (;22;) (type 5) (param i32 i32) - (local i32 i32 i32 i32 i32 i32) - local.get 0 - local.get 1 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 3 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 0 - i32.load - local.tee 3 - local.get 1 - i32.add - local.set 1 - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 3 - i32.sub - local.tee 0 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@4;) - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 0 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - local.get 0 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 2 (;@3;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 0 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 0 - i32.load offset=12 - local.tee 6 - local.get 0 - i32.eq - br_if 0 (;@6;) - local.get 0 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 0 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 3 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 3 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 2 (;@2;) - block ;; label = @5 - block ;; label = @6 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 4 (;@2;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 3 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 0 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 2 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - br 2 (;@2;) - end - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 1 (;@2;) - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 2 - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - end - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048604 - i32.const 0 + local.set 7 + br 1 (;@4;) + end i32.const 0 - i32.load offset=1048592 local.get 1 - i32.add - local.tee 1 - i32.store offset=1048592 - local.get 0 local.get 1 + i32.load8_u i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return + i32.and + select + local.set 7 end block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048600 - i32.ne + local.get 3 + i32.load + local.tee 0 + i32.const -4 + i32.and + local.tee 9 + i32.eqz br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048588 local.get 0 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 9 + local.get 9 + i32.load offset=4 + i32.const 3 + i32.and local.get 1 - i32.const 1 i32.or i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - return - end - local.get 3 - i32.const -8 - i32.and - local.get 1 - i32.add - local.set 1 - block ;; label = @4 - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 2 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - br 1 (;@4;) - end - local.get 2 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 6 - local.get 2 - i32.eq - br_if 0 (;@6;) - local.get 2 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 2 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 2 - i32.const 16 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 4 - local.set 5 - local.get 3 - local.tee 6 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 4 - local.get 6 - i32.load offset=16 - local.tee 3 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 2 - local.get 2 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 2 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 2 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 2 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 1 - i32.store offset=1048588 - return - end - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 1 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @3 + i32.load offset=4 + local.tee 8 + i32.const -4 + i32.and + local.set 1 + local.get 3 + i32.load + local.set 0 + end block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 local.get 1 - i32.const 3 - i32.shr_u - i32.shl - local.tee 1 - i32.and + i32.eqz br_if 0 (;@4;) - i32.const 0 - local.get 4 local.get 1 + local.get 1 + i32.load + i32.const 3 + i32.and + local.get 0 + i32.const -4 + i32.and i32.or - i32.store offset=1048580 + i32.store local.get 3 - local.set 1 - br 1 (;@3;) + i32.load offset=4 + local.set 8 + local.get 3 + i32.load + local.set 0 end local.get 3 - i32.load offset=8 - local.set 1 - end - local.get 1 - local.get 0 - i32.store offset=12 - local.get 3 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 3 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - return - end - i32.const 31 - local.set 3 - block ;; label = @2 - local.get 1 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const 38 - local.get 1 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 0 - local.get 3 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 3 - i32.shl - local.tee 2 - i32.and - br_if 0 (;@2;) - local.get 4 - local.get 0 - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.or - i32.store offset=1048584 - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - return - end - local.get 1 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 4 - i32.load - local.set 6 - block ;; label = @2 - loop ;; label = @3 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 1 - i32.eq - br_if 1 (;@2;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 6 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 6 - br_if 0 (;@3;) - end - local.get 2 - local.get 0 - i32.store - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - return - end - local.get 4 - i32.load offset=8 - local.tee 1 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - end - ) - (func $internal_memalign (;23;) (type 6) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const 16 - local.get 0 - i32.const 16 - i32.gt_u - select - local.tee 2 - local.get 2 - i32.const -1 - i32.add - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - i32.const 32 - local.set 3 - loop ;; label = @2 - local.get 3 - local.tee 0 - i32.const 1 - i32.shl - local.set 3 - local.get 0 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - end - end - block ;; label = @1 - i32.const -64 - local.get 0 - i32.sub - local.get 1 - i32.gt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - block ;; label = @1 - local.get 0 - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.tee 1 - i32.add - i32.const 12 - i32.add - call $dlmalloc - local.tee 3 - br_if 0 (;@1;) - i32.const 0 - return - end - local.get 3 - i32.const -8 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const -1 - i32.add - local.get 3 - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - local.get 3 - i32.const -4 - i32.add - local.tee 4 - i32.load - local.tee 5 - i32.const -8 - i32.and - local.get 3 - local.get 0 - i32.add - i32.const -1 - i32.add - i32.const 0 - local.get 0 - i32.sub - i32.and - i32.const -8 - i32.add - local.tee 3 - i32.const 0 - local.get 0 - local.get 3 - local.get 2 - i32.sub - i32.const 15 - i32.gt_u - select - i32.add - local.tee 0 - local.get 2 - i32.sub - local.tee 3 - i32.sub - local.set 6 - block ;; label = @2 - local.get 5 - i32.const 3 - i32.and - br_if 0 (;@2;) - local.get 0 - local.get 6 - i32.store offset=4 - local.get 0 - local.get 2 - i32.load - local.get 3 - i32.add - i32.store - br 1 (;@1;) + local.get 8 + i32.const 3 + i32.and + i32.store offset=4 + local.get 3 + local.get 0 + i32.const 3 + i32.and + i32.store + block ;; label = @4 + local.get 0 + i32.const 2 + i32.and + i32.eqz + br_if 0 (;@4;) + local.get 7 + local.get 7 + i32.load + i32.const 2 + i32.or + i32.store + end + local.get 2 + local.get 7 + i32.store + local.get 7 + local.set 3 + local.get 7 + i32.load offset=8 + local.tee 1 + i32.const 1 + i32.and + br_if 0 (;@3;) + end end - local.get 0 - local.get 6 - local.get 0 - i32.load offset=4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 6 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - local.get 4 - i32.load - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 2 - local.get 3 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 3 - call $dispose_chunk - end - block ;; label = @1 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@1;) - local.get 3 - i32.const -8 - i32.and - local.tee 2 - local.get 1 - i32.const 16 - i32.add - i32.le_u - br_if 0 (;@1;) - local.get 0 - local.get 1 - local.get 3 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.tee 3 - local.get 2 - local.get 1 - i32.sub - local.tee 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 2 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 1 - call $dispose_chunk - end - local.get 0 - i32.const 8 - i32.add - ) - (func $aligned_alloc (;24;) (type 6) (param i32 i32) (result i32) - block ;; label = @1 - local.get 0 - i32.const 16 - i32.gt_u - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - local.get 0 - local.get 1 - call $internal_memalign - ) - (func $abort (;25;) (type 3) - unreachable - unreachable - ) - (func $sbrk (;26;) (type 9) (param i32) (result i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - memory.size - i32.const 16 - i32.shl - return - end - block ;; label = @1 - local.get 0 - i32.const 65535 - i32.and - br_if 0 (;@1;) - local.get 0 - i32.const -1 - i32.le_s - br_if 0 (;@1;) block ;; label = @2 - local.get 0 - i32.const 16 - i32.shr_u - memory.grow + local.get 7 + i32.load + i32.const -4 + i32.and local.tee 0 - i32.const -1 - i32.ne + local.get 7 + i32.const 8 + i32.add + local.tee 3 + i32.sub + local.get 6 + i32.lt_u br_if 0 (;@2;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const -1 - return - end - local.get 0 - i32.const 16 - i32.shl - return - end - call $abort - unreachable - ) - (func $memcpy (;27;) (type 10) (param i32 i32 i32) (result i32) - (local i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 block ;; label = @3 - local.get 2 - i32.const 32 - i32.gt_u - br_if 0 (;@3;) - local.get 1 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@2;) - local.get 2 - i32.eqz - br_if 1 (;@2;) + block ;; label = @4 + local.get 3 + i32.const 72 + i32.add + local.get 0 + local.get 6 + i32.sub + local.get 5 + i32.and + local.tee 0 + i32.le_u + br_if 0 (;@4;) + local.get 4 + local.get 3 + i32.and + br_if 2 (;@2;) + local.get 2 + local.get 7 + i32.load offset=8 + i32.const -4 + i32.and + i32.store + local.get 7 + i32.load + local.set 1 + local.get 7 + local.set 3 + br 1 (;@3;) + end + i32.const 0 + local.set 1 local.get 0 - local.get 1 - i32.load8_u - i32.store8 - local.get 2 - i32.const -1 - i32.add - local.set 3 + i32.const 0 + i32.store local.get 0 - i32.const 1 - i32.add - local.set 4 - local.get 1 - i32.const 1 + i32.const -8 i32.add - local.tee 5 - i32.const 3 + local.tee 3 + i64.const 0 + i64.store align=4 + local.get 3 + local.get 7 + i32.load + i32.const -4 i32.and - i32.eqz - br_if 2 (;@1;) + i32.store + block ;; label = @4 + local.get 7 + i32.load + local.tee 8 + i32.const -4 + i32.and + local.tee 0 + i32.eqz + br_if 0 (;@4;) + local.get 8 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 0 + local.get 0 + i32.load offset=4 + i32.const 3 + i32.and + local.get 3 + i32.or + i32.store offset=4 + local.get 3 + i32.load offset=4 + i32.const 3 + i32.and + local.set 1 + end local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 local.get 1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get 2 + local.get 7 + i32.or + i32.store offset=4 + local.get 7 + local.get 7 + i32.load offset=8 i32.const -2 - i32.add - local.set 3 - local.get 0 - i32.const 2 - i32.add - local.set 4 - local.get 1 - i32.const 2 - i32.add - local.tee 5 + i32.and + i32.store offset=8 + local.get 7 + local.get 7 + i32.load + local.tee 1 i32.const 3 i32.and - i32.eqz - br_if 2 (;@1;) local.get 3 - i32.eqz - br_if 2 (;@1;) + i32.or + local.tee 0 + i32.store + block ;; label = @4 + local.get 1 + i32.const 2 + i32.and + br_if 0 (;@4;) + local.get 3 + i32.load + local.set 1 + br 1 (;@3;) + end + local.get 7 local.get 0 - local.get 1 - i32.load8_u offset=2 - i32.store8 offset=2 - local.get 2 i32.const -3 - i32.add - local.set 3 - local.get 0 - i32.const 3 - i32.add - local.set 4 - local.get 1 - i32.const 3 - i32.add - local.tee 5 - i32.const 3 i32.and - i32.eqz - br_if 2 (;@1;) + i32.store local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 - local.get 1 - i32.load8_u offset=3 - i32.store8 offset=3 - local.get 2 - i32.const -4 - i32.add - local.set 3 - local.get 0 - i32.const 4 - i32.add - local.set 4 - local.get 1 - i32.const 4 - i32.add - local.set 5 - br 2 (;@1;) + i32.load + i32.const 2 + i32.or + local.set 1 end - local.get 0 + local.get 3 local.get 1 - local.get 2 - memory.copy - local.get 0 + i32.const 1 + i32.or + i32.store + local.get 3 + i32.const 8 + i32.add return end local.get 2 + local.get 1 + i32.store + local.get 1 local.set 3 - local.get 0 - local.set 4 local.get 1 - local.set 5 + br_if 0 (;@1;) end + i32.const 0 + ) + (func $::alloc (;12;) (type 9) (param i32 i32 i32) (result i32) + (local i32 i32 i32) + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 3 + global.set $__stack_pointer block ;; label = @1 block ;; label = @2 - local.get 4 + local.get 2 + br_if 0 (;@2;) + local.get 1 + local.set 2 + br 1 (;@1;) + end + local.get 3 + local.get 0 + i32.load + i32.store offset=12 + block ;; label = @2 + local.get 2 i32.const 3 - i32.and + i32.add + local.tee 4 + i32.const 2 + i32.shr_u + local.tee 5 + local.get 1 + local.get 3 + i32.const 12 + i32.add + call $wee_alloc::alloc_first_fit local.tee 2 br_if 0 (;@2;) block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@4;) - local.get 3 - local.set 2 - br 1 (;@3;) - end - block ;; label = @4 - local.get 3 - i32.const -16 - i32.add - local.tee 2 - i32.const 16 - i32.and - br_if 0 (;@4;) - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - i32.const 16 - i32.add - local.set 4 - local.get 5 - i32.const 16 - i32.add - local.set 5 - local.get 2 - local.set 3 - end - local.get 2 - i32.const 16 - i32.lt_u - br_if 0 (;@3;) - local.get 3 - local.set 2 - loop ;; label = @4 - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - local.get 5 - i64.load offset=16 align=4 - i64.store offset=16 align=4 - local.get 4 - local.get 5 - i64.load offset=24 align=4 - i64.store offset=24 align=4 - local.get 4 - i32.const 32 - i32.add - local.set 4 - local.get 5 - i32.const 32 - i32.add - local.set 5 - local.get 2 - i32.const -32 - i32.add - local.tee 2 - i32.const 15 - i32.gt_u - br_if 0 (;@4;) - end - end - block ;; label = @3 - local.get 2 - i32.const 8 - i32.lt_u - br_if 0 (;@3;) - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 5 - i32.const 8 - i32.add - local.set 5 local.get 4 - i32.const 8 - i32.add - local.set 4 - end - block ;; label = @3 - local.get 2 - i32.const 4 + i32.const -4 i32.and - i32.eqz - br_if 0 (;@3;) - local.get 4 - local.get 5 - i32.load - i32.store - local.get 5 - i32.const 4 - i32.add - local.set 5 - local.get 4 - i32.const 4 + local.tee 2 + local.get 1 + i32.const 3 + i32.shl + i32.const 512 i32.add - local.set 4 - end - block ;; label = @3 + local.tee 4 local.get 2 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@3;) - local.get 4 - local.get 5 - i32.load16_u align=1 - i32.store16 align=1 local.get 4 - i32.const 2 - i32.add - local.set 4 - local.get 5 - i32.const 2 + i32.gt_u + select + i32.const 65543 i32.add - local.set 5 + local.tee 4 + i32.const 16 + i32.shr_u + memory.grow + local.tee 2 + i32.const -1 + i32.ne + br_if 0 (;@3;) + i32.const 0 + local.set 2 + br 1 (;@2;) end local.get 2 - i32.const 1 - i32.and - i32.eqz - br_if 1 (;@1;) + i32.const 16 + i32.shl + local.tee 2 + i32.const 0 + i32.store offset=4 + local.get 2 + local.get 3 + i32.load offset=12 + i32.store offset=8 + local.get 2 + local.get 2 local.get 4 + i32.const -65536 + i32.and + i32.add + i32.const 2 + i32.or + i32.store + local.get 3 + local.get 2 + i32.store offset=12 local.get 5 - i32.load8_u - i32.store8 - local.get 0 - return + local.get 1 + local.get 3 + i32.const 12 + i32.add + call $wee_alloc::alloc_first_fit + local.set 2 end + local.get 0 + local.get 3 + i32.load offset=12 + i32.store + end + local.get 3 + i32.const 16 + i32.add + global.set $__stack_pointer + local.get 2 + ) + (func $::dealloc (;13;) (type 4) (param i32 i32 i32 i32) + (local i32 i32 i32 i32 i32 i32 i32) + block ;; label = @1 + local.get 1 + i32.eqz + br_if 0 (;@1;) + local.get 3 + i32.eqz + br_if 0 (;@1;) + local.get 0 + i32.load + local.set 4 + local.get 1 + i32.const 0 + i32.store + local.get 1 + i32.const -8 + i32.add + local.tee 3 + local.get 3 + i32.load + local.tee 5 + i32.const -2 + i32.and + local.tee 6 + i32.store block ;; label = @2 block ;; label = @3 block ;; label = @4 block ;; label = @5 + local.get 3 + i32.const 4 + i32.add + local.tee 7 + i32.load + i32.const -4 + i32.and + local.tee 8 + i32.eqz + br_if 0 (;@5;) + local.get 8 + i32.load + local.tee 9 + i32.const 1 + i32.and + br_if 0 (;@5;) block ;; label = @6 - local.get 3 - i32.const 32 - i32.lt_u - br_if 0 (;@6;) block ;; label = @7 block ;; label = @8 - local.get 2 - i32.const -1 - i32.add - br_table 3 (;@5;) 0 (;@8;) 1 (;@7;) 7 (;@1;) + local.get 5 + i32.const -4 + i32.and + local.tee 10 + br_if 0 (;@8;) + local.get 8 + local.set 1 + br 1 (;@7;) end - local.get 4 - local.get 5 - i32.load - i32.store16 align=1 - local.get 4 + local.get 8 + local.set 1 local.get 5 i32.const 2 - i32.add - i32.load align=2 - i32.store offset=2 - local.get 4 - local.get 5 - i32.const 6 - i32.add - i64.load align=2 - i64.store offset=6 align=4 - local.get 4 - i32.const 18 - i32.add - local.set 2 - local.get 5 - i32.const 18 - i32.add - local.set 1 - i32.const 14 + i32.and + br_if 0 (;@7;) + local.get 10 + local.get 10 + i32.load offset=4 + i32.const 3 + i32.and + local.get 8 + i32.or + i32.store offset=4 + local.get 3 + i32.load local.set 6 - local.get 5 - i32.const 14 - i32.add - i32.load align=2 - local.set 5 - i32.const 14 - local.set 3 - br 3 (;@4;) + local.get 7 + i32.load + local.tee 5 + i32.const -4 + i32.and + local.tee 1 + i32.eqz + br_if 1 (;@6;) + local.get 1 + i32.load + local.set 9 end - local.get 4 - local.get 5 + local.get 1 + local.get 6 + i32.const -4 + i32.and + local.get 9 + i32.const 3 + i32.and + i32.or + i32.store + local.get 7 i32.load - i32.store8 - local.get 4 - local.get 5 - i32.const 1 - i32.add - i32.load align=1 - i32.store offset=1 - local.get 4 - local.get 5 - i32.const 5 - i32.add - i64.load align=1 - i64.store offset=5 align=4 - local.get 4 - i32.const 17 - i32.add - local.set 2 - local.get 5 - i32.const 17 - i32.add - local.set 1 - i32.const 13 - local.set 6 - local.get 5 - i32.const 13 - i32.add - i32.load align=1 local.set 5 - i32.const 15 - local.set 3 - br 2 (;@4;) - end - block ;; label = @6 - block ;; label = @7 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@7;) - local.get 4 - local.set 2 - local.get 5 - local.set 1 - br 1 (;@6;) - end - local.get 4 - local.get 5 - i32.load8_u - i32.store8 - local.get 4 - local.get 5 - i32.load offset=1 align=1 - i32.store offset=1 align=1 - local.get 4 - local.get 5 - i64.load offset=5 align=1 - i64.store offset=5 align=1 - local.get 4 - local.get 5 - i32.load16_u offset=13 align=1 - i32.store16 offset=13 align=1 - local.get 4 - local.get 5 - i32.load8_u offset=15 - i32.store8 offset=15 - local.get 4 - i32.const 16 - i32.add - local.set 2 - local.get 5 - i32.const 16 - i32.add - local.set 1 + local.get 3 + i32.load + local.set 6 end + local.get 7 + local.get 5 + i32.const 3 + i32.and + i32.store local.get 3 - i32.const 8 + local.get 6 + i32.const 3 + i32.and + i32.store + local.get 6 + i32.const 2 i32.and - br_if 2 (;@3;) - br 3 (;@2;) + i32.eqz + br_if 1 (;@4;) + local.get 8 + local.get 8 + i32.load + i32.const 2 + i32.or + i32.store + br 1 (;@4;) end - local.get 4 local.get 5 - i32.load - local.tee 2 - i32.store8 - local.get 4 - local.get 2 - i32.const 16 - i32.shr_u - i32.store8 offset=2 - local.get 4 - local.get 2 - i32.const 8 - i32.shr_u - i32.store8 offset=1 - local.get 4 - local.get 5 - i32.const 3 - i32.add - i32.load align=1 - i32.store offset=3 - local.get 4 - local.get 5 - i32.const 7 - i32.add - i64.load align=1 - i64.store offset=7 align=4 - local.get 4 - i32.const 19 - i32.add - local.set 2 - local.get 5 - i32.const 19 - i32.add - local.set 1 - i32.const 15 - local.set 6 + i32.const -4 + i32.and + local.tee 8 + i32.eqz + br_if 1 (;@3;) local.get 5 - i32.const 15 - i32.add - i32.load align=1 - local.set 5 - i32.const 13 - local.set 3 + i32.const 2 + i32.and + br_if 1 (;@3;) + local.get 8 + i32.load8_u + i32.const 1 + i32.and + br_if 1 (;@3;) + local.get 1 + local.get 8 + i32.load offset=8 + i32.const -4 + i32.and + i32.store + local.get 8 + local.get 3 + i32.const 1 + i32.or + i32.store offset=8 end local.get 4 - local.get 6 - i32.add - local.get 5 - i32.store + local.set 3 + br 1 (;@2;) end - local.get 2 - local.get 1 - i64.load align=1 - i64.store align=1 - local.get 2 - i32.const 8 - i32.add - local.set 2 local.get 1 - i32.const 8 - i32.add - local.set 1 + local.get 4 + i32.store end + local.get 0 + local.get 3 + i32.store + end + ) + (func $wit_bindgen::rt::run_ctors_once (;14;) (type 3) + block ;; label = @1 + i32.const 0 + i32.load8_u offset=1048581 + br_if 0 (;@1;) + call $__wasm_call_ctors + i32.const 0 + i32.const 1 + i32.store8 offset=1048581 + end + ) + (func $cabi_realloc (;15;) (type 8) (param i32 i32 i32 i32) (result i32) + block ;; label = @1 block ;; label = @2 - local.get 3 - i32.const 4 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 + block ;; label = @3 + local.get 1 + br_if 0 (;@3;) + local.get 3 + i32.eqz + br_if 2 (;@1;) + i32.const 0 + i32.load8_u offset=1048580 + drop + local.get 3 + local.get 2 + call $__rust_alloc + local.set 2 + br 1 (;@2;) + end + local.get 0 local.get 1 - i32.load align=1 - i32.store align=1 local.get 2 - i32.const 4 - i32.add - local.set 2 - local.get 1 - i32.const 4 - i32.add - local.set 1 - end - block ;; label = @2 local.get 3 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 - local.get 1 - i32.load16_u align=1 - i32.store16 align=1 - local.get 2 - i32.const 2 - i32.add + call $__rust_realloc local.set 2 - local.get 1 - i32.const 2 - i32.add - local.set 1 end - local.get 3 - i32.const 1 - i32.and + local.get 2 + br_if 0 (;@1;) + unreachable + unreachable + end + local.get 2 + ) + (func $wit_bindgen::rt::dealloc (;16;) (type 7) (param i32 i32 i32) + block ;; label = @1 + local.get 1 i32.eqz br_if 0 (;@1;) - local.get 2 + local.get 0 local.get 1 - i32.load8_u - i32.store8 + local.get 2 + call $__rust_dealloc end - local.get 0 ) - (func $alloc::alloc::handle_alloc_error (;28;) (type 5) (param i32 i32) + (func $alloc::alloc::handle_alloc_error (;17;) (type 5) (param i32 i32) unreachable unreachable ) - (func $alloc::raw_vec::capacity_overflow (;29;) (type 3) + (func $alloc::raw_vec::capacity_overflow (;18;) (type 3) unreachable unreachable ) diff --git a/tests/integration/expected/sdk_basic_wallet/miden_sdk.wat b/tests/integration/expected/sdk_basic_wallet/miden_sdk.wat index 77948aa90..a9169d442 100644 --- a/tests/integration/expected/sdk_basic_wallet/miden_sdk.wat +++ b/tests/integration/expected/sdk_basic_wallet/miden_sdk.wat @@ -1,6100 +1,12 @@ (component (core module (;0;) - (type (;0;) (func (param i32 i32) (result i32))) - (type (;1;) (func (param i32 i32 i32 i32) (result i32))) - (type (;2;) (func (param i32) (result i32))) - (type (;3;) (func (param i32))) - (type (;4;) (func (param i32 i32))) - (type (;5;) (func)) - (type (;6;) (func (param i32 i32 i32) (result i32))) - (func $__rust_alloc (;0;) (type 0) (param i32 i32) (result i32) - (local i32) - local.get 0 - local.get 1 - call $__rdl_alloc - local.set 2 - local.get 2 - return - ) - (func $__rust_realloc (;1;) (type 1) (param i32 i32 i32 i32) (result i32) - (local i32) - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rdl_realloc - local.set 4 - local.get 4 - return - ) - (func $__rdl_alloc (;2;) (type 0) (param i32 i32) (result i32) - (local i32) - block ;; label = @1 - block ;; label = @2 - local.get 1 - i32.const 8 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - local.get 0 - i32.le_u - br_if 1 (;@1;) - end - local.get 1 - local.get 1 - local.get 0 - local.get 1 - i32.rem_u - local.tee 2 - i32.sub - i32.const 0 - local.get 2 - select - local.get 0 - i32.add - call $aligned_alloc - return - end - local.get 0 - call $malloc - ) - (func $__rdl_realloc (;3;) (type 1) (param i32 i32 i32 i32) (result i32) - (local i32 i32) - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 8 - i32.gt_u - br_if 0 (;@3;) - local.get 2 - local.get 3 - i32.le_u - br_if 1 (;@2;) - end - i32.const 0 - local.set 4 - local.get 2 - local.get 2 - local.get 3 - local.get 2 - i32.rem_u - local.tee 5 - i32.sub - i32.const 0 - local.get 5 - select - local.get 3 - i32.add - call $aligned_alloc - local.tee 2 - i32.eqz - br_if 1 (;@1;) - local.get 2 - local.get 0 - local.get 1 - local.get 3 - local.get 1 - local.get 3 - i32.lt_u - select - call $memcpy - local.set 2 - local.get 0 - call $free - local.get 2 - return - end - local.get 0 - local.get 3 - call $realloc - local.set 4 - end - local.get 4 - ) - (func $malloc (;4;) (type 2) (param i32) (result i32) - local.get 0 - call $dlmalloc - ) - (func $dlmalloc (;5;) (type 2) (param i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - global.get $__stack_pointer - i32.const 16 - i32.sub - local.tee 1 - global.set $__stack_pointer - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - block ;; label = @4 - block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048604 - local.tee 2 - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - local.tee 3 - br_if 0 (;@13;) - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 8 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - local.tee 3 - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - end - i32.const 1114112 - i32.const 1049088 - i32.lt_u - br_if 1 (;@11;) - i32.const 0 - local.set 2 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const 89 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - local.set 4 - i32.const 0 - i32.const 1049088 - i32.store offset=1049028 - i32.const 0 - i32.const 1049088 - i32.store offset=1048596 - i32.const 0 - local.get 3 - i32.store offset=1048616 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.store offset=1049032 - loop ;; label = @13 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@13;) - end - i32.const 1049088 - i32.const -8 - i32.const 1049088 - i32.sub - i32.const 15 - i32.and - i32.const 0 - i32.const 1049088 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - i32.const 4 - i32.add - i32.const 1114112 - i32.const 1049088 - i32.sub - i32.const -56 - i32.add - local.tee 3 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 3 - i32.const 1049088 - i32.add - i32.const 4 - i32.add - i32.const 56 - i32.store - end - block ;; label = @12 - block ;; label = @13 - local.get 0 - i32.const 236 - i32.gt_u - br_if 0 (;@13;) - block ;; label = @14 - i32.const 0 - i32.load offset=1048580 - local.tee 6 - i32.const 16 - local.get 0 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 0 - i32.const 11 - i32.lt_u - select - local.tee 7 - i32.const 3 - i32.shr_u - local.tee 3 - i32.shr_u - local.tee 4 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - i32.const 1 - i32.and - local.get 3 - i32.or - i32.const 1 - i32.xor - local.tee 5 - i32.const 3 - i32.shl - local.tee 3 - i32.const 1048620 - i32.add - local.tee 4 - local.get 3 - i32.const 1048628 - i32.add - i32.load - local.tee 3 - i32.load offset=8 - local.tee 7 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 4 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 4 - i32.store offset=12 - end - local.get 3 - i32.const 8 - i32.add - local.set 4 - local.get 3 - local.get 5 - i32.const 3 - i32.shl - local.tee 5 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 5 - i32.add - local.tee 3 - local.get 3 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 13 (;@1;) - end - local.get 7 - i32.const 0 - i32.load offset=1048588 - local.tee 8 - i32.le_u - br_if 1 (;@12;) - block ;; label = @14 - local.get 4 - i32.eqz - br_if 0 (;@14;) - block ;; label = @15 - block ;; label = @16 - local.get 4 - local.get 3 - i32.shl - i32.const 2 - local.get 3 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - i32.and - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - local.tee 3 - i32.const 3 - i32.shl - local.tee 4 - i32.const 1048620 - i32.add - local.tee 5 - local.get 4 - i32.const 1048628 - i32.add - i32.load - local.tee 4 - i32.load offset=8 - local.tee 0 - i32.ne - br_if 0 (;@16;) - i32.const 0 - local.get 6 - i32.const -2 - local.get 3 - i32.rotl - i32.and - local.tee 6 - i32.store offset=1048580 - br 1 (;@15;) - end - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 5 - i32.store offset=12 - end - local.get 4 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - i32.const 3 - i32.shl - local.tee 3 - i32.add - local.get 3 - local.get 7 - i32.sub - local.tee 5 - i32.store - local.get 4 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @15 - local.get 8 - i32.eqz - br_if 0 (;@15;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @16 - block ;; label = @17 - local.get 6 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - i32.and - br_if 0 (;@17;) - i32.const 0 - local.get 6 - local.get 9 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@16;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 9 - i32.store offset=8 - end - local.get 4 - i32.const 8 - i32.add - local.set 4 - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - local.get 5 - i32.store offset=1048588 - br 13 (;@1;) - end - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 1 (;@12;) - local.get 10 - i32.const 0 - local.get 10 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 0 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.set 3 - local.get 0 - local.set 5 - block ;; label = @14 - loop ;; label = @15 - block ;; label = @16 - local.get 5 - i32.load offset=16 - local.tee 4 - br_if 0 (;@16;) - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 2 (;@14;) - end - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 5 - local.get 3 - local.get 5 - local.get 3 - i32.lt_u - local.tee 5 - select - local.set 3 - local.get 4 - local.get 0 - local.get 5 - select - local.set 0 - local.get 4 - local.set 5 - br 0 (;@15;) - end - end - local.get 0 - i32.load offset=24 - local.set 11 - block ;; label = @14 - local.get 0 - i32.load offset=12 - local.tee 9 - local.get 0 - i32.eq - br_if 0 (;@14;) - local.get 0 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 9 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 9 - i32.store offset=12 - br 12 (;@2;) - end - block ;; label = @14 - local.get 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@10;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @14 - local.get 5 - local.set 2 - local.get 4 - local.tee 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@14;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - local.get 9 - i32.load offset=16 - local.tee 4 - br_if 0 (;@14;) - end - local.get 2 - i32.const 0 - i32.store - br 11 (;@2;) - end - i32.const -1 - local.set 7 - local.get 0 - i32.const -65 - i32.gt_u - br_if 0 (;@12;) - local.get 0 - i32.const 19 - i32.add - local.tee 4 - i32.const -16 - i32.and - local.set 7 - i32.const 0 - i32.load offset=1048584 - local.tee 10 - i32.eqz - br_if 0 (;@12;) - i32.const 0 - local.set 8 - block ;; label = @13 - local.get 7 - i32.const 256 - i32.lt_u - br_if 0 (;@13;) - i32.const 31 - local.set 8 - local.get 7 - i32.const 16777215 - i32.gt_u - br_if 0 (;@13;) - local.get 7 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 8 - end - i32.const 0 - local.get 7 - i32.sub - local.set 3 - block ;; label = @13 - block ;; label = @14 - block ;; label = @15 - block ;; label = @16 - local.get 8 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.tee 5 - br_if 0 (;@16;) - i32.const 0 - local.set 4 - i32.const 0 - local.set 9 - br 1 (;@15;) - end - i32.const 0 - local.set 4 - local.get 7 - i32.const 0 - i32.const 25 - local.get 8 - i32.const 1 - i32.shr_u - i32.sub - local.get 8 - i32.const 31 - i32.eq - select - i32.shl - local.set 0 - i32.const 0 - local.set 9 - loop ;; label = @16 - block ;; label = @17 - local.get 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.ge_u - br_if 0 (;@17;) - local.get 6 - local.set 3 - local.get 5 - local.set 9 - local.get 6 - br_if 0 (;@17;) - i32.const 0 - local.set 3 - local.get 5 - local.set 9 - local.get 5 - local.set 4 - br 3 (;@14;) - end - local.get 4 - local.get 5 - i32.const 20 - i32.add - i32.load - local.tee 6 - local.get 6 - local.get 5 - local.get 0 - i32.const 29 - i32.shr_u - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - i32.load - local.tee 5 - i32.eq - select - local.get 4 - local.get 6 - select - local.set 4 - local.get 0 - i32.const 1 - i32.shl - local.set 0 - local.get 5 - br_if 0 (;@16;) - end - end - block ;; label = @15 - local.get 4 - local.get 9 - i32.or - br_if 0 (;@15;) - i32.const 0 - local.set 9 - i32.const 2 - local.get 8 - i32.shl - local.tee 4 - i32.const 0 - local.get 4 - i32.sub - i32.or - local.get 10 - i32.and - local.tee 4 - i32.eqz - br_if 3 (;@12;) - local.get 4 - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.ctz - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - i32.load - local.set 4 - end - local.get 4 - i32.eqz - br_if 1 (;@13;) - end - loop ;; label = @14 - local.get 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 7 - i32.sub - local.tee 6 - local.get 3 - i32.lt_u - local.set 0 - block ;; label = @15 - local.get 4 - i32.load offset=16 - local.tee 5 - br_if 0 (;@15;) - local.get 4 - i32.const 20 - i32.add - i32.load - local.set 5 - end - local.get 6 - local.get 3 - local.get 0 - select - local.set 3 - local.get 4 - local.get 9 - local.get 0 - select - local.set 9 - local.get 5 - local.set 4 - local.get 5 - br_if 0 (;@14;) - end - end - local.get 9 - i32.eqz - br_if 0 (;@12;) - local.get 3 - i32.const 0 - i32.load offset=1048588 - local.get 7 - i32.sub - i32.ge_u - br_if 0 (;@12;) - local.get 9 - i32.load offset=24 - local.set 2 - block ;; label = @13 - local.get 9 - i32.load offset=12 - local.tee 0 - local.get 9 - i32.eq - br_if 0 (;@13;) - local.get 9 - i32.load offset=8 - local.tee 4 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 0 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 0 - i32.store offset=12 - br 10 (;@3;) - end - block ;; label = @13 - local.get 9 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 9 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 4 (;@9;) - local.get 9 - i32.const 16 - i32.add - local.set 5 - end - loop ;; label = @13 - local.get 5 - local.set 6 - local.get 4 - local.tee 0 - i32.const 20 - i32.add - local.tee 5 - i32.load - local.tee 4 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 5 - local.get 0 - i32.load offset=16 - local.tee 4 - br_if 0 (;@13;) - end - local.get 6 - i32.const 0 - i32.store - br 9 (;@3;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048588 - local.tee 4 - local.get 7 - i32.lt_u - br_if 0 (;@12;) - i32.const 0 - i32.load offset=1048600 - local.set 3 - block ;; label = @13 - block ;; label = @14 - local.get 4 - local.get 7 - i32.sub - local.tee 5 - i32.const 16 - i32.lt_u - br_if 0 (;@14;) - local.get 3 - local.get 7 - i32.add - local.tee 0 - local.get 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.get 5 - i32.store - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - br 1 (;@13;) - end - local.get 3 - local.get 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 0 - i32.const 0 - local.set 5 - end - i32.const 0 - local.get 5 - i32.store offset=1048588 - i32.const 0 - local.get 0 - i32.store offset=1048600 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1048592 - local.tee 5 - local.get 7 - i32.le_u - br_if 0 (;@12;) - local.get 2 - local.get 7 - i32.add - local.tee 4 - local.get 5 - local.get 7 - i32.sub - local.tee 3 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048604 - i32.const 0 - local.get 3 - i32.store offset=1048592 - local.get 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 11 (;@1;) - end - block ;; label = @12 - block ;; label = @13 - i32.const 0 - i32.load offset=1049052 - i32.eqz - br_if 0 (;@13;) - i32.const 0 - i32.load offset=1049060 - local.set 3 - br 1 (;@12;) - end - i32.const 0 - i64.const -1 - i64.store offset=1049064 align=4 - i32.const 0 - i64.const 281474976776192 - i64.store offset=1049056 align=4 - i32.const 0 - local.get 1 - i32.const 12 - i32.add - i32.const -16 - i32.and - i32.const 1431655768 - i32.xor - i32.store offset=1049052 - i32.const 0 - i32.const 0 - i32.store offset=1049072 - i32.const 0 - i32.const 0 - i32.store offset=1049024 - i32.const 65536 - local.set 3 - end - i32.const 0 - local.set 4 - block ;; label = @12 - local.get 3 - local.get 7 - i32.const 71 - i32.add - local.tee 8 - i32.add - local.tee 0 - i32.const 0 - local.get 3 - i32.sub - local.tee 6 - i32.and - local.tee 9 - local.get 7 - i32.gt_u - br_if 0 (;@12;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - block ;; label = @12 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@12;) - block ;; label = @13 - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 9 - i32.add - local.tee 10 - local.get 3 - i32.le_u - br_if 0 (;@13;) - local.get 10 - local.get 4 - i32.le_u - br_if 1 (;@12;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 11 (;@1;) - end - i32.const 0 - i32.load8_u offset=1049024 - i32.const 4 - i32.and - br_if 5 (;@6;) - block ;; label = @12 - block ;; label = @13 - block ;; label = @14 - local.get 2 - i32.eqz - br_if 0 (;@14;) - i32.const 1049028 - local.set 4 - loop ;; label = @15 - block ;; label = @16 - local.get 4 - i32.load - local.tee 3 - local.get 2 - i32.gt_u - br_if 0 (;@16;) - local.get 3 - local.get 4 - i32.load offset=4 - i32.add - local.get 2 - i32.gt_u - br_if 3 (;@13;) - end - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@15;) - end - end - i32.const 0 - call $sbrk - local.tee 0 - i32.const -1 - i32.eq - br_if 6 (;@7;) - local.get 9 - local.set 6 - block ;; label = @14 - i32.const 0 - i32.load offset=1049056 - local.tee 4 - i32.const -1 - i32.add - local.tee 3 - local.get 0 - i32.and - i32.eqz - br_if 0 (;@14;) - local.get 9 - local.get 0 - i32.sub - local.get 3 - local.get 0 - i32.add - i32.const 0 - local.get 4 - i32.sub - i32.and - i32.add - local.set 6 - end - local.get 6 - local.get 7 - i32.le_u - br_if 6 (;@7;) - local.get 6 - i32.const 2147483646 - i32.gt_u - br_if 6 (;@7;) - block ;; label = @14 - i32.const 0 - i32.load offset=1049020 - local.tee 4 - i32.eqz - br_if 0 (;@14;) - i32.const 0 - i32.load offset=1049012 - local.tee 3 - local.get 6 - i32.add - local.tee 5 - local.get 3 - i32.le_u - br_if 7 (;@7;) - local.get 5 - local.get 4 - i32.gt_u - br_if 7 (;@7;) - end - local.get 6 - call $sbrk - local.tee 4 - local.get 0 - i32.ne - br_if 1 (;@12;) - br 8 (;@5;) - end - local.get 0 - local.get 5 - i32.sub - local.get 6 - i32.and - local.tee 6 - i32.const 2147483646 - i32.gt_u - br_if 5 (;@7;) - local.get 6 - call $sbrk - local.tee 0 - local.get 4 - i32.load - local.get 4 - i32.load offset=4 - i32.add - i32.eq - br_if 4 (;@8;) - local.get 0 - local.set 4 - end - block ;; label = @12 - local.get 4 - i32.const -1 - i32.eq - br_if 0 (;@12;) - local.get 7 - i32.const 72 - i32.add - local.get 6 - i32.le_u - br_if 0 (;@12;) - block ;; label = @13 - local.get 8 - local.get 6 - i32.sub - i32.const 0 - i32.load offset=1049060 - local.tee 3 - i32.add - i32.const 0 - local.get 3 - i32.sub - i32.and - local.tee 3 - i32.const 2147483646 - i32.le_u - br_if 0 (;@13;) - local.get 4 - local.set 0 - br 8 (;@5;) - end - block ;; label = @13 - local.get 3 - call $sbrk - i32.const -1 - i32.eq - br_if 0 (;@13;) - local.get 3 - local.get 6 - i32.add - local.set 6 - local.get 4 - local.set 0 - br 8 (;@5;) - end - i32.const 0 - local.get 6 - i32.sub - call $sbrk - drop - br 5 (;@7;) - end - local.get 4 - local.set 0 - local.get 4 - i32.const -1 - i32.ne - br_if 6 (;@5;) - br 4 (;@7;) - end - unreachable - unreachable - end - i32.const 0 - local.set 9 - br 7 (;@2;) - end - i32.const 0 - local.set 0 - br 5 (;@3;) - end - local.get 0 - i32.const -1 - i32.ne - br_if 2 (;@5;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049024 - i32.const 4 - i32.or - i32.store offset=1049024 - end - local.get 9 - i32.const 2147483646 - i32.gt_u - br_if 1 (;@4;) - local.get 9 - call $sbrk - local.set 0 - i32.const 0 - call $sbrk - local.set 4 - local.get 0 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const -1 - i32.eq - br_if 1 (;@4;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@4;) - local.get 4 - local.get 0 - i32.sub - local.tee 6 - local.get 7 - i32.const 56 - i32.add - i32.le_u - br_if 1 (;@4;) - end - i32.const 0 - i32.const 0 - i32.load offset=1049012 - local.get 6 - i32.add - local.tee 4 - i32.store offset=1049012 - block ;; label = @5 - local.get 4 - i32.const 0 - i32.load offset=1049016 - i32.le_u - br_if 0 (;@5;) - i32.const 0 - local.get 4 - i32.store offset=1049016 - end - block ;; label = @5 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - i32.const 0 - i32.load offset=1048604 - local.tee 3 - i32.eqz - br_if 0 (;@8;) - i32.const 1049028 - local.set 4 - loop ;; label = @9 - local.get 0 - local.get 4 - i32.load - local.tee 5 - local.get 4 - i32.load offset=4 - local.tee 9 - i32.add - i32.eq - br_if 2 (;@7;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@9;) - br 3 (;@6;) - end - end - block ;; label = @8 - block ;; label = @9 - i32.const 0 - i32.load offset=1048596 - local.tee 4 - i32.eqz - br_if 0 (;@9;) - local.get 0 - local.get 4 - i32.ge_u - br_if 1 (;@8;) - end - i32.const 0 - local.get 0 - i32.store offset=1048596 - end - i32.const 0 - local.set 4 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const -1 - i32.store offset=1048612 - i32.const 0 - i32.const 0 - i32.load offset=1049052 - i32.store offset=1048616 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - loop ;; label = @8 - local.get 4 - i32.const 1048640 - i32.add - local.get 4 - i32.const 1048628 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 4 - i32.const 1048620 - i32.add - local.tee 5 - i32.store - local.get 4 - i32.const 1048632 - i32.add - local.get 5 - i32.store - local.get 4 - i32.const 1048648 - i32.add - local.get 4 - i32.const 1048636 - i32.add - local.tee 5 - i32.store - local.get 5 - local.get 3 - i32.store - local.get 4 - i32.const 1048656 - i32.add - local.get 4 - i32.const 1048644 - i32.add - local.tee 3 - i32.store - local.get 3 - local.get 5 - i32.store - local.get 4 - i32.const 1048652 - i32.add - local.get 3 - i32.store - local.get 4 - i32.const 32 - i32.add - local.tee 4 - i32.const 256 - i32.ne - br_if 0 (;@8;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 3 - local.get 6 - i32.const -56 - i32.add - local.tee 5 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 3 - i32.store offset=1048604 - local.get 0 - local.get 5 - i32.add - i32.const 56 - i32.store offset=4 - br 2 (;@5;) - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - br_if 0 (;@6;) - local.get 3 - local.get 5 - i32.lt_u - br_if 0 (;@6;) - local.get 3 - local.get 0 - i32.ge_u - br_if 0 (;@6;) - local.get 3 - i32.const -8 - local.get 3 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 3 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 5 - i32.add - local.tee 0 - i32.const 0 - i32.load offset=1048592 - local.get 6 - i32.add - local.tee 2 - local.get 5 - i32.sub - local.tee 5 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 9 - local.get 6 - i32.add - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 5 - i32.store offset=1048592 - i32.const 0 - local.get 0 - i32.store offset=1048604 - local.get 3 - local.get 2 - i32.add - i32.const 56 - i32.store offset=4 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 0 - i32.load offset=1048596 - local.tee 9 - i32.ge_u - br_if 0 (;@6;) - i32.const 0 - local.get 0 - i32.store offset=1048596 - local.get 0 - local.set 9 - end - local.get 0 - local.get 6 - i32.add - local.set 5 - i32.const 1049028 - local.set 4 - block ;; label = @6 - block ;; label = @7 - block ;; label = @8 - block ;; label = @9 - block ;; label = @10 - block ;; label = @11 - block ;; label = @12 - loop ;; label = @13 - local.get 4 - i32.load - local.get 5 - i32.eq - br_if 1 (;@12;) - local.get 4 - i32.load offset=8 - local.tee 4 - br_if 0 (;@13;) - br 2 (;@11;) - end - end - local.get 4 - i32.load8_u offset=12 - i32.const 8 - i32.and - i32.eqz - br_if 1 (;@10;) - end - i32.const 1049028 - local.set 4 - loop ;; label = @11 - block ;; label = @12 - local.get 4 - i32.load - local.tee 5 - local.get 3 - i32.gt_u - br_if 0 (;@12;) - local.get 5 - local.get 4 - i32.load offset=4 - i32.add - local.tee 5 - local.get 3 - i32.gt_u - br_if 3 (;@9;) - end - local.get 4 - i32.load offset=8 - local.set 4 - br 0 (;@11;) - end - end - local.get 4 - local.get 0 - i32.store - local.get 4 - local.get 4 - i32.load offset=4 - local.get 6 - i32.add - i32.store offset=4 - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 2 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - i32.const -8 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - i32.add - local.tee 6 - local.get 2 - local.get 7 - i32.add - local.tee 7 - i32.sub - local.set 4 - block ;; label = @10 - local.get 6 - local.get 3 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048592 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@10;) - i32.const 0 - local.get 7 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 4 - i32.add - local.tee 4 - i32.store offset=1048588 - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - br 3 (;@7;) - end - block ;; label = @10 - local.get 6 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 1 - i32.ne - br_if 0 (;@10;) - local.get 3 - i32.const -8 - i32.and - local.set 8 - block ;; label = @11 - block ;; label = @12 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@12;) - local.get 6 - i32.load offset=8 - local.tee 5 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 9 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 0 - i32.eq - drop - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 3 - local.get 5 - i32.ne - br_if 0 (;@13;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 9 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@11;) - end - local.get 3 - local.get 0 - i32.eq - drop - local.get 3 - local.get 5 - i32.store offset=8 - local.get 5 - local.get 3 - i32.store offset=12 - br 1 (;@11;) - end - local.get 6 - i32.load offset=24 - local.set 10 - block ;; label = @12 - block ;; label = @13 - local.get 6 - i32.load offset=12 - local.tee 0 - local.get 6 - i32.eq - br_if 0 (;@13;) - local.get 6 - i32.load offset=8 - local.tee 3 - local.get 9 - i32.lt_u - drop - local.get 0 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 0 - i32.store offset=12 - br 1 (;@12;) - end - block ;; label = @13 - local.get 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 6 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - i32.const 0 - local.set 0 - br 1 (;@12;) - end - loop ;; label = @13 - local.get 3 - local.set 9 - local.get 5 - local.tee 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 5 - br_if 0 (;@13;) - local.get 0 - i32.const 16 - i32.add - local.set 3 - local.get 0 - i32.load offset=16 - local.tee 5 - br_if 0 (;@13;) - end - local.get 9 - i32.const 0 - i32.store - end - local.get 10 - i32.eqz - br_if 0 (;@11;) - block ;; label = @12 - block ;; label = @13 - local.get 6 - local.get 6 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@13;) - local.get 3 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@12;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@11;) - end - local.get 10 - i32.const 16 - i32.const 20 - local.get 10 - i32.load offset=16 - local.get 6 - i32.eq - select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@11;) - end - local.get 0 - local.get 10 - i32.store offset=24 - block ;; label = @12 - local.get 6 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@12;) - local.get 0 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 6 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@11;) - local.get 0 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 0 - i32.store offset=24 - end - local.get 8 - local.get 4 - i32.add - local.set 4 - local.get 6 - local.get 8 - i32.add - local.tee 6 - i32.load offset=4 - local.set 3 - end - local.get 6 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 7 - local.get 4 - i32.add - local.get 4 - i32.store - local.get 7 - local.get 4 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @10 - local.get 4 - i32.const 255 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @11 - block ;; label = @12 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 4 - i32.const 3 - i32.shr_u - i32.shl - local.tee 4 - i32.and - br_if 0 (;@12;) - i32.const 0 - local.get 5 - local.get 4 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 4 - br 1 (;@11;) - end - local.get 3 - i32.load offset=8 - local.set 4 - end - local.get 4 - local.get 7 - i32.store offset=12 - local.get 3 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 3 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - br 3 (;@7;) - end - i32.const 31 - local.set 3 - block ;; label = @10 - local.get 4 - i32.const 16777215 - i32.gt_u - br_if 0 (;@10;) - local.get 4 - i32.const 38 - local.get 4 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 7 - local.get 3 - i32.store offset=28 - local.get 7 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @10 - i32.const 0 - i32.load offset=1048584 - local.tee 0 - i32.const 1 - local.get 3 - i32.shl - local.tee 9 - i32.and - br_if 0 (;@10;) - local.get 5 - local.get 7 - i32.store - i32.const 0 - local.get 0 - local.get 9 - i32.or - i32.store offset=1048584 - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=8 - local.get 7 - local.get 7 - i32.store offset=12 - br 3 (;@7;) - end - local.get 4 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 5 - i32.load - local.set 0 - loop ;; label = @10 - local.get 0 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 4 - i32.eq - br_if 2 (;@8;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 0 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 5 - local.get 0 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 9 - i32.load - local.tee 0 - br_if 0 (;@10;) - end - local.get 9 - local.get 7 - i32.store - local.get 7 - local.get 5 - i32.store offset=24 - local.get 7 - local.get 7 - i32.store offset=12 - local.get 7 - local.get 7 - i32.store offset=8 - br 2 (;@7;) - end - local.get 0 - i32.const -8 - local.get 0 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 0 - i32.const 8 - i32.add - i32.const 15 - i32.and - select - local.tee 4 - i32.add - local.tee 2 - local.get 6 - i32.const -56 - i32.add - local.tee 9 - local.get 4 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 9 - i32.add - i32.const 56 - i32.store offset=4 - local.get 3 - local.get 5 - i32.const 55 - local.get 5 - i32.sub - i32.const 15 - i32.and - i32.const 0 - local.get 5 - i32.const -55 - i32.add - i32.const 15 - i32.and - select - i32.add - i32.const -63 - i32.add - local.tee 9 - local.get 9 - local.get 3 - i32.const 16 - i32.add - i32.lt_u - select - local.tee 9 - i32.const 35 - i32.store offset=4 - i32.const 0 - i32.const 0 - i32.load offset=1049068 - i32.store offset=1048608 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 2 - i32.store offset=1048604 - local.get 9 - i32.const 16 - i32.add - i32.const 0 - i64.load offset=1049036 align=4 - i64.store align=4 - local.get 9 - i32.const 0 - i64.load offset=1049028 align=4 - i64.store offset=8 align=4 - i32.const 0 - local.get 9 - i32.const 8 - i32.add - i32.store offset=1049036 - i32.const 0 - local.get 6 - i32.store offset=1049032 - i32.const 0 - local.get 0 - i32.store offset=1049028 - i32.const 0 - i32.const 0 - i32.store offset=1049040 - local.get 9 - i32.const 36 - i32.add - local.set 4 - loop ;; label = @9 - local.get 4 - i32.const 7 - i32.store - local.get 4 - i32.const 4 - i32.add - local.tee 4 - local.get 5 - i32.lt_u - br_if 0 (;@9;) - end - local.get 9 - local.get 3 - i32.eq - br_if 3 (;@5;) - local.get 9 - local.get 9 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - local.get 9 - local.get 9 - local.get 3 - i32.sub - local.tee 0 - i32.store - local.get 3 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - block ;; label = @9 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @10 - block ;; label = @11 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@11;) - i32.const 0 - local.get 5 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 5 - br 1 (;@10;) - end - local.get 4 - i32.load offset=8 - local.set 5 - end - local.get 5 - local.get 3 - i32.store offset=12 - local.get 4 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 4 - i32.store offset=12 - local.get 3 - local.get 5 - i32.store offset=8 - br 4 (;@5;) - end - i32.const 31 - local.set 4 - block ;; label = @9 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@9;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 - end - local.get 3 - local.get 4 - i32.store offset=28 - local.get 3 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @9 - i32.const 0 - i32.load offset=1048584 - local.tee 9 - i32.const 1 - local.get 4 - i32.shl - local.tee 6 - i32.and - br_if 0 (;@9;) - local.get 5 - local.get 3 - i32.store - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048584 - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 3 - i32.store offset=12 - br 4 (;@5;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 9 - loop ;; label = @9 - local.get 9 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 3 (;@6;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 9 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 9 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 9 - br_if 0 (;@9;) - end - local.get 6 - local.get 3 - i32.store - local.get 3 - local.get 5 - i32.store offset=24 - local.get 3 - local.get 3 - i32.store offset=12 - local.get 3 - local.get 3 - i32.store offset=8 - br 3 (;@5;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 7 - i32.store offset=12 - local.get 5 - local.get 7 - i32.store offset=8 - local.get 7 - i32.const 0 - i32.store offset=24 - local.get 7 - local.get 5 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - end - local.get 2 - i32.const 8 - i32.add - local.set 4 - br 5 (;@1;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.store offset=12 - local.get 5 - local.get 3 - i32.store offset=8 - local.get 3 - i32.const 0 - i32.store offset=24 - local.get 3 - local.get 5 - i32.store offset=12 - local.get 3 - local.get 4 - i32.store offset=8 - end - i32.const 0 - i32.load offset=1048592 - local.tee 4 - local.get 7 - i32.le_u - br_if 0 (;@4;) - i32.const 0 - i32.load offset=1048604 - local.tee 3 - local.get 7 - i32.add - local.tee 5 - local.get 4 - local.get 7 - i32.sub - local.tee 4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.get 4 - i32.store offset=1048592 - i32.const 0 - local.get 5 - i32.store offset=1048604 - local.get 3 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 3 - i32.const 8 - i32.add - local.set 4 - br 3 (;@1;) - end - i32.const 0 - local.set 4 - i32.const 0 - i32.const 48 - i32.store offset=1049076 - br 2 (;@1;) - end - block ;; label = @3 - local.get 2 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 9 - local.get 9 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 4 - local.get 0 - i32.store - local.get 0 - br_if 1 (;@4;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - local.tee 10 - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 2 - i32.const 16 - i32.const 20 - local.get 2 - i32.load offset=16 - local.get 9 - i32.eq - select - i32.add - local.get 0 - i32.store - local.get 0 - i32.eqz - br_if 1 (;@3;) - end - local.get 0 - local.get 2 - i32.store offset=24 - block ;; label = @4 - local.get 9 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 0 (;@4;) - local.get 0 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 0 - i32.store offset=24 - end - local.get 9 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 0 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 0 - i32.store offset=24 - end - block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 15 - i32.gt_u - br_if 0 (;@4;) - local.get 9 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 9 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 1 (;@3;) - end - local.get 9 - local.get 7 - i32.add - local.tee 0 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 9 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 3 - i32.add - local.get 3 - i32.store - block ;; label = @4 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 3 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 4 - block ;; label = @5 - block ;; label = @6 - i32.const 0 - i32.load offset=1048580 - local.tee 5 - i32.const 1 - local.get 3 - i32.const 3 - i32.shr_u - i32.shl - local.tee 3 - i32.and - br_if 0 (;@6;) - i32.const 0 - local.get 5 - local.get 3 - i32.or - i32.store offset=1048580 - local.get 4 - local.set 3 - br 1 (;@5;) - end - local.get 4 - i32.load offset=8 - local.set 3 - end - local.get 3 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 - local.get 3 - i32.store offset=8 - br 1 (;@3;) - end - i32.const 31 - local.set 4 - block ;; label = @4 - local.get 3 - i32.const 16777215 - i32.gt_u - br_if 0 (;@4;) - local.get 3 - i32.const 38 - local.get 3 - i32.const 8 - i32.shr_u - i32.clz - local.tee 4 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 4 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 4 - end - local.get 0 - local.get 4 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 5 - block ;; label = @4 - local.get 10 - i32.const 1 - local.get 4 - i32.shl - local.tee 7 - i32.and - br_if 0 (;@4;) - local.get 5 - local.get 0 - i32.store - i32.const 0 - local.get 10 - local.get 7 - i32.or - i32.store offset=1048584 - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - br 1 (;@3;) - end - local.get 3 - i32.const 0 - i32.const 25 - local.get 4 - i32.const 1 - i32.shr_u - i32.sub - local.get 4 - i32.const 31 - i32.eq - select - i32.shl - local.set 4 - local.get 5 - i32.load - local.set 7 - block ;; label = @4 - loop ;; label = @5 - local.get 7 - local.tee 5 - i32.load offset=4 - i32.const -8 - i32.and - local.get 3 - i32.eq - br_if 1 (;@4;) - local.get 4 - i32.const 29 - i32.shr_u - local.set 7 - local.get 4 - i32.const 1 - i32.shl - local.set 4 - local.get 5 - local.get 7 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 6 - i32.load - local.tee 7 - br_if 0 (;@5;) - end - local.get 6 - local.get 0 - i32.store - local.get 0 - local.get 5 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - br 1 (;@3;) - end - local.get 5 - i32.load offset=8 - local.tee 4 - local.get 0 - i32.store offset=12 - local.get 5 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 5 - i32.store offset=12 - local.get 0 - local.get 4 - i32.store offset=8 - end - local.get 9 - i32.const 8 - i32.add - local.set 4 - br 1 (;@1;) - end - block ;; label = @2 - local.get 11 - i32.eqz - br_if 0 (;@2;) - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 4 - i32.load - i32.ne - br_if 0 (;@4;) - local.get 4 - local.get 9 - i32.store - local.get 9 - br_if 1 (;@3;) - i32.const 0 - local.get 10 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@2;) - end - local.get 11 - i32.const 16 - i32.const 20 - local.get 11 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 9 - i32.store - local.get 9 - i32.eqz - br_if 1 (;@2;) - end - local.get 9 - local.get 11 - i32.store offset=24 - block ;; label = @3 - local.get 0 - i32.load offset=16 - local.tee 4 - i32.eqz - br_if 0 (;@3;) - local.get 9 - local.get 4 - i32.store offset=16 - local.get 4 - local.get 9 - i32.store offset=24 - end - local.get 0 - i32.const 20 - i32.add - i32.load - local.tee 4 - i32.eqz - br_if 0 (;@2;) - local.get 9 - i32.const 20 - i32.add - local.get 4 - i32.store - local.get 4 - local.get 9 - i32.store offset=24 - end - block ;; label = @2 - block ;; label = @3 - local.get 3 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 0 - local.get 3 - local.get 7 - i32.add - local.tee 4 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 4 - i32.add - local.tee 4 - local.get 4 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - br 1 (;@2;) - end - local.get 0 - local.get 7 - i32.add - local.tee 5 - local.get 3 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 7 - i32.const 3 - i32.or - i32.store offset=4 - local.get 5 - local.get 3 - i32.add - local.get 3 - i32.store - block ;; label = @3 - local.get 8 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 7 - i32.const 0 - i32.load offset=1048600 - local.set 4 - block ;; label = @4 - block ;; label = @5 - i32.const 1 - local.get 8 - i32.const 3 - i32.shr_u - i32.shl - local.tee 9 - local.get 6 - i32.and - br_if 0 (;@5;) - i32.const 0 - local.get 9 - local.get 6 - i32.or - i32.store offset=1048580 - local.get 7 - local.set 9 - br 1 (;@4;) - end - local.get 7 - i32.load offset=8 - local.set 9 - end - local.get 9 - local.get 4 - i32.store offset=12 - local.get 7 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 7 - i32.store offset=12 - local.get 4 - local.get 9 - i32.store offset=8 - end - i32.const 0 - local.get 5 - i32.store offset=1048600 - i32.const 0 - local.get 3 - i32.store offset=1048588 - end - local.get 0 - i32.const 8 - i32.add - local.set 4 - end - local.get 1 - i32.const 16 - i32.add - global.set $__stack_pointer - local.get 4 - ) - (func $free (;6;) (type 3) (param i32) - local.get 0 - call $dlfree - ) - (func $dlfree (;7;) (type 3) (param i32) - (local i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - i32.eqz - br_if 0 (;@1;) - local.get 0 - i32.const -8 - i32.add - local.tee 1 - local.get 0 - i32.const -4 - i32.add - i32.load - local.tee 2 - i32.const -8 - i32.and - local.tee 0 - i32.add - local.set 3 - block ;; label = @2 - local.get 2 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 2 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 1 - local.get 1 - i32.load - local.tee 2 - i32.sub - local.tee 1 - i32.const 0 - i32.load offset=1048596 - local.tee 4 - i32.lt_u - br_if 1 (;@1;) - local.get 2 - local.get 0 - i32.add - local.set 0 - block ;; label = @3 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@3;) - block ;; label = @4 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 1 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 2 - local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 2 - i32.store offset=12 - br 2 (;@2;) - end - local.get 1 - i32.load offset=24 - local.set 7 - block ;; label = @4 - block ;; label = @5 - local.get 1 - i32.load offset=12 - local.tee 6 - local.get 1 - i32.eq - br_if 0 (;@5;) - local.get 1 - i32.load offset=8 - local.tee 2 - local.get 4 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 1 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 1 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - i32.const 0 - local.set 6 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@5;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@5;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 1 - local.get 1 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 3 (;@2;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 1 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 2 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @4 - local.get 1 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 1 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - br 1 (;@2;) - end - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 0 (;@2;) - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 1 - local.get 3 - i32.ge_u - br_if 0 (;@1;) - local.get 3 - i32.load offset=4 - local.tee 2 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048592 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 3 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 1 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 0 - i32.add - local.tee 0 - i32.store offset=1048588 - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - return - end - local.get 2 - i32.const -8 - i32.and - local.get 0 - i32.add - local.set 0 - block ;; label = @4 - block ;; label = @5 - local.get 2 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 3 - i32.load offset=8 - local.tee 4 - local.get 2 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 2 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 2 - local.get 6 - i32.eq - drop - local.get 2 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 2 - i32.store offset=12 - br 1 (;@4;) - end - local.get 3 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 3 - i32.load offset=12 - local.tee 6 - local.get 3 - i32.eq - br_if 0 (;@6;) - local.get 3 - i32.load offset=8 - local.tee 2 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 2 - i32.store offset=8 - local.get 2 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 3 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 3 - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 2 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 2 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 2 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 3 - local.get 3 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 2 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 2 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 3 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 3 - i32.load offset=16 - local.tee 2 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 2 - i32.store offset=16 - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 3 - i32.load offset=20 - local.tee 2 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 2 - i32.store - local.get 2 - local.get 6 - i32.store offset=24 - end - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 0 - i32.store offset=1048588 - return - end - local.get 3 - local.get 2 - i32.const -2 - i32.and - i32.store offset=4 - local.get 1 - local.get 0 - i32.add - local.get 0 - i32.store - local.get 1 - local.get 0 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 0 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 2 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 0 - i32.const 3 - i32.shr_u - i32.shl - local.tee 0 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 0 - i32.or - i32.store offset=1048580 - local.get 2 - local.set 0 - br 1 (;@3;) - end - local.get 2 - i32.load offset=8 - local.set 0 - end - local.get 0 - local.get 1 - i32.store offset=12 - local.get 2 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 2 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - return - end - i32.const 31 - local.set 2 - block ;; label = @2 - local.get 0 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 0 - i32.const 38 - local.get 0 - i32.const 8 - i32.shr_u - i32.clz - local.tee 2 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 2 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 2 - end - local.get 1 - local.get 2 - i32.store offset=28 - local.get 1 - i64.const 0 - i64.store offset=16 align=4 - local.get 2 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - block ;; label = @3 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 2 - i32.shl - local.tee 3 - i32.and - br_if 0 (;@3;) - local.get 4 - local.get 1 - i32.store - i32.const 0 - local.get 6 - local.get 3 - i32.or - i32.store offset=1048584 - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 1 - i32.store offset=12 - br 1 (;@2;) - end - local.get 0 - i32.const 0 - i32.const 25 - local.get 2 - i32.const 1 - i32.shr_u - i32.sub - local.get 2 - i32.const 31 - i32.eq - select - i32.shl - local.set 2 - local.get 4 - i32.load - local.set 6 - block ;; label = @3 - loop ;; label = @4 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 0 - i32.eq - br_if 1 (;@3;) - local.get 2 - i32.const 29 - i32.shr_u - local.set 6 - local.get 2 - i32.const 1 - i32.shl - local.set 2 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 6 - br_if 0 (;@4;) - end - local.get 3 - local.get 1 - i32.store - local.get 1 - local.get 4 - i32.store offset=24 - local.get 1 - local.get 1 - i32.store offset=12 - local.get 1 - local.get 1 - i32.store offset=8 - br 1 (;@2;) - end - local.get 4 - i32.load offset=8 - local.tee 0 - local.get 1 - i32.store offset=12 - local.get 4 - local.get 1 - i32.store offset=8 - local.get 1 - i32.const 0 - i32.store offset=24 - local.get 1 - local.get 4 - i32.store offset=12 - local.get 1 - local.get 0 - i32.store offset=8 - end - i32.const 0 - i32.const 0 - i32.load offset=1048612 - i32.const -1 - i32.add - local.tee 1 - i32.const -1 - local.get 1 - select - i32.store offset=1048612 - end - ) - (func $realloc (;8;) (type 0) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - block ;; label = @1 - local.get 1 - i32.const -64 - i32.lt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.set 2 - local.get 0 - i32.const -4 - i32.add - local.tee 3 - i32.load - local.tee 4 - i32.const -8 - i32.and - local.set 5 - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 4 - i32.const 3 - i32.and - br_if 0 (;@3;) - local.get 2 - i32.const 256 - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.const 4 - i32.or - i32.lt_u - br_if 1 (;@2;) - local.get 5 - local.get 2 - i32.sub - i32.const 0 - i32.load offset=1049060 - i32.const 1 - i32.shl - i32.le_u - br_if 2 (;@1;) - br 1 (;@2;) - end - local.get 0 - i32.const -8 - i32.add - local.tee 6 - local.get 5 - i32.add - local.set 7 - block ;; label = @3 - local.get 5 - local.get 2 - i32.lt_u - br_if 0 (;@3;) - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 2 (;@1;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 7 - local.get 7 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 1 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048592 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.le_u - br_if 1 (;@2;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.add - local.tee 1 - i32.store offset=1048604 - i32.const 0 - local.get 5 - local.get 2 - i32.sub - local.tee 2 - i32.store offset=1048592 - local.get 1 - local.get 2 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - block ;; label = @3 - local.get 7 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@3;) - i32.const 0 - i32.load offset=1048588 - local.get 5 - i32.add - local.tee 5 - local.get 2 - i32.lt_u - br_if 1 (;@2;) - block ;; label = @4 - block ;; label = @5 - local.get 5 - local.get 2 - i32.sub - local.tee 1 - i32.const 16 - i32.lt_u - br_if 0 (;@5;) - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 2 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 6 - local.get 5 - i32.add - local.tee 5 - local.get 1 - i32.store - local.get 5 - local.get 5 - i32.load offset=4 - i32.const -2 - i32.and - i32.store offset=4 - br 1 (;@4;) - end - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 5 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 5 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - i32.const 0 - local.set 1 - i32.const 0 - local.set 2 - end - i32.const 0 - local.get 2 - i32.store offset=1048600 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 0 - return - end - local.get 7 - i32.load offset=4 - local.tee 8 - i32.const 2 - i32.and - br_if 0 (;@2;) - local.get 8 - i32.const -8 - i32.and - local.get 5 - i32.add - local.tee 9 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - local.get 9 - local.get 2 - i32.sub - local.set 10 - block ;; label = @3 - block ;; label = @4 - local.get 8 - i32.const 255 - i32.gt_u - br_if 0 (;@4;) - local.get 7 - i32.load offset=8 - local.tee 1 - local.get 8 - i32.const 3 - i32.shr_u - local.tee 11 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 8 - i32.eq - drop - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 5 - local.get 1 - i32.ne - br_if 0 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 11 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@3;) - end - local.get 5 - local.get 8 - i32.eq - drop - local.get 5 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 5 - i32.store offset=12 - br 1 (;@3;) - end - local.get 7 - i32.load offset=24 - local.set 12 - block ;; label = @4 - block ;; label = @5 - local.get 7 - i32.load offset=12 - local.tee 8 - local.get 7 - i32.eq - br_if 0 (;@5;) - local.get 7 - i32.load offset=8 - local.tee 1 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 8 - local.get 1 - i32.store offset=8 - local.get 1 - local.get 8 - i32.store offset=12 - br 1 (;@4;) - end - block ;; label = @5 - local.get 7 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 7 - i32.const 16 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - i32.const 0 - local.set 8 - br 1 (;@4;) - end - loop ;; label = @5 - local.get 1 - local.set 11 - local.get 5 - local.tee 8 - i32.const 20 - i32.add - local.tee 1 - i32.load - local.tee 5 - br_if 0 (;@5;) - local.get 8 - i32.const 16 - i32.add - local.set 1 - local.get 8 - i32.load offset=16 - local.tee 5 - br_if 0 (;@5;) - end - local.get 11 - i32.const 0 - i32.store - end - local.get 12 - i32.eqz - br_if 0 (;@3;) - block ;; label = @4 - block ;; label = @5 - local.get 7 - local.get 7 - i32.load offset=28 - local.tee 5 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 1 - i32.load - i32.ne - br_if 0 (;@5;) - local.get 1 - local.get 8 - i32.store - local.get 8 - br_if 1 (;@4;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@3;) - end - local.get 12 - i32.const 16 - i32.const 20 - local.get 12 - i32.load offset=16 - local.get 7 - i32.eq - select - i32.add - local.get 8 - i32.store - local.get 8 - i32.eqz - br_if 1 (;@3;) - end - local.get 8 - local.get 12 - i32.store offset=24 - block ;; label = @4 - local.get 7 - i32.load offset=16 - local.tee 1 - i32.eqz - br_if 0 (;@4;) - local.get 8 - local.get 1 - i32.store offset=16 - local.get 1 - local.get 8 - i32.store offset=24 - end - local.get 7 - i32.load offset=20 - local.tee 1 - i32.eqz - br_if 0 (;@3;) - local.get 8 - i32.const 20 - i32.add - local.get 1 - i32.store - local.get 1 - local.get 8 - i32.store offset=24 - end - block ;; label = @3 - local.get 10 - i32.const 15 - i32.gt_u - br_if 0 (;@3;) - local.get 3 - local.get 4 - i32.const 1 - i32.and - local.get 9 - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 9 - i32.add - local.tee 1 - local.get 1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - return - end - local.get 3 - local.get 2 - local.get 4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 6 - local.get 2 - i32.add - local.tee 1 - local.get 10 - i32.const 3 - i32.or - i32.store offset=4 - local.get 6 - local.get 9 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 1 - local.get 10 - call $dispose_chunk - local.get 0 - return - end - block ;; label = @2 - local.get 1 - call $dlmalloc - local.tee 2 - br_if 0 (;@2;) - i32.const 0 - return - end - local.get 2 - local.get 0 - i32.const -4 - i32.const -8 - local.get 3 - i32.load - local.tee 5 - i32.const 3 - i32.and - select - local.get 5 - i32.const -8 - i32.and - i32.add - local.tee 5 - local.get 1 - local.get 5 - local.get 1 - i32.lt_u - select - call $memcpy - local.set 1 - local.get 0 - call $dlfree - local.get 1 - local.set 0 - end - local.get 0 - ) - (func $dispose_chunk (;9;) (type 4) (param i32 i32) - (local i32 i32 i32 i32 i32 i32) - local.get 0 - local.get 1 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 1 - i32.and - br_if 0 (;@2;) - local.get 3 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 0 - i32.load - local.tee 3 - local.get 1 - i32.add - local.set 1 - block ;; label = @3 - block ;; label = @4 - local.get 0 - local.get 3 - i32.sub - local.tee 0 - i32.const 0 - i32.load offset=1048600 - i32.eq - br_if 0 (;@4;) - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 0 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - local.get 0 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 2 (;@3;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 3 (;@2;) - end - local.get 0 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 0 - i32.load offset=12 - local.tee 6 - local.get 0 - i32.eq - br_if 0 (;@6;) - local.get 0 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 0 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 0 - i32.const 16 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 3 - local.set 5 - local.get 4 - local.tee 6 - i32.const 20 - i32.add - local.tee 3 - i32.load - local.tee 4 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 3 - local.get 6 - i32.load offset=16 - local.tee 4 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 2 (;@2;) - block ;; label = @5 - block ;; label = @6 - local.get 0 - local.get 0 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 4 (;@2;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 0 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 3 (;@2;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 0 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 2 (;@2;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - br 2 (;@2;) - end - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.const 3 - i32.ne - br_if 1 (;@2;) - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - i32.const 0 - local.get 1 - i32.store offset=1048588 - local.get 2 - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - return - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - end - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.load offset=4 - local.tee 3 - i32.const 2 - i32.and - br_if 0 (;@3;) - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048604 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048604 - i32.const 0 - i32.const 0 - i32.load offset=1048592 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048592 - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 3 (;@1;) - i32.const 0 - i32.const 0 - i32.store offset=1048588 - i32.const 0 - i32.const 0 - i32.store offset=1048600 - return - end - block ;; label = @4 - local.get 2 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 0 (;@4;) - i32.const 0 - local.get 0 - i32.store offset=1048600 - i32.const 0 - i32.const 0 - i32.load offset=1048588 - local.get 1 - i32.add - local.tee 1 - i32.store offset=1048588 - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - return - end - local.get 3 - i32.const -8 - i32.and - local.get 1 - i32.add - local.set 1 - block ;; label = @4 - block ;; label = @5 - local.get 3 - i32.const 255 - i32.gt_u - br_if 0 (;@5;) - local.get 2 - i32.load offset=8 - local.tee 4 - local.get 3 - i32.const 3 - i32.shr_u - local.tee 5 - i32.const 3 - i32.shl - i32.const 1048620 - i32.add - local.tee 6 - i32.eq - drop - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 3 - local.get 4 - i32.ne - br_if 0 (;@6;) - i32.const 0 - i32.const 0 - i32.load offset=1048580 - i32.const -2 - local.get 5 - i32.rotl - i32.and - i32.store offset=1048580 - br 2 (;@4;) - end - local.get 3 - local.get 6 - i32.eq - drop - local.get 3 - local.get 4 - i32.store offset=8 - local.get 4 - local.get 3 - i32.store offset=12 - br 1 (;@4;) - end - local.get 2 - i32.load offset=24 - local.set 7 - block ;; label = @5 - block ;; label = @6 - local.get 2 - i32.load offset=12 - local.tee 6 - local.get 2 - i32.eq - br_if 0 (;@6;) - local.get 2 - i32.load offset=8 - local.tee 3 - i32.const 0 - i32.load offset=1048596 - i32.lt_u - drop - local.get 6 - local.get 3 - i32.store offset=8 - local.get 3 - local.get 6 - i32.store offset=12 - br 1 (;@5;) - end - block ;; label = @6 - local.get 2 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 2 - i32.const 16 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - i32.const 0 - local.set 6 - br 1 (;@5;) - end - loop ;; label = @6 - local.get 4 - local.set 5 - local.get 3 - local.tee 6 - i32.const 20 - i32.add - local.tee 4 - i32.load - local.tee 3 - br_if 0 (;@6;) - local.get 6 - i32.const 16 - i32.add - local.set 4 - local.get 6 - i32.load offset=16 - local.tee 3 - br_if 0 (;@6;) - end - local.get 5 - i32.const 0 - i32.store - end - local.get 7 - i32.eqz - br_if 0 (;@4;) - block ;; label = @5 - block ;; label = @6 - local.get 2 - local.get 2 - i32.load offset=28 - local.tee 4 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.tee 3 - i32.load - i32.ne - br_if 0 (;@6;) - local.get 3 - local.get 6 - i32.store - local.get 6 - br_if 1 (;@5;) - i32.const 0 - i32.const 0 - i32.load offset=1048584 - i32.const -2 - local.get 4 - i32.rotl - i32.and - i32.store offset=1048584 - br 2 (;@4;) - end - local.get 7 - i32.const 16 - i32.const 20 - local.get 7 - i32.load offset=16 - local.get 2 - i32.eq - select - i32.add - local.get 6 - i32.store - local.get 6 - i32.eqz - br_if 1 (;@4;) - end - local.get 6 - local.get 7 - i32.store offset=24 - block ;; label = @5 - local.get 2 - i32.load offset=16 - local.tee 3 - i32.eqz - br_if 0 (;@5;) - local.get 6 - local.get 3 - i32.store offset=16 - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 2 - i32.load offset=20 - local.tee 3 - i32.eqz - br_if 0 (;@4;) - local.get 6 - i32.const 20 - i32.add - local.get 3 - i32.store - local.get 3 - local.get 6 - i32.store offset=24 - end - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - local.get 0 - i32.const 0 - i32.load offset=1048600 - i32.ne - br_if 1 (;@2;) - i32.const 0 - local.get 1 - i32.store offset=1048588 - return - end - local.get 2 - local.get 3 - i32.const -2 - i32.and - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.get 1 - i32.store - local.get 0 - local.get 1 - i32.const 1 - i32.or - i32.store offset=4 - end - block ;; label = @2 - local.get 1 - i32.const 255 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const -8 - i32.and - i32.const 1048620 - i32.add - local.set 3 - block ;; label = @3 - block ;; label = @4 - i32.const 0 - i32.load offset=1048580 - local.tee 4 - i32.const 1 - local.get 1 - i32.const 3 - i32.shr_u - i32.shl - local.tee 1 - i32.and - br_if 0 (;@4;) - i32.const 0 - local.get 4 - local.get 1 - i32.or - i32.store offset=1048580 - local.get 3 - local.set 1 - br 1 (;@3;) - end - local.get 3 - i32.load offset=8 - local.set 1 - end - local.get 1 - local.get 0 - i32.store offset=12 - local.get 3 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 3 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - return - end - i32.const 31 - local.set 3 - block ;; label = @2 - local.get 1 - i32.const 16777215 - i32.gt_u - br_if 0 (;@2;) - local.get 1 - i32.const 38 - local.get 1 - i32.const 8 - i32.shr_u - i32.clz - local.tee 3 - i32.sub - i32.shr_u - i32.const 1 - i32.and - local.get 3 - i32.const 1 - i32.shl - i32.sub - i32.const 62 - i32.add - local.set 3 - end - local.get 0 - local.get 3 - i32.store offset=28 - local.get 0 - i64.const 0 - i64.store offset=16 align=4 - local.get 3 - i32.const 2 - i32.shl - i32.const 1048884 - i32.add - local.set 4 - block ;; label = @2 - i32.const 0 - i32.load offset=1048584 - local.tee 6 - i32.const 1 - local.get 3 - i32.shl - local.tee 2 - i32.and - br_if 0 (;@2;) - local.get 4 - local.get 0 - i32.store - i32.const 0 - local.get 6 - local.get 2 - i32.or - i32.store offset=1048584 - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=8 - local.get 0 - local.get 0 - i32.store offset=12 - return - end - local.get 1 - i32.const 0 - i32.const 25 - local.get 3 - i32.const 1 - i32.shr_u - i32.sub - local.get 3 - i32.const 31 - i32.eq - select - i32.shl - local.set 3 - local.get 4 - i32.load - local.set 6 - block ;; label = @2 - loop ;; label = @3 - local.get 6 - local.tee 4 - i32.load offset=4 - i32.const -8 - i32.and - local.get 1 - i32.eq - br_if 1 (;@2;) - local.get 3 - i32.const 29 - i32.shr_u - local.set 6 - local.get 3 - i32.const 1 - i32.shl - local.set 3 - local.get 4 - local.get 6 - i32.const 4 - i32.and - i32.add - i32.const 16 - i32.add - local.tee 2 - i32.load - local.tee 6 - br_if 0 (;@3;) - end - local.get 2 - local.get 0 - i32.store - local.get 0 - local.get 4 - i32.store offset=24 - local.get 0 - local.get 0 - i32.store offset=12 - local.get 0 - local.get 0 - i32.store offset=8 - return - end - local.get 4 - i32.load offset=8 - local.tee 1 - local.get 0 - i32.store offset=12 - local.get 4 - local.get 0 - i32.store offset=8 - local.get 0 - i32.const 0 - i32.store offset=24 - local.get 0 - local.get 4 - i32.store offset=12 - local.get 0 - local.get 1 - i32.store offset=8 - end - ) - (func $internal_memalign (;10;) (type 0) (param i32 i32) (result i32) - (local i32 i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const 16 - local.get 0 - i32.const 16 - i32.gt_u - select - local.tee 2 - local.get 2 - i32.const -1 - i32.add - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - i32.const 32 - local.set 3 - loop ;; label = @2 - local.get 3 - local.tee 0 - i32.const 1 - i32.shl - local.set 3 - local.get 0 - local.get 2 - i32.lt_u - br_if 0 (;@2;) - end - end - block ;; label = @1 - i32.const -64 - local.get 0 - i32.sub - local.get 1 - i32.gt_u - br_if 0 (;@1;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const 0 - return - end - block ;; label = @1 - local.get 0 - i32.const 16 - local.get 1 - i32.const 19 - i32.add - i32.const -16 - i32.and - local.get 1 - i32.const 11 - i32.lt_u - select - local.tee 1 - i32.add - i32.const 12 - i32.add - call $dlmalloc - local.tee 3 - br_if 0 (;@1;) - i32.const 0 - return - end - local.get 3 - i32.const -8 - i32.add - local.set 2 - block ;; label = @1 - block ;; label = @2 - local.get 0 - i32.const -1 - i32.add - local.get 3 - i32.and - br_if 0 (;@2;) - local.get 2 - local.set 0 - br 1 (;@1;) - end - local.get 3 - i32.const -4 - i32.add - local.tee 4 - i32.load - local.tee 5 - i32.const -8 - i32.and - local.get 3 - local.get 0 - i32.add - i32.const -1 - i32.add - i32.const 0 - local.get 0 - i32.sub - i32.and - i32.const -8 - i32.add - local.tee 3 - i32.const 0 - local.get 0 - local.get 3 - local.get 2 - i32.sub - i32.const 15 - i32.gt_u - select - i32.add - local.tee 0 - local.get 2 - i32.sub - local.tee 3 - i32.sub - local.set 6 - block ;; label = @2 - local.get 5 - i32.const 3 - i32.and - br_if 0 (;@2;) - local.get 0 - local.get 6 - i32.store offset=4 - local.get 0 - local.get 2 - i32.load - local.get 3 - i32.add - i32.store - br 1 (;@1;) - end - local.get 0 - local.get 6 - local.get 0 - i32.load offset=4 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 6 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 4 - local.get 3 - local.get 4 - i32.load - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store - local.get 2 - local.get 3 - i32.add - local.tee 6 - local.get 6 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 2 - local.get 3 - call $dispose_chunk - end - block ;; label = @1 - local.get 0 - i32.load offset=4 - local.tee 3 - i32.const 3 - i32.and - i32.eqz - br_if 0 (;@1;) - local.get 3 - i32.const -8 - i32.and - local.tee 2 - local.get 1 - i32.const 16 - i32.add - i32.le_u - br_if 0 (;@1;) - local.get 0 - local.get 1 - local.get 3 - i32.const 1 - i32.and - i32.or - i32.const 2 - i32.or - i32.store offset=4 - local.get 0 - local.get 1 - i32.add - local.tee 3 - local.get 2 - local.get 1 - i32.sub - local.tee 1 - i32.const 3 - i32.or - i32.store offset=4 - local.get 0 - local.get 2 - i32.add - local.tee 2 - local.get 2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - local.get 3 - local.get 1 - call $dispose_chunk - end - local.get 0 - i32.const 8 - i32.add - ) - (func $aligned_alloc (;11;) (type 0) (param i32 i32) (result i32) - block ;; label = @1 - local.get 0 - i32.const 16 - i32.gt_u - br_if 0 (;@1;) - local.get 1 - call $dlmalloc - return - end - local.get 0 - local.get 1 - call $internal_memalign - ) - (func $abort (;12;) (type 5) - unreachable - unreachable - ) - (func $sbrk (;13;) (type 2) (param i32) (result i32) - block ;; label = @1 - local.get 0 - br_if 0 (;@1;) - memory.size - i32.const 16 - i32.shl - return - end - block ;; label = @1 - local.get 0 - i32.const 65535 - i32.and - br_if 0 (;@1;) - local.get 0 - i32.const -1 - i32.le_s - br_if 0 (;@1;) - block ;; label = @2 - local.get 0 - i32.const 16 - i32.shr_u - memory.grow - local.tee 0 - i32.const -1 - i32.ne - br_if 0 (;@2;) - i32.const 0 - i32.const 48 - i32.store offset=1049076 - i32.const -1 - return - end - local.get 0 - i32.const 16 - i32.shl - return - end - call $abort - unreachable - ) - (func $memcpy (;14;) (type 6) (param i32 i32 i32) (result i32) - (local i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 2 - i32.const 32 - i32.gt_u - br_if 0 (;@3;) - local.get 1 - i32.const 3 - i32.and - i32.eqz - br_if 1 (;@2;) - local.get 2 - i32.eqz - br_if 1 (;@2;) - local.get 0 - local.get 1 - i32.load8_u - i32.store8 - local.get 2 - i32.const -1 - i32.add - local.set 3 - local.get 0 - i32.const 1 - i32.add - local.set 4 - local.get 1 - i32.const 1 - i32.add - local.tee 5 - i32.const 3 - i32.and - i32.eqz - br_if 2 (;@1;) - local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 - local.get 1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get 2 - i32.const -2 - i32.add - local.set 3 - local.get 0 - i32.const 2 - i32.add - local.set 4 - local.get 1 - i32.const 2 - i32.add - local.tee 5 - i32.const 3 - i32.and - i32.eqz - br_if 2 (;@1;) - local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 - local.get 1 - i32.load8_u offset=2 - i32.store8 offset=2 - local.get 2 - i32.const -3 - i32.add - local.set 3 - local.get 0 - i32.const 3 - i32.add - local.set 4 - local.get 1 - i32.const 3 - i32.add - local.tee 5 - i32.const 3 - i32.and - i32.eqz - br_if 2 (;@1;) - local.get 3 - i32.eqz - br_if 2 (;@1;) - local.get 0 - local.get 1 - i32.load8_u offset=3 - i32.store8 offset=3 - local.get 2 - i32.const -4 - i32.add - local.set 3 - local.get 0 - i32.const 4 - i32.add - local.set 4 - local.get 1 - i32.const 4 - i32.add - local.set 5 - br 2 (;@1;) - end - local.get 0 - local.get 1 - local.get 2 - memory.copy - local.get 0 - return - end - local.get 2 - local.set 3 - local.get 0 - local.set 4 - local.get 1 - local.set 5 - end - block ;; label = @1 - block ;; label = @2 - local.get 4 - i32.const 3 - i32.and - local.tee 2 - br_if 0 (;@2;) - block ;; label = @3 - block ;; label = @4 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@4;) - local.get 3 - local.set 2 - br 1 (;@3;) - end - block ;; label = @4 - local.get 3 - i32.const -16 - i32.add - local.tee 2 - i32.const 16 - i32.and - br_if 0 (;@4;) - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - i32.const 16 - i32.add - local.set 4 - local.get 5 - i32.const 16 - i32.add - local.set 5 - local.get 2 - local.set 3 - end - local.get 2 - i32.const 16 - i32.lt_u - br_if 0 (;@3;) - local.get 3 - local.set 2 - loop ;; label = @4 - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 4 - local.get 5 - i64.load offset=8 align=4 - i64.store offset=8 align=4 - local.get 4 - local.get 5 - i64.load offset=16 align=4 - i64.store offset=16 align=4 - local.get 4 - local.get 5 - i64.load offset=24 align=4 - i64.store offset=24 align=4 - local.get 4 - i32.const 32 - i32.add - local.set 4 - local.get 5 - i32.const 32 - i32.add - local.set 5 - local.get 2 - i32.const -32 - i32.add - local.tee 2 - i32.const 15 - i32.gt_u - br_if 0 (;@4;) - end - end - block ;; label = @3 - local.get 2 - i32.const 8 - i32.lt_u - br_if 0 (;@3;) - local.get 4 - local.get 5 - i64.load align=4 - i64.store align=4 - local.get 5 - i32.const 8 - i32.add - local.set 5 - local.get 4 - i32.const 8 - i32.add - local.set 4 - end - block ;; label = @3 - local.get 2 - i32.const 4 - i32.and - i32.eqz - br_if 0 (;@3;) - local.get 4 - local.get 5 - i32.load - i32.store - local.get 5 - i32.const 4 - i32.add - local.set 5 - local.get 4 - i32.const 4 - i32.add - local.set 4 - end - block ;; label = @3 - local.get 2 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@3;) - local.get 4 - local.get 5 - i32.load16_u align=1 - i32.store16 align=1 - local.get 4 - i32.const 2 - i32.add - local.set 4 - local.get 5 - i32.const 2 - i32.add - local.set 5 - end - local.get 2 - i32.const 1 - i32.and - i32.eqz - br_if 1 (;@1;) - local.get 4 - local.get 5 - i32.load8_u - i32.store8 - local.get 0 - return - end - block ;; label = @2 - block ;; label = @3 - block ;; label = @4 - block ;; label = @5 - block ;; label = @6 - local.get 3 - i32.const 32 - i32.lt_u - br_if 0 (;@6;) - block ;; label = @7 - block ;; label = @8 - local.get 2 - i32.const -1 - i32.add - br_table 3 (;@5;) 0 (;@8;) 1 (;@7;) 7 (;@1;) - end - local.get 4 - local.get 5 - i32.load - i32.store16 align=1 - local.get 4 - local.get 5 - i32.const 2 - i32.add - i32.load align=2 - i32.store offset=2 - local.get 4 - local.get 5 - i32.const 6 - i32.add - i64.load align=2 - i64.store offset=6 align=4 - local.get 4 - i32.const 18 - i32.add - local.set 2 - local.get 5 - i32.const 18 - i32.add - local.set 1 - i32.const 14 - local.set 6 - local.get 5 - i32.const 14 - i32.add - i32.load align=2 - local.set 5 - i32.const 14 - local.set 3 - br 3 (;@4;) - end - local.get 4 - local.get 5 - i32.load - i32.store8 - local.get 4 - local.get 5 - i32.const 1 - i32.add - i32.load align=1 - i32.store offset=1 - local.get 4 - local.get 5 - i32.const 5 - i32.add - i64.load align=1 - i64.store offset=5 align=4 - local.get 4 - i32.const 17 - i32.add - local.set 2 - local.get 5 - i32.const 17 - i32.add - local.set 1 - i32.const 13 - local.set 6 - local.get 5 - i32.const 13 - i32.add - i32.load align=1 - local.set 5 - i32.const 15 - local.set 3 - br 2 (;@4;) - end - block ;; label = @6 - block ;; label = @7 - local.get 3 - i32.const 16 - i32.ge_u - br_if 0 (;@7;) - local.get 4 - local.set 2 - local.get 5 - local.set 1 - br 1 (;@6;) - end - local.get 4 - local.get 5 - i32.load8_u - i32.store8 - local.get 4 - local.get 5 - i32.load offset=1 align=1 - i32.store offset=1 align=1 - local.get 4 - local.get 5 - i64.load offset=5 align=1 - i64.store offset=5 align=1 - local.get 4 - local.get 5 - i32.load16_u offset=13 align=1 - i32.store16 offset=13 align=1 - local.get 4 - local.get 5 - i32.load8_u offset=15 - i32.store8 offset=15 - local.get 4 - i32.const 16 - i32.add - local.set 2 - local.get 5 - i32.const 16 - i32.add - local.set 1 - end - local.get 3 - i32.const 8 - i32.and - br_if 2 (;@3;) - br 3 (;@2;) - end - local.get 4 - local.get 5 - i32.load - local.tee 2 - i32.store8 - local.get 4 - local.get 2 - i32.const 16 - i32.shr_u - i32.store8 offset=2 - local.get 4 - local.get 2 - i32.const 8 - i32.shr_u - i32.store8 offset=1 - local.get 4 - local.get 5 - i32.const 3 - i32.add - i32.load align=1 - i32.store offset=3 - local.get 4 - local.get 5 - i32.const 7 - i32.add - i64.load align=1 - i64.store offset=7 align=4 - local.get 4 - i32.const 19 - i32.add - local.set 2 - local.get 5 - i32.const 19 - i32.add - local.set 1 - i32.const 15 - local.set 6 - local.get 5 - i32.const 15 - i32.add - i32.load align=1 - local.set 5 - i32.const 13 - local.set 3 - end - local.get 4 - local.get 6 - i32.add - local.get 5 - i32.store - end - local.get 2 - local.get 1 - i64.load align=1 - i64.store align=1 - local.get 2 - i32.const 8 - i32.add - local.set 2 - local.get 1 - i32.const 8 - i32.add - local.set 1 - end - block ;; label = @2 - local.get 3 - i32.const 4 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 - local.get 1 - i32.load align=1 - i32.store align=1 - local.get 2 - i32.const 4 - i32.add - local.set 2 - local.get 1 - i32.const 4 - i32.add - local.set 1 - end - block ;; label = @2 - local.get 3 - i32.const 2 - i32.and - i32.eqz - br_if 0 (;@2;) - local.get 2 - local.get 1 - i32.load16_u align=1 - i32.store16 align=1 - local.get 2 - i32.const 2 - i32.add - local.set 2 - local.get 1 - i32.const 2 - i32.add - local.set 1 - end - local.get 3 - i32.const 1 - i32.and - i32.eqz - br_if 0 (;@1;) - local.get 2 - local.get 1 - i32.load8_u - i32.store8 - end - local.get 0 - ) - (func $cabi_realloc (;15;) (type 1) (param i32 i32 i32 i32) (result i32) - block ;; label = @1 - block ;; label = @2 - block ;; label = @3 - local.get 1 - br_if 0 (;@3;) - local.get 3 - i32.eqz - br_if 2 (;@1;) - i32.const 0 - i32.load8_u offset=1048576 - drop - local.get 3 - local.get 2 - call $__rust_alloc - local.set 2 - br 1 (;@2;) - end - local.get 0 - local.get 1 - local.get 2 - local.get 3 - call $__rust_realloc - local.set 2 - end - local.get 2 - br_if 0 (;@1;) - unreachable - unreachable - end - local.get 2 - ) (table (;0;) 1 1 funcref) - (memory (;0;) 17) + (memory (;0;) 16) (global $__stack_pointer (;0;) (mut i32) i32.const 1048576) (export "memory" (memory 0)) - (export "cabi_realloc" (func $cabi_realloc)) ) (core instance (;0;) (instantiate 0)) (alias core export 0 "memory" (core memory (;0;))) - (alias core export 0 "cabi_realloc" (core func (;0;))) (component (;0;) (type (;0;) u64) (export (;1;) "felt" (type 0)) diff --git a/tests/integration/src/compiler_test.rs b/tests/integration/src/compiler_test.rs index 928c34592..874fc9c95 100644 --- a/tests/integration/src/compiler_test.rs +++ b/tests/integration/src/compiler_test.rs @@ -66,8 +66,6 @@ pub struct CompilerTest { entrypoint: Option, /// The compiled Wasm component/module pub wasm_bytes: Vec, - /// The WIT Rust bindings generated by the wit-bindgen (if Wasm component is compiled) - pub wit_bind: Option, /// The compiled IR pub hir: Option>, /// The compiled MASM @@ -80,6 +78,8 @@ impl CompilerTest { let manifest_path = format!("../rust-apps-wasm/{}/Cargo.toml", cargo_project_folder); // dbg!(&pwd); let mut cargo_build_cmd = Command::new("cargo"); + // Enable Wasm bulk-memory proposal (uses Wasm `memory.copy` op instead of `memcpy` import) + cargo_build_cmd.env("RUSTFLAGS", "-C target-feature=+bulk-memory"); cargo_build_cmd .arg("component") .arg("build") @@ -145,26 +145,6 @@ impl CompilerTest { .to_str() .unwrap() .to_string(); - let wasm_comp_filename = wasm_comp_path - .file_stem() - .unwrap() - .to_str() - .unwrap() - .to_string(); - let target_dir = &wasm_comp_path - .parent() // remove file - .unwrap() - .parent() // remove release - .unwrap() - .parent() // remove wasm32-wasi (target) - .unwrap(); - let crate_name_dashed = wasm_comp_filename.replace("_", "-"); - let wit_bind_path = target_dir - .join("bindings") - .join(crate_name_dashed) - .join("bindings.rs"); - // dbg!(&wit_bind_path); - let wit_bind_str = String::from_utf8(std::fs::read(wit_bind_path).unwrap()).unwrap(); Self { session: default_session(), source: CompilerTestSource::RustCargo { @@ -173,7 +153,6 @@ impl CompilerTest { }, entrypoint: None, wasm_bytes: fs::read(wasm_artifacts.first().unwrap()).unwrap(), - wit_bind: Some(wit_bind_str), hir: None, ir_masm: None, } @@ -242,7 +221,6 @@ impl CompilerTest { entrypoint: Some(entrypoint), hir: None, ir_masm: None, - wit_bind: None, } } @@ -257,7 +235,6 @@ impl CompilerTest { entrypoint: None, hir: None, ir_masm: None, - wit_bind: None, } } @@ -298,7 +275,6 @@ impl CompilerTest { entrypoint: Some(entrypoint), hir: None, ir_masm: None, - wit_bind: None, } } @@ -309,12 +285,6 @@ impl CompilerTest { expected_wat_file.assert_eq(&wat); } - /// Compare the generated WIT Rust bindings against the expected output - pub fn expect_wit_bind(&self, expected_wit_bind_file: expect_test::ExpectFile) { - let wit_bind = self.wit_bind.as_ref().unwrap(); - expected_wit_bind_file.assert_eq(&wit_bind); - } - /// Compare the compiled IR against the expected output pub fn expect_ir(&mut self, expected_hir_file: expect_test::ExpectFile) { let hir_program = if let Some(hir) = self.hir.as_ref() { diff --git a/tests/integration/src/rust_masm_tests/components.rs b/tests/integration/src/rust_masm_tests/components.rs index 13a6e7a02..57a51655b 100644 --- a/tests/integration/src/rust_masm_tests/components.rs +++ b/tests/integration/src/rust_masm_tests/components.rs @@ -20,9 +20,9 @@ fn wcm_add() { test.expect_wasm(expect_file![format!( "../../expected/components/{artifact_name}.wat" )]); - test.expect_wit_bind(expect_file![format!( - "../../expected/components/bindings/{artifact_name}_bindings.rs" - )]); + // test.expect_wit_bind(expect_file![format!( + // "../../expected/components/bindings/{artifact_name}_bindings.rs" + // )]); let wasm_bytes = test.wasm_bytes; let session = default_session(); @@ -51,9 +51,9 @@ fn wcm_inc() { test.expect_wasm(expect_file![format!( "../../expected/components/{artifact_name}.wat" )]); - test.expect_wit_bind(expect_file![format!( - "../../expected/components/bindings/{artifact_name}_bindings.rs" - )]); + // test.expect_wit_bind(expect_file![format!( + // "../../expected/components/bindings/{artifact_name}_bindings.rs" + // )]); let wasm_bytes = test.wasm_bytes; let session = default_session(); diff --git a/tests/integration/src/rust_masm_tests/sdk.rs b/tests/integration/src/rust_masm_tests/sdk.rs index 9a080874c..c47748a3e 100644 --- a/tests/integration/src/rust_masm_tests/sdk.rs +++ b/tests/integration/src/rust_masm_tests/sdk.rs @@ -17,9 +17,6 @@ fn sdk_basic_wallet() { test.expect_wasm(expect_file![format!( "../../expected/sdk_basic_wallet/{artifact_name}.wat" )]); - test.expect_wit_bind(expect_file![format!( - "../../expected/sdk_basic_wallet/bindings/{artifact_name}_bindings.rs" - )]); } #[test] @@ -29,7 +26,4 @@ fn sdk_basic_wallet_p2id_note() { test.expect_wasm(expect_file![format!( "../../expected/sdk_basic_wallet/{artifact_name}.wat" )]); - test.expect_wit_bind(expect_file![format!( - "../../expected/sdk_basic_wallet/bindings/{artifact_name}_bindings.rs" - )]); } diff --git a/tests/rust-apps-wasm/add-comp/Cargo.lock b/tests/rust-apps-wasm/add-comp/Cargo.lock index 8c82be014..7618a41ab 100644 --- a/tests/rust-apps-wasm/add-comp/Cargo.lock +++ b/tests/rust-apps-wasm/add-comp/Cargo.lock @@ -6,76 +6,73 @@ version = 3 name = "add-wasm-component" version = "0.1.0" dependencies = [ - "cargo-component-bindings", + "wee_alloc", + "wit-bindgen", ] [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] -name = "cargo-component-bindings" -version = "0.6.0" +name = "cfg-if" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545e48ba821e07f93c97aea897bee6d407de4d58947f914160131f3d78b2c704" -dependencies = [ - "cargo-component-macro", - "wit-bindgen", -] +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] -name = "cargo-component-macro" -version = "0.6.0" +name = "libc" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e198ee0b668e902b43b5e7d2e9620a3891d2632429b3ba66e1ceea455053cbf5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] -name = "proc-macro2" -version = "1.0.78" +name = "memory_units" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" -dependencies = [ - "unicode-ident", -] +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" [[package]] -name = "quote" -version = "1.0.33" +name = "wee_alloc" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" dependencies = [ - "proc-macro2", + "cfg-if", + "libc", + "memory_units", + "winapi", ] [[package]] -name = "syn" -version = "2.0.43" +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "unicode-ident" -version = "1.0.12" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wit-bindgen" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b76f1d099678b4f69402a421e888bbe71bf20320c2f3f3565d0e7484dbe5bc20" +checksum = "6237168d93497b26dacdab157b08ad2787d74cdce10f89735f791b2a225eba4d" dependencies = [ "bitflags", ] diff --git a/tests/rust-apps-wasm/add-comp/Cargo.toml b/tests/rust-apps-wasm/add-comp/Cargo.toml index 06d5cce1a..f2280b8d9 100644 --- a/tests/rust-apps-wasm/add-comp/Cargo.toml +++ b/tests/rust-apps-wasm/add-comp/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "add-wasm-component" version = "0.1.0" -rust-version = "1.71" authors = ["Miden Team"] license = "MIT" edition = "2021" publish = false [dependencies] -cargo-component-bindings = "0.6" +wit-bindgen = { version = "0.17.0", default-features = false, features = ["realloc"] } +wee_alloc = { version = "0.4.5", default-features = false} [lib] crate-type = ["cdylib"] diff --git a/tests/integration/expected/components/bindings/add_wasm_component_bindings.rs b/tests/rust-apps-wasm/add-comp/src/bindings.rs similarity index 93% rename from tests/integration/expected/components/bindings/add_wasm_component_bindings.rs rename to tests/rust-apps-wasm/add-comp/src/bindings.rs index 91052a4c7..3ca31dc0d 100644 --- a/tests/integration/expected/components/bindings/add_wasm_component_bindings.rs +++ b/tests/rust-apps-wasm/add-comp/src/bindings.rs @@ -16,7 +16,7 @@ pub mod exports { #[allow(non_snake_case)] unsafe extern "C" fn __export_add(arg0: i32,arg1: i32,) -> i32 { #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; // Before executing any other code, use this function to run all static // constructors, if they have not yet been run. This is a hack required @@ -30,10 +30,10 @@ pub mod exports { // https://github.com/bytecodealliance/preview2-prototyping/issues/99 // for more details. #[cfg(target_arch="wasm32")] - ::cargo_component_bindings::rt::run_ctors_once(); + wit_bindgen::rt::run_ctors_once(); let result0 = <_GuestImpl as Guest>::add(arg0 as u32, arg1 as u32); - ::cargo_component_bindings::rt::as_i32(result0) + wit_bindgen::rt::as_i32(result0) } }; use super::super::super::super::super::Component as _GuestImpl; diff --git a/tests/rust-apps-wasm/add-comp/src/lib.rs b/tests/rust-apps-wasm/add-comp/src/lib.rs index 7035b91e0..efaacdcf2 100644 --- a/tests/rust-apps-wasm/add-comp/src/lib.rs +++ b/tests/rust-apps-wasm/add-comp/src/lib.rs @@ -1,6 +1,14 @@ #![no_std] -cargo_component_bindings::generate!(); +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; + +#[panic_handler] +fn my_panic(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +mod bindings; use crate::bindings::exports::miden::add::add::Guest; diff --git a/tests/rust-apps-wasm/inc-comp/Cargo.lock b/tests/rust-apps-wasm/inc-comp/Cargo.lock index f9e284a9d..375542cfc 100644 --- a/tests/rust-apps-wasm/inc-comp/Cargo.lock +++ b/tests/rust-apps-wasm/inc-comp/Cargo.lock @@ -9,73 +9,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] -name = "cargo-component-bindings" -version = "0.6.0" +name = "cfg-if" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545e48ba821e07f93c97aea897bee6d407de4d58947f914160131f3d78b2c704" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "inc-wasm-component" +version = "0.1.0" dependencies = [ - "cargo-component-macro", + "wee_alloc", "wit-bindgen", ] [[package]] -name = "cargo-component-macro" -version = "0.6.0" +name = "libc" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e198ee0b668e902b43b5e7d2e9620a3891d2632429b3ba66e1ceea455053cbf5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] -name = "inc-wasm-component" -version = "0.1.0" -dependencies = [ - "cargo-component-bindings", -] +name = "memory_units" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" [[package]] -name = "proc-macro2" -version = "1.0.76" +name = "wee_alloc" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" dependencies = [ - "unicode-ident", + "cfg-if", + "libc", + "memory_units", + "winapi", ] [[package]] -name = "quote" -version = "1.0.35" +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "proc-macro2", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "syn" -version = "2.0.48" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] -name = "unicode-ident" -version = "1.0.12" +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wit-bindgen" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b76f1d099678b4f69402a421e888bbe71bf20320c2f3f3565d0e7484dbe5bc20" +checksum = "6237168d93497b26dacdab157b08ad2787d74cdce10f89735f791b2a225eba4d" dependencies = [ "bitflags", ] diff --git a/tests/rust-apps-wasm/inc-comp/Cargo.toml b/tests/rust-apps-wasm/inc-comp/Cargo.toml index 4ea9efaee..12874c460 100644 --- a/tests/rust-apps-wasm/inc-comp/Cargo.toml +++ b/tests/rust-apps-wasm/inc-comp/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "inc-wasm-component" version = "0.1.0" -rust-version = "1.71" authors = ["Miden Team"] license = "MIT" edition = "2021" publish = false [dependencies] -cargo-component-bindings = "0.6.0" +wit-bindgen = { version = "0.17.0", default-features = false, features = ["realloc"] } +wee_alloc = { version = "0.4.5", default-features = false} [lib] crate-type = ["cdylib"] @@ -20,4 +20,4 @@ package = "miden:inc" "miden:add" = { path = "../add-comp/wit" } [profile.release] -panic = "abort" \ No newline at end of file +panic = "abort" diff --git a/tests/integration/expected/components/bindings/inc_wasm_component_bindings.rs b/tests/rust-apps-wasm/inc-comp/src/bindings.rs similarity index 88% rename from tests/integration/expected/components/bindings/inc_wasm_component_bindings.rs rename to tests/rust-apps-wasm/inc-comp/src/bindings.rs index 91af37e17..f2d746c01 100644 --- a/tests/integration/expected/components/bindings/inc_wasm_component_bindings.rs +++ b/tests/rust-apps-wasm/inc-comp/src/bindings.rs @@ -6,7 +6,7 @@ const _: () = { #[allow(non_snake_case)] unsafe extern "C" fn __export_inc(arg0: i32,) -> i32 { #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; // Before executing any other code, use this function to run all static // constructors, if they have not yet been run. This is a hack required @@ -20,10 +20,10 @@ const _: () = { // https://github.com/bytecodealliance/preview2-prototyping/issues/99 // for more details. #[cfg(target_arch="wasm32")] - ::cargo_component_bindings::rt::run_ctors_once(); + wit_bindgen::rt::run_ctors_once(); let result0 = <_GuestImpl as Guest>::inc(arg0 as u32); - ::cargo_component_bindings::rt::as_i32(result0) + wit_bindgen::rt::as_i32(result0) } }; use super::Component as _GuestImpl; @@ -43,7 +43,7 @@ pub mod miden { pub fn add(a: u32,b: u32,) -> u32{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[cfg(target_arch = "wasm32")] @@ -55,7 +55,7 @@ pub mod miden { #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32, _: i32, ) -> i32{ unreachable!() } - let ret = wit_import(::cargo_component_bindings::rt::as_i32(a), ::cargo_component_bindings::rt::as_i32(b)); + let ret = wit_import(wit_bindgen::rt::as_i32(a), wit_bindgen::rt::as_i32(b)); ret as u32 } } diff --git a/tests/rust-apps-wasm/inc-comp/src/lib.rs b/tests/rust-apps-wasm/inc-comp/src/lib.rs index dfaf9917c..496cf71fb 100644 --- a/tests/rust-apps-wasm/inc-comp/src/lib.rs +++ b/tests/rust-apps-wasm/inc-comp/src/lib.rs @@ -1,6 +1,14 @@ #![no_std] -cargo_component_bindings::generate!(); +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; + +#[panic_handler] +fn my_panic(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +mod bindings; use crate::bindings::miden::add::add::add; use crate::bindings::Guest; diff --git a/tests/rust-apps-wasm/sdk/basic-wallet/Cargo.lock b/tests/rust-apps-wasm/sdk/basic-wallet/Cargo.lock index 45916307c..5d20bff2c 100644 --- a/tests/rust-apps-wasm/sdk/basic-wallet/Cargo.lock +++ b/tests/rust-apps-wasm/sdk/basic-wallet/Cargo.lock @@ -6,7 +6,8 @@ version = 3 name = "basic-wallet" version = "0.1.0" dependencies = [ - "cargo-component-bindings", + "wee_alloc", + "wit-bindgen", ] [[package]] @@ -16,66 +17,62 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] -name = "cargo-component-bindings" -version = "0.6.0" +name = "cfg-if" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545e48ba821e07f93c97aea897bee6d407de4d58947f914160131f3d78b2c704" -dependencies = [ - "cargo-component-macro", - "wit-bindgen", -] +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] -name = "cargo-component-macro" -version = "0.6.0" +name = "libc" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e198ee0b668e902b43b5e7d2e9620a3891d2632429b3ba66e1ceea455053cbf5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] -name = "proc-macro2" -version = "1.0.76" +name = "memory_units" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" -dependencies = [ - "unicode-ident", -] +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" [[package]] -name = "quote" -version = "1.0.33" +name = "wee_alloc" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" dependencies = [ - "proc-macro2", + "cfg-if", + "libc", + "memory_units", + "winapi", ] [[package]] -name = "syn" -version = "2.0.43" +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "unicode-ident" -version = "1.0.12" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wit-bindgen" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b76f1d099678b4f69402a421e888bbe71bf20320c2f3f3565d0e7484dbe5bc20" +checksum = "6237168d93497b26dacdab157b08ad2787d74cdce10f89735f791b2a225eba4d" dependencies = [ "bitflags", ] diff --git a/tests/rust-apps-wasm/sdk/basic-wallet/Cargo.toml b/tests/rust-apps-wasm/sdk/basic-wallet/Cargo.toml index f7546448c..5338a7d48 100644 --- a/tests/rust-apps-wasm/sdk/basic-wallet/Cargo.toml +++ b/tests/rust-apps-wasm/sdk/basic-wallet/Cargo.toml @@ -12,7 +12,8 @@ edition = "2021" publish = false [dependencies] -cargo-component-bindings = "0.6" +wit-bindgen = { version = "0.17.0", default-features = false, features = ["realloc"] } +wee_alloc = { version = "0.4.5", default-features = false} [lib] crate-type = ["cdylib"] diff --git a/tests/integration/expected/sdk_basic_wallet/bindings/basic_wallet_bindings.rs b/tests/rust-apps-wasm/sdk/basic-wallet/src/bindings.rs similarity index 92% rename from tests/integration/expected/sdk_basic_wallet/bindings/basic_wallet_bindings.rs rename to tests/rust-apps-wasm/sdk/basic-wallet/src/bindings.rs index cc6a9bcae..62ced834d 100644 --- a/tests/integration/expected/sdk_basic_wallet/bindings/basic_wallet_bindings.rs +++ b/tests/rust-apps-wasm/sdk/basic-wallet/src/bindings.rs @@ -111,7 +111,7 @@ pub mod miden { } } /// Inputs of the currently executed note, never exceeds 16 felts - pub type NoteInputs = ::cargo_component_bindings::rt::vec::Vec::; + pub type NoteInputs = wit_bindgen::rt::vec::Vec::; } @@ -133,7 +133,7 @@ pub mod miden { pub fn get_id() -> AccountId{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[cfg(target_arch = "wasm32")] @@ -154,7 +154,7 @@ pub mod miden { pub fn add_asset(asset: Asset,) -> Asset{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[repr(align(8))] @@ -165,12 +165,12 @@ pub mod miden { V2::Fungible(e) => { let super::super::super::miden::base::types::FungibleAsset{ asset:asset0, amount:amount0, } = e; - (0i32, ::cargo_component_bindings::rt::as_i64(asset0), ::cargo_component_bindings::rt::as_i64(amount0), 0i64, 0i64) + (0i32, wit_bindgen::rt::as_i64(asset0), wit_bindgen::rt::as_i64(amount0), 0i64, 0i64) }, V2::NonFungible(e) => { let (t1_0, t1_1, t1_2, t1_3, ) = e; - (1i32, ::cargo_component_bindings::rt::as_i64(t1_0), ::cargo_component_bindings::rt::as_i64(t1_1), ::cargo_component_bindings::rt::as_i64(t1_2), ::cargo_component_bindings::rt::as_i64(t1_3)) + (1i32, wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1), wit_bindgen::rt::as_i64(t1_2), wit_bindgen::rt::as_i64(t1_3)) }, }; let ptr4 = ret_area.as_mut_ptr() as i32; @@ -220,7 +220,7 @@ pub mod miden { pub fn remove_asset(asset: Asset,) -> Asset{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[repr(align(8))] @@ -231,12 +231,12 @@ pub mod miden { V2::Fungible(e) => { let super::super::super::miden::base::types::FungibleAsset{ asset:asset0, amount:amount0, } = e; - (0i32, ::cargo_component_bindings::rt::as_i64(asset0), ::cargo_component_bindings::rt::as_i64(amount0), 0i64, 0i64) + (0i32, wit_bindgen::rt::as_i64(asset0), wit_bindgen::rt::as_i64(amount0), 0i64, 0i64) }, V2::NonFungible(e) => { let (t1_0, t1_1, t1_2, t1_3, ) = e; - (1i32, ::cargo_component_bindings::rt::as_i64(t1_0), ::cargo_component_bindings::rt::as_i64(t1_1), ::cargo_component_bindings::rt::as_i64(t1_2), ::cargo_component_bindings::rt::as_i64(t1_3)) + (1i32, wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1), wit_bindgen::rt::as_i64(t1_2), wit_bindgen::rt::as_i64(t1_3)) }, }; let ptr4 = ret_area.as_mut_ptr() as i32; @@ -290,19 +290,19 @@ pub mod miden { pub fn create_note(asset: Asset,tag: Tag,recipient: Recipient,){ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { use super::super::super::miden::base::types::Asset as V2; let (result3_0,result3_1,result3_2,result3_3,result3_4,) = match asset { V2::Fungible(e) => { let super::super::super::miden::base::types::FungibleAsset{ asset:asset0, amount:amount0, } = e; - (0i32, ::cargo_component_bindings::rt::as_i64(asset0), ::cargo_component_bindings::rt::as_i64(amount0), 0i64, 0i64) + (0i32, wit_bindgen::rt::as_i64(asset0), wit_bindgen::rt::as_i64(amount0), 0i64, 0i64) }, V2::NonFungible(e) => { let (t1_0, t1_1, t1_2, t1_3, ) = e; - (1i32, ::cargo_component_bindings::rt::as_i64(t1_0), ::cargo_component_bindings::rt::as_i64(t1_1), ::cargo_component_bindings::rt::as_i64(t1_2), ::cargo_component_bindings::rt::as_i64(t1_3)) + (1i32, wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1), wit_bindgen::rt::as_i64(t1_2), wit_bindgen::rt::as_i64(t1_3)) }, }; let (t4_0, t4_1, t4_2, t4_3, ) = recipient; @@ -316,7 +316,7 @@ pub mod miden { #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, ){ unreachable!() } - wit_import(result3_0, result3_1, result3_2, result3_3, result3_4, ::cargo_component_bindings::rt::as_i64(tag), ::cargo_component_bindings::rt::as_i64(t4_0), ::cargo_component_bindings::rt::as_i64(t4_1), ::cargo_component_bindings::rt::as_i64(t4_2), ::cargo_component_bindings::rt::as_i64(t4_3)); + wit_import(result3_0, result3_1, result3_2, result3_3, result3_4, wit_bindgen::rt::as_i64(tag), wit_bindgen::rt::as_i64(t4_0), wit_bindgen::rt::as_i64(t4_1), wit_bindgen::rt::as_i64(t4_2), wit_bindgen::rt::as_i64(t4_3)); } } #[allow(unused_unsafe, clippy::all)] @@ -324,7 +324,7 @@ pub mod miden { pub fn get_inputs() -> NoteInputs{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[repr(align(4))] @@ -349,10 +349,10 @@ pub mod miden { } #[allow(unused_unsafe, clippy::all)] /// Get the assets of the currently executing note - pub fn get_assets() -> ::cargo_component_bindings::rt::vec::Vec::{ + pub fn get_assets() -> wit_bindgen::rt::vec::Vec::{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[repr(align(4))] @@ -410,7 +410,7 @@ pub mod miden { }; result11.push(e11); } - ::cargo_component_bindings::rt::dealloc(base11, (len11 as usize) * 40, 8); + wit_bindgen::rt::dealloc(base11, (len11 as usize) * 40, 8); result11 } } @@ -451,7 +451,7 @@ pub mod exports { #[allow(non_snake_case)] unsafe extern "C" fn __export_receive_asset(arg0: i32,arg1: i64,arg2: i64,arg3: i64,arg4: i64,) { #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; // Before executing any other code, use this function to run all static // constructors, if they have not yet been run. This is a hack required @@ -465,7 +465,7 @@ pub mod exports { // https://github.com/bytecodealliance/preview2-prototyping/issues/99 // for more details. #[cfg(target_arch="wasm32")] - ::cargo_component_bindings::rt::run_ctors_once(); + wit_bindgen::rt::run_ctors_once(); use super::super::super::super::miden::base::types::Asset as V0; let v0 = match arg0 { @@ -492,7 +492,7 @@ pub mod exports { #[allow(non_snake_case)] unsafe extern "C" fn __export_send_asset(arg0: i32,arg1: i64,arg2: i64,arg3: i64,arg4: i64,arg5: i64,arg6: i64,arg7: i64,arg8: i64,arg9: i64,) { #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; // Before executing any other code, use this function to run all static // constructors, if they have not yet been run. This is a hack required @@ -506,7 +506,7 @@ pub mod exports { // https://github.com/bytecodealliance/preview2-prototyping/issues/99 // for more details. #[cfg(target_arch="wasm32")] - ::cargo_component_bindings::rt::run_ctors_once(); + wit_bindgen::rt::run_ctors_once(); use super::super::super::super::miden::base::types::Asset as V0; let v0 = match arg0 { diff --git a/tests/rust-apps-wasm/sdk/basic-wallet/src/lib.rs b/tests/rust-apps-wasm/sdk/basic-wallet/src/lib.rs index 1982653ef..8f3ec9824 100644 --- a/tests/rust-apps-wasm/sdk/basic-wallet/src/lib.rs +++ b/tests/rust-apps-wasm/sdk/basic-wallet/src/lib.rs @@ -1,6 +1,15 @@ #![no_std] -cargo_component_bindings::generate!(); +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; + +#[panic_handler] +fn my_panic(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +#[allow(dead_code)] +mod bindings; use bindings::exports::miden::basic_wallet::basic_wallet::{Asset, Guest, Recipient, Tag}; use bindings::miden::base::tx_kernel::{add_asset, create_note, remove_asset}; diff --git a/tests/rust-apps-wasm/sdk/p2id-note/Cargo.lock b/tests/rust-apps-wasm/sdk/p2id-note/Cargo.lock index d06b1e0bd..989db9e2f 100644 --- a/tests/rust-apps-wasm/sdk/p2id-note/Cargo.lock +++ b/tests/rust-apps-wasm/sdk/p2id-note/Cargo.lock @@ -6,7 +6,8 @@ version = 3 name = "basic-wallet-p2id-note" version = "0.1.0" dependencies = [ - "cargo-component-bindings", + "wee_alloc", + "wit-bindgen", ] [[package]] @@ -16,66 +17,62 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] -name = "cargo-component-bindings" -version = "0.6.0" +name = "cfg-if" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545e48ba821e07f93c97aea897bee6d407de4d58947f914160131f3d78b2c704" -dependencies = [ - "cargo-component-macro", - "wit-bindgen", -] +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] -name = "cargo-component-macro" -version = "0.6.0" +name = "libc" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e198ee0b668e902b43b5e7d2e9620a3891d2632429b3ba66e1ceea455053cbf5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] -name = "proc-macro2" -version = "1.0.76" +name = "memory_units" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" -dependencies = [ - "unicode-ident", -] +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" [[package]] -name = "quote" -version = "1.0.33" +name = "wee_alloc" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" dependencies = [ - "proc-macro2", + "cfg-if", + "libc", + "memory_units", + "winapi", ] [[package]] -name = "syn" -version = "2.0.43" +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "unicode-ident" -version = "1.0.12" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wit-bindgen" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b76f1d099678b4f69402a421e888bbe71bf20320c2f3f3565d0e7484dbe5bc20" +checksum = "6237168d93497b26dacdab157b08ad2787d74cdce10f89735f791b2a225eba4d" dependencies = [ "bitflags", ] diff --git a/tests/rust-apps-wasm/sdk/p2id-note/Cargo.toml b/tests/rust-apps-wasm/sdk/p2id-note/Cargo.toml index dfafe80c4..160aeccfa 100644 --- a/tests/rust-apps-wasm/sdk/p2id-note/Cargo.toml +++ b/tests/rust-apps-wasm/sdk/p2id-note/Cargo.toml @@ -15,7 +15,8 @@ publish = false crate-type = ["cdylib"] [dependencies] -cargo-component-bindings = "0.6" +wit-bindgen = { version = "0.17.0", default-features = false, features = ["realloc"] } +wee_alloc = { version = "0.4.5", default-features = false} [package.metadata.component] package = "miden:basic-wallet-p2id-note" diff --git a/tests/integration/expected/sdk_basic_wallet/bindings/basic_wallet_p2id_note_bindings.rs b/tests/rust-apps-wasm/sdk/p2id-note/src/bindings.rs similarity index 88% rename from tests/integration/expected/sdk_basic_wallet/bindings/basic_wallet_p2id_note_bindings.rs rename to tests/rust-apps-wasm/sdk/p2id-note/src/bindings.rs index 35e0ffe86..0e2b1ac05 100644 --- a/tests/integration/expected/sdk_basic_wallet/bindings/basic_wallet_p2id_note_bindings.rs +++ b/tests/rust-apps-wasm/sdk/p2id-note/src/bindings.rs @@ -111,7 +111,7 @@ pub mod miden { } } /// Inputs of the currently executed note, never exceeds 16 felts - pub type NoteInputs = ::cargo_component_bindings::rt::vec::Vec::; + pub type NoteInputs = wit_bindgen::rt::vec::Vec::; } @@ -133,7 +133,7 @@ pub mod miden { pub fn get_id() -> AccountId{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[cfg(target_arch = "wasm32")] @@ -154,7 +154,7 @@ pub mod miden { pub fn add_asset(asset: Asset,) -> Asset{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[repr(align(8))] @@ -165,12 +165,12 @@ pub mod miden { V2::Fungible(e) => { let super::super::super::miden::base::types::FungibleAsset{ asset:asset0, amount:amount0, } = e; - (0i32, ::cargo_component_bindings::rt::as_i64(asset0), ::cargo_component_bindings::rt::as_i64(amount0), 0i64, 0i64) + (0i32, wit_bindgen::rt::as_i64(asset0), wit_bindgen::rt::as_i64(amount0), 0i64, 0i64) }, V2::NonFungible(e) => { let (t1_0, t1_1, t1_2, t1_3, ) = e; - (1i32, ::cargo_component_bindings::rt::as_i64(t1_0), ::cargo_component_bindings::rt::as_i64(t1_1), ::cargo_component_bindings::rt::as_i64(t1_2), ::cargo_component_bindings::rt::as_i64(t1_3)) + (1i32, wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1), wit_bindgen::rt::as_i64(t1_2), wit_bindgen::rt::as_i64(t1_3)) }, }; let ptr4 = ret_area.as_mut_ptr() as i32; @@ -220,7 +220,7 @@ pub mod miden { pub fn remove_asset(asset: Asset,) -> Asset{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[repr(align(8))] @@ -231,12 +231,12 @@ pub mod miden { V2::Fungible(e) => { let super::super::super::miden::base::types::FungibleAsset{ asset:asset0, amount:amount0, } = e; - (0i32, ::cargo_component_bindings::rt::as_i64(asset0), ::cargo_component_bindings::rt::as_i64(amount0), 0i64, 0i64) + (0i32, wit_bindgen::rt::as_i64(asset0), wit_bindgen::rt::as_i64(amount0), 0i64, 0i64) }, V2::NonFungible(e) => { let (t1_0, t1_1, t1_2, t1_3, ) = e; - (1i32, ::cargo_component_bindings::rt::as_i64(t1_0), ::cargo_component_bindings::rt::as_i64(t1_1), ::cargo_component_bindings::rt::as_i64(t1_2), ::cargo_component_bindings::rt::as_i64(t1_3)) + (1i32, wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1), wit_bindgen::rt::as_i64(t1_2), wit_bindgen::rt::as_i64(t1_3)) }, }; let ptr4 = ret_area.as_mut_ptr() as i32; @@ -290,19 +290,19 @@ pub mod miden { pub fn create_note(asset: Asset,tag: Tag,recipient: Recipient,){ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { use super::super::super::miden::base::types::Asset as V2; let (result3_0,result3_1,result3_2,result3_3,result3_4,) = match asset { V2::Fungible(e) => { let super::super::super::miden::base::types::FungibleAsset{ asset:asset0, amount:amount0, } = e; - (0i32, ::cargo_component_bindings::rt::as_i64(asset0), ::cargo_component_bindings::rt::as_i64(amount0), 0i64, 0i64) + (0i32, wit_bindgen::rt::as_i64(asset0), wit_bindgen::rt::as_i64(amount0), 0i64, 0i64) }, V2::NonFungible(e) => { let (t1_0, t1_1, t1_2, t1_3, ) = e; - (1i32, ::cargo_component_bindings::rt::as_i64(t1_0), ::cargo_component_bindings::rt::as_i64(t1_1), ::cargo_component_bindings::rt::as_i64(t1_2), ::cargo_component_bindings::rt::as_i64(t1_3)) + (1i32, wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1), wit_bindgen::rt::as_i64(t1_2), wit_bindgen::rt::as_i64(t1_3)) }, }; let (t4_0, t4_1, t4_2, t4_3, ) = recipient; @@ -316,7 +316,7 @@ pub mod miden { #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, ){ unreachable!() } - wit_import(result3_0, result3_1, result3_2, result3_3, result3_4, ::cargo_component_bindings::rt::as_i64(tag), ::cargo_component_bindings::rt::as_i64(t4_0), ::cargo_component_bindings::rt::as_i64(t4_1), ::cargo_component_bindings::rt::as_i64(t4_2), ::cargo_component_bindings::rt::as_i64(t4_3)); + wit_import(result3_0, result3_1, result3_2, result3_3, result3_4, wit_bindgen::rt::as_i64(tag), wit_bindgen::rt::as_i64(t4_0), wit_bindgen::rt::as_i64(t4_1), wit_bindgen::rt::as_i64(t4_2), wit_bindgen::rt::as_i64(t4_3)); } } #[allow(unused_unsafe, clippy::all)] @@ -324,7 +324,7 @@ pub mod miden { pub fn get_inputs() -> NoteInputs{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[repr(align(4))] @@ -349,10 +349,10 @@ pub mod miden { } #[allow(unused_unsafe, clippy::all)] /// Get the assets of the currently executing note - pub fn get_assets() -> ::cargo_component_bindings::rt::vec::Vec::{ + pub fn get_assets() -> wit_bindgen::rt::vec::Vec::{ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { #[repr(align(4))] @@ -410,7 +410,7 @@ pub mod miden { }; result11.push(e11); } - ::cargo_component_bindings::rt::dealloc(base11, (len11 as usize) * 40, 8); + wit_bindgen::rt::dealloc(base11, (len11 as usize) * 40, 8); result11 } } @@ -433,19 +433,19 @@ pub mod miden { pub fn receive_asset(asset: Asset,){ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { use super::super::super::miden::base::types::Asset as V2; let (result3_0,result3_1,result3_2,result3_3,result3_4,) = match asset { V2::Fungible(e) => { let super::super::super::miden::base::types::FungibleAsset{ asset:asset0, amount:amount0, } = e; - (0i32, ::cargo_component_bindings::rt::as_i64(asset0), ::cargo_component_bindings::rt::as_i64(amount0), 0i64, 0i64) + (0i32, wit_bindgen::rt::as_i64(asset0), wit_bindgen::rt::as_i64(amount0), 0i64, 0i64) }, V2::NonFungible(e) => { let (t1_0, t1_1, t1_2, t1_3, ) = e; - (1i32, ::cargo_component_bindings::rt::as_i64(t1_0), ::cargo_component_bindings::rt::as_i64(t1_1), ::cargo_component_bindings::rt::as_i64(t1_2), ::cargo_component_bindings::rt::as_i64(t1_3)) + (1i32, wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1), wit_bindgen::rt::as_i64(t1_2), wit_bindgen::rt::as_i64(t1_3)) }, }; @@ -465,19 +465,19 @@ pub mod miden { pub fn send_asset(asset: Asset,tag: Tag,recipient: Recipient,){ #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; unsafe { use super::super::super::miden::base::types::Asset as V2; let (result3_0,result3_1,result3_2,result3_3,result3_4,) = match asset { V2::Fungible(e) => { let super::super::super::miden::base::types::FungibleAsset{ asset:asset0, amount:amount0, } = e; - (0i32, ::cargo_component_bindings::rt::as_i64(asset0), ::cargo_component_bindings::rt::as_i64(amount0), 0i64, 0i64) + (0i32, wit_bindgen::rt::as_i64(asset0), wit_bindgen::rt::as_i64(amount0), 0i64, 0i64) }, V2::NonFungible(e) => { let (t1_0, t1_1, t1_2, t1_3, ) = e; - (1i32, ::cargo_component_bindings::rt::as_i64(t1_0), ::cargo_component_bindings::rt::as_i64(t1_1), ::cargo_component_bindings::rt::as_i64(t1_2), ::cargo_component_bindings::rt::as_i64(t1_3)) + (1i32, wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1), wit_bindgen::rt::as_i64(t1_2), wit_bindgen::rt::as_i64(t1_3)) }, }; let (t4_0, t4_1, t4_2, t4_3, ) = recipient; @@ -491,7 +491,7 @@ pub mod miden { #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, ){ unreachable!() } - wit_import(result3_0, result3_1, result3_2, result3_3, result3_4, ::cargo_component_bindings::rt::as_i64(tag), ::cargo_component_bindings::rt::as_i64(t4_0), ::cargo_component_bindings::rt::as_i64(t4_1), ::cargo_component_bindings::rt::as_i64(t4_2), ::cargo_component_bindings::rt::as_i64(t4_3)); + wit_import(result3_0, result3_1, result3_2, result3_3, result3_4, wit_bindgen::rt::as_i64(tag), wit_bindgen::rt::as_i64(t4_0), wit_bindgen::rt::as_i64(t4_1), wit_bindgen::rt::as_i64(t4_2), wit_bindgen::rt::as_i64(t4_3)); } } @@ -516,7 +516,7 @@ pub mod exports { #[allow(non_snake_case)] unsafe extern "C" fn __export_note_script() { #[allow(unused_imports)] - use ::cargo_component_bindings::rt::{alloc, vec::Vec, string::String}; + use wit_bindgen::rt::{alloc, vec::Vec, string::String}; // Before executing any other code, use this function to run all static // constructors, if they have not yet been run. This is a hack required @@ -530,7 +530,7 @@ pub mod exports { // https://github.com/bytecodealliance/preview2-prototyping/issues/99 // for more details. #[cfg(target_arch="wasm32")] - ::cargo_component_bindings::rt::run_ctors_once(); + wit_bindgen::rt::run_ctors_once(); <_GuestImpl as Guest>::note_script(); } diff --git a/tests/rust-apps-wasm/sdk/p2id-note/src/lib.rs b/tests/rust-apps-wasm/sdk/p2id-note/src/lib.rs index 2a3904e6a..b3a77f5ca 100644 --- a/tests/rust-apps-wasm/sdk/p2id-note/src/lib.rs +++ b/tests/rust-apps-wasm/sdk/p2id-note/src/lib.rs @@ -1,6 +1,15 @@ #![no_std] -cargo_component_bindings::generate!(); +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; + +#[panic_handler] +fn my_panic(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +#[allow(dead_code)] +mod bindings; use bindings::miden::base::tx_kernel::{get_assets, get_id, get_inputs}; use bindings::miden::basic_wallet::basic_wallet::receive_asset; diff --git a/tests/rust-apps-wasm/sdk/sdk/Cargo.lock b/tests/rust-apps-wasm/sdk/sdk/Cargo.lock index 74b0438ac..8d3c1ab17 100644 --- a/tests/rust-apps-wasm/sdk/sdk/Cargo.lock +++ b/tests/rust-apps-wasm/sdk/sdk/Cargo.lock @@ -9,73 +9,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] -name = "cargo-component-bindings" -version = "0.6.0" +name = "cfg-if" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545e48ba821e07f93c97aea897bee6d407de4d58947f914160131f3d78b2c704" -dependencies = [ - "cargo-component-macro", - "wit-bindgen", -] +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] -name = "cargo-component-macro" -version = "0.6.0" +name = "libc" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e198ee0b668e902b43b5e7d2e9620a3891d2632429b3ba66e1ceea455053cbf5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "memory_units" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" [[package]] name = "miden-sdk" version = "0.1.0" dependencies = [ - "cargo-component-bindings", + "wee_alloc", + "wit-bindgen", ] [[package]] -name = "proc-macro2" -version = "1.0.76" +name = "wee_alloc" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" dependencies = [ - "unicode-ident", + "cfg-if", + "libc", + "memory_units", + "winapi", ] [[package]] -name = "quote" -version = "1.0.33" +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "proc-macro2", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "syn" -version = "2.0.43" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] -name = "unicode-ident" -version = "1.0.12" +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wit-bindgen" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b76f1d099678b4f69402a421e888bbe71bf20320c2f3f3565d0e7484dbe5bc20" +checksum = "6237168d93497b26dacdab157b08ad2787d74cdce10f89735f791b2a225eba4d" dependencies = [ "bitflags", ] diff --git a/tests/rust-apps-wasm/sdk/sdk/Cargo.toml b/tests/rust-apps-wasm/sdk/sdk/Cargo.toml index e35b0ef4d..c3ce33738 100644 --- a/tests/rust-apps-wasm/sdk/sdk/Cargo.toml +++ b/tests/rust-apps-wasm/sdk/sdk/Cargo.toml @@ -12,7 +12,9 @@ publish = false [workspace] [dependencies] -cargo-component-bindings = "0.6" +wit-bindgen = { version = "0.17.0", default-features = false, features = ["realloc"] } +wee_alloc = { version = "0.4.5", default-features = false} + [lib] crate-type = ["cdylib"] diff --git a/tests/rust-apps-wasm/sdk/sdk/src/bindings.rs b/tests/rust-apps-wasm/sdk/sdk/src/bindings.rs new file mode 100644 index 000000000..d33e05860 --- /dev/null +++ b/tests/rust-apps-wasm/sdk/sdk/src/bindings.rs @@ -0,0 +1,27 @@ +// Generated by `wit-bindgen` 0.16.0. DO NOT EDIT! +pub mod exports { + pub mod miden { + pub mod base { + + #[allow(clippy::all)] + pub mod types { + #[used] + #[doc(hidden)] + #[cfg(target_arch = "wasm32")] + static __FORCE_SECTION_REF: fn() = super::super::super::super::__link_section; + + } + + } + } +} + +#[cfg(target_arch = "wasm32")] +#[link_section = "component-type:base-world"] +#[doc(hidden)] +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 5928] = [3, 0, 10, 98, 97, 115, 101, 45, 119, 111, 114, 108, 100, 0, 97, 115, 109, 13, 0, 1, 0, 7, 226, 1, 1, 65, 2, 1, 66, 14, 1, 119, 4, 0, 4, 102, 101, 108, 116, 3, 0, 0, 1, 111, 4, 1, 1, 1, 1, 4, 0, 4, 119, 111, 114, 100, 3, 0, 2, 4, 0, 10, 97, 99, 99, 111, 117, 110, 116, 45, 105, 100, 3, 0, 1, 4, 0, 9, 114, 101, 99, 105, 112, 105, 101, 110, 116, 3, 0, 3, 4, 0, 3, 116, 97, 103, 3, 0, 1, 1, 114, 2, 5, 97, 115, 115, 101, 116, 4, 6, 97, 109, 111, 117, 110, 116, 119, 4, 0, 14, 102, 117, 110, 103, 105, 98, 108, 101, 45, 97, 115, 115, 101, 116, 3, 0, 7, 4, 0, 18, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 45, 97, 115, 115, 101, 116, 3, 0, 3, 1, 113, 2, 8, 102, 117, 110, 103, 105, 98, 108, 101, 1, 8, 0, 12, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 1, 9, 0, 4, 0, 5, 97, 115, 115, 101, 116, 3, 0, 10, 1, 112, 1, 4, 0, 11, 110, 111, 116, 101, 45, 105, 110, 112, 117, 116, 115, 3, 0, 12, 4, 1, 22, 109, 105, 100, 101, 110, 58, 98, 97, 115, 101, 47, 116, 121, 112, 101, 115, 64, 49, 46, 48, 46, 48, 5, 0, 11, 11, 1, 0, 5, 116, 121, 112, 101, 115, 3, 0, 0, 7, 178, 4, 1, 65, 9, 1, 66, 14, 1, 119, 4, 0, 4, 102, 101, 108, 116, 3, 0, 0, 1, 111, 4, 1, 1, 1, 1, 4, 0, 4, 119, 111, 114, 100, 3, 0, 2, 4, 0, 10, 97, 99, 99, 111, 117, 110, 116, 45, 105, 100, 3, 0, 1, 4, 0, 9, 114, 101, 99, 105, 112, 105, 101, 110, 116, 3, 0, 3, 4, 0, 3, 116, 97, 103, 3, 0, 1, 1, 114, 2, 5, 97, 115, 115, 101, 116, 4, 6, 97, 109, 111, 117, 110, 116, 119, 4, 0, 14, 102, 117, 110, 103, 105, 98, 108, 101, 45, 97, 115, 115, 101, 116, 3, 0, 7, 4, 0, 18, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 45, 97, 115, 115, 101, 116, 3, 0, 3, 1, 113, 2, 8, 102, 117, 110, 103, 105, 98, 108, 101, 1, 8, 0, 12, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 1, 9, 0, 4, 0, 5, 97, 115, 115, 101, 116, 3, 0, 10, 1, 112, 1, 4, 0, 11, 110, 111, 116, 101, 45, 105, 110, 112, 117, 116, 115, 3, 0, 12, 3, 1, 22, 109, 105, 100, 101, 110, 58, 98, 97, 115, 101, 47, 116, 121, 112, 101, 115, 64, 49, 46, 48, 46, 48, 5, 0, 2, 3, 0, 0, 5, 97, 115, 115, 101, 116, 2, 3, 0, 0, 3, 116, 97, 103, 2, 3, 0, 0, 9, 114, 101, 99, 105, 112, 105, 101, 110, 116, 2, 3, 0, 0, 11, 110, 111, 116, 101, 45, 105, 110, 112, 117, 116, 115, 2, 3, 0, 0, 10, 97, 99, 99, 111, 117, 110, 116, 45, 105, 100, 1, 66, 22, 2, 3, 2, 1, 1, 4, 0, 5, 97, 115, 115, 101, 116, 3, 0, 0, 2, 3, 2, 1, 2, 4, 0, 3, 116, 97, 103, 3, 0, 2, 2, 3, 2, 1, 3, 4, 0, 9, 114, 101, 99, 105, 112, 105, 101, 110, 116, 3, 0, 4, 2, 3, 2, 1, 4, 4, 0, 11, 110, 111, 116, 101, 45, 105, 110, 112, 117, 116, 115, 3, 0, 6, 2, 3, 2, 1, 5, 4, 0, 10, 97, 99, 99, 111, 117, 110, 116, 45, 105, 100, 3, 0, 8, 1, 64, 0, 0, 9, 4, 0, 6, 103, 101, 116, 45, 105, 100, 1, 10, 1, 64, 1, 5, 97, 115, 115, 101, 116, 1, 0, 1, 4, 0, 9, 97, 100, 100, 45, 97, 115, 115, 101, 116, 1, 11, 4, 0, 12, 114, 101, 109, 111, 118, 101, 45, 97, 115, 115, 101, 116, 1, 11, 1, 64, 3, 5, 97, 115, 115, 101, 116, 1, 3, 116, 97, 103, 3, 9, 114, 101, 99, 105, 112, 105, 101, 110, 116, 5, 1, 0, 4, 0, 11, 99, 114, 101, 97, 116, 101, 45, 110, 111, 116, 101, 1, 12, 1, 64, 0, 0, 7, 4, 0, 10, 103, 101, 116, 45, 105, 110, 112, 117, 116, 115, 1, 13, 1, 112, 1, 1, 64, 0, 0, 14, 4, 0, 10, 103, 101, 116, 45, 97, 115, 115, 101, 116, 115, 1, 15, 4, 1, 26, 109, 105, 100, 101, 110, 58, 98, 97, 115, 101, 47, 116, 120, 45, 107, 101, 114, 110, 101, 108, 64, 49, 46, 48, 46, 48, 5, 6, 11, 15, 1, 0, 9, 116, 120, 45, 107, 101, 114, 110, 101, 108, 3, 2, 0, 7, 35, 1, 65, 2, 1, 66, 0, 4, 1, 24, 109, 105, 100, 101, 110, 58, 98, 97, 115, 101, 47, 97, 99, 99, 111, 117, 110, 116, 64, 49, 46, 48, 46, 48, 5, 0, 11, 13, 1, 0, 7, 97, 99, 99, 111, 117, 110, 116, 3, 4, 0, 7, 53, 1, 65, 2, 1, 66, 2, 1, 64, 0, 1, 0, 4, 0, 11, 110, 111, 116, 101, 45, 115, 99, 114, 105, 112, 116, 1, 0, 4, 1, 21, 109, 105, 100, 101, 110, 58, 98, 97, 115, 101, 47, 110, 111, 116, 101, 64, 49, 46, 48, 46, 48, 5, 0, 11, 10, 1, 0, 4, 110, 111, 116, 101, 3, 6, 0, 7, 133, 2, 1, 65, 2, 1, 65, 2, 1, 66, 14, 1, 119, 4, 0, 4, 102, 101, 108, 116, 3, 0, 0, 1, 111, 4, 1, 1, 1, 1, 4, 0, 4, 119, 111, 114, 100, 3, 0, 2, 4, 0, 10, 97, 99, 99, 111, 117, 110, 116, 45, 105, 100, 3, 0, 1, 4, 0, 9, 114, 101, 99, 105, 112, 105, 101, 110, 116, 3, 0, 3, 4, 0, 3, 116, 97, 103, 3, 0, 1, 1, 114, 2, 5, 97, 115, 115, 101, 116, 4, 6, 97, 109, 111, 117, 110, 116, 119, 4, 0, 14, 102, 117, 110, 103, 105, 98, 108, 101, 45, 97, 115, 115, 101, 116, 3, 0, 7, 4, 0, 18, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 45, 97, 115, 115, 101, 116, 3, 0, 3, 1, 113, 2, 8, 102, 117, 110, 103, 105, 98, 108, 101, 1, 8, 0, 12, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 1, 9, 0, 4, 0, 5, 97, 115, 115, 101, 116, 3, 0, 10, 1, 112, 1, 4, 0, 11, 110, 111, 116, 101, 45, 105, 110, 112, 117, 116, 115, 3, 0, 12, 4, 1, 22, 109, 105, 100, 101, 110, 58, 98, 97, 115, 101, 47, 116, 121, 112, 101, 115, 64, 49, 46, 48, 46, 48, 5, 0, 4, 1, 27, 109, 105, 100, 101, 110, 58, 98, 97, 115, 101, 47, 98, 97, 115, 101, 45, 119, 111, 114, 108, 100, 64, 49, 46, 48, 46, 48, 4, 0, 11, 16, 1, 0, 10, 98, 97, 115, 101, 45, 119, 111, 114, 108, 100, 3, 8, 0, 0, 255, 35, 12, 112, 97, 99, 107, 97, 103, 101, 45, 100, 111, 99, 115, 0, 123, 34, 105, 110, 116, 101, 114, 102, 97, 99, 101, 115, 34, 58, 123, 34, 116, 121, 112, 101, 115, 34, 58, 123, 34, 116, 121, 112, 101, 115, 34, 58, 123, 34, 102, 101, 108, 116, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 82, 101, 112, 114, 101, 115, 101, 110, 116, 115, 32, 98, 97, 115, 101, 32, 102, 105, 101, 108, 100, 32, 101, 108, 101, 109, 101, 110, 116, 32, 105, 110, 32, 116, 104, 101, 32, 102, 105, 101, 108, 100, 32, 117, 115, 105, 110, 103, 32, 77, 111, 110, 116, 103, 111, 109, 101, 114, 121, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 46, 92, 110, 73, 110, 116, 101, 114, 110, 97, 108, 32, 118, 97, 108, 117, 101, 115, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 120, 32, 42, 32, 82, 32, 109, 111, 100, 32, 77, 32, 119, 104, 101, 114, 101, 32, 82, 32, 61, 32, 50, 94, 54, 52, 32, 109, 111, 100, 32, 77, 32, 97, 110, 100, 32, 120, 32, 105, 110, 32, 91, 48, 44, 32, 77, 41, 46, 92, 110, 84, 104, 101, 32, 98, 97, 99, 107, 105, 110, 103, 32, 116, 121, 112, 101, 32, 105, 115, 32, 96, 117, 54, 52, 96, 32, 98, 117, 116, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 110, 97, 108, 32, 118, 97, 108, 117, 101, 115, 32, 97, 114, 101, 32, 97, 108, 119, 97, 121, 115, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 32, 77, 41, 46, 92, 110, 70, 105, 101, 108, 100, 32, 109, 111, 100, 117, 108, 117, 115, 32, 77, 32, 61, 32, 50, 94, 54, 52, 32, 45, 32, 50, 94, 51, 50, 32, 43, 32, 49, 34, 125, 44, 34, 119, 111, 114, 100, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 65, 32, 103, 114, 111, 117, 112, 32, 111, 102, 32, 102, 111, 117, 114, 32, 102, 105, 101, 108, 100, 32, 101, 108, 101, 109, 101, 110, 116, 115, 32, 105, 110, 32, 116, 104, 101, 32, 77, 105, 100, 101, 110, 32, 98, 97, 115, 101, 32, 102, 105, 101, 108, 100, 46, 34, 125, 44, 34, 97, 99, 99, 111, 117, 110, 116, 45, 105, 100, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 85, 110, 105, 113, 117, 101, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 111, 102, 32, 97, 110, 32, 97, 99, 99, 111, 117, 110, 116, 46, 92, 110, 92, 110, 65, 99, 99, 111, 117, 110, 116, 32, 73, 68, 32, 99, 111, 110, 115, 105, 115, 116, 115, 32, 111, 102, 32, 49, 32, 102, 105, 101, 108, 100, 32, 101, 108, 101, 109, 101, 110, 116, 32, 40, 126, 54, 52, 32, 98, 105, 116, 115, 41, 46, 32, 84, 104, 105, 115, 32, 102, 105, 101, 108, 100, 32, 101, 108, 101, 109, 101, 110, 116, 32, 117, 110, 105, 113, 117, 101, 108, 121, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 115, 32, 97, 92, 110, 115, 105, 110, 103, 108, 101, 32, 97, 99, 99, 111, 117, 110, 116, 32, 97, 110, 100, 32, 97, 108, 115, 111, 32, 115, 112, 101, 99, 105, 102, 105, 101, 115, 32, 116, 104, 101, 32, 116, 121, 112, 101, 32, 111, 102, 32, 116, 104, 101, 32, 117, 110, 100, 101, 114, 108, 121, 105, 110, 103, 32, 97, 99, 99, 111, 117, 110, 116, 46, 32, 83, 112, 101, 99, 105, 102, 105, 99, 97, 108, 108, 121, 58, 92, 110, 45, 32, 84, 104, 101, 32, 116, 119, 111, 32, 109, 111, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 98, 105, 116, 115, 32, 111, 102, 32, 116, 104, 101, 32, 73, 68, 32, 115, 112, 101, 99, 105, 102, 121, 32, 116, 104, 101, 32, 116, 121, 112, 101, 32, 111, 102, 32, 116, 104, 101, 32, 97, 99, 99, 111, 117, 110, 116, 58, 92, 110, 45, 32, 48, 48, 32, 45, 32, 114, 101, 103, 117, 108, 97, 114, 32, 97, 99, 99, 111, 117, 110, 116, 32, 119, 105, 116, 104, 32, 117, 112, 100, 97, 116, 97, 98, 108, 101, 32, 99, 111, 100, 101, 46, 92, 110, 45, 32, 48, 49, 32, 45, 32, 114, 101, 103, 117, 108, 97, 114, 32, 97, 99, 99, 111, 117, 110, 116, 32, 119, 105, 116, 104, 32, 105, 109, 109, 117, 116, 97, 98, 108, 101, 32, 99, 111, 100, 101, 46, 92, 110, 45, 32, 49, 48, 32, 45, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 32, 102, 97, 117, 99, 101, 116, 32, 119, 105, 116, 104, 32, 105, 109, 109, 117, 116, 97, 98, 108, 101, 32, 99, 111, 100, 101, 46, 92, 110, 45, 32, 49, 49, 32, 45, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 32, 102, 97, 117, 99, 101, 116, 32, 119, 105, 116, 104, 32, 105, 109, 109, 117, 116, 97, 98, 108, 101, 32, 99, 111, 100, 101, 46, 92, 110, 45, 32, 84, 104, 101, 32, 116, 104, 105, 114, 100, 32, 109, 111, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 98, 105, 116, 32, 111, 102, 32, 116, 104, 101, 32, 73, 68, 32, 115, 112, 101, 99, 105, 102, 105, 101, 115, 32, 119, 104, 101, 116, 104, 101, 114, 32, 116, 104, 101, 32, 97, 99, 99, 111, 117, 110, 116, 32, 100, 97, 116, 97, 32, 105, 115, 32, 115, 116, 111, 114, 101, 100, 32, 111, 110, 45, 99, 104, 97, 105, 110, 58, 92, 110, 45, 32, 48, 32, 45, 32, 102, 117, 108, 108, 32, 97, 99, 99, 111, 117, 110, 116, 32, 100, 97, 116, 97, 32, 105, 115, 32, 115, 116, 111, 114, 101, 100, 32, 111, 110, 45, 99, 104, 97, 105, 110, 46, 92, 110, 45, 32, 49, 32, 45, 32, 111, 110, 108, 121, 32, 116, 104, 101, 32, 97, 99, 99, 111, 117, 110, 116, 32, 104, 97, 115, 104, 32, 105, 115, 32, 115, 116, 111, 114, 101, 100, 32, 111, 110, 45, 99, 104, 97, 105, 110, 32, 119, 104, 105, 99, 104, 32, 115, 101, 114, 118, 101, 115, 32, 97, 115, 32, 97, 32, 99, 111, 109, 109, 105, 116, 109, 101, 110, 116, 32, 116, 111, 32, 116, 104, 101, 32, 97, 99, 99, 111, 117, 110, 116, 32, 115, 116, 97, 116, 101, 46, 92, 110, 65, 115, 32, 115, 117, 99, 104, 32, 116, 104, 101, 32, 116, 104, 114, 101, 101, 32, 109, 111, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 98, 105, 116, 115, 32, 102, 117, 108, 108, 121, 32, 100, 101, 115, 99, 114, 105, 98, 101, 115, 32, 116, 104, 101, 32, 116, 121, 112, 101, 32, 111, 102, 32, 116, 104, 101, 32, 97, 99, 99, 111, 117, 110, 116, 46, 34, 125, 44, 34, 114, 101, 99, 105, 112, 105, 101, 110, 116, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 82, 101, 99, 105, 112, 105, 101, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 110, 111, 116, 101, 44, 32, 105, 46, 101, 46, 44, 32, 104, 97, 115, 104, 40, 104, 97, 115, 104, 40, 104, 97, 115, 104, 40, 115, 101, 114, 105, 97, 108, 95, 110, 117, 109, 44, 32, 91, 48, 59, 32, 52, 93, 41, 44, 32, 110, 111, 116, 101, 95, 115, 99, 114, 105, 112, 116, 95, 104, 97, 115, 104, 41, 44, 32, 105, 110, 112, 117, 116, 95, 104, 97, 115, 104, 41, 34, 125, 44, 34, 102, 117, 110, 103, 105, 98, 108, 101, 45, 97, 115, 115, 101, 116, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 65, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 34, 44, 34, 105, 116, 101, 109, 115, 34, 58, 123, 34, 97, 115, 115, 101, 116, 34, 58, 34, 70, 97, 117, 99, 101, 116, 32, 73, 68, 32, 111, 102, 32, 116, 104, 101, 32, 102, 97, 117, 99, 101, 116, 32, 119, 104, 105, 99, 104, 32, 105, 115, 115, 117, 101, 100, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 32, 97, 115, 32, 119, 101, 108, 108, 32, 97, 115, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 32, 97, 109, 111, 117, 110, 116, 46, 34, 44, 34, 97, 109, 111, 117, 110, 116, 34, 58, 34, 65, 115, 115, 101, 116, 32, 97, 109, 111, 117, 110, 116, 32, 105, 115, 32, 103, 117, 97, 114, 97, 110, 116, 101, 101, 100, 32, 116, 111, 32, 98, 101, 32, 50, 94, 54, 51, 32, 45, 32, 49, 32, 111, 114, 32, 115, 109, 97, 108, 108, 101, 114, 46, 34, 125, 125, 44, 34, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 45, 97, 115, 115, 101, 116, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 65, 32, 99, 111, 109, 109, 105, 116, 109, 101, 110, 116, 32, 116, 111, 32, 97, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 46, 92, 110, 92, 110, 65, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 32, 99, 111, 110, 115, 105, 115, 116, 115, 32, 111, 102, 32, 52, 32, 102, 105, 101, 108, 100, 32, 101, 108, 101, 109, 101, 110, 116, 115, 32, 119, 104, 105, 99, 104, 32, 97, 114, 101, 32, 99, 111, 109, 112, 117, 116, 101, 100, 32, 98, 121, 32, 104, 97, 115, 104, 105, 110, 103, 32, 97, 115, 115, 101, 116, 32, 100, 97, 116, 97, 92, 110, 40, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 102, 32, 97, 114, 98, 105, 116, 114, 97, 114, 121, 32, 108, 101, 110, 103, 116, 104, 41, 32, 116, 111, 32, 112, 114, 111, 100, 117, 99, 101, 58, 32, 91, 100, 48, 44, 32, 100, 49, 44, 32, 100, 50, 44, 32, 100, 51, 93, 46, 32, 32, 87, 101, 32, 116, 104, 101, 110, 32, 114, 101, 112, 108, 97, 99, 101, 32, 100, 49, 32, 119, 105, 116, 104, 32, 116, 104, 101, 92, 110, 102, 97, 117, 99, 101, 116, 95, 105, 100, 32, 116, 104, 97, 116, 32, 105, 115, 115, 117, 101, 100, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 58, 32, 91, 100, 48, 44, 32, 102, 97, 117, 99, 101, 116, 95, 105, 100, 44, 32, 100, 50, 44, 32, 100, 51, 93, 46, 32, 87, 101, 32, 116, 104, 101, 110, 32, 115, 101, 116, 32, 116, 104, 101, 32, 109, 111, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 98, 105, 116, 92, 110, 111, 102, 32, 116, 104, 101, 32, 109, 111, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 101, 108, 101, 109, 101, 110, 116, 32, 116, 111, 32, 90, 69, 82, 79, 46, 34, 125, 44, 34, 97, 115, 115, 101, 116, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 65, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 111, 114, 32, 97, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 46, 92, 110, 92, 110, 65, 108, 108, 32, 97, 115, 115, 101, 116, 115, 32, 97, 114, 101, 32, 101, 110, 99, 111, 100, 101, 100, 32, 117, 115, 105, 110, 103, 32, 97, 32, 115, 105, 110, 103, 108, 101, 32, 119, 111, 114, 100, 32, 40, 52, 32, 101, 108, 101, 109, 101, 110, 116, 115, 41, 32, 115, 117, 99, 104, 32, 116, 104, 97, 116, 32, 105, 116, 32, 105, 115, 32, 101, 97, 115, 121, 32, 116, 111, 32, 100, 101, 116, 101, 114, 109, 105, 110, 101, 32, 116, 104, 101, 92, 110, 116, 121, 112, 101, 32, 111, 102, 32, 97, 110, 32, 97, 115, 115, 101, 116, 32, 98, 111, 116, 104, 32, 105, 110, 115, 105, 100, 101, 32, 97, 110, 100, 32, 111, 117, 116, 115, 105, 100, 101, 32, 77, 105, 100, 101, 110, 32, 86, 77, 46, 32, 83, 112, 101, 99, 105, 102, 105, 99, 97, 108, 108, 121, 58, 92, 110, 69, 108, 101, 109, 101, 110, 116, 32, 49, 32, 119, 105, 108, 108, 32, 98, 101, 58, 92, 110, 45, 32, 90, 69, 82, 79, 32, 102, 111, 114, 32, 97, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 92, 110, 45, 32, 110, 111, 110, 45, 90, 69, 82, 79, 32, 102, 111, 114, 32, 97, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 92, 110, 84, 104, 101, 32, 109, 111, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 98, 105, 116, 32, 119, 105, 108, 108, 32, 98, 101, 58, 92, 110, 45, 32, 79, 78, 69, 32, 102, 111, 114, 32, 97, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 92, 110, 45, 32, 90, 69, 82, 79, 32, 102, 111, 114, 32, 97, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 92, 110, 92, 110, 84, 104, 101, 32, 97, 98, 111, 118, 101, 32, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 32, 103, 117, 97, 114, 97, 110, 116, 101, 101, 32, 116, 104, 97, 116, 32, 116, 104, 101, 114, 101, 32, 99, 97, 110, 32, 110, 101, 118, 101, 114, 32, 98, 101, 32, 97, 32, 99, 111, 108, 108, 105, 115, 105, 111, 110, 32, 98, 101, 116, 119, 101, 101, 110, 32, 97, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 110, 100, 32, 97, 92, 110, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 46, 92, 110, 92, 110, 84, 104, 101, 32, 109, 101, 116, 104, 111, 100, 111, 108, 111, 103, 121, 32, 102, 111, 114, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 110, 103, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 110, 100, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 115, 32, 105, 115, 32, 100, 101, 115, 99, 114, 105, 98, 101, 100, 32, 98, 101, 108, 111, 119, 46, 92, 110, 92, 110, 35, 32, 70, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 115, 92, 110, 84, 104, 101, 32, 109, 111, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 101, 108, 101, 109, 101, 110, 116, 32, 111, 102, 32, 97, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 32, 73, 68, 32, 111, 102, 32, 116, 104, 101, 32, 102, 97, 117, 99, 101, 116, 32, 119, 104, 105, 99, 104, 32, 105, 115, 115, 117, 101, 100, 92, 110, 116, 104, 101, 32, 97, 115, 115, 101, 116, 46, 32, 84, 104, 105, 115, 32, 103, 117, 97, 114, 97, 110, 116, 101, 101, 115, 32, 116, 104, 101, 32, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 32, 100, 101, 115, 99, 114, 105, 98, 101, 100, 32, 97, 98, 111, 118, 101, 32, 40, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 98, 105, 116, 32, 105, 115, 32, 79, 78, 69, 41, 46, 92, 110, 92, 110, 84, 104, 101, 32, 108, 101, 97, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 101, 108, 101, 109, 101, 110, 116, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 32, 97, 109, 111, 117, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 46, 32, 84, 104, 105, 115, 32, 97, 109, 111, 117, 110, 116, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 103, 114, 101, 97, 116, 101, 114, 92, 110, 116, 104, 97, 110, 32, 50, 94, 54, 51, 32, 45, 32, 49, 32, 97, 110, 100, 32, 116, 104, 117, 115, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 54, 51, 45, 98, 105, 116, 115, 32, 116, 111, 32, 115, 116, 111, 114, 101, 46, 92, 110, 92, 110, 69, 108, 101, 109, 101, 110, 116, 115, 32, 49, 32, 97, 110, 100, 32, 50, 32, 97, 114, 101, 32, 115, 101, 116, 32, 116, 111, 32, 90, 69, 82, 79, 46, 92, 110, 92, 110, 73, 116, 32, 105, 115, 32, 105, 109, 112, 111, 115, 115, 105, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 97, 32, 99, 111, 108, 108, 105, 115, 105, 111, 110, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 119, 111, 32, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 115, 32, 105, 115, 115, 117, 101, 100, 32, 98, 121, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 102, 97, 117, 99, 101, 116, 115, 32, 97, 115, 92, 110, 116, 104, 101, 32, 102, 97, 117, 99, 101, 116, 95, 105, 100, 32, 105, 115, 32, 105, 110, 99, 108, 117, 100, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 32, 97, 110, 100, 32, 116, 104, 105, 115, 32, 105, 115, 32, 103, 117, 97, 114, 97, 110, 116, 101, 101, 100, 32, 116, 111, 32, 98, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 92, 110, 102, 111, 114, 32, 101, 97, 99, 104, 32, 102, 97, 117, 99, 101, 116, 32, 97, 115, 32, 112, 101, 114, 32, 116, 104, 101, 32, 102, 97, 117, 99, 101, 116, 32, 99, 114, 101, 97, 116, 105, 111, 110, 32, 108, 111, 103, 105, 99, 46, 92, 110, 92, 110, 35, 32, 78, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 115, 92, 110, 84, 104, 101, 32, 52, 32, 101, 108, 101, 109, 101, 110, 116, 115, 32, 111, 102, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 115, 32, 97, 114, 101, 32, 99, 111, 109, 112, 117, 116, 101, 100, 32, 97, 115, 32, 102, 111, 108, 108, 111, 119, 115, 58, 92, 110, 45, 32, 70, 105, 114, 115, 116, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 32, 100, 97, 116, 97, 32, 105, 115, 32, 104, 97, 115, 104, 101, 100, 46, 32, 84, 104, 105, 115, 32, 99, 111, 109, 112, 114, 101, 115, 115, 101, 115, 32, 97, 110, 32, 97, 115, 115, 101, 116, 32, 111, 102, 32, 97, 110, 32, 97, 114, 98, 105, 116, 114, 97, 114, 121, 32, 108, 101, 110, 103, 116, 104, 32, 116, 111, 32, 52, 32, 102, 105, 101, 108, 100, 92, 110, 101, 108, 101, 109, 101, 110, 116, 115, 58, 32, 91, 100, 48, 44, 32, 100, 49, 44, 32, 100, 50, 44, 32, 100, 51, 93, 46, 92, 110, 45, 32, 100, 49, 32, 105, 115, 32, 116, 104, 101, 110, 32, 114, 101, 112, 108, 97, 99, 101, 100, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 102, 97, 117, 99, 101, 116, 95, 105, 100, 32, 119, 104, 105, 99, 104, 32, 105, 115, 115, 117, 101, 115, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 58, 32, 91, 100, 48, 44, 32, 102, 97, 117, 99, 101, 116, 95, 105, 100, 44, 32, 100, 50, 44, 32, 100, 51, 93, 46, 92, 110, 45, 32, 76, 97, 115, 116, 108, 121, 44, 32, 116, 104, 101, 32, 109, 111, 115, 116, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 98, 105, 116, 32, 111, 102, 32, 100, 51, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 90, 69, 82, 79, 46, 92, 110, 92, 110, 73, 116, 32, 105, 115, 32, 105, 109, 112, 111, 115, 115, 105, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 97, 32, 99, 111, 108, 108, 105, 115, 105, 111, 110, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 119, 111, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 115, 32, 105, 115, 115, 117, 101, 100, 32, 98, 121, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 102, 97, 117, 99, 101, 116, 115, 92, 110, 97, 115, 32, 116, 104, 101, 32, 102, 97, 117, 99, 101, 116, 95, 105, 100, 32, 105, 115, 32, 105, 110, 99, 108, 117, 100, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 32, 97, 110, 100, 32, 116, 104, 105, 115, 32, 105, 115, 32, 103, 117, 97, 114, 97, 110, 116, 101, 101, 100, 92, 110, 116, 111, 32, 98, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 97, 115, 32, 112, 101, 114, 32, 116, 104, 101, 32, 102, 97, 117, 99, 101, 116, 32, 99, 114, 101, 97, 116, 105, 111, 110, 32, 108, 111, 103, 105, 99, 46, 32, 67, 111, 108, 108, 105, 115, 105, 111, 110, 32, 114, 101, 115, 105, 115, 116, 97, 110, 99, 101, 32, 102, 111, 114, 32, 110, 111, 110, 45, 102, 117, 110, 103, 105, 98, 108, 101, 32, 97, 115, 115, 101, 116, 115, 92, 110, 105, 115, 115, 117, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 102, 97, 117, 99, 101, 116, 32, 105, 115, 32, 126, 50, 94, 57, 53, 46, 34, 125, 44, 34, 110, 111, 116, 101, 45, 105, 110, 112, 117, 116, 115, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 73, 110, 112, 117, 116, 115, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 101, 120, 101, 99, 117, 116, 101, 100, 32, 110, 111, 116, 101, 44, 32, 110, 101, 118, 101, 114, 32, 101, 120, 99, 101, 101, 100, 115, 32, 49, 54, 32, 102, 101, 108, 116, 115, 34, 125, 125, 125, 44, 34, 116, 120, 45, 107, 101, 114, 110, 101, 108, 34, 58, 123, 34, 102, 117, 110, 99, 115, 34, 58, 123, 34, 103, 101, 116, 45, 105, 100, 34, 58, 34, 65, 99, 99, 111, 117, 110, 116, 45, 114, 101, 108, 97, 116, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 92, 110, 71, 101, 116, 32, 116, 104, 101, 32, 105, 100, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 101, 120, 101, 99, 117, 116, 105, 110, 103, 32, 97, 99, 99, 111, 117, 110, 116, 34, 44, 34, 97, 100, 100, 45, 97, 115, 115, 101, 116, 34, 58, 34, 65, 100, 100, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 115, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 32, 118, 97, 117, 108, 116, 34, 44, 34, 114, 101, 109, 111, 118, 101, 45, 97, 115, 115, 101, 116, 34, 58, 34, 82, 101, 109, 111, 118, 101, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 115, 115, 101, 116, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 118, 97, 117, 108, 116, 34, 44, 34, 99, 114, 101, 97, 116, 101, 45, 110, 111, 116, 101, 34, 58, 34, 78, 111, 116, 101, 45, 114, 101, 108, 97, 116, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 92, 110, 67, 114, 101, 97, 116, 101, 115, 32, 97, 32, 110, 101, 119, 32, 110, 111, 116, 101, 46, 92, 110, 97, 115, 115, 101, 116, 32, 105, 115, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 32, 116, 111, 32, 98, 101, 32, 105, 110, 99, 108, 117, 100, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 110, 111, 116, 101, 46, 92, 110, 116, 97, 103, 32, 105, 115, 32, 116, 104, 101, 32, 116, 97, 103, 32, 116, 111, 32, 98, 101, 32, 105, 110, 99, 108, 117, 100, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 110, 111, 116, 101, 46, 92, 110, 114, 101, 99, 105, 112, 105, 101, 110, 116, 32, 105, 115, 32, 116, 104, 101, 32, 114, 101, 99, 105, 112, 105, 101, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 110, 111, 116, 101, 46, 34, 44, 34, 103, 101, 116, 45, 105, 110, 112, 117, 116, 115, 34, 58, 34, 71, 101, 116, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 115, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 101, 120, 101, 99, 117, 116, 101, 100, 32, 110, 111, 116, 101, 34, 44, 34, 103, 101, 116, 45, 97, 115, 115, 101, 116, 115, 34, 58, 34, 71, 101, 116, 32, 116, 104, 101, 32, 97, 115, 115, 101, 116, 115, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 101, 120, 101, 99, 117, 116, 105, 110, 103, 32, 110, 111, 116, 101, 34, 125, 125, 44, 34, 97, 99, 99, 111, 117, 110, 116, 34, 58, 123, 34, 100, 111, 99, 115, 34, 58, 34, 77, 97, 114, 107, 101, 114, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 46, 32, 69, 120, 112, 101, 99, 116, 101, 100, 32, 116, 111, 32, 98, 101, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 97, 99, 99, 111, 117, 110, 116, 47, 119, 97, 108, 108, 101, 116, 34, 125, 125, 125, 0, 70, 9, 112, 114, 111, 100, 117, 99, 101, 114, 115, 1, 12, 112, 114, 111, 99, 101, 115, 115, 101, 100, 45, 98, 121, 2, 13, 119, 105, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 6, 48, 46, 49, 56, 46, 50, 16, 119, 105, 116, 45, 98, 105, 110, 100, 103, 101, 110, 45, 114, 117, 115, 116, 6, 48, 46, 49, 54, 46, 48]; + +#[inline(never)] +#[doc(hidden)] +#[cfg(target_arch = "wasm32")] +pub fn __link_section() {} diff --git a/tests/rust-apps-wasm/sdk/sdk/src/lib.rs b/tests/rust-apps-wasm/sdk/sdk/src/lib.rs index 1758058dc..bd7e6ea52 100644 --- a/tests/rust-apps-wasm/sdk/sdk/src/lib.rs +++ b/tests/rust-apps-wasm/sdk/sdk/src/lib.rs @@ -1,3 +1,11 @@ #![no_std] -cargo_component_bindings::generate!(); +#[global_allocator] +static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; + +#[panic_handler] +fn my_panic(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +mod bindings;