Skip to content

Instantly share code, notes, and snippets.

@johnchandlerburnham
Last active November 15, 2019 06:35
Show Gist options
  • Save johnchandlerburnham/5689b672519ccefb62bf8554a3b9b4ab to your computer and use it in GitHub Desktop.
Save johnchandlerburnham/5689b672519ccefb62bf8554a3b9b4ab to your computer and use it in GitHub Desktop.
fm-net-c.wat
(module
(type (;0;) (func (param i32)))
(type (;1;) (func (result i32)))
(type (;2;) (func (param i32) (result i32)))
(type (;3;) (func (param f64) (result f64)))
(type (;4;) (func (param f64 f64) (result f64)))
(type (;5;) (func (param f64 f64) (result i64)))
(type (;6;) (func (param i32 i32 i32 i32) (result i32)))
(type (;7;) (func (param f64 f64) (result i32)))
(type (;8;) (func (param i32 i32 i32 i32) (result f64)))
(import "env" "setTempRet0" (func (;0;) (type 0)))
(import "env" "_llvm_trunc_f64" (func (;1;) (type 3)))
(func (;2;) (type 4) (param f64 f64) (result f64)
local.get 1
call 1)
(func (;3;) (type 4) (param f64 f64) (result f64)
local.get 1
f64.floor)
(func (;4;) (type 4) (param f64 f64) (result f64)
local.get 1
f64.ceil)
(func (;5;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.xor
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;6;) (type 8) (param i32 i32 i32 i32) (result f64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
f64.convert_i64_u)
(func (;7;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.sub
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;8;) (type 8) (param i32 i32 i32 i32) (result f64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
f64.convert_i64_s)
(func (;9;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.shr_s
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;10;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.shr_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;11;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.shl
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;12;) (type 4) (param f64 f64) (result f64)
local.get 1
f64.neg)
(func (;13;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64 i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.tee 4
i64.const 0
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.tee 5
i64.sub
i64.const 63
i64.and
i64.shl
local.get 4
local.get 5
i64.const 63
i64.and
i64.shr_u
i64.or
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;14;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64 i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.tee 4
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.tee 5
i64.const 63
i64.and
i64.shl
local.get 4
i64.const 0
local.get 5
i64.sub
i64.const 63
i64.and
i64.shr_u
i64.or
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;15;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.rem_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;16;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.rem_s
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;17;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.popcnt
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;18;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.or
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;19;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.ne
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;20;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.mul
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;21;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.lt_u
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;22;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.lt_s
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;23;) (type 4) (param f64 f64) (result f64)
local.get 1
f64.abs)
(func (;24;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.le_u
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;25;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.le_s
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;26;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.gt_u
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;27;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.gt_s
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;28;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.ge_u
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;29;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.ge_s
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;30;) (type 7) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.trunc_f64_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;31;) (type 7) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.trunc_f64_s
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;32;) (type 7) (param f64 f64) (result i32)
(local i64)
local.get 0
local.get 1
call 47
local.set 2
local.get 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;33;) (type 7) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 0
local.get 1
f64.lt
i32.and
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;34;) (type 7) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 0
local.get 1
f64.le
i32.and
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;35;) (type 7) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 0
local.get 1
f64.gt
i32.and
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;36;) (type 7) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 0
local.get 1
f64.ge
i32.and
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;37;) (type 7) (param f64 f64) (result i32)
(local i64)
local.get 0
local.get 1
f64.eq
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;38;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.eq
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;39;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.div_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;40;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.div_s
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;41;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.ctz
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;42;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.clz
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;43;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.and
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;44;) (type 0) (param i32)
local.get 0
global.set 0)
(func (;45;) (type 6) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.add
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;46;) (type 1) (result i32)
global.get 0)
(func (;47;) (type 5) (param f64 f64) (result i64)
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405312
i64.gt_u
if ;; label = @1
i64.const 1
return
end
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405312
i64.gt_u
if ;; label = @1
i64.const 1
return
end
local.get 0
local.get 1
f64.ne
i64.extend_i32_u)
(func (;48;) (type 4) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.copysign)
(func (;49;) (type 4) (param f64 f64) (result f64)
block (result f64) ;; label = @1
local.get 1
local.get 0
local.get 0
f64.ne
br_if 0 (;@1;)
drop
local.get 0
local.get 1
local.get 1
f64.ne
br_if 0 (;@1;)
drop
local.get 0
local.get 1
f64.max
end)
(func (;50;) (type 4) (param f64 f64) (result f64)
block (result f64) ;; label = @1
local.get 1
local.get 0
local.get 0
f64.ne
br_if 0 (;@1;)
drop
local.get 0
local.get 1
local.get 1
f64.ne
br_if 0 (;@1;)
drop
local.get 0
local.get 1
f64.min
end)
(func (;51;) (type 4) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.div)
(func (;52;) (type 4) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.mul)
(func (;53;) (type 4) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.sub)
(func (;54;) (type 4) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.add)
(func (;55;) (type 4) (param f64 f64) (result f64)
local.get 1
f64.sqrt)
(func (;56;) (type 4) (param f64 f64) (result f64)
(local f64)
local.get 1
local.tee 2
f64.const 0x1p-1 (;=0.5;)
f64.add
f64.floor
local.get 2
f64.const 0x1p-1 (;=0.5;)
f64.sub
f64.ceil
local.get 2
f64.const 0x0p+0 (;=0;)
f64.ge
select)
(func (;57;) (type 2) (param i32) (result i32)
(local i32 i32)
global.get 0
local.set 2
local.get 0
global.get 0
i32.add
global.set 0
global.get 0
i32.const 15
i32.add
i32.const -16
i32.and
global.set 0
local.get 2)
(global (;0;) (mut i32) (i32.const 2816))
(export "__add" (func 45))
(export "__and" (func 43))
(export "__clz" (func 42))
(export "__ctz" (func 41))
(export "__div_s" (func 40))
(export "__div_u" (func 39))
(export "__eq" (func 38))
(export "__fabs" (func 23))
(export "__fadd" (func 54))
(export "__fceil" (func 4))
(export "__fcpysgn" (func 48))
(export "__fdiv" (func 51))
(export "__feq" (func 37))
(export "__ffloor" (func 3))
(export "__fge" (func 36))
(export "__fgt" (func 35))
(export "__fle" (func 34))
(export "__flt" (func 33))
(export "__fmax" (func 49))
(export "__fmin" (func 50))
(export "__fmul" (func 52))
(export "__fne" (func 32))
(export "__fneg" (func 12))
(export "__fnrst" (func 56))
(export "__fsqrt" (func 55))
(export "__fsub" (func 53))
(export "__ftos" (func 31))
(export "__ftou" (func 30))
(export "__ftrunc" (func 2))
(export "__ge_s" (func 29))
(export "__ge_u" (func 28))
(export "__gt_s" (func 27))
(export "__gt_u" (func 26))
(export "__le_s" (func 25))
(export "__le_u" (func 24))
(export "__lt_s" (func 22))
(export "__lt_u" (func 21))
(export "__mul" (func 20))
(export "__ne" (func 19))
(export "__or" (func 18))
(export "__popcnt" (func 17))
(export "__rem_s" (func 16))
(export "__rem_u" (func 15))
(export "__rotl" (func 14))
(export "__rotr" (func 13))
(export "__shl" (func 11))
(export "__shr" (func 10))
(export "__shr_s" (func 9))
(export "__stof" (func 8))
(export "__sub" (func 7))
(export "__utof" (func 6))
(export "__xor" (func 5))
(export "stackAlloc" (func 57))
(export "stackRestore" (func 44))
(export "stackSave" (func 46)))
(module
(type (;0;) (func (param i32 i32 i32 i32)))
(type (;1;) (func (param i32)))
(type (;2;) (func (result i32)))
(type (;3;) (func (param i32) (result i32)))
(type (;4;) (func (param f64) (result f64)))
(type (;5;) (func (param i32 i32)))
(type (;6;) (func (param f64 f64) (result f64)))
(type (;7;) (func (param f64 f64) (result i64)))
(type (;8;) (func (param i32) (result i64)))
(type (;9;) (func (param i32 i64)))
(type (;10;) (func (param i32 i32 i32 i32) (result i32)))
(type (;11;) (func (param f64 f64) (result i32)))
(type (;12;) (func (param i32 i32 i32 i32) (result f64)))
(type (;13;) (func (param i32 i32 i32)))
(import "env" "setTempRet0" (func (;0;) (type 1)))
(import "env" "___assert_fail" (func (;1;) (type 0)))
(import "env" "_llvm_trunc_f64" (func (;2;) (type 4)))
(import "env" "memory" (memory (;0;) 256))
(func (;3;) (type 9) (param i32 i64)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64 i64 i64 i64 f64 f64)
local.get 0
i32.load
local.tee 4
local.get 1
i32.wrap_i64
i32.const 3
i32.shl
i32.add
i64.load offset=24
local.set 18
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
loop ;; label = @8
block ;; label = @9
local.get 1
i32.wrap_i64
local.tee 6
i32.const 3
i32.shl
local.get 4
i32.add
local.set 5
local.get 18
i32.wrap_i64
local.tee 7
i32.const 6
i32.shr_u
local.tee 3
i32.const 3
i32.and
local.set 2
block ;; label = @10
local.get 18
i32.wrap_i64
i32.const 3
i32.and
br_table 0 (;@10;) 1 (;@9;) 7 (;@3;) 8 (;@2;)
end
local.get 1
local.get 5
i64.load
local.tee 17
i64.eq
br_if 2 (;@7;)
local.get 17
i32.wrap_i64
local.tee 10
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 8
i64.load offset=24
local.tee 19
i32.wrap_i64
local.tee 9
i32.const 6
i32.shr_u
i32.const 3
i32.and
local.tee 3
local.get 2
i32.eq
if ;; label = @10
local.get 18
local.get 19
i64.xor
i64.const 256
i64.lt_u
local.get 2
i32.or
br_if 4 (;@6;)
end
local.get 2
i32.eqz
local.get 3
i32.const 1
i32.ne
i32.and
br_if 4 (;@5;)
local.get 3
i32.const 1
i32.eq
local.get 2
i32.const 2
i32.ne
i32.and
br_if 5 (;@4;)
local.get 3
br_if 7 (;@2;)
local.get 17
local.set 1
local.get 19
local.set 18
br 1 (;@8;)
end
end
local.get 5
i32.const 24
i32.add
local.set 2
local.get 5
i64.load
local.set 17
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
local.get 3
i32.const 3
i32.and
br_table 2 (;@10;) 0 (;@12;) 1 (;@11;) 3 (;@9;) 4 (;@8;)
end
local.get 5
i64.load offset=8
local.set 1
block (result i64) ;; label = @12
block ;; label = @13
local.get 18
i64.const 8
i64.shr_u
i64.const 72057594037927935
i64.and
i64.const 0
i64.sub
local.tee 19
i64.const 32
i64.shr_u
i32.wrap_i64
br_if 0 (;@13;)
block ;; label = @14
block ;; label = @15
block ;; label = @16
block ;; label = @17
block ;; label = @18
block ;; label = @19
block ;; label = @20
block ;; label = @21
block ;; label = @22
block ;; label = @23
block ;; label = @24
block ;; label = @25
block ;; label = @26
block ;; label = @27
block ;; label = @28
block ;; label = @29
block ;; label = @30
block ;; label = @31
block ;; label = @32
block ;; label = @33
block ;; label = @34
block ;; label = @35
block ;; label = @36
block ;; label = @37
block ;; label = @38
block ;; label = @39
block ;; label = @40
block ;; label = @41
block ;; label = @42
block ;; label = @43
block ;; label = @44
block ;; label = @45
block ;; label = @46
block ;; label = @47
block ;; label = @48
block ;; label = @49
block ;; label = @50
block ;; label = @51
block ;; label = @52
block ;; label = @53
block ;; label = @54
block ;; label = @55
block ;; label = @56
block ;; label = @57
block ;; label = @58
block ;; label = @59
block ;; label = @60
block ;; label = @61
block ;; label = @62
block ;; label = @63
block ;; label = @64
block ;; label = @65
local.get 19
i32.wrap_i64
br_table 0 (;@65;) 1 (;@64;) 2 (;@63;) 3 (;@62;) 4 (;@61;) 5 (;@60;) 6 (;@59;) 7 (;@58;) 8 (;@57;) 9 (;@56;) 10 (;@55;) 11 (;@54;) 12 (;@53;) 13 (;@52;) 14 (;@51;) 15 (;@50;) 16 (;@49;) 17 (;@48;) 18 (;@47;) 19 (;@46;) 20 (;@45;) 21 (;@44;) 22 (;@43;) 23 (;@42;) 24 (;@41;) 25 (;@40;) 26 (;@39;) 27 (;@38;) 28 (;@37;) 29 (;@36;) 30 (;@35;) 31 (;@34;) 32 (;@33;) 33 (;@32;) 34 (;@31;) 35 (;@30;) 36 (;@29;) 37 (;@28;) 38 (;@27;) 39 (;@26;) 40 (;@25;) 41 (;@24;) 42 (;@23;) 43 (;@22;) 44 (;@21;) 45 (;@20;) 46 (;@19;) 47 (;@18;) 52 (;@13;) 48 (;@17;) 49 (;@16;) 50 (;@15;) 51 (;@14;) 52 (;@13;)
end
local.get 1
local.get 17
i64.eq
i64.extend_i32_u
br 52 (;@12;)
end
local.get 1
local.get 17
i64.ne
i64.extend_i32_u
br 51 (;@12;)
end
local.get 17
local.get 1
i64.lt_s
i64.extend_i32_u
br 50 (;@12;)
end
local.get 17
local.get 1
i64.lt_u
i64.extend_i32_u
br 49 (;@12;)
end
local.get 17
local.get 1
i64.gt_s
i64.extend_i32_u
br 48 (;@12;)
end
local.get 17
local.get 1
i64.gt_u
i64.extend_i32_u
br 47 (;@12;)
end
local.get 17
local.get 1
i64.le_s
i64.extend_i32_u
br 46 (;@12;)
end
local.get 17
local.get 1
i64.le_u
i64.extend_i32_u
br 45 (;@12;)
end
local.get 17
local.get 1
i64.ge_s
i64.extend_i32_u
br 44 (;@12;)
end
local.get 17
local.get 1
i64.ge_u
i64.extend_i32_u
br 43 (;@12;)
end
local.get 1
i64.clz
br 42 (;@12;)
end
local.get 1
i64.ctz
br 41 (;@12;)
end
local.get 1
i64.popcnt
br 40 (;@12;)
end
local.get 17
local.get 1
i64.shl
br 39 (;@12;)
end
local.get 17
local.get 1
i64.shr_u
br 38 (;@12;)
end
local.get 17
local.get 1
i64.shr_s
br 37 (;@12;)
end
local.get 17
local.get 1
i64.const 63
i64.and
i64.shl
local.get 17
i64.const 0
local.get 1
i64.sub
i64.const 63
i64.and
i64.shr_u
i64.or
br 36 (;@12;)
end
local.get 17
i64.const 0
local.get 1
i64.sub
i64.const 63
i64.and
i64.shl
local.get 17
local.get 1
i64.const 63
i64.and
i64.shr_u
i64.or
br 35 (;@12;)
end
local.get 1
local.get 17
i64.and
br 34 (;@12;)
end
local.get 1
local.get 17
i64.or
br 33 (;@12;)
end
local.get 1
local.get 17
i64.xor
br 32 (;@12;)
end
local.get 1
local.get 17
i64.add
br 31 (;@12;)
end
local.get 17
local.get 1
i64.sub
br 30 (;@12;)
end
local.get 1
local.get 17
i64.mul
br 29 (;@12;)
end
local.get 17
local.get 1
i64.div_s
br 28 (;@12;)
end
local.get 17
local.get 1
i64.div_u
br 27 (;@12;)
end
local.get 17
local.get 1
i64.rem_s
br 26 (;@12;)
end
local.get 17
local.get 1
i64.rem_u
br 25 (;@12;)
end
local.get 1
f64.reinterpret_i64
f64.abs
i64.reinterpret_f64
br 24 (;@12;)
end
local.get 1
f64.reinterpret_i64
f64.neg
i64.reinterpret_f64
br 23 (;@12;)
end
local.get 1
f64.reinterpret_i64
f64.ceil
i64.reinterpret_f64
br 22 (;@12;)
end
local.get 1
f64.reinterpret_i64
f64.floor
i64.reinterpret_f64
br 21 (;@12;)
end
local.get 1
f64.reinterpret_i64
call 2
i64.reinterpret_f64
br 20 (;@12;)
end
local.get 1
f64.reinterpret_i64
local.tee 22
f64.const 0x1p-1 (;=0.5;)
f64.add
f64.floor
local.get 22
f64.const 0x1p-1 (;=0.5;)
f64.sub
f64.ceil
local.get 22
f64.const 0x0p+0 (;=0;)
f64.ge
select
i64.reinterpret_f64
br 19 (;@12;)
end
local.get 1
f64.reinterpret_i64
f64.sqrt
i64.reinterpret_f64
br 18 (;@12;)
end
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.add
i64.reinterpret_f64
br 17 (;@12;)
end
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.sub
i64.reinterpret_f64
br 16 (;@12;)
end
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.mul
i64.reinterpret_f64
br 15 (;@12;)
end
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.div
i64.reinterpret_f64
br 14 (;@12;)
end
block (result f64) ;; label = @26
local.get 1
f64.reinterpret_i64
local.tee 22
local.get 17
f64.reinterpret_i64
local.tee 23
local.get 23
f64.ne
br_if 0 (;@26;)
drop
local.get 23
local.get 22
local.get 22
f64.ne
br_if 0 (;@26;)
drop
local.get 23
local.get 22
f64.min
end
i64.reinterpret_f64
br 13 (;@12;)
end
block (result f64) ;; label = @25
local.get 1
f64.reinterpret_i64
local.tee 22
local.get 17
f64.reinterpret_i64
local.tee 23
local.get 23
f64.ne
br_if 0 (;@25;)
drop
local.get 23
local.get 22
local.get 22
f64.ne
br_if 0 (;@25;)
drop
local.get 23
local.get 22
f64.max
end
i64.reinterpret_f64
br 12 (;@12;)
end
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.copysign
i64.reinterpret_f64
br 11 (;@12;)
end
local.get 17
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405312
i64.gt_u
if (result i64) ;; label = @23
i64.const 1
else
local.get 1
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405312
i64.gt_u
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.ne
i32.or
i64.extend_i32_u
end
br 10 (;@12;)
end
local.get 17
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405312
i64.gt_u
if (result i64) ;; label = @22
i64.const 1
else
local.get 1
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405312
i64.gt_u
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.ne
i32.or
i64.extend_i32_u
end
br 9 (;@12;)
end
local.get 1
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.lt
i32.and
local.get 17
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
br 8 (;@12;)
end
local.get 1
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.gt
i32.and
local.get 17
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
br 7 (;@12;)
end
local.get 1
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.le
i32.and
local.get 17
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
br 6 (;@12;)
end
local.get 1
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 17
f64.reinterpret_i64
local.get 1
f64.reinterpret_i64
f64.ge
i32.and
local.get 17
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
br 5 (;@12;)
end
local.get 1
f64.reinterpret_i64
i64.trunc_f64_s
br 4 (;@12;)
end
local.get 1
f64.reinterpret_i64
i64.trunc_f64_u
br 3 (;@12;)
end
local.get 1
f64.convert_i64_s
i64.reinterpret_f64
br 2 (;@12;)
end
local.get 1
f64.convert_i64_u
i64.reinterpret_f64
br 1 (;@12;)
end
i64.const 0
end
local.set 1
local.get 18
i64.const 48
i64.and
i64.const 0
i64.eq
if ;; label = @12
local.get 5
i32.const 16
i32.add
local.tee 2
i64.load
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 1
i64.store
local.get 2
i64.load
i32.wrap_i64
local.tee 3
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 4
local.get 4
i64.load
i32.const 1
local.get 3
i32.const 1
i32.shl
i32.const 6
i32.and
i32.shl
i64.extend_i32_u
i64.or
i64.store
local.get 2
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @13
local.get 0
i32.load offset=8
local.set 3
local.get 0
i32.const 12
i32.add
local.tee 4
i32.load
local.set 2
local.get 4
local.get 2
i32.const 1
i32.add
i32.store
local.get 2
i32.const 3
i32.shl
local.get 3
i32.add
local.get 1
i64.store
end
end
br 10 (;@1;)
end
local.get 5
local.get 5
i32.const 8
i32.add
local.tee 3
i64.load
local.tee 19
i64.store
local.get 3
local.get 17
i64.store
local.get 2
local.get 18
i64.const 2
i64.shr_u
i64.const 3
i64.and
local.tee 17
local.get 18
i64.const -208
i64.and
i64.or
i64.const 68
i64.or
local.tee 18
i64.store
local.get 17
i64.const 0
i64.eq
if (result i64) ;; label = @11
local.get 19
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 1
i64.store
local.get 2
i64.load
else
local.get 18
end
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @11
local.get 5
i64.load
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @12
return
end
end
local.get 0
i32.load offset=8
local.set 2
local.get 0
i32.const 12
i32.add
local.tee 3
i32.load
local.set 0
local.get 3
local.get 0
i32.const 1
i32.add
i32.store
local.get 0
i32.const 3
i32.shl
local.get 2
i32.add
local.get 1
i64.store
local.get 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @11
return
else
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
br 2 (;@8;)
end
local.get 18
i64.const 12
i64.and
i64.const 0
i64.eq
if ;; label = @10
local.get 5
i32.const 8
i32.add
local.tee 3
i64.load
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 17
i64.store
local.get 3
i64.load
i32.wrap_i64
local.tee 8
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 7
local.get 7
i64.load
i32.const 1
local.get 8
i32.const 1
i32.shl
i32.const 6
i32.and
i32.shl
i64.extend_i32_u
i64.or
i64.store
local.get 3
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @11
local.get 0
i32.load offset=8
local.set 8
local.get 0
i32.const 12
i32.add
local.tee 7
i32.load
local.set 3
local.get 7
local.get 3
i32.const 1
i32.add
i32.store
local.get 3
i32.const 3
i32.shl
local.get 8
i32.add
local.get 1
i64.store
end
end
local.get 2
i64.load
i64.const 48
i64.and
i64.const 0
i64.eq
if ;; label = @10
local.get 5
i32.const 16
i32.add
local.tee 2
i64.load
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 17
i64.store
local.get 2
i64.load
i32.wrap_i64
local.tee 3
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 4
local.get 4
i64.load
i32.const 1
local.get 3
i32.const 1
i32.shl
i32.const 6
i32.and
i32.shl
i64.extend_i32_u
i64.or
i64.store
local.get 2
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @11
local.get 0
i32.load offset=8
local.set 3
local.get 0
i32.const 12
i32.add
local.tee 4
i32.load
local.set 2
local.get 4
local.get 2
i32.const 1
i32.add
i32.store
local.get 2
i32.const 3
i32.shl
local.get 3
i32.add
local.get 1
i64.store
end
end
br 8 (;@1;)
end
local.get 18
i64.const 12
i64.and
i64.const 0
i64.ne
if ;; label = @9
i32.const 1053
i32.const 1038
i32.const 341
i32.const 1076
call 1
end
local.get 5
local.get 5
i32.const 8
i32.add
local.tee 3
i64.load
local.tee 19
i64.store
local.get 2
local.get 18
i64.const 2
i64.shr_u
i64.const 3
i64.and
local.get 18
i64.const -256
i64.and
i64.or
i64.store
local.get 19
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 6
local.get 6
i64.load
i64.const -4
i64.and
i64.store
local.get 17
i64.const 0
i64.eq
if ;; label = @9
local.get 2
local.get 2
i64.load
local.get 7
i32.const 48
i32.and
i32.const 8
i32.or
i64.extend_i32_u
i64.or
i64.store
else
local.get 3
local.get 5
i64.load offset=16
local.tee 18
i64.store
local.get 2
local.get 2
i64.load
local.get 7
i32.const 2
i32.shr_u
i32.const 12
i32.and
i32.const 32
i32.or
i64.extend_i32_u
i64.or
i64.store
local.get 18
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 2
local.get 2
i64.load
i64.const 3
i64.xor
i64.store
end
local.get 5
i64.load
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @9
return
end
local.get 0
i32.load offset=8
local.set 2
local.get 0
i32.const 12
i32.add
local.tee 3
i32.load
local.set 0
local.get 3
local.get 0
i32.const 1
i32.add
i32.store
local.get 0
i32.const 3
i32.shl
local.get 2
i32.add
local.get 1
i64.store
local.get 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @9
return
else
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
end
br 5 (;@2;)
end
i32.const 1084
i32.const 1038
i32.const 359
i32.const 1076
call 1
br 4 (;@2;)
end
local.get 8
i32.const 24
i32.add
local.set 2
local.get 18
i64.const 12
i64.and
i64.const 0
i64.eq
if ;; label = @6
block ;; label = @7
local.get 5
i32.const 8
i32.add
local.tee 3
i64.load
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 8
i32.const 8
i32.add
local.tee 7
i64.load
i64.store
local.get 3
i64.load
local.tee 1
i32.wrap_i64
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 9
local.get 9
i64.load
local.get 2
i64.load
i64.const 2
i64.shr_u
i64.const 3
i64.and
local.get 1
i64.const 1
i64.shl
i64.const 6
i64.and
i64.shl
i64.or
i64.store
local.get 3
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @8
local.get 2
i64.load
i64.const 12
i64.and
i64.const 0
i64.eq
if ;; label = @9
local.get 7
i64.load
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 2 (;@7;)
end
local.get 0
i32.load offset=8
local.set 7
local.get 0
i32.const 12
i32.add
local.tee 9
i32.load
local.set 3
local.get 9
local.get 3
i32.const 1
i32.add
i32.store
local.get 3
i32.const 3
i32.shl
local.get 7
i32.add
local.get 1
i64.store
end
end
end
local.get 5
i32.const 24
i32.add
local.set 3
local.get 2
i64.load
i64.const 12
i64.and
i64.const 0
i64.eq
if ;; label = @6
local.get 8
i32.const 8
i32.add
local.tee 7
i64.load
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 5
i64.load offset=8
i64.store
local.get 7
i64.load
local.tee 1
i32.wrap_i64
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 9
local.get 9
i64.load
local.get 3
i64.load
i64.const 2
i64.shr_u
i64.const 3
i64.and
local.get 1
i64.const 1
i64.shl
i64.const 6
i64.and
i64.shl
i64.or
i64.store
local.get 7
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @7
local.get 3
i64.load
i64.const 12
i64.and
i64.const 0
i64.ne
if ;; label = @8
local.get 0
i32.load offset=8
local.set 9
local.get 0
i32.const 12
i32.add
local.tee 11
i32.load
local.set 7
local.get 11
local.get 7
i32.const 1
i32.add
i32.store
local.get 7
i32.const 3
i32.shl
local.get 9
i32.add
local.get 1
i64.store
end
end
end
local.get 3
i64.load
i64.const 48
i64.and
i64.const 0
i64.eq
if ;; label = @6
block ;; label = @7
local.get 5
i32.const 16
i32.add
local.tee 7
i64.load
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 8
i32.const 16
i32.add
local.tee 9
i64.load
i64.store
local.get 7
i64.load
local.tee 1
i32.wrap_i64
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 11
local.get 11
i64.load
local.get 2
i64.load
i64.const 4
i64.shr_u
i64.const 3
i64.and
local.get 1
i64.const 1
i64.shl
i64.const 6
i64.and
i64.shl
i64.or
i64.store
local.get 7
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @8
local.get 2
i64.load
i64.const 48
i64.and
i64.const 0
i64.eq
if ;; label = @9
local.get 9
i64.load
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 2 (;@7;)
end
local.get 0
i32.load offset=8
local.set 9
local.get 0
i32.const 12
i32.add
local.tee 11
i32.load
local.set 7
local.get 11
local.get 7
i32.const 1
i32.add
i32.store
local.get 7
i32.const 3
i32.shl
local.get 9
i32.add
local.get 1
i64.store
end
end
end
local.get 2
i64.load
i64.const 48
i64.and
i64.const 0
i64.eq
if ;; label = @6
local.get 8
i32.const 16
i32.add
local.tee 2
i64.load
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 5
i64.load offset=16
i64.store
local.get 2
i64.load
local.tee 1
i32.wrap_i64
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 4
local.get 4
i64.load
local.get 3
i64.load
i64.const 4
i64.shr_u
i64.const 3
i64.and
local.get 1
i64.const 1
i64.shl
i64.const 6
i64.and
i64.shl
i64.or
i64.store
local.get 2
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @7
local.get 3
i64.load
i64.const 48
i64.and
i64.const 0
i64.ne
if ;; label = @8
local.get 0
i32.load offset=8
local.set 3
local.get 0
i32.const 12
i32.add
local.tee 4
i32.load
local.set 2
local.get 4
local.get 2
i32.const 1
i32.add
i32.store
local.get 2
i32.const 3
i32.shl
local.get 3
i32.add
local.get 1
i64.store
end
end
end
local.get 5
local.get 0
i32.const 16
i32.add
local.tee 0
i32.load
i64.extend_i32_u
i64.store
local.get 8
local.get 6
i32.const 1
i32.add
i64.extend_i32_u
i64.store
local.get 0
local.get 10
i32.const 1
i32.add
i32.store
return
end
local.get 5
i32.const 24
i32.add
local.set 10
block ;; label = @5
block ;; label = @6
local.get 0
i32.const 16
i32.add
local.tee 3
i32.load
local.tee 2
if ;; label = @7
local.get 3
local.get 2
i32.const -1
i32.add
local.tee 2
i32.const 3
i32.shl
local.get 4
i32.add
i64.load
i32.wrap_i64
local.tee 6
i32.store
local.get 2
i64.extend_i32_u
local.set 18
local.get 6
i32.eqz
br_if 1 (;@6;)
local.get 3
local.get 6
i32.const -1
i32.add
local.tee 3
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 6
i64.load
i64.store32
else
local.get 0
i32.const 4
i32.add
local.tee 3
i32.load
local.set 2
local.get 3
local.get 2
i32.const 4
i32.add
i32.store
local.get 2
i64.extend_i32_u
local.set 18
br 1 (;@6;)
end
br 1 (;@5;)
end
local.get 0
i32.const 4
i32.add
local.tee 6
i32.load
local.set 3
local.get 6
local.get 3
i32.const 4
i32.add
i32.store
local.get 3
i32.const 3
i32.shl
local.get 4
i32.add
local.set 6
end
local.get 5
local.get 8
i32.const 8
i32.add
local.tee 12
i64.load
local.tee 20
i64.store
local.get 10
local.get 7
i32.const -64
i32.and
local.tee 13
local.get 9
i32.const 2
i32.shr_u
i32.const 3
i32.and
i32.or
i64.extend_i32_s
local.tee 19
i64.store
local.get 19
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @5
local.get 20
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 1
i64.store
local.get 10
i64.load
local.set 19
end
local.get 8
i32.const 24
i32.add
local.set 10
block ;; label = @5
block ;; label = @6
local.get 19
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@6;)
local.get 5
i64.load
i64.const 3
i64.and
i64.const 0
i64.eq
br_if 0 (;@6;)
br 1 (;@5;)
end
local.get 0
i32.load offset=8
local.set 14
local.get 0
i32.const 12
i32.add
local.tee 15
i32.load
local.set 11
local.get 15
local.get 11
i32.const 1
i32.add
i32.store
local.get 11
i32.const 3
i32.shl
local.get 14
i32.add
local.get 1
i64.store
local.get 1
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @6
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
end
local.get 8
local.get 5
i32.const 16
i32.add
local.tee 11
i64.load
local.tee 20
i64.store
local.get 10
local.get 9
i32.const -64
i32.and
local.tee 14
local.get 7
i32.const 4
i32.shr_u
i32.const 3
i32.and
i32.or
i64.extend_i32_s
local.tee 19
i64.store
local.get 2
i32.const 3
i32.shl
local.get 4
i32.add
local.set 2
block ;; label = @5
block ;; label = @6
local.get 19
i64.const 3
i64.and
i64.const 0
i64.eq
if (result i64) ;; label = @7
local.get 20
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 17
i64.store
local.get 10
i64.load
else
local.get 19
end
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@6;)
local.get 8
i64.load
i64.const 3
i64.and
i64.const 0
i64.eq
br_if 0 (;@6;)
br 1 (;@5;)
end
local.get 0
i32.load offset=8
local.set 15
local.get 0
i32.const 12
i32.add
local.tee 16
i32.load
local.set 10
local.get 16
local.get 10
i32.const 1
i32.add
i32.store
local.get 10
i32.const 3
i32.shl
local.get 15
i32.add
local.get 17
i64.store
local.get 17
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @6
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
end
local.get 2
local.get 8
i32.const 16
i32.add
local.tee 8
i64.load
local.tee 20
i64.store
local.get 2
i32.const 24
i32.add
local.tee 10
local.get 13
local.get 9
i32.const 4
i32.shr_u
i32.const 3
i32.and
i32.or
i64.extend_i32_s
local.tee 19
i64.store
local.get 19
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @5
local.get 20
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 18
i64.store
local.get 10
i64.load
local.set 19
end
local.get 3
i64.extend_i32_u
local.set 20
block ;; label = @5
block ;; label = @6
local.get 19
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@6;)
local.get 2
i64.load
i64.const 3
i64.and
i64.const 0
i64.eq
br_if 0 (;@6;)
br 1 (;@5;)
end
local.get 0
i32.load offset=8
local.set 9
local.get 0
i32.const 12
i32.add
local.tee 10
i32.load
local.set 3
local.get 10
local.get 3
i32.const 1
i32.add
i32.store
local.get 3
i32.const 3
i32.shl
local.get 9
i32.add
local.get 18
i64.store
local.get 18
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @6
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
end
local.get 6
local.get 5
i32.const 8
i32.add
local.tee 3
i64.load
local.tee 21
i64.store
local.get 6
i32.const 24
i32.add
local.tee 5
local.get 14
local.get 7
i32.const 2
i32.shr_u
i32.const 3
i32.and
i32.or
i64.extend_i32_s
local.tee 19
i64.store
block ;; label = @5
block ;; label = @6
local.get 19
i64.const 3
i64.and
i64.const 0
i64.eq
if (result i64) ;; label = @7
local.get 21
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 20
i64.store
local.get 5
i64.load
else
local.get 19
end
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@6;)
local.get 6
i64.load
i64.const 3
i64.and
i64.const 0
i64.eq
br_if 0 (;@6;)
br 1 (;@5;)
end
local.get 0
i32.load offset=8
local.set 5
local.get 0
i32.const 12
i32.add
local.tee 4
i32.load
local.set 0
local.get 4
local.get 0
i32.const 1
i32.add
i32.store
local.get 0
i32.const 3
i32.shl
local.get 5
i32.add
local.get 20
i64.store
local.get 20
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @6
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
end
local.get 3
local.get 20
i64.const 1
i64.or
i64.store
local.get 12
local.get 1
i64.const 2
i64.or
i64.store
local.get 2
local.get 20
i64.const 2
i64.or
i64.store offset=8
local.get 6
local.get 1
i64.const 1
i64.or
i64.store offset=8
local.get 11
local.get 17
i64.const 1
i64.or
i64.store
local.get 8
local.get 18
i64.const 2
i64.or
i64.store
local.get 2
local.get 17
i64.const 2
i64.or
i64.store offset=16
local.get 6
local.get 18
i64.const 1
i64.or
i64.store offset=16
return
end
local.get 0
i32.const 16
i32.add
local.tee 2
i32.load
local.tee 3
if ;; label = @4
local.get 2
local.get 3
i32.const -1
i32.add
local.tee 2
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 3
i64.load
i64.store32
else
local.get 0
i32.const 4
i32.add
local.tee 3
i32.load
local.set 2
local.get 3
local.get 2
i32.const 4
i32.add
i32.store
local.get 2
i32.const 3
i32.shl
local.get 4
i32.add
local.set 3
end
local.get 5
local.get 8
i32.const 16
i32.add
local.tee 11
i64.load
local.tee 19
i64.store
local.get 5
i32.const 24
i32.add
local.tee 6
local.get 7
i32.const -64
i32.and
local.get 9
i32.const 4
i32.shr_u
i32.const 3
i32.and
i32.or
i64.extend_i32_s
local.tee 18
i64.store
local.get 18
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @4
local.get 19
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 1
i64.store
local.get 6
i64.load
local.set 18
end
local.get 8
i32.const 24
i32.add
local.set 6
block ;; label = @4
block ;; label = @5
local.get 18
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@5;)
local.get 5
i64.load
i64.const 3
i64.and
i64.const 0
i64.eq
br_if 0 (;@5;)
br 1 (;@4;)
end
local.get 0
i32.load offset=8
local.set 12
local.get 0
i32.const 12
i32.add
local.tee 13
i32.load
local.set 10
local.get 13
local.get 10
i32.const 1
i32.add
i32.store
local.get 10
i32.const 3
i32.shl
local.get 12
i32.add
local.get 1
i64.store
local.get 1
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @5
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
end
local.get 8
local.get 5
i32.const 8
i32.add
local.tee 10
i64.load
local.tee 19
i64.store
local.get 6
local.get 9
i32.const -52
i32.and
local.tee 9
local.get 7
i32.const 2
i32.shr_u
i32.const 3
i32.and
i32.or
i64.extend_i32_s
local.tee 18
i64.store
local.get 18
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @4
local.get 19
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 17
i64.store
local.get 6
i64.load
local.set 18
end
local.get 2
i64.extend_i32_u
local.set 19
block ;; label = @4
block ;; label = @5
local.get 18
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@5;)
local.get 8
i64.load
i64.const 3
i64.and
i64.const 0
i64.eq
br_if 0 (;@5;)
br 1 (;@4;)
end
local.get 0
i32.load offset=8
local.set 6
local.get 0
i32.const 12
i32.add
local.tee 12
i32.load
local.set 2
local.get 12
local.get 2
i32.const 1
i32.add
i32.store
local.get 2
i32.const 3
i32.shl
local.get 6
i32.add
local.get 17
i64.store
local.get 17
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @5
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
end
local.get 3
local.get 5
i32.const 16
i32.add
local.tee 2
i64.load
local.tee 20
i64.store
local.get 3
i32.const 24
i32.add
local.tee 6
local.get 9
local.get 7
i32.const 4
i32.shr_u
i32.const 3
i32.and
i32.or
i64.extend_i32_s
local.tee 18
i64.store
block ;; label = @4
block ;; label = @5
local.get 18
i64.const 3
i64.and
i64.const 0
i64.eq
if (result i64) ;; label = @6
local.get 20
i32.wrap_i64
i32.const 3
i32.shl
local.get 4
i32.add
local.get 19
i64.store
local.get 6
i64.load
else
local.get 18
end
i64.const 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@5;)
local.get 3
i64.load
i64.const 3
i64.and
i64.const 0
i64.eq
br_if 0 (;@5;)
br 1 (;@4;)
end
local.get 0
i32.load offset=8
local.set 6
local.get 0
i32.const 12
i32.add
local.tee 5
i32.load
local.set 0
local.get 5
local.get 0
i32.const 1
i32.add
i32.store
local.get 0
i32.const 3
i32.shl
local.get 6
i32.add
local.get 19
i64.store
local.get 19
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @5
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end
end
local.get 10
local.get 17
i64.const 2
i64.or
i64.store
local.get 3
local.get 8
i64.load offset=8
i64.store offset=8
local.get 2
local.get 19
i64.const 2
i64.or
i64.store
local.get 11
local.get 1
i64.const 1
i64.or
i64.store
local.get 3
local.get 1
i64.const 2
i64.or
i64.store offset=16
return
end
local.get 18
i64.const 12
i64.and
i64.const 0
i64.eq
if ;; label = @3
local.get 5
i32.const 8
i32.add
local.tee 2
i64.load
i32.wrap_i64
local.tee 3
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 8
local.get 8
i64.load
i32.const 2
local.get 3
i32.const 1
i32.shl
i32.const 6
i32.and
i32.shl
i64.extend_i32_u
i64.or
i64.store
local.get 2
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @4
local.get 0
i32.load offset=8
local.set 3
local.get 0
i32.const 12
i32.add
local.tee 8
i32.load
local.set 2
local.get 8
local.get 2
i32.const 1
i32.add
i32.store
local.get 2
i32.const 3
i32.shl
local.get 3
i32.add
local.get 1
i64.store
end
end
local.get 5
i64.load offset=24
i64.const 48
i64.and
i64.const 0
i64.eq
if ;; label = @3
local.get 5
i32.const 16
i32.add
local.tee 2
i64.load
i32.wrap_i64
local.tee 3
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 4
i32.add
local.tee 4
local.get 4
i64.load
i32.const 2
local.get 3
i32.const 1
i32.shl
i32.const 6
i32.and
i32.shl
i64.extend_i32_u
i64.or
i64.store
local.get 2
i64.load
local.tee 1
i64.const 3
i64.and
i64.const 0
i64.eq
if ;; label = @4
local.get 0
i32.load offset=8
local.set 3
local.get 0
i32.const 12
i32.add
local.tee 4
i32.load
local.set 2
local.get 4
local.get 2
i32.const 1
i32.add
i32.store
local.get 2
i32.const 3
i32.shl
local.get 3
i32.add
local.get 1
i64.store
end
end
local.get 5
local.get 0
i32.const 16
i32.add
local.tee 0
i32.load
i64.extend_i32_u
i64.store
local.get 0
local.get 6
i32.const 1
i32.add
i32.store
end
return
end
local.get 5
local.get 0
i32.const 16
i32.add
local.tee 0
i32.load
i64.extend_i32_u
i64.store
local.get 0
local.get 6
i32.const 1
i32.add
i32.store)
(func (;4;) (type 6) (param f64 f64) (result f64)
local.get 1
call 2)
(func (;5;) (type 6) (param f64 f64) (result f64)
local.get 1
f64.floor)
(func (;6;) (type 13) (param i32 i32 i32)
local.get 0
local.get 1
i64.extend_i32_u
local.get 2
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
call 3)
(func (;7;) (type 13) (param i32 i32 i32)
local.get 0
local.get 1
i64.extend_i32_u
local.get 2
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
call 54)
(func (;8;) (type 13) (param i32 i32 i32)
local.get 0
local.get 1
i64.extend_i32_u
local.get 2
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
call 55)
(func (;9;) (type 3) (param i32) (result i32)
(local i64)
local.get 0
call 56
local.set 1
local.get 1
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 1
i32.wrap_i64)
(func (;10;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.xor
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;11;) (type 12) (param i32 i32 i32 i32) (result f64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
f64.convert_i64_u)
(func (;12;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.sub
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;13;) (type 6) (param f64 f64) (result f64)
local.get 1
f64.ceil)
(func (;14;) (type 12) (param i32 i32 i32 i32) (result f64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
f64.convert_i64_s)
(func (;15;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.shr_s
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;16;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.shr_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;17;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.shl
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;18;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64 i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.tee 4
i64.const 0
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.tee 5
i64.sub
i64.const 63
i64.and
i64.shl
local.get 4
local.get 5
i64.const 63
i64.and
i64.shr_u
i64.or
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;19;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64 i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.tee 4
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.tee 5
i64.const 63
i64.and
i64.shl
local.get 4
i64.const 0
local.get 5
i64.sub
i64.const 63
i64.and
i64.shr_u
i64.or
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;20;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.rem_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;21;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.rem_s
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;22;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.popcnt
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;23;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.or
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;24;) (type 6) (param f64 f64) (result f64)
local.get 1
f64.neg)
(func (;25;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.ne
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;26;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.mul
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;27;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.lt_u
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;28;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.lt_s
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;29;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.le_u
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;30;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.le_s
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;31;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.gt_u
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;32;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.gt_s
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;33;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.ge_u
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;34;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.ge_s
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;35;) (type 6) (param f64 f64) (result f64)
local.get 1
f64.abs)
(func (;36;) (type 11) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.trunc_f64_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;37;) (type 11) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.trunc_f64_s
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;38;) (type 11) (param f64 f64) (result i32)
(local i64)
local.get 0
local.get 1
call 58
local.set 2
local.get 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;39;) (type 11) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 0
local.get 1
f64.lt
i32.and
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;40;) (type 11) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 0
local.get 1
f64.le
i32.and
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;41;) (type 11) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 0
local.get 1
f64.gt
i32.and
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;42;) (type 11) (param f64 f64) (result i32)
(local i64)
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
local.get 0
local.get 1
f64.ge
i32.and
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405313
i64.lt_u
i32.and
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;43;) (type 11) (param f64 f64) (result i32)
(local i64)
local.get 0
local.get 1
f64.eq
i64.extend_i32_u
local.tee 2
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 2
i32.wrap_i64)
(func (;44;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.eq
i64.extend_i32_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;45;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.div_u
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;46;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.div_s
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;47;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.ctz
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;48;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.clz
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;49;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.and
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;50;) (type 10) (param i32 i32 i32 i32) (result i32)
(local i64)
local.get 0
i64.extend_i32_u
local.get 1
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.get 2
i64.extend_i32_u
local.get 3
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
i64.add
local.tee 4
i64.const 32
i64.shr_u
i32.wrap_i64
call 0
local.get 4
i32.wrap_i64)
(func (;51;) (type 1) (param i32)
local.get 0
global.set 0)
(func (;52;) (type 1) (param i32)
(local i32 i32 i32 i32 i32 i32 i64)
local.get 0
i32.load offset=4
local.tee 3
i32.eqz
if ;; label = @1
return
end
local.get 0
i32.load
local.set 1
local.get 0
i32.const 8
i32.add
local.set 4
local.get 0
i32.const 12
i32.add
local.set 2
i32.const 0
local.set 0
loop ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 0
i32.const 3
i32.or
i32.const 3
i32.shl
local.get 1
i32.add
i64.load
i64.const 1
i64.and
i64.const 0
i64.eq
if ;; label = @4
local.get 0
i32.const 3
i32.shl
local.get 1
i32.add
i64.load
local.tee 7
i64.const 3
i64.and
i64.const 0
i64.ne
local.get 7
local.get 0
i64.extend_i32_u
local.tee 7
i64.lt_u
i32.or
i32.eqz
br_if 1 (;@3;)
else
local.get 0
i64.extend_i32_u
local.set 7
br 1 (;@3;)
end
br 1 (;@2;)
end
local.get 4
i32.load
local.set 5
local.get 2
local.get 2
i32.load
local.tee 6
i32.const 1
i32.add
i32.store
local.get 6
i32.const 3
i32.shl
local.get 5
i32.add
local.get 7
i64.store
end
local.get 0
i32.const 4
i32.add
local.tee 0
local.get 3
i32.lt_u
br_if 0 (;@1;)
end)
(func (;53;) (type 5) (param i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32)
local.get 1
i32.const 12
i32.add
local.tee 4
i32.load
local.tee 2
i32.eqz
if ;; label = @1
local.get 0
i32.const 0
i32.store
local.get 0
i32.const 0
i32.store offset=4
return
end
local.get 1
i32.const 8
i32.add
local.set 7
loop ;; label = @1
local.get 7
i32.load
local.set 3
local.get 4
local.get 2
i32.const -1
i32.add
local.tee 6
i32.store
local.get 1
local.get 6
i32.const 3
i32.shl
local.get 3
i32.add
i64.load
call 3
local.get 2
i32.const 1
i32.ne
if ;; label = @2
i32.const 1
local.set 3
loop ;; label = @3
local.get 7
i32.load
local.set 6
local.get 4
local.get 4
i32.load
i32.const -1
i32.add
local.tee 9
i32.store
local.get 1
local.get 9
i32.const 3
i32.shl
local.get 6
i32.add
i64.load
call 3
local.get 2
local.get 3
i32.const 1
i32.add
local.tee 3
i32.ne
br_if 0 (;@3;)
end
end
local.get 2
local.get 8
i32.add
local.set 2
local.get 5
i32.const 1
i32.add
local.set 5
local.get 4
i32.load
local.tee 3
if ;; label = @2
local.get 2
local.set 8
local.get 3
local.set 2
br 1 (;@1;)
end
end
local.get 0
local.get 2
i32.store
local.get 0
local.get 5
i32.store offset=4)
(func (;54;) (type 9) (param i32 i64)
(local i32 i32)
local.get 0
i32.load offset=8
local.set 2
local.get 0
i32.const 12
i32.add
local.tee 3
i32.load
local.set 0
local.get 3
local.get 0
i32.const 1
i32.add
i32.store
local.get 0
i32.const 3
i32.shl
local.get 2
i32.add
local.get 1
i64.store
local.get 1
i64.const 3
i64.and
i64.const 0
i64.ne
if ;; label = @1
i32.const 1024
i32.const 1038
i32.const 225
i32.const 1047
call 1
end)
(func (;55;) (type 9) (param i32 i64)
(local i32)
local.get 0
i32.load
local.get 1
i32.wrap_i64
local.tee 2
i32.const 3
i32.shl
i32.add
local.get 0
i32.const 16
i32.add
local.tee 0
i32.load
i64.extend_i32_u
i64.store
local.get 0
local.get 2
i32.const 1
i32.add
i32.store)
(func (;56;) (type 8) (param i32) (result i64)
(local i32 i32)
local.get 0
i32.const 16
i32.add
local.tee 1
i32.load
local.tee 2
if (result i64) ;; label = @1
local.get 1
local.get 0
i32.load
local.get 2
i32.const -1
i32.add
local.tee 1
i32.const 3
i32.shl
i32.add
i64.load
i64.store32
local.get 1
i64.extend_i32_u
else
local.get 0
i32.const 4
i32.add
local.tee 1
i32.load
local.set 0
local.get 1
local.get 0
i32.const 4
i32.add
i32.store
local.get 0
i64.extend_i32_u
end)
(func (;57;) (type 2) (result i32)
global.get 0)
(func (;58;) (type 7) (param f64 f64) (result i64)
local.get 0
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405312
i64.gt_u
if ;; label = @1
i64.const 1
return
end
local.get 1
i64.reinterpret_f64
i64.const 9223372036854775807
i64.and
i64.const 9218868437227405312
i64.gt_u
if ;; label = @1
i64.const 1
return
end
local.get 0
local.get 1
f64.ne
i64.extend_i32_u)
(func (;59;) (type 6) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.copysign)
(func (;60;) (type 6) (param f64 f64) (result f64)
block (result f64) ;; label = @1
local.get 1
local.get 0
local.get 0
f64.ne
br_if 0 (;@1;)
drop
local.get 0
local.get 1
local.get 1
f64.ne
br_if 0 (;@1;)
drop
local.get 0
local.get 1
f64.max
end)
(func (;61;) (type 6) (param f64 f64) (result f64)
block (result f64) ;; label = @1
local.get 1
local.get 0
local.get 0
f64.ne
br_if 0 (;@1;)
drop
local.get 0
local.get 1
local.get 1
f64.ne
br_if 0 (;@1;)
drop
local.get 0
local.get 1
f64.min
end)
(func (;62;) (type 6) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.div)
(func (;63;) (type 6) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.mul)
(func (;64;) (type 6) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.sub)
(func (;65;) (type 6) (param f64 f64) (result f64)
local.get 0
local.get 1
f64.add)
(func (;66;) (type 6) (param f64 f64) (result f64)
local.get 1
f64.sqrt)
(func (;67;) (type 6) (param f64 f64) (result f64)
(local f64)
local.get 1
local.tee 2
f64.const 0x1p-1 (;=0.5;)
f64.add
f64.floor
local.get 2
f64.const 0x1p-1 (;=0.5;)
f64.sub
f64.ceil
local.get 2
f64.const 0x0p+0 (;=0;)
f64.ge
select)
(func (;68;) (type 3) (param i32) (result i32)
(local i32 i32)
global.get 0
local.set 2
local.get 0
global.get 0
i32.add
global.set 0
global.get 0
i32.const 15
i32.add
i32.const -16
i32.and
global.set 0
local.get 2)
(global (;0;) (mut i32) (i32.const 2896))
(export "__add" (func 50))
(export "__and" (func 49))
(export "__clz" (func 48))
(export "__ctz" (func 47))
(export "__div_s" (func 46))
(export "__div_u" (func 45))
(export "__eq" (func 44))
(export "__fabs" (func 35))
(export "__fadd" (func 65))
(export "__fceil" (func 13))
(export "__fcpysgn" (func 59))
(export "__fdiv" (func 62))
(export "__feq" (func 43))
(export "__ffloor" (func 5))
(export "__fge" (func 42))
(export "__fgt" (func 41))
(export "__fle" (func 40))
(export "__flt" (func 39))
(export "__fmax" (func 60))
(export "__fmin" (func 61))
(export "__fmul" (func 63))
(export "__fne" (func 38))
(export "__fneg" (func 24))
(export "__fnrst" (func 67))
(export "__fsqrt" (func 66))
(export "__fsub" (func 64))
(export "__ftos" (func 37))
(export "__ftou" (func 36))
(export "__ftrunc" (func 4))
(export "__ge_s" (func 34))
(export "__ge_u" (func 33))
(export "__gt_s" (func 32))
(export "__gt_u" (func 31))
(export "__le_s" (func 30))
(export "__le_u" (func 29))
(export "__lt_s" (func 28))
(export "__lt_u" (func 27))
(export "__mul" (func 26))
(export "__ne" (func 25))
(export "__or" (func 23))
(export "__popcnt" (func 22))
(export "__rem_s" (func 21))
(export "__rem_u" (func 20))
(export "__rotl" (func 19))
(export "__rotr" (func 18))
(export "__shl" (func 17))
(export "__shr" (func 16))
(export "__shr_s" (func 15))
(export "__stof" (func 14))
(export "__sub" (func 12))
(export "__utof" (func 11))
(export "__xor" (func 10))
(export "_alloc_node" (func 9))
(export "_free_node" (func 8))
(export "_net_find_redexes" (func 52))
(export "_net_reduce_strict" (func 53))
(export "_queue" (func 7))
(export "_rewrite" (func 6))
(export "stackAlloc" (func 68))
(export "stackRestore" (func 51))
(export "stackSave" (func 57))
(data (;0;) (i32.const 1024) "addr % 4 == 0\00fm-net.c\00queue\00(a[3] >> 2 & 3) == PTR\00rewrite\00a_addr != b_addr"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment