Skip to content

Instantly share code, notes, and snippets.

@ascjones
Created June 9, 2021 11:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ascjones/067f582139200ad532882d3841c104b4 to your computer and use it in GitHub Desktop.
Save ascjones/067f582139200ad532882d3841c104b4 to your computer and use it in GitHub Desktop.
(module
(type (;0;) (func (param i32 i32) (result i32)))
(type (;1;) (func (param i32 i32 i32) (result i32)))
(type (;2;) (func (param i32 i32)))
(type (;3;) (func (param i32 i32 i32)))
(type (;4;) (func (param i32) (result i32)))
(type (;5;) (func (param i32)))
(type (;6;) (func (result i32)))
(type (;7;) (func (param i32) (result i64)))
(import "seal0" "seal_get_storage" (func (;0;) (type 1)))
(import "seal0" "seal_set_storage" (func (;1;) (type 3)))
(import "seal0" "seal_value_transferred" (func (;2;) (type 2)))
(import "__unstable__" "seal_debug_message" (func (;3;) (type 0)))
(import "seal0" "seal_input" (func (;4;) (type 2)))
(import "seal0" "seal_return" (func (;5;) (type 3)))
(import "env" "memory" (memory (;0;) 2 16))
(func (;6;) (type 4) (param i32) (result i32)
(local i32)
global.get 0
i32.const -64
i32.add
local.tee 1
global.set 0
local.get 1
i32.const 32
i32.add
local.get 0
i32.const 24
i32.add
i64.load
i64.store
local.get 1
i32.const 24
i32.add
local.get 0
i32.const 16
i32.add
i64.load
i64.store
local.get 1
i32.const 16
i32.add
local.get 0
i32.const 8
i32.add
i64.load
i64.store
local.get 1
i64.const 0
i64.store offset=40
local.get 1
local.get 0
i64.load
i64.store offset=8
local.get 1
i32.const 8
i32.add
call 7
local.get 1
i32.const 16384
i32.store offset=52
local.get 1
i32.const 65628
i32.store offset=48
local.get 1
i32.const 16384
i32.store offset=56
i32.const 65628
local.get 1
i32.const 56
i32.add
call 0
local.get 1
i32.const 48
i32.add
local.get 1
i32.load offset=56
call 8
call 9
local.tee 0
i32.const 11
i32.ne
if ;; label = @1
local.get 0
i32.const 3
i32.ne
if ;; label = @2
unreachable
end
unreachable
end
local.get 1
local.get 1
i64.load offset=48
i64.store offset=56
local.get 1
i32.const 56
i32.add
call 10
i32.const 255
i32.and
local.tee 0
i32.const 2
i32.ne
if ;; label = @1
local.get 1
i32.const -64
i32.sub
global.set 0
local.get 0
i32.const 0
i32.ne
return
end
unreachable)
(func (;7;) (type 4) (param i32) (result i32)
(local i64 i64 i64)
local.get 0
i64.load offset=32
local.set 1
local.get 0
i64.const 1
i64.store offset=32
local.get 0
local.get 1
local.get 0
i64.load
local.tee 2
i64.add
local.tee 1
i64.store
local.get 0
local.get 0
i64.load offset=8
local.tee 3
local.get 1
local.get 2
i64.lt_u
i64.extend_i32_u
i64.add
local.tee 1
i64.store offset=8
local.get 0
local.get 0
i64.load offset=16
local.tee 2
local.get 1
local.get 3
i64.lt_u
i64.extend_i32_u
i64.add
local.tee 1
i64.store offset=16
local.get 0
local.get 0
i64.load offset=24
local.get 1
local.get 2
i64.lt_u
i64.extend_i32_u
i64.add
i64.store offset=24
local.get 0)
(func (;8;) (type 2) (param i32 i32)
(local i32 i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 2
global.set 0
local.get 2
i32.const 8
i32.add
local.set 3
local.get 0
i32.load
local.set 4
block ;; label = @1
local.get 0
i32.load offset=4
local.get 1
i32.ge_u
if ;; label = @2
local.get 3
local.get 1
i32.store offset=4
local.get 3
local.get 4
i32.store
br 1 (;@1;)
end
unreachable
end
local.get 0
local.get 2
i64.load offset=8
i64.store align=4
local.get 2
i32.const 16
i32.add
global.set 0)
(func (;9;) (type 4) (param i32) (result i32)
(local i32)
i32.const 10
local.set 1
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
local.get 0
br_table 0 (;@11;) 1 (;@10;) 2 (;@9;) 3 (;@8;) 4 (;@7;) 5 (;@6;) 6 (;@5;) 7 (;@4;) 8 (;@3;) 9 (;@2;) 10 (;@1;)
end
i32.const 11
return
end
i32.const 1
return
end
i32.const 2
return
end
i32.const 3
return
end
i32.const 4
return
end
i32.const 5
return
end
i32.const 6
return
end
i32.const 7
return
end
i32.const 8
return
end
i32.const 9
local.set 1
end
local.get 1)
(func (;10;) (type 4) (param i32) (result i32)
(local i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 1
global.set 0
local.get 1
i32.const 8
i32.add
local.get 0
call 13
local.get 1
i32.load8_u offset=9
local.set 0
local.get 1
i32.load8_u offset=8
local.set 2
local.get 1
i32.const 16
i32.add
global.set 0
i32.const 2
i32.const 1
i32.const 2
local.get 0
i32.const 1
i32.eq
select
i32.const 0
local.get 0
select
local.get 2
i32.const 1
i32.and
select)
(func (;11;) (type 2) (param i32 i32)
(local i32)
global.get 0
i32.const -64
i32.add
local.tee 2
global.set 0
local.get 2
i32.const 32
i32.add
local.get 1
i32.const 24
i32.add
i64.load
i64.store
local.get 2
i32.const 24
i32.add
local.get 1
i32.const 16
i32.add
i64.load
i64.store
local.get 2
i32.const 16
i32.add
local.get 1
i32.const 8
i32.add
i64.load
i64.store
local.get 2
i64.const 0
i64.store offset=40
local.get 2
local.get 1
i64.load
i64.store offset=8
local.get 2
i32.const 8
i32.add
call 7
local.get 2
i32.const 56
i32.add
i32.const 16384
i32.store
local.get 2
i32.const 65628
i32.store offset=52
local.get 2
i32.const 0
i32.store offset=48
local.get 2
local.get 2
i32.const 48
i32.add
local.get 0
call 12
local.get 2
i32.load
local.get 2
i32.load offset=4
call 1
local.get 2
i32.const -64
i32.sub
global.set 0)
(func (;12;) (type 3) (param i32 i32 i32)
(local i32 i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 3
global.set 0
local.get 1
i32.const 8
i32.add
local.tee 4
i32.load
local.set 5
local.get 4
i32.const 0
i32.store
local.get 1
i32.load offset=4
local.set 4
local.get 1
i32.const 65621
i32.store offset=4
local.get 3
local.get 2
i32.store8 offset=15
block ;; label = @1
local.get 5
i32.const 1
i32.ge_u
if ;; label = @2
local.get 3
i32.const 1
i32.store offset=4
local.get 3
local.get 4
i32.store
br 1 (;@1;)
end
unreachable
end
block ;; label = @1
local.get 3
i32.load offset=4
i32.const 1
i32.eq
if ;; label = @2
local.get 3
i32.load
local.get 3
i32.load8_u offset=15
i32.store8
local.get 1
i32.const 0
i32.store offset=8
local.get 1
i32.const 65621
i32.store offset=4
local.get 5
i32.eqz
br_if 1 (;@1;)
local.get 1
local.get 5
i32.const 1
i32.sub
i32.store offset=8
local.get 1
local.get 4
i32.const 1
i32.add
i32.store offset=4
local.get 0
i32.const 1
i32.store offset=4
local.get 0
local.get 4
i32.store
local.get 3
i32.const 16
i32.add
global.set 0
return
end
unreachable
end
unreachable)
(func (;13;) (type 2) (param i32 i32)
(local i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 2
global.set 0
local.get 2
i32.const 0
i32.store8 offset=15
local.get 0
local.get 1
local.get 2
i32.const 15
i32.add
i32.const 1
call 18
local.tee 1
if (result i32) ;; label = @1
i32.const 0
else
local.get 2
i32.load8_u offset=15
end
i32.store8 offset=1
local.get 0
local.get 1
i32.store8
local.get 2
i32.const 16
i32.add
global.set 0)
(func (;14;) (type 7) (param i32) (result i64)
(local i32 i32 i64)
global.get 0
i32.const 16
i32.sub
local.tee 1
global.set 0
local.get 1
i64.const 0
i64.store offset=8
i32.const 4
local.set 2
block (result i32) ;; label = @1
block ;; label = @2
loop ;; label = @3
local.get 2
i32.const 8
i32.eq
if ;; label = @4
local.get 1
i32.const 4
i32.store offset=8
local.get 1
i64.load offset=8
local.tee 3
i32.wrap_i64
i32.const 4
i32.ge_u
br_if 2 (;@2;)
unreachable
end
local.get 1
local.get 0
call 13
local.get 1
i32.load8_u
i32.const 1
i32.and
i32.eqz
if ;; label = @4
local.get 1
i32.const 8
i32.add
local.get 2
i32.add
local.get 1
i32.load8_u offset=1
i32.store8
local.get 2
i32.const 1
i32.add
local.set 2
br 1 (;@3;)
end
end
i32.const 1
local.set 2
i32.const 0
br 1 (;@1;)
end
i32.const 0
local.set 2
local.get 3
i64.const 32
i64.shr_u
i32.wrap_i64
end
local.set 0
local.get 1
i32.const 16
i32.add
global.set 0
local.get 2
i64.extend_i32_u
local.get 0
i64.extend_i32_u
i64.const 8
i64.shl
i64.or)
(func (;15;) (type 6) (result i32)
i32.const 0
call 16
i32.const 255
i32.and
i32.const 2
i32.shl
i32.const 65552
i32.add
i32.load)
(func (;16;) (type 4) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i64)
global.get 0
i32.const 96
i32.sub
local.tee 1
global.set 0
block (result i32) ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 0
i32.eqz
if ;; label = @4
local.get 1
i32.const 16384
i32.store offset=76
local.get 1
i32.const 65628
i32.store offset=72
local.get 1
i32.const 72
i32.add
call 19
local.get 1
local.get 1
i64.load offset=72
i64.store offset=40
i32.const 3
local.set 2
local.get 1
i32.const 40
i32.add
call 14
local.tee 6
i32.wrap_i64
local.tee 4
i32.const 1
i32.and
br_if 2 (;@2;)
local.get 6
i64.const 1099511627775
i64.and
local.tee 6
i64.const 32
i64.shr_u
i32.wrap_i64
local.set 0
local.get 6
i64.const 24
i64.shr_u
i32.wrap_i64
local.set 3
local.get 6
i64.const 16
i64.shr_u
i32.wrap_i64
local.set 2
block ;; label = @5
local.get 4
i32.const 8
i32.shr_u
i32.const 255
i32.and
local.tee 4
i32.const 155
i32.ne
if ;; label = @6
local.get 4
i32.const 237
i32.eq
br_if 1 (;@5;)
br 3 (;@3;)
end
local.get 0
i32.const 94
i32.ne
br_if 2 (;@3;)
local.get 2
i32.const 255
i32.and
i32.const 174
i32.ne
br_if 2 (;@3;)
local.get 3
i32.const 255
i32.and
i32.const 157
i32.ne
br_if 2 (;@3;)
i32.const 3
local.get 1
i32.const 40
i32.add
call 10
i32.const 255
i32.and
local.tee 0
local.get 0
i32.const 2
i32.eq
select
local.set 2
br 3 (;@2;)
end
local.get 0
i32.const 27
i32.ne
br_if 1 (;@3;)
local.get 2
i32.const 255
i32.and
i32.const 75
i32.ne
br_if 1 (;@3;)
i32.const 2
local.set 2
local.get 3
i32.const 255
i32.and
i32.const 157
i32.ne
br_if 1 (;@3;)
br 2 (;@2;)
end
local.get 1
i32.const 16384
i32.store offset=76
local.get 1
i32.const 65628
i32.store offset=72
local.get 1
i32.const 72
i32.add
call 19
local.get 1
local.get 1
i64.load offset=72
i64.store offset=40
i32.const 1
local.set 3
block ;; label = @4
local.get 1
i32.const 40
i32.add
call 14
local.tee 6
i32.wrap_i64
local.tee 5
i32.const 1
i32.and
if ;; label = @5
i32.const 1
local.set 2
br 1 (;@4;)
end
local.get 6
i64.const 1099511627775
i64.and
local.tee 6
i64.const 32
i64.shr_u
i32.wrap_i64
local.set 0
local.get 6
i64.const 24
i64.shr_u
i32.wrap_i64
local.set 4
local.get 6
i64.const 16
i64.shr_u
i32.wrap_i64
local.set 2
block ;; label = @5
local.get 5
i32.const 8
i32.shr_u
i32.const 255
i32.and
local.tee 5
i32.const 47
i32.ne
if ;; label = @6
local.get 5
i32.const 99
i32.ne
br_if 1 (;@5;)
local.get 0
i32.const 81
i32.ne
br_if 1 (;@5;)
local.get 2
i32.const 255
i32.and
i32.const 58
i32.ne
br_if 1 (;@5;)
i32.const 0
local.set 2
local.get 4
i32.const 255
i32.and
i32.const 165
i32.ne
br_if 1 (;@5;)
br 2 (;@4;)
end
local.get 0
i32.const 217
i32.ne
br_if 0 (;@5;)
local.get 2
i32.const 255
i32.and
i32.const 134
i32.ne
br_if 0 (;@5;)
i32.const 0
local.set 2
i32.const 0
local.set 3
local.get 4
i32.const 255
i32.and
i32.const 91
i32.eq
br_if 1 (;@4;)
end
i32.const 1
local.set 2
i32.const 1
local.set 3
end
i32.const 6
local.get 2
br_if 2 (;@1;)
drop
block ;; label = @4
block ;; label = @5
local.get 3
if ;; label = @6
local.get 1
i32.const -64
i32.sub
i64.const 0
i64.store
local.get 1
i32.const 56
i32.add
i64.const 0
i64.store
local.get 1
i32.const 48
i32.add
i64.const 0
i64.store
local.get 1
i64.const 0
i64.store offset=40
local.get 1
local.get 1
i32.const 40
i32.add
call 6
i32.const 1
i32.xor
i32.store8 offset=15
local.get 1
i32.const 1
i32.store offset=36
local.get 1
local.get 1
i32.const 15
i32.add
i32.store offset=32
i32.const 0
local.set 0
i32.const 65544
local.set 3
i32.const 8
local.set 2
loop ;; label = @7
local.get 2
if ;; label = @8
local.get 0
local.get 0
local.get 3
i32.load offset=4
i32.add
local.tee 0
i32.gt_u
br_if 3 (;@5;)
local.get 2
i32.const 8
i32.sub
local.set 2
local.get 3
i32.const 8
i32.add
local.set 3
br 1 (;@7;)
end
end
i32.const 0
local.set 2
local.get 0
local.get 0
local.get 0
i32.add
local.tee 0
i32.le_u
if ;; label = @7
local.get 0
local.tee 2
i32.const 0
i32.lt_s
br_if 2 (;@5;)
end
local.get 1
local.get 2
call 21
local.get 1
i32.load
local.tee 0
i32.eqz
br_if 1 (;@5;)
local.get 1
i32.load offset=4
local.set 2
local.get 1
i32.const 0
i32.store offset=24
local.get 1
local.get 0
i32.store offset=16
local.get 1
local.get 2
i32.store offset=20
local.get 1
i32.const 92
i32.add
i32.const 1
i32.store
local.get 1
i64.const 1
i64.store offset=76 align=4
local.get 1
i32.const 65544
i32.store offset=72
local.get 1
local.get 1
i32.const 32
i32.add
i32.store offset=88
local.get 1
i32.const 16
i32.add
local.get 1
i32.const 72
i32.add
call 22
br_if 2 (;@4;)
block ;; label = @7
i32.const 82012
i32.load8_u
br_if 0 (;@7;)
local.get 1
i32.load offset=16
local.get 1
i32.load offset=24
call 3
call 9
i32.const 9
i32.ne
br_if 0 (;@7;)
i32.const 82012
i32.const 1
i32.store8
end
local.get 1
i32.load offset=20
local.tee 0
if ;; label = @7
local.get 1
i32.load offset=16
local.get 0
call 23
end
local.get 1
i32.load8_u offset=15
local.get 1
i32.const 40
i32.add
call 11
i32.const 8
br 5 (;@1;)
end
local.get 1
i32.const -64
i32.sub
i64.const 0
i64.store
local.get 1
i32.const 56
i32.add
i64.const 0
i64.store
local.get 1
i32.const 48
i32.add
i64.const 0
i64.store
local.get 1
i64.const 0
i64.store offset=40
local.get 1
local.get 1
i32.const 40
i32.add
call 6
i32.store8 offset=72
global.get 0
i32.const 16
i32.sub
local.tee 0
global.set 0
local.get 0
local.get 1
i32.const 72
i32.add
i32.store offset=12
local.get 0
i32.const 12
i32.add
i32.load
i32.load8_u
local.set 2
global.get 0
i32.const 32
i32.sub
local.tee 0
global.set 0
local.get 0
i32.const 24
i32.add
i32.const 16384
i32.store
local.get 0
i32.const 65628
i32.store offset=20
local.get 0
i32.const 0
i32.store offset=16
local.get 0
i32.const 8
i32.add
local.get 0
i32.const 16
i32.add
local.get 2
call 12
i32.const 0
local.get 0
i32.load offset=8
local.get 0
i32.load offset=12
call 5
unreachable
end
unreachable
end
unreachable
end
i32.const 3
local.set 2
end
i32.const 6
local.get 2
i32.const 3
i32.eq
local.tee 0
br_if 0 (;@1;)
drop
i32.const 6
local.get 2
local.get 0
select
local.tee 0
i32.const 2
i32.ne
if ;; label = @2
local.get 1
i32.const -64
i32.sub
i64.const 0
i64.store
local.get 1
i32.const 56
i32.add
i64.const 0
i64.store
local.get 1
i32.const 48
i32.add
i64.const 0
i64.store
local.get 1
i64.const 0
i64.store offset=40
local.get 0
i32.const 1
i32.and
local.get 1
i32.const 40
i32.add
call 11
i32.const 8
br 1 (;@1;)
end
local.get 1
i32.const -64
i32.sub
i64.const 0
i64.store
local.get 1
i32.const 56
i32.add
i64.const 0
i64.store
local.get 1
i32.const 48
i32.add
i64.const 0
i64.store
local.get 1
i64.const 0
i64.store offset=40
i32.const 0
local.get 1
i32.const 40
i32.add
call 11
i32.const 8
end
local.get 1
i32.const 96
i32.add
global.set 0)
(func (;17;) (type 6) (result i32)
(local i32 i32 i32 i64 i64)
global.get 0
i32.const 32
i32.sub
local.tee 0
global.set 0
local.get 0
i32.const 16384
i32.store offset=4
local.get 0
i32.const 65628
i32.store
local.get 0
i32.const 16384
i32.store offset=16
i32.const 65628
local.get 0
i32.const 16
i32.add
call 2
local.get 0
local.get 0
i32.load offset=16
call 8
local.get 0
local.get 0
i64.load
i64.store offset=8
local.get 0
i32.const 24
i32.add
local.tee 1
i64.const 0
i64.store
local.get 0
i64.const 0
i64.store offset=16
local.get 0
i32.const 8
i32.add
local.get 0
i32.const 16
i32.add
i32.const 16
call 18
local.tee 2
i32.eqz
if ;; label = @1
local.get 1
i64.load
local.set 4
local.get 0
i64.load offset=16
local.set 3
end
block ;; label = @1
local.get 2
br_if 0 (;@1;)
local.get 3
local.get 4
i64.or
i64.eqz
i32.eqz
br_if 0 (;@1;)
i32.const 1
call 16
local.get 0
i32.const 32
i32.add
global.set 0
i32.const 255
i32.and
i32.const 2
i32.shl
i32.const 65552
i32.add
i32.load
return
end
unreachable)
(func (;18;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32)
local.get 0
i32.load offset=4
local.tee 3
local.get 2
i32.lt_u
local.tee 4
i32.eqz
if ;; label = @1
local.get 1
local.get 0
i32.load
local.tee 1
local.get 2
call 37
local.get 0
local.get 3
local.get 2
i32.sub
i32.store offset=4
local.get 0
local.get 1
local.get 2
i32.add
i32.store
end
local.get 4)
(func (;19;) (type 5) (param i32)
(local i32)
global.get 0
i32.const 16
i32.sub
local.tee 1
global.set 0
local.get 1
local.get 0
i32.load offset=4
i32.store offset=12
local.get 0
i32.load
local.get 1
i32.const 12
i32.add
call 4
local.get 0
local.get 1
i32.load offset=12
call 8
local.get 1
i32.const 16
i32.add
global.set 0)
(func (;20;) (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32)
i32.const 65617
i32.const 65612
local.get 0
i32.load8_u
local.tee 0
select
local.set 4
i32.const 4
i32.const 5
local.get 0
select
local.set 5
global.get 0
i32.const 48
i32.sub
local.tee 3
global.set 0
local.get 1
local.tee 2
i32.load offset=16
local.set 0
block ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 2
i32.load offset=8
local.tee 8
i32.const 1
i32.ne
if ;; label = @4
local.get 0
br_if 1 (;@3;)
local.get 2
i32.load offset=24
local.get 4
local.get 5
local.get 2
i32.const 28
i32.add
i32.load
i32.load offset=12
call_indirect (type 1)
local.set 1
br 3 (;@1;)
end
local.get 0
i32.eqz
br_if 1 (;@2;)
end
local.get 2
i32.const 20
i32.add
i32.load
local.get 3
local.get 4
i32.store offset=36
local.get 3
i32.const 40
i32.add
local.get 4
local.get 5
i32.add
i32.store
local.get 3
i32.const 0
i32.store offset=32
i32.const 1
i32.add
local.set 1
block ;; label = @3
loop ;; label = @4
local.get 1
i32.const 1
i32.sub
local.tee 1
if ;; label = @5
local.get 3
i32.const 24
i32.add
local.get 3
i32.const 32
i32.add
call 32
local.get 3
i32.load offset=28
i32.const 1114112
i32.ne
br_if 1 (;@4;)
br 2 (;@3;)
end
end
local.get 3
i32.const 16
i32.add
local.get 3
i32.const 32
i32.add
call 32
local.get 3
i32.load offset=20
i32.const 1114112
i32.eq
br_if 0 (;@3;)
local.get 3
i32.const 8
i32.add
local.set 7
local.get 4
local.set 0
i32.const 0
local.set 1
block ;; label = @4
block ;; label = @5
local.get 3
i32.load offset=16
local.tee 6
i32.eqz
br_if 0 (;@5;)
local.get 5
local.get 6
i32.le_u
if ;; label = @6
local.get 5
local.get 6
i32.eq
br_if 1 (;@5;)
br 2 (;@4;)
end
local.get 0
local.get 6
i32.add
i32.load8_s
i32.const -64
i32.lt_s
br_if 1 (;@4;)
end
local.get 0
local.set 1
end
local.get 7
local.get 6
i32.store offset=4
local.get 7
local.get 1
i32.store
local.get 3
i32.load offset=12
local.get 5
local.get 3
i32.load offset=8
local.tee 0
select
local.set 5
local.get 0
local.get 4
local.get 0
select
local.set 4
end
local.get 8
br_if 0 (;@2;)
local.get 2
i32.load offset=24
local.get 4
local.get 5
local.get 2
i32.const 28
i32.add
i32.load
i32.load offset=12
call_indirect (type 1)
local.set 1
br 1 (;@1;)
end
block ;; label = @2
local.get 4
local.get 4
local.get 5
i32.add
local.tee 0
call 33
local.get 2
i32.const 12
i32.add
i32.load
local.tee 1
i32.lt_u
if ;; label = @3
local.get 1
local.get 1
local.get 4
local.get 0
call 33
i32.sub
local.tee 0
i32.lt_u
br_if 1 (;@2;)
i32.const 0
local.set 1
local.get 0
local.set 6
block ;; label = @4
block ;; label = @5
block ;; label = @6
i32.const 0
local.get 2
i32.load8_u offset=32
local.tee 7
local.get 7
i32.const 3
i32.eq
select
i32.const 3
i32.and
i32.const 1
i32.sub
br_table 1 (;@5;) 0 (;@6;) 1 (;@5;) 2 (;@4;)
end
local.get 0
i32.const 1
i32.add
local.tee 1
local.get 0
i32.lt_u
br_if 3 (;@2;)
local.get 1
i32.const 1
i32.shr_u
local.set 6
local.get 0
i32.const 1
i32.shr_u
local.set 1
br 1 (;@4;)
end
i32.const 0
local.set 6
local.get 0
local.set 1
end
local.get 1
i32.const 1
i32.add
local.set 1
local.get 2
i32.const 28
i32.add
i32.load
local.set 0
local.get 2
i32.load offset=4
local.set 7
local.get 2
i32.load offset=24
local.set 2
block ;; label = @4
loop ;; label = @5
local.get 1
i32.const 1
i32.sub
local.tee 1
i32.eqz
br_if 1 (;@4;)
local.get 2
local.get 7
local.get 0
i32.load offset=16
call_indirect (type 0)
i32.eqz
br_if 0 (;@5;)
end
i32.const 1
local.set 1
br 3 (;@1;)
end
i32.const 1
local.set 1
local.get 7
i32.const 1114112
i32.eq
br_if 2 (;@1;)
local.get 2
local.get 4
local.get 5
local.get 0
i32.load offset=12
call_indirect (type 1)
br_if 2 (;@1;)
i32.const 0
local.set 1
block (result i32) ;; label = @4
loop ;; label = @5
local.get 6
local.get 1
local.get 6
i32.eq
br_if 1 (;@4;)
drop
local.get 1
i32.const 1
i32.add
local.set 1
local.get 2
local.get 7
local.get 0
i32.load offset=16
call_indirect (type 0)
i32.eqz
br_if 0 (;@5;)
end
local.get 1
i32.const 1
i32.sub
end
local.get 6
i32.lt_u
local.set 1
br 2 (;@1;)
end
local.get 2
i32.load offset=24
local.get 4
local.get 5
local.get 2
i32.const 28
i32.add
i32.load
i32.load offset=12
call_indirect (type 1)
local.set 1
br 1 (;@1;)
end
unreachable
end
local.get 3
i32.const 48
i32.add
global.set 0
local.get 1)
(func (;21;) (type 2) (param i32 i32)
(local i32)
block (result i32) ;; label = @1
local.get 1
i32.eqz
if ;; label = @2
i32.const 0
local.set 1
i32.const 1
br 1 (;@1;)
end
local.get 1
call 30
end
local.set 2
local.get 0
local.get 1
i32.store offset=4
local.get 0
local.get 2
i32.store)
(func (;22;) (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 5
global.set 0
local.get 5
local.get 0
i32.store offset=4
local.get 5
i32.const 24
i32.add
local.get 1
i32.const 16
i32.add
i64.load align=4
i64.store
local.get 5
i32.const 16
i32.add
local.get 1
i32.const 8
i32.add
i64.load align=4
i64.store
local.get 5
local.get 1
i64.load align=4
i64.store offset=8
i32.const 0
local.set 0
global.get 0
i32.const -64
i32.add
local.tee 2
global.set 0
local.get 2
i32.const 52
i32.add
i32.const 65588
i32.store
local.get 2
i32.const 3
i32.store8 offset=56
local.get 2
i64.const 137438953472
i64.store offset=24
local.get 2
local.get 5
i32.const 4
i32.add
i32.store offset=48
local.get 2
i32.const 0
i32.store offset=40
local.get 2
i32.const 0
i32.store offset=32
block (result i32) ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 5
i32.const 8
i32.add
local.tee 3
i32.load offset=8
local.tee 4
i32.eqz
if ;; label = @4
local.get 3
i32.load offset=4
local.tee 7
local.get 3
i32.const 20
i32.add
i32.load
local.tee 1
local.get 1
local.get 7
i32.gt_u
select
local.set 8
local.get 3
i32.load
local.set 9
local.get 3
i32.load offset=16
local.set 1
i32.const 0
local.set 4
loop ;; label = @5
local.get 0
local.get 8
i32.eq
br_if 2 (;@3;)
local.get 4
local.get 9
i32.add
local.tee 3
i32.const 4
i32.add
i32.load
local.tee 6
if ;; label = @6
local.get 2
i32.load offset=48
local.get 3
i32.load
local.get 6
local.get 2
i32.load offset=52
i32.load offset=12
call_indirect (type 1)
br_if 4 (;@2;)
end
local.get 1
local.get 4
i32.add
local.tee 3
i32.load
local.get 2
i32.const 24
i32.add
local.get 3
i32.const 4
i32.add
i32.load
call_indirect (type 0)
br_if 3 (;@2;)
local.get 4
i32.const 8
i32.add
local.set 4
local.get 0
i32.const 1
i32.add
local.tee 0
br_if 0 (;@5;)
end
unreachable
end
local.get 3
i32.load offset=4
local.tee 7
local.get 3
i32.const 12
i32.add
i32.load
i32.const 134217727
i32.and
local.tee 1
local.get 1
local.get 7
i32.gt_u
select
local.tee 8
i32.const 3
i32.shl
i32.const 8
i32.add
local.set 10
local.get 3
i32.load
local.set 9
loop ;; label = @4
local.get 10
local.get 0
i32.const 8
i32.add
local.tee 1
i32.eq
br_if 1 (;@3;)
local.get 0
local.get 9
i32.add
local.tee 0
i32.const 4
i32.add
i32.load
local.tee 6
if ;; label = @5
local.get 2
i32.load offset=48
local.get 0
i32.load
local.get 6
local.get 2
i32.load offset=52
i32.load offset=12
call_indirect (type 1)
br_if 3 (;@2;)
end
local.get 2
local.get 4
i32.const 28
i32.add
i32.load8_u
i32.store8 offset=56
local.get 2
local.get 4
i32.const 4
i32.add
i64.load align=4
i64.const 32
i64.rotl
i64.store offset=24
local.get 2
i32.const 16
i32.add
local.get 3
i32.load offset=16
local.tee 6
local.get 4
i32.const 20
i32.add
call 34
local.get 2
local.get 2
i64.load offset=16
i64.store offset=32
local.get 2
i32.const 8
i32.add
local.get 6
local.get 4
i32.const 12
i32.add
call 34
local.get 2
local.get 2
i64.load offset=8
i64.store offset=40
local.get 4
i32.load
local.set 11
local.get 4
i32.const 32
i32.add
local.set 4
local.get 1
local.set 0
local.get 6
local.get 11
i32.const 3
i32.shl
i32.add
local.tee 1
i32.load
local.get 2
i32.const 24
i32.add
local.get 1
i32.load offset=4
call_indirect (type 0)
i32.eqz
br_if 0 (;@4;)
end
br 1 (;@2;)
end
local.get 7
local.get 8
i32.gt_u
if ;; label = @3
local.get 2
i32.load offset=48
local.get 9
local.get 8
i32.const 3
i32.shl
i32.add
local.tee 0
i32.load
local.get 0
i32.load offset=4
local.get 2
i32.load offset=52
i32.load offset=12
call_indirect (type 1)
br_if 1 (;@2;)
end
i32.const 0
br 1 (;@1;)
end
i32.const 1
end
local.get 2
i32.const -64
i32.sub
global.set 0
local.get 5
i32.const 32
i32.add
global.set 0)
(func (;23;) (type 2) (param i32 i32)
(local i32 i32 i32)
local.get 0
if ;; label = @1
local.get 1
local.get 1
i32.const 4
i32.add
local.tee 3
i32.le_u
i32.const 0
local.get 3
i32.const 1
i32.sub
local.get 3
i32.le_u
select
i32.eqz
if ;; label = @2
unreachable
end
local.get 0
i32.const 8
i32.sub
local.tee 1
local.get 1
i32.load
local.tee 4
i32.const -2
i32.and
i32.store
block ;; label = @2
block ;; label = @3
local.get 4
i32.const -4
i32.and
local.tee 3
local.get 0
i32.sub
local.get 3
i32.le_u
if ;; label = @4
i32.const 65624
i32.load
local.set 3
local.get 0
i32.const 0
i32.store
local.get 0
i32.const 4
i32.sub
i32.load
i32.const -4
i32.and
local.tee 2
i32.eqz
br_if 1 (;@3;)
local.get 2
i32.load8_u
i32.const 1
i32.and
br_if 1 (;@3;)
local.get 1
call 36
local.get 2
i32.load
local.set 0
local.get 1
i32.load8_u
i32.const 2
i32.and
if ;; label = @5
local.get 2
local.get 0
i32.const 2
i32.or
local.tee 0
i32.store
end
local.get 3
local.set 1
local.get 0
i32.const -4
i32.and
local.tee 0
local.get 2
i32.sub
i32.const 8
i32.sub
local.get 0
i32.le_u
br_if 2 (;@2;)
end
unreachable
end
block ;; label = @3
local.get 4
i32.const -4
i32.and
local.tee 2
i32.eqz
br_if 0 (;@3;)
i32.const 0
local.get 2
local.get 4
i32.const 2
i32.and
select
local.tee 2
i32.eqz
br_if 0 (;@3;)
local.get 2
i32.load8_u
i32.const 1
i32.and
br_if 0 (;@3;)
local.get 0
local.get 2
i32.load offset=8
i32.const -4
i32.and
i32.store
local.get 2
local.get 1
i32.const 1
i32.or
i32.store offset=8
local.get 3
local.set 1
br 1 (;@2;)
end
local.get 0
local.get 3
i32.store
end
i32.const 65624
local.get 1
i32.store
end)
(func (;24;) (type 5) (param i32)
nop)
(func (;25;) (type 1) (param i32 i32 i32) (result i32)
local.get 0
i32.load
local.get 1
local.get 2
call 26
i32.const 0)
(func (;26;) (type 3) (param i32 i32 i32)
(local i32)
local.get 0
local.get 2
call 28
local.get 0
i32.load offset=8
local.tee 3
local.get 0
i32.load
i32.add
local.get 1
local.get 2
call 37
local.get 3
local.get 2
local.get 3
i32.add
local.tee 1
i32.gt_u
if ;; label = @1
unreachable
end
local.get 0
local.get 1
i32.store offset=8)
(func (;27;) (type 0) (param i32 i32) (result i32)
(local i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 2
global.set 0
block ;; label = @1
local.get 0
i32.load
local.tee 0
local.get 2
i32.const 12
i32.add
block (result i32) ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 1
i32.const 127
i32.le_u
if ;; label = @5
local.get 0
i32.load offset=8
local.tee 3
local.get 0
i32.load offset=4
i32.eq
if ;; label = @6
local.get 0
i32.const 1
call 28
local.get 0
i32.load offset=8
local.set 3
end
local.get 0
i32.load
local.get 3
i32.add
local.get 1
i32.store8
local.get 3
i32.const 1
i32.add
local.tee 1
local.get 3
i32.lt_u
br_if 1 (;@4;)
local.get 0
local.get 1
i32.store offset=8
br 4 (;@1;)
end
local.get 2
i32.const 0
i32.store offset=12
local.get 1
i32.const 2048
i32.lt_u
br_if 1 (;@3;)
local.get 1
i32.const 65536
i32.lt_u
if ;; label = @5
local.get 2
local.get 1
i32.const 63
i32.and
i32.const 128
i32.or
i32.store8 offset=14
local.get 2
local.get 1
i32.const 12
i32.shr_u
i32.const 224
i32.or
i32.store8 offset=12
local.get 2
local.get 1
i32.const 6
i32.shr_u
i32.const 63
i32.and
i32.const 128
i32.or
i32.store8 offset=13
i32.const 3
br 3 (;@2;)
end
local.get 2
local.get 1
i32.const 63
i32.and
i32.const 128
i32.or
i32.store8 offset=15
local.get 2
local.get 1
i32.const 18
i32.shr_u
i32.const 240
i32.or
i32.store8 offset=12
local.get 2
local.get 1
i32.const 6
i32.shr_u
i32.const 63
i32.and
i32.const 128
i32.or
i32.store8 offset=14
local.get 2
local.get 1
i32.const 12
i32.shr_u
i32.const 63
i32.and
i32.const 128
i32.or
i32.store8 offset=13
i32.const 4
br 2 (;@2;)
end
unreachable
end
local.get 2
local.get 1
i32.const 63
i32.and
i32.const 128
i32.or
i32.store8 offset=13
local.get 2
local.get 1
i32.const 6
i32.shr_u
i32.const 192
i32.or
i32.store8 offset=12
i32.const 2
end
call 26
end
local.get 2
i32.const 16
i32.add
global.set 0
i32.const 0)
(func (;28;) (type 2) (param i32 i32)
(local i32 i32 i32 i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 2
global.set 0
block ;; label = @1
local.get 1
local.get 0
i32.load offset=4
local.tee 4
local.get 0
i32.load offset=8
local.tee 3
i32.sub
i32.gt_u
if ;; label = @2
local.get 1
local.get 3
i32.add
local.tee 1
local.get 3
i32.lt_u
br_if 1 (;@1;)
local.get 4
local.get 4
i32.add
local.tee 3
local.get 4
i32.lt_u
br_if 1 (;@1;)
local.get 3
local.get 1
local.get 1
local.get 3
i32.lt_u
select
local.tee 1
i32.const 8
local.get 1
i32.const 8
i32.gt_u
select
local.set 1
block ;; label = @3
local.get 4
if ;; label = @4
local.get 2
i32.const 24
i32.add
i32.const 1
i32.store
local.get 2
local.get 4
i32.store offset=20
local.get 2
local.get 0
i32.load
i32.store offset=16
br 1 (;@3;)
end
local.get 2
i32.const 0
i32.store offset=16
end
local.get 2
i32.const 16
i32.add
local.set 3
global.get 0
i32.const 16
i32.sub
local.tee 4
global.set 0
block ;; label = @3
block (result i32) ;; label = @4
block ;; label = @5
local.get 1
i32.const 0
i32.ge_s
if ;; label = @6
local.get 3
i32.load
local.tee 5
br_if 1 (;@5;)
local.get 4
local.get 1
call 21
local.get 4
i32.load
local.set 3
local.get 4
i32.load offset=4
br 2 (;@4;)
end
local.get 2
i32.const 1
i32.store
local.get 2
i32.const 8
i32.add
i32.const 0
i32.store
br 2 (;@3;)
end
local.get 3
i32.load offset=4
local.tee 6
i32.eqz
if ;; label = @5
local.get 4
i32.const 8
i32.add
local.get 1
call 21
local.get 4
i32.load offset=8
local.set 3
local.get 4
i32.load offset=12
br 1 (;@4;)
end
local.get 1
call 30
local.tee 3
if ;; label = @5
local.get 3
local.get 5
local.get 6
call 37
local.get 5
local.get 6
call 23
end
local.get 1
end
local.set 5
local.get 2
block (result i32) ;; label = @4
local.get 3
if ;; label = @5
local.get 2
local.get 3
i32.store offset=4
i32.const 0
br 1 (;@4;)
end
local.get 2
local.get 1
i32.store offset=4
i32.const 1
local.set 5
i32.const 1
end
i32.store
local.get 2
i32.const 8
i32.add
local.get 5
i32.store
end
local.get 4
i32.const 16
i32.add
global.set 0
local.get 2
i32.load
i32.const 1
i32.eq
br_if 1 (;@1;)
local.get 0
local.get 2
i64.load offset=4 align=4
i64.store align=4
end
local.get 2
i32.const 32
i32.add
global.set 0
return
end
unreachable)
(func (;29;) (type 0) (param i32 i32) (result i32)
(local i32)
global.get 0
i32.const 32
i32.sub
local.tee 2
global.set 0
local.get 0
i32.load
local.get 2
i32.const 24
i32.add
local.get 1
i32.const 16
i32.add
i64.load align=4
i64.store
local.get 2
i32.const 16
i32.add
local.get 1
i32.const 8
i32.add
i64.load align=4
i64.store
local.get 2
local.get 1
i64.load align=4
i64.store offset=8
local.get 2
i32.const 8
i32.add
call 22
local.get 2
i32.const 32
i32.add
global.set 0)
(func (;30;) (type 4) (param i32) (result i32)
(local i32 i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 1
global.set 0
block ;; label = @1
local.get 0
local.get 0
i32.const 4
i32.add
local.tee 3
i32.le_u
if ;; label = @2
local.get 3
i32.const 1
i32.sub
local.tee 0
local.get 3
i32.le_u
br_if 1 (;@1;)
end
unreachable
end
local.get 0
i32.const 2
i32.shr_u
local.set 3
local.get 1
i32.const 65624
i32.load
i32.store offset=12
block ;; label = @1
local.get 3
local.get 1
i32.const 12
i32.add
call 35
local.tee 0
br_if 0 (;@1;)
block ;; label = @2
block ;; label = @3
local.get 3
i32.const 2
i32.shl
local.tee 0
i32.const 520
local.get 0
i32.const 520
i32.gt_u
select
local.tee 2
i32.const 8
i32.add
local.tee 0
local.get 2
i32.lt_u
br_if 0 (;@3;)
block (result i32) ;; label = @4
i32.const 1
block ;; label = @5
local.get 0
local.get 0
i32.const 65536
i32.add
local.tee 2
i32.le_u
if ;; label = @6
local.get 2
i32.const 1
i32.sub
local.tee 0
local.get 2
i32.le_u
br_if 1 (;@5;)
end
unreachable
end
local.get 0
i32.const 16
i32.shr_u
local.tee 2
memory.grow
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@4;)
drop
local.get 0
i32.const 65535
i32.and
local.get 0
i32.ne
br_if 1 (;@3;)
local.get 2
i32.const 16
i32.shl
local.tee 2
i32.const 8
i32.sub
local.get 2
i32.gt_u
br_if 1 (;@3;)
local.get 0
i32.const 16
i32.shl
local.tee 0
i64.const 0
i64.store
local.get 0
i32.const 0
i32.store offset=8
local.get 0
local.get 0
local.get 2
i32.add
i32.const 2
i32.or
i32.store
i32.const 0
end
local.set 2
local.get 1
local.get 0
i32.store offset=4
local.get 1
local.get 2
i32.store
br 1 (;@2;)
end
unreachable
end
i32.const 0
local.set 0
local.get 1
i32.load
br_if 0 (;@1;)
local.get 1
i32.load offset=4
local.tee 0
local.get 1
i32.load offset=12
i32.store offset=8
local.get 1
local.get 0
i32.store offset=12
local.get 3
local.get 1
i32.const 12
i32.add
call 35
local.set 0
end
i32.const 65624
local.get 1
i32.load offset=12
i32.store
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func (;31;) (type 0) (param i32 i32) (result i32)
local.get 0
i32.load
drop
loop ;; label = @1
br 0 (;@1;)
end
unreachable)
(func (;32;) (type 2) (param i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
local.get 1
i32.const 8
i32.add
i32.load
local.set 9
local.get 1
i32.load offset=4
local.set 10
block ;; label = @1
block (result i32) ;; label = @2
i32.const 1114112
local.get 1
i32.const 4
i32.add
local.tee 5
i32.load
local.tee 3
local.get 5
i32.load offset=4
local.tee 4
i32.eq
br_if 0 (;@2;)
drop
local.get 5
local.get 3
i32.const 1
i32.add
local.tee 2
i32.store
local.get 3
i32.load8_u
local.tee 6
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const -1
i32.le_s
if (result i32) ;; label = @3
block (result i32) ;; label = @4
local.get 2
local.get 4
i32.eq
if ;; label = @5
local.get 4
local.set 2
i32.const 0
br 1 (;@4;)
end
local.get 5
local.get 3
i32.const 2
i32.add
local.tee 2
i32.store
local.get 3
i32.load8_u offset=1
i32.const 63
i32.and
end
local.tee 11
local.get 6
i32.const 31
i32.and
local.tee 7
i32.const 6
i32.shl
i32.or
local.get 6
i32.const 223
i32.le_u
br_if 1 (;@2;)
drop
block (result i32) ;; label = @4
local.get 2
local.get 4
i32.eq
if ;; label = @5
local.get 4
local.set 3
i32.const 0
br 1 (;@4;)
end
local.get 5
local.get 2
i32.const 1
i32.add
local.tee 3
i32.store
local.get 2
i32.load8_u
i32.const 63
i32.and
end
local.get 11
i32.const 6
i32.shl
i32.or
local.tee 2
local.get 7
i32.const 12
i32.shl
i32.or
local.get 6
i32.const 240
i32.lt_u
br_if 1 (;@2;)
drop
local.get 3
local.get 4
i32.eq
if (result i32) ;; label = @4
i32.const 0
else
local.get 5
local.get 3
i32.const 1
i32.add
i32.store
local.get 3
i32.load8_u
i32.const 63
i32.and
end
local.get 7
i32.const 18
i32.shl
i32.const 1835008
i32.and
local.get 2
i32.const 6
i32.shl
i32.or
i32.or
else
local.get 6
end
end
local.tee 4
i32.const 1114112
i32.ne
if ;; label = @2
local.get 9
local.get 10
i32.sub
local.tee 2
local.get 1
i32.load offset=4
local.get 1
i32.load offset=8
i32.sub
i32.add
local.tee 3
local.get 2
i32.gt_u
br_if 1 (;@1;)
local.get 1
i32.load
local.tee 8
local.get 3
i32.add
local.tee 2
local.get 8
i32.lt_u
br_if 1 (;@1;)
local.get 1
local.get 2
i32.store
end
local.get 0
local.get 4
i32.store offset=4
local.get 0
local.get 8
i32.store
return
end
unreachable)
(func (;33;) (type 0) (param i32 i32) (result i32)
(local i32)
block ;; label = @1
loop ;; label = @2
local.get 0
local.get 1
i32.ne
if ;; label = @3
local.get 2
local.get 2
local.get 0
i32.load8_u
i32.const 192
i32.and
i32.const 128
i32.ne
i32.add
local.tee 2
i32.gt_u
br_if 2 (;@1;)
local.get 0
i32.const 1
i32.add
local.set 0
br 1 (;@2;)
end
end
local.get 2
return
end
unreachable)
(func (;34;) (type 3) (param i32 i32 i32)
(local i32 i32)
block ;; label = @1
block (result i32) ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 2
i32.load
i32.const 1
i32.sub
br_table 1 (;@3;) 3 (;@1;) 0 (;@4;)
end
local.get 2
i32.load offset=4
br 1 (;@2;)
end
local.get 1
local.get 2
i32.load offset=4
i32.const 3
i32.shl
i32.add
local.tee 1
i32.load offset=4
i32.const 2
i32.ne
br_if 1 (;@1;)
local.get 1
i32.load
i32.load
end
local.set 4
i32.const 1
local.set 3
end
local.get 0
local.get 4
i32.store offset=4
local.get 0
local.get 3
i32.store)
(func (;35;) (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32)
local.get 0
i32.const 2
i32.shl
local.set 4
local.get 0
i32.const 1073741823
i32.and
local.get 0
i32.ne
local.set 7
local.get 1
i32.load
local.set 0
loop ;; label = @1
block ;; label = @2
local.get 0
if (result i32) ;; label = @3
block ;; label = @4
block ;; label = @5
loop ;; label = @6
block ;; label = @7
local.get 0
i32.load offset=8
local.tee 2
i32.const 1
i32.and
i32.eqz
if ;; label = @8
local.get 7
br_if 1 (;@7;)
local.get 0
i32.load
i32.const -4
i32.and
local.tee 3
local.get 0
i32.const 8
i32.add
local.tee 6
i32.sub
local.tee 8
local.get 3
i32.gt_u
br_if 1 (;@7;)
local.get 4
local.get 8
i32.gt_u
br_if 6 (;@2;)
local.get 3
local.get 4
i32.sub
local.tee 4
local.get 3
i32.gt_u
br_if 1 (;@7;)
local.get 6
i32.const 8
i32.add
local.tee 5
local.get 6
i32.lt_u
br_if 1 (;@7;)
local.get 5
local.get 5
i32.const -64
i32.sub
local.tee 5
i32.gt_u
br_if 1 (;@7;)
local.get 4
local.get 5
i32.lt_u
br_if 3 (;@5;)
local.get 4
i32.const 8
i32.sub
local.tee 2
local.get 4
i32.gt_u
br_if 1 (;@7;)
local.get 3
local.get 2
i32.sub
local.tee 1
local.get 3
i32.gt_u
br_if 1 (;@7;)
local.get 1
i32.const 8
i32.sub
local.get 1
i32.gt_u
br_if 1 (;@7;)
local.get 2
i32.const 0
i32.store offset=8
local.get 2
i64.const 0
i64.store align=4
local.get 2
local.get 0
i32.load
i32.const -4
i32.and
i32.store
block ;; label = @9
local.get 0
i32.load
local.tee 1
i32.const -4
i32.and
local.tee 3
i32.eqz
br_if 0 (;@9;)
i32.const 0
local.get 3
local.get 1
i32.const 2
i32.and
select
local.tee 1
i32.eqz
br_if 0 (;@9;)
local.get 1
local.get 1
i32.load offset=4
i32.const 3
i32.and
local.get 2
i32.or
i32.store offset=4
end
local.get 2
local.get 2
i32.load offset=4
i32.const 3
i32.and
local.get 0
i32.or
i32.store offset=4
local.get 0
local.get 0
i32.load offset=8
i32.const -2
i32.and
i32.store offset=8
local.get 0
local.get 0
i32.load
local.tee 1
i32.const 3
i32.and
local.get 2
i32.or
local.tee 3
i32.store
block ;; label = @9
local.get 1
i32.const 2
i32.and
i32.eqz
if ;; label = @10
local.get 2
i32.load
local.set 0
br 1 (;@9;)
end
local.get 0
local.get 3
i32.const -3
i32.and
i32.store
local.get 2
local.get 2
i32.load
i32.const 2
i32.or
local.tee 0
i32.store
end
local.get 2
local.get 0
i32.const 1
i32.or
i32.store
br 4 (;@4;)
end
local.get 0
local.get 2
i32.const -2
i32.and
i32.store offset=8
block (result i32) ;; label = @8
i32.const 0
local.get 0
i32.load offset=4
i32.const -4
i32.and
local.tee 2
i32.eqz
br_if 0 (;@8;)
drop
i32.const 0
local.get 2
local.get 2
i32.load8_u
i32.const 1
i32.and
select
end
local.set 2
local.get 0
call 36
local.get 0
i32.load8_u
i32.const 2
i32.and
if ;; label = @8
local.get 2
local.get 2
i32.load
i32.const 2
i32.or
i32.store
end
local.get 1
local.get 2
i32.store
local.get 2
local.tee 0
i32.load
i32.const -4
i32.and
local.tee 2
local.get 0
i32.sub
i32.const 8
i32.sub
local.get 2
i32.le_u
br_if 1 (;@6;)
end
end
unreachable
end
local.get 1
local.get 2
i32.const -4
i32.and
i32.store
local.get 0
local.get 0
i32.load
i32.const 1
i32.or
i32.store
local.get 0
local.set 2
end
local.get 2
i32.const 8
i32.add
else
i32.const 0
end
return
end
local.get 1
local.get 2
i32.store
local.get 2
local.set 0
br 0 (;@1;)
end
unreachable)
(func (;36;) (type 5) (param i32)
(local i32 i32)
block ;; label = @1
local.get 0
i32.load
local.tee 1
i32.const -4
i32.and
local.tee 2
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 2
local.get 1
i32.const 2
i32.and
select
local.tee 1
i32.eqz
br_if 0 (;@1;)
local.get 1
local.get 1
i32.load offset=4
i32.const 3
i32.and
local.get 0
i32.load offset=4
i32.const -4
i32.and
i32.or
i32.store offset=4
end
local.get 0
local.get 0
i32.load offset=4
local.tee 1
i32.const -4
i32.and
local.tee 2
if (result i32) ;; label = @1
local.get 2
local.get 2
i32.load
i32.const 3
i32.and
local.get 0
i32.load
i32.const -4
i32.and
i32.or
i32.store
local.get 0
i32.load offset=4
else
local.get 1
end
i32.const 3
i32.and
i32.store offset=4
local.get 0
local.get 0
i32.load
i32.const 3
i32.and
i32.store)
(func (;37;) (type 3) (param i32 i32 i32)
(local i32)
loop ;; label = @1
local.get 2
local.get 3
i32.ne
if ;; label = @2
local.get 0
local.get 3
i32.add
local.get 1
local.get 3
i32.add
i32.load8_u
i32.store8
local.get 3
i32.const 1
i32.add
local.set 3
br 1 (;@1;)
end
end)
(table (;0;) 7 7 funcref)
(global (;0;) (mut i32) (i32.const 65536))
(export "deploy" (func 15))
(export "call" (func 17))
(elem (;0;) (i32.const 1) func 20 31 24 25 27 29)
(data (;0;) (i32.const 65536) "FLIP \00\00\00\00\00\01\00\05\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\00\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00falsetrue"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment