(module $huff_enc.wasm (type (;0;) (func (param i32 i32))) (type (;1;) (func)) (type (;2;) (func (param i32))) (type (;3;) (func (param i32 i32 i32))) (type (;4;) (func (param i32) (result i32))) (type (;5;) (func (result i32))) (import "__pragma" "loopbound" (func $__pragma_loopbound (type 0))) (func $__wasm_apply_data_relocs (type 1)) (func $huff_enc_write_header (type 2) (param i32) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) global.get $__stack_pointer i32.const 80 i32.sub local.tee 1 global.set $__stack_pointer i32.const 256 i32.const 256 call $__pragma_loopbound i32.const 0 local.set 2 i32.const 0 local.set 3 loop ;; label = @1 local.get 3 local.get 0 local.get 2 i32.add local.tee 4 i32.const 32 i32.add i32.load i32.const 0 i32.ne i32.add local.get 4 i32.const 68 i32.add i32.load i32.const 0 i32.ne i32.add local.get 4 i32.const 104 i32.add i32.load i32.const 0 i32.ne i32.add local.get 4 i32.const 140 i32.add i32.load i32.const 0 i32.ne i32.add local.set 3 local.get 2 i32.const 144 i32.add local.tee 2 i32.const 9216 i32.ne br_if 0 (;@1;) end i32.const 1 i32.const 9 call $__pragma_loopbound i32.const 0 i32.load8_u offset=3088 i32.const 1 i32.shl local.set 4 i32.const 0 i32.load8_u offset=3089 local.set 2 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 local.get 3 i32.const 31 i32.gt_u br_if 0 (;@9;) block ;; label = @10 block ;; label = @11 local.get 2 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@11;) i32.const 0 local.set 2 i32.const 0 i32.load offset=2052 local.tee 5 i32.const 2064 i32.add local.get 4 i32.store8 i32.const 0 local.get 5 i32.const 1 i32.add i32.store offset=2052 i32.const 0 local.set 4 br 1 (;@10;) end local.get 2 i32.const 1 i32.add local.set 2 end i32.const 0 local.set 5 i32.const 0 local.get 4 i32.store8 offset=3088 i32.const 0 local.get 2 i32.store8 offset=3089 i32.const 1 i32.const 9 call $__pragma_loopbound local.get 3 i32.const 255 i32.add local.tee 2 i32.const 4 i32.shr_u i32.const 1 i32.and i32.const 0 i32.load8_u offset=3088 i32.const 1 i32.shl i32.or local.set 3 i32.const 0 i32.load offset=2052 local.set 4 block ;; label = @10 i32.const 0 i32.load8_u offset=3089 local.tee 6 i32.const 7 i32.ne br_if 0 (;@10;) local.get 4 i32.const 2064 i32.add local.get 3 i32.store8 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 local.get 2 i32.const 3 i32.shr_u i32.const 1 i32.and local.set 3 br 2 (;@8;) end local.get 2 i32.const 3 i32.shr_u i32.const 1 i32.and local.get 3 i32.const 1 i32.shl i32.const 510 i32.and i32.or local.set 3 local.get 6 i32.const 1 i32.add local.tee 5 i32.const 255 i32.and i32.const 7 i32.ne br_if 1 (;@8;) local.get 4 i32.const 2064 i32.add local.get 3 i32.store8 i32.const 0 local.set 5 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 local.get 2 i32.const 2 i32.shr_u i32.const 1 i32.and local.set 3 br 2 (;@7;) end local.get 4 i32.const 1 i32.or local.set 4 block ;; label = @9 block ;; label = @10 local.get 2 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@10;) i32.const 0 local.set 2 i32.const 0 i32.load offset=2052 local.tee 3 i32.const 2064 i32.add local.get 4 i32.store8 i32.const 0 local.get 3 i32.const 1 i32.add i32.store offset=2052 i32.const 0 local.set 4 br 1 (;@9;) end local.get 2 i32.const 1 i32.add local.set 2 end i32.const 0 local.get 4 i32.store8 offset=3088 i32.const 0 local.get 2 i32.store8 offset=3089 i32.const 32 local.set 2 loop ;; label = @9 local.get 0 local.get 2 i32.add i32.load local.set 5 i32.const 1 i32.const 9 call $__pragma_loopbound i32.const 0 i32.load8_u offset=3088 i32.const 1 i32.shl local.set 4 i32.const 0 i32.load8_u offset=3089 local.set 3 block ;; label = @10 block ;; label = @11 block ;; label = @12 local.get 5 i32.eqz br_if 0 (;@12;) local.get 4 i32.const 1 i32.or local.set 4 local.get 3 i32.const 255 i32.and i32.const 7 i32.ne br_if 1 (;@11;) i32.const 0 local.set 3 i32.const 0 i32.load offset=2052 local.tee 5 i32.const 2064 i32.add local.get 4 i32.store8 i32.const 0 local.get 5 i32.const 1 i32.add i32.store offset=2052 i32.const 0 local.set 4 br 2 (;@10;) end local.get 3 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@11;) i32.const 0 local.set 3 i32.const 0 i32.load offset=2052 local.tee 5 i32.const 2064 i32.add local.get 4 i32.store8 i32.const 0 local.get 5 i32.const 1 i32.add i32.store offset=2052 i32.const 0 local.set 4 br 1 (;@10;) end local.get 3 i32.const 1 i32.add local.set 3 end i32.const 0 local.get 4 i32.store8 offset=3088 i32.const 0 local.get 3 i32.store8 offset=3089 local.get 2 i32.const 36 i32.add local.tee 2 i32.const 9248 i32.ne br_if 0 (;@9;) br 8 (;@1;) end end i32.const 1 local.set 6 local.get 2 i32.const 2 i32.shr_u i32.const 1 i32.and local.get 3 i32.const 1 i32.shl i32.const 510 i32.and i32.or local.set 3 local.get 5 i32.const 1 i32.add local.tee 5 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@7;) i32.const 3 local.set 7 br 1 (;@6;) end i32.const 1 local.set 7 local.get 2 i32.const 1 i32.shr_u i32.const 1 i32.and local.get 3 i32.const 1 i32.shl i32.const 510 i32.and i32.or local.set 3 local.get 5 i32.const 255 i32.and i32.const 6 i32.ne br_if 1 (;@5;) i32.const 0 local.set 6 end local.get 4 i32.const 2064 i32.add local.get 3 i32.store8 i32.const 0 local.get 4 i32.const 1 i32.add i32.store offset=2052 local.get 7 local.get 2 i32.and local.set 2 br 1 (;@4;) end local.get 2 i32.const 1 i32.and local.get 3 i32.const 1 i32.shl i32.or local.set 2 local.get 5 i32.const 2 i32.add local.tee 6 i32.const 255 i32.and i32.const 7 i32.eq br_if 1 (;@3;) end local.get 6 i32.const 1 i32.add local.set 3 br 1 (;@2;) end local.get 4 i32.const 2064 i32.add local.get 2 i32.store8 i32.const 0 local.set 3 i32.const 0 local.get 4 i32.const 1 i32.add i32.store offset=2052 i32.const 0 local.set 2 end i32.const 0 local.get 2 i32.store8 offset=3088 i32.const 0 local.get 3 i32.store8 offset=3089 local.get 0 i32.const 32 i32.add local.set 3 i32.const 0 local.set 4 loop ;; label = @2 block ;; label = @3 local.get 3 i32.load i32.eqz br_if 0 (;@3;) i32.const 1 i32.const 9 call $__pragma_loopbound local.get 4 i32.const 7 i32.shr_u i32.const 1 i32.and i32.const 0 i32.load8_u offset=3088 i32.const 1 i32.shl i32.or local.set 5 i32.const 0 i32.load offset=2052 local.set 2 block ;; label = @4 block ;; label = @5 block ;; label = @6 block ;; label = @7 block ;; label = @8 block ;; label = @9 block ;; label = @10 i32.const 0 i32.load8_u offset=3089 local.tee 6 i32.const 7 i32.ne br_if 0 (;@10;) local.get 2 i32.const 2064 i32.add local.get 5 i32.store8 i32.const 0 local.get 2 i32.const 1 i32.add local.tee 2 i32.store offset=2052 local.get 4 i32.const 5 i32.shr_u i32.const 3 i32.and local.set 5 i32.const 2 local.set 6 br 1 (;@9;) end local.get 4 i32.const 6 i32.shr_u i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 local.get 6 i32.const 6 i32.ne br_if 1 (;@8;) local.get 2 i32.const 2064 i32.add local.get 5 i32.store8 i32.const 1 local.set 6 i32.const 0 local.get 2 i32.const 1 i32.add local.tee 2 i32.store offset=2052 local.get 4 i32.const 5 i32.shr_u i32.const 1 i32.and local.set 5 end local.get 4 i32.const 4 i32.shr_u i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 br 1 (;@7;) end local.get 4 i32.const 5 i32.shr_u i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 block ;; label = @8 block ;; label = @9 local.get 6 i32.const 5 i32.ne br_if 0 (;@9;) local.get 2 i32.const 2064 i32.add local.get 5 i32.store8 i32.const 0 local.get 2 i32.const 1 i32.add local.tee 2 i32.store offset=2052 local.get 4 i32.const 3 i32.shr_u i32.const 3 i32.and local.set 5 i32.const 2 local.set 6 br 1 (;@8;) end local.get 4 i32.const 4 i32.shr_u i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 local.get 6 i32.const 3 i32.add local.tee 6 i32.const 255 i32.and i32.const 7 i32.ne br_if 1 (;@7;) local.get 2 i32.const 2064 i32.add local.get 5 i32.store8 i32.const 1 local.set 6 i32.const 0 local.get 2 i32.const 1 i32.add local.tee 2 i32.store offset=2052 local.get 4 i32.const 3 i32.shr_u i32.const 1 i32.and local.set 5 end local.get 4 i32.const 2 i32.shr_u i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 br 1 (;@6;) end local.get 4 i32.const 3 i32.shr_u i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 block ;; label = @7 local.get 6 i32.const 255 i32.and i32.const 6 i32.ne br_if 0 (;@7;) i32.const 2 local.set 7 i32.const 7 local.set 6 br 2 (;@5;) end i32.const 1 local.set 7 local.get 4 i32.const 2 i32.shr_u i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 local.get 6 i32.const 2 i32.add local.tee 6 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@6;) i32.const 3 local.set 6 br 1 (;@5;) end local.get 4 i32.const 1 i32.shr_u i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 block ;; label = @6 local.get 6 i32.const 255 i32.and i32.const 6 i32.ne br_if 0 (;@6;) local.get 2 i32.const 2064 i32.add local.get 5 i32.store8 i32.const 0 local.get 2 i32.const 1 i32.add i32.store offset=2052 local.get 4 i32.const 1 i32.and local.set 5 i32.const 0 i32.const 1 i32.add local.set 6 br 2 (;@4;) end local.get 4 i32.const 1 i32.and local.get 5 i32.const 1 i32.shl i32.or local.set 5 block ;; label = @6 local.get 6 i32.const 2 i32.add local.tee 6 i32.const 255 i32.and i32.const 7 i32.eq br_if 0 (;@6;) local.get 6 i32.const 1 i32.add local.set 6 br 2 (;@4;) end local.get 2 i32.const 2064 i32.add local.get 5 i32.store8 i32.const 0 local.set 6 i32.const 0 local.get 2 i32.const 1 i32.add i32.store offset=2052 i32.const 0 local.set 5 br 1 (;@4;) end local.get 2 i32.const 2064 i32.add local.get 5 i32.store8 i32.const 0 local.get 2 i32.const 1 i32.add i32.store offset=2052 local.get 4 local.get 6 i32.and local.set 5 local.get 7 i32.const 1 i32.add local.set 6 end i32.const 0 local.get 5 i32.store8 offset=3088 i32.const 0 local.get 6 i32.store8 offset=3089 end local.get 3 i32.const 36 i32.add local.set 3 local.get 4 i32.const 1 i32.add local.tee 4 i32.const 256 i32.ne br_if 0 (;@2;) end end i32.const 257 i32.const 257 call $__pragma_loopbound local.get 1 i32.const 40 i32.add i32.const 1 i32.or local.set 8 i32.const 0 local.set 9 loop ;; label = @1 block ;; label = @2 local.get 0 local.get 9 i32.const 36 i32.mul i32.add local.tee 2 i32.load offset=32 local.tee 5 i32.eqz br_if 0 (;@2;) i32.const 1 i32.const 9 call $__pragma_loopbound i32.const 0 i32.load8_u offset=3088 i32.const 1 i32.shl local.set 4 i32.const 0 i32.load8_u offset=3089 local.set 3 block ;; label = @3 block ;; label = @4 local.get 5 i32.const 32 i32.gt_u br_if 0 (;@4;) block ;; label = @5 local.get 3 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@5;) i32.const 0 local.set 6 i32.const 0 i32.load offset=2052 local.tee 3 i32.const 2064 i32.add local.get 4 i32.store8 i32.const 0 local.get 3 i32.const 1 i32.add i32.store offset=2052 i32.const 5 local.set 3 i32.const 0 local.set 4 br 2 (;@3;) end local.get 3 i32.const 1 i32.add local.set 6 i32.const 5 local.set 3 br 1 (;@3;) end local.get 4 i32.const 1 i32.or local.set 4 block ;; label = @4 local.get 3 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@4;) i32.const 0 local.set 6 i32.const 0 i32.load offset=2052 local.tee 3 i32.const 2064 i32.add local.get 4 i32.store8 i32.const 0 local.get 3 i32.const 1 i32.add i32.store offset=2052 i32.const 8 local.set 3 i32.const 0 local.set 4 br 1 (;@3;) end local.get 3 i32.const 1 i32.add local.set 6 i32.const 8 local.set 3 end i32.const 0 local.get 4 i32.store8 offset=3088 i32.const 0 local.get 6 i32.store8 offset=3089 local.get 8 local.get 1 i64.load offset=9 align=1 i64.store align=1 local.get 8 i32.const 8 i32.add local.get 1 i32.const 9 i32.add i32.const 8 i32.add i64.load align=1 i64.store align=1 local.get 8 i32.const 16 i32.add local.get 1 i32.const 9 i32.add i32.const 16 i32.add i64.load align=1 i64.store align=1 local.get 8 i32.const 23 i32.add local.get 1 i32.const 9 i32.add i32.const 23 i32.add i64.load align=1 i64.store align=1 local.get 1 local.get 5 i32.const -1 i32.add i32.store8 offset=40 local.get 1 local.get 3 i32.store offset=72 i32.const 1 i32.const 9 call $__pragma_loopbound local.get 3 i32.const -2 i32.add i32.const 7 local.get 3 i32.const -1 i32.add local.tee 4 select local.set 3 local.get 1 i32.load8_u offset=40 local.get 4 i32.const 255 i32.and i32.shr_u i32.const 1 i32.and i32.const 0 i32.load8_u offset=3088 i32.const 1 i32.shl i32.or local.set 6 i32.const 0 i32.const -1 local.get 4 select local.set 7 i32.const 0 i32.load offset=2052 local.set 4 block ;; label = @3 block ;; label = @4 i32.const 0 i32.load8_u offset=3089 local.tee 10 i32.const 7 i32.ne br_if 0 (;@4;) local.get 4 i32.const 2064 i32.add local.get 6 i32.store8 i32.const 0 local.set 11 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 i32.const 0 local.set 6 br 1 (;@3;) end local.get 10 i32.const 1 i32.add local.set 11 end local.get 1 i32.const 40 i32.add local.get 7 i32.add local.tee 12 i32.load8_u local.get 3 i32.shr_u i32.const 1 i32.and local.get 6 i32.const 1 i32.shl i32.or local.set 10 local.get 3 i32.const -1 i32.add local.set 6 block ;; label = @3 block ;; label = @4 local.get 11 i32.const 255 i32.and i32.const 7 i32.eq br_if 0 (;@4;) local.get 11 i32.const 1 i32.add local.set 11 br 1 (;@3;) end local.get 4 i32.const 2064 i32.add local.get 10 i32.store8 i32.const 0 local.set 11 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 i32.const 0 local.set 10 end local.get 12 i32.load8_u local.get 6 i32.shr_u i32.const 1 i32.and local.get 10 i32.const 1 i32.shl i32.or local.set 10 local.get 3 i32.const -2 i32.add i32.const 7 local.get 6 select local.set 3 local.get 7 local.get 6 i32.eqz i32.sub local.set 7 block ;; label = @3 block ;; label = @4 local.get 11 i32.const 255 i32.and i32.const 7 i32.eq br_if 0 (;@4;) local.get 11 i32.const 1 i32.add local.set 11 br 1 (;@3;) end local.get 4 i32.const 2064 i32.add local.get 10 i32.store8 i32.const 0 local.set 11 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 i32.const 0 local.set 10 end local.get 1 i32.const 40 i32.add local.get 7 i32.add i32.load8_u local.get 3 i32.shr_u i32.const 1 i32.and local.get 10 i32.const 1 i32.shl i32.or local.set 10 local.get 3 i32.const -1 i32.add i32.const 7 local.get 3 select local.set 6 local.get 7 local.get 3 i32.eqz i32.sub local.set 12 block ;; label = @3 block ;; label = @4 local.get 11 i32.const 255 i32.and i32.const 7 i32.eq br_if 0 (;@4;) local.get 11 i32.const 1 i32.add local.set 7 br 1 (;@3;) end local.get 4 i32.const 2064 i32.add local.get 10 i32.store8 i32.const 0 local.set 7 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 i32.const 0 local.set 10 end local.get 1 i32.const 40 i32.add local.get 12 i32.add i32.load8_u local.get 6 i32.shr_u i32.const 1 i32.and local.get 10 i32.const 1 i32.shl i32.or local.set 3 block ;; label = @3 block ;; label = @4 local.get 7 i32.const 255 i32.and i32.const 7 i32.eq br_if 0 (;@4;) local.get 7 i32.const 1 i32.add local.set 7 br 1 (;@3;) end local.get 4 i32.const 2064 i32.add local.get 3 i32.store8 i32.const 0 local.set 7 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 i32.const 0 local.set 3 end block ;; label = @3 local.get 5 i32.const 33 i32.lt_u br_if 0 (;@3;) local.get 6 i32.const -1 i32.add i32.const 7 local.get 6 select local.tee 5 i32.const -1 i32.add i32.const 7 local.get 5 i32.const 255 i32.and local.tee 5 select local.set 10 local.get 1 i32.const 40 i32.add local.get 12 local.get 6 i32.eqz i32.sub local.tee 6 i32.add i32.load8_u local.get 5 i32.shr_u i32.const 1 i32.and local.get 3 i32.const 255 i32.and i32.const 1 i32.shl i32.or local.set 3 local.get 6 local.get 5 i32.eqz i32.sub local.set 5 block ;; label = @4 block ;; label = @5 local.get 7 i32.const 255 i32.and i32.const 7 i32.eq br_if 0 (;@5;) local.get 7 i32.const 1 i32.add local.set 7 br 1 (;@4;) end local.get 4 i32.const 2064 i32.add local.get 3 i32.store8 i32.const 0 local.set 7 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 i32.const 0 local.set 3 end local.get 10 i32.const -1 i32.add i32.const 7 local.get 10 i32.const 255 i32.and local.tee 6 select local.set 10 local.get 1 i32.const 40 i32.add local.get 5 i32.add i32.load8_u local.get 6 i32.shr_u i32.const 1 i32.and local.get 3 i32.const 1 i32.shl i32.or local.set 3 local.get 5 local.get 6 i32.eqz i32.sub local.set 6 block ;; label = @4 block ;; label = @5 local.get 7 i32.const 255 i32.and i32.const 7 i32.eq br_if 0 (;@5;) local.get 7 i32.const 1 i32.add local.set 5 br 1 (;@4;) end local.get 4 i32.const 2064 i32.add local.get 3 i32.store8 i32.const 0 local.set 5 i32.const 0 local.get 4 i32.const 1 i32.add local.tee 4 i32.store offset=2052 i32.const 0 local.set 3 end local.get 1 i32.const 40 i32.add local.get 6 i32.add i32.load8_u local.get 10 i32.const 255 i32.and i32.shr_u i32.const 1 i32.and local.get 3 i32.const 1 i32.shl i32.or local.set 3 block ;; label = @4 local.get 5 i32.const 255 i32.and i32.const 7 i32.eq br_if 0 (;@4;) local.get 5 i32.const 1 i32.add local.set 7 br 1 (;@3;) end local.get 4 i32.const 2064 i32.add local.get 3 i32.store8 i32.const 0 local.set 7 i32.const 0 local.get 4 i32.const 1 i32.add i32.store offset=2052 i32.const 0 local.set 3 end i32.const 0 local.get 3 i32.store8 offset=3088 i32.const 0 local.get 7 i32.store8 offset=3089 local.get 1 i32.const 40 i32.add i32.const 24 i32.add local.get 2 i32.const 24 i32.add i64.load align=1 i64.store local.get 1 i32.const 40 i32.add i32.const 16 i32.add local.get 2 i32.const 16 i32.add i64.load align=1 i64.store local.get 1 i32.const 40 i32.add i32.const 8 i32.add local.get 2 i32.const 8 i32.add i64.load align=1 i64.store local.get 1 i32.const 40 i32.add i32.const 32 i32.add local.get 2 i32.const 32 i32.add i32.load align=1 local.tee 11 i32.store local.get 1 local.get 2 i64.load align=1 i64.store offset=40 i32.const 1 i32.const 9 call $__pragma_loopbound local.get 11 i32.eqz br_if 0 (;@2;) local.get 11 i32.const -1 i32.add local.tee 2 i32.const 7 i32.and local.set 4 local.get 2 i32.const 3 i32.shr_u local.set 2 i32.const 0 i32.load8_u offset=3088 local.set 6 i32.const 0 i32.load8_u offset=3089 local.set 5 i32.const 0 i32.load offset=2052 local.set 12 i32.const 1 local.set 7 loop ;; label = @3 local.get 1 i32.const 40 i32.add local.get 2 i32.add i32.load8_u local.get 4 i32.const 255 i32.and local.tee 3 i32.shr_u i32.const 1 i32.and local.get 6 i32.const 255 i32.and i32.const 1 i32.shl i32.or local.set 6 local.get 3 i32.eqz local.set 10 block ;; label = @4 block ;; label = @5 local.get 5 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@5;) local.get 12 i32.const 2064 i32.add local.get 6 i32.store8 i32.const 0 local.set 5 i32.const 0 local.get 12 i32.const 1 i32.add local.tee 12 i32.store offset=2052 i32.const 0 local.set 6 br 1 (;@4;) end local.get 5 i32.const 1 i32.add local.set 5 end local.get 4 i32.const -1 i32.add i32.const 7 local.get 3 select local.set 4 local.get 2 local.get 10 i32.sub local.set 2 local.get 11 local.get 7 i32.const 1 i32.add local.tee 7 i32.const 255 i32.and i32.ge_u br_if 0 (;@3;) end i32.const 0 local.get 6 i32.store8 offset=3088 i32.const 0 local.get 5 i32.store8 offset=3089 end local.get 9 i32.const 1 i32.add local.tee 9 i32.const 257 i32.ne br_if 0 (;@1;) end local.get 1 i32.const 80 i32.add global.set $__stack_pointer) (func $huff_enc_qsort (type 3) (param i32 i32 i32) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) i32.const 0 i32.const 7 call $__pragma_loopbound block ;; label = @1 local.get 1 i32.const 2 i32.lt_u br_if 0 (;@1;) local.get 2 i32.const -4 i32.and local.set 3 local.get 2 i32.const 3 i32.and local.set 4 local.get 2 i32.const -1 i32.add local.set 5 i32.const 0 local.get 2 i32.sub local.set 6 loop ;; label = @2 block ;; label = @3 block ;; label = @4 local.get 1 i32.const 11 i32.lt_u br_if 0 (;@4;) local.get 0 local.get 1 i32.const 6 i32.div_u local.get 2 i32.mul local.tee 7 i32.add local.tee 8 local.get 7 i32.const 1 i32.shl local.tee 7 i32.add local.tee 9 local.get 7 i32.add local.tee 10 i32.load i32.load offset=4 local.set 11 block ;; label = @5 local.get 9 i32.load i32.load offset=4 local.tee 12 local.get 8 i32.load i32.load offset=4 local.tee 13 i32.ge_u br_if 0 (;@5;) local.get 8 local.set 7 local.get 11 local.get 13 i32.ge_u br_if 2 (;@3;) local.get 9 local.get 10 local.get 11 local.get 12 i32.lt_u select local.set 7 br 2 (;@3;) end local.get 9 local.set 7 local.get 11 local.get 12 i32.ge_u br_if 1 (;@3;) local.get 8 local.get 10 local.get 11 local.get 13 i32.lt_u select local.set 7 br 1 (;@3;) end local.get 0 local.get 1 i32.const 1 i32.shr_u local.get 2 i32.mul i32.add local.set 7 end i32.const 8 i32.const 8 call $__pragma_loopbound block ;; label = @3 block ;; label = @4 local.get 4 br_if 0 (;@4;) local.get 0 local.set 8 local.get 2 local.set 9 br 1 (;@3;) end local.get 4 local.set 9 local.get 0 local.set 8 loop ;; label = @4 local.get 8 i32.load8_u local.set 11 local.get 8 local.get 7 i32.load8_u i32.store8 local.get 7 local.get 11 i32.store8 local.get 7 i32.const 1 i32.add local.set 7 local.get 8 i32.const 1 i32.add local.set 8 local.get 9 i32.const -1 i32.add local.tee 9 br_if 0 (;@4;) end local.get 3 local.set 9 end block ;; label = @3 local.get 5 i32.const 3 i32.lt_u local.tee 14 br_if 0 (;@3;) loop ;; label = @4 local.get 8 i32.load8_u local.set 11 local.get 8 local.get 7 i32.load8_u i32.store8 local.get 7 local.get 11 i32.store8 local.get 8 i32.const 1 i32.add local.tee 11 i32.load8_u local.set 12 local.get 11 local.get 7 i32.const 1 i32.add local.tee 13 i32.load8_u i32.store8 local.get 13 local.get 12 i32.store8 local.get 8 i32.const 2 i32.add local.tee 11 i32.load8_u local.set 12 local.get 11 local.get 7 i32.const 2 i32.add local.tee 13 i32.load8_u i32.store8 local.get 13 local.get 12 i32.store8 local.get 8 i32.const 3 i32.add local.tee 11 i32.load8_u local.set 12 local.get 11 local.get 7 i32.const 3 i32.add local.tee 13 i32.load8_u i32.store8 local.get 13 local.get 12 i32.store8 local.get 8 i32.const 4 i32.add local.set 8 local.get 7 i32.const 4 i32.add local.set 7 local.get 9 i32.const -4 i32.add local.tee 9 br_if 0 (;@4;) end end i32.const 0 i32.const 109 call $__pragma_loopbound local.get 0 local.set 9 local.get 0 local.get 1 local.get 2 i32.mul i32.add local.tee 15 local.set 10 block ;; label = @3 loop ;; label = @4 i32.const 1 i32.const 19 call $__pragma_loopbound local.get 9 local.get 2 i32.add local.set 7 block ;; label = @5 loop ;; label = @6 local.get 7 local.tee 9 local.get 15 i32.ge_u br_if 1 (;@5;) local.get 9 local.get 2 i32.add local.set 7 local.get 0 i32.load i32.load offset=4 local.get 9 i32.load i32.load offset=4 i32.lt_u br_if 0 (;@6;) end end i32.const 1 i32.const 25 call $__pragma_loopbound local.get 6 local.set 7 block ;; label = @5 loop ;; label = @6 local.get 10 local.get 7 local.tee 11 i32.add local.tee 13 local.get 0 i32.le_u br_if 1 (;@5;) local.get 11 local.get 2 i32.sub local.set 7 local.get 0 i32.load i32.load offset=4 local.get 13 i32.load i32.load offset=4 i32.gt_u br_if 0 (;@6;) end end i32.const 8 i32.const 8 call $__pragma_loopbound block ;; label = @5 block ;; label = @6 local.get 13 local.get 9 i32.ge_u br_if 0 (;@6;) local.get 10 local.get 11 i32.add local.set 7 block ;; label = @7 block ;; label = @8 local.get 4 br_if 0 (;@8;) local.get 0 local.set 8 local.get 2 local.set 9 br 1 (;@7;) end local.get 4 local.set 9 local.get 0 local.set 8 loop ;; label = @8 local.get 8 i32.load8_u local.set 12 local.get 8 local.get 7 i32.load8_u i32.store8 local.get 7 local.get 12 i32.store8 local.get 7 i32.const 1 i32.add local.set 7 local.get 8 i32.const 1 i32.add local.set 8 local.get 9 i32.const -1 i32.add local.tee 9 br_if 0 (;@8;) end local.get 3 local.set 9 end block ;; label = @7 local.get 14 br_if 0 (;@7;) loop ;; label = @8 local.get 8 i32.load8_u local.set 12 local.get 8 local.get 7 i32.load8_u i32.store8 local.get 7 local.get 12 i32.store8 local.get 8 i32.const 1 i32.add local.tee 12 i32.load8_u local.set 13 local.get 12 local.get 7 i32.const 1 i32.add local.tee 16 i32.load8_u i32.store8 local.get 16 local.get 13 i32.store8 local.get 8 i32.const 2 i32.add local.tee 12 i32.load8_u local.set 13 local.get 12 local.get 7 i32.const 2 i32.add local.tee 16 i32.load8_u i32.store8 local.get 16 local.get 13 i32.store8 local.get 8 i32.const 3 i32.add local.tee 12 i32.load8_u local.set 13 local.get 12 local.get 7 i32.const 3 i32.add local.tee 16 i32.load8_u i32.store8 local.get 16 local.get 13 i32.store8 local.get 8 i32.const 4 i32.add local.set 8 local.get 7 i32.const 4 i32.add local.set 7 local.get 9 i32.const -4 i32.add local.tee 9 br_if 0 (;@8;) end end local.get 10 local.get 0 i32.sub local.get 11 i32.add local.get 2 i32.div_u local.tee 7 local.get 1 local.get 7 i32.const -1 i32.xor i32.add local.tee 1 i32.lt_u br_if 1 (;@5;) local.get 0 local.get 7 local.get 2 call $huff_enc_qsort local.get 0 local.get 7 i32.const 1 i32.add local.get 2 i32.mul i32.add local.set 0 br 3 (;@3;) end local.get 9 local.set 7 local.get 13 local.set 8 local.get 2 local.set 12 block ;; label = @6 local.get 4 i32.eqz br_if 0 (;@6;) local.get 10 local.get 11 i32.add local.set 10 i32.const 0 local.set 8 loop ;; label = @7 local.get 9 local.get 8 i32.add local.tee 7 i32.load8_u local.set 11 local.get 7 local.get 10 local.get 8 i32.add local.tee 12 i32.load8_u i32.store8 local.get 12 local.get 11 i32.store8 local.get 4 local.get 8 i32.const 1 i32.add local.tee 8 i32.ne br_if 0 (;@7;) end local.get 2 local.get 8 i32.sub local.set 12 local.get 9 local.get 8 i32.add local.set 7 local.get 10 local.get 8 i32.add local.set 8 end local.get 13 local.set 10 local.get 14 br_if 1 (;@4;) loop ;; label = @6 local.get 7 i32.load8_u local.set 11 local.get 7 local.get 8 i32.load8_u i32.store8 local.get 8 local.get 11 i32.store8 local.get 7 i32.const 1 i32.add local.tee 11 i32.load8_u local.set 10 local.get 11 local.get 8 i32.const 1 i32.add local.tee 16 i32.load8_u i32.store8 local.get 16 local.get 10 i32.store8 local.get 7 i32.const 2 i32.add local.tee 11 i32.load8_u local.set 10 local.get 11 local.get 8 i32.const 2 i32.add local.tee 16 i32.load8_u i32.store8 local.get 16 local.get 10 i32.store8 local.get 7 i32.const 3 i32.add local.tee 11 i32.load8_u local.set 10 local.get 11 local.get 8 i32.const 3 i32.add local.tee 16 i32.load8_u i32.store8 local.get 16 local.get 10 i32.store8 local.get 7 i32.const 4 i32.add local.set 7 local.get 8 i32.const 4 i32.add local.set 8 local.get 12 i32.const -4 i32.add local.tee 12 br_if 0 (;@6;) end local.get 13 local.set 10 br 1 (;@4;) end end local.get 0 local.get 7 i32.const 1 i32.add local.get 2 i32.mul i32.add local.get 1 local.get 2 call $huff_enc_qsort local.get 7 local.set 1 end local.get 1 i32.const 1 i32.gt_u br_if 0 (;@2;) end end) (func $huff_enc_build_tree_encoding (type 4) (param i32) (result i32) (local i32 i32 i32 i32 i32) global.get $__stack_pointer i32.const 1040 i32.sub local.tee 1 global.set $__stack_pointer i32.const 257 i32.const 257 call $__pragma_loopbound local.get 1 local.set 2 local.get 0 local.set 3 i32.const 0 local.set 4 block ;; label = @1 loop ;; label = @2 local.get 3 local.get 4 i32.store local.get 2 local.get 3 i32.store local.get 3 i32.const 12 i32.add i32.const 0 i32.store local.get 3 i32.const 4 i32.add i64.const 0 i64.store align=4 local.get 4 i32.const 256 i32.eq br_if 1 (;@1;) local.get 3 i32.const 28 i32.add i32.const 0 i32.store local.get 3 i32.const 20 i32.add i64.const 0 i64.store align=4 local.get 3 i32.const 16 i32.add local.tee 5 local.get 4 i32.const 1 i32.add i32.store local.get 2 i32.const 4 i32.add local.get 5 i32.store local.get 4 i32.const 2 i32.add local.set 4 local.get 2 i32.const 8 i32.add local.set 2 local.get 3 i32.const 32 i32.add local.set 3 br 0 (;@2;) end end block ;; label = @1 i32.const 0 i32.load offset=2048 i32.const 599 i32.gt_s br_if 0 (;@1;) i32.const 600 i32.const 600 call $__pragma_loopbound block ;; label = @2 i32.const 0 i32.load offset=2048 local.tee 4 i32.const 599 i32.gt_s br_if 0 (;@2;) local.get 4 local.set 3 block ;; label = @3 local.get 4 i32.const 1 i32.and i32.eqz br_if 0 (;@3;) local.get 1 local.get 4 i32.const 1443 i32.add i32.load8_s i32.const 2 i32.shl i32.add i32.load local.tee 3 local.get 3 i32.load offset=4 i32.const 1 i32.add i32.store offset=4 local.get 4 i32.const 1 i32.add local.set 3 end block ;; label = @3 local.get 4 i32.const 599 i32.eq br_if 0 (;@3;) loop ;; label = @4 local.get 1 local.get 3 i32.const 1443 i32.add i32.load8_s i32.const 2 i32.shl i32.add i32.load local.tee 4 local.get 4 i32.load offset=4 i32.const 1 i32.add i32.store offset=4 local.get 1 local.get 3 i32.const 1444 i32.add i32.load8_s i32.const 2 i32.shl i32.add i32.load local.tee 4 local.get 4 i32.load offset=4 i32.const 1 i32.add i32.store offset=4 local.get 3 i32.const 2 i32.add local.tee 3 i32.const 600 i32.ne br_if 0 (;@4;) end end i32.const 0 i32.const 600 i32.store offset=2048 end local.get 1 i32.load offset=1024 i32.const 1 i32.store offset=4 local.get 1 i32.const 257 i32.const 4 call $huff_enc_qsort local.get 1 i32.const 1012 i32.add local.set 3 i32.const 253 local.set 4 block ;; label = @2 block ;; label = @3 block ;; label = @4 block ;; label = @5 block ;; label = @6 loop ;; label = @7 local.get 3 i32.const 12 i32.add i32.load i32.load offset=4 br_if 2 (;@5;) local.get 3 i32.const 8 i32.add i32.load i32.load offset=4 br_if 1 (;@6;) local.get 3 i32.const 4 i32.add i32.load i32.load offset=4 br_if 3 (;@4;) local.get 3 i32.load i32.load offset=4 br_if 4 (;@3;) local.get 3 i32.const -16 i32.add local.set 3 local.get 4 i32.const -4 i32.add local.tee 4 i32.const -3 i32.ne br_if 0 (;@7;) end i32.const 38 i32.const 38 call $__pragma_loopbound i32.const 1 local.set 2 br 4 (;@2;) end local.get 4 i32.const 2 i32.add local.set 4 br 2 (;@3;) end local.get 4 i32.const 3 i32.add local.set 4 br 1 (;@3;) end local.get 4 i32.const 1 i32.add local.set 4 end i32.const 38 i32.const 38 call $__pragma_loopbound local.get 4 i32.const 1 i32.add local.tee 2 i32.eqz br_if 1 (;@1;) end local.get 0 i32.const 4112 i32.add local.set 3 loop ;; label = @2 local.get 3 i32.const 257 i32.store local.get 3 i32.const 8 i32.add local.get 1 local.get 2 i32.const -1 i32.add local.tee 4 i32.const 2 i32.shl i32.add i32.load local.tee 5 i32.store local.get 3 i32.const 4 i32.add local.tee 0 local.get 5 i32.load offset=4 local.tee 5 i32.store block ;; label = @3 block ;; label = @4 local.get 4 br_if 0 (;@4;) i32.const 0 local.set 2 i32.const 0 local.set 4 br 1 (;@3;) end local.get 0 local.get 1 local.get 2 i32.const -2 i32.add local.tee 4 i32.const 2 i32.shl i32.add i32.load local.tee 2 i32.load offset=4 local.get 5 i32.add i32.store end local.get 3 i32.const 12 i32.add local.get 2 i32.store local.get 1 local.get 4 i32.const 2 i32.shl i32.add local.get 3 i32.store local.get 1 local.get 4 i32.const 1 i32.add local.tee 2 i32.const 4 call $huff_enc_qsort local.get 3 i32.const 16 i32.add local.set 3 local.get 4 br_if 0 (;@2;) end end local.get 1 i32.load local.set 3 local.get 1 i32.const 1040 i32.add global.set $__stack_pointer local.get 3) (func $huff_enc_encode_codes_table (type 3) (param i32 i32 i32) (local i32 i32 i32 i32 i32) global.get $__stack_pointer i32.const 48 i32.sub local.tee 3 global.set $__stack_pointer block ;; label = @1 block ;; label = @2 local.get 0 i32.load local.tee 4 i32.const 257 i32.ne br_if 0 (;@2;) block ;; label = @3 local.get 0 i32.load offset=8 i32.eqz br_if 0 (;@3;) local.get 3 i32.const 8 i32.add i32.const 32 i32.add local.get 2 i32.const 32 i32.add i32.load i32.store local.get 3 i32.const 8 i32.add i32.const 24 i32.add local.get 2 i32.const 24 i32.add i64.load align=4 i64.store local.get 3 i32.const 8 i32.add i32.const 16 i32.add local.get 2 i32.const 16 i32.add i64.load align=4 i64.store local.get 3 i32.const 8 i32.add i32.const 8 i32.add local.get 2 i32.const 8 i32.add i64.load align=4 i64.store local.get 3 local.get 2 i64.load align=4 i64.store offset=8 i32.const 31 i32.const 31 call $__pragma_loopbound local.get 2 i32.load8_u offset=31 local.set 5 i32.const 0 local.set 4 block ;; label = @4 loop ;; label = @5 local.get 2 local.get 4 i32.add local.tee 6 i32.const 31 i32.add local.get 5 i32.const 1 i32.shl local.get 6 i32.const 30 i32.add local.tee 7 i32.load8_u local.tee 5 i32.const 7 i32.shr_u i32.const 1 i32.and i32.or i32.store8 local.get 4 i32.const -30 i32.eq br_if 1 (;@4;) local.get 7 local.get 5 i32.const 1 i32.shl local.get 6 i32.const 29 i32.add i32.load8_u local.tee 5 i32.const 7 i32.shr_u i32.const 1 i32.and i32.or i32.store8 local.get 4 i32.const -2 i32.add local.set 4 br 0 (;@5;) end end local.get 2 local.get 2 i32.load8_u i32.const 1 i32.shl i32.const 1 i32.or i32.store8 local.get 2 i32.const 32 i32.add local.tee 4 local.get 4 i32.load i32.const 1 i32.add i32.store local.get 0 i32.load offset=8 local.get 1 local.get 2 call $huff_enc_encode_codes_table local.get 4 local.get 3 i32.const 8 i32.add i32.const 32 i32.add i32.load i32.store local.get 2 i32.const 24 i32.add local.get 3 i32.const 8 i32.add i32.const 24 i32.add i64.load i64.store align=4 local.get 2 i32.const 16 i32.add local.get 3 i32.const 8 i32.add i32.const 16 i32.add i64.load i64.store align=4 local.get 2 i32.const 8 i32.add local.get 3 i32.const 8 i32.add i32.const 8 i32.add i64.load i64.store align=4 local.get 2 local.get 3 i64.load offset=8 i64.store align=4 end local.get 0 i32.load offset=12 i32.eqz br_if 1 (;@1;) local.get 3 i32.const 8 i32.add i32.const 32 i32.add local.get 2 i32.const 32 i32.add i32.load i32.store local.get 3 i32.const 8 i32.add i32.const 24 i32.add local.get 2 i32.const 24 i32.add i64.load align=4 i64.store local.get 3 i32.const 8 i32.add i32.const 16 i32.add local.get 2 i32.const 16 i32.add i64.load align=4 i64.store local.get 3 i32.const 8 i32.add i32.const 8 i32.add local.get 2 i32.const 8 i32.add i64.load align=4 i64.store local.get 3 local.get 2 i64.load align=4 i64.store offset=8 i32.const 31 i32.const 31 call $__pragma_loopbound local.get 2 i32.load8_u offset=31 local.set 5 i32.const 0 local.set 4 block ;; label = @3 loop ;; label = @4 local.get 2 local.get 4 i32.add local.tee 6 i32.const 31 i32.add local.get 5 i32.const 1 i32.shl local.get 6 i32.const 30 i32.add local.tee 7 i32.load8_u local.tee 5 i32.const 7 i32.shr_u i32.const 1 i32.and i32.or i32.store8 local.get 4 i32.const -30 i32.eq br_if 1 (;@3;) local.get 7 local.get 5 i32.const 1 i32.shl local.get 6 i32.const 29 i32.add i32.load8_u local.tee 5 i32.const 7 i32.shr_u i32.const 1 i32.and i32.or i32.store8 local.get 4 i32.const -2 i32.add local.set 4 br 0 (;@4;) end end local.get 2 local.get 2 i32.load8_u i32.const 1 i32.shl i32.store8 local.get 2 i32.const 32 i32.add local.tee 4 local.get 4 i32.load i32.const 1 i32.add i32.store local.get 0 i32.load offset=12 local.get 1 local.get 2 call $huff_enc_encode_codes_table local.get 4 local.get 3 i32.const 8 i32.add i32.const 32 i32.add i32.load i32.store local.get 2 i32.const 24 i32.add local.get 3 i32.const 8 i32.add i32.const 24 i32.add i64.load i64.store align=4 local.get 2 i32.const 16 i32.add local.get 3 i32.const 8 i32.add i32.const 16 i32.add i64.load i64.store align=4 local.get 2 i32.const 8 i32.add local.get 3 i32.const 8 i32.add i32.const 8 i32.add i64.load i64.store align=4 local.get 2 local.get 3 i64.load offset=8 i64.store align=4 br 1 (;@1;) end local.get 1 local.get 4 i32.const 36 i32.mul i32.add local.tee 4 local.get 2 i64.load align=4 i64.store align=4 local.get 4 i32.const 32 i32.add local.get 2 i32.const 32 i32.add i32.load i32.store local.get 4 i32.const 24 i32.add local.get 2 i32.const 24 i32.add i64.load align=4 i64.store align=4 local.get 4 i32.const 16 i32.add local.get 2 i32.const 16 i32.add i64.load align=4 i64.store align=4 local.get 4 i32.const 8 i32.add local.get 2 i32.const 8 i32.add i64.load align=4 i64.store align=4 end local.get 3 i32.const 48 i32.add global.set $__stack_pointer) (func $huff_enc_create_codes_table (type 0) (param i32 i32) (local i32 i32 i32) global.get $__stack_pointer i32.const 48 i32.sub local.tee 2 global.set $__stack_pointer i32.const 32 i32.const 32 call $__pragma_loopbound local.get 2 i32.const 0 i32.store offset=44 local.get 2 i64.const 0 i64.store offset=36 align=4 local.get 2 i64.const 0 i64.store offset=28 align=4 local.get 2 i64.const 0 i64.store offset=20 align=4 local.get 2 i64.const 0 i64.store offset=12 align=4 i32.const 257 i32.const 257 call $__pragma_loopbound i32.const 0 local.set 3 loop ;; label = @1 i32.const 32 i32.const 32 call $__pragma_loopbound local.get 1 local.get 3 i32.add local.tee 4 i64.const 0 i64.store align=1 local.get 4 i32.const 32 i32.add i32.const 0 i32.store local.get 4 i32.const 24 i32.add i64.const 0 i64.store align=1 local.get 4 i32.const 16 i32.add i64.const 0 i64.store align=1 local.get 4 i32.const 8 i32.add i64.const 0 i64.store align=1 local.get 3 i32.const 36 i32.add local.tee 3 i32.const 9252 i32.ne br_if 0 (;@1;) end local.get 0 local.get 1 local.get 2 i32.const 12 i32.add call $huff_enc_encode_codes_table local.get 2 i32.const 48 i32.add global.set $__stack_pointer) (func $huff_enc_main (type 1) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) global.get $__stack_pointer i32.const 17536 i32.sub local.tee 0 global.set $__stack_pointer block ;; label = @1 i32.const 0 i32.load offset=2048 i32.const 599 i32.gt_s br_if 0 (;@1;) local.get 0 i32.const 9264 i32.add call $huff_enc_build_tree_encoding local.get 0 call $huff_enc_create_codes_table local.get 0 call $huff_enc_write_header i32.const 0 i32.const 0 i32.store offset=2048 i32.const 600 i32.const 600 call $__pragma_loopbound block ;; label = @2 i32.const 0 i32.load offset=2048 local.tee 1 i32.const 599 i32.gt_s br_if 0 (;@2;) loop ;; label = @3 i32.const 0 local.get 1 i32.const 1 i32.add i32.store offset=2048 local.get 0 i32.const 17496 i32.add i32.const 24 i32.add local.get 0 local.get 1 i32.const 1443 i32.add i32.load8_u i32.const 36 i32.mul i32.add local.tee 1 i32.const 24 i32.add i64.load align=4 i64.store local.get 0 i32.const 17496 i32.add i32.const 16 i32.add local.get 1 i32.const 16 i32.add i64.load align=4 i64.store local.get 0 i32.const 17496 i32.add i32.const 8 i32.add local.get 1 i32.const 8 i32.add i64.load align=4 i64.store local.get 0 i32.const 17496 i32.add i32.const 32 i32.add local.get 1 i32.const 32 i32.add i32.load local.tee 2 i32.store local.get 0 local.get 1 i64.load align=4 i64.store offset=17496 i32.const 1 i32.const 9 call $__pragma_loopbound block ;; label = @4 local.get 2 i32.eqz br_if 0 (;@4;) local.get 2 i32.const -1 i32.add local.tee 3 i32.const 7 i32.and local.set 1 local.get 3 i32.const 3 i32.shr_u local.set 3 i32.const 0 i32.load8_u offset=3088 local.set 4 i32.const 0 i32.load8_u offset=3089 local.set 5 i32.const 0 i32.load offset=2052 local.set 6 i32.const 1 local.set 7 loop ;; label = @5 local.get 0 i32.const 17496 i32.add local.get 3 i32.add i32.load8_u local.get 1 i32.const 255 i32.and local.tee 8 i32.shr_u i32.const 1 i32.and local.get 4 i32.const 255 i32.and i32.const 1 i32.shl i32.or local.set 4 local.get 8 i32.eqz local.set 9 block ;; label = @6 block ;; label = @7 local.get 5 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@7;) local.get 6 i32.const 2064 i32.add local.get 4 i32.store8 i32.const 0 local.set 5 i32.const 0 local.get 6 i32.const 1 i32.add local.tee 6 i32.store offset=2052 i32.const 0 local.set 4 br 1 (;@6;) end local.get 5 i32.const 1 i32.add local.set 5 end local.get 1 i32.const -1 i32.add i32.const 7 local.get 8 select local.set 1 local.get 3 local.get 9 i32.sub local.set 3 local.get 2 local.get 7 i32.const 1 i32.add local.tee 7 i32.const 255 i32.and i32.ge_u br_if 0 (;@5;) end i32.const 0 local.get 4 i32.store8 offset=3088 i32.const 0 local.get 5 i32.store8 offset=3089 end i32.const 0 i32.load offset=2048 local.tee 1 i32.const 600 i32.lt_s br_if 0 (;@3;) end end local.get 0 i32.const 17520 i32.add local.get 0 i32.const 9240 i32.add i64.load i64.store local.get 0 i32.const 17512 i32.add local.get 0 i32.const 9232 i32.add i64.load i64.store local.get 0 i32.const 17504 i32.add local.get 0 i32.const 9224 i32.add i64.load i64.store local.get 0 i32.const 17528 i32.add local.get 0 i32.const 9248 i32.add i32.load local.tee 2 i32.store local.get 0 local.get 0 i64.load offset=9216 i64.store offset=17496 i32.const 1 i32.const 9 call $__pragma_loopbound block ;; label = @2 block ;; label = @3 local.get 2 i32.eqz br_if 0 (;@3;) local.get 2 i32.const -1 i32.add local.tee 3 i32.const 7 i32.and local.set 1 local.get 3 i32.const 3 i32.shr_u local.set 3 i32.const 0 i32.load8_u offset=3088 local.set 4 i32.const 0 i32.load8_u offset=3089 local.set 5 i32.const 0 i32.load offset=2052 local.set 6 i32.const 1 local.set 7 loop ;; label = @4 local.get 0 i32.const 17496 i32.add local.get 3 i32.add i32.load8_u local.get 1 i32.const 255 i32.and local.tee 8 i32.shr_u i32.const 1 i32.and local.get 4 i32.const 255 i32.and i32.const 1 i32.shl i32.or local.set 4 local.get 8 i32.eqz local.set 9 block ;; label = @5 block ;; label = @6 local.get 5 i32.const 255 i32.and i32.const 7 i32.ne br_if 0 (;@6;) local.get 6 i32.const 2064 i32.add local.get 4 i32.store8 i32.const 0 local.set 5 i32.const 0 local.get 6 i32.const 1 i32.add local.tee 6 i32.store offset=2052 i32.const 0 local.set 4 br 1 (;@5;) end local.get 5 i32.const 1 i32.add local.set 5 end local.get 1 i32.const -1 i32.add i32.const 7 local.get 8 select local.set 1 local.get 3 local.get 9 i32.sub local.set 3 local.get 2 local.get 7 i32.const 1 i32.add local.tee 7 i32.const 255 i32.and i32.ge_u br_if 0 (;@4;) end i32.const 0 local.get 4 i32.store8 offset=3088 i32.const 0 local.get 5 i32.store8 offset=3089 br 1 (;@2;) end i32.const 0 i32.load8_u offset=3089 local.set 5 end local.get 5 i32.const 255 i32.and local.tee 1 i32.eqz br_if 0 (;@1;) i32.const 0 i32.const 0 i32.load offset=2052 local.tee 3 i32.const 1 i32.add i32.store offset=2052 local.get 3 i32.const 2064 i32.add i32.const 0 i32.load8_u offset=3088 i32.const 8 local.get 1 i32.sub i32.shl i32.store8 end local.get 0 i32.const 17536 i32.add global.set $__stack_pointer) (func $__original_main (type 5) (result i32) (local i32 i32 i32) i32.const 0 local.set 0 i32.const 0 i32.const 0 i32.store offset=2052 i32.const 0 i32.const 0 i32.store offset=2048 call $huff_enc_main i32.const 419 i32.const 419 call $__pragma_loopbound block ;; label = @1 block ;; label = @2 block ;; label = @3 block ;; label = @4 loop ;; label = @5 local.get 0 i32.const 1024 i32.add i32.load8_u local.get 0 i32.const 2064 i32.add i32.load8_u i32.ne br_if 1 (;@4;) local.get 0 i32.const 1025 i32.add i32.load8_u local.get 0 i32.const 2065 i32.add i32.load8_u i32.ne br_if 2 (;@3;) local.get 0 i32.const 1026 i32.add i32.load8_u local.get 0 i32.const 2066 i32.add i32.load8_u i32.ne br_if 3 (;@2;) block ;; label = @6 local.get 0 i32.const 416 i32.ne br_if 0 (;@6;) i32.const 0 return end local.get 0 i32.const 2067 i32.add local.set 1 local.get 0 i32.const 1027 i32.add local.set 2 local.get 0 i32.const 4 i32.add local.set 0 local.get 2 i32.load8_u local.get 1 i32.load8_u i32.eq br_if 0 (;@5;) br 4 (;@1;) end end local.get 0 i32.const 1 i32.add return end local.get 0 i32.const 2 i32.add return end local.get 0 i32.const 3 i32.add local.set 0 end local.get 0) (table (;0;) 1 1 funcref) (memory (;0;) 1) (global $__stack_pointer (mut i32) (i32.const 7200)) (global (;1;) i32 (i32.const 3090)) (global (;2;) i32 (i32.const 7200)) (export "memory" (memory 0)) (export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs)) (export "entrypoint" (func $huff_enc_main)) (export "main" (func $__original_main)) (export "__data_end" (global 1)) (export "__heap_base" (global 2)) (data $.rodata (i32.const 1024) "\80\00\00\00P\85 \80d\04 ?\ef\ff\f0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\07\a7\15\81\e8Ex\84\d9\14\a2\13\a4'\85\fc\8ai\14\c2\13\81\f0\ac\8a\f8\96\0b\0b\f0\c9D@r5\11*%\c3\80\d4t\c2)b43\0c\84p\f4\03$!4'\87\a4!>\9cW\0en\16W2U\c6c\8e\8c\c2QN\9eT\81\fe\81\f8n\b3\9f\c0\91\85\b8\b8\1c\d2`\92I\0a\e2\15S\98J\0do\84\c7\ca\db\f1J\c1\a7i\de\1f\93\067\1f\81(\e84\99\a0\94\12$\c5-\d8\caV\1e\1f\b1Z\85\8a\f8\17Q\c3\a0d\d7]2\b9\e1\fb\17\06\e6\e1\e5pGP`\8d\cd\b0\e6U\c4\09\18]Zy\e1LD\98?\19k\8ce\cc\d6M\1a\c2`\120M\d2\89\01\fd\04\e6\f88\f0\e0o\a3_\0a\0c\df\07\ea\a7\81($`\87}\f5\fa\02\c6x\7f\00\91\85\d5\a7\87\95\c3C\ebl\09\18W\11f\98%\04\de\83\bc\90I$\80I\14Q\98\b1\85\f8\1c\a5\83x\7f\f0\f2\b8h}m\81#\1e\04\91A\caX\09\8ag,\cdd\a7\18\98\0b\183%B\09\18\1f\ae\ca\d41\98\12`\9b\d0w\92-a08\1c\c2Z\e0\cc\90\e8\b0$`~\bb+S\0cy\81\d1`\c5#\026\b0\f9\5c\d0\cc\91\bc)\aa\b4G\10$`~\bb+S\13\00\91\81d\d1\0f+\877\06\ee\b4\c2Z\11\e5s\15\a8\fb\8c\83\a2\d9\a6]\16\04\8c\1f[\a67\19\ca\c0o\14\ab\cf'\c0You are doubtless asking \22How can I reduce the data size without losing some informations?\22. It's easy to answer to this question. I'll only take an example. I'm sure you have heard about the morse. This system established in the 19th century use a scheme very close to the huffman one. In the morse you encode the letters to transmit with two kinds of signs. If you encode these two sign possibilities in one bit, the symbol 'e' is transmitted in a single bit and the symbols 'y' and 'z' need four bits. Look at the symbols in the text you are reading, you'll fast understand the compression ratio...\00"))