Skip to content

Instantly share code, notes, and snippets.

@tanishiking
Last active November 27, 2024 10:18
Show Gist options
  • Save tanishiking/d45473891a01ec241641ada2e2fb02cd to your computer and use it in GitHub Desktop.
Save tanishiking/d45473891a01ec241641ada2e2fb02cd to your computer and use it in GitHub Desktop.
(component
(type (;0;)
(instance
(export (;0;) "error" (type (sub resource)))
)
)
(import "wasi:io/[email protected]" (instance (;0;) (type 0)))
(alias export 0 "error" (type (;1;)))
(type (;2;)
(instance
(export (;0;) "output-stream" (type (sub resource)))
(alias outer 1 1 (type (;1;)))
(export (;2;) "error" (type (eq 1)))
(type (;3;) (own 2))
(type (;4;) (variant (case "last-operation-failed" 3) (case "closed")))
(export (;5;) "stream-error" (type (eq 4)))
(type (;6;) (borrow 0))
(type (;7;) (list u8))
(type (;8;) (result (error 5)))
(type (;9;) (func (param "self" 6) (param "contents" 7) (result 8)))
(export (;0;) "[method]output-stream.blocking-write-and-flush" (func (type 9)))
)
)
(import "wasi:io/[email protected]" (instance (;1;) (type 2)))
(alias export 1 "output-stream" (type (;3;)))
(type (;4;)
(instance
(alias outer 1 3 (type (;0;)))
(export (;1;) "output-stream" (type (eq 0)))
(type (;2;) (own 1))
(type (;3;) (func (result 2)))
(export (;0;) "get-stdout" (func (type 3)))
)
)
(import "wasi:cli/[email protected]" (instance (;2;) (type 4)))
(core module (;0;)
(type (;0;) (func (param i32 i32 i32 i32)))
(type (;1;) (func (result i32)))
(type (;2;) (func (param i32 i32) (result i32)))
(type (;3;) (func (param i32 i32)))
(type (;4;) (func (param i32 i32 i64)))
(type (;5;) (func))
(type (;6;) (func (param i32) (result i32)))
(type (;7;) (func (param i32)))
(type (;8;) (func (param i32 i32 i32)))
(type (;9;) (func (param i32 i32 i32) (result i32)))
(type (;10;) (func (param i32 i32 i32 i32) (result i32)))
(import "wasi:io/[email protected]" "[method]output-stream.blocking-write-and-flush" (func (;0;) (type 0)))
(import "wasi:cli/[email protected]" "get-stdout" (func (;1;) (type 1)))
(func (;2;) (type 2) (param i32 i32) (result i32)
(local i32)
local.get 0
local.get 1
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 1
i32.const 4
i32.shr_u
local.set 1
i32.const 0
else
local.get 1
i32.const 536870910
i32.lt_u
if ;; label = @2
local.get 1
i32.const 1
i32.const 27
local.get 1
i32.clz
i32.sub
i32.shl
i32.add
i32.const 1
i32.sub
local.set 1
end
i32.const 31
local.get 1
i32.clz
i32.sub
local.set 2
local.get 1
local.get 2
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 1
local.get 2
i32.const 7
i32.sub
end
local.tee 2
i32.const 2
i32.shl
i32.add
i32.load offset=4 align=2
i32.const -1
local.get 1
i32.shl
i32.and
local.tee 1
if (result i32) ;; label = @1
local.get 0
local.get 1
i32.ctz
local.get 2
i32.const 4
i32.shl
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
else
local.get 0
i32.load align=2
i32.const -1
local.get 2
i32.const 1
i32.add
i32.shl
i32.and
local.tee 1
if (result i32) ;; label = @2
local.get 0
local.get 0
local.get 1
i32.ctz
local.tee 1
i32.const 2
i32.shl
i32.add
i32.load offset=4 align=2
i32.ctz
local.get 1
i32.const 4
i32.shl
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
else
i32.const 0
end
end
)
(func (;3;) (type 3) (param i32 i32)
(local i32 i32 i32 i32)
local.get 1
i32.load align=2
i32.const -4
i32.and
local.tee 2
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 2
i32.const 4
i32.shr_u
local.set 3
i32.const 0
else
i32.const 31
i32.const 1073741820
local.get 2
local.get 2
i32.const 1073741820
i32.ge_u
select
local.tee 3
i32.clz
i32.sub
local.set 2
local.get 3
local.get 2
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 3
local.get 2
i32.const 7
i32.sub
end
local.set 5
local.get 1
i32.load offset=8 align=2
local.set 2
local.get 1
i32.load offset=4 align=2
local.tee 4
if ;; label = @1
local.get 4
local.get 2
i32.store offset=8 align=2
end
local.get 2
if ;; label = @1
local.get 2
local.get 4
i32.store offset=4 align=2
end
local.get 1
local.get 0
local.get 5
i32.const 4
i32.shl
local.get 3
i32.add
i32.const 2
i32.shl
i32.add
local.tee 4
i32.load offset=96 align=2
i32.eq
if ;; label = @1
local.get 4
local.get 2
i32.store offset=96 align=2
local.get 2
i32.eqz
if ;; label = @2
local.get 0
local.get 5
i32.const 2
i32.shl
i32.add
local.tee 1
local.get 1
i32.load offset=4 align=2
i32.const -2
local.get 3
i32.rotl
i32.and
local.tee 1
i32.store offset=4 align=2
local.get 1
i32.eqz
if ;; label = @3
local.get 0
local.get 0
i32.load align=2
i32.const -2
local.get 5
i32.rotl
i32.and
i32.store align=2
end
end
end
)
(func (;4;) (type 3) (param i32 i32)
(local i32 i32 i32 i32)
local.get 1
i32.load align=2
local.tee 4
local.set 3
local.get 1
i32.const 4
i32.add
local.get 4
i32.const -4
i32.and
i32.add
local.tee 2
i32.load align=2
local.tee 4
i32.const 1
i32.and
if ;; label = @1
local.get 0
local.get 2
call 3
local.get 1
local.get 3
i32.const 4
i32.add
local.get 4
i32.const -4
i32.and
i32.add
local.tee 3
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 1
i32.load align=2
i32.const -4
i32.and
i32.add
local.tee 2
i32.load align=2
local.set 4
end
local.get 3
i32.const 2
i32.and
if ;; label = @1
local.get 1
i32.const 4
i32.sub
i32.load align=2
local.tee 1
i32.load align=2
local.set 5
local.get 0
local.get 1
call 3
local.get 1
local.get 5
i32.const 4
i32.add
local.get 3
i32.const -4
i32.and
i32.add
local.tee 3
i32.store align=2
end
local.get 2
local.get 4
i32.const 2
i32.or
i32.store align=2
local.get 2
i32.const 4
i32.sub
local.get 1
i32.store align=2
local.get 3
i32.const -4
i32.and
local.tee 2
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 2
i32.const 4
i32.shr_u
local.set 2
i32.const 0
else
i32.const 31
i32.const 1073741820
local.get 2
local.get 2
i32.const 1073741820
i32.ge_u
select
local.tee 2
i32.clz
i32.sub
local.set 3
local.get 2
local.get 3
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 2
local.get 3
i32.const 7
i32.sub
end
local.set 3
local.get 0
local.get 3
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
local.set 4
local.get 1
i32.const 0
i32.store offset=4 align=2
local.get 1
local.get 4
i32.store offset=8 align=2
local.get 4
if ;; label = @1
local.get 4
local.get 1
i32.store offset=4 align=2
end
local.get 0
local.get 3
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
local.get 1
i32.store offset=96 align=2
local.get 0
local.get 0
i32.load align=2
i32.const 1
local.get 3
i32.shl
i32.or
i32.store align=2
local.get 0
local.get 3
i32.const 2
i32.shl
i32.add
local.tee 0
local.get 0
i32.load offset=4 align=2
i32.const 1
local.get 2
i32.shl
i32.or
i32.store offset=4 align=2
)
(func (;5;) (type 4) (param i32 i32 i64)
(local i32 i32 i32)
local.get 0
i32.load offset=1568 align=2
local.tee 4
i32.const 0
local.get 1
i32.const 19
i32.add
i32.const -16
i32.and
i32.const 4
i32.sub
local.tee 1
i32.const 16
i32.sub
local.tee 3
local.get 4
i32.eq
select
if ;; label = @1
local.get 4
i32.load align=2
local.set 5
local.get 3
local.set 1
end
local.get 2
i32.wrap_i64
i32.const -16
i32.and
local.get 1
i32.sub
local.tee 3
i32.const 20
i32.lt_u
if ;; label = @1
return
end
local.get 1
local.get 5
i32.const 2
i32.and
local.get 3
i32.const 8
i32.sub
local.tee 3
i32.const 1
i32.or
i32.or
i32.store align=2
local.get 1
i32.const 0
i32.store offset=4 align=2
local.get 1
i32.const 0
i32.store offset=8 align=2
local.get 1
i32.const 4
i32.add
local.get 3
i32.add
local.tee 3
i32.const 2
i32.store align=2
local.get 0
local.get 3
i32.store offset=1568 align=2
local.get 0
local.get 1
call 4
)
(func (;6;) (type 5)
(local i32 i32 i32)
i32.const 56
i32.const 15
i32.add
i32.const -16
i32.and
local.set 0
memory.size
local.tee 1
local.get 0
i32.const 67107
i32.add
i32.const -65536
i32.and
i32.const 16
i32.shr_u
local.tee 2
i32.lt_s
if (result i32) ;; label = @1
local.get 2
local.get 1
i32.sub
memory.grow
i32.const 0
i32.lt_s
else
i32.const 0
end
if ;; label = @1
unreachable
end
local.get 0
i32.const 0
i32.store align=2
local.get 0
i32.const 0
i32.store offset=1568 align=2
i32.const 0
local.set 1
loop ;; label = @1
local.get 1
i32.const 23
i32.lt_u
if ;; label = @2
local.get 0
local.get 1
i32.const 2
i32.shl
i32.add
i32.const 0
i32.store offset=4 align=2
i32.const 0
local.set 2
loop ;; label = @3
local.get 2
i32.const 16
i32.lt_u
if ;; label = @4
local.get 0
local.get 1
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
i32.const 0
i32.store offset=96 align=2
local.get 2
i32.const 1
i32.add
local.set 2
br 1 (;@3;)
end
end
local.get 1
i32.const 1
i32.add
local.set 1
br 1 (;@1;)
end
end
local.get 0
local.get 0
i32.const 1572
i32.add
memory.size
i64.extend_i32_s
i64.const 16
i64.shl
call 5
local.get 0
global.set 0
)
(func (;7;) (type 6) (param i32) (result i32)
(local i32 i32 i32 i32)
global.get 0
i32.eqz
if ;; label = @1
call 6
end
global.get 0
local.set 2
local.get 0
i32.const 1073741820
i32.gt_u
if ;; label = @1
unreachable
end
local.get 2
local.get 0
i32.const 12
i32.le_u
if (result i32) ;; label = @1
i32.const 12
else
local.get 0
i32.const 19
i32.add
i32.const -16
i32.and
i32.const 4
i32.sub
end
local.tee 0
call 2
local.tee 1
i32.eqz
if ;; label = @1
memory.size
local.tee 1
local.get 0
i32.const 256
i32.ge_u
if (result i32) ;; label = @2
local.get 0
i32.const 536870910
i32.lt_u
if (result i32) ;; label = @3
local.get 0
i32.const 1
i32.const 27
local.get 0
i32.clz
i32.sub
i32.shl
i32.add
i32.const 1
i32.sub
else
local.get 0
end
else
local.get 0
end
i32.const 4
local.get 2
i32.load offset=1568 align=2
local.get 1
i32.const 16
i32.shl
i32.const 4
i32.sub
i32.ne
i32.shl
i32.add
i32.const 65535
i32.add
i32.const -65536
i32.and
i32.const 16
i32.shr_u
local.tee 3
local.get 1
local.get 3
i32.gt_s
select
memory.grow
i32.const 0
i32.lt_s
if ;; label = @2
local.get 3
memory.grow
i32.const 0
i32.lt_s
if ;; label = @3
unreachable
end
end
local.get 2
local.get 1
i32.const 16
i32.shl
memory.size
i64.extend_i32_s
i64.const 16
i64.shl
call 5
local.get 2
local.get 0
call 2
local.set 1
end
local.get 2
local.get 1
call 3
local.get 1
i32.load align=2
local.tee 3
i32.const -4
i32.and
local.get 0
i32.sub
local.tee 4
i32.const 16
i32.ge_u
if ;; label = @1
local.get 1
local.get 0
local.get 3
i32.const 2
i32.and
i32.or
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 0
i32.add
local.tee 0
local.get 4
i32.const 4
i32.sub
i32.const 1
i32.or
i32.store align=2
local.get 2
local.get 0
call 4
else
local.get 1
local.get 3
i32.const -2
i32.and
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 1
i32.load align=2
i32.const -4
i32.and
i32.add
local.tee 0
local.get 0
i32.load align=2
i32.const -3
i32.and
i32.store align=2
end
local.get 1
i32.const 4
i32.add
)
(func (;8;) (type 7) (param i32)
(local i32)
i32.const 56
local.get 0
i32.gt_u
if ;; label = @1
return
end
global.get 0
i32.eqz
if ;; label = @1
call 6
end
local.get 0
i32.const 4
i32.sub
local.set 1
local.get 0
i32.const 15
i32.and
i32.const 1
local.get 0
select
if (result i32) ;; label = @1
i32.const 1
else
local.get 1
i32.load align=2
i32.const 1
i32.and
end
if ;; label = @1
unreachable
end
local.get 1
local.get 1
i32.load align=2
i32.const 1
i32.or
i32.store align=2
global.get 0
local.get 1
call 4
)
(func (;9;) (type 6) (param i32) (result i32)
(local i32)
i32.const 8
local.get 0
i32.add
call 7
local.tee 1
i32.const 1
i32.store align=1
local.get 1
)
(func (;10;) (type 6) (param i32) (result i32)
local.get 0
i32.load offset=4 align=1
i32.const 255
i32.and
)
(func (;11;) (type 6) (param i32) (result i32)
local.get 0
i32.load offset=4 align=1
i32.const 8
i32.shr_u
)
(func (;12;) (type 2) (param i32 i32) (result i32)
(local i32)
local.get 0
call 9
local.set 2
local.get 2
local.get 1
local.get 0
i32.const 8
i32.add
memory.copy
local.get 2
i32.const 1
i32.store align=1
local.get 2
)
(func (;13;) (type 6) (param i32) (result i32)
(local i32)
local.get 0
call 11
i32.const 4
i32.mul
local.set 1
local.get 1
local.get 0
local.get 1
i32.add
i32.load8_u offset=7
i32.sub
i32.const 1
i32.sub
)
(func (;14;) (type 7) (param i32)
(local i32)
local.get 0
i32.load align=1
local.tee 1
i32.const 0
i32.ge_s
if ;; label = @1
local.get 0
local.get 1
i32.const 1
i32.add
i32.store align=1
end
)
(func (;15;) (type 7) (param i32)
(local i32)
local.get 0
i32.load align=1
local.tee 1
i32.const 1
i32.gt_s
if ;; label = @1
local.get 0
local.get 1
i32.const 1
i32.sub
i32.store align=1
else
local.get 1
i32.const 1
i32.eq
if ;; label = @2
local.get 0
call 16
end
end
)
(func (;16;) (type 7) (param i32)
(local i32 i32 i32 i32)
local.get 0
i32.load offset=4 align=1
local.tee 1
i32.const 255
i32.and
local.tee 3
i32.const 240
i32.lt_u
if ;; label = @1
local.get 0
call 17
else
local.get 3
i32.const 242
i32.eq
if ;; label = @2
local.get 1
i32.const 8
i32.shr_u
local.set 2
loop ;; label = @3
local.get 2
i32.const 0
i32.gt_s
if ;; label = @4
local.get 2
i32.const 1
i32.sub
local.tee 2
i32.const 4
i32.mul
local.get 0
i32.add
i32.load offset=8 align=1
local.tee 4
i32.const 0
i32.ne
if ;; label = @5
local.get 4
call 15
end
br 1 (;@3;)
end
end
end
end
local.get 0
call 8
)
(func (;17;) (type 7) (param i32)
(local i32 i32 i32 i32 i32 i32 i32)
local.get 0
i32.load offset=4 align=1
i32.const 8
i32.shr_u
local.tee 1
i32.eqz
if ;; label = @1
return
end
local.get 1
i32.const 5
i32.shr_u
local.get 1
i32.const 31
i32.and
i32.const 0
i32.ne
i32.add
local.set 2
i32.const 0
local.set 3
local.get 2
i32.const 1
i32.sub
local.get 1
i32.add
i32.const 4
i32.mul
local.get 0
i32.add
i32.const 8
i32.add
local.set 4
local.get 4
i32.load align=1
local.set 5
i32.const 0
local.set 6
loop ;; label = @1
local.get 6
local.get 1
i32.lt_u
if ;; label = @2
local.get 5
i32.const 1
local.get 3
i32.shl
i32.and
i32.const 0
i32.ne
if ;; label = @3
local.get 6
i32.const 4
i32.mul
local.get 0
i32.add
i32.load offset=8 align=1
local.tee 7
i32.const 0
i32.ne
if ;; label = @4
local.get 7
call 15
end
end
local.get 6
i32.const 1
i32.add
local.set 6
local.get 3
i32.const 1
i32.add
local.set 3
local.get 3
i32.const 32
i32.eq
if ;; label = @3
i32.const 0
local.set 3
local.get 4
i32.const 4
i32.sub
local.set 4
local.get 4
i32.load align=1
local.set 5
end
br 1 (;@1;)
end
end
)
(func (;18;) (type 3) (param i32 i32)
local.get 0
local.get 1
i32.store8
)
(func (;19;) (type 6) (param i32) (result i32)
local.get 0
i32.load8_u
)
(func (;20;) (type 3) (param i32 i32)
local.get 0
local.get 1
i32.store align=1
)
(func (;21;) (type 6) (param i32) (result i32)
local.get 0
i32.load align=1
)
(func (;22;) (type 6) (param i32) (result i32)
local.get 0
call 7
)
(func (;23;) (type 7) (param i32)
local.get 0
i32.const 8
i32.sub
call 15
)
(func (;24;) (type 8) (param i32 i32 i32)
local.get 0
local.get 1
local.get 2
memory.copy
)
(func (;25;) (type 6) (param i32) (result i32)
local.get 0
i32.const 8
i32.add
)
(func (;26;) (type 2) (param i32 i32) (result i32)
local.get 0
local.get 1
call 18
i32.const 0
)
(func (;27;) (type 6) (param i32) (result i32)
local.get 0
call 19
)
(func (;28;) (type 2) (param i32 i32) (result i32)
local.get 0
local.get 1
call 20
i32.const 0
)
(func (;29;) (type 6) (param i32) (result i32)
local.get 0
call 21
)
(func (;30;) (type 6) (param i32) (result i32)
local.get 0
call 22
)
(func (;31;) (type 6) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 0
i32.const 4
i32.div_s
local.tee 13
i32.const 1
i32.add
local.tee 1
i32.const 4
i32.mul
local.set 12
i32.const 8
local.get 12
i32.add
local.tee 11
call 30
local.tee 2
i32.const 1
call 28
drop
local.get 2
i32.const 4
i32.add
local.set 8
local.get 1
i32.const 8
i32.shl
local.tee 10
i32.const 246
i32.or
local.set 9
local.get 8
local.get 9
call 28
drop
local.get 1
i32.const 4
i32.mul
local.set 7
local.get 2
local.get 7
i32.add
local.tee 6
i32.const 7
i32.add
local.set 3
local.get 0
i32.const 4
i32.rem_s
local.set 5
i32.const 3
local.get 5
i32.sub
local.set 4
local.get 3
local.get 4
call 26
drop
local.get 2
i32.const 8
i32.add
)
(func (;32;) (type 6) (param i32) (result i32)
local.get 0
call 23
i32.const 0
)
(func (;33;) (type 9) (param i32 i32 i32) (result i32)
local.get 0
local.get 1
local.get 2
call 24
i32.const 0
)
(func (;34;) (type 2) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 1
i32.const 8
i32.sub
local.set 2
local.get 0
i32.const 8
i32.sub
local.set 3
local.get 2
i32.const 4
i32.add
local.tee 10
call 29
local.tee 9
i32.const 16777215
i32.and
local.set 4
local.get 3
i32.const 4
i32.add
local.tee 8
call 29
local.tee 7
i32.const 16777215
i32.and
local.set 5
local.get 4
local.get 5
i32.lt_s
if (result i32) ;; label = @1
local.get 4
else
local.get 5
end
local.set 6
local.get 3
local.get 2
local.get 6
call 33
)
(func (;35;) (type 6) (param i32) (result i32)
local.get 0
call 25
)
(func (;36;) (type 10) (param i32 i32 i32 i32) (result i32)
local.get 0
local.get 1
local.get 2
local.get 3
call 0
i32.const 0
)
(func (;37;) (type 2) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 0
local.set 2
i32.const 12
call 31
local.set 3
local.get 1
call 14
local.get 1
call 35
local.set 13
local.get 1
call 13
local.set 14
local.get 2
local.get 13
local.get 14
local.get 3
call 36
drop
local.get 3
i32.const 0
i32.add
local.tee 12
call 27
local.tee 4
i32.const 0
i32.eq
if (result i32) ;; label = @1
i32.const 0
local.set 8
i32.const 8
call 9
local.tee 15
i32.const 257
i32.store offset=4 align=1
local.get 15
i32.const 0
i32.store offset=12 align=1
local.get 15
local.get 8
i32.store offset=8 align=1
local.get 15
else
local.get 4
i32.const 1
i32.eq
if (result i32) ;; label = @2
local.get 3
i32.const 4
i32.add
local.tee 11
call 27
local.tee 6
i32.const 0
i32.eq
if (result i32) ;; label = @3
local.get 3
i32.const 8
i32.add
local.tee 10
call 29
local.set 9
i32.const 8
call 9
local.tee 17
i32.const 256
i32.store offset=4 align=1
local.get 17
i32.const 0
i32.store offset=12 align=1
local.get 17
local.get 9
i32.store offset=8 align=1
local.get 17
else
local.get 6
i32.const 1
i32.eq
if (result i32) ;; label = @4
i32.const 16
else
unreachable
end
end
local.set 7
i32.const 8
call 9
local.tee 16
i32.const 256
i32.store offset=4 align=1
local.get 16
i32.const 1
i32.store offset=12 align=1
local.get 16
local.get 7
i32.store offset=8 align=1
local.get 16
else
unreachable
end
end
local.set 5
local.get 1
call 15
local.get 3
call 32
drop
local.get 5
)
(func (;38;) (type 1) (result i32)
call 1
)
(func (;39;) (type 1) (result i32)
(local i32)
call 38
local.tee 0
)
(func (;40;) (type 1) (result i32)
(local i32 i32 i32 i32 i32)
call 39
local.set 0
i32.const 8
i32.const 32
call 12
local.set 1
local.get 0
local.get 1
call 37
local.tee 3
call 15
i32.const 0
local.set 2
i32.const 8
call 9
local.tee 4
i32.const 257
i32.store offset=4 align=1
local.get 4
i32.const 0
i32.store offset=12 align=1
local.get 4
local.get 2
i32.store offset=8 align=1
local.get 4
)
(func (;41;) (type 1) (result i32)
(local i32 i32 i32)
call 40
local.tee 0
call 10
local.tee 2
i32.const 1
i32.eq
if (result i32) ;; label = @1
local.get 0
call 15
i32.const 0
else
local.get 0
call 15
i32.const 1
end
local.tee 1
)
(func (;42;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i32)
local.get 0
i32.const 0
i32.eq
if (result i32) ;; label = @1
local.get 1
i32.const 0
i32.eq
else
i32.const 0
end
if ;; label = @1
local.get 3
call 31
return
end
local.get 3
i32.const 0
i32.le_s
if ;; label = @1
local.get 0
call 32
drop
i32.const 0
return
end
local.get 3
call 31
local.tee 4
local.get 0
call 34
drop
local.get 0
call 32
drop
local.get 4
)
(func (;43;) (type 5))
(table (;0;) 0 0 funcref)
(memory (;0;) 1)
(global (;0;) (mut i32) i32.const 0)
(export "memory" (memory 0))
(export "wasi:cli/[email protected]#run" (func 41))
(export "cabi_realloc" (func 42))
(start 43)
(elem (;0;) (i32.const 0) func)
(data (;0;) (i32.const 16) "\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\f6\02\00\00hello\00\00\02\00\00\00\00\00\00\00\00")
(@producers
(processed-by "wit-component" "0.214.0")
)
)
(core module (;1;)
(type (;0;) (func (param i32 i32 i32 i32)))
(func $"indirect-wasi:io/[email protected][method]output-stream.blocking-write-and-flush" (;0;) (type 0) (param i32 i32 i32 i32)
local.get 0
local.get 1
local.get 2
local.get 3
i32.const 0
call_indirect (type 0)
)
(table (;0;) 1 1 funcref)
(export "0" (func $"indirect-wasi:io/[email protected][method]output-stream.blocking-write-and-flush"))
(export "$imports" (table 0))
(@producers
(processed-by "wit-component" "0.214.0")
)
)
(core module (;2;)
(type (;0;) (func (param i32 i32 i32 i32)))
(import "" "0" (func (;0;) (type 0)))
(import "" "$imports" (table (;0;) 1 1 funcref))
(elem (;0;) (i32.const 0) func 0)
(@producers
(processed-by "wit-component" "0.214.0")
)
)
(core instance (;0;) (instantiate 1))
(alias core export 0 "0" (core func (;0;)))
(core instance (;1;)
(export "[method]output-stream.blocking-write-and-flush" (func 0))
)
(alias export 2 "get-stdout" (func (;0;)))
(core func (;1;) (canon lower (func 0)))
(core instance (;2;)
(export "get-stdout" (func 1))
)
(core instance (;3;) (instantiate 0
(with "wasi:io/[email protected]" (instance 1))
(with "wasi:cli/[email protected]" (instance 2))
)
)
(alias core export 3 "memory" (core memory (;0;)))
(alias core export 3 "cabi_realloc" (core func (;2;)))
(alias core export 0 "$imports" (core table (;0;)))
(alias export 1 "[method]output-stream.blocking-write-and-flush" (func (;1;)))
(core func (;3;) (canon lower (func 1) (memory 0)))
(core instance (;4;)
(export "$imports" (table 0))
(export "0" (func 3))
)
(core instance (;5;) (instantiate 2
(with "" (instance 4))
)
)
(type (;5;) (result))
(type (;6;) (func (result 5)))
(alias core export 3 "wasi:cli/[email protected]#run" (core func (;4;)))
(func (;2;) (type 6) (canon lift (core func 4)))
(component (;0;)
(type (;0;) (result))
(type (;1;) (func (result 0)))
(import "import-func-run" (func (;0;) (type 1)))
(type (;2;) (result))
(type (;3;) (func (result 2)))
(export (;1;) "run" (func 0) (func (type 3)))
)
(instance (;3;) (instantiate 0
(with "import-func-run" (func 2))
)
)
(export (;4;) "wasi:cli/[email protected]" (instance 3))
(@producers
(processed-by "wit-component" "0.214.0")
)
)
(module
(type (;0;) (func (param i32 i32 i32 i32)))
(type (;1;) (func (result i32)))
(type (;2;) (func (param i32 i32) (result i32)))
(type (;3;) (func (param i32 i32)))
(type (;4;) (func (param i32 i32 i64)))
(type (;5;) (func))
(type (;6;) (func (param i32) (result i32)))
(type (;7;) (func (param i32)))
(type (;8;) (func (param i32 i32 i32)))
(type (;9;) (func (param i32 i32 i32) (result i32)))
(type (;10;) (func (param i32 i32 i32 i32) (result i32)))
(import "wasi:io/[email protected]" "[method]output-stream.blocking-write-and-flush" (func (;0;) (type 0)))
(import "wasi:cli/[email protected]" "get-stdout" (func (;1;) (type 1)))
(func (;2;) (type 2) (param i32 i32) (result i32)
(local i32)
local.get 0
local.get 1
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 1
i32.const 4
i32.shr_u
local.set 1
i32.const 0
else
local.get 1
i32.const 536870910
i32.lt_u
if ;; label = @2
local.get 1
i32.const 1
i32.const 27
local.get 1
i32.clz
i32.sub
i32.shl
i32.add
i32.const 1
i32.sub
local.set 1
end
i32.const 31
local.get 1
i32.clz
i32.sub
local.set 2
local.get 1
local.get 2
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 1
local.get 2
i32.const 7
i32.sub
end
local.tee 2
i32.const 2
i32.shl
i32.add
i32.load offset=4 align=2
i32.const -1
local.get 1
i32.shl
i32.and
local.tee 1
if (result i32) ;; label = @1
local.get 0
local.get 1
i32.ctz
local.get 2
i32.const 4
i32.shl
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
else
local.get 0
i32.load align=2
i32.const -1
local.get 2
i32.const 1
i32.add
i32.shl
i32.and
local.tee 1
if (result i32) ;; label = @2
local.get 0
local.get 0
local.get 1
i32.ctz
local.tee 1
i32.const 2
i32.shl
i32.add
i32.load offset=4 align=2
i32.ctz
local.get 1
i32.const 4
i32.shl
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
else
i32.const 0
end
end
)
(func (;3;) (type 3) (param i32 i32)
(local i32 i32 i32 i32)
local.get 1
i32.load align=2
i32.const -4
i32.and
local.tee 2
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 2
i32.const 4
i32.shr_u
local.set 3
i32.const 0
else
i32.const 31
i32.const 1073741820
local.get 2
local.get 2
i32.const 1073741820
i32.ge_u
select
local.tee 3
i32.clz
i32.sub
local.set 2
local.get 3
local.get 2
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 3
local.get 2
i32.const 7
i32.sub
end
local.set 5
local.get 1
i32.load offset=8 align=2
local.set 2
local.get 1
i32.load offset=4 align=2
local.tee 4
if ;; label = @1
local.get 4
local.get 2
i32.store offset=8 align=2
end
local.get 2
if ;; label = @1
local.get 2
local.get 4
i32.store offset=4 align=2
end
local.get 1
local.get 0
local.get 5
i32.const 4
i32.shl
local.get 3
i32.add
i32.const 2
i32.shl
i32.add
local.tee 4
i32.load offset=96 align=2
i32.eq
if ;; label = @1
local.get 4
local.get 2
i32.store offset=96 align=2
local.get 2
i32.eqz
if ;; label = @2
local.get 0
local.get 5
i32.const 2
i32.shl
i32.add
local.tee 1
local.get 1
i32.load offset=4 align=2
i32.const -2
local.get 3
i32.rotl
i32.and
local.tee 1
i32.store offset=4 align=2
local.get 1
i32.eqz
if ;; label = @3
local.get 0
local.get 0
i32.load align=2
i32.const -2
local.get 5
i32.rotl
i32.and
i32.store align=2
end
end
end
)
(func (;4;) (type 3) (param i32 i32)
(local i32 i32 i32 i32)
local.get 1
i32.load align=2
local.tee 4
local.set 3
local.get 1
i32.const 4
i32.add
local.get 4
i32.const -4
i32.and
i32.add
local.tee 2
i32.load align=2
local.tee 4
i32.const 1
i32.and
if ;; label = @1
local.get 0
local.get 2
call 3
local.get 1
local.get 3
i32.const 4
i32.add
local.get 4
i32.const -4
i32.and
i32.add
local.tee 3
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 1
i32.load align=2
i32.const -4
i32.and
i32.add
local.tee 2
i32.load align=2
local.set 4
end
local.get 3
i32.const 2
i32.and
if ;; label = @1
local.get 1
i32.const 4
i32.sub
i32.load align=2
local.tee 1
i32.load align=2
local.set 5
local.get 0
local.get 1
call 3
local.get 1
local.get 5
i32.const 4
i32.add
local.get 3
i32.const -4
i32.and
i32.add
local.tee 3
i32.store align=2
end
local.get 2
local.get 4
i32.const 2
i32.or
i32.store align=2
local.get 2
i32.const 4
i32.sub
local.get 1
i32.store align=2
local.get 3
i32.const -4
i32.and
local.tee 2
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 2
i32.const 4
i32.shr_u
local.set 2
i32.const 0
else
i32.const 31
i32.const 1073741820
local.get 2
local.get 2
i32.const 1073741820
i32.ge_u
select
local.tee 2
i32.clz
i32.sub
local.set 3
local.get 2
local.get 3
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 2
local.get 3
i32.const 7
i32.sub
end
local.set 3
local.get 0
local.get 3
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
local.set 4
local.get 1
i32.const 0
i32.store offset=4 align=2
local.get 1
local.get 4
i32.store offset=8 align=2
local.get 4
if ;; label = @1
local.get 4
local.get 1
i32.store offset=4 align=2
end
local.get 0
local.get 3
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
local.get 1
i32.store offset=96 align=2
local.get 0
local.get 0
i32.load align=2
i32.const 1
local.get 3
i32.shl
i32.or
i32.store align=2
local.get 0
local.get 3
i32.const 2
i32.shl
i32.add
local.tee 0
local.get 0
i32.load offset=4 align=2
i32.const 1
local.get 2
i32.shl
i32.or
i32.store offset=4 align=2
)
(func (;5;) (type 4) (param i32 i32 i64)
(local i32 i32 i32)
local.get 0
i32.load offset=1568 align=2
local.tee 4
i32.const 0
local.get 1
i32.const 19
i32.add
i32.const -16
i32.and
i32.const 4
i32.sub
local.tee 1
i32.const 16
i32.sub
local.tee 3
local.get 4
i32.eq
select
if ;; label = @1
local.get 4
i32.load align=2
local.set 5
local.get 3
local.set 1
end
local.get 2
i32.wrap_i64
i32.const -16
i32.and
local.get 1
i32.sub
local.tee 3
i32.const 20
i32.lt_u
if ;; label = @1
return
end
local.get 1
local.get 5
i32.const 2
i32.and
local.get 3
i32.const 8
i32.sub
local.tee 3
i32.const 1
i32.or
i32.or
i32.store align=2
local.get 1
i32.const 0
i32.store offset=4 align=2
local.get 1
i32.const 0
i32.store offset=8 align=2
local.get 1
i32.const 4
i32.add
local.get 3
i32.add
local.tee 3
i32.const 2
i32.store align=2
local.get 0
local.get 3
i32.store offset=1568 align=2
local.get 0
local.get 1
call 4
)
(func (;6;) (type 5)
(local i32 i32 i32)
i32.const 56
i32.const 15
i32.add
i32.const -16
i32.and
local.set 0
memory.size
local.tee 1
local.get 0
i32.const 67107
i32.add
i32.const -65536
i32.and
i32.const 16
i32.shr_u
local.tee 2
i32.lt_s
if (result i32) ;; label = @1
local.get 2
local.get 1
i32.sub
memory.grow
i32.const 0
i32.lt_s
else
i32.const 0
end
if ;; label = @1
unreachable
end
local.get 0
i32.const 0
i32.store align=2
local.get 0
i32.const 0
i32.store offset=1568 align=2
i32.const 0
local.set 1
loop ;; label = @1
local.get 1
i32.const 23
i32.lt_u
if ;; label = @2
local.get 0
local.get 1
i32.const 2
i32.shl
i32.add
i32.const 0
i32.store offset=4 align=2
i32.const 0
local.set 2
loop ;; label = @3
local.get 2
i32.const 16
i32.lt_u
if ;; label = @4
local.get 0
local.get 1
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
i32.const 0
i32.store offset=96 align=2
local.get 2
i32.const 1
i32.add
local.set 2
br 1 (;@3;)
end
end
local.get 1
i32.const 1
i32.add
local.set 1
br 1 (;@1;)
end
end
local.get 0
local.get 0
i32.const 1572
i32.add
memory.size
i64.extend_i32_s
i64.const 16
i64.shl
call 5
local.get 0
global.set 0
)
(func (;7;) (type 6) (param i32) (result i32)
(local i32 i32 i32 i32)
global.get 0
i32.eqz
if ;; label = @1
call 6
end
global.get 0
local.set 2
local.get 0
i32.const 1073741820
i32.gt_u
if ;; label = @1
unreachable
end
local.get 2
local.get 0
i32.const 12
i32.le_u
if (result i32) ;; label = @1
i32.const 12
else
local.get 0
i32.const 19
i32.add
i32.const -16
i32.and
i32.const 4
i32.sub
end
local.tee 0
call 2
local.tee 1
i32.eqz
if ;; label = @1
memory.size
local.tee 1
local.get 0
i32.const 256
i32.ge_u
if (result i32) ;; label = @2
local.get 0
i32.const 536870910
i32.lt_u
if (result i32) ;; label = @3
local.get 0
i32.const 1
i32.const 27
local.get 0
i32.clz
i32.sub
i32.shl
i32.add
i32.const 1
i32.sub
else
local.get 0
end
else
local.get 0
end
i32.const 4
local.get 2
i32.load offset=1568 align=2
local.get 1
i32.const 16
i32.shl
i32.const 4
i32.sub
i32.ne
i32.shl
i32.add
i32.const 65535
i32.add
i32.const -65536
i32.and
i32.const 16
i32.shr_u
local.tee 3
local.get 1
local.get 3
i32.gt_s
select
memory.grow
i32.const 0
i32.lt_s
if ;; label = @2
local.get 3
memory.grow
i32.const 0
i32.lt_s
if ;; label = @3
unreachable
end
end
local.get 2
local.get 1
i32.const 16
i32.shl
memory.size
i64.extend_i32_s
i64.const 16
i64.shl
call 5
local.get 2
local.get 0
call 2
local.set 1
end
local.get 2
local.get 1
call 3
local.get 1
i32.load align=2
local.tee 3
i32.const -4
i32.and
local.get 0
i32.sub
local.tee 4
i32.const 16
i32.ge_u
if ;; label = @1
local.get 1
local.get 0
local.get 3
i32.const 2
i32.and
i32.or
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 0
i32.add
local.tee 0
local.get 4
i32.const 4
i32.sub
i32.const 1
i32.or
i32.store align=2
local.get 2
local.get 0
call 4
else
local.get 1
local.get 3
i32.const -2
i32.and
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 1
i32.load align=2
i32.const -4
i32.and
i32.add
local.tee 0
local.get 0
i32.load align=2
i32.const -3
i32.and
i32.store align=2
end
local.get 1
i32.const 4
i32.add
)
(func (;8;) (type 7) (param i32)
(local i32)
i32.const 56
local.get 0
i32.gt_u
if ;; label = @1
return
end
global.get 0
i32.eqz
if ;; label = @1
call 6
end
local.get 0
i32.const 4
i32.sub
local.set 1
local.get 0
i32.const 15
i32.and
i32.const 1
local.get 0
select
if (result i32) ;; label = @1
i32.const 1
else
local.get 1
i32.load align=2
i32.const 1
i32.and
end
if ;; label = @1
unreachable
end
local.get 1
local.get 1
i32.load align=2
i32.const 1
i32.or
i32.store align=2
global.get 0
local.get 1
call 4
)
(func (;9;) (type 6) (param i32) (result i32)
(local i32)
i32.const 8
local.get 0
i32.add
call 7
local.tee 1
i32.const 1
i32.store align=1
local.get 1
)
(func (;10;) (type 6) (param i32) (result i32)
local.get 0
i32.load offset=4 align=1
i32.const 255
i32.and
)
(func (;11;) (type 6) (param i32) (result i32)
local.get 0
i32.load offset=4 align=1
i32.const 8
i32.shr_u
)
(func (;12;) (type 2) (param i32 i32) (result i32)
(local i32)
local.get 0
call 9
local.set 2
local.get 2
local.get 1
local.get 0
i32.const 8
i32.add
memory.copy
local.get 2
i32.const 1
i32.store align=1
local.get 2
)
(func (;13;) (type 6) (param i32) (result i32)
(local i32)
local.get 0
call 11
i32.const 4
i32.mul
local.set 1
local.get 1
local.get 0
local.get 1
i32.add
i32.load8_u offset=7
i32.sub
i32.const 1
i32.sub
)
(func (;14;) (type 7) (param i32)
(local i32)
local.get 0
i32.load align=1
local.tee 1
i32.const 0
i32.ge_s
if ;; label = @1
local.get 0
local.get 1
i32.const 1
i32.add
i32.store align=1
end
)
(func (;15;) (type 7) (param i32)
(local i32)
local.get 0
i32.load align=1
local.tee 1
i32.const 1
i32.gt_s
if ;; label = @1
local.get 0
local.get 1
i32.const 1
i32.sub
i32.store align=1
else
local.get 1
i32.const 1
i32.eq
if ;; label = @2
local.get 0
call 16
end
end
)
(func (;16;) (type 7) (param i32)
(local i32 i32 i32 i32)
local.get 0
i32.load offset=4 align=1
local.tee 1
i32.const 255
i32.and
local.tee 3
i32.const 240
i32.lt_u
if ;; label = @1
local.get 0
call 17
else
local.get 3
i32.const 242
i32.eq
if ;; label = @2
local.get 1
i32.const 8
i32.shr_u
local.set 2
loop ;; label = @3
local.get 2
i32.const 0
i32.gt_s
if ;; label = @4
local.get 2
i32.const 1
i32.sub
local.tee 2
i32.const 4
i32.mul
local.get 0
i32.add
i32.load offset=8 align=1
local.tee 4
i32.const 0
i32.ne
if ;; label = @5
local.get 4
call 15
end
br 1 (;@3;)
end
end
end
end
local.get 0
call 8
)
(func (;17;) (type 7) (param i32)
(local i32 i32 i32 i32 i32 i32 i32)
local.get 0
i32.load offset=4 align=1
i32.const 8
i32.shr_u
local.tee 1
i32.eqz
if ;; label = @1
return
end
local.get 1
i32.const 5
i32.shr_u
local.get 1
i32.const 31
i32.and
i32.const 0
i32.ne
i32.add
local.set 2
i32.const 0
local.set 3
local.get 2
i32.const 1
i32.sub
local.get 1
i32.add
i32.const 4
i32.mul
local.get 0
i32.add
i32.const 8
i32.add
local.set 4
local.get 4
i32.load align=1
local.set 5
i32.const 0
local.set 6
loop ;; label = @1
local.get 6
local.get 1
i32.lt_u
if ;; label = @2
local.get 5
i32.const 1
local.get 3
i32.shl
i32.and
i32.const 0
i32.ne
if ;; label = @3
local.get 6
i32.const 4
i32.mul
local.get 0
i32.add
i32.load offset=8 align=1
local.tee 7
i32.const 0
i32.ne
if ;; label = @4
local.get 7
call 15
end
end
local.get 6
i32.const 1
i32.add
local.set 6
local.get 3
i32.const 1
i32.add
local.set 3
local.get 3
i32.const 32
i32.eq
if ;; label = @3
i32.const 0
local.set 3
local.get 4
i32.const 4
i32.sub
local.set 4
local.get 4
i32.load align=1
local.set 5
end
br 1 (;@1;)
end
end
)
(func (;18;) (type 3) (param i32 i32)
local.get 0
local.get 1
i32.store8
)
(func (;19;) (type 6) (param i32) (result i32)
local.get 0
i32.load8_u
)
(func (;20;) (type 3) (param i32 i32)
local.get 0
local.get 1
i32.store align=1
)
(func (;21;) (type 6) (param i32) (result i32)
local.get 0
i32.load align=1
)
(func (;22;) (type 6) (param i32) (result i32)
local.get 0
call 7
)
(func (;23;) (type 7) (param i32)
local.get 0
i32.const 8
i32.sub
call 15
)
(func (;24;) (type 8) (param i32 i32 i32)
local.get 0
local.get 1
local.get 2
memory.copy
)
(func (;25;) (type 6) (param i32) (result i32)
local.get 0
i32.const 8
i32.add
)
(func (;26;) (type 2) (param i32 i32) (result i32)
local.get 0
local.get 1
call 18
i32.const 0
)
(func (;27;) (type 6) (param i32) (result i32)
local.get 0
call 19
)
(func (;28;) (type 2) (param i32 i32) (result i32)
local.get 0
local.get 1
call 20
i32.const 0
)
(func (;29;) (type 6) (param i32) (result i32)
local.get 0
call 21
)
(func (;30;) (type 6) (param i32) (result i32)
local.get 0
call 22
)
(func (;31;) (type 6) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 0
i32.const 4
i32.div_s
local.tee 13
i32.const 1
i32.add
local.tee 1
i32.const 4
i32.mul
local.set 12
i32.const 8
local.get 12
i32.add
local.tee 11
call 30
local.tee 2
i32.const 1
call 28
drop
local.get 2
i32.const 4
i32.add
local.set 8
local.get 1
i32.const 8
i32.shl
local.tee 10
i32.const 246
i32.or
local.set 9
local.get 8
local.get 9
call 28
drop
local.get 1
i32.const 4
i32.mul
local.set 7
local.get 2
local.get 7
i32.add
local.tee 6
i32.const 7
i32.add
local.set 3
local.get 0
i32.const 4
i32.rem_s
local.set 5
i32.const 3
local.get 5
i32.sub
local.set 4
local.get 3
local.get 4
call 26
drop
local.get 2
i32.const 8
i32.add
)
(func (;32;) (type 6) (param i32) (result i32)
local.get 0
call 23
i32.const 0
)
(func (;33;) (type 9) (param i32 i32 i32) (result i32)
local.get 0
local.get 1
local.get 2
call 24
i32.const 0
)
(func (;34;) (type 2) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 1
i32.const 8
i32.sub
local.set 2
local.get 0
i32.const 8
i32.sub
local.set 3
local.get 2
i32.const 4
i32.add
local.tee 10
call 29
local.tee 9
i32.const 16777215
i32.and
local.set 4
local.get 3
i32.const 4
i32.add
local.tee 8
call 29
local.tee 7
i32.const 16777215
i32.and
local.set 5
local.get 4
local.get 5
i32.lt_s
if (result i32) ;; label = @1
local.get 4
else
local.get 5
end
local.set 6
local.get 3
local.get 2
local.get 6
call 33
)
(func (;35;) (type 6) (param i32) (result i32)
local.get 0
call 25
)
(func (;36;) (type 10) (param i32 i32 i32 i32) (result i32)
local.get 0
local.get 1
local.get 2
local.get 3
call 0
i32.const 0
)
(func (;37;) (type 2) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 0
local.set 2
i32.const 12
call 31
local.set 3
local.get 1
call 14
local.get 1
call 35
local.set 13
local.get 1
call 13
local.set 14
local.get 2
local.get 13
local.get 14
local.get 3
call 36
drop
local.get 3
i32.const 0
i32.add
local.tee 12
call 27
local.tee 4
i32.const 0
i32.eq
if (result i32) ;; label = @1
i32.const 0
local.set 8
i32.const 8
call 9
local.tee 15
i32.const 257
i32.store offset=4 align=1
local.get 15
i32.const 0
i32.store offset=12 align=1
local.get 15
local.get 8
i32.store offset=8 align=1
local.get 15
else
local.get 4
i32.const 1
i32.eq
if (result i32) ;; label = @2
local.get 3
i32.const 4
i32.add
local.tee 11
call 27
local.tee 6
i32.const 0
i32.eq
if (result i32) ;; label = @3
local.get 3
i32.const 8
i32.add
local.tee 10
call 29
local.set 9
i32.const 8
call 9
local.tee 17
i32.const 256
i32.store offset=4 align=1
local.get 17
i32.const 0
i32.store offset=12 align=1
local.get 17
local.get 9
i32.store offset=8 align=1
local.get 17
else
local.get 6
i32.const 1
i32.eq
if (result i32) ;; label = @4
i32.const 16
else
unreachable
end
end
local.set 7
i32.const 8
call 9
local.tee 16
i32.const 256
i32.store offset=4 align=1
local.get 16
i32.const 1
i32.store offset=12 align=1
local.get 16
local.get 7
i32.store offset=8 align=1
local.get 16
else
unreachable
end
end
local.set 5
local.get 1
call 15
local.get 3
call 32
drop
local.get 5
)
(func (;38;) (type 1) (result i32)
call 1
)
(func (;39;) (type 1) (result i32)
(local i32)
call 38
local.tee 0
)
(func (;40;) (type 1) (result i32)
(local i32 i32 i32 i32 i32)
call 39
local.set 0
i32.const 8
i32.const 32
call 12
local.set 1
local.get 0
local.get 1
call 37
local.tee 3
call 15
i32.const 0
local.set 2
i32.const 8
call 9
local.tee 4
i32.const 257
i32.store offset=4 align=1
local.get 4
i32.const 0
i32.store offset=12 align=1
local.get 4
local.get 2
i32.store offset=8 align=1
local.get 4
)
(func (;41;) (type 1) (result i32)
(local i32 i32 i32)
call 40
local.tee 0
call 10
local.tee 2
i32.const 1
i32.eq
if (result i32) ;; label = @1
local.get 0
call 15
i32.const 0
else
local.get 0
call 15
i32.const 1
end
local.tee 1
)
(func (;42;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i32)
local.get 0
i32.const 0
i32.eq
if (result i32) ;; label = @1
local.get 1
i32.const 0
i32.eq
else
i32.const 0
end
if ;; label = @1
local.get 3
call 31
return
end
local.get 3
i32.const 0
i32.le_s
if ;; label = @1
local.get 0
call 32
drop
i32.const 0
return
end
local.get 3
call 31
local.tee 4
local.get 0
call 34
drop
local.get 0
call 32
drop
local.get 4
)
(func (;43;) (type 5))
(table (;0;) 0 0 funcref)
(memory (;0;) 1)
(global (;0;) (mut i32) i32.const 0)
(export "memory" (memory 0))
(export "wasi:cli/[email protected]#run" (func 41))
(export "cabi_realloc" (func 42))
(start 43)
(elem (;0;) (i32.const 0) func)
(data (;0;) (i32.const 16) "\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\f6\02\00\00hello\00\00\02\00\00\00\00\00\00\00\00")
(@custom "component-type" (after data) "\00asm\0d\00\01\00\00\19\16wit-component-encoding\04\01\07\b4\0a\01A\02\01A\0d\01B\04\04\00\05error\03\01\01h\00\01@\01\04self\01\00s\04\00\1d[method]error.to-debug-string\01\02\03\01\13wasi:io/[email protected]\05\00\01B\0a\04\00\08pollable\03\01\01h\00\01@\01\04self\01\00\7f\04\00\16[method]pollable.ready\01\02\01@\01\04self\01\01\00\04\00\16[method]pollable.block\01\03\01p\01\01py\01@\01\02in\04\00\05\04\00\04poll\01\06\03\01\12wasi:io/[email protected]\05\01\02\03\00\00\05error\02\03\00\01\08pollable\01B(\02\03\02\01\02\04\00\05error\03\00\00\02\03\02\01\03\04\00\08pollable\03\00\02\01i\01\01q\02\15last-operation-failed\01\04\00\06closed\00\00\04\00\0cstream-error\03\00\05\04\00\0cinput-stream\03\01\04\00\0doutput-stream\03\01\01h\07\01p}\01j\01\0a\01\06\01@\02\04self\09\03lenw\00\0b\04\00\19[method]input-stream.read\01\0c\04\00\22[method]input-stream.blocking-read\01\0c\01j\01w\01\06\01@\02\04self\09\03lenw\00\0d\04\00\19[method]input-stream.skip\01\0e\04\00\22[method]input-stream.blocking-skip\01\0e\01i\03\01@\01\04self\09\00\0f\04\00\1e[method]input-stream.subscribe\01\10\01h\08\01@\01\04self\11\00\0d\04\00![method]output-stream.check-write\01\12\01j\00\01\06\01@\02\04self\11\08contents\0a\00\13\04\00\1b[method]output-stream.write\01\14\04\00.[method]output-stream.blocking-write-and-flush\01\14\01@\01\04self\11\00\13\04\00\1b[method]output-stream.flush\01\15\04\00$[method]output-stream.blocking-flush\01\15\01@\01\04self\11\00\0f\04\00\1f[method]output-stream.subscribe\01\16\01@\02\04self\11\03lenw\00\13\04\00\22[method]output-stream.write-zeroes\01\17\04\005[method]output-stream.blocking-write-zeroes-and-flush\01\17\01@\03\04self\11\03src\09\03lenw\00\0d\04\00\1c[method]output-stream.splice\01\18\04\00%[method]output-stream.blocking-splice\01\18\03\01\15wasi:io/[email protected]\05\04\02\03\00\02\0doutput-stream\01B\05\02\03\02\01\05\04\00\0doutput-stream\03\00\00\01i\01\01@\00\00\02\04\00\0aget-stdout\01\03\03\01\15wasi:cli/[email protected]\05\06\01B\03\01j\00\00\01@\00\00\00\04\00\03run\01\01\04\01\12wasi:cli/[email protected]\05\07\04\01'tanishiking:hello-moon-wasip2/[email protected]\04\00\0b\09\01\00\03run\03\00\00\00/\09producers\01\0cprocessed-by\01\0dwit-component\070.214.0")
)
(module
(type (;0;) (func (param i32 i32 i32 i32)))
(type (;1;) (func (result i32)))
(type (;2;) (func (param i32 i32) (result i32)))
(type (;3;) (func (param i32 i32)))
(type (;4;) (func (param i32 i32 i64)))
(type (;5;) (func))
(type (;6;) (func (param i32) (result i32)))
(type (;7;) (func (param i32)))
(type (;8;) (func (param i32 i32 i32)))
(type (;9;) (func (param i32 i32 i32) (result i32)))
(type (;10;) (func (param i32 i32 i32 i32) (result i32)))
(import "wasi:io/[email protected]" "[method]output-stream.blocking-write-and-flush" (func (;0;) (type 0)))
(import "wasi:cli/[email protected]" "get-stdout" (func (;1;) (type 1)))
(func (;2;) (type 2) (param i32 i32) (result i32)
(local i32)
local.get 0
local.get 1
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 1
i32.const 4
i32.shr_u
local.set 1
i32.const 0
else
local.get 1
i32.const 536870910
i32.lt_u
if ;; label = @2
local.get 1
i32.const 1
i32.const 27
local.get 1
i32.clz
i32.sub
i32.shl
i32.add
i32.const 1
i32.sub
local.set 1
end
i32.const 31
local.get 1
i32.clz
i32.sub
local.set 2
local.get 1
local.get 2
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 1
local.get 2
i32.const 7
i32.sub
end
local.tee 2
i32.const 2
i32.shl
i32.add
i32.load offset=4 align=2
i32.const -1
local.get 1
i32.shl
i32.and
local.tee 1
if (result i32) ;; label = @1
local.get 0
local.get 1
i32.ctz
local.get 2
i32.const 4
i32.shl
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
else
local.get 0
i32.load align=2
i32.const -1
local.get 2
i32.const 1
i32.add
i32.shl
i32.and
local.tee 1
if (result i32) ;; label = @2
local.get 0
local.get 0
local.get 1
i32.ctz
local.tee 1
i32.const 2
i32.shl
i32.add
i32.load offset=4 align=2
i32.ctz
local.get 1
i32.const 4
i32.shl
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
else
i32.const 0
end
end
)
(func (;3;) (type 3) (param i32 i32)
(local i32 i32 i32 i32)
local.get 1
i32.load align=2
i32.const -4
i32.and
local.tee 2
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 2
i32.const 4
i32.shr_u
local.set 3
i32.const 0
else
i32.const 31
i32.const 1073741820
local.get 2
local.get 2
i32.const 1073741820
i32.ge_u
select
local.tee 3
i32.clz
i32.sub
local.set 2
local.get 3
local.get 2
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 3
local.get 2
i32.const 7
i32.sub
end
local.set 5
local.get 1
i32.load offset=8 align=2
local.set 2
local.get 1
i32.load offset=4 align=2
local.tee 4
if ;; label = @1
local.get 4
local.get 2
i32.store offset=8 align=2
end
local.get 2
if ;; label = @1
local.get 2
local.get 4
i32.store offset=4 align=2
end
local.get 1
local.get 0
local.get 5
i32.const 4
i32.shl
local.get 3
i32.add
i32.const 2
i32.shl
i32.add
local.tee 4
i32.load offset=96 align=2
i32.eq
if ;; label = @1
local.get 4
local.get 2
i32.store offset=96 align=2
local.get 2
i32.eqz
if ;; label = @2
local.get 0
local.get 5
i32.const 2
i32.shl
i32.add
local.tee 1
local.get 1
i32.load offset=4 align=2
i32.const -2
local.get 3
i32.rotl
i32.and
local.tee 1
i32.store offset=4 align=2
local.get 1
i32.eqz
if ;; label = @3
local.get 0
local.get 0
i32.load align=2
i32.const -2
local.get 5
i32.rotl
i32.and
i32.store align=2
end
end
end
)
(func (;4;) (type 3) (param i32 i32)
(local i32 i32 i32 i32)
local.get 1
i32.load align=2
local.tee 4
local.set 3
local.get 1
i32.const 4
i32.add
local.get 4
i32.const -4
i32.and
i32.add
local.tee 2
i32.load align=2
local.tee 4
i32.const 1
i32.and
if ;; label = @1
local.get 0
local.get 2
call 3
local.get 1
local.get 3
i32.const 4
i32.add
local.get 4
i32.const -4
i32.and
i32.add
local.tee 3
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 1
i32.load align=2
i32.const -4
i32.and
i32.add
local.tee 2
i32.load align=2
local.set 4
end
local.get 3
i32.const 2
i32.and
if ;; label = @1
local.get 1
i32.const 4
i32.sub
i32.load align=2
local.tee 1
i32.load align=2
local.set 5
local.get 0
local.get 1
call 3
local.get 1
local.get 5
i32.const 4
i32.add
local.get 3
i32.const -4
i32.and
i32.add
local.tee 3
i32.store align=2
end
local.get 2
local.get 4
i32.const 2
i32.or
i32.store align=2
local.get 2
i32.const 4
i32.sub
local.get 1
i32.store align=2
local.get 3
i32.const -4
i32.and
local.tee 2
i32.const 256
i32.lt_u
if (result i32) ;; label = @1
local.get 2
i32.const 4
i32.shr_u
local.set 2
i32.const 0
else
i32.const 31
i32.const 1073741820
local.get 2
local.get 2
i32.const 1073741820
i32.ge_u
select
local.tee 2
i32.clz
i32.sub
local.set 3
local.get 2
local.get 3
i32.const 4
i32.sub
i32.shr_u
i32.const 16
i32.xor
local.set 2
local.get 3
i32.const 7
i32.sub
end
local.set 3
local.get 0
local.get 3
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
i32.load offset=96 align=2
local.set 4
local.get 1
i32.const 0
i32.store offset=4 align=2
local.get 1
local.get 4
i32.store offset=8 align=2
local.get 4
if ;; label = @1
local.get 4
local.get 1
i32.store offset=4 align=2
end
local.get 0
local.get 3
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
local.get 1
i32.store offset=96 align=2
local.get 0
local.get 0
i32.load align=2
i32.const 1
local.get 3
i32.shl
i32.or
i32.store align=2
local.get 0
local.get 3
i32.const 2
i32.shl
i32.add
local.tee 0
local.get 0
i32.load offset=4 align=2
i32.const 1
local.get 2
i32.shl
i32.or
i32.store offset=4 align=2
)
(func (;5;) (type 4) (param i32 i32 i64)
(local i32 i32 i32)
local.get 0
i32.load offset=1568 align=2
local.tee 4
i32.const 0
local.get 1
i32.const 19
i32.add
i32.const -16
i32.and
i32.const 4
i32.sub
local.tee 1
i32.const 16
i32.sub
local.tee 3
local.get 4
i32.eq
select
if ;; label = @1
local.get 4
i32.load align=2
local.set 5
local.get 3
local.set 1
end
local.get 2
i32.wrap_i64
i32.const -16
i32.and
local.get 1
i32.sub
local.tee 3
i32.const 20
i32.lt_u
if ;; label = @1
return
end
local.get 1
local.get 5
i32.const 2
i32.and
local.get 3
i32.const 8
i32.sub
local.tee 3
i32.const 1
i32.or
i32.or
i32.store align=2
local.get 1
i32.const 0
i32.store offset=4 align=2
local.get 1
i32.const 0
i32.store offset=8 align=2
local.get 1
i32.const 4
i32.add
local.get 3
i32.add
local.tee 3
i32.const 2
i32.store align=2
local.get 0
local.get 3
i32.store offset=1568 align=2
local.get 0
local.get 1
call 4
)
(func (;6;) (type 5)
(local i32 i32 i32)
i32.const 56
i32.const 15
i32.add
i32.const -16
i32.and
local.set 0
memory.size
local.tee 1
local.get 0
i32.const 67107
i32.add
i32.const -65536
i32.and
i32.const 16
i32.shr_u
local.tee 2
i32.lt_s
if (result i32) ;; label = @1
local.get 2
local.get 1
i32.sub
memory.grow
i32.const 0
i32.lt_s
else
i32.const 0
end
if ;; label = @1
unreachable
end
local.get 0
i32.const 0
i32.store align=2
local.get 0
i32.const 0
i32.store offset=1568 align=2
i32.const 0
local.set 1
loop ;; label = @1
local.get 1
i32.const 23
i32.lt_u
if ;; label = @2
local.get 0
local.get 1
i32.const 2
i32.shl
i32.add
i32.const 0
i32.store offset=4 align=2
i32.const 0
local.set 2
loop ;; label = @3
local.get 2
i32.const 16
i32.lt_u
if ;; label = @4
local.get 0
local.get 1
i32.const 4
i32.shl
local.get 2
i32.add
i32.const 2
i32.shl
i32.add
i32.const 0
i32.store offset=96 align=2
local.get 2
i32.const 1
i32.add
local.set 2
br 1 (;@3;)
end
end
local.get 1
i32.const 1
i32.add
local.set 1
br 1 (;@1;)
end
end
local.get 0
local.get 0
i32.const 1572
i32.add
memory.size
i64.extend_i32_s
i64.const 16
i64.shl
call 5
local.get 0
global.set 0
)
(func (;7;) (type 6) (param i32) (result i32)
(local i32 i32 i32 i32)
global.get 0
i32.eqz
if ;; label = @1
call 6
end
global.get 0
local.set 2
local.get 0
i32.const 1073741820
i32.gt_u
if ;; label = @1
unreachable
end
local.get 2
local.get 0
i32.const 12
i32.le_u
if (result i32) ;; label = @1
i32.const 12
else
local.get 0
i32.const 19
i32.add
i32.const -16
i32.and
i32.const 4
i32.sub
end
local.tee 0
call 2
local.tee 1
i32.eqz
if ;; label = @1
memory.size
local.tee 1
local.get 0
i32.const 256
i32.ge_u
if (result i32) ;; label = @2
local.get 0
i32.const 536870910
i32.lt_u
if (result i32) ;; label = @3
local.get 0
i32.const 1
i32.const 27
local.get 0
i32.clz
i32.sub
i32.shl
i32.add
i32.const 1
i32.sub
else
local.get 0
end
else
local.get 0
end
i32.const 4
local.get 2
i32.load offset=1568 align=2
local.get 1
i32.const 16
i32.shl
i32.const 4
i32.sub
i32.ne
i32.shl
i32.add
i32.const 65535
i32.add
i32.const -65536
i32.and
i32.const 16
i32.shr_u
local.tee 3
local.get 1
local.get 3
i32.gt_s
select
memory.grow
i32.const 0
i32.lt_s
if ;; label = @2
local.get 3
memory.grow
i32.const 0
i32.lt_s
if ;; label = @3
unreachable
end
end
local.get 2
local.get 1
i32.const 16
i32.shl
memory.size
i64.extend_i32_s
i64.const 16
i64.shl
call 5
local.get 2
local.get 0
call 2
local.set 1
end
local.get 2
local.get 1
call 3
local.get 1
i32.load align=2
local.tee 3
i32.const -4
i32.and
local.get 0
i32.sub
local.tee 4
i32.const 16
i32.ge_u
if ;; label = @1
local.get 1
local.get 0
local.get 3
i32.const 2
i32.and
i32.or
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 0
i32.add
local.tee 0
local.get 4
i32.const 4
i32.sub
i32.const 1
i32.or
i32.store align=2
local.get 2
local.get 0
call 4
else
local.get 1
local.get 3
i32.const -2
i32.and
i32.store align=2
local.get 1
i32.const 4
i32.add
local.get 1
i32.load align=2
i32.const -4
i32.and
i32.add
local.tee 0
local.get 0
i32.load align=2
i32.const -3
i32.and
i32.store align=2
end
local.get 1
i32.const 4
i32.add
)
(func (;8;) (type 7) (param i32)
(local i32)
i32.const 56
local.get 0
i32.gt_u
if ;; label = @1
return
end
global.get 0
i32.eqz
if ;; label = @1
call 6
end
local.get 0
i32.const 4
i32.sub
local.set 1
local.get 0
i32.const 15
i32.and
i32.const 1
local.get 0
select
if (result i32) ;; label = @1
i32.const 1
else
local.get 1
i32.load align=2
i32.const 1
i32.and
end
if ;; label = @1
unreachable
end
local.get 1
local.get 1
i32.load align=2
i32.const 1
i32.or
i32.store align=2
global.get 0
local.get 1
call 4
)
(func (;9;) (type 6) (param i32) (result i32)
(local i32)
i32.const 8
local.get 0
i32.add
call 7
local.tee 1
i32.const 1
i32.store align=1
local.get 1
)
(func (;10;) (type 6) (param i32) (result i32)
local.get 0
i32.load offset=4 align=1
i32.const 255
i32.and
)
(func (;11;) (type 6) (param i32) (result i32)
local.get 0
i32.load offset=4 align=1
i32.const 8
i32.shr_u
)
(func (;12;) (type 2) (param i32 i32) (result i32)
(local i32)
local.get 0
call 9
local.set 2
local.get 2
local.get 1
local.get 0
i32.const 8
i32.add
memory.copy
local.get 2
i32.const 1
i32.store align=1
local.get 2
)
(func (;13;) (type 6) (param i32) (result i32)
(local i32)
local.get 0
call 11
i32.const 4
i32.mul
local.set 1
local.get 1
local.get 0
local.get 1
i32.add
i32.load8_u offset=7
i32.sub
i32.const 1
i32.sub
)
(func (;14;) (type 7) (param i32)
(local i32)
local.get 0
i32.load align=1
local.tee 1
i32.const 0
i32.ge_s
if ;; label = @1
local.get 0
local.get 1
i32.const 1
i32.add
i32.store align=1
end
)
(func (;15;) (type 7) (param i32)
(local i32)
local.get 0
i32.load align=1
local.tee 1
i32.const 1
i32.gt_s
if ;; label = @1
local.get 0
local.get 1
i32.const 1
i32.sub
i32.store align=1
else
local.get 1
i32.const 1
i32.eq
if ;; label = @2
local.get 0
call 16
end
end
)
(func (;16;) (type 7) (param i32)
(local i32 i32 i32 i32)
local.get 0
i32.load offset=4 align=1
local.tee 1
i32.const 255
i32.and
local.tee 3
i32.const 240
i32.lt_u
if ;; label = @1
local.get 0
call 17
else
local.get 3
i32.const 242
i32.eq
if ;; label = @2
local.get 1
i32.const 8
i32.shr_u
local.set 2
loop ;; label = @3
local.get 2
i32.const 0
i32.gt_s
if ;; label = @4
local.get 2
i32.const 1
i32.sub
local.tee 2
i32.const 4
i32.mul
local.get 0
i32.add
i32.load offset=8 align=1
local.tee 4
i32.const 0
i32.ne
if ;; label = @5
local.get 4
call 15
end
br 1 (;@3;)
end
end
end
end
local.get 0
call 8
)
(func (;17;) (type 7) (param i32)
(local i32 i32 i32 i32 i32 i32 i32)
local.get 0
i32.load offset=4 align=1
i32.const 8
i32.shr_u
local.tee 1
i32.eqz
if ;; label = @1
return
end
local.get 1
i32.const 5
i32.shr_u
local.get 1
i32.const 31
i32.and
i32.const 0
i32.ne
i32.add
local.set 2
i32.const 0
local.set 3
local.get 2
i32.const 1
i32.sub
local.get 1
i32.add
i32.const 4
i32.mul
local.get 0
i32.add
i32.const 8
i32.add
local.set 4
local.get 4
i32.load align=1
local.set 5
i32.const 0
local.set 6
loop ;; label = @1
local.get 6
local.get 1
i32.lt_u
if ;; label = @2
local.get 5
i32.const 1
local.get 3
i32.shl
i32.and
i32.const 0
i32.ne
if ;; label = @3
local.get 6
i32.const 4
i32.mul
local.get 0
i32.add
i32.load offset=8 align=1
local.tee 7
i32.const 0
i32.ne
if ;; label = @4
local.get 7
call 15
end
end
local.get 6
i32.const 1
i32.add
local.set 6
local.get 3
i32.const 1
i32.add
local.set 3
local.get 3
i32.const 32
i32.eq
if ;; label = @3
i32.const 0
local.set 3
local.get 4
i32.const 4
i32.sub
local.set 4
local.get 4
i32.load align=1
local.set 5
end
br 1 (;@1;)
end
end
)
(func (;18;) (type 3) (param i32 i32)
local.get 0
local.get 1
i32.store8
)
(func (;19;) (type 6) (param i32) (result i32)
local.get 0
i32.load8_u
)
(func (;20;) (type 3) (param i32 i32)
local.get 0
local.get 1
i32.store align=1
)
(func (;21;) (type 6) (param i32) (result i32)
local.get 0
i32.load align=1
)
(func (;22;) (type 6) (param i32) (result i32)
local.get 0
call 7
)
(func (;23;) (type 7) (param i32)
local.get 0
i32.const 8
i32.sub
call 15
)
(func (;24;) (type 8) (param i32 i32 i32)
local.get 0
local.get 1
local.get 2
memory.copy
)
(func (;25;) (type 6) (param i32) (result i32)
local.get 0
i32.const 8
i32.add
)
(func (;26;) (type 2) (param i32 i32) (result i32)
local.get 0
local.get 1
call 18
i32.const 0
)
(func (;27;) (type 6) (param i32) (result i32)
local.get 0
call 19
)
(func (;28;) (type 2) (param i32 i32) (result i32)
local.get 0
local.get 1
call 20
i32.const 0
)
(func (;29;) (type 6) (param i32) (result i32)
local.get 0
call 21
)
(func (;30;) (type 6) (param i32) (result i32)
local.get 0
call 22
)
(func (;31;) (type 6) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 0
i32.const 4
i32.div_s
local.tee 13
i32.const 1
i32.add
local.tee 1
i32.const 4
i32.mul
local.set 12
i32.const 8
local.get 12
i32.add
local.tee 11
call 30
local.tee 2
i32.const 1
call 28
drop
local.get 2
i32.const 4
i32.add
local.set 8
local.get 1
i32.const 8
i32.shl
local.tee 10
i32.const 246
i32.or
local.set 9
local.get 8
local.get 9
call 28
drop
local.get 1
i32.const 4
i32.mul
local.set 7
local.get 2
local.get 7
i32.add
local.tee 6
i32.const 7
i32.add
local.set 3
local.get 0
i32.const 4
i32.rem_s
local.set 5
i32.const 3
local.get 5
i32.sub
local.set 4
local.get 3
local.get 4
call 26
drop
local.get 2
i32.const 8
i32.add
)
(func (;32;) (type 6) (param i32) (result i32)
local.get 0
call 23
i32.const 0
)
(func (;33;) (type 9) (param i32 i32 i32) (result i32)
local.get 0
local.get 1
local.get 2
call 24
i32.const 0
)
(func (;34;) (type 2) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 1
i32.const 8
i32.sub
local.set 2
local.get 0
i32.const 8
i32.sub
local.set 3
local.get 2
i32.const 4
i32.add
local.tee 10
call 29
local.tee 9
i32.const 16777215
i32.and
local.set 4
local.get 3
i32.const 4
i32.add
local.tee 8
call 29
local.tee 7
i32.const 16777215
i32.and
local.set 5
local.get 4
local.get 5
i32.lt_s
if (result i32) ;; label = @1
local.get 4
else
local.get 5
end
local.set 6
local.get 3
local.get 2
local.get 6
call 33
)
(func (;35;) (type 6) (param i32) (result i32)
local.get 0
call 25
)
(func (;36;) (type 10) (param i32 i32 i32 i32) (result i32)
local.get 0
local.get 1
local.get 2
local.get 3
call 0
i32.const 0
)
(func (;37;) (type 2) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 0
local.set 2
i32.const 12
call 31
local.set 3
local.get 1
call 14
local.get 1
call 35
local.set 13
local.get 1
call 13
local.set 14
local.get 2
local.get 13
local.get 14
local.get 3
call 36
drop
local.get 3
i32.const 0
i32.add
local.tee 12
call 27
local.tee 4
i32.const 0
i32.eq
if (result i32) ;; label = @1
i32.const 0
local.set 8
i32.const 8
call 9
local.tee 15
i32.const 257
i32.store offset=4 align=1
local.get 15
i32.const 0
i32.store offset=12 align=1
local.get 15
local.get 8
i32.store offset=8 align=1
local.get 15
else
local.get 4
i32.const 1
i32.eq
if (result i32) ;; label = @2
local.get 3
i32.const 4
i32.add
local.tee 11
call 27
local.tee 6
i32.const 0
i32.eq
if (result i32) ;; label = @3
local.get 3
i32.const 8
i32.add
local.tee 10
call 29
local.set 9
i32.const 8
call 9
local.tee 17
i32.const 256
i32.store offset=4 align=1
local.get 17
i32.const 0
i32.store offset=12 align=1
local.get 17
local.get 9
i32.store offset=8 align=1
local.get 17
else
local.get 6
i32.const 1
i32.eq
if (result i32) ;; label = @4
i32.const 16
else
unreachable
end
end
local.set 7
i32.const 8
call 9
local.tee 16
i32.const 256
i32.store offset=4 align=1
local.get 16
i32.const 1
i32.store offset=12 align=1
local.get 16
local.get 7
i32.store offset=8 align=1
local.get 16
else
unreachable
end
end
local.set 5
local.get 1
call 15
local.get 3
call 32
drop
local.get 5
)
(func (;38;) (type 1) (result i32)
call 1
)
(func (;39;) (type 1) (result i32)
(local i32)
call 38
local.tee 0
)
(func (;40;) (type 1) (result i32)
(local i32 i32 i32 i32 i32)
call 39
local.set 0
i32.const 8
i32.const 32
call 12
local.set 1
local.get 0
local.get 1
call 37
local.tee 3
call 15
i32.const 0
local.set 2
i32.const 8
call 9
local.tee 4
i32.const 257
i32.store offset=4 align=1
local.get 4
i32.const 0
i32.store offset=12 align=1
local.get 4
local.get 2
i32.store offset=8 align=1
local.get 4
)
(func (;41;) (type 1) (result i32)
(local i32 i32 i32)
call 40
local.tee 0
call 10
local.tee 2
i32.const 1
i32.eq
if (result i32) ;; label = @1
local.get 0
call 15
i32.const 0
else
local.get 0
call 15
i32.const 1
end
local.tee 1
)
(func (;42;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i32)
local.get 0
i32.const 0
i32.eq
if (result i32) ;; label = @1
local.get 1
i32.const 0
i32.eq
else
i32.const 0
end
if ;; label = @1
local.get 3
call 31
return
end
local.get 3
i32.const 0
i32.le_s
if ;; label = @1
local.get 0
call 32
drop
i32.const 0
return
end
local.get 3
call 31
local.tee 4
local.get 0
call 34
drop
local.get 0
call 32
drop
local.get 4
)
(func (;43;) (type 5))
(table (;0;) 0 0 funcref)
(memory (;0;) 1)
(global (;0;) (mut i32) i32.const 0)
(export "memory" (memory 0))
(export "wasi:cli/[email protected]#run" (func 41))
(export "cabi_realloc" (func 42))
(start 43)
(elem (;0;) (i32.const 0) func)
(data (;0;) (i32.const 16) "\ff\ff\ff\ff\01\00\00\00\00\00\00\00\00\00\00\00\ff\ff\ff\ff\f6\02\00\00hello\00\00\02\00\00\00\00\00\00\00\00")
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment