Skip to content

Instantly share code, notes, and snippets.

@fengb

fengb/_empty.c Secret

Last active April 22, 2019 13:58
Show Gist options
  • Save fengb/be916b5fede576d8066fcb20b684e3c0 to your computer and use it in GitHub Desktop.
Save fengb/be916b5fede576d8066fcb20b684e3c0 to your computer and use it in GitHub Desktop.
WASI libc stuff
#include <stdlib.h>
int main() {
return 0;
}
pub fn main() {}
// empty.wasm:0001e2b: error: type mismatch in call, expected [i32, i32, i32] but got [i32, i32]
(module
(type (;0;) (func (param i32) (result i32)))
(type (;1;) (func (param i32 i32) (result i32)))
(type (;2;) (func (param i32 i32 i32) (result i32)))
(type (;3;) (func (param i32)))
(type (;4;) (func (param i32 i32 i32 i32 i32 i64 i64 i32 i32) (result i32)))
(type (;5;) (func (param i32 i32 i32 i32 i32) (result i32)))
(type (;6;) (func (param i32 i32 i32 i32 i32 i32) (result i32)))
(type (;7;) (func (param i32 i32 i32 i32 i32 i32 i32) (result i32)))
(type (;8;) (func (param i32 i32 i32 i64 i32) (result i32)))
(type (;9;) (func))
(type (;10;) (func (result i32)))
(type (;11;) (func (param i32 i32)))
(type (;12;) (func (param i32 i32 i32 i32) (result i32)))
(type (;13;) (func (param i32 i32 i64 i64)))
(type (;14;) (func (param i32 i64 i64 i32) (result i32)))
(type (;15;) (func (param i32 i32 i32 i32)))
(type (;16;) (func (param i32 i32 i32 i32 i32 i32 i32)))
(import "wasi_unstable" "fd_prestat_get" (func $__wasi_fd_prestat_get (type 1)))
(import "wasi_unstable" "fd_prestat_dir_name" (func $__wasi_fd_prestat_dir_name (type 2)))
(import "wasi_unstable" "environ_sizes_get" (func $__wasi_environ_sizes_get (type 1)))
(import "wasi_unstable" "environ_get" (func $__wasi_environ_get (type 1)))
(import "wasi_unstable" "args_sizes_get" (func $__wasi_args_sizes_get (type 1)))
(import "wasi_unstable" "args_get" (func $__wasi_args_get (type 1)))
(import "wasi_unstable" "proc_exit" (func $__wasi_proc_exit (type 3)))
(import "wasi_unstable" "fd_fdstat_get" (func $__wasi_fd_fdstat_get (type 1)))
(import "wasi_unstable" "path_open" (func $__wasi_path_open (type 4)))
(import "wasi_unstable" "path_filestat_get" (func $__wasi_path_filestat_get (type 5)))
(import "wasi_unstable" "path_rename" (func $__wasi_path_rename (type 6)))
(import "wasi_unstable" "path_unlink_file" (func $__wasi_path_unlink_file (type 2)))
(import "wasi_unstable" "path_remove_directory" (func $__wasi_path_remove_directory (type 2)))
(import "wasi_unstable" "path_link" (func $__wasi_path_link (type 7)))
(import "wasi_unstable" "path_create_directory" (func $__wasi_path_create_directory (type 2)))
(import "wasi_unstable" "fd_readdir" (func $__wasi_fd_readdir (type 8)))
(import "wasi_unstable" "fd_close" (func $__wasi_fd_close (type 0)))
(import "wasi_unstable" "path_readlink" (func $__wasi_path_readlink (type 6)))
(import "wasi_unstable" "path_symlink" (func $__wasi_path_symlink (type 5)))
(func $__wasm_call_ctors (type 9))
(func $__original_main (type 10) (result i32)
(local i32 i32 i32 i32)
global.get 0
local.set 0
i32.const 16
local.set 1
local.get 0
local.get 1
i32.sub
local.set 2
i32.const 0
local.set 3
local.get 2
local.get 3
i32.store offset=12
local.get 3
return)
(func $main (type 1) (param i32 i32) (result i32)
(local i32)
call $__original_main
local.set 2
local.get 2
return)
(func $_start (type 9)
(local i32 i32 i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 0
global.set 0
call $__wasilibc_init_preopen
i32.const 3
local.set 1
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
loop ;; label = @5
local.get 1
local.get 0
call $__wasi_fd_prestat_get
local.tee 2
i32.const 8
i32.eq
br_if 1 (;@4;)
local.get 2
br_if 3 (;@2;)
block ;; label = @6
local.get 0
i32.load8_u
br_if 0 (;@6;)
local.get 0
i32.load offset=4
i32.const 1
i32.add
call $malloc
local.tee 2
i32.eqz
br_if 4 (;@2;)
local.get 1
local.get 2
local.get 0
i32.load offset=4
call $__wasi_fd_prestat_dir_name
br_if 3 (;@3;)
local.get 2
local.get 0
i32.load offset=4
i32.add
i32.const 0
i32.store8
local.get 1
local.get 2
call $__wasilibc_register_preopened_fd
local.set 3
local.get 2
call $free
local.get 3
br_if 4 (;@2;)
end
local.get 1
i32.const 1
i32.add
local.tee 1
br_if 0 (;@5;)
end
end
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 0
local.get 0
i32.const 12
i32.add
call $__wasi_environ_sizes_get
br_if 0 (;@6;)
local.get 0
i32.load
local.tee 1
i32.eqz
br_if 1 (;@5;)
i32.const 0
local.get 1
i32.const 2
i32.shl
i32.const 4
i32.add
call $malloc
i32.store offset=1528
local.get 0
i32.load offset=12
call $malloc
local.tee 1
i32.eqz
br_if 0 (;@6;)
i32.const 0
i32.load offset=1528
local.tee 2
i32.eqz
br_if 0 (;@6;)
local.get 2
local.get 0
i32.load
i32.const 2
i32.shl
i32.add
i32.const 0
i32.store
i32.const 0
i32.load offset=1528
local.get 1
call $__wasi_environ_get
i32.eqz
br_if 2 (;@4;)
end
i32.const 71
call $_Exit
unreachable
end
i32.const 0
i32.const 0
i32.store offset=1528
end
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 0
i32.const 12
i32.add
local.get 0
call $__wasi_args_sizes_get
br_if 0 (;@6;)
local.get 0
i32.load offset=12
local.tee 1
i32.eqz
br_if 1 (;@5;)
local.get 1
i32.const 2
i32.shl
call $malloc
local.set 1
local.get 0
i32.load
call $malloc
local.set 2
local.get 1
i32.eqz
br_if 0 (;@6;)
local.get 2
i32.eqz
br_if 0 (;@6;)
local.get 1
local.get 2
call $__wasi_args_get
i32.eqz
br_if 2 (;@4;)
end
i32.const 71
call $_Exit
unreachable
end
end
call $__wasm_call_ctors
local.get 0
i32.load offset=12
local.get 1
call $main
local.set 1
call $__prepare_for_exit
local.get 1
br_if 2 (;@1;)
local.get 0
i32.const 16
i32.add
global.set 0
return
end
local.get 2
call $free
end
i32.const 71
call $_Exit
unreachable
end
local.get 1
call $_Exit
unreachable)
(func $malloc (type 0) (param i32) (result i32)
local.get 0
call $dlmalloc)
(func $dlmalloc (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 1
global.set 0
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @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
local.get 0
i32.const 244
i32.gt_u
br_if 0 (;@38;)
i32.const 0
i32.load offset=1024
local.tee 2
i32.const 16
local.get 0
i32.const 11
i32.add
i32.const -8
i32.and
local.get 0
i32.const 11
i32.lt_u
select
local.tee 3
i32.const 3
i32.shr_u
local.tee 4
i32.shr_u
local.tee 0
i32.const 3
i32.and
i32.eqz
br_if 1 (;@37;)
local.get 0
i32.const -1
i32.xor
i32.const 1
i32.and
local.get 4
i32.add
local.tee 5
i32.const 3
i32.shl
local.tee 6
i32.const 1072
i32.add
i32.load
local.tee 4
i32.const 8
i32.add
local.set 0
local.get 4
i32.load offset=8
local.tee 3
local.get 6
i32.const 1064
i32.add
local.tee 6
i32.eq
br_if 2 (;@36;)
local.get 3
local.get 6
i32.store offset=12
local.get 6
i32.const 8
i32.add
local.get 3
i32.store
br 3 (;@35;)
end
i32.const -1
local.set 3
local.get 0
i32.const -65
i32.gt_u
br_if 14 (;@23;)
local.get 0
i32.const 11
i32.add
local.tee 0
i32.const -8
i32.and
local.set 3
i32.const 0
i32.load offset=1028
local.tee 7
i32.eqz
br_if 14 (;@23;)
i32.const 0
local.set 8
block ;; label = @38
local.get 0
i32.const 8
i32.shr_u
local.tee 0
i32.eqz
br_if 0 (;@38;)
i32.const 31
local.set 8
local.get 3
i32.const 16777215
i32.gt_u
br_if 0 (;@38;)
local.get 3
i32.const 14
local.get 0
local.get 0
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 4
i32.shl
local.tee 0
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 5
local.get 4
i32.or
local.get 0
local.get 5
i32.shl
local.tee 0
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
i32.sub
local.get 0
local.get 4
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 0
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 0
i32.const 1
i32.shl
i32.or
local.set 8
end
i32.const 0
local.get 3
i32.sub
local.set 5
local.get 8
i32.const 2
i32.shl
i32.const 1328
i32.add
i32.load
local.tee 4
i32.eqz
br_if 3 (;@34;)
local.get 3
i32.const 0
i32.const 25
local.get 8
i32.const 1
i32.shr_u
i32.sub
local.get 8
i32.const 31
i32.eq
select
i32.shl
local.set 6
i32.const 0
local.set 0
i32.const 0
local.set 9
loop ;; label = @38
block ;; label = @39
local.get 4
i32.load offset=4
i32.const -8
i32.and
local.get 3
i32.sub
local.tee 2
local.get 5
i32.ge_u
br_if 0 (;@39;)
local.get 2
local.set 5
local.get 4
local.set 9
local.get 2
i32.eqz
br_if 8 (;@31;)
end
local.get 0
local.get 4
i32.const 20
i32.add
i32.load
local.tee 2
local.get 2
local.get 4
local.get 6
i32.const 29
i32.shr_u
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
i32.load
local.tee 4
i32.eq
select
local.get 0
local.get 2
select
local.set 0
local.get 6
local.get 4
i32.const 0
i32.ne
i32.shl
local.set 6
local.get 4
br_if 0 (;@38;)
end
local.get 0
local.get 9
i32.or
i32.eqz
br_if 4 (;@33;)
br 11 (;@26;)
end
local.get 3
i32.const 0
i32.load offset=1032
local.tee 7
i32.le_u
br_if 13 (;@23;)
local.get 0
i32.eqz
br_if 4 (;@32;)
local.get 0
local.get 4
i32.shl
i32.const 2
local.get 4
i32.shl
local.tee 0
i32.const 0
local.get 0
i32.sub
i32.or
i32.and
local.tee 0
i32.const 0
local.get 0
i32.sub
i32.and
i32.const -1
i32.add
local.tee 0
local.get 0
i32.const 12
i32.shr_u
i32.const 16
i32.and
local.tee 0
i32.shr_u
local.tee 4
i32.const 5
i32.shr_u
i32.const 8
i32.and
local.tee 5
local.get 0
i32.or
local.get 4
local.get 5
i32.shr_u
local.tee 0
i32.const 2
i32.shr_u
i32.const 4
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 1
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
i32.add
local.tee 5
i32.const 3
i32.shl
local.tee 6
i32.const 1072
i32.add
i32.load
local.tee 4
i32.load offset=8
local.tee 0
local.get 6
i32.const 1064
i32.add
local.tee 6
i32.eq
br_if 6 (;@30;)
local.get 0
local.get 6
i32.store offset=12
local.get 6
i32.const 8
i32.add
local.get 0
i32.store
br 7 (;@29;)
end
i32.const 0
local.get 2
i32.const -2
local.get 5
i32.rotl
i32.and
i32.store offset=1024
end
local.get 4
local.get 5
i32.const 3
i32.shl
local.tee 5
i32.const 3
i32.or
i32.store offset=4
local.get 4
local.get 5
i32.add
local.tee 4
local.get 4
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
br 33 (;@1;)
end
i32.const 0
local.set 0
i32.const 0
local.set 9
i32.const 0
i32.const 0
i32.or
br_if 7 (;@26;)
end
i32.const 2
local.get 8
i32.shl
local.tee 0
i32.const 0
local.get 0
i32.sub
i32.or
local.get 7
i32.and
local.tee 0
i32.eqz
br_if 9 (;@23;)
local.get 0
i32.const 0
local.get 0
i32.sub
i32.and
i32.const -1
i32.add
local.tee 0
local.get 0
i32.const 12
i32.shr_u
i32.const 16
i32.and
local.tee 0
i32.shr_u
local.tee 4
i32.const 5
i32.shr_u
i32.const 8
i32.and
local.tee 6
local.get 0
i32.or
local.get 4
local.get 6
i32.shr_u
local.tee 0
i32.const 2
i32.shr_u
i32.const 4
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 1
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
i32.add
i32.const 2
i32.shl
i32.const 1328
i32.add
i32.load
local.tee 0
br_if 7 (;@25;)
br 8 (;@24;)
end
i32.const 0
i32.load offset=1028
local.tee 10
i32.eqz
br_if 8 (;@23;)
local.get 10
i32.const 0
local.get 10
i32.sub
i32.and
i32.const -1
i32.add
local.tee 0
local.get 0
i32.const 12
i32.shr_u
i32.const 16
i32.and
local.tee 0
i32.shr_u
local.tee 4
i32.const 5
i32.shr_u
i32.const 8
i32.and
local.tee 5
local.get 0
i32.or
local.get 4
local.get 5
i32.shr_u
local.tee 0
i32.const 2
i32.shr_u
i32.const 4
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 1
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
i32.add
i32.const 2
i32.shl
i32.const 1328
i32.add
i32.load
local.tee 6
i32.load offset=4
i32.const -8
i32.and
local.get 3
i32.sub
local.set 5
local.get 6
local.tee 9
i32.load offset=16
local.tee 0
i32.eqz
br_if 3 (;@28;)
i32.const 1
local.set 4
br 4 (;@27;)
end
i32.const 0
local.set 5
local.get 4
local.set 9
local.get 4
local.set 0
br 5 (;@25;)
end
i32.const 0
local.get 2
i32.const -2
local.get 5
i32.rotl
i32.and
local.tee 2
i32.store offset=1024
end
local.get 4
i32.const 8
i32.add
local.set 0
local.get 4
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 4
local.get 5
i32.const 3
i32.shl
local.tee 5
i32.add
local.get 5
local.get 3
i32.sub
local.tee 5
i32.store
local.get 4
local.get 3
i32.add
local.tee 6
local.get 5
i32.const 1
i32.or
i32.store offset=4
block ;; label = @29
local.get 7
i32.eqz
br_if 0 (;@29;)
local.get 7
i32.const 3
i32.shr_u
local.tee 9
i32.const 3
i32.shl
i32.const 1064
i32.add
local.set 3
i32.const 0
i32.load offset=1044
local.set 4
block ;; label = @30
block ;; label = @31
local.get 2
i32.const 1
local.get 9
i32.shl
local.tee 9
i32.and
i32.eqz
br_if 0 (;@31;)
local.get 3
i32.load offset=8
local.set 9
br 1 (;@30;)
end
i32.const 0
local.get 2
local.get 9
i32.or
i32.store offset=1024
local.get 3
local.set 9
end
local.get 9
local.get 4
i32.store offset=12
local.get 3
local.get 4
i32.store offset=8
local.get 4
local.get 3
i32.store offset=12
local.get 4
local.get 9
i32.store offset=8
end
i32.const 0
local.get 6
i32.store offset=1044
i32.const 0
local.get 5
i32.store offset=1032
br 27 (;@1;)
end
i32.const 0
local.set 4
end
block ;; label = @27
block ;; label = @28
loop ;; label = @29
block ;; label = @30
block ;; label = @31
block ;; label = @32
block ;; label = @33
local.get 4
br_table 1 (;@32;) 0 (;@33;) 0 (;@33;)
end
local.get 0
i32.load offset=4
i32.const -8
i32.and
local.get 3
i32.sub
local.tee 4
local.get 5
local.get 4
local.get 5
i32.lt_u
local.tee 4
select
local.set 5
local.get 0
local.get 6
local.get 4
select
local.set 6
local.get 0
local.tee 9
i32.load offset=16
local.tee 0
br_if 1 (;@31;)
i32.const 0
local.set 4
br 3 (;@29;)
end
local.get 9
i32.const 20
i32.add
i32.load
local.tee 0
br_if 1 (;@30;)
local.get 6
local.get 3
i32.add
local.tee 11
local.get 6
i32.le_u
br_if 8 (;@23;)
local.get 6
i32.load offset=24
local.set 12
block ;; label = @32
local.get 6
i32.load offset=12
local.tee 9
local.get 6
i32.eq
br_if 0 (;@32;)
local.get 6
i32.load offset=8
local.tee 0
local.get 9
i32.store offset=12
local.get 9
local.get 0
i32.store offset=8
local.get 12
br_if 4 (;@28;)
br 5 (;@27;)
end
block ;; label = @32
block ;; label = @33
local.get 6
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 0
br_if 0 (;@33;)
local.get 6
i32.load offset=16
local.tee 0
i32.eqz
br_if 1 (;@32;)
local.get 6
i32.const 16
i32.add
local.set 4
end
loop ;; label = @33
local.get 4
local.set 8
local.get 0
local.tee 9
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 0
br_if 0 (;@33;)
local.get 9
i32.const 16
i32.add
local.set 4
local.get 9
i32.load offset=16
local.tee 0
br_if 0 (;@33;)
end
local.get 8
i32.const 0
i32.store
local.get 12
i32.eqz
br_if 5 (;@27;)
br 4 (;@28;)
end
i32.const 0
local.set 9
local.get 12
br_if 3 (;@28;)
br 4 (;@27;)
end
i32.const 1
local.set 4
br 1 (;@29;)
end
i32.const 1
local.set 4
br 0 (;@29;)
end
end
block ;; label = @28
block ;; label = @29
block ;; label = @30
local.get 6
local.get 6
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1328
i32.add
local.tee 0
i32.load
i32.eq
br_if 0 (;@30;)
local.get 12
i32.const 16
i32.const 20
local.get 12
i32.load offset=16
local.get 6
i32.eq
select
i32.add
local.get 9
i32.store
local.get 9
br_if 1 (;@29;)
br 3 (;@27;)
end
local.get 0
local.get 9
i32.store
local.get 9
i32.eqz
br_if 1 (;@28;)
end
local.get 9
local.get 12
i32.store offset=24
block ;; label = @29
local.get 6
i32.load offset=16
local.tee 0
i32.eqz
br_if 0 (;@29;)
local.get 9
local.get 0
i32.store offset=16
local.get 0
local.get 9
i32.store offset=24
end
local.get 6
i32.const 20
i32.add
i32.load
local.tee 0
i32.eqz
br_if 1 (;@27;)
local.get 9
i32.const 20
i32.add
local.get 0
i32.store
local.get 0
local.get 9
i32.store offset=24
br 1 (;@27;)
end
i32.const 0
local.get 10
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1028
end
block ;; label = @27
block ;; label = @28
local.get 5
i32.const 15
i32.gt_u
br_if 0 (;@28;)
local.get 6
local.get 5
local.get 3
i32.add
local.tee 0
i32.const 3
i32.or
i32.store offset=4
local.get 6
local.get 0
i32.add
local.tee 0
local.get 0
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
br 1 (;@27;)
end
local.get 11
local.get 5
i32.const 1
i32.or
i32.store offset=4
local.get 6
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 11
local.get 5
i32.add
local.get 5
i32.store
block ;; label = @28
local.get 7
i32.eqz
br_if 0 (;@28;)
local.get 7
i32.const 3
i32.shr_u
local.tee 3
i32.const 3
i32.shl
i32.const 1064
i32.add
local.set 4
i32.const 0
i32.load offset=1044
local.set 0
block ;; label = @29
block ;; label = @30
i32.const 1
local.get 3
i32.shl
local.tee 3
local.get 2
i32.and
i32.eqz
br_if 0 (;@30;)
local.get 4
i32.load offset=8
local.set 3
br 1 (;@29;)
end
i32.const 0
local.get 3
local.get 2
i32.or
i32.store offset=1024
local.get 4
local.set 3
end
local.get 3
local.get 0
i32.store offset=12
local.get 4
local.get 0
i32.store offset=8
local.get 0
local.get 4
i32.store offset=12
local.get 0
local.get 3
i32.store offset=8
end
i32.const 0
local.get 11
i32.store offset=1044
i32.const 0
local.get 5
i32.store offset=1032
end
local.get 6
i32.const 8
i32.add
local.set 0
br 25 (;@1;)
end
local.get 0
i32.eqz
br_if 1 (;@24;)
end
loop ;; label = @25
local.get 0
i32.load offset=4
i32.const -8
i32.and
local.get 3
i32.sub
local.tee 2
local.get 5
i32.lt_u
local.set 6
block ;; label = @26
local.get 0
i32.load offset=16
local.tee 4
br_if 0 (;@26;)
local.get 0
i32.const 20
i32.add
i32.load
local.set 4
end
local.get 2
local.get 5
local.get 6
select
local.set 5
local.get 0
local.get 9
local.get 6
select
local.set 9
local.get 4
local.set 0
local.get 4
br_if 0 (;@25;)
end
end
local.get 9
i32.eqz
br_if 0 (;@23;)
local.get 5
i32.const 0
i32.load offset=1032
local.get 3
i32.sub
i32.ge_u
br_if 0 (;@23;)
local.get 9
local.get 3
i32.add
local.tee 8
local.get 9
i32.le_u
br_if 0 (;@23;)
local.get 9
i32.load offset=24
local.set 10
local.get 9
i32.load offset=12
local.tee 6
local.get 9
i32.eq
br_if 1 (;@22;)
local.get 9
i32.load offset=8
local.tee 0
local.get 6
i32.store offset=12
local.get 6
local.get 0
i32.store offset=8
local.get 10
br_if 20 (;@3;)
br 21 (;@2;)
end
block ;; label = @23
block ;; label = @24
block ;; label = @25
block ;; label = @26
block ;; label = @27
block ;; label = @28
i32.const 0
i32.load offset=1032
local.tee 0
local.get 3
i32.ge_u
br_if 0 (;@28;)
i32.const 0
i32.load offset=1036
local.tee 6
local.get 3
i32.le_u
br_if 1 (;@27;)
i32.const 0
i32.load offset=1048
local.tee 0
local.get 3
i32.add
local.tee 4
local.get 6
local.get 3
i32.sub
local.tee 5
i32.const 1
i32.or
i32.store offset=4
i32.const 0
local.get 5
i32.store offset=1036
i32.const 0
local.get 4
i32.store offset=1048
local.get 0
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 0
i32.const 8
i32.add
local.set 0
br 27 (;@1;)
end
i32.const 0
i32.load offset=1044
local.set 4
local.get 0
local.get 3
i32.sub
local.tee 5
i32.const 16
i32.lt_u
br_if 1 (;@26;)
local.get 4
local.get 3
i32.add
local.tee 6
local.get 5
i32.const 1
i32.or
i32.store offset=4
i32.const 0
local.get 5
i32.store offset=1032
i32.const 0
local.get 6
i32.store offset=1044
local.get 4
local.get 0
i32.add
local.get 5
i32.store
local.get 4
local.get 3
i32.const 3
i32.or
i32.store offset=4
br 2 (;@25;)
end
i32.const 0
i32.load offset=1496
i32.eqz
br_if 2 (;@24;)
i32.const 0
i32.load offset=1504
local.set 4
br 3 (;@23;)
end
local.get 4
local.get 0
i32.const 3
i32.or
i32.store offset=4
local.get 4
local.get 0
i32.add
local.tee 0
local.get 0
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
i32.const 0
i32.const 0
i32.store offset=1044
i32.const 0
i32.const 0
i32.store offset=1032
end
local.get 4
i32.const 8
i32.add
local.set 0
br 23 (;@1;)
end
i32.const 0
i64.const -1
i64.store offset=1508 align=4
i32.const 0
i64.const 281474976776192
i64.store offset=1500 align=4
i32.const 0
local.get 1
i32.const 12
i32.add
i32.const -16
i32.and
i32.const 1431655768
i32.xor
i32.store offset=1496
i32.const 0
i32.const 0
i32.store offset=1516
i32.const 0
i32.const 0
i32.store offset=1468
i32.const 65536
local.set 4
end
i32.const 0
local.set 0
local.get 4
local.get 3
i32.const 47
i32.add
local.tee 7
i32.add
local.tee 2
i32.const 0
local.get 4
i32.sub
local.tee 8
i32.and
local.tee 9
local.get 3
i32.le_u
br_if 21 (;@1;)
i32.const 0
local.set 0
block ;; label = @23
i32.const 0
i32.load offset=1464
local.tee 4
i32.eqz
br_if 0 (;@23;)
i32.const 0
i32.load offset=1456
local.tee 5
local.get 9
i32.add
local.tee 10
local.get 5
i32.le_u
br_if 22 (;@1;)
local.get 10
local.get 4
i32.gt_u
br_if 22 (;@1;)
end
i32.const 0
i32.load8_u offset=1468
i32.const 4
i32.and
br_if 8 (;@14;)
block ;; label = @23
i32.const 0
i32.load offset=1048
local.tee 4
i32.eqz
br_if 0 (;@23;)
i32.const 1472
local.set 0
loop ;; label = @24
block ;; label = @25
local.get 0
i32.load
local.tee 5
local.get 4
i32.gt_u
br_if 0 (;@25;)
local.get 5
local.get 0
i32.load offset=4
i32.add
local.get 4
i32.gt_u
br_if 4 (;@21;)
end
local.get 0
i32.load offset=8
local.tee 0
br_if 0 (;@24;)
end
end
i32.const 0
call $sbrk
local.tee 6
i32.const -1
i32.eq
br_if 7 (;@15;)
local.get 9
local.set 2
block ;; label = @23
i32.const 0
i32.load offset=1500
local.tee 0
i32.const -1
i32.add
local.tee 4
local.get 6
i32.and
i32.eqz
br_if 0 (;@23;)
local.get 9
local.get 6
i32.sub
local.get 4
local.get 6
i32.add
i32.const 0
local.get 0
i32.sub
i32.and
i32.add
local.set 2
end
local.get 2
local.get 3
i32.le_u
br_if 7 (;@15;)
local.get 2
i32.const 2147483646
i32.gt_u
br_if 7 (;@15;)
block ;; label = @23
i32.const 0
i32.load offset=1464
local.tee 0
i32.eqz
br_if 0 (;@23;)
i32.const 0
i32.load offset=1456
local.tee 4
local.get 2
i32.add
local.tee 5
local.get 4
i32.le_u
br_if 8 (;@15;)
local.get 5
local.get 0
i32.gt_u
br_if 8 (;@15;)
end
local.get 2
call $sbrk
local.tee 0
local.get 6
i32.ne
br_if 2 (;@20;)
br 9 (;@13;)
end
block ;; label = @22
local.get 9
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 0
br_if 0 (;@22;)
local.get 9
i32.load offset=16
local.tee 0
i32.eqz
br_if 3 (;@19;)
local.get 9
i32.const 16
i32.add
local.set 4
end
loop ;; label = @22
local.get 4
local.set 2
local.get 0
local.tee 6
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 0
br_if 0 (;@22;)
local.get 6
i32.const 16
i32.add
local.set 4
local.get 6
i32.load offset=16
local.tee 0
br_if 0 (;@22;)
end
local.get 2
i32.const 0
i32.store
local.get 10
i32.eqz
br_if 19 (;@2;)
br 18 (;@3;)
end
local.get 2
local.get 6
i32.sub
local.get 8
i32.and
local.tee 2
i32.const 2147483646
i32.gt_u
br_if 5 (;@15;)
local.get 2
call $sbrk
local.tee 6
local.get 0
i32.load
local.get 0
i32.load offset=4
i32.add
i32.eq
br_if 3 (;@17;)
local.get 6
local.set 0
end
local.get 0
local.set 6
local.get 3
i32.const 48
i32.add
local.get 2
i32.le_u
br_if 1 (;@18;)
local.get 2
i32.const 2147483646
i32.gt_u
br_if 1 (;@18;)
local.get 6
i32.const -1
i32.eq
br_if 1 (;@18;)
local.get 7
local.get 2
i32.sub
i32.const 0
i32.load offset=1504
local.tee 0
i32.add
i32.const 0
local.get 0
i32.sub
i32.and
local.tee 0
i32.const 2147483646
i32.gt_u
br_if 6 (;@13;)
local.get 0
call $sbrk
i32.const -1
i32.eq
br_if 3 (;@16;)
local.get 0
local.get 2
i32.add
local.set 2
br 6 (;@13;)
end
i32.const 0
local.set 6
local.get 10
br_if 15 (;@3;)
br 16 (;@2;)
end
local.get 6
i32.const -1
i32.ne
br_if 4 (;@13;)
br 2 (;@15;)
end
local.get 6
i32.const -1
i32.ne
br_if 3 (;@13;)
br 1 (;@15;)
end
i32.const 0
local.get 2
i32.sub
call $sbrk
drop
end
i32.const 0
i32.const 0
i32.load offset=1468
i32.const 4
i32.or
i32.store offset=1468
end
local.get 9
i32.const 2147483646
i32.gt_u
br_if 1 (;@12;)
local.get 9
call $sbrk
local.tee 6
i32.const 0
call $sbrk
local.tee 0
i32.ge_u
br_if 1 (;@12;)
local.get 6
i32.const -1
i32.eq
br_if 1 (;@12;)
local.get 0
i32.const -1
i32.eq
br_if 1 (;@12;)
local.get 0
local.get 6
i32.sub
local.tee 2
local.get 3
i32.const 40
i32.add
i32.le_u
br_if 1 (;@12;)
end
i32.const 0
i32.const 0
i32.load offset=1456
local.get 2
i32.add
local.tee 0
i32.store offset=1456
block ;; label = @13
local.get 0
i32.const 0
i32.load offset=1460
i32.le_u
br_if 0 (;@13;)
i32.const 0
local.get 0
i32.store offset=1460
end
block ;; label = @13
block ;; label = @14
block ;; label = @15
block ;; label = @16
i32.const 0
i32.load offset=1048
local.tee 4
i32.eqz
br_if 0 (;@16;)
i32.const 1472
local.set 0
loop ;; label = @17
local.get 6
local.get 0
i32.load
local.tee 5
local.get 0
i32.load offset=4
local.tee 9
i32.add
i32.eq
br_if 2 (;@15;)
local.get 0
i32.load offset=8
local.tee 0
br_if 0 (;@17;)
br 3 (;@14;)
end
end
block ;; label = @16
block ;; label = @17
i32.const 0
i32.load offset=1040
local.tee 0
i32.eqz
br_if 0 (;@17;)
local.get 6
local.get 0
i32.ge_u
br_if 1 (;@16;)
end
i32.const 0
local.get 6
i32.store offset=1040
end
i32.const 0
local.set 0
i32.const 0
local.get 2
i32.store offset=1476
i32.const 0
local.get 6
i32.store offset=1472
i32.const 0
i32.const -1
i32.store offset=1056
i32.const 0
i32.const 0
i32.load offset=1496
i32.store offset=1060
i32.const 0
i32.const 0
i32.store offset=1484
loop ;; label = @16
local.get 0
i32.const 1072
i32.add
local.get 0
i32.const 1064
i32.add
local.tee 4
i32.store
local.get 0
i32.const 1076
i32.add
local.get 4
i32.store
local.get 0
i32.const 8
i32.add
local.tee 0
i32.const 256
i32.ne
br_if 0 (;@16;)
end
local.get 6
i32.const -8
local.get 6
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 6
i32.const 8
i32.add
i32.const 7
i32.and
select
local.tee 0
i32.add
local.tee 4
local.get 2
i32.const -40
i32.add
local.tee 5
local.get 0
i32.sub
local.tee 0
i32.const 1
i32.or
i32.store offset=4
i32.const 0
i32.const 0
i32.load offset=1512
i32.store offset=1052
i32.const 0
local.get 0
i32.store offset=1036
i32.const 0
local.get 4
i32.store offset=1048
local.get 6
local.get 5
i32.add
i32.const 40
i32.store offset=4
br 2 (;@13;)
end
local.get 0
i32.load8_u offset=12
i32.const 8
i32.and
br_if 0 (;@14;)
local.get 6
local.get 4
i32.le_u
br_if 0 (;@14;)
local.get 5
local.get 4
i32.gt_u
br_if 0 (;@14;)
local.get 4
i32.const -8
local.get 4
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 4
i32.const 8
i32.add
i32.const 7
i32.and
select
local.tee 5
i32.add
local.tee 6
i32.const 0
i32.load offset=1036
local.get 2
i32.add
local.tee 8
local.get 5
i32.sub
local.tee 5
i32.const 1
i32.or
i32.store offset=4
local.get 0
i32.const 4
i32.add
local.get 9
local.get 2
i32.add
i32.store
i32.const 0
i32.const 0
i32.load offset=1512
i32.store offset=1052
i32.const 0
local.get 5
i32.store offset=1036
i32.const 0
local.get 6
i32.store offset=1048
local.get 4
local.get 8
i32.add
i32.const 40
i32.store offset=4
br 1 (;@13;)
end
block ;; label = @14
local.get 6
i32.const 0
i32.load offset=1040
i32.ge_u
br_if 0 (;@14;)
i32.const 0
local.get 6
i32.store offset=1040
end
local.get 6
local.get 2
i32.add
local.set 5
i32.const 1472
local.set 0
block ;; label = @14
block ;; label = @15
block ;; label = @16
block ;; label = @17
block ;; label = @18
block ;; label = @19
block ;; label = @20
block ;; label = @21
loop ;; label = @22
local.get 0
i32.load
local.get 5
i32.eq
br_if 1 (;@21;)
local.get 0
i32.load offset=8
local.tee 0
br_if 0 (;@22;)
br 2 (;@20;)
end
end
local.get 0
i32.load8_u offset=12
i32.const 8
i32.and
br_if 0 (;@20;)
local.get 0
local.get 6
i32.store
local.get 0
local.get 0
i32.load offset=4
local.get 2
i32.add
i32.store offset=4
local.get 6
i32.const -8
local.get 6
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 6
i32.const 8
i32.add
i32.const 7
i32.and
select
i32.add
local.tee 2
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 5
i32.const -8
local.get 5
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 5
i32.const 8
i32.add
i32.const 7
i32.and
select
i32.add
local.tee 6
local.get 2
i32.sub
local.get 3
i32.sub
local.set 0
local.get 2
local.get 3
i32.add
local.set 5
local.get 4
local.get 6
i32.eq
br_if 1 (;@19;)
i32.const 0
i32.load offset=1044
local.get 6
i32.eq
br_if 9 (;@11;)
local.get 6
i32.load offset=4
local.tee 4
i32.const 3
i32.and
i32.const 1
i32.ne
br_if 15 (;@5;)
local.get 4
i32.const -8
i32.and
local.set 7
local.get 4
i32.const 255
i32.gt_u
br_if 10 (;@10;)
local.get 6
i32.load offset=12
local.tee 3
local.get 6
i32.load offset=8
local.tee 9
i32.eq
br_if 11 (;@9;)
local.get 3
local.get 9
i32.store offset=8
local.get 9
local.get 3
i32.store offset=12
br 14 (;@6;)
end
i32.const 1472
local.set 0
block ;; label = @20
loop ;; label = @21
block ;; label = @22
local.get 0
i32.load
local.tee 5
local.get 4
i32.gt_u
br_if 0 (;@22;)
local.get 5
local.get 0
i32.load offset=4
i32.add
local.tee 5
local.get 4
i32.gt_u
br_if 2 (;@20;)
end
local.get 0
i32.load offset=8
local.set 0
br 0 (;@21;)
end
end
local.get 6
i32.const -8
local.get 6
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 6
i32.const 8
i32.add
i32.const 7
i32.and
select
local.tee 0
i32.add
local.tee 8
local.get 2
i32.const -40
i32.add
local.tee 9
local.get 0
i32.sub
local.tee 0
i32.const 1
i32.or
i32.store offset=4
local.get 6
local.get 9
i32.add
i32.const 40
i32.store offset=4
local.get 4
local.get 5
i32.const 39
local.get 5
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 5
i32.const -39
i32.add
i32.const 7
i32.and
select
i32.add
i32.const -47
i32.add
local.tee 9
local.get 9
local.get 4
i32.const 16
i32.add
i32.lt_u
select
local.tee 9
i32.const 27
i32.store offset=4
i32.const 0
i32.const 0
i32.load offset=1512
i32.store offset=1052
i32.const 0
local.get 0
i32.store offset=1036
i32.const 0
local.get 8
i32.store offset=1048
local.get 9
i32.const 16
i32.add
i32.const 0
i64.load offset=1480 align=4
i64.store align=4
local.get 9
i32.const 0
i64.load offset=1472 align=4
i64.store offset=8 align=4
i32.const 0
local.get 2
i32.store offset=1476
i32.const 0
local.get 6
i32.store offset=1472
i32.const 0
local.get 9
i32.const 8
i32.add
i32.store offset=1480
i32.const 0
i32.const 0
i32.store offset=1484
local.get 9
i32.const 28
i32.add
local.set 0
loop ;; label = @20
local.get 0
i32.const 7
i32.store
local.get 0
i32.const 4
i32.add
local.tee 0
local.get 5
i32.lt_u
br_if 0 (;@20;)
end
local.get 9
local.get 4
i32.eq
br_if 6 (;@13;)
local.get 9
i32.const 4
i32.add
local.tee 0
local.get 0
i32.load
i32.const -2
i32.and
i32.store
local.get 9
local.get 9
local.get 4
i32.sub
local.tee 2
i32.store
local.get 4
local.get 2
i32.const 1
i32.or
i32.store offset=4
block ;; label = @20
local.get 2
i32.const 255
i32.gt_u
br_if 0 (;@20;)
local.get 2
i32.const 3
i32.shr_u
local.tee 5
i32.const 3
i32.shl
i32.const 1064
i32.add
local.set 0
i32.const 0
i32.load offset=1024
local.tee 6
i32.const 1
local.get 5
i32.shl
local.tee 5
i32.and
i32.eqz
br_if 2 (;@18;)
local.get 0
i32.load offset=8
local.set 5
br 3 (;@17;)
end
i32.const 0
local.set 0
block ;; label = @20
local.get 2
i32.const 8
i32.shr_u
local.tee 5
i32.eqz
br_if 0 (;@20;)
i32.const 31
local.set 0
local.get 2
i32.const 16777215
i32.gt_u
br_if 0 (;@20;)
local.get 2
i32.const 14
local.get 5
local.get 5
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 0
i32.shl
local.tee 5
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 6
local.get 0
i32.or
local.get 5
local.get 6
i32.shl
local.tee 0
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 5
i32.or
i32.sub
local.get 0
local.get 5
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 0
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 0
i32.const 1
i32.shl
i32.or
local.set 0
end
local.get 4
i64.const 0
i64.store offset=16 align=4
local.get 4
i32.const 28
i32.add
local.get 0
i32.store
local.get 0
i32.const 2
i32.shl
i32.const 1328
i32.add
local.set 5
i32.const 0
i32.load offset=1028
local.tee 6
i32.const 1
local.get 0
i32.shl
local.tee 9
i32.and
i32.eqz
br_if 3 (;@16;)
local.get 2
i32.const 0
i32.const 25
local.get 0
i32.const 1
i32.shr_u
i32.sub
local.get 0
i32.const 31
i32.eq
select
i32.shl
local.set 0
local.get 5
i32.load
local.set 6
loop ;; label = @20
local.get 6
local.tee 5
i32.load offset=4
i32.const -8
i32.and
local.get 2
i32.eq
br_if 6 (;@14;)
local.get 0
i32.const 29
i32.shr_u
local.set 6
local.get 0
i32.const 1
i32.shl
local.set 0
local.get 5
local.get 6
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 9
i32.load
local.tee 6
br_if 0 (;@20;)
end
local.get 9
local.get 4
i32.store
local.get 4
i32.const 24
i32.add
local.get 5
i32.store
br 4 (;@15;)
end
i32.const 0
local.get 5
i32.store offset=1048
i32.const 0
i32.const 0
i32.load offset=1036
local.get 0
i32.add
local.tee 0
i32.store offset=1036
local.get 5
local.get 0
i32.const 1
i32.or
i32.store offset=4
br 14 (;@4;)
end
i32.const 0
local.get 6
local.get 5
i32.or
i32.store offset=1024
local.get 0
local.set 5
end
local.get 5
local.get 4
i32.store offset=12
local.get 0
local.get 4
i32.store offset=8
local.get 4
local.get 0
i32.store offset=12
local.get 4
local.get 5
i32.store offset=8
br 3 (;@13;)
end
local.get 5
local.get 4
i32.store
i32.const 0
local.get 6
local.get 9
i32.or
i32.store offset=1028
local.get 4
i32.const 24
i32.add
local.get 5
i32.store
end
local.get 4
local.get 4
i32.store offset=12
local.get 4
local.get 4
i32.store offset=8
br 1 (;@13;)
end
local.get 5
i32.load offset=8
local.tee 0
local.get 4
i32.store offset=12
local.get 5
local.get 4
i32.store offset=8
local.get 4
i32.const 24
i32.add
i32.const 0
i32.store
local.get 4
local.get 5
i32.store offset=12
local.get 4
local.get 0
i32.store offset=8
end
i32.const 0
i32.load offset=1036
local.tee 0
local.get 3
i32.le_u
br_if 0 (;@12;)
i32.const 0
i32.load offset=1048
local.tee 4
local.get 3
i32.add
local.tee 5
local.get 0
local.get 3
i32.sub
local.tee 0
i32.const 1
i32.or
i32.store offset=4
i32.const 0
local.get 0
i32.store offset=1036
i32.const 0
local.get 5
i32.store offset=1048
local.get 4
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 4
i32.const 8
i32.add
local.set 0
br 11 (;@1;)
end
i32.const 0
local.set 0
i32.const 0
i32.const 48
i32.store offset=1520
br 10 (;@1;)
end
i32.const 0
local.get 5
i32.store offset=1044
i32.const 0
i32.const 0
i32.load offset=1032
local.get 0
i32.add
local.tee 0
i32.store offset=1032
local.get 5
local.get 0
i32.const 1
i32.or
i32.store offset=4
local.get 5
local.get 0
i32.add
local.get 0
i32.store
br 6 (;@4;)
end
local.get 6
i32.load offset=24
local.set 10
local.get 6
i32.load offset=12
local.tee 9
local.get 6
i32.eq
br_if 1 (;@8;)
local.get 6
i32.load offset=8
local.tee 4
local.get 9
i32.store offset=12
local.get 9
local.get 4
i32.store offset=8
local.get 10
br_if 2 (;@7;)
br 3 (;@6;)
end
i32.const 0
i32.const 0
i32.load offset=1024
i32.const -2
local.get 4
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1024
br 2 (;@6;)
end
block ;; label = @8
block ;; label = @9
local.get 6
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 3
br_if 0 (;@9;)
local.get 6
i32.const 16
i32.add
local.tee 4
i32.load
local.tee 3
i32.eqz
br_if 1 (;@8;)
end
loop ;; label = @9
local.get 4
local.set 8
local.get 3
local.tee 9
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 3
br_if 0 (;@9;)
local.get 9
i32.const 16
i32.add
local.set 4
local.get 9
i32.load offset=16
local.tee 3
br_if 0 (;@9;)
end
local.get 8
i32.const 0
i32.store
local.get 10
i32.eqz
br_if 2 (;@6;)
br 1 (;@7;)
end
i32.const 0
local.set 9
local.get 10
i32.eqz
br_if 1 (;@6;)
end
block ;; label = @7
block ;; label = @8
block ;; label = @9
local.get 6
i32.load offset=28
local.tee 3
i32.const 2
i32.shl
i32.const 1328
i32.add
local.tee 4
i32.load
local.get 6
i32.eq
br_if 0 (;@9;)
local.get 10
i32.const 16
i32.const 20
local.get 10
i32.load offset=16
local.get 6
i32.eq
select
i32.add
local.get 9
i32.store
local.get 9
br_if 1 (;@8;)
br 3 (;@6;)
end
local.get 4
local.get 9
i32.store
local.get 9
i32.eqz
br_if 1 (;@7;)
end
local.get 9
local.get 10
i32.store offset=24
block ;; label = @8
local.get 6
i32.load offset=16
local.tee 4
i32.eqz
br_if 0 (;@8;)
local.get 9
local.get 4
i32.store offset=16
local.get 4
local.get 9
i32.store offset=24
end
local.get 6
i32.const 20
i32.add
i32.load
local.tee 4
i32.eqz
br_if 1 (;@6;)
local.get 9
i32.const 20
i32.add
local.get 4
i32.store
local.get 4
local.get 9
i32.store offset=24
br 1 (;@6;)
end
i32.const 0
i32.const 0
i32.load offset=1028
i32.const -2
local.get 3
i32.rotl
i32.and
i32.store offset=1028
end
local.get 7
local.get 0
i32.add
local.set 0
local.get 6
local.get 7
i32.add
local.set 6
end
local.get 6
local.get 6
i32.load offset=4
i32.const -2
i32.and
i32.store offset=4
local.get 5
local.get 0
i32.add
local.get 0
i32.store
local.get 5
local.get 0
i32.const 1
i32.or
i32.store offset=4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
local.get 0
i32.const 255
i32.gt_u
br_if 0 (;@10;)
local.get 0
i32.const 3
i32.shr_u
local.tee 4
i32.const 3
i32.shl
i32.const 1064
i32.add
local.set 0
i32.const 0
i32.load offset=1024
local.tee 3
i32.const 1
local.get 4
i32.shl
local.tee 4
i32.and
i32.eqz
br_if 1 (;@9;)
local.get 0
i32.load offset=8
local.set 4
br 2 (;@8;)
end
i32.const 0
local.set 4
block ;; label = @10
local.get 0
i32.const 8
i32.shr_u
local.tee 3
i32.eqz
br_if 0 (;@10;)
i32.const 31
local.set 4
local.get 0
i32.const 16777215
i32.gt_u
br_if 0 (;@10;)
local.get 0
i32.const 14
local.get 3
local.get 3
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 4
i32.shl
local.tee 3
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 6
local.get 4
i32.or
local.get 3
local.get 6
i32.shl
local.tee 4
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 3
i32.or
i32.sub
local.get 4
local.get 3
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 4
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 4
i32.const 1
i32.shl
i32.or
local.set 4
end
local.get 5
local.get 4
i32.store offset=28
local.get 5
i64.const 0
i64.store offset=16 align=4
local.get 4
i32.const 2
i32.shl
i32.const 1328
i32.add
local.set 3
i32.const 0
i32.load offset=1028
local.tee 6
i32.const 1
local.get 4
i32.shl
local.tee 9
i32.and
i32.eqz
br_if 2 (;@7;)
local.get 0
i32.const 0
i32.const 25
local.get 4
i32.const 1
i32.shr_u
i32.sub
local.get 4
i32.const 31
i32.eq
select
i32.shl
local.set 4
local.get 3
i32.load
local.set 6
loop ;; label = @10
local.get 6
local.tee 3
i32.load offset=4
i32.const -8
i32.and
local.get 0
i32.eq
br_if 5 (;@5;)
local.get 4
i32.const 29
i32.shr_u
local.set 6
local.get 4
i32.const 1
i32.shl
local.set 4
local.get 3
local.get 6
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 9
i32.load
local.tee 6
br_if 0 (;@10;)
end
local.get 9
local.get 5
i32.store
local.get 5
local.get 3
i32.store offset=24
br 3 (;@6;)
end
i32.const 0
local.get 3
local.get 4
i32.or
i32.store offset=1024
local.get 0
local.set 4
end
local.get 4
local.get 5
i32.store offset=12
local.get 0
local.get 5
i32.store offset=8
local.get 5
local.get 0
i32.store offset=12
local.get 5
local.get 4
i32.store offset=8
br 3 (;@4;)
end
local.get 3
local.get 5
i32.store
i32.const 0
local.get 6
local.get 9
i32.or
i32.store offset=1028
local.get 5
local.get 3
i32.store offset=24
end
local.get 5
local.get 5
i32.store offset=12
local.get 5
local.get 5
i32.store offset=8
br 1 (;@4;)
end
local.get 3
i32.load offset=8
local.tee 0
local.get 5
i32.store offset=12
local.get 3
local.get 5
i32.store offset=8
local.get 5
i32.const 0
i32.store offset=24
local.get 5
local.get 3
i32.store offset=12
local.get 5
local.get 0
i32.store offset=8
end
local.get 2
i32.const 8
i32.add
local.set 0
br 2 (;@1;)
end
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 9
local.get 9
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1328
i32.add
local.tee 0
i32.load
i32.eq
br_if 0 (;@5;)
local.get 10
i32.const 16
i32.const 20
local.get 10
i32.load offset=16
local.get 9
i32.eq
select
i32.add
local.get 6
i32.store
local.get 6
br_if 1 (;@4;)
br 3 (;@2;)
end
local.get 0
local.get 6
i32.store
local.get 6
i32.eqz
br_if 1 (;@3;)
end
local.get 6
local.get 10
i32.store offset=24
block ;; label = @4
local.get 9
i32.load offset=16
local.tee 0
i32.eqz
br_if 0 (;@4;)
local.get 6
local.get 0
i32.store offset=16
local.get 0
local.get 6
i32.store offset=24
end
local.get 9
i32.const 20
i32.add
i32.load
local.tee 0
i32.eqz
br_if 1 (;@2;)
local.get 6
i32.const 20
i32.add
local.get 0
i32.store
local.get 0
local.get 6
i32.store offset=24
br 1 (;@2;)
end
i32.const 0
local.get 7
i32.const -2
local.get 4
i32.rotl
i32.and
local.tee 7
i32.store offset=1028
end
block ;; label = @2
block ;; label = @3
local.get 5
i32.const 15
i32.gt_u
br_if 0 (;@3;)
local.get 9
local.get 5
local.get 3
i32.add
local.tee 0
i32.const 3
i32.or
i32.store offset=4
local.get 9
local.get 0
i32.add
local.tee 0
local.get 0
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
br 1 (;@2;)
end
local.get 8
local.get 5
i32.const 1
i32.or
i32.store offset=4
local.get 9
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 8
local.get 5
i32.add
local.get 5
i32.store
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
local.get 5
i32.const 255
i32.gt_u
br_if 0 (;@7;)
local.get 5
i32.const 3
i32.shr_u
local.tee 4
i32.const 3
i32.shl
i32.const 1064
i32.add
local.set 0
i32.const 0
i32.load offset=1024
local.tee 5
i32.const 1
local.get 4
i32.shl
local.tee 4
i32.and
i32.eqz
br_if 1 (;@6;)
local.get 0
i32.load offset=8
local.set 4
br 2 (;@5;)
end
local.get 5
i32.const 8
i32.shr_u
local.tee 4
i32.eqz
br_if 2 (;@4;)
i32.const 31
local.set 0
local.get 5
i32.const 16777215
i32.gt_u
br_if 3 (;@3;)
local.get 5
i32.const 14
local.get 4
local.get 4
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 0
i32.shl
local.tee 4
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 3
local.get 0
i32.or
local.get 4
local.get 3
i32.shl
local.tee 0
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
i32.sub
local.get 0
local.get 4
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 0
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 0
i32.const 1
i32.shl
i32.or
local.set 0
br 3 (;@3;)
end
i32.const 0
local.get 5
local.get 4
i32.or
i32.store offset=1024
local.get 0
local.set 4
end
local.get 4
local.get 8
i32.store offset=12
local.get 0
local.get 8
i32.store offset=8
local.get 8
local.get 0
i32.store offset=12
local.get 8
local.get 4
i32.store offset=8
br 2 (;@2;)
end
i32.const 0
local.set 0
end
local.get 8
local.get 0
i32.store offset=28
local.get 8
i64.const 0
i64.store offset=16 align=4
local.get 0
i32.const 2
i32.shl
i32.const 1328
i32.add
local.set 4
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 7
i32.const 1
local.get 0
i32.shl
local.tee 3
i32.and
i32.eqz
br_if 0 (;@5;)
local.get 5
i32.const 0
i32.const 25
local.get 0
i32.const 1
i32.shr_u
i32.sub
local.get 0
i32.const 31
i32.eq
select
i32.shl
local.set 0
local.get 4
i32.load
local.set 3
loop ;; label = @6
local.get 3
local.tee 4
i32.load offset=4
i32.const -8
i32.and
local.get 5
i32.eq
br_if 3 (;@3;)
local.get 0
i32.const 29
i32.shr_u
local.set 3
local.get 0
i32.const 1
i32.shl
local.set 0
local.get 4
local.get 3
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 6
i32.load
local.tee 3
br_if 0 (;@6;)
end
local.get 6
local.get 8
i32.store
local.get 8
local.get 4
i32.store offset=24
br 1 (;@4;)
end
local.get 4
local.get 8
i32.store
i32.const 0
local.get 7
local.get 3
i32.or
i32.store offset=1028
local.get 8
local.get 4
i32.store offset=24
end
local.get 8
local.get 8
i32.store offset=12
local.get 8
local.get 8
i32.store offset=8
br 1 (;@2;)
end
local.get 4
i32.load offset=8
local.tee 0
local.get 8
i32.store offset=12
local.get 4
local.get 8
i32.store offset=8
local.get 8
i32.const 0
i32.store offset=24
local.get 8
local.get 4
i32.store offset=12
local.get 8
local.get 0
i32.store offset=8
end
local.get 9
i32.const 8
i32.add
local.set 0
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $free (type 3) (param i32)
local.get 0
call $dlfree)
(func $dlfree (type 3) (param i32)
(local i32 i32 i32 i32 i32 i32 i32)
block ;; label = @1
block ;; label = @2
local.get 0
i32.eqz
br_if 0 (;@2;)
local.get 0
i32.const -8
i32.add
local.tee 1
local.get 0
i32.const -4
i32.add
i32.load
local.tee 2
i32.const -8
i32.and
local.tee 0
i32.add
local.set 3
block ;; label = @3
block ;; label = @4
local.get 2
i32.const 1
i32.and
br_if 0 (;@4;)
local.get 2
i32.const 3
i32.and
i32.eqz
br_if 2 (;@2;)
local.get 1
local.get 1
i32.load
local.tee 2
i32.sub
local.tee 1
i32.const 0
i32.load offset=1040
i32.lt_u
br_if 2 (;@2;)
local.get 2
local.get 0
i32.add
local.set 0
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
i32.const 0
i32.load offset=1044
local.get 1
i32.eq
br_if 0 (;@9;)
local.get 2
i32.const 255
i32.gt_u
br_if 1 (;@8;)
local.get 1
i32.load offset=12
local.tee 4
local.get 1
i32.load offset=8
local.tee 5
i32.eq
br_if 2 (;@7;)
local.get 4
local.get 5
i32.store offset=8
local.get 5
local.get 4
i32.store offset=12
local.get 1
local.get 3
i32.lt_u
br_if 6 (;@3;)
br 7 (;@2;)
end
local.get 3
i32.load offset=4
local.tee 2
i32.const 3
i32.and
i32.const 3
i32.ne
br_if 4 (;@4;)
local.get 3
i32.const 4
i32.add
local.get 2
i32.const -2
i32.and
i32.store
i32.const 0
local.get 0
i32.store offset=1032
local.get 1
local.get 0
i32.add
local.get 0
i32.store
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
return
end
local.get 1
i32.load offset=24
local.set 6
local.get 1
i32.load offset=12
local.tee 5
local.get 1
i32.eq
br_if 1 (;@6;)
local.get 1
i32.load offset=8
local.tee 2
local.get 5
i32.store offset=12
local.get 5
local.get 2
i32.store offset=8
local.get 6
br_if 2 (;@5;)
br 3 (;@4;)
end
i32.const 0
i32.const 0
i32.load offset=1024
i32.const -2
local.get 2
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1024
local.get 1
local.get 3
i32.lt_u
br_if 3 (;@3;)
br 4 (;@2;)
end
block ;; label = @6
block ;; label = @7
local.get 1
i32.const 20
i32.add
local.tee 2
i32.load
local.tee 4
br_if 0 (;@7;)
local.get 1
i32.const 16
i32.add
local.tee 2
i32.load
local.tee 4
i32.eqz
br_if 1 (;@6;)
end
loop ;; label = @7
local.get 2
local.set 7
local.get 4
local.tee 5
i32.const 20
i32.add
local.tee 2
i32.load
local.tee 4
br_if 0 (;@7;)
local.get 5
i32.const 16
i32.add
local.set 2
local.get 5
i32.load offset=16
local.tee 4
br_if 0 (;@7;)
end
local.get 7
i32.const 0
i32.store
local.get 6
i32.eqz
br_if 2 (;@4;)
br 1 (;@5;)
end
i32.const 0
local.set 5
local.get 6
i32.eqz
br_if 1 (;@4;)
end
block ;; label = @5
block ;; label = @6
block ;; label = @7
local.get 1
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1328
i32.add
local.tee 2
i32.load
local.get 1
i32.eq
br_if 0 (;@7;)
local.get 6
i32.const 16
i32.const 20
local.get 6
i32.load offset=16
local.get 1
i32.eq
select
i32.add
local.get 5
i32.store
local.get 5
br_if 1 (;@6;)
br 3 (;@4;)
end
local.get 2
local.get 5
i32.store
local.get 5
i32.eqz
br_if 1 (;@5;)
end
local.get 5
local.get 6
i32.store offset=24
block ;; label = @6
local.get 1
i32.load offset=16
local.tee 2
i32.eqz
br_if 0 (;@6;)
local.get 5
local.get 2
i32.store offset=16
local.get 2
local.get 5
i32.store offset=24
end
local.get 1
i32.const 20
i32.add
i32.load
local.tee 2
i32.eqz
br_if 1 (;@4;)
local.get 5
i32.const 20
i32.add
local.get 2
i32.store
local.get 2
local.get 5
i32.store offset=24
local.get 1
local.get 3
i32.lt_u
br_if 2 (;@3;)
br 3 (;@2;)
end
i32.const 0
i32.const 0
i32.load offset=1028
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1028
end
local.get 1
local.get 3
i32.ge_u
br_if 1 (;@2;)
end
local.get 3
i32.load offset=4
local.tee 2
i32.const 1
i32.and
i32.eqz
br_if 0 (;@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 2
i32.const 2
i32.and
br_if 0 (;@11;)
i32.const 0
i32.load offset=1048
local.get 3
i32.eq
br_if 1 (;@10;)
i32.const 0
i32.load offset=1044
local.get 3
i32.eq
br_if 2 (;@9;)
local.get 2
i32.const -8
i32.and
local.get 0
i32.add
local.set 0
local.get 2
i32.const 255
i32.gt_u
br_if 3 (;@8;)
local.get 3
i32.load offset=12
local.tee 4
local.get 3
i32.load offset=8
local.tee 5
i32.eq
br_if 4 (;@7;)
local.get 4
local.get 5
i32.store offset=8
local.get 5
local.get 4
i32.store offset=12
br 7 (;@4;)
end
local.get 3
i32.const 4
i32.add
local.get 2
i32.const -2
i32.and
i32.store
local.get 1
local.get 0
i32.add
local.get 0
i32.store
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
br 7 (;@3;)
end
i32.const 0
local.get 1
i32.store offset=1048
i32.const 0
i32.const 0
i32.load offset=1036
local.get 0
i32.add
local.tee 0
i32.store offset=1036
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
local.get 1
i32.const 0
i32.load offset=1044
i32.ne
br_if 7 (;@2;)
i32.const 0
i32.const 0
i32.store offset=1032
i32.const 0
i32.const 0
i32.store offset=1044
return
end
i32.const 0
local.get 1
i32.store offset=1044
i32.const 0
i32.const 0
i32.load offset=1032
local.get 0
i32.add
local.tee 0
i32.store offset=1032
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
local.get 1
local.get 0
i32.add
local.get 0
i32.store
return
end
local.get 3
i32.load offset=24
local.set 6
local.get 3
i32.load offset=12
local.tee 5
local.get 3
i32.eq
br_if 1 (;@6;)
local.get 3
i32.load offset=8
local.tee 2
local.get 5
i32.store offset=12
local.get 5
local.get 2
i32.store offset=8
local.get 6
br_if 2 (;@5;)
br 3 (;@4;)
end
i32.const 0
i32.const 0
i32.load offset=1024
i32.const -2
local.get 2
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1024
br 2 (;@4;)
end
block ;; label = @6
block ;; label = @7
local.get 3
i32.const 20
i32.add
local.tee 2
i32.load
local.tee 4
br_if 0 (;@7;)
local.get 3
i32.const 16
i32.add
local.tee 2
i32.load
local.tee 4
i32.eqz
br_if 1 (;@6;)
end
loop ;; label = @7
local.get 2
local.set 7
local.get 4
local.tee 5
i32.const 20
i32.add
local.tee 2
i32.load
local.tee 4
br_if 0 (;@7;)
local.get 5
i32.const 16
i32.add
local.set 2
local.get 5
i32.load offset=16
local.tee 4
br_if 0 (;@7;)
end
local.get 7
i32.const 0
i32.store
local.get 6
i32.eqz
br_if 2 (;@4;)
br 1 (;@5;)
end
i32.const 0
local.set 5
local.get 6
i32.eqz
br_if 1 (;@4;)
end
block ;; label = @5
block ;; label = @6
block ;; label = @7
local.get 3
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1328
i32.add
local.tee 2
i32.load
local.get 3
i32.eq
br_if 0 (;@7;)
local.get 6
i32.const 16
i32.const 20
local.get 6
i32.load offset=16
local.get 3
i32.eq
select
i32.add
local.get 5
i32.store
local.get 5
br_if 1 (;@6;)
br 3 (;@4;)
end
local.get 2
local.get 5
i32.store
local.get 5
i32.eqz
br_if 1 (;@5;)
end
local.get 5
local.get 6
i32.store offset=24
block ;; label = @6
local.get 3
i32.load offset=16
local.tee 2
i32.eqz
br_if 0 (;@6;)
local.get 5
local.get 2
i32.store offset=16
local.get 2
local.get 5
i32.store offset=24
end
local.get 3
i32.const 20
i32.add
i32.load
local.tee 2
i32.eqz
br_if 1 (;@4;)
local.get 5
i32.const 20
i32.add
local.get 2
i32.store
local.get 2
local.get 5
i32.store offset=24
br 1 (;@4;)
end
i32.const 0
i32.const 0
i32.load offset=1028
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1028
end
local.get 1
local.get 0
i32.add
local.get 0
i32.store
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
local.get 1
i32.const 0
i32.load offset=1044
i32.ne
br_if 0 (;@3;)
i32.const 0
local.get 0
i32.store offset=1032
return
end
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
local.get 0
i32.const 255
i32.gt_u
br_if 0 (;@9;)
local.get 0
i32.const 3
i32.shr_u
local.tee 2
i32.const 3
i32.shl
i32.const 1064
i32.add
local.set 0
i32.const 0
i32.load offset=1024
local.tee 4
i32.const 1
local.get 2
i32.shl
local.tee 2
i32.and
i32.eqz
br_if 1 (;@8;)
local.get 0
i32.load offset=8
local.set 2
br 2 (;@7;)
end
i32.const 0
local.set 2
block ;; label = @9
local.get 0
i32.const 8
i32.shr_u
local.tee 4
i32.eqz
br_if 0 (;@9;)
i32.const 31
local.set 2
local.get 0
i32.const 16777215
i32.gt_u
br_if 0 (;@9;)
local.get 0
i32.const 14
local.get 4
local.get 4
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 2
i32.shl
local.tee 4
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 5
local.get 2
i32.or
local.get 4
local.get 5
i32.shl
local.tee 2
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
i32.sub
local.get 2
local.get 4
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 2
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 2
i32.const 1
i32.shl
i32.or
local.set 2
end
local.get 1
i64.const 0
i64.store offset=16 align=4
local.get 1
i32.const 28
i32.add
local.get 2
i32.store
local.get 2
i32.const 2
i32.shl
i32.const 1328
i32.add
local.set 4
i32.const 0
i32.load offset=1028
local.tee 5
i32.const 1
local.get 2
i32.shl
local.tee 3
i32.and
i32.eqz
br_if 2 (;@6;)
local.get 0
i32.const 0
i32.const 25
local.get 2
i32.const 1
i32.shr_u
i32.sub
local.get 2
i32.const 31
i32.eq
select
i32.shl
local.set 2
local.get 4
i32.load
local.set 5
loop ;; label = @9
local.get 5
local.tee 4
i32.load offset=4
i32.const -8
i32.and
local.get 0
i32.eq
br_if 5 (;@4;)
local.get 2
i32.const 29
i32.shr_u
local.set 5
local.get 2
i32.const 1
i32.shl
local.set 2
local.get 4
local.get 5
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 3
i32.load
local.tee 5
br_if 0 (;@9;)
end
local.get 3
local.get 1
i32.store
local.get 1
i32.const 24
i32.add
local.get 4
i32.store
br 3 (;@5;)
end
i32.const 0
local.get 4
local.get 2
i32.or
i32.store offset=1024
local.get 0
local.set 2
end
local.get 2
local.get 1
i32.store offset=12
local.get 0
local.get 1
i32.store offset=8
local.get 1
local.get 0
i32.store offset=12
local.get 1
local.get 2
i32.store offset=8
return
end
local.get 4
local.get 1
i32.store
i32.const 0
local.get 5
local.get 3
i32.or
i32.store offset=1028
local.get 1
i32.const 24
i32.add
local.get 4
i32.store
end
local.get 1
local.get 1
i32.store offset=12
local.get 1
local.get 1
i32.store offset=8
br 1 (;@3;)
end
local.get 4
i32.load offset=8
local.tee 0
local.get 1
i32.store offset=12
local.get 4
local.get 1
i32.store offset=8
local.get 1
i32.const 24
i32.add
i32.const 0
i32.store
local.get 1
local.get 4
i32.store offset=12
local.get 1
local.get 0
i32.store offset=8
end
i32.const 0
i32.const 0
i32.load offset=1056
i32.const -1
i32.add
local.tee 1
i32.store offset=1056
local.get 1
i32.eqz
br_if 1 (;@1;)
end
return
end
i32.const 1480
local.set 1
loop ;; label = @1
local.get 1
i32.load
local.tee 0
i32.const 8
i32.add
local.set 1
local.get 0
br_if 0 (;@1;)
end
i32.const 0
i32.const -1
i32.store offset=1056)
(func $calloc (type 1) (param i32 i32) (result i32)
(local i32)
block ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 0
i32.eqz
br_if 0 (;@3;)
local.get 1
local.get 0
i32.mul
local.set 2
block ;; label = @4
local.get 1
local.get 0
i32.or
i32.const 65536
i32.lt_u
br_if 0 (;@4;)
local.get 2
i32.const -1
local.get 2
local.get 0
i32.div_u
local.get 1
i32.eq
select
local.set 2
end
local.get 2
call $dlmalloc
local.tee 0
br_if 1 (;@2;)
br 2 (;@1;)
end
i32.const 0
local.set 2
i32.const 0
call $dlmalloc
local.tee 0
i32.eqz
br_if 1 (;@1;)
end
local.get 0
i32.const -4
i32.add
i32.load8_u
i32.const 3
i32.and
i32.eqz
br_if 0 (;@1;)
local.get 0
i32.const 0
local.get 2
call $memset
drop
end
local.get 0)
(func $realloc (type 1) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
block ;; label = @1
block ;; label = @2
local.get 0
i32.eqz
br_if 0 (;@2;)
local.get 1
i32.const -64
i32.lt_u
br_if 1 (;@1;)
i32.const 0
i32.const 48
i32.store offset=1520
i32.const 0
return
end
local.get 1
call $dlmalloc
return
end
i32.const 16
local.get 1
i32.const 11
i32.add
i32.const -8
i32.and
local.get 1
i32.const 11
i32.lt_u
select
local.set 2
local.get 0
i32.const -4
i32.add
local.tee 3
i32.load
local.tee 4
i32.const -8
i32.and
local.set 5
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @13
local.get 4
i32.const 3
i32.and
i32.eqz
br_if 0 (;@13;)
local.get 0
i32.const -8
i32.add
local.tee 6
local.get 5
i32.add
local.set 7
local.get 5
local.get 2
i32.ge_u
br_if 1 (;@12;)
i32.const 0
i32.load offset=1048
local.get 7
i32.eq
br_if 2 (;@11;)
i32.const 0
i32.load offset=1044
local.get 7
i32.eq
br_if 3 (;@10;)
local.get 7
i32.load offset=4
local.tee 8
i32.const 2
i32.and
br_if 4 (;@9;)
local.get 8
i32.const -8
i32.and
local.get 5
i32.add
local.tee 9
local.get 2
i32.lt_u
br_if 4 (;@9;)
local.get 9
local.get 2
i32.sub
local.set 10
local.get 8
i32.const 255
i32.gt_u
br_if 8 (;@5;)
local.get 7
i32.load offset=12
local.tee 1
local.get 7
i32.load offset=8
local.tee 5
i32.eq
br_if 9 (;@4;)
local.get 1
local.get 5
i32.store offset=8
local.get 5
local.get 1
i32.store offset=12
br 12 (;@1;)
end
local.get 2
i32.const 256
i32.lt_u
br_if 3 (;@9;)
local.get 5
local.get 2
i32.const 4
i32.or
i32.lt_u
br_if 3 (;@9;)
local.get 5
local.get 2
i32.sub
i32.const 0
i32.load offset=1504
i32.const 1
i32.shl
i32.gt_u
br_if 3 (;@9;)
br 4 (;@8;)
end
local.get 5
local.get 2
i32.sub
local.tee 1
i32.const 16
i32.lt_u
br_if 3 (;@8;)
local.get 3
local.get 2
local.get 4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 2
i32.add
local.tee 2
local.get 1
i32.const 3
i32.or
i32.store offset=4
local.get 7
local.get 7
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 2
local.get 1
call $dispose_chunk
local.get 0
return
end
i32.const 0
i32.load offset=1036
local.get 5
i32.add
local.tee 5
local.get 2
i32.le_u
br_if 1 (;@9;)
local.get 3
local.get 2
local.get 4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
i32.const 0
local.get 6
local.get 2
i32.add
local.tee 1
i32.store offset=1048
i32.const 0
local.get 5
local.get 2
i32.sub
local.tee 2
i32.store offset=1036
local.get 1
local.get 2
i32.const 1
i32.or
i32.store offset=4
local.get 0
return
end
i32.const 0
i32.load offset=1032
local.get 5
i32.add
local.tee 5
local.get 2
i32.ge_u
br_if 3 (;@6;)
end
local.get 1
call $dlmalloc
local.tee 2
i32.eqz
br_if 1 (;@7;)
local.get 2
local.get 0
local.get 3
i32.load
local.tee 5
i32.const -8
i32.and
i32.const 4
i32.const 8
local.get 5
i32.const 3
i32.and
select
i32.sub
local.tee 5
local.get 1
local.get 5
local.get 1
i32.lt_u
select
call $memcpy
drop
local.get 0
call $dlfree
local.get 2
local.set 0
end
local.get 0
return
end
i32.const 0
return
end
block ;; label = @6
block ;; label = @7
local.get 5
local.get 2
i32.sub
local.tee 1
i32.const 16
i32.lt_u
br_if 0 (;@7;)
local.get 3
local.get 2
local.get 4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 2
i32.add
local.tee 2
local.get 1
i32.const 1
i32.or
i32.store offset=4
local.get 6
local.get 5
i32.add
local.tee 5
local.get 1
i32.store
local.get 5
local.get 5
i32.load offset=4
i32.const -2
i32.and
i32.store offset=4
br 1 (;@6;)
end
local.get 3
local.get 4
i32.const 1
i32.and
local.get 5
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 5
i32.add
local.tee 1
local.get 1
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
i32.const 0
local.set 1
i32.const 0
local.set 2
end
i32.const 0
local.get 2
i32.store offset=1044
i32.const 0
local.get 1
i32.store offset=1032
local.get 0
return
end
local.get 7
i32.load offset=24
local.set 11
local.get 7
i32.load offset=12
local.tee 8
local.get 7
i32.eq
br_if 1 (;@3;)
local.get 7
i32.load offset=8
local.tee 1
local.get 8
i32.store offset=12
local.get 8
local.get 1
i32.store offset=8
local.get 11
br_if 2 (;@2;)
br 3 (;@1;)
end
i32.const 0
i32.const 0
i32.load offset=1024
i32.const -2
local.get 8
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1024
br 2 (;@1;)
end
block ;; label = @3
block ;; label = @4
local.get 7
i32.const 20
i32.add
local.tee 1
i32.load
local.tee 5
br_if 0 (;@4;)
local.get 7
i32.const 16
i32.add
local.tee 1
i32.load
local.tee 5
i32.eqz
br_if 1 (;@3;)
end
loop ;; label = @4
local.get 1
local.set 12
local.get 5
local.tee 8
i32.const 20
i32.add
local.tee 1
i32.load
local.tee 5
br_if 0 (;@4;)
local.get 8
i32.const 16
i32.add
local.set 1
local.get 8
i32.load offset=16
local.tee 5
br_if 0 (;@4;)
end
local.get 12
i32.const 0
i32.store
local.get 11
i32.eqz
br_if 2 (;@1;)
br 1 (;@2;)
end
i32.const 0
local.set 8
local.get 11
i32.eqz
br_if 1 (;@1;)
end
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 7
i32.load offset=28
local.tee 5
i32.const 2
i32.shl
i32.const 1328
i32.add
local.tee 1
i32.load
local.get 7
i32.eq
br_if 0 (;@4;)
local.get 11
i32.const 16
i32.const 20
local.get 11
i32.load offset=16
local.get 7
i32.eq
select
i32.add
local.get 8
i32.store
local.get 8
br_if 1 (;@3;)
br 3 (;@1;)
end
local.get 1
local.get 8
i32.store
local.get 8
i32.eqz
br_if 1 (;@2;)
end
local.get 8
local.get 11
i32.store offset=24
block ;; label = @3
local.get 7
i32.load offset=16
local.tee 1
i32.eqz
br_if 0 (;@3;)
local.get 8
local.get 1
i32.store offset=16
local.get 1
local.get 8
i32.store offset=24
end
local.get 7
i32.const 20
i32.add
i32.load
local.tee 1
i32.eqz
br_if 1 (;@1;)
local.get 8
i32.const 20
i32.add
local.get 1
i32.store
local.get 1
local.get 8
i32.store offset=24
br 1 (;@1;)
end
i32.const 0
i32.const 0
i32.load offset=1028
i32.const -2
local.get 5
i32.rotl
i32.and
i32.store offset=1028
end
block ;; label = @1
local.get 10
i32.const 15
i32.gt_u
br_if 0 (;@1;)
local.get 3
local.get 4
i32.const 1
i32.and
local.get 9
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 9
i32.add
local.tee 1
local.get 1
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 0
return
end
local.get 3
local.get 2
local.get 4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 2
i32.add
local.tee 1
local.get 10
i32.const 3
i32.or
i32.store offset=4
local.get 6
local.get 9
i32.add
local.tee 2
local.get 2
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 1
local.get 10
call $dispose_chunk
local.get 0)
(func $dispose_chunk (type 11) (param i32 i32)
(local i32 i32 i32 i32 i32 i32)
local.get 0
local.get 1
i32.add
local.set 2
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
local.get 0
i32.load offset=4
local.tee 3
i32.const 1
i32.and
br_if 0 (;@10;)
local.get 3
i32.const 3
i32.and
i32.eqz
br_if 1 (;@9;)
local.get 0
i32.load
local.tee 3
local.get 1
i32.add
local.set 1
block ;; label = @11
block ;; label = @12
block ;; label = @13
block ;; label = @14
block ;; label = @15
i32.const 0
i32.load offset=1044
local.get 0
local.get 3
i32.sub
local.tee 0
i32.eq
br_if 0 (;@15;)
local.get 3
i32.const 255
i32.gt_u
br_if 1 (;@14;)
local.get 0
i32.load offset=12
local.tee 4
local.get 0
i32.load offset=8
local.tee 5
i32.eq
br_if 2 (;@13;)
local.get 4
local.get 5
i32.store offset=8
local.get 5
local.get 4
i32.store offset=12
br 5 (;@10;)
end
local.get 2
i32.load offset=4
local.tee 3
i32.const 3
i32.and
i32.const 3
i32.ne
br_if 4 (;@10;)
local.get 2
i32.const 4
i32.add
local.get 3
i32.const -2
i32.and
i32.store
i32.const 0
local.get 1
i32.store offset=1032
local.get 2
local.get 1
i32.store
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
return
end
local.get 0
i32.load offset=24
local.set 6
local.get 0
i32.load offset=12
local.tee 5
local.get 0
i32.eq
br_if 1 (;@12;)
local.get 0
i32.load offset=8
local.tee 3
local.get 5
i32.store offset=12
local.get 5
local.get 3
i32.store offset=8
local.get 6
br_if 2 (;@11;)
br 3 (;@10;)
end
i32.const 0
i32.const 0
i32.load offset=1024
i32.const -2
local.get 3
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1024
br 2 (;@10;)
end
block ;; label = @12
block ;; label = @13
local.get 0
i32.const 20
i32.add
local.tee 3
i32.load
local.tee 4
br_if 0 (;@13;)
local.get 0
i32.const 16
i32.add
local.tee 3
i32.load
local.tee 4
i32.eqz
br_if 1 (;@12;)
end
loop ;; label = @13
local.get 3
local.set 7
local.get 4
local.tee 5
i32.const 20
i32.add
local.tee 3
i32.load
local.tee 4
br_if 0 (;@13;)
local.get 5
i32.const 16
i32.add
local.set 3
local.get 5
i32.load offset=16
local.tee 4
br_if 0 (;@13;)
end
local.get 7
i32.const 0
i32.store
local.get 6
i32.eqz
br_if 2 (;@10;)
br 1 (;@11;)
end
i32.const 0
local.set 5
local.get 6
i32.eqz
br_if 1 (;@10;)
end
block ;; label = @11
block ;; label = @12
block ;; label = @13
local.get 0
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1328
i32.add
local.tee 3
i32.load
local.get 0
i32.eq
br_if 0 (;@13;)
local.get 6
i32.const 16
i32.const 20
local.get 6
i32.load offset=16
local.get 0
i32.eq
select
i32.add
local.get 5
i32.store
local.get 5
br_if 1 (;@12;)
br 3 (;@10;)
end
local.get 3
local.get 5
i32.store
local.get 5
i32.eqz
br_if 1 (;@11;)
end
local.get 5
local.get 6
i32.store offset=24
block ;; label = @12
local.get 0
i32.load offset=16
local.tee 3
i32.eqz
br_if 0 (;@12;)
local.get 5
local.get 3
i32.store offset=16
local.get 3
local.get 5
i32.store offset=24
end
local.get 0
i32.const 20
i32.add
i32.load
local.tee 3
i32.eqz
br_if 1 (;@10;)
local.get 5
i32.const 20
i32.add
local.get 3
i32.store
local.get 3
local.get 5
i32.store offset=24
br 1 (;@10;)
end
i32.const 0
i32.const 0
i32.load offset=1028
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1028
end
block ;; label = @10
block ;; label = @11
local.get 2
i32.load offset=4
local.tee 3
i32.const 2
i32.and
br_if 0 (;@11;)
i32.const 0
i32.load offset=1048
local.get 2
i32.eq
br_if 1 (;@10;)
i32.const 0
i32.load offset=1044
local.get 2
i32.eq
br_if 3 (;@8;)
local.get 3
i32.const -8
i32.and
local.get 1
i32.add
local.set 1
local.get 3
i32.const 255
i32.gt_u
br_if 4 (;@7;)
local.get 2
i32.load offset=12
local.tee 4
local.get 2
i32.load offset=8
local.tee 5
i32.eq
br_if 6 (;@5;)
local.get 4
local.get 5
i32.store offset=8
local.get 5
local.get 4
i32.store offset=12
br 9 (;@2;)
end
local.get 2
i32.const 4
i32.add
local.get 3
i32.const -2
i32.and
i32.store
local.get 0
local.get 1
i32.add
local.get 1
i32.store
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
br 9 (;@1;)
end
i32.const 0
local.get 0
i32.store offset=1048
i32.const 0
i32.const 0
i32.load offset=1036
local.get 1
i32.add
local.tee 1
i32.store offset=1036
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
local.get 0
i32.const 0
i32.load offset=1044
i32.eq
br_if 3 (;@6;)
end
return
end
i32.const 0
local.get 0
i32.store offset=1044
i32.const 0
i32.const 0
i32.load offset=1032
local.get 1
i32.add
local.tee 1
i32.store offset=1032
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
local.get 0
local.get 1
i32.add
local.get 1
i32.store
return
end
local.get 2
i32.load offset=24
local.set 6
local.get 2
i32.load offset=12
local.tee 5
local.get 2
i32.eq
br_if 2 (;@4;)
local.get 2
i32.load offset=8
local.tee 3
local.get 5
i32.store offset=12
local.get 5
local.get 3
i32.store offset=8
local.get 6
br_if 3 (;@3;)
br 4 (;@2;)
end
i32.const 0
i32.const 0
i32.store offset=1032
i32.const 0
i32.const 0
i32.store offset=1044
return
end
i32.const 0
i32.const 0
i32.load offset=1024
i32.const -2
local.get 3
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1024
br 2 (;@2;)
end
block ;; label = @4
block ;; label = @5
local.get 2
i32.const 20
i32.add
local.tee 3
i32.load
local.tee 4
br_if 0 (;@5;)
local.get 2
i32.const 16
i32.add
local.tee 3
i32.load
local.tee 4
i32.eqz
br_if 1 (;@4;)
end
loop ;; label = @5
local.get 3
local.set 7
local.get 4
local.tee 5
i32.const 20
i32.add
local.tee 3
i32.load
local.tee 4
br_if 0 (;@5;)
local.get 5
i32.const 16
i32.add
local.set 3
local.get 5
i32.load offset=16
local.tee 4
br_if 0 (;@5;)
end
local.get 7
i32.const 0
i32.store
local.get 6
i32.eqz
br_if 2 (;@2;)
br 1 (;@3;)
end
i32.const 0
local.set 5
local.get 6
i32.eqz
br_if 1 (;@2;)
end
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 2
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1328
i32.add
local.tee 3
i32.load
local.get 2
i32.eq
br_if 0 (;@5;)
local.get 6
i32.const 16
i32.const 20
local.get 6
i32.load offset=16
local.get 2
i32.eq
select
i32.add
local.get 5
i32.store
local.get 5
br_if 1 (;@4;)
br 3 (;@2;)
end
local.get 3
local.get 5
i32.store
local.get 5
i32.eqz
br_if 1 (;@3;)
end
local.get 5
local.get 6
i32.store offset=24
block ;; label = @4
local.get 2
i32.load offset=16
local.tee 3
i32.eqz
br_if 0 (;@4;)
local.get 5
local.get 3
i32.store offset=16
local.get 3
local.get 5
i32.store offset=24
end
local.get 2
i32.const 20
i32.add
i32.load
local.tee 3
i32.eqz
br_if 1 (;@2;)
local.get 5
i32.const 20
i32.add
local.get 3
i32.store
local.get 3
local.get 5
i32.store offset=24
br 1 (;@2;)
end
i32.const 0
i32.const 0
i32.load offset=1028
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1028
end
local.get 0
local.get 1
i32.add
local.get 1
i32.store
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
local.get 0
i32.const 0
i32.load offset=1044
i32.ne
br_if 0 (;@1;)
i32.const 0
local.get 1
i32.store offset=1032
return
end
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 1
i32.const 255
i32.gt_u
br_if 0 (;@6;)
local.get 1
i32.const 3
i32.shr_u
local.tee 3
i32.const 3
i32.shl
i32.const 1064
i32.add
local.set 1
i32.const 0
i32.load offset=1024
local.tee 4
i32.const 1
local.get 3
i32.shl
local.tee 3
i32.and
i32.eqz
br_if 1 (;@5;)
local.get 1
i32.load offset=8
local.set 3
br 2 (;@4;)
end
i32.const 0
local.set 3
block ;; label = @6
local.get 1
i32.const 8
i32.shr_u
local.tee 4
i32.eqz
br_if 0 (;@6;)
i32.const 31
local.set 3
local.get 1
i32.const 16777215
i32.gt_u
br_if 0 (;@6;)
local.get 1
i32.const 14
local.get 4
local.get 4
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 3
i32.shl
local.tee 4
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 5
local.get 3
i32.or
local.get 4
local.get 5
i32.shl
local.tee 3
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
i32.sub
local.get 3
local.get 4
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 3
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 3
i32.const 1
i32.shl
i32.or
local.set 3
end
local.get 0
i64.const 0
i64.store offset=16 align=4
local.get 0
i32.const 28
i32.add
local.get 3
i32.store
local.get 3
i32.const 2
i32.shl
i32.const 1328
i32.add
local.set 4
i32.const 0
i32.load offset=1028
local.tee 5
i32.const 1
local.get 3
i32.shl
local.tee 2
i32.and
i32.eqz
br_if 2 (;@3;)
local.get 1
i32.const 0
i32.const 25
local.get 3
i32.const 1
i32.shr_u
i32.sub
local.get 3
i32.const 31
i32.eq
select
i32.shl
local.set 3
local.get 4
i32.load
local.set 5
loop ;; label = @6
local.get 5
local.tee 4
i32.load offset=4
i32.const -8
i32.and
local.get 1
i32.eq
br_if 5 (;@1;)
local.get 3
i32.const 29
i32.shr_u
local.set 5
local.get 3
i32.const 1
i32.shl
local.set 3
local.get 4
local.get 5
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 2
i32.load
local.tee 5
br_if 0 (;@6;)
end
local.get 2
local.get 0
i32.store
local.get 0
i32.const 24
i32.add
local.get 4
i32.store
br 3 (;@2;)
end
i32.const 0
local.get 4
local.get 3
i32.or
i32.store offset=1024
local.get 1
local.set 3
end
local.get 3
local.get 0
i32.store offset=12
local.get 1
local.get 0
i32.store offset=8
local.get 0
local.get 1
i32.store offset=12
local.get 0
local.get 3
i32.store offset=8
return
end
local.get 4
local.get 0
i32.store
i32.const 0
local.get 5
local.get 2
i32.or
i32.store offset=1028
local.get 0
i32.const 24
i32.add
local.get 4
i32.store
end
local.get 0
local.get 0
i32.store offset=12
local.get 0
local.get 0
i32.store offset=8
return
end
local.get 4
i32.load offset=8
local.tee 1
local.get 0
i32.store offset=12
local.get 4
local.get 0
i32.store offset=8
local.get 0
i32.const 24
i32.add
i32.const 0
i32.store
local.get 0
local.get 4
i32.store offset=12
local.get 0
local.get 1
i32.store offset=8)
(func $posix_memalign (type 2) (param i32 i32 i32) (result i32)
(local i32 i32)
block ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 1
i32.const 8
i32.ne
br_if 0 (;@3;)
local.get 2
call $dlmalloc
local.tee 1
i32.eqz
br_if 1 (;@2;)
br 2 (;@1;)
end
i32.const 28
local.set 3
block ;; label = @3
block ;; label = @4
local.get 1
i32.const 3
i32.and
br_if 0 (;@4;)
local.get 1
i32.const 2
i32.shr_u
local.tee 4
i32.eqz
br_if 0 (;@4;)
local.get 4
i32.const -1
i32.add
local.get 4
i32.and
br_if 0 (;@4;)
i32.const 48
local.set 3
i32.const -64
local.get 1
i32.sub
local.get 2
i32.ge_u
br_if 1 (;@3;)
end
local.get 3
return
end
local.get 1
i32.const 16
local.get 1
i32.const 16
i32.gt_u
select
local.get 2
call $internal_memalign
local.tee 1
br_if 1 (;@1;)
end
i32.const 48
return
end
local.get 0
local.get 1
i32.store
i32.const 0)
(func $internal_memalign (type 1) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32)
i32.const 16
local.set 2
block ;; label = @1
block ;; label = @2
local.get 0
i32.const 16
local.get 0
i32.const 16
i32.gt_u
select
local.tee 3
i32.const -1
i32.add
local.get 3
i32.and
i32.eqz
br_if 0 (;@2;)
loop ;; label = @3
local.get 2
local.tee 0
i32.const 1
i32.shl
local.set 2
local.get 0
local.get 3
i32.lt_u
br_if 0 (;@3;)
br 2 (;@1;)
end
end
local.get 3
local.set 0
end
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
i32.const -64
local.get 0
i32.sub
local.get 1
i32.le_u
br_if 0 (;@5;)
i32.const 16
local.get 1
i32.const 11
i32.add
i32.const -8
i32.and
local.get 1
i32.const 11
i32.lt_u
select
local.tee 1
local.get 0
i32.add
i32.const 12
i32.add
call $dlmalloc
local.tee 2
i32.eqz
br_if 1 (;@4;)
local.get 2
i32.const -8
i32.add
local.set 3
local.get 0
i32.const -1
i32.add
local.get 2
i32.and
i32.eqz
br_if 2 (;@3;)
local.get 2
i32.const -4
i32.add
local.tee 4
i32.load
local.tee 5
i32.const -8
i32.and
local.get 2
local.get 0
i32.add
i32.const -1
i32.add
i32.const 0
local.get 0
i32.sub
i32.and
i32.const -8
i32.add
local.tee 2
local.get 2
local.get 0
i32.add
local.get 2
local.get 3
i32.sub
i32.const 15
i32.gt_u
select
local.tee 0
local.get 3
i32.sub
local.tee 2
i32.sub
local.set 6
local.get 5
i32.const 3
i32.and
i32.eqz
br_if 3 (;@2;)
local.get 0
local.get 6
local.get 0
i32.load offset=4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store offset=4
local.get 0
local.get 6
i32.add
local.tee 6
local.get 6
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 4
local.get 2
local.get 4
i32.load
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 0
local.get 0
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 3
local.get 2
call $dispose_chunk
br 4 (;@1;)
end
i32.const 0
i32.const 48
i32.store offset=1520
i32.const 0
return
end
i32.const 0
return
end
local.get 3
local.set 0
br 1 (;@1;)
end
local.get 0
local.get 6
i32.store offset=4
local.get 0
local.get 3
i32.load
local.get 2
i32.add
i32.store
end
block ;; label = @1
local.get 0
i32.load offset=4
local.tee 2
i32.const 3
i32.and
i32.eqz
br_if 0 (;@1;)
local.get 2
i32.const -8
i32.and
local.tee 3
local.get 1
i32.const 16
i32.add
i32.le_u
br_if 0 (;@1;)
local.get 0
i32.const 4
i32.add
local.get 1
local.get 2
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 0
local.get 1
i32.add
local.tee 2
local.get 3
local.get 1
i32.sub
local.tee 1
i32.const 3
i32.or
i32.store offset=4
local.get 0
local.get 3
i32.add
local.tee 3
local.get 3
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 2
local.get 1
call $dispose_chunk
end
local.get 0
i32.const 8
i32.add)
(func $aligned_alloc (type 1) (param i32 i32) (result i32)
block ;; label = @1
local.get 0
i32.const 8
i32.gt_u
br_if 0 (;@1;)
local.get 1
call $dlmalloc
return
end
local.get 0
local.get 1
call $internal_memalign)
(func $malloc_usable_size (type 0) (param i32) (result i32)
(local i32 i32)
i32.const 0
local.set 1
block ;; label = @1
local.get 0
i32.eqz
br_if 0 (;@1;)
local.get 0
i32.const -4
i32.add
i32.load
local.tee 0
i32.const 3
i32.and
local.tee 2
i32.const 1
i32.eq
br_if 0 (;@1;)
local.get 0
i32.const -8
i32.and
i32.const 4
i32.const 8
local.get 2
select
i32.sub
local.set 1
end
local.get 1)
(func $_Exit (type 3) (param i32)
local.get 0
call $__wasi_proc_exit
unreachable)
(func $openat (type 12) (param i32 i32 i32 i32) (result i32)
(local i32 i32 i64 i64 i64)
global.get 0
i32.const 32
i32.sub
local.tee 4
global.set 0
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 2
i32.const 503316480
i32.and
i32.const -33554432
i32.add
i32.const 25
i32.shr_u
local.tee 5
i32.const 9
i32.gt_u
br_if 0 (;@6;)
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
i32.const 1
local.get 5
i32.shl
local.tee 5
i32.const 642
i32.and
i32.eqz
br_if 0 (;@10;)
local.get 2
i32.const 67108864
i32.and
br_if 1 (;@9;)
i64.const 0
local.set 6
i64.const -4211012
local.set 7
br 2 (;@8;)
end
local.get 5
i32.const 9
i32.and
i32.eqz
br_if 3 (;@6;)
i64.const 0
local.set 6
i64.const -4211012
local.set 7
br 2 (;@7;)
end
i64.const 16384
i64.const 2
local.get 2
i32.const 8192
i32.and
select
local.set 6
i64.const -4194626
local.set 7
end
local.get 2
i32.const 268435456
i32.and
i32.eqz
br_if 0 (;@7;)
local.get 7
i64.const 4194625
i64.or
local.set 7
local.get 6
i64.const 64
i64.const 68
local.get 2
i32.const 1
i32.and
select
i64.or
local.set 6
end
local.get 6
local.get 7
i64.and
local.get 6
i64.ne
br_if 5 (;@1;)
block ;; label = @7
local.get 0
local.get 4
i32.const 8
i32.add
call $__wasi_fd_fdstat_get
local.tee 5
i32.eqz
br_if 0 (;@7;)
i32.const 0
local.get 5
i32.store offset=1520
i32.const -1
local.set 5
br 5 (;@2;)
end
local.get 4
i32.load8_u offset=8
i32.const 3
i32.ne
br_if 1 (;@5;)
local.get 4
i64.load offset=24
local.tee 8
local.get 6
i64.and
local.get 6
i64.ne
br_if 2 (;@4;)
i32.const -1
local.set 5
local.get 0
local.get 2
i32.const 24
i32.shr_u
i32.const -1
i32.xor
i32.const 1
i32.and
local.get 1
local.get 1
call $strlen
local.get 2
i32.const 12
i32.shr_u
i32.const 4095
i32.and
local.get 8
local.get 7
i64.and
local.get 8
local.get 2
i32.const 4095
i32.and
local.get 4
i32.const 4
i32.add
call $__wasi_path_open
local.tee 2
i32.eqz
br_if 3 (;@3;)
i32.const 0
local.get 2
i32.store offset=1520
br 4 (;@2;)
end
i32.const 0
i32.const 28
i32.store offset=1520
i32.const -1
local.set 5
br 3 (;@2;)
end
i32.const 0
i32.const 54
i32.store offset=1520
i32.const -1
local.set 5
br 2 (;@2;)
end
i32.const 0
i32.const 76
i32.store offset=1520
i32.const -1
local.set 5
br 1 (;@2;)
end
local.get 4
i32.load offset=4
local.set 5
end
local.get 4
i32.const 32
i32.add
global.set 0
local.get 5
return
end
call $abort
unreachable)
(func $faccessat (type 12) (param i32 i32 i32 i32) (result i32)
(local i32 i64)
global.get 0
i32.const 80
i32.sub
local.tee 4
global.set 0
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 2
i32.const 7
i32.gt_u
br_if 0 (;@4;)
local.get 3
br_if 0 (;@4;)
local.get 0
i32.const 1
local.get 1
local.get 1
call $strlen
local.get 4
i32.const 24
i32.add
call $__wasi_path_filestat_get
local.tee 1
i32.eqz
br_if 1 (;@3;)
i32.const 0
local.get 1
i32.store offset=1520
br 2 (;@2;)
end
i32.const 0
i32.const 28
i32.store offset=1520
br 1 (;@2;)
end
i32.const 0
local.set 1
local.get 2
i32.eqz
br_if 1 (;@1;)
block ;; label = @3
local.get 0
local.get 4
call $__wasi_fd_fdstat_get
local.tee 3
br_if 0 (;@3;)
i64.const 0
local.set 5
block ;; label = @4
local.get 2
i32.const 1
i32.and
i32.eqz
br_if 0 (;@4;)
i64.const 16384
i64.const 2
local.get 4
i32.load8_u offset=40
i32.const 3
i32.eq
select
local.set 5
end
i32.const 2
local.set 3
local.get 5
local.get 2
i32.const 5
i32.shl
i32.const 64
i32.and
i64.extend_i32_u
i64.or
local.tee 5
local.get 4
i64.load offset=16
i64.and
local.get 5
i64.eq
br_if 2 (;@1;)
end
i32.const 0
local.get 3
i32.store offset=1520
end
i32.const -1
local.set 1
end
local.get 4
i32.const 80
i32.add
global.set 0
local.get 1)
(func $fstatat (type 12) (param i32 i32 i32 i32) (result i32)
(local i32 i32 i64 i64 i64 i64 i64 i64)
global.get 0
i32.const 96
i32.sub
local.tee 4
global.set 0
i32.const -1
local.set 5
block ;; label = @1
block ;; label = @2
local.get 0
local.get 3
i32.const -1
i32.xor
i32.const 1
i32.and
local.get 1
local.get 1
call $strlen
local.get 4
i32.const 8
i32.add
call $__wasi_path_filestat_get
local.tee 1
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.get 1
i32.store offset=1520
br 1 (;@1;)
end
local.get 2
i64.const 0
i64.store offset=64
i32.const 0
local.set 5
local.get 2
i32.const 0
i32.store offset=56
local.get 2
i64.const 0
i64.store offset=40
local.get 2
i64.const 0
i64.store offset=32
local.get 2
i64.const 0
i64.store offset=24
local.get 4
i32.const 88
i32.add
i64.const 0
i64.store align=4
local.get 4
i32.const 80
i32.add
i64.const 0
i64.store align=4
local.get 2
local.get 4
i64.load offset=32
i64.store offset=48
local.get 2
local.get 4
i64.load32_u offset=28
i64.store offset=16
local.get 2
local.get 4
i64.load offset=16
i64.store offset=8
local.get 2
local.get 4
i64.load offset=8
i64.store
local.get 2
local.get 4
i64.load offset=56
local.tee 6
i64.const 1000000000
i64.div_u
local.tee 7
i64.store offset=104
local.get 2
local.get 4
i64.load offset=48
local.tee 8
i64.const 1000000000
i64.div_u
local.tee 9
i64.store offset=88
local.get 2
local.get 4
i64.load offset=40
local.tee 10
i64.const 1000000000
i64.div_u
local.tee 11
i64.store offset=72
local.get 2
i32.const 112
i32.add
local.get 6
local.get 7
i64.const 1000000000
i64.mul
i64.sub
i64.store32
local.get 2
i32.const 96
i32.add
local.get 8
local.get 9
i64.const 1000000000
i64.mul
i64.sub
i64.store32
local.get 2
i32.const 80
i32.add
local.get 10
local.get 11
i64.const 1000000000
i64.mul
i64.sub
i64.store32
local.get 4
i64.const 0
i64.store offset=72 align=4
local.get 2
i32.const 140
i32.add
local.get 4
i32.const 68
i32.add
i32.const 24
i32.add
i32.load
i32.store
local.get 2
i32.const 132
i32.add
local.get 4
i32.const 84
i32.add
i64.load align=4
i64.store align=4
local.get 2
i32.const 124
i32.add
local.get 4
i32.const 76
i32.add
i64.load align=4
i64.store align=4
local.get 2
local.get 4
i64.load offset=68 align=4
i64.store offset=116 align=4
local.get 4
i32.load8_u offset=24
i32.const -1
i32.add
local.tee 1
i32.const 255
i32.and
i32.const 6
i32.gt_u
br_if 0 (;@1;)
local.get 2
i32.const 24
i32.add
local.get 1
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 2
i32.shl
i32.const 1536
i32.add
i32.load
i32.store
end
local.get 4
i32.const 96
i32.add
global.set 0
local.get 5)
(func $renameat (type 12) (param i32 i32 i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 1
local.get 1
call $strlen
local.get 2
local.get 3
local.get 3
call $strlen
call $__wasi_path_rename
local.tee 3
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 3
i32.store offset=1520
i32.const -1
return
end
i32.const 0)
(func $__wasilibc_rmfileat (type 1) (param i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 1
local.get 1
call $strlen
call $__wasi_path_unlink_file
local.tee 1
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 1
i32.store offset=1520
i32.const -1
return
end
i32.const 0)
(func $__wasilibc_rmdirat (type 1) (param i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 1
local.get 1
call $strlen
call $__wasi_path_remove_directory
local.tee 1
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 1
i32.store offset=1520
i32.const -1
return
end
i32.const 0)
(func $linkat (type 5) (param i32 i32 i32 i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 4
i32.const 1
i32.shr_u
i32.const 1
i32.and
local.get 1
local.get 1
call $strlen
local.get 2
local.get 3
local.get 3
call $strlen
call $__wasi_path_link
local.tee 3
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 3
i32.store offset=1520
i32.const -1
return
end
i32.const 0)
(func $mkdirat (type 2) (param i32 i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 1
local.get 1
call $strlen
call $__wasi_path_create_directory
local.tee 1
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 1
i32.store offset=1520
i32.const -1
return
end
i32.const 0)
(func $fdopendir (type 0) (param i32) (result i32)
(local i32 i32)
i32.const 0
local.set 1
block ;; label = @1
i32.const 40
call $malloc
local.tee 2
i32.eqz
br_if 0 (;@1;)
local.get 2
i32.const 4096
call $malloc
local.tee 1
i32.store offset=16
block ;; label = @2
block ;; label = @3
local.get 1
i32.eqz
br_if 0 (;@3;)
local.get 0
local.get 1
i32.const 4096
i64.const 0
local.get 2
i32.const 28
i32.add
call $__wasi_fd_readdir
local.tee 1
i32.eqz
br_if 1 (;@2;)
local.get 2
i32.const 16
i32.add
i32.load
call $free
local.get 2
call $free
i32.const 0
local.get 1
i32.store offset=1520
i32.const 0
return
end
local.get 2
call $free
i32.const 0
return
end
local.get 2
i64.const 4294967296
i64.store offset=32
local.get 2
i64.const 17592186044416
i64.store offset=20 align=4
local.get 2
i64.const 0
i64.store offset=8
local.get 2
local.get 0
i32.store
local.get 2
local.set 1
end
local.get 1)
(func $close (type 0) (param i32) (result i32)
block ;; label = @1
local.get 0
call $__wasi_fd_close
local.tee 0
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.store offset=1520
i32.const -1
return
end
i32.const 0)
(func $opendirat (type 1) (param i32 i32) (result i32)
(local i32)
i32.const 0
local.set 2
block ;; label = @1
block ;; label = @2
local.get 0
local.get 1
i32.const 67117060
i32.const 0
call $openat
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
call $fdopendir
local.tee 2
i32.eqz
br_if 1 (;@1;)
end
local.get 2
return
end
local.get 0
call $close
drop
i32.const 0)
(func $readlinkat (type 12) (param i32 i32 i32 i32) (result i32)
(local i32)
global.get 0
i32.const 16
i32.sub
local.tee 4
global.set 0
block ;; label = @1
block ;; label = @2
local.get 0
local.get 1
local.get 1
call $strlen
local.get 2
local.get 3
local.get 4
i32.const 12
i32.add
call $__wasi_path_readlink
local.tee 1
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.get 1
i32.store offset=1520
i32.const -1
local.set 1
br 1 (;@1;)
end
local.get 4
i32.load offset=12
local.set 1
end
local.get 4
i32.const 16
i32.add
global.set 0
local.get 1)
(func $scandirat (type 5) (param i32 i32 i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 5
global.set 0
i32.const -1
local.set 6
block ;; label = @1
local.get 0
local.get 1
i32.const 67117060
i32.const 0
call $openat
local.tee 7
i32.const -1
i32.eq
br_if 0 (;@1;)
i32.const 4096
local.set 0
block ;; label = @2
i32.const 4096
call $malloc
local.tee 8
i32.eqz
br_if 0 (;@2;)
local.get 3
i32.const 1
local.get 3
select
local.set 9
local.get 5
i32.const 4096
i32.store offset=28
i64.const 0
local.set 10
local.get 5
i32.const 16
i32.add
local.set 11
local.get 5
i32.const 8
i32.add
local.set 12
local.get 5
i32.const 20
i32.add
local.set 13
i32.const 0
local.set 14
i32.const 0
local.set 6
i32.const 0
local.set 15
i32.const 0
local.set 16
i32.const 0
local.set 17
i32.const 4096
local.set 18
i32.const 4096
local.set 1
loop ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @13
block ;; label = @14
local.get 0
local.get 18
i32.sub
local.tee 19
i32.const 23
i32.gt_u
br_if 0 (;@14;)
local.get 0
local.get 1
i32.lt_u
br_if 5 (;@9;)
local.get 8
local.set 3
local.get 1
local.set 0
br 1 (;@13;)
end
local.get 5
local.get 8
local.get 18
i32.add
local.tee 20
i32.const 24
call $memcpy
drop
local.get 11
i32.load
local.tee 0
i32.const 24
i32.add
local.set 3
local.get 0
i32.eqz
br_if 1 (;@12;)
local.get 19
local.get 3
i32.ge_u
br_if 2 (;@11;)
loop ;; label = @14
local.get 1
local.tee 0
i32.const 1
i32.shl
local.set 1
local.get 0
local.get 3
i32.lt_u
br_if 0 (;@14;)
end
local.get 8
local.get 0
call $realloc
local.tee 3
i32.eqz
br_if 5 (;@8;)
end
i32.const 0
local.set 18
local.get 7
local.get 3
local.get 0
local.get 10
local.get 5
i32.const 28
i32.add
call $__wasi_fd_readdir
local.tee 1
br_if 2 (;@10;)
local.get 3
local.set 8
local.get 0
local.set 1
local.get 5
i32.load offset=28
local.set 0
br 9 (;@3;)
end
local.get 3
local.get 18
i32.add
local.set 18
local.get 5
i32.load offset=28
local.set 0
br 8 (;@3;)
end
local.get 3
local.get 18
i32.add
local.set 18
local.get 20
i32.const 24
i32.add
local.tee 3
i32.const 0
local.get 0
call $memchr
br_if 6 (;@4;)
local.get 0
i32.const 10
i32.add
call $malloc
local.tee 0
i32.eqz
br_if 2 (;@8;)
local.get 12
i64.load
local.set 10
local.get 0
local.get 13
i32.load8_u
i32.store8 offset=8
local.get 0
local.get 10
i64.store
local.get 0
i32.const 9
i32.add
local.tee 19
local.get 3
local.get 11
i32.load
call $memcpy
drop
local.get 19
local.get 11
i32.load
i32.add
i32.const 0
i32.store8
local.get 5
i64.load
local.set 10
block ;; label = @11
local.get 0
local.get 9
call_indirect (type 0)
i32.eqz
br_if 0 (;@11;)
block ;; label = @12
local.get 6
local.get 14
i32.ne
br_if 0 (;@12;)
local.get 16
i32.const 8
local.get 14
i32.const 1
i32.shl
local.get 14
i32.const 8
i32.lt_u
select
local.tee 3
i32.const 2
i32.shl
call $realloc
local.tee 16
i32.eqz
br_if 5 (;@7;)
local.get 3
local.set 14
local.get 16
local.set 15
local.get 16
local.set 17
end
local.get 17
local.get 6
i32.const 2
i32.shl
i32.add
local.get 0
i32.store
local.get 6
i32.const 1
i32.add
local.set 6
local.get 5
i32.load offset=28
local.set 0
br 8 (;@3;)
end
local.get 0
call $free
br 6 (;@4;)
end
i32.const 0
local.get 1
i32.store offset=1520
local.get 3
local.set 8
local.get 6
local.tee 14
br_if 3 (;@6;)
br 4 (;@5;)
end
local.get 8
call $free
local.get 7
call $close
drop
local.get 16
local.get 6
i32.const 4
local.get 4
call $qsort
local.get 2
local.get 15
i32.store
br 7 (;@1;)
end
local.get 6
local.tee 14
i32.eqz
br_if 2 (;@5;)
br 1 (;@6;)
end
local.get 0
call $free
local.get 14
i32.eqz
br_if 1 (;@5;)
end
loop ;; label = @6
local.get 17
i32.load
call $free
local.get 17
i32.const 4
i32.add
local.set 17
local.get 14
i32.const -1
i32.add
local.tee 14
br_if 0 (;@6;)
end
end
local.get 15
call $free
local.get 8
call $free
local.get 7
call $close
drop
i32.const -1
local.set 6
br 3 (;@1;)
end
local.get 5
i32.load offset=28
local.set 0
br 0 (;@3;)
end
end
local.get 7
call $close
drop
end
local.get 5
i32.const 32
i32.add
global.set 0
local.get 6)
(func $sel_true (type 0) (param i32) (result i32)
i32.const 1)
(func $symlinkat (type 2) (param i32 i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 0
call $strlen
local.get 1
local.get 2
local.get 2
call $strlen
call $__wasi_path_symlink
local.tee 2
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 2
i32.store offset=1520
i32.const -1
return
end
i32.const 0)
(func $open (type 2) (param i32 i32 i32) (result i32)
(local i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 3
global.set 0
i32.const 0
local.set 4
block ;; label = @1
local.get 1
i32.const 4096
i32.and
i32.eqz
br_if 0 (;@1;)
local.get 3
local.get 2
i32.const 4
i32.add
i32.store offset=28
local.get 2
i32.load
local.set 4
end
local.get 3
i32.const 16
i32.add
local.get 0
i64.const 8192
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 3
i32.load offset=16
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
i32.load offset=20
local.set 0
local.get 3
local.get 4
i32.store
local.get 2
local.get 0
local.get 1
local.get 3
call $openat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 3
i32.const 32
i32.add
global.set 0
local.get 0)
(func $find_relative (type 13) (param i32 i32 i64 i64)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
i32.const 0
local.set 4
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
i32.const 0
i32.load offset=1524
local.tee 5
i32.eqz
br_if 0 (;@5;)
local.get 5
call $po_map_assertvalid
i32.const 0
i32.load offset=1524
local.tee 5
call $po_map_assertvalid
local.get 1
i32.eqz
br_if 3 (;@2;)
local.get 5
i32.load offset=12
local.tee 6
i32.eqz
br_if 1 (;@4;)
local.get 5
i32.load offset=4
local.set 7
i32.const 0
local.set 8
local.get 1
i32.load8_u
local.tee 9
i32.const 47
i32.eq
local.set 10
local.get 9
i32.const 46
i32.ne
local.set 11
i32.const -1
local.set 12
i32.const 0
local.set 13
loop ;; label = @6
local.get 7
local.get 8
i32.const 24
i32.mul
i32.add
local.tee 14
i32.load
local.tee 15
call $strlen
local.set 16
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @13
block ;; label = @14
block ;; label = @15
local.get 10
br_if 0 (;@15;)
block ;; label = @16
local.get 11
br_if 0 (;@16;)
local.get 1
i32.const 1
i32.add
i32.load8_u
local.tee 4
i32.eqz
br_if 1 (;@15;)
local.get 4
i32.const 47
i32.eq
br_if 1 (;@15;)
end
block ;; label = @16
local.get 16
i32.const 2
i32.lt_u
br_if 0 (;@16;)
local.get 15
i32.load8_u
local.tee 4
i32.const 46
i32.ne
br_if 4 (;@12;)
i32.const 46
local.set 4
local.get 15
i32.load8_u offset=1
i32.const 47
i32.ne
br_if 4 (;@12;)
local.get 16
i32.const -2
i32.add
local.set 16
local.get 15
i32.const 2
i32.add
local.set 15
local.get 10
i32.eqz
br_if 2 (;@14;)
br 3 (;@13;)
end
local.get 16
i32.const 1
i32.ne
br_if 0 (;@15;)
local.get 15
i32.const 1
i32.add
local.get 15
local.get 15
i32.load8_u
local.tee 4
i32.const 46
i32.eq
select
local.set 15
local.get 4
i32.const 46
i32.ne
local.set 16
local.get 10
i32.eqz
br_if 1 (;@14;)
br 2 (;@13;)
end
local.get 15
i32.eqz
br_if 9 (;@5;)
local.get 10
br_if 1 (;@13;)
end
i32.const 0
local.set 17
local.get 16
i32.eqz
br_if 5 (;@8;)
end
local.get 16
i32.eqz
br_if 1 (;@11;)
local.get 15
i32.load8_u
local.set 4
end
local.get 9
local.get 4
i32.const 255
i32.and
i32.ne
br_if 4 (;@7;)
i32.const 1
local.set 4
loop ;; label = @12
local.get 4
local.get 16
i32.ge_u
br_if 2 (;@10;)
local.get 15
local.get 4
i32.add
local.set 5
local.get 1
local.get 4
i32.add
local.set 18
local.get 4
i32.const 1
i32.add
local.set 4
local.get 18
i32.load8_u
local.get 5
i32.load8_u
i32.eq
br_if 0 (;@12;)
br 5 (;@7;)
end
end
i32.const 0
local.set 17
i32.const 0
local.set 4
br 1 (;@9;)
end
local.get 16
local.set 17
end
local.get 15
i32.const -1
i32.add
local.set 18
block ;; label = @9
loop ;; label = @10
local.get 4
local.tee 5
i32.eqz
br_if 1 (;@9;)
local.get 5
i32.const -1
i32.add
local.set 4
local.get 18
local.get 5
i32.add
i32.load8_u
i32.const 47
i32.eq
br_if 0 (;@10;)
end
end
local.get 1
local.get 5
i32.add
i32.load8_u
local.tee 4
i32.const 47
i32.eq
br_if 0 (;@8;)
local.get 4
br_if 1 (;@7;)
end
local.get 14
i64.load offset=8
i64.const -1
i64.xor
local.get 2
i64.and
i64.const 0
i64.ne
br_if 0 (;@7;)
local.get 14
i64.load offset=16
i64.const -1
i64.xor
local.get 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@7;)
local.get 14
i32.load offset=4
local.set 12
local.get 17
local.set 13
end
local.get 8
i32.const 1
i32.add
local.tee 8
local.get 6
i32.lt_u
br_if 0 (;@6;)
br 3 (;@3;)
end
end
call $abort
unreachable
end
i32.const -1
local.set 12
i32.const 0
local.set 13
end
local.get 1
local.get 13
i32.add
local.tee 4
i32.const 1
i32.add
local.get 4
local.get 4
i32.load8_u
i32.const 47
i32.eq
local.tee 5
select
i32.const 1564
local.get 4
local.get 5
i32.add
i32.load8_u
select
local.set 4
br 1 (;@1;)
end
i32.const -1
local.set 12
end
local.get 0
local.get 4
i32.store offset=4
local.get 0
local.get 12
i32.store)
(func $po_map_assertvalid (type 3) (param i32)
(local i32 i32)
block ;; label = @1
local.get 0
i32.load
i32.const 0
i32.le_s
br_if 0 (;@1;)
local.get 0
i32.load offset=12
local.tee 1
local.get 0
i32.load offset=8
local.tee 2
i32.gt_u
br_if 0 (;@1;)
local.get 0
i32.load offset=4
local.set 0
block ;; label = @2
local.get 2
i32.eqz
br_if 0 (;@2;)
local.get 0
i32.eqz
br_if 1 (;@1;)
end
block ;; label = @2
local.get 1
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.set 2
loop ;; label = @3
local.get 0
i32.load
i32.eqz
br_if 2 (;@1;)
local.get 0
i32.const 4
i32.add
i32.load
i32.const -1
i32.le_s
br_if 2 (;@1;)
local.get 0
i32.const 24
i32.add
local.set 0
local.get 2
i32.const 1
i32.add
local.tee 2
local.get 1
i32.lt_u
br_if 0 (;@3;)
end
end
return
end
call $abort
unreachable)
(func $access (type 1) (param i32 i32) (result i32)
(local 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.get 0
i64.const 262144
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
i32.const 0
call $faccessat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $eaccess (type 1) (param i32 i32) (result i32)
(local 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.get 0
i64.const 262144
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
i32.const 0
call $faccessat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $lstat (type 1) (param i32 i32) (result i32)
(local 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.get 0
i64.const 262144
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
i32.const 1
call $fstatat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $rename (type 1) (param i32 i32) (result i32)
(local 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.get 0
i64.const 65536
i64.const 0
call $find_relative
local.get 2
local.get 1
i64.const 131072
i64.const 0
call $find_relative
i32.const -1
local.set 1
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 2
i32.load
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
local.get 2
i32.load offset=12
local.get 3
local.get 2
i32.load offset=4
call $renameat
local.set 1
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 1)
(func $stat (type 1) (param i32 i32) (result i32)
(local 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.get 0
i64.const 262144
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
i32.const 1
call $fstatat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $unlink (type 0) (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
i64.const 67108864
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 1
i32.load offset=8
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 2
local.get 1
i32.load offset=12
call $__wasilibc_rmfileat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $rmdir (type 0) (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
i64.const 33554432
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 1
i32.load offset=8
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 2
local.get 1
i32.load offset=12
call $__wasilibc_rmdirat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $remove (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i64)
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
i64.const 100663296
i64.const 0
call $find_relative
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 1
i32.load offset=8
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@4;)
local.get 2
local.get 1
i32.load offset=12
local.tee 3
call $__wasilibc_rmfileat
local.tee 0
i32.eqz
br_if 1 (;@3;)
br 2 (;@2;)
end
local.get 1
local.get 0
i64.const 67108864
i64.const 0
call $find_relative
local.get 1
local.get 1
i64.load
local.tee 5
i64.store offset=8
block ;; label = @4
local.get 5
i32.wrap_i64
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@4;)
local.get 2
local.get 5
i64.const 32
i64.shr_u
i32.wrap_i64
local.tee 3
call $__wasilibc_rmfileat
local.tee 0
br_if 2 (;@2;)
br 1 (;@3;)
end
local.get 1
local.get 0
i64.const 33554432
i64.const 0
call $find_relative
local.get 1
local.get 1
i64.load
local.tee 5
i64.store offset=8
i32.const -1
local.set 0
block ;; label = @4
local.get 5
i32.wrap_i64
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@4;)
local.get 2
local.get 5
i64.const 32
i64.shr_u
i32.wrap_i64
local.tee 3
call $__wasilibc_rmfileat
local.tee 0
br_if 2 (;@2;)
br 1 (;@3;)
end
i32.const 0
i32.const 76
i32.store offset=1520
br 2 (;@1;)
end
i32.const 0
local.set 0
br 1 (;@1;)
end
block ;; label = @2
i32.const 0
i32.load offset=1520
local.tee 4
i32.const 76
i32.eq
br_if 0 (;@2;)
local.get 4
i32.const 31
i32.ne
br_if 1 (;@1;)
end
local.get 2
local.get 3
call $__wasilibc_rmdirat
local.set 0
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $link (type 1) (param i32 i32) (result i32)
(local 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.get 0
i64.const 2048
i64.const 0
call $find_relative
local.get 2
local.get 1
i64.const 4096
i64.const 0
call $find_relative
i32.const -1
local.set 1
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 2
i32.load
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
local.get 2
i32.load offset=12
local.get 3
local.get 2
i32.load offset=4
i32.const 0
call $linkat
local.set 1
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 1)
(func $mkdir (type 1) (param i32 i32) (result i32)
(local 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.get 0
i64.const 512
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
call $mkdirat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $opendir (type 0) (param i32) (result i32)
(local 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
i64.const 8192
i64.const 0
call $find_relative
block ;; label = @1
block ;; label = @2
local.get 1
i32.load offset=8
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
local.get 1
i32.load offset=12
call $opendirat
local.set 0
br 1 (;@1;)
end
i32.const 0
local.set 0
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $readlink (type 2) (param i32 i32 i32) (result i32)
(local i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 3
global.set 0
local.get 3
i32.const 8
i32.add
local.get 0
i64.const 32768
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 3
i32.load offset=8
local.tee 4
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 4
local.get 3
i32.load offset=12
local.get 1
local.get 2
call $readlinkat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 3
i32.const 16
i32.add
global.set 0
local.get 0)
(func $scandir (type 12) (param i32 i32 i32 i32) (result i32)
(local i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 4
global.set 0
local.get 4
i32.const 8
i32.add
local.get 0
i64.const 8192
i64.const 16384
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 4
i32.load offset=8
local.tee 5
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 5
local.get 4
i32.load offset=12
local.get 1
local.get 2
local.get 3
call $scandirat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 4
i32.const 16
i32.add
global.set 0
local.get 0)
(func $symlink (type 1) (param i32 i32) (result i32)
(local 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.get 1
i64.const 16777216
i64.const 0
call $find_relative
i32.const -1
local.set 1
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
local.get 3
local.get 2
i32.load offset=12
call $symlinkat
local.set 1
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1520
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 1)
(func $__wasilibc_init_preopen (type 9)
(local i32 i32)
block ;; label = @1
i32.const 16
call $malloc
local.tee 0
i32.eqz
br_if 0 (;@1;)
local.get 0
i32.const 24
i32.const 4
call $calloc
local.tee 1
i32.store offset=4
block ;; label = @2
local.get 1
i32.eqz
br_if 0 (;@2;)
local.get 0
i64.const 4
i64.store offset=8 align=4
local.get 0
i32.const 1
i32.store
local.get 0
call $po_map_assertvalid
i32.const 0
local.get 0
i32.store offset=1524
local.get 0
call $po_map_assertvalid
return
end
local.get 0
call $free
end
i32.const 0
i32.const 0
i32.store offset=1524
unreachable
unreachable)
(func $__wasilibc_register_preopened_fd (type 1) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 2
global.set 0
i32.const 0
i32.load offset=1524
call $po_map_assertvalid
i32.const -1
local.set 3
block ;; label = @1
local.get 1
i32.eqz
br_if 0 (;@1;)
i32.const 0
i32.load offset=1524
local.tee 4
call $po_map_assertvalid
local.get 0
i32.const 0
i32.lt_s
br_if 0 (;@1;)
block ;; label = @2
block ;; label = @3
local.get 4
i32.load offset=12
local.tee 5
local.get 4
i32.load offset=8
i32.ne
br_if 0 (;@3;)
i32.const 24
local.get 5
i32.const 1
i32.shl
call $calloc
local.tee 6
i32.eqz
br_if 2 (;@1;)
local.get 6
local.get 4
i32.load offset=4
local.get 4
i32.const 12
i32.add
local.tee 5
i32.load
i32.const 24
i32.mul
call $memcpy
drop
local.get 4
i32.load offset=4
call $free
local.get 4
local.get 6
i32.store offset=4
local.get 4
i32.const 8
i32.add
local.tee 7
local.get 7
i32.load
i32.const 1
i32.shl
i32.store
local.get 5
i32.load
local.set 5
br 1 (;@2;)
end
local.get 4
i32.load offset=4
local.set 6
end
local.get 4
i32.const 12
i32.add
local.get 5
i32.const 1
i32.add
i32.store
local.get 1
call $strdup
local.set 7
local.get 6
local.get 5
i32.const 24
i32.mul
i32.add
local.tee 1
local.get 0
i32.store offset=4
local.get 1
local.get 7
i32.store
block ;; label = @2
local.get 0
local.get 2
i32.const 8
i32.add
call $__wasi_fd_fdstat_get
local.tee 0
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.get 0
i32.store offset=1520
br 1 (;@1;)
end
local.get 1
local.get 2
i64.load offset=16
i64.store offset=8
local.get 1
local.get 2
i64.load offset=24
i64.store offset=16
local.get 4
call $po_map_assertvalid
local.get 4
call $po_map_assertvalid
i32.const 0
local.set 3
i32.const 0
local.get 4
i32.store offset=1524
end
local.get 2
i32.const 32
i32.add
global.set 0
local.get 3)
(func $__wasilibc_find_relpath (type 14) (param i32 i64 i64 i32) (result i32)
(local i32)
global.get 0
i32.const 16
i32.sub
local.tee 4
global.set 0
local.get 4
i32.const 8
i32.add
local.get 0
local.get 1
local.get 2
call $find_relative
local.get 3
local.get 4
i32.load offset=12
i32.store
local.get 4
i32.load offset=8
local.set 3
local.get 4
i32.const 16
i32.add
global.set 0
local.get 3)
(func $abort (type 9)
unreachable
unreachable)
(func $sbrk (type 0) (param i32) (result i32)
block ;; label = @1
local.get 0
i32.const 65535
i32.and
br_if 0 (;@1;)
local.get 0
i32.const -1
i32.le_s
br_if 0 (;@1;)
block ;; label = @2
local.get 0
i32.const 16
i32.shr_u
memory.grow
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
i32.const 16
i32.shl
return
end
i32.const 0
i32.const 48
i32.store offset=1520
i32.const -1
return
end
call $abort
unreachable)
(func $dummy (type 9))
(func $__prepare_for_exit (type 9)
call $dummy
call $dummy)
(func $exit (type 3) (param i32)
call $dummy
call $dummy
local.get 0
call $_Exit
unreachable)
(func $memchr (type 2) (param i32 i32 i32) (result i32)
(local i32 i32 i32)
local.get 2
i32.const 0
i32.ne
local.set 3
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 2
i32.eqz
br_if 0 (;@5;)
local.get 0
i32.const 3
i32.and
i32.eqz
br_if 0 (;@5;)
local.get 1
i32.const 255
i32.and
local.set 3
loop ;; label = @6
local.get 0
i32.load8_u
local.get 3
i32.eq
br_if 2 (;@4;)
local.get 2
i32.const 1
i32.ne
local.set 4
local.get 2
i32.const -1
i32.add
local.set 5
local.get 0
i32.const 1
i32.add
local.set 0
block ;; label = @7
local.get 2
i32.const 1
i32.eq
br_if 0 (;@7;)
local.get 5
local.set 2
local.get 0
i32.const 3
i32.and
br_if 1 (;@6;)
end
end
local.get 4
br_if 2 (;@3;)
br 3 (;@2;)
end
local.get 2
local.set 5
local.get 3
br_if 1 (;@3;)
br 2 (;@2;)
end
local.get 2
local.set 5
end
block ;; label = @3
local.get 0
i32.load8_u
local.get 1
i32.const 255
i32.and
i32.eq
br_if 0 (;@3;)
local.get 5
i32.const 4
i32.lt_u
br_if 0 (;@3;)
local.get 1
i32.const 255
i32.and
i32.const 16843009
i32.mul
local.set 3
loop ;; label = @4
local.get 0
i32.load
local.get 3
i32.xor
local.tee 2
i32.const -1
i32.xor
local.get 2
i32.const -16843009
i32.add
i32.and
i32.const -2139062144
i32.and
br_if 1 (;@3;)
local.get 0
i32.const 4
i32.add
local.set 0
local.get 5
i32.const -4
i32.add
local.tee 5
i32.const 3
i32.gt_u
br_if 0 (;@4;)
end
end
local.get 5
i32.eqz
br_if 0 (;@2;)
local.get 1
i32.const 255
i32.and
local.set 2
loop ;; label = @3
local.get 0
i32.load8_u
local.get 2
i32.eq
br_if 2 (;@1;)
local.get 0
i32.const 1
i32.add
local.set 0
local.get 5
i32.const -1
i32.add
local.tee 5
br_if 0 (;@3;)
end
end
i32.const 0
return
end
local.get 0)
(func $memcpy (type 2) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32)
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 2
i32.eqz
br_if 0 (;@4;)
local.get 1
i32.const 3
i32.and
i32.eqz
br_if 0 (;@4;)
local.get 0
local.set 3
block ;; label = @5
loop ;; label = @6
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 2
i32.const -1
i32.add
local.set 4
local.get 3
i32.const 1
i32.add
local.set 3
local.get 1
i32.const 1
i32.add
local.set 1
local.get 2
i32.const 1
i32.eq
br_if 1 (;@5;)
local.get 4
local.set 2
local.get 1
i32.const 3
i32.and
br_if 0 (;@6;)
end
end
local.get 3
i32.const 3
i32.and
local.tee 2
i32.eqz
br_if 1 (;@3;)
br 2 (;@2;)
end
local.get 2
local.set 4
local.get 0
local.tee 3
i32.const 3
i32.and
local.tee 2
br_if 1 (;@2;)
end
block ;; label = @3
block ;; label = @4
local.get 4
i32.const 16
i32.lt_u
br_if 0 (;@4;)
local.get 4
i32.const -16
i32.add
local.set 2
loop ;; label = @5
local.get 3
local.get 1
i32.load
i32.store
local.get 3
i32.const 4
i32.add
local.get 1
i32.const 4
i32.add
i32.load
i32.store
local.get 3
i32.const 8
i32.add
local.get 1
i32.const 8
i32.add
i32.load
i32.store
local.get 3
i32.const 12
i32.add
local.get 1
i32.const 12
i32.add
i32.load
i32.store
local.get 3
i32.const 16
i32.add
local.set 3
local.get 1
i32.const 16
i32.add
local.set 1
local.get 4
i32.const -16
i32.add
local.tee 4
i32.const 15
i32.gt_u
br_if 0 (;@5;)
br 2 (;@3;)
end
end
local.get 4
local.set 2
end
block ;; label = @3
local.get 2
i32.const 8
i32.and
i32.eqz
br_if 0 (;@3;)
local.get 3
local.get 1
i64.load align=4
i64.store align=4
local.get 1
i32.const 8
i32.add
local.set 1
local.get 3
i32.const 8
i32.add
local.set 3
end
block ;; label = @3
local.get 2
i32.const 4
i32.and
i32.eqz
br_if 0 (;@3;)
local.get 3
local.get 1
i32.load
i32.store
local.get 1
i32.const 4
i32.add
local.set 1
local.get 3
i32.const 4
i32.add
local.set 3
end
block ;; label = @3
local.get 2
i32.const 2
i32.and
i32.eqz
br_if 0 (;@3;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
i32.const 2
i32.add
local.set 3
local.get 1
i32.const 2
i32.add
local.set 1
end
local.get 2
i32.const 1
i32.and
i32.eqz
br_if 1 (;@1;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 0
return
end
block ;; label = @2
local.get 4
i32.const 32
i32.lt_u
br_if 0 (;@2;)
block ;; label = @3
block ;; label = @4
local.get 2
i32.const 3
i32.eq
br_if 0 (;@4;)
local.get 2
i32.const 2
i32.eq
br_if 1 (;@3;)
local.get 2
i32.const 1
i32.ne
br_if 2 (;@2;)
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
local.get 1
i32.load
local.tee 5
i32.store8
local.get 3
local.get 1
i32.load8_u offset=2
i32.store8 offset=2
local.get 4
i32.const -3
i32.add
local.set 6
local.get 3
i32.const 3
i32.add
local.set 7
local.get 4
i32.const -20
i32.add
i32.const -16
i32.and
local.set 8
i32.const 0
local.set 2
loop ;; label = @5
local.get 7
local.get 2
i32.add
local.tee 3
local.get 1
local.get 2
i32.add
local.tee 9
i32.const 4
i32.add
i32.load
local.tee 10
i32.const 8
i32.shl
local.get 5
i32.const 24
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 4
i32.add
local.get 9
i32.const 8
i32.add
i32.load
local.tee 5
i32.const 8
i32.shl
local.get 10
i32.const 24
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 8
i32.add
local.get 9
i32.const 12
i32.add
i32.load
local.tee 10
i32.const 8
i32.shl
local.get 5
i32.const 24
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 12
i32.add
local.get 9
i32.const 16
i32.add
i32.load
local.tee 5
i32.const 8
i32.shl
local.get 10
i32.const 24
i32.shr_u
i32.or
i32.store
local.get 2
i32.const 16
i32.add
local.set 2
local.get 6
i32.const -16
i32.add
local.tee 6
i32.const 16
i32.gt_u
br_if 0 (;@5;)
end
local.get 7
local.get 2
i32.add
local.set 3
local.get 1
local.get 2
i32.add
i32.const 3
i32.add
local.set 1
local.get 4
i32.const -19
i32.add
local.get 8
i32.sub
local.set 4
br 2 (;@2;)
end
local.get 3
local.get 1
i32.load
local.tee 5
i32.store8
local.get 4
i32.const -1
i32.add
local.set 6
local.get 3
i32.const 1
i32.add
local.set 7
local.get 4
i32.const -20
i32.add
i32.const -16
i32.and
local.set 8
i32.const 0
local.set 2
loop ;; label = @4
local.get 7
local.get 2
i32.add
local.tee 3
local.get 1
local.get 2
i32.add
local.tee 9
i32.const 4
i32.add
i32.load
local.tee 10
i32.const 24
i32.shl
local.get 5
i32.const 8
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 4
i32.add
local.get 9
i32.const 8
i32.add
i32.load
local.tee 5
i32.const 24
i32.shl
local.get 10
i32.const 8
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 8
i32.add
local.get 9
i32.const 12
i32.add
i32.load
local.tee 10
i32.const 24
i32.shl
local.get 5
i32.const 8
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 12
i32.add
local.get 9
i32.const 16
i32.add
i32.load
local.tee 5
i32.const 24
i32.shl
local.get 10
i32.const 8
i32.shr_u
i32.or
i32.store
local.get 2
i32.const 16
i32.add
local.set 2
local.get 6
i32.const -16
i32.add
local.tee 6
i32.const 18
i32.gt_u
br_if 0 (;@4;)
end
local.get 7
local.get 2
i32.add
local.set 3
local.get 1
local.get 2
i32.add
i32.const 1
i32.add
local.set 1
local.get 4
i32.const -17
i32.add
local.get 8
i32.sub
local.set 4
br 1 (;@2;)
end
local.get 3
local.get 1
i32.load
local.tee 5
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 4
i32.const -2
i32.add
local.set 6
local.get 3
i32.const 2
i32.add
local.set 7
local.get 4
i32.const -20
i32.add
i32.const -16
i32.and
local.set 8
i32.const 0
local.set 2
loop ;; label = @3
local.get 7
local.get 2
i32.add
local.tee 3
local.get 1
local.get 2
i32.add
local.tee 9
i32.const 4
i32.add
i32.load
local.tee 10
i32.const 16
i32.shl
local.get 5
i32.const 16
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 4
i32.add
local.get 9
i32.const 8
i32.add
i32.load
local.tee 5
i32.const 16
i32.shl
local.get 10
i32.const 16
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 8
i32.add
local.get 9
i32.const 12
i32.add
i32.load
local.tee 10
i32.const 16
i32.shl
local.get 5
i32.const 16
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 12
i32.add
local.get 9
i32.const 16
i32.add
i32.load
local.tee 5
i32.const 16
i32.shl
local.get 10
i32.const 16
i32.shr_u
i32.or
i32.store
local.get 2
i32.const 16
i32.add
local.set 2
local.get 6
i32.const -16
i32.add
local.tee 6
i32.const 17
i32.gt_u
br_if 0 (;@3;)
end
local.get 7
local.get 2
i32.add
local.set 3
local.get 1
local.get 2
i32.add
i32.const 2
i32.add
local.set 1
local.get 4
i32.const -18
i32.add
local.get 8
i32.sub
local.set 4
end
block ;; label = @2
local.get 4
i32.const 16
i32.and
i32.eqz
br_if 0 (;@2;)
local.get 3
local.get 1
i32.load16_u align=1
i32.store16 align=1
local.get 3
local.get 1
i32.load8_u offset=2
i32.store8 offset=2
local.get 3
local.get 1
i32.load8_u offset=3
i32.store8 offset=3
local.get 3
local.get 1
i32.load8_u offset=4
i32.store8 offset=4
local.get 3
local.get 1
i32.load8_u offset=5
i32.store8 offset=5
local.get 3
local.get 1
i32.load8_u offset=6
i32.store8 offset=6
local.get 3
local.get 1
i32.load8_u offset=7
i32.store8 offset=7
local.get 3
local.get 1
i32.load8_u offset=8
i32.store8 offset=8
local.get 3
local.get 1
i32.load8_u offset=9
i32.store8 offset=9
local.get 3
local.get 1
i32.load8_u offset=10
i32.store8 offset=10
local.get 3
local.get 1
i32.load8_u offset=11
i32.store8 offset=11
local.get 3
local.get 1
i32.load8_u offset=12
i32.store8 offset=12
local.get 3
local.get 1
i32.load8_u offset=13
i32.store8 offset=13
local.get 3
local.get 1
i32.load8_u offset=14
i32.store8 offset=14
local.get 3
local.get 1
i32.load8_u offset=15
i32.store8 offset=15
local.get 3
i32.const 16
i32.add
local.set 3
local.get 1
i32.const 16
i32.add
local.set 1
end
block ;; label = @2
local.get 4
i32.const 8
i32.and
i32.eqz
br_if 0 (;@2;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
local.get 1
i32.load8_u offset=2
i32.store8 offset=2
local.get 3
local.get 1
i32.load8_u offset=3
i32.store8 offset=3
local.get 3
local.get 1
i32.load8_u offset=4
i32.store8 offset=4
local.get 3
local.get 1
i32.load8_u offset=5
i32.store8 offset=5
local.get 3
local.get 1
i32.load8_u offset=6
i32.store8 offset=6
local.get 3
local.get 1
i32.load8_u offset=7
i32.store8 offset=7
local.get 3
i32.const 8
i32.add
local.set 3
local.get 1
i32.const 8
i32.add
local.set 1
end
block ;; label = @2
local.get 4
i32.const 4
i32.and
i32.eqz
br_if 0 (;@2;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
local.get 1
i32.load8_u offset=2
i32.store8 offset=2
local.get 3
local.get 1
i32.load8_u offset=3
i32.store8 offset=3
local.get 3
i32.const 4
i32.add
local.set 3
local.get 1
i32.const 4
i32.add
local.set 1
end
block ;; label = @2
local.get 4
i32.const 2
i32.and
i32.eqz
br_if 0 (;@2;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
i32.const 2
i32.add
local.set 3
local.get 1
i32.const 2
i32.add
local.set 1
end
local.get 4
i32.const 1
i32.and
i32.eqz
br_if 0 (;@1;)
local.get 3
local.get 1
i32.load8_u
i32.store8
end
local.get 0)
(func $memset (type 2) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i64)
block ;; label = @1
local.get 2
i32.eqz
br_if 0 (;@1;)
local.get 0
local.get 1
i32.store8
local.get 0
local.get 2
i32.add
local.tee 3
i32.const -1
i32.add
local.get 1
i32.store8
local.get 2
i32.const 3
i32.lt_u
br_if 0 (;@1;)
local.get 0
local.get 1
i32.store8 offset=2
local.get 0
local.get 1
i32.store8 offset=1
local.get 3
i32.const -3
i32.add
local.get 1
i32.store8
local.get 3
i32.const -2
i32.add
local.get 1
i32.store8
local.get 2
i32.const 7
i32.lt_u
br_if 0 (;@1;)
local.get 0
local.get 1
i32.store8 offset=3
local.get 3
i32.const -4
i32.add
local.get 1
i32.store8
local.get 2
i32.const 9
i32.lt_u
br_if 0 (;@1;)
local.get 0
i32.const 0
local.get 0
i32.sub
i32.const 3
i32.and
local.tee 4
i32.add
local.tee 3
local.get 1
i32.const 255
i32.and
i32.const 16843009
i32.mul
local.tee 1
i32.store
local.get 3
local.get 2
local.get 4
i32.sub
i32.const -4
i32.and
local.tee 4
i32.add
local.tee 2
i32.const -4
i32.add
local.get 1
i32.store
local.get 4
i32.const 9
i32.lt_u
br_if 0 (;@1;)
local.get 3
local.get 1
i32.store offset=8
local.get 3
local.get 1
i32.store offset=4
local.get 2
i32.const -8
i32.add
local.get 1
i32.store
local.get 2
i32.const -12
i32.add
local.get 1
i32.store
local.get 4
i32.const 25
i32.lt_u
br_if 0 (;@1;)
local.get 3
local.get 1
i32.store offset=24
local.get 3
local.get 1
i32.store offset=20
local.get 3
local.get 1
i32.store offset=16
local.get 3
local.get 1
i32.store offset=12
local.get 2
i32.const -16
i32.add
local.get 1
i32.store
local.get 2
i32.const -20
i32.add
local.get 1
i32.store
local.get 2
i32.const -24
i32.add
local.get 1
i32.store
local.get 2
i32.const -28
i32.add
local.get 1
i32.store
local.get 4
local.get 3
i32.const 4
i32.and
i32.const 24
i32.or
local.tee 5
i32.sub
local.tee 2
i32.const 32
i32.lt_u
br_if 0 (;@1;)
local.get 1
i64.extend_i32_u
local.tee 6
i64.const 32
i64.shl
local.get 6
i64.or
local.set 6
local.get 3
local.get 5
i32.add
local.set 1
loop ;; label = @2
local.get 1
local.get 6
i64.store
local.get 1
i32.const 24
i32.add
local.get 6
i64.store
local.get 1
i32.const 16
i32.add
local.get 6
i64.store
local.get 1
i32.const 8
i32.add
local.get 6
i64.store
local.get 1
i32.const 32
i32.add
local.set 1
local.get 2
i32.const -32
i32.add
local.tee 2
i32.const 31
i32.gt_u
br_if 0 (;@2;)
end
end
local.get 0)
(func $strdup (type 0) (param i32) (result i32)
(local i32 i32)
block ;; label = @1
local.get 0
call $strlen
i32.const 1
i32.add
local.tee 1
call $malloc
local.tee 2
i32.eqz
br_if 0 (;@1;)
local.get 2
local.get 0
local.get 1
call $memcpy
return
end
i32.const 0)
(func $strlen (type 0) (param i32) (result i32)
(local i32 i32 i32)
local.get 0
local.set 1
block ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 0
i32.const 3
i32.and
i32.eqz
br_if 0 (;@3;)
local.get 0
i32.load8_u
i32.eqz
br_if 1 (;@2;)
local.get 0
i32.const 1
i32.add
local.set 1
loop ;; label = @4
local.get 1
i32.const 3
i32.and
i32.eqz
br_if 1 (;@3;)
local.get 1
i32.load8_u
local.set 2
local.get 1
i32.const 1
i32.add
local.tee 3
local.set 1
local.get 2
br_if 0 (;@4;)
end
local.get 3
i32.const -1
i32.add
local.get 0
i32.sub
return
end
local.get 1
i32.const -4
i32.add
local.set 1
loop ;; label = @3
local.get 1
i32.const 4
i32.add
local.tee 1
i32.load
local.tee 2
i32.const -1
i32.xor
local.get 2
i32.const -16843009
i32.add
i32.and
i32.const -2139062144
i32.and
i32.eqz
br_if 0 (;@3;)
end
local.get 2
i32.const 255
i32.and
i32.eqz
br_if 1 (;@1;)
loop ;; label = @3
local.get 1
i32.load8_u offset=1
local.set 2
local.get 1
i32.const 1
i32.add
local.tee 3
local.set 1
local.get 2
br_if 0 (;@3;)
end
local.get 3
local.get 0
i32.sub
return
end
local.get 0
local.get 0
i32.sub
return
end
local.get 1
local.get 0
i32.sub)
(func $qsort (type 15) (param i32 i32 i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 704
i32.sub
local.tee 4
global.set 0
local.get 4
i64.const 1
i64.store offset=8
block ;; label = @1
local.get 2
local.get 1
i32.mul
local.tee 5
i32.eqz
br_if 0 (;@1;)
local.get 4
local.get 2
i32.store offset=16
local.get 4
local.get 2
i32.store offset=20
i32.const 0
local.get 2
i32.sub
local.set 6
local.get 4
i32.const 16
i32.add
i32.const 8
i32.or
local.set 1
local.get 2
local.set 7
local.get 2
local.set 8
loop ;; label = @2
local.get 1
local.get 8
local.get 2
i32.add
local.get 7
local.tee 8
i32.add
local.tee 7
i32.store
local.get 1
i32.const 4
i32.add
local.set 1
local.get 8
local.set 8
local.get 7
local.get 5
i32.lt_u
br_if 0 (;@2;)
end
block ;; label = @2
block ;; label = @3
local.get 0
local.get 5
i32.add
local.get 6
i32.add
local.tee 9
local.get 0
i32.le_u
br_if 0 (;@3;)
local.get 4
i32.const 208
i32.add
i32.const 4
i32.or
local.set 10
i32.const 1
local.set 1
i32.const 1
local.set 11
loop ;; 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 1
i32.const 3
i32.and
i32.const 3
i32.ne
br_if 0 (;@11;)
local.get 4
local.get 0
i32.store offset=208
local.get 11
i32.const 2
i32.lt_s
br_if 5 (;@6;)
i32.const 1
local.set 12
local.get 10
local.set 5
local.get 0
local.set 13
local.get 0
local.set 1
local.get 11
local.set 14
block ;; label = @12
loop ;; label = @13
block ;; label = @14
local.get 13
local.get 1
local.get 6
i32.add
local.tee 7
local.get 4
i32.const 16
i32.add
local.get 14
i32.const -2
i32.add
local.tee 8
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 1
local.get 3
call_indirect (type 1)
i32.const 0
i32.lt_s
br_if 0 (;@14;)
local.get 13
local.get 7
local.get 3
call_indirect (type 1)
i32.const -1
i32.gt_s
br_if 2 (;@12;)
end
block ;; label = @14
block ;; label = @15
block ;; label = @16
local.get 1
local.get 7
local.get 3
call_indirect (type 1)
i32.const 0
i32.lt_s
br_if 0 (;@16;)
local.get 5
local.get 1
i32.store
local.get 14
i32.const -1
i32.add
local.tee 8
i32.const 2
i32.ge_s
br_if 1 (;@15;)
br 2 (;@14;)
end
local.get 5
local.get 7
i32.store
local.get 7
local.set 1
local.get 8
i32.const 2
i32.lt_s
br_if 1 (;@14;)
end
local.get 12
i32.const 1
i32.add
local.set 12
local.get 5
i32.const 4
i32.add
local.set 5
local.get 4
i32.load offset=208
local.set 13
local.get 8
local.set 14
br 1 (;@13;)
end
end
local.get 12
i32.const 1
i32.add
local.set 12
end
local.get 12
i32.const 2
i32.lt_s
br_if 5 (;@6;)
local.get 4
i32.const 208
i32.add
local.get 12
i32.const 2
i32.shl
i32.add
local.tee 15
local.get 4
i32.const 448
i32.add
i32.store
local.get 2
i32.eqz
br_if 5 (;@6;)
local.get 4
i32.const 448
i32.add
local.set 16
local.get 2
local.set 17
br 1 (;@10;)
end
block ;; label = @11
local.get 4
i32.const 16
i32.add
local.get 11
i32.const -1
i32.add
local.tee 18
i32.const 2
i32.shl
i32.add
i32.load
local.get 9
local.get 0
i32.sub
i32.ge_u
br_if 0 (;@11;)
local.get 4
local.get 0
i32.store offset=208
local.get 11
i32.const 2
i32.lt_s
br_if 4 (;@7;)
i32.const 1
local.set 19
local.get 10
local.set 5
local.get 0
local.set 13
local.get 0
local.set 1
local.get 11
local.set 14
block ;; label = @12
loop ;; label = @13
block ;; label = @14
local.get 13
local.get 1
local.get 6
i32.add
local.tee 7
local.get 4
i32.const 16
i32.add
local.get 14
i32.const -2
i32.add
local.tee 8
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 1
local.get 3
call_indirect (type 1)
i32.const 0
i32.lt_s
br_if 0 (;@14;)
local.get 13
local.get 7
local.get 3
call_indirect (type 1)
i32.const -1
i32.gt_s
br_if 2 (;@12;)
end
block ;; label = @14
block ;; label = @15
block ;; label = @16
local.get 1
local.get 7
local.get 3
call_indirect (type 1)
i32.const 0
i32.lt_s
br_if 0 (;@16;)
local.get 5
local.get 1
i32.store
local.get 14
i32.const -1
i32.add
local.tee 8
i32.const 2
i32.ge_s
br_if 1 (;@15;)
br 2 (;@14;)
end
local.get 5
local.get 7
i32.store
local.get 7
local.set 1
local.get 8
i32.const 2
i32.lt_s
br_if 1 (;@14;)
end
local.get 19
i32.const 1
i32.add
local.set 19
local.get 5
i32.const 4
i32.add
local.set 5
local.get 4
i32.load offset=208
local.set 13
local.get 8
local.set 14
br 1 (;@13;)
end
end
local.get 19
i32.const 1
i32.add
local.set 19
end
local.get 19
i32.const 2
i32.lt_s
br_if 4 (;@7;)
local.get 4
i32.const 208
i32.add
local.get 19
i32.const 2
i32.shl
i32.add
local.tee 20
local.get 4
i32.const 448
i32.add
i32.store
local.get 2
i32.eqz
br_if 4 (;@7;)
local.get 4
i32.const 448
i32.add
local.set 21
local.get 2
local.set 22
br 2 (;@9;)
end
local.get 0
local.get 2
local.get 3
local.get 4
i32.const 8
i32.add
local.get 11
i32.const 0
local.get 4
i32.const 16
i32.add
call $trinkle
br 3 (;@7;)
end
i32.const 0
local.set 1
br 1 (;@8;)
end
i32.const 1
local.set 1
end
loop ;; label = @8
block ;; label = @9
block ;; label = @10
local.get 1
br_table 0 (;@10;) 1 (;@9;) 1 (;@9;)
end
local.get 16
local.get 4
i32.load offset=208
local.tee 1
local.get 17
i32.const 256
local.get 17
i32.const 256
i32.lt_u
select
local.tee 8
call $memcpy
drop
local.get 4
i32.const 208
i32.add
local.set 7
local.get 12
local.set 5
loop ;; label = @10
local.get 1
local.get 7
i32.const 4
i32.add
local.tee 13
i32.load
local.tee 14
local.get 8
call $memcpy
drop
local.get 7
local.get 1
local.get 8
i32.add
i32.store
local.get 13
local.set 7
local.get 14
local.set 1
local.get 5
i32.const -1
i32.add
local.tee 5
br_if 0 (;@10;)
end
local.get 17
local.get 8
i32.sub
local.tee 17
i32.eqz
br_if 3 (;@6;)
local.get 15
i32.load
local.set 16
i32.const 0
local.set 1
br 1 (;@8;)
end
local.get 21
local.get 4
i32.load offset=208
local.tee 1
local.get 22
i32.const 256
local.get 22
i32.const 256
i32.lt_u
select
local.tee 8
call $memcpy
drop
local.get 4
i32.const 208
i32.add
local.set 7
local.get 19
local.set 5
loop ;; label = @9
local.get 1
local.get 7
i32.const 4
i32.add
local.tee 13
i32.load
local.tee 14
local.get 8
call $memcpy
drop
local.get 7
local.get 1
local.get 8
i32.add
i32.store
local.get 13
local.set 7
local.get 14
local.set 1
local.get 5
i32.const -1
i32.add
local.tee 5
br_if 0 (;@9;)
end
local.get 22
local.get 8
i32.sub
local.tee 22
i32.eqz
br_if 1 (;@7;)
local.get 20
i32.load
local.set 21
i32.const 1
local.set 1
br 0 (;@8;)
end
end
block ;; label = @7
block ;; label = @8
block ;; label = @9
local.get 11
i32.const 1
i32.eq
br_if 0 (;@9;)
local.get 18
i32.const 31
i32.le_u
br_if 1 (;@8;)
local.get 4
local.get 4
i32.load offset=8
local.tee 8
i32.store offset=12
i32.const 0
local.set 7
local.get 4
i32.const 0
i32.store offset=8
local.get 11
i32.const -33
i32.add
local.set 18
br 2 (;@7;)
end
local.get 4
local.get 4
i32.load offset=8
local.tee 7
i32.const 1
i32.shl
local.tee 1
i32.store offset=8
local.get 4
local.get 7
i32.const 31
i32.shr_u
local.get 4
i32.load offset=12
i32.const 1
i32.shl
i32.or
i32.store offset=12
i32.const 0
local.set 11
br 3 (;@5;)
end
local.get 4
i32.load offset=8
local.set 7
local.get 4
i32.load offset=12
local.set 8
end
local.get 4
local.get 7
local.get 18
i32.shl
local.tee 1
i32.store offset=8
local.get 4
local.get 7
i32.const 32
local.get 18
i32.sub
i32.shr_u
local.get 8
local.get 18
i32.shl
i32.or
i32.store offset=12
i32.const 1
local.set 11
br 1 (;@5;)
end
local.get 4
local.get 4
i32.load offset=12
local.tee 1
i32.const 2
i32.shr_u
i32.store offset=12
local.get 4
local.get 1
i32.const 30
i32.shl
local.get 4
i32.load offset=8
i32.const 2
i32.shr_u
i32.or
local.tee 1
i32.store offset=8
local.get 11
i32.const 2
i32.add
local.set 11
end
local.get 4
local.get 1
i32.const 1
i32.or
local.tee 1
i32.store offset=8
local.get 0
local.get 2
i32.add
local.tee 0
local.get 9
i32.lt_u
br_if 0 (;@4;)
br 2 (;@2;)
end
end
i32.const 1
local.set 11
end
local.get 0
local.get 2
local.get 3
local.get 4
i32.const 8
i32.add
local.get 11
i32.const 0
local.get 4
i32.const 16
i32.add
call $trinkle
local.get 0
local.get 6
i32.add
local.set 5
loop ;; label = @2
local.get 4
i32.load offset=8
local.set 1
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
local.get 11
i32.const 1
i32.ne
br_if 0 (;@8;)
local.get 1
i32.const 1
i32.ne
br_if 0 (;@8;)
local.get 4
i32.load offset=12
br_if 1 (;@7;)
br 7 (;@1;)
end
local.get 11
i32.const 1
i32.gt_s
br_if 1 (;@6;)
end
block ;; label = @7
block ;; label = @8
i32.const 1
local.get 1
i32.sub
local.get 1
i32.const -1
i32.add
i32.and
i32.const 124511785
i32.mul
i32.const 27
i32.shr_u
local.tee 7
i32.eqz
br_if 0 (;@8;)
local.get 7
i32.const 1568
i32.add
i32.load8_s
local.tee 13
i32.const 31
i32.le_u
br_if 1 (;@7;)
br 4 (;@4;)
end
i32.const 0
local.set 13
local.get 4
i32.load offset=12
local.tee 8
i32.const 0
local.get 8
i32.sub
i32.and
i32.const 124511785
i32.mul
i32.const 27
i32.shr_u
local.tee 7
i32.eqz
br_if 2 (;@5;)
local.get 7
i32.const 1568
i32.add
i32.load8_s
i32.const 32
i32.add
local.tee 13
i32.const 31
i32.gt_u
br_if 3 (;@4;)
end
local.get 4
i32.load offset=12
local.set 8
local.get 13
local.set 7
br 3 (;@3;)
end
local.get 4
local.get 4
i32.load offset=12
i32.const 2
i32.shl
local.get 1
i32.const 30
i32.shr_u
local.tee 7
i32.or
i32.const 1
i32.shr_u
i32.store offset=12
local.get 4
local.get 1
i32.const 1
i32.shl
i32.const 2147483646
i32.and
local.get 7
i32.const 31
i32.shl
i32.or
i32.const 3
i32.xor
i32.store offset=8
local.get 11
i32.const -1
i32.add
local.set 1
local.get 5
local.get 4
i32.const 16
i32.add
local.get 11
i32.const -2
i32.add
local.tee 11
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.get 2
local.get 3
local.get 4
i32.const 8
i32.add
local.get 1
i32.const 1
local.get 4
i32.const 16
i32.add
call $trinkle
local.get 4
local.get 4
i32.load offset=8
local.tee 1
i32.const 31
i32.shr_u
local.get 4
i32.load offset=12
i32.const 1
i32.shl
i32.or
i32.store offset=12
local.get 4
local.get 1
i32.const 1
i32.shl
i32.const 1
i32.or
i32.store offset=8
local.get 5
local.get 2
local.get 3
local.get 4
i32.const 8
i32.add
local.get 11
i32.const 1
local.get 4
i32.const 16
i32.add
call $trinkle
local.get 5
local.get 6
i32.add
local.set 5
br 3 (;@2;)
end
i32.const 0
local.set 7
br 1 (;@3;)
end
local.get 4
i32.load offset=12
local.set 1
i32.const 0
local.set 8
local.get 4
i32.const 0
i32.store offset=12
local.get 4
local.get 1
i32.store offset=8
local.get 13
i32.const -32
i32.add
local.set 7
end
local.get 4
local.get 8
local.get 7
i32.shr_u
i32.store offset=12
local.get 4
local.get 8
i32.const 32
local.get 7
i32.sub
i32.shl
local.get 1
local.get 7
i32.shr_u
i32.or
i32.store offset=8
local.get 13
local.get 11
i32.add
local.set 11
local.get 5
local.get 6
i32.add
local.set 5
br 0 (;@2;)
end
end
local.get 4
i32.const 704
i32.add
global.set 0)
(func $trinkle (type 16) (param i32 i32 i32 i32 i32 i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 736
i32.sub
local.tee 7
global.set 0
local.get 7
local.get 0
i32.store
local.get 3
i32.load
local.set 8
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 3
i32.load offset=4
local.tee 9
br_if 0 (;@5;)
i32.const 1
local.set 10
local.get 8
i32.const 1
i32.eq
br_if 1 (;@4;)
end
i32.const 1
local.set 10
local.get 0
local.get 6
local.get 4
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 11
local.get 0
local.get 2
call_indirect (type 1)
i32.const 1
i32.lt_s
br_if 0 (;@4;)
i32.const 0
local.get 1
i32.sub
local.set 12
local.get 7
i32.const 4
i32.or
local.set 13
local.get 5
i32.eqz
local.set 5
i32.const 1
local.set 10
br 1 (;@3;)
end
local.get 0
local.set 3
local.get 5
br_if 2 (;@1;)
br 1 (;@2;)
end
block ;; label = @3
loop ;; label = @4
local.get 11
local.set 3
block ;; label = @5
local.get 5
i32.const 1
i32.and
i32.eqz
br_if 0 (;@5;)
local.get 4
i32.const 2
i32.lt_s
br_if 0 (;@5;)
local.get 6
local.get 4
i32.const 2
i32.shl
i32.add
i32.const -8
i32.add
i32.load
local.set 11
local.get 0
local.get 12
i32.add
local.tee 5
local.get 3
local.get 2
call_indirect (type 1)
i32.const -1
i32.gt_s
br_if 2 (;@3;)
local.get 5
local.get 11
i32.sub
local.get 3
local.get 2
call_indirect (type 1)
i32.const -1
i32.gt_s
br_if 2 (;@3;)
end
local.get 13
local.get 3
i32.store
block ;; label = @5
block ;; label = @6
block ;; label = @7
i32.const 1
local.get 8
i32.sub
local.get 8
i32.const -1
i32.add
i32.and
i32.const 124511785
i32.mul
i32.const 27
i32.shr_u
local.tee 0
i32.eqz
br_if 0 (;@7;)
local.get 0
i32.const 1568
i32.add
i32.load8_s
local.set 0
br 1 (;@6;)
end
i32.const 0
local.set 0
block ;; label = @7
local.get 9
i32.const 0
local.get 9
i32.sub
i32.and
i32.const 124511785
i32.mul
i32.const 27
i32.shr_u
local.tee 11
br_if 0 (;@7;)
i32.const 0
local.set 11
br 2 (;@5;)
end
local.get 11
i32.const 1568
i32.add
i32.load8_s
i32.const 32
i32.add
local.set 0
end
local.get 0
i32.const -32
i32.add
local.get 0
local.get 0
i32.const 31
i32.gt_u
local.tee 5
select
local.set 11
local.get 9
local.get 8
local.get 5
select
local.set 8
i32.const 0
local.get 9
local.get 5
select
local.set 9
end
local.get 10
i32.const 1
i32.add
local.set 10
local.get 9
i32.const 32
local.get 11
i32.sub
i32.shl
local.get 8
local.get 11
i32.shr_u
i32.or
local.set 8
local.get 0
local.get 4
i32.add
local.set 4
block ;; label = @5
local.get 9
local.get 11
i32.shr_u
local.tee 9
br_if 0 (;@5;)
local.get 8
i32.const 1
i32.eq
br_if 3 (;@2;)
end
local.get 13
i32.const 4
i32.add
local.set 13
i32.const 1
local.set 5
local.get 3
local.set 0
local.get 3
local.get 6
local.get 4
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 11
local.get 7
i32.load
local.get 2
call_indirect (type 1)
i32.const 0
i32.gt_s
br_if 0 (;@4;)
end
i32.const 0
br_if 2 (;@1;)
br 1 (;@2;)
end
local.get 0
local.set 3
end
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 10
i32.const 2
i32.lt_u
br_if 0 (;@5;)
local.get 7
local.get 10
i32.const 2
i32.shl
i32.add
local.tee 14
local.get 7
i32.const 480
i32.add
i32.store
local.get 1
i32.eqz
br_if 1 (;@4;)
local.get 7
i32.const 480
i32.add
local.set 15
i32.const 256
local.set 16
i32.const 4
local.set 17
i32.const -1
local.set 18
local.get 1
local.set 19
i32.const 0
local.set 20
br 2 (;@3;)
end
i32.const 0
local.set 8
br 2 (;@2;)
end
i32.const 0
local.set 8
br 1 (;@2;)
end
i32.const 1
local.set 8
end
loop ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
local.get 8
br_table 0 (;@8;) 1 (;@7;) 1 (;@7;)
end
local.get 7
local.get 3
i32.store offset=240
local.get 4
i32.const 1
i32.le_s
br_if 6 (;@1;)
i32.const 0
local.get 1
i32.sub
local.set 13
local.get 7
i32.const 240
i32.add
i32.const 4
i32.or
local.set 11
i32.const 1
local.set 21
local.get 3
local.set 8
block ;; label = @8
loop ;; label = @9
block ;; label = @10
local.get 3
local.get 8
local.get 13
i32.add
local.tee 9
local.get 6
local.get 4
i32.const -2
i32.add
local.tee 0
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 8
local.get 2
call_indirect (type 1)
i32.const 0
i32.lt_s
br_if 0 (;@10;)
local.get 3
local.get 9
local.get 2
call_indirect (type 1)
i32.const -1
i32.gt_s
br_if 2 (;@8;)
end
block ;; label = @10
block ;; label = @11
block ;; label = @12
local.get 8
local.get 9
local.get 2
call_indirect (type 1)
i32.const 0
i32.lt_s
br_if 0 (;@12;)
local.get 11
local.get 8
i32.store
local.get 4
i32.const -1
i32.add
local.tee 0
i32.const 2
i32.ge_s
br_if 1 (;@11;)
br 2 (;@10;)
end
local.get 11
local.get 9
i32.store
local.get 9
local.set 8
local.get 0
i32.const 2
i32.lt_s
br_if 1 (;@10;)
end
local.get 21
i32.const 1
i32.add
local.set 21
local.get 11
i32.const 4
i32.add
local.set 11
local.get 7
i32.load offset=240
local.set 3
local.get 0
local.set 4
br 1 (;@9;)
end
end
local.get 21
i32.const 1
i32.add
local.set 21
end
local.get 21
i32.const 2
i32.lt_s
br_if 6 (;@1;)
local.get 7
i32.const 240
i32.add
local.get 21
i32.const 2
i32.shl
i32.add
local.tee 22
local.get 7
i32.const 480
i32.add
i32.store
local.get 1
i32.eqz
br_if 6 (;@1;)
local.get 7
i32.const 480
i32.add
local.set 23
i32.const 256
local.set 24
i32.const 4
local.set 25
i32.const -1
local.set 26
br 1 (;@6;)
end
block ;; label = @7
block ;; label = @8
local.get 20
br_table 0 (;@8;) 1 (;@7;) 1 (;@7;)
end
local.get 15
local.get 7
i32.load
local.tee 8
local.get 19
local.get 16
local.get 19
local.get 16
i32.lt_u
select
local.tee 0
call $memcpy
drop
local.get 7
local.set 9
local.get 10
local.set 11
loop ;; label = @8
local.get 8
local.get 9
local.get 17
i32.add
local.tee 13
i32.load
local.tee 5
local.get 0
call $memcpy
drop
local.get 9
local.get 8
local.get 0
i32.add
i32.store
local.get 13
local.set 9
local.get 5
local.set 8
local.get 11
local.get 18
i32.add
local.tee 11
br_if 0 (;@8;)
end
block ;; label = @8
local.get 19
local.get 0
i32.sub
local.tee 19
i32.eqz
br_if 0 (;@8;)
local.get 14
i32.load
local.set 15
i32.const 0
local.set 20
br 3 (;@5;)
end
i32.const 0
local.set 8
br 5 (;@2;)
end
local.get 23
local.get 7
i32.load offset=240
local.tee 8
local.get 1
local.get 24
local.get 1
local.get 24
i32.lt_u
select
local.tee 0
call $memcpy
drop
local.get 7
i32.const 240
i32.add
local.set 9
local.get 21
local.set 11
loop ;; label = @7
local.get 8
local.get 9
local.get 25
i32.add
local.tee 13
i32.load
local.tee 5
local.get 0
call $memcpy
drop
local.get 9
local.get 8
local.get 0
i32.add
i32.store
local.get 13
local.set 9
local.get 5
local.set 8
local.get 11
local.get 26
i32.add
local.tee 11
br_if 0 (;@7;)
end
local.get 1
local.get 0
i32.sub
local.tee 1
i32.eqz
br_if 5 (;@1;)
local.get 22
i32.load
local.set 23
i32.const 1
local.set 20
br 3 (;@3;)
end
i32.const 1
local.set 20
br 1 (;@4;)
end
i32.const 1
local.set 8
br 2 (;@2;)
end
i32.const 1
local.set 8
br 1 (;@2;)
end
i32.const 1
local.set 8
br 0 (;@2;)
end
end
local.get 7
i32.const 736
i32.add
global.set 0)
(table (;0;) 2 2 anyfunc)
(memory (;0;) 2)
(global (;0;) (mut i32) (i32.const 67136))
(global (;1;) i32 (i32.const 67136))
(global (;2;) i32 (i32.const 1600))
(global (;3;) i32 (i32.const 1024))
(global (;4;) i32 (i32.const 1528))
(global (;5;) i32 (i32.const 1520))
(global (;6;) i32 (i32.const 1528))
(global (;7;) i32 (i32.const 1528))
(global (;8;) i32 (i32.const 1528))
(export "memory" (memory 0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global 1))
(export "__data_end" (global 2))
(export "__dso_handle" (global 3))
(export "__original_main" (func $__original_main))
(export "main" (func $main))
(export "_start" (func $_start))
(export "__wasilibc_init_preopen" (func $__wasilibc_init_preopen))
(export "malloc" (func $malloc))
(export "__wasilibc_register_preopened_fd" (func $__wasilibc_register_preopened_fd))
(export "free" (func $free))
(export "__environ" (global 4))
(export "_Exit" (func $_Exit))
(export "__prepare_for_exit" (func $__prepare_for_exit))
(export "sbrk" (func $sbrk))
(export "errno" (global 5))
(export "calloc" (func $calloc))
(export "memset" (func $memset))
(export "realloc" (func $realloc))
(export "memcpy" (func $memcpy))
(export "posix_memalign" (func $posix_memalign))
(export "aligned_alloc" (func $aligned_alloc))
(export "malloc_usable_size" (func $malloc_usable_size))
(export "fdopendir" (func $fdopendir))
(export "opendirat" (func $opendirat))
(export "scandirat" (func $scandirat))
(export "faccessat" (func $faccessat))
(export "readlinkat" (func $readlinkat))
(export "__wasilibc_rmdirat" (func $__wasilibc_rmdirat))
(export "linkat" (func $linkat))
(export "symlinkat" (func $symlinkat))
(export "__wasilibc_rmfileat" (func $__wasilibc_rmfileat))
(export "close" (func $close))
(export "fstatat" (func $fstatat))
(export "mkdirat" (func $mkdirat))
(export "renameat" (func $renameat))
(export "_exit" (func $_Exit))
(export "openat" (func $openat))
(export "open" (func $open))
(export "access" (func $access))
(export "eaccess" (func $eaccess))
(export "lstat" (func $lstat))
(export "rename" (func $rename))
(export "stat" (func $stat))
(export "unlink" (func $unlink))
(export "rmdir" (func $rmdir))
(export "remove" (func $remove))
(export "link" (func $link))
(export "mkdir" (func $mkdir))
(export "opendir" (func $opendir))
(export "readlink" (func $readlink))
(export "scandir" (func $scandir))
(export "symlink" (func $symlink))
(export "strlen" (func $strlen))
(export "abort" (func $abort))
(export "memchr" (func $memchr))
(export "qsort" (func $qsort))
(export "strdup" (func $strdup))
(export "__wasilibc_find_relpath" (func $__wasilibc_find_relpath))
(export "__funcs_on_exit" (func $dummy))
(export "__stdio_exit" (func $dummy))
(export "exit" (func $exit))
(export "_fini" (func $dummy))
(export "___environ" (global 6))
(export "_environ" (global 7))
(export "environ" (global 8))
(elem (;0;) (i32.const 1) $sel_true)
(data (;0;) (i32.const 1024) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(data (;1;) (i32.const 1536) "\00`\00\00\00 \00\00\00@\00\00\00\80\00\00\00\c0\00\00\00\c0\00\00\00\a0\00\00.\00\00\00\00\01\17\02\1d\18\13\03\1e\1b\19\0b\14\08\04\0d\1f\16\1c\12\1a\0a\07\0c\15\11\09\06\10\05\0f\0e"))
(module
(type (;0;) (func (param i32 i32) (result i32)))
(type (;1;) (func (param i32) (result i32)))
(type (;2;) (func))
(type (;3;) (func (param i32 i32 i32 i32) (result i32)))
(type (;4;) (func (param i32 i32 i32) (result i32)))
(type (;5;) (func (param i32)))
(type (;6;) (func (param i32 i32 i32 i32 i32 i64 i64 i32 i32) (result i32)))
(type (;7;) (func (param i32 i32 i32 i32 i32) (result i32)))
(type (;8;) (func (param i32 i32 i32 i32 i32 i32) (result i32)))
(type (;9;) (func (param i32 i32 i32 i32 i32 i32 i32) (result i32)))
(type (;10;) (func (param i32 i32 i32 i64 i32) (result i32)))
(type (;11;) (func (param i32 i32)))
(type (;12;) (func (param i32 i32 i64 i64)))
(type (;13;) (func (param i32 i64 i64 i32) (result i32)))
(type (;14;) (func (param i32 i32 i32 i32)))
(type (;15;) (func (param i32 i32 i32 i32 i32 i32 i32)))
(import "wasi_unstable" "proc_raise" (func $proc_raise (type 1)))
(import "env" "__stack_chk_fail" (func $__stack_chk_fail (type 2)))
(import "wasi_unstable" "fd_write" (func $fd_write (type 3)))
(import "wasi_unstable" "fd_prestat_get" (func $__wasi_fd_prestat_get (type 0)))
(import "wasi_unstable" "fd_prestat_dir_name" (func $__wasi_fd_prestat_dir_name (type 4)))
(import "wasi_unstable" "environ_sizes_get" (func $__wasi_environ_sizes_get (type 0)))
(import "wasi_unstable" "environ_get" (func $__wasi_environ_get (type 0)))
(import "wasi_unstable" "args_sizes_get" (func $__wasi_args_sizes_get (type 0)))
(import "wasi_unstable" "args_get" (func $__wasi_args_get (type 0)))
(import "wasi_unstable" "proc_exit" (func $__wasi_proc_exit (type 5)))
(import "wasi_unstable" "fd_fdstat_get" (func $__wasi_fd_fdstat_get (type 0)))
(import "wasi_unstable" "path_open" (func $__wasi_path_open (type 6)))
(import "wasi_unstable" "path_filestat_get" (func $__wasi_path_filestat_get (type 7)))
(import "wasi_unstable" "path_rename" (func $__wasi_path_rename (type 8)))
(import "wasi_unstable" "path_unlink_file" (func $__wasi_path_unlink_file (type 4)))
(import "wasi_unstable" "path_remove_directory" (func $__wasi_path_remove_directory (type 4)))
(import "wasi_unstable" "path_link" (func $__wasi_path_link (type 9)))
(import "wasi_unstable" "path_create_directory" (func $__wasi_path_create_directory (type 4)))
(import "wasi_unstable" "fd_readdir" (func $__wasi_fd_readdir (type 10)))
(import "wasi_unstable" "fd_close" (func $__wasi_fd_close (type 1)))
(import "wasi_unstable" "path_readlink" (func $__wasi_path_readlink (type 8)))
(import "wasi_unstable" "path_symlink" (func $__wasi_path_symlink (type 7)))
(func $__wasm_call_ctors (type 2))
(func $std.special.panic (type 11) (param i32 i32)
(local i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 16
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
global.set 0
i32.const 1592
local.set 5
i32.const 0
local.set 6
i32.const 6
local.set 7
local.get 4
local.get 1
i32.store offset=12
local.get 0
call $std.debug.warn
local.get 7
call $proc_raise
drop
local.get 5
local.get 6
call $std.special.panic
unreachable)
(func $std.debug.warn (type 5) (param i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 1
i32.const 32
local.set 2
local.get 1
local.get 2
i32.sub
local.set 3
local.get 3
global.set 0
i32.const 0
local.set 4
i32.const 16
local.set 5
local.get 3
local.get 5
i32.add
local.set 6
local.get 6
local.set 7
i32.const 8
local.set 8
local.get 3
local.get 8
i32.add
local.set 9
local.get 9
local.set 10
i32.const 24
local.set 11
local.get 3
local.get 11
i32.add
local.set 12
local.get 12
local.set 13
i32.const 1024
local.set 14
i32.const 0
local.set 15
local.get 15
i32.load
local.set 16
local.get 3
local.get 16
i32.store offset=28
local.get 13
local.get 14
call $std.mutex.Mutex.acquire
local.get 13
i32.load
local.set 17
local.get 10
local.get 17
i32.store
local.get 7
call $std.debug.getStderrStream
local.get 3
i32.load16_u offset=16
local.set 18
i32.const 65535
local.set 19
local.get 18
local.get 19
i32.and
local.set 20
i32.const 65535
local.set 21
local.get 4
local.get 21
i32.and
local.set 22
local.get 20
local.get 22
i32.ne
local.set 23
i32.const 1
local.set 24
local.get 23
local.get 24
i32.and
local.set 25
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 25
i32.eqz
br_if 0 (;@4;)
i32.const 8
local.set 26
local.get 3
local.get 26
i32.add
local.set 27
local.get 27
local.set 28
local.get 28
call $std.mutex.Held.release
i32.const 0
local.set 29
local.get 29
i32.load
local.set 30
local.get 3
i32.load offset=28
local.set 31
local.get 30
local.set 32
local.get 31
local.set 33
local.get 32
local.get 33
i32.eq
local.set 34
i32.const 1
local.set 35
local.get 34
local.get 35
i32.and
local.set 36
local.get 36
i32.eqz
br_if 1 (;@3;)
i32.const 32
local.set 37
local.get 3
local.get 37
i32.add
local.set 38
local.get 38
global.set 0
return
end
local.get 3
i32.load offset=20
local.set 39
i32.const 0
local.set 40
local.get 3
local.get 39
i32.store
local.get 3
i32.load
local.set 41
local.get 41
local.get 0
call $std.io.OutStream_error_SystemResources_OperationAborted_BrokenPipe_Unexpected_DiskQuota_FileTooBig_InputOutput_NoSpaceLeft_AccessDenied___.print
local.set 42
local.get 3
local.get 42
i32.store16 offset=6
i32.const 65535
local.set 43
local.get 42
local.get 43
i32.and
local.set 44
i32.const 65535
local.set 45
local.get 40
local.get 45
i32.and
local.set 46
local.get 44
local.get 46
i32.ne
local.set 47
i32.const 1
local.set 48
local.get 47
local.get 48
i32.and
local.set 49
block ;; label = @4
local.get 49
i32.eqz
br_if 0 (;@4;)
i32.const 8
local.set 50
local.get 3
local.get 50
i32.add
local.set 51
local.get 51
local.set 52
local.get 52
call $std.mutex.Held.release
i32.const 0
local.set 53
local.get 53
i32.load
local.set 54
local.get 3
i32.load offset=28
local.set 55
local.get 54
local.set 56
local.get 55
local.set 57
local.get 56
local.get 57
i32.eq
local.set 58
i32.const 1
local.set 59
local.get 58
local.get 59
i32.and
local.set 60
local.get 60
i32.eqz
br_if 2 (;@2;)
i32.const 32
local.set 61
local.get 3
local.get 61
i32.add
local.set 62
local.get 62
global.set 0
return
end
i32.const 8
local.set 63
local.get 3
local.get 63
i32.add
local.set 64
local.get 64
local.set 65
local.get 65
call $std.mutex.Held.release
i32.const 0
local.set 66
local.get 66
i32.load
local.set 67
local.get 3
i32.load offset=28
local.set 68
local.get 67
local.set 69
local.get 68
local.set 70
local.get 69
local.get 70
i32.eq
local.set 71
i32.const 1
local.set 72
local.get 71
local.get 72
i32.and
local.set 73
local.get 73
i32.eqz
br_if 2 (;@1;)
i32.const 32
local.set 74
local.get 3
local.get 74
i32.add
local.set 75
local.get 75
global.set 0
return
end
call $__stack_chk_fail
unreachable
end
call $__stack_chk_fail
unreachable
end
call $__stack_chk_fail
unreachable)
(func $std.mutex.Mutex.acquire (type 11) (param i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 16
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
global.set 0
i32.const 0
local.set 5
local.get 5
i32.load
local.set 6
local.get 4
local.get 6
i32.store offset=12
local.get 4
local.get 1
i32.store offset=4
local.get 4
i32.load offset=4
local.set 7
local.get 7
i32.load8_u
local.set 8
i32.const 1
local.set 9
local.get 8
local.get 9
i32.and
local.set 10
block ;; label = @1
local.get 10
i32.eqz
br_if 0 (;@1;)
i32.const 1620
local.set 11
i32.const 0
local.set 12
local.get 11
local.get 12
call $std.special.panic
unreachable
end
i32.const 8
local.set 13
local.get 4
local.get 13
i32.add
local.set 14
local.get 14
local.set 15
local.get 4
i32.load offset=4
local.set 16
local.get 4
local.get 16
i32.store offset=8
local.get 15
i32.load
local.set 17
local.get 0
local.get 17
i32.store
i32.const 0
local.set 18
local.get 18
i32.load
local.set 19
local.get 4
i32.load offset=12
local.set 20
local.get 19
local.set 21
local.get 20
local.set 22
local.get 21
local.get 22
i32.eq
local.set 23
i32.const 1
local.set 24
local.get 23
local.get 24
i32.and
local.set 25
block ;; label = @1
local.get 25
i32.eqz
br_if 0 (;@1;)
i32.const 16
local.set 26
local.get 4
local.get 26
i32.add
local.set 27
local.get 27
global.set 0
return
end
call $__stack_chk_fail
unreachable)
(func $std.debug.getStderrStream (type 5) (param i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 1
i32.const 48
local.set 2
local.get 1
local.get 2
i32.sub
local.set 3
local.get 3
global.set 0
i32.const 0
local.set 4
i32.const 0
local.set 5
local.get 5
i32.load
local.set 6
local.get 3
local.get 6
i32.store offset=44
i32.const 0
local.set 7
local.get 7
i32.load offset=1028
local.set 8
local.get 8
local.set 9
local.get 4
local.set 10
local.get 9
local.get 10
i32.ne
local.set 11
i32.const 1
local.set 12
local.get 11
local.get 12
i32.and
local.set 13
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 13
i32.eqz
br_if 0 (;@4;)
i32.const 32
local.set 14
local.get 3
local.get 14
i32.add
local.set 15
local.get 15
local.set 16
i32.const 0
local.set 17
i32.const 0
local.set 18
local.get 18
i32.load offset=1028
local.set 19
local.get 3
local.get 19
i32.store offset=4
local.get 3
i32.load offset=4
local.set 20
local.get 3
local.get 17
i32.store16 offset=32
local.get 3
local.get 20
i32.store offset=36
local.get 16
i64.load align=4
local.set 21
local.get 0
local.get 21
i64.store align=4
i32.const 0
local.set 22
local.get 22
i32.load
local.set 23
local.get 3
i32.load offset=44
local.set 24
local.get 23
local.set 25
local.get 24
local.set 26
local.get 25
local.get 26
i32.eq
local.set 27
i32.const 1
local.set 28
local.get 27
local.get 28
i32.and
local.set 29
local.get 29
i32.eqz
br_if 1 (;@3;)
i32.const 48
local.set 30
local.get 3
local.get 30
i32.add
local.set 31
local.get 31
global.set 0
return
end
i32.const 0
local.set 32
i32.const 24
local.set 33
local.get 3
local.get 33
i32.add
local.set 34
local.get 34
local.set 35
local.get 35
call $std.io.getStdErr
local.get 3
i32.load16_u offset=24
local.set 36
i32.const 65535
local.set 37
local.get 36
local.get 37
i32.and
local.set 38
i32.const 65535
local.set 39
local.get 32
local.get 39
i32.and
local.set 40
local.get 38
local.get 40
i32.ne
local.set 41
i32.const 1
local.set 42
local.get 41
local.get 42
i32.and
local.set 43
block ;; label = @4
local.get 43
i32.eqz
br_if 0 (;@4;)
i32.const 16
local.set 44
local.get 3
local.get 44
i32.add
local.set 45
local.get 45
local.set 46
local.get 3
i32.load16_u offset=24
local.set 47
local.get 3
local.get 47
i32.store16 offset=16
local.get 46
i64.load align=4
local.set 48
local.get 0
local.get 48
i64.store align=4
i32.const 0
local.set 49
local.get 49
i32.load
local.set 50
local.get 3
i32.load offset=44
local.set 51
local.get 50
local.set 52
local.get 51
local.set 53
local.get 52
local.get 53
i32.eq
local.set 54
i32.const 1
local.set 55
local.get 54
local.get 55
i32.and
local.set 56
local.get 56
i32.eqz
br_if 2 (;@2;)
i32.const 48
local.set 57
local.get 3
local.get 57
i32.add
local.set 58
local.get 58
global.set 0
return
end
i32.const 1036
local.set 59
i32.const 4
local.set 60
local.get 59
local.get 60
i32.add
local.set 61
i32.const 8
local.set 62
local.get 3
local.get 62
i32.add
local.set 63
local.get 63
local.set 64
i32.const 1032
local.set 65
i32.const 24
local.set 66
local.get 3
local.get 66
i32.add
local.set 67
local.get 67
local.set 68
i32.const 4
local.set 69
local.get 68
local.get 69
i32.add
local.set 70
local.get 70
i32.load
local.set 71
i32.const 0
local.set 72
local.get 72
local.get 71
i32.store offset=1032
local.get 64
local.get 65
call $std.os.file.File.outStream
local.get 64
i64.load align=4
local.set 73
i32.const 0
local.set 74
local.get 74
local.get 73
i64.store offset=1036 align=4
local.get 3
local.get 61
i32.store
i32.const 0
local.set 75
local.get 75
local.get 61
i32.store offset=1028
i32.const 0
local.set 76
local.get 76
i64.load offset=1628 align=4
local.set 77
local.get 0
local.get 77
i64.store align=4
i32.const 0
local.set 78
local.get 78
i32.load
local.set 79
local.get 3
i32.load offset=44
local.set 80
local.get 79
local.set 81
local.get 80
local.set 82
local.get 81
local.get 82
i32.eq
local.set 83
i32.const 1
local.set 84
local.get 83
local.get 84
i32.and
local.set 85
local.get 85
i32.eqz
br_if 2 (;@1;)
i32.const 48
local.set 86
local.get 3
local.get 86
i32.add
local.set 87
local.get 87
global.set 0
return
end
call $__stack_chk_fail
unreachable
end
call $__stack_chk_fail
unreachable
end
call $__stack_chk_fail
unreachable)
(func $std.mutex.Held.release (type 5) (param i32)
(local i32 i32 i32 i32)
i32.const 0
local.set 1
local.get 0
i32.load
local.set 2
i32.const 1
local.set 3
local.get 1
local.get 3
i32.and
local.set 4
local.get 2
local.get 4
i32.store8
return)
(func $std.io.OutStream_error_SystemResources_OperationAborted_BrokenPipe_Unexpected_DiskQuota_FileTooBig_InputOutput_NoSpaceLeft_AccessDenied___.print (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 16
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
global.set 0
local.get 4
local.get 0
i32.store offset=12
local.get 4
i32.load offset=12
local.set 5
local.get 4
i32.load offset=12
local.set 6
local.get 6
i32.load
local.set 7
local.get 5
local.get 7
local.get 1
call $std.fmt.format
local.set 8
i32.const 16
local.set 9
local.get 4
local.get 9
i32.add
local.set 10
local.get 10
global.set 0
local.get 8
return)
(func $std.io.getStdErr (type 5) (param i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 1
i32.const 16
local.set 2
local.get 1
local.get 2
i32.sub
local.set 3
local.get 3
global.set 0
local.get 3
local.set 4
i32.const 8
local.set 5
local.get 3
local.get 5
i32.add
local.set 6
local.get 6
local.set 7
i32.const 0
local.set 8
i32.const 2
local.set 9
i32.const 0
local.set 10
local.get 10
i32.load
local.set 11
local.get 3
local.get 11
i32.store offset=12
local.get 7
local.get 9
call $std.os.file.File.openHandle
local.get 3
local.get 8
i32.store16
i32.const 4
local.set 12
local.get 4
local.get 12
i32.add
local.set 13
local.get 7
i32.load
local.set 14
local.get 13
local.get 14
i32.store
local.get 4
i64.load align=4
local.set 15
local.get 0
local.get 15
i64.store align=4
i32.const 0
local.set 16
local.get 16
i32.load
local.set 17
local.get 3
i32.load offset=12
local.set 18
local.get 17
local.set 19
local.get 18
local.set 20
local.get 19
local.get 20
i32.eq
local.set 21
i32.const 1
local.set 22
local.get 21
local.get 22
i32.and
local.set 23
block ;; label = @1
local.get 23
i32.eqz
br_if 0 (;@1;)
i32.const 16
local.set 24
local.get 3
local.get 24
i32.add
local.set 25
local.get 25
global.set 0
return
end
call $__stack_chk_fail
unreachable)
(func $std.os.file.File.outStream (type 11) (param i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 16
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
global.set 0
local.get 4
local.set 5
i32.const 0
local.set 6
local.get 6
i32.load
local.set 7
local.get 4
local.get 7
i32.store offset=12
local.get 1
i32.load
local.set 8
local.get 5
local.get 8
i32.store
i32.const 4
local.set 9
local.get 5
local.get 9
i32.add
local.set 10
i32.const 0
local.set 11
local.get 11
i32.load offset=1636
local.set 12
local.get 10
local.get 12
i32.store
local.get 5
i64.load align=4
local.set 13
local.get 0
local.get 13
i64.store align=4
i32.const 0
local.set 14
local.get 14
i32.load
local.set 15
local.get 4
i32.load offset=12
local.set 16
local.get 15
local.set 17
local.get 16
local.set 18
local.get 17
local.get 18
i32.eq
local.set 19
i32.const 1
local.set 20
local.get 19
local.get 20
i32.and
local.set 21
block ;; label = @1
local.get 21
i32.eqz
br_if 0 (;@1;)
i32.const 16
local.set 22
local.get 4
local.get 22
i32.add
local.set 23
local.get 23
global.set 0
return
end
call $__stack_chk_fail
unreachable)
(func $std.fmt.format (type 4) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 3
i32.const 16
local.set 4
local.get 3
local.get 4
i32.sub
local.set 5
local.get 5
global.set 0
i32.const 0
local.set 6
local.get 5
local.get 0
i32.store offset=8
local.get 5
local.get 1
i32.store offset=4
local.get 5
i32.load offset=8
local.set 7
local.get 5
i32.load offset=4
local.set 8
local.get 2
local.get 7
local.get 8
call $std.fmt.formatType
local.set 9
local.get 5
local.get 9
i32.store16 offset=14
i32.const 65535
local.set 10
local.get 9
local.get 10
i32.and
local.set 11
i32.const 65535
local.set 12
local.get 6
local.get 12
i32.and
local.set 13
local.get 11
local.get 13
i32.ne
local.set 14
i32.const 1
local.set 15
local.get 14
local.get 15
i32.and
local.set 16
block ;; label = @1
local.get 16
i32.eqz
br_if 0 (;@1;)
local.get 5
i32.load16_u offset=14
local.set 17
i32.const 16
local.set 18
local.get 5
local.get 18
i32.add
local.set 19
local.get 19
global.set 0
local.get 17
return
end
i32.const 0
local.set 20
i32.const 16
local.set 21
local.get 5
local.get 21
i32.add
local.set 22
local.get 22
global.set 0
local.get 20
return)
(func $std.os.file.File.openHandle (type 11) (param i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 16
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
global.set 0
i32.const 8
local.set 5
local.get 4
local.get 5
i32.add
local.set 6
local.get 6
local.set 7
i32.const 0
local.set 8
local.get 8
i32.load
local.set 9
local.get 4
local.get 9
i32.store offset=12
local.get 4
local.get 1
i32.store offset=4
local.get 4
i32.load offset=4
local.set 10
local.get 4
local.get 10
i32.store offset=8
local.get 7
i32.load
local.set 11
local.get 0
local.get 11
i32.store
i32.const 0
local.set 12
local.get 12
i32.load
local.set 13
local.get 4
i32.load offset=12
local.set 14
local.get 13
local.set 15
local.get 14
local.set 16
local.get 15
local.get 16
i32.eq
local.set 17
i32.const 1
local.set 18
local.get 17
local.get 18
i32.and
local.set 19
block ;; label = @1
local.get 19
i32.eqz
br_if 0 (;@1;)
i32.const 16
local.set 20
local.get 4
local.get 20
i32.add
local.set 21
local.get 21
global.set 0
return
end
call $__stack_chk_fail
unreachable)
(func $std.os.file.OutStream.writeFn (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 16
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
global.set 0
local.get 4
local.get 0
i32.store offset=12
local.get 4
i32.load offset=12
local.set 5
i32.const 4
local.set 6
local.get 5
local.get 6
i32.sub
local.set 7
local.get 4
local.get 7
i32.store offset=8
local.get 4
i32.load offset=8
local.set 8
local.get 8
local.get 1
call $std.os.file.File.write
local.set 9
i32.const 16
local.set 10
local.get 4
local.get 10
i32.add
local.set 11
local.get 11
global.set 0
local.get 9
return)
(func $std.os.file.File.write (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 16
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
global.set 0
i32.const 0
local.set 5
local.get 0
i32.load
local.set 6
local.get 6
local.get 1
call $std.os.posixWrite
local.set 7
local.get 4
local.get 7
i32.store16 offset=14
i32.const 65535
local.set 8
local.get 7
local.get 8
i32.and
local.set 9
i32.const 65535
local.set 10
local.get 5
local.get 10
i32.and
local.set 11
local.get 9
local.get 11
i32.ne
local.set 12
i32.const 1
local.set 13
local.get 12
local.get 13
i32.and
local.set 14
block ;; label = @1
local.get 14
i32.eqz
br_if 0 (;@1;)
local.get 4
i32.load16_u offset=14
local.set 15
i32.const 16
local.set 16
local.get 4
local.get 16
i32.add
local.set 17
local.get 17
global.set 0
local.get 15
return
end
i32.const 0
local.set 18
i32.const 16
local.set 19
local.get 4
local.get 19
i32.add
local.set 20
local.get 20
global.set 0
local.get 18
return)
(func $std.fmt.formatType (type 4) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 3
i32.const 32
local.set 4
local.get 3
local.get 4
i32.sub
local.set 5
local.get 5
global.set 0
i32.const 16
local.set 6
local.get 5
local.get 6
i32.add
local.set 7
local.get 7
local.set 8
i32.const 0
local.set 9
local.get 9
i32.load
local.set 10
local.get 5
local.get 10
i32.store offset=28
local.get 5
local.get 1
i32.store offset=12
local.get 5
local.get 2
i32.store offset=8
local.get 0
i64.load align=4
local.set 11
local.get 8
local.get 11
i64.store align=4
local.get 5
i32.load offset=8
local.set 12
local.get 5
i32.load offset=12
local.set 13
local.get 13
local.get 8
local.get 12
call_indirect (type 0)
local.set 14
i32.const 0
local.set 15
local.get 15
i32.load
local.set 16
local.get 5
i32.load offset=28
local.set 17
local.get 16
local.set 18
local.get 17
local.set 19
local.get 18
local.get 19
i32.eq
local.set 20
i32.const 1
local.set 21
local.get 20
local.get 21
i32.and
local.set 22
block ;; label = @1
local.get 22
i32.eqz
br_if 0 (;@1;)
i32.const 32
local.set 23
local.get 5
local.get 23
i32.add
local.set 24
local.get 24
global.set 0
local.get 14
return
end
call $__stack_chk_fail
unreachable)
(func $std.os.posixWrite (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 32
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
global.set 0
i32.const 0
local.set 5
local.get 4
local.get 0
i32.store offset=28
local.get 4
local.get 5
i32.store offset=24
loop ;; label = @1
local.get 4
i32.load offset=24
local.set 6
local.get 1
i32.load offset=4
local.set 7
local.get 6
local.set 8
local.get 7
local.set 9
local.get 8
local.get 9
i32.lt_u
local.set 10
i32.const 1
local.set 11
local.get 10
local.get 11
i32.and
local.set 12
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 12
i32.eqz
br_if 0 (;@4;)
local.get 1
i32.load offset=4
local.set 13
local.get 4
i32.load offset=24
local.set 14
local.get 13
local.get 14
i32.sub
local.set 15
local.get 15
local.get 13
i32.gt_u
local.set 16
i32.const 1
local.set 17
local.get 16
local.get 17
i32.and
local.set 18
local.get 18
br_if 1 (;@3;)
br 2 (;@2;)
end
i32.const 0
local.set 57
i32.const 32
local.set 58
local.get 4
local.get 58
i32.add
local.set 59
local.get 59
global.set 0
local.get 57
return
end
i32.const 1656
local.set 60
i32.const 0
local.set 61
local.get 60
local.get 61
call $std.special.panic
unreachable
end
i32.const 2147479552
local.set 62
local.get 15
local.get 62
call $std.math.min
local.set 63
local.get 4
local.get 63
i32.store offset=20
local.get 4
i32.load offset=28
local.set 64
local.get 1
i32.load
local.set 65
local.get 4
i32.load offset=24
local.set 66
local.get 65
local.get 66
i32.add
local.set 67
local.get 4
i32.load offset=20
local.set 68
local.get 64
local.get 67
local.get 68
call $std.os.wasi.write
local.set 69
local.get 4
local.get 69
i32.store offset=16
local.get 4
i32.load offset=16
local.set 70
local.get 70
call $std.os.wasi.getErrno
local.set 71
local.get 4
local.get 71
i32.store offset=12
local.get 4
i32.load offset=12
local.set 72
i32.const 64
local.set 73
local.get 72
local.get 73
i32.gt_u
local.set 74
block ;; label = @2
local.get 74
br_if 0 (;@2;)
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @13
block ;; label = @14
block ;; label = @15
local.get 72
br_table 12 (;@3;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 8 (;@7;) 13 (;@2;) 7 (;@8;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 6 (;@9;) 13 (;@2;) 5 (;@10;) 13 (;@2;) 9 (;@6;) 4 (;@11;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 11 (;@4;) 10 (;@5;) 3 (;@12;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 2 (;@13;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 13 (;@2;) 1 (;@14;) 0 (;@15;) 12 (;@3;)
end
i32.const 3
local.set 54
i32.const 32
local.set 55
local.get 4
local.get 55
i32.add
local.set 56
local.get 56
global.set 0
local.get 54
return
end
i32.const 9
local.set 51
i32.const 32
local.set 52
local.get 4
local.get 52
i32.add
local.set 53
local.get 53
global.set 0
local.get 51
return
end
i32.const 8
local.set 48
i32.const 32
local.set 49
local.get 4
local.get 49
i32.add
local.set 50
local.get 50
global.set 0
local.get 48
return
end
i32.const 7
local.set 45
i32.const 32
local.set 46
local.get 4
local.get 46
i32.add
local.set 47
local.get 47
global.set 0
local.get 45
return
end
i32.const 6
local.set 42
i32.const 32
local.set 43
local.get 4
local.get 43
i32.add
local.set 44
local.get 44
global.set 0
local.get 42
return
end
i32.const 5
local.set 39
i32.const 32
local.set 40
local.get 4
local.get 40
i32.add
local.set 41
local.get 41
global.set 0
local.get 39
return
end
i32.const 1592
local.set 37
i32.const 0
local.set 38
local.get 37
local.get 38
call $std.special.panic
unreachable
end
i32.const 1592
local.set 35
i32.const 0
local.set 36
local.get 35
local.get 36
call $std.special.panic
unreachable
end
i32.const 1592
local.set 33
i32.const 0
local.set 34
local.get 33
local.get 34
call $std.special.panic
unreachable
end
i32.const 1592
local.set 31
i32.const 0
local.set 32
local.get 31
local.get 32
call $std.special.panic
unreachable
end
i32.const 1592
local.set 29
i32.const 0
local.set 30
local.get 29
local.get 30
call $std.special.panic
unreachable
end
br 2 (;@1;)
end
local.get 4
i32.load offset=24
local.set 23
local.get 4
i32.load offset=16
local.set 24
local.get 23
local.get 24
i32.add
local.set 25
local.get 25
local.get 23
i32.lt_u
local.set 26
i32.const 1
local.set 27
local.get 26
local.get 27
i32.and
local.set 28
block ;; label = @3
local.get 28
i32.eqz
br_if 0 (;@3;)
i32.const 1656
local.set 75
i32.const 0
local.set 76
local.get 75
local.get 76
call $std.special.panic
unreachable
end
local.get 4
local.get 25
i32.store offset=24
br 1 (;@1;)
end
end
local.get 4
i32.load offset=12
local.set 19
local.get 19
call $std.os.unexpectedErrorPosix
local.set 20
i32.const 32
local.set 21
local.get 4
local.get 21
i32.add
local.set 22
local.get 22
global.set 0
local.get 20
return)
(func $std.math.min (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 2
i32.const 16
local.set 3
local.get 2
local.get 3
i32.sub
local.set 4
local.get 4
local.get 0
i32.store offset=12
local.get 4
local.get 1
i32.store offset=8
local.get 4
i32.load offset=12
local.set 5
local.get 4
i32.load offset=8
local.set 6
local.get 5
local.set 7
local.get 6
local.set 8
local.get 7
local.get 8
i32.lt_u
local.set 9
i32.const 1
local.set 10
local.get 9
local.get 10
i32.and
local.set 11
block ;; label = @1
block ;; label = @2
local.get 11
i32.eqz
br_if 0 (;@2;)
local.get 4
i32.load offset=12
local.set 12
local.get 12
local.set 13
br 1 (;@1;)
end
local.get 4
i32.load offset=8
local.set 14
local.get 14
local.set 13
end
local.get 13
local.set 15
local.get 15
return)
(func $std.os.wasi.write (type 4) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 3
i32.const 48
local.set 4
local.get 3
local.get 4
i32.sub
local.set 5
local.get 5
global.set 0
i32.const 1
local.set 6
i32.const 12
local.set 7
local.get 5
local.get 7
i32.add
local.set 8
local.get 8
local.set 9
i32.const 24
local.set 10
local.get 5
local.get 10
i32.add
local.set 11
local.get 11
local.set 12
i32.const 32
local.set 13
local.get 5
local.get 13
i32.add
local.set 14
local.get 14
local.set 15
i32.const 16
local.set 16
local.get 5
local.get 16
i32.add
local.set 17
local.get 17
local.set 18
i32.const 0
local.set 19
local.get 19
i32.load
local.set 20
local.get 5
local.get 20
i32.store offset=44
local.get 5
local.get 0
i32.store offset=8
local.get 5
local.get 1
i32.store offset=4
local.get 5
local.get 2
i32.store
i32.const -1431655766
local.set 21
local.get 9
local.get 21
i32.store
local.get 5
i32.load offset=4
local.set 22
local.get 5
i32.load
local.set 23
local.get 5
local.get 22
i32.store offset=16
local.get 5
local.get 23
i32.store offset=20
local.get 18
i64.load align=4
local.set 24
local.get 15
local.get 24
i64.store align=4
local.get 15
i64.load align=4
local.set 25
local.get 12
local.get 25
i64.store align=4
local.get 5
i32.load offset=8
local.set 26
local.get 26
local.get 12
local.get 6
local.get 9
call $fd_write
drop
local.get 5
i32.load offset=12
local.set 27
i32.const 0
local.set 28
local.get 28
i32.load
local.set 29
local.get 5
i32.load offset=44
local.set 30
local.get 29
local.set 31
local.get 30
local.set 32
local.get 31
local.get 32
i32.eq
local.set 33
i32.const 1
local.set 34
local.get 33
local.get 34
i32.and
local.set 35
block ;; label = @1
local.get 35
i32.eqz
br_if 0 (;@1;)
i32.const 48
local.set 36
local.get 5
local.get 36
i32.add
local.set 37
local.get 37
global.set 0
local.get 27
return
end
call $__stack_chk_fail
unreachable)
(func $std.os.wasi.getErrno (type 1) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 1
i32.const 16
local.set 2
local.get 1
local.get 2
i32.sub
local.set 3
local.get 3
global.set 0
i32.const -4096
local.set 4
local.get 3
local.get 0
i32.store offset=12
local.get 3
i32.load offset=12
local.set 5
local.get 3
local.get 5
i32.store offset=8
local.get 3
i32.load offset=8
local.set 6
local.get 6
local.set 7
local.get 4
local.set 8
local.get 7
local.get 8
i32.gt_s
local.set 9
i32.const 1
local.set 10
local.get 9
local.get 10
i32.and
local.set 11
local.get 9
local.set 12
block ;; label = @1
local.get 11
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.set 13
local.get 3
i32.load offset=8
local.set 14
local.get 14
local.set 15
local.get 13
local.set 16
local.get 15
local.get 16
i32.lt_s
local.set 17
local.get 17
local.set 12
end
local.get 12
local.set 18
i32.const 1
local.set 19
local.get 18
local.get 19
i32.and
local.set 20
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 20
i32.eqz
br_if 0 (;@4;)
local.get 3
i32.load offset=8
local.set 21
i32.const 0
local.set 22
local.get 22
local.get 21
i32.sub
local.set 23
local.get 21
local.get 23
i32.and
local.set 24
local.get 24
local.get 22
i32.lt_s
local.set 25
i32.const 1
local.set 26
local.get 25
local.get 26
i32.and
local.set 27
local.get 27
br_if 1 (;@3;)
br 2 (;@2;)
end
i32.const 0
local.set 28
local.get 28
local.set 29
br 2 (;@1;)
end
i32.const 1656
local.set 33
i32.const 0
local.set 34
local.get 33
local.get 34
call $std.special.panic
unreachable
end
i32.const 0
local.set 35
local.get 23
local.set 36
local.get 35
local.set 37
local.get 36
local.get 37
i32.ge_s
local.set 38
i32.const 1
local.set 39
local.get 38
local.get 39
i32.and
local.set 40
block ;; label = @2
local.get 40
i32.eqz
br_if 0 (;@2;)
local.get 23
local.set 29
br 1 (;@1;)
end
i32.const 1716
local.set 41
i32.const 0
local.set 42
local.get 41
local.get 42
call $std.special.panic
unreachable
end
local.get 29
local.set 30
i32.const 16
local.set 31
local.get 3
local.get 31
i32.add
local.set 32
local.get 32
global.set 0
local.get 30
return)
(func $std.os.unexpectedErrorPosix (type 1) (param i32) (result i32)
(local i32 i32 i32 i32)
global.get 0
local.set 1
i32.const 16
local.set 2
local.get 1
local.get 2
i32.sub
local.set 3
i32.const 4
local.set 4
local.get 3
local.get 0
i32.store offset=12
local.get 4
return)
(func $main (type 4) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
local.set 3
i32.const 64
local.set 4
local.get 3
local.get 4
i32.sub
local.set 5
local.get 5
global.set 0
i32.const 0
local.set 6
i32.const 0
local.set 7
local.get 7
i32.load
local.set 8
local.get 5
local.get 8
i32.store offset=60
local.get 5
local.get 0
i32.store offset=16
local.get 5
local.get 1
i32.store offset=12
local.get 5
local.get 2
i32.store offset=8
local.get 5
local.get 6
i32.store offset=4
block ;; label = @1
block ;; label = @2
loop ;; label = @3
i32.const 0
local.set 9
local.get 5
i32.load offset=4
local.set 10
local.get 5
i32.load offset=8
local.set 11
i32.const 2
local.set 12
local.get 10
local.get 12
i32.shl
local.set 13
local.get 11
local.get 13
i32.add
local.set 14
local.get 14
i32.load
local.set 15
local.get 15
local.set 16
local.get 9
local.set 17
local.get 16
local.get 17
i32.ne
local.set 18
i32.const 1
local.set 19
local.get 18
local.get 19
i32.and
local.set 20
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 20
i32.eqz
br_if 0 (;@6;)
local.get 5
i32.load offset=4
local.set 21
i32.const 1
local.set 22
local.get 21
local.get 22
i32.add
local.set 23
local.get 23
local.get 21
i32.lt_u
local.set 24
i32.const 1
local.set 25
local.get 24
local.get 25
i32.and
local.set 26
local.get 26
br_if 1 (;@5;)
br 2 (;@4;)
end
i32.const 0
local.set 27
local.get 5
i32.load offset=8
local.set 28
local.get 28
local.set 29
local.get 27
local.set 30
local.get 29
local.get 30
i32.ne
local.set 31
i32.const 1
local.set 32
local.get 31
local.get 32
i32.and
local.set 33
local.get 33
br_if 4 (;@1;)
br 3 (;@2;)
end
i32.const 1656
local.set 34
i32.const 0
local.set 35
local.get 34
local.get 35
call $std.special.panic
unreachable
end
local.get 5
local.get 23
i32.store offset=4
br 0 (;@3;)
end
end
i32.const 1756
local.set 36
i32.const 0
local.set 37
local.get 36
local.get 37
call $std.special.panic
unreachable
end
i32.const 0
local.set 38
local.get 5
local.get 28
i32.store offset=20
local.get 5
i32.load offset=4
local.set 39
local.get 5
i32.load offset=20
local.set 40
local.get 38
local.set 41
local.get 39
local.set 42
local.get 41
local.get 42
i32.le_u
local.set 43
i32.const 1
local.set 44
local.get 43
local.get 44
i32.and
local.set 45
block ;; label = @1
local.get 45
br_if 0 (;@1;)
i32.const 1784
local.set 46
i32.const 0
local.set 47
local.get 46
local.get 47
call $std.special.panic
unreachable
end
i32.const 0
local.set 48
i32.const 32
local.set 49
local.get 5
local.get 49
i32.add
local.set 50
local.get 50
local.set 51
i32.const 40
local.set 52
local.get 5
local.get 52
i32.add
local.set 53
local.get 53
local.set 54
local.get 5
local.get 40
i32.store offset=40
i32.const 0
local.set 55
local.get 39
local.get 55
i32.sub
local.set 56
local.get 5
local.get 56
i32.store offset=44
local.get 54
i64.load align=4
local.set 57
local.get 51
local.get 57
i64.store align=4
local.get 5
i32.load offset=16
local.set 58
local.get 58
local.set 59
local.get 48
local.set 60
local.get 59
local.get 60
i32.ge_s
local.set 61
i32.const 1
local.set 62
local.get 61
local.get 62
i32.and
local.set 63
block ;; label = @1
block ;; label = @2
local.get 63
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.set 64
i32.const 32
local.set 65
local.get 5
local.get 65
i32.add
local.set 66
local.get 66
local.set 67
i32.const 48
local.set 68
local.get 5
local.get 68
i32.add
local.set 69
local.get 69
local.set 70
local.get 5
i32.load offset=12
local.set 71
local.get 5
local.get 58
i32.store offset=28
local.get 5
local.get 71
i32.store offset=24
local.get 5
i32.load offset=28
local.set 72
local.get 5
i32.load offset=24
local.set 73
local.get 5
local.get 73
i32.store offset=48
local.get 5
local.get 72
i32.store offset=52
local.get 70
i64.load align=4
local.set 74
i32.const 0
local.set 75
local.get 75
local.get 74
i64.store offset=1044 align=4
local.get 67
i64.load align=4
local.set 76
i32.const 0
local.set 77
local.get 77
local.get 76
i64.store offset=1052 align=4
call $main.0
i32.const 255
local.set 78
local.get 64
local.get 78
i32.and
local.set 79
i32.const 0
local.set 80
local.get 80
i32.load
local.set 81
local.get 5
i32.load offset=60
local.set 82
local.get 81
local.set 83
local.get 82
local.set 84
local.get 83
local.get 84
i32.eq
local.set 85
i32.const 1
local.set 86
local.get 85
local.get 86
i32.and
local.set 87
local.get 87
i32.eqz
br_if 1 (;@1;)
i32.const 64
local.set 88
local.get 5
local.get 88
i32.add
local.set 89
local.get 89
global.set 0
local.get 79
return
end
i32.const 1716
local.set 90
i32.const 0
local.set 91
local.get 90
local.get 91
call $std.special.panic
unreachable
end
call $__stack_chk_fail
unreachable)
(func $main.0 (type 2)
return)
(func $_start (type 2)
(local i32 i32 i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 0
global.set 0
call $__wasilibc_init_preopen
i32.const 3
local.set 1
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
loop ;; label = @5
local.get 1
local.get 0
call $__wasi_fd_prestat_get
local.tee 2
i32.const 8
i32.eq
br_if 1 (;@4;)
local.get 2
br_if 3 (;@2;)
block ;; label = @6
local.get 0
i32.load8_u
br_if 0 (;@6;)
local.get 0
i32.load offset=4
i32.const 1
i32.add
call $malloc
local.tee 2
i32.eqz
br_if 4 (;@2;)
local.get 1
local.get 2
local.get 0
i32.load offset=4
call $__wasi_fd_prestat_dir_name
br_if 3 (;@3;)
local.get 2
local.get 0
i32.load offset=4
i32.add
i32.const 0
i32.store8
local.get 1
local.get 2
call $__wasilibc_register_preopened_fd
local.set 3
local.get 2
call $free
local.get 3
br_if 4 (;@2;)
end
local.get 1
i32.const 1
i32.add
local.tee 1
br_if 0 (;@5;)
end
end
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 0
local.get 0
i32.const 12
i32.add
call $__wasi_environ_sizes_get
br_if 0 (;@6;)
local.get 0
i32.load
local.tee 1
i32.eqz
br_if 1 (;@5;)
i32.const 0
local.get 1
i32.const 2
i32.shl
i32.const 4
i32.add
call $malloc
i32.store offset=1564
local.get 0
i32.load offset=12
call $malloc
local.tee 1
i32.eqz
br_if 0 (;@6;)
i32.const 0
i32.load offset=1564
local.tee 2
i32.eqz
br_if 0 (;@6;)
local.get 2
local.get 0
i32.load
i32.const 2
i32.shl
i32.add
i32.const 0
i32.store
i32.const 0
i32.load offset=1564
local.get 1
call $__wasi_environ_get
i32.eqz
br_if 2 (;@4;)
end
i32.const 71
call $_Exit
unreachable
end
i32.const 0
i32.const 0
i32.store offset=1564
end
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 0
i32.const 12
i32.add
local.get 0
call $__wasi_args_sizes_get
br_if 0 (;@6;)
local.get 0
i32.load offset=12
local.tee 1
i32.eqz
br_if 1 (;@5;)
local.get 1
i32.const 2
i32.shl
call $malloc
local.set 1
local.get 0
i32.load
call $malloc
local.set 2
local.get 1
i32.eqz
br_if 0 (;@6;)
local.get 2
i32.eqz
br_if 0 (;@6;)
local.get 1
local.get 2
call $__wasi_args_get
i32.eqz
br_if 2 (;@4;)
end
i32.const 71
call $_Exit
unreachable
end
end
call $__wasm_call_ctors
local.get 0
i32.load offset=12
local.get 1
call $main
local.set 1
call $__prepare_for_exit
local.get 1
br_if 2 (;@1;)
local.get 0
i32.const 16
i32.add
global.set 0
return
end
local.get 2
call $free
end
i32.const 71
call $_Exit
unreachable
end
local.get 1
call $_Exit
unreachable)
(func $malloc (type 1) (param i32) (result i32)
local.get 0
call $dlmalloc)
(func $dlmalloc (type 1) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 1
global.set 0
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @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
local.get 0
i32.const 244
i32.gt_u
br_if 0 (;@38;)
i32.const 0
i32.load offset=1060
local.tee 2
i32.const 16
local.get 0
i32.const 11
i32.add
i32.const -8
i32.and
local.get 0
i32.const 11
i32.lt_u
select
local.tee 3
i32.const 3
i32.shr_u
local.tee 4
i32.shr_u
local.tee 0
i32.const 3
i32.and
i32.eqz
br_if 1 (;@37;)
local.get 0
i32.const -1
i32.xor
i32.const 1
i32.and
local.get 4
i32.add
local.tee 5
i32.const 3
i32.shl
local.tee 6
i32.const 1108
i32.add
i32.load
local.tee 4
i32.const 8
i32.add
local.set 0
local.get 4
i32.load offset=8
local.tee 3
local.get 6
i32.const 1100
i32.add
local.tee 6
i32.eq
br_if 2 (;@36;)
local.get 3
local.get 6
i32.store offset=12
local.get 6
i32.const 8
i32.add
local.get 3
i32.store
br 3 (;@35;)
end
i32.const -1
local.set 3
local.get 0
i32.const -65
i32.gt_u
br_if 14 (;@23;)
local.get 0
i32.const 11
i32.add
local.tee 0
i32.const -8
i32.and
local.set 3
i32.const 0
i32.load offset=1064
local.tee 7
i32.eqz
br_if 14 (;@23;)
i32.const 0
local.set 8
block ;; label = @38
local.get 0
i32.const 8
i32.shr_u
local.tee 0
i32.eqz
br_if 0 (;@38;)
i32.const 31
local.set 8
local.get 3
i32.const 16777215
i32.gt_u
br_if 0 (;@38;)
local.get 3
i32.const 14
local.get 0
local.get 0
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 4
i32.shl
local.tee 0
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 5
local.get 4
i32.or
local.get 0
local.get 5
i32.shl
local.tee 0
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
i32.sub
local.get 0
local.get 4
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 0
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 0
i32.const 1
i32.shl
i32.or
local.set 8
end
i32.const 0
local.get 3
i32.sub
local.set 5
local.get 8
i32.const 2
i32.shl
i32.const 1364
i32.add
i32.load
local.tee 4
i32.eqz
br_if 3 (;@34;)
local.get 3
i32.const 0
i32.const 25
local.get 8
i32.const 1
i32.shr_u
i32.sub
local.get 8
i32.const 31
i32.eq
select
i32.shl
local.set 6
i32.const 0
local.set 0
i32.const 0
local.set 9
loop ;; label = @38
block ;; label = @39
local.get 4
i32.load offset=4
i32.const -8
i32.and
local.get 3
i32.sub
local.tee 2
local.get 5
i32.ge_u
br_if 0 (;@39;)
local.get 2
local.set 5
local.get 4
local.set 9
local.get 2
i32.eqz
br_if 8 (;@31;)
end
local.get 0
local.get 4
i32.const 20
i32.add
i32.load
local.tee 2
local.get 2
local.get 4
local.get 6
i32.const 29
i32.shr_u
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
i32.load
local.tee 4
i32.eq
select
local.get 0
local.get 2
select
local.set 0
local.get 6
local.get 4
i32.const 0
i32.ne
i32.shl
local.set 6
local.get 4
br_if 0 (;@38;)
end
local.get 0
local.get 9
i32.or
i32.eqz
br_if 4 (;@33;)
br 11 (;@26;)
end
local.get 3
i32.const 0
i32.load offset=1068
local.tee 7
i32.le_u
br_if 13 (;@23;)
local.get 0
i32.eqz
br_if 4 (;@32;)
local.get 0
local.get 4
i32.shl
i32.const 2
local.get 4
i32.shl
local.tee 0
i32.const 0
local.get 0
i32.sub
i32.or
i32.and
local.tee 0
i32.const 0
local.get 0
i32.sub
i32.and
i32.const -1
i32.add
local.tee 0
local.get 0
i32.const 12
i32.shr_u
i32.const 16
i32.and
local.tee 0
i32.shr_u
local.tee 4
i32.const 5
i32.shr_u
i32.const 8
i32.and
local.tee 5
local.get 0
i32.or
local.get 4
local.get 5
i32.shr_u
local.tee 0
i32.const 2
i32.shr_u
i32.const 4
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 1
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
i32.add
local.tee 5
i32.const 3
i32.shl
local.tee 6
i32.const 1108
i32.add
i32.load
local.tee 4
i32.load offset=8
local.tee 0
local.get 6
i32.const 1100
i32.add
local.tee 6
i32.eq
br_if 6 (;@30;)
local.get 0
local.get 6
i32.store offset=12
local.get 6
i32.const 8
i32.add
local.get 0
i32.store
br 7 (;@29;)
end
i32.const 0
local.get 2
i32.const -2
local.get 5
i32.rotl
i32.and
i32.store offset=1060
end
local.get 4
local.get 5
i32.const 3
i32.shl
local.tee 5
i32.const 3
i32.or
i32.store offset=4
local.get 4
local.get 5
i32.add
local.tee 4
local.get 4
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
br 33 (;@1;)
end
i32.const 0
local.set 0
i32.const 0
local.set 9
i32.const 0
i32.const 0
i32.or
br_if 7 (;@26;)
end
i32.const 2
local.get 8
i32.shl
local.tee 0
i32.const 0
local.get 0
i32.sub
i32.or
local.get 7
i32.and
local.tee 0
i32.eqz
br_if 9 (;@23;)
local.get 0
i32.const 0
local.get 0
i32.sub
i32.and
i32.const -1
i32.add
local.tee 0
local.get 0
i32.const 12
i32.shr_u
i32.const 16
i32.and
local.tee 0
i32.shr_u
local.tee 4
i32.const 5
i32.shr_u
i32.const 8
i32.and
local.tee 6
local.get 0
i32.or
local.get 4
local.get 6
i32.shr_u
local.tee 0
i32.const 2
i32.shr_u
i32.const 4
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 1
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
i32.add
i32.const 2
i32.shl
i32.const 1364
i32.add
i32.load
local.tee 0
br_if 7 (;@25;)
br 8 (;@24;)
end
i32.const 0
i32.load offset=1064
local.tee 10
i32.eqz
br_if 8 (;@23;)
local.get 10
i32.const 0
local.get 10
i32.sub
i32.and
i32.const -1
i32.add
local.tee 0
local.get 0
i32.const 12
i32.shr_u
i32.const 16
i32.and
local.tee 0
i32.shr_u
local.tee 4
i32.const 5
i32.shr_u
i32.const 8
i32.and
local.tee 5
local.get 0
i32.or
local.get 4
local.get 5
i32.shr_u
local.tee 0
i32.const 2
i32.shr_u
i32.const 4
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
local.tee 0
i32.const 1
i32.shr_u
i32.const 1
i32.and
local.tee 4
i32.or
local.get 0
local.get 4
i32.shr_u
i32.add
i32.const 2
i32.shl
i32.const 1364
i32.add
i32.load
local.tee 6
i32.load offset=4
i32.const -8
i32.and
local.get 3
i32.sub
local.set 5
local.get 6
local.tee 9
i32.load offset=16
local.tee 0
i32.eqz
br_if 3 (;@28;)
i32.const 1
local.set 4
br 4 (;@27;)
end
i32.const 0
local.set 5
local.get 4
local.set 9
local.get 4
local.set 0
br 5 (;@25;)
end
i32.const 0
local.get 2
i32.const -2
local.get 5
i32.rotl
i32.and
local.tee 2
i32.store offset=1060
end
local.get 4
i32.const 8
i32.add
local.set 0
local.get 4
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 4
local.get 5
i32.const 3
i32.shl
local.tee 5
i32.add
local.get 5
local.get 3
i32.sub
local.tee 5
i32.store
local.get 4
local.get 3
i32.add
local.tee 6
local.get 5
i32.const 1
i32.or
i32.store offset=4
block ;; label = @29
local.get 7
i32.eqz
br_if 0 (;@29;)
local.get 7
i32.const 3
i32.shr_u
local.tee 9
i32.const 3
i32.shl
i32.const 1100
i32.add
local.set 3
i32.const 0
i32.load offset=1080
local.set 4
block ;; label = @30
block ;; label = @31
local.get 2
i32.const 1
local.get 9
i32.shl
local.tee 9
i32.and
i32.eqz
br_if 0 (;@31;)
local.get 3
i32.load offset=8
local.set 9
br 1 (;@30;)
end
i32.const 0
local.get 2
local.get 9
i32.or
i32.store offset=1060
local.get 3
local.set 9
end
local.get 9
local.get 4
i32.store offset=12
local.get 3
local.get 4
i32.store offset=8
local.get 4
local.get 3
i32.store offset=12
local.get 4
local.get 9
i32.store offset=8
end
i32.const 0
local.get 6
i32.store offset=1080
i32.const 0
local.get 5
i32.store offset=1068
br 27 (;@1;)
end
i32.const 0
local.set 4
end
block ;; label = @27
block ;; label = @28
loop ;; label = @29
block ;; label = @30
block ;; label = @31
block ;; label = @32
block ;; label = @33
local.get 4
br_table 1 (;@32;) 0 (;@33;) 0 (;@33;)
end
local.get 0
i32.load offset=4
i32.const -8
i32.and
local.get 3
i32.sub
local.tee 4
local.get 5
local.get 4
local.get 5
i32.lt_u
local.tee 4
select
local.set 5
local.get 0
local.get 6
local.get 4
select
local.set 6
local.get 0
local.tee 9
i32.load offset=16
local.tee 0
br_if 1 (;@31;)
i32.const 0
local.set 4
br 3 (;@29;)
end
local.get 9
i32.const 20
i32.add
i32.load
local.tee 0
br_if 1 (;@30;)
local.get 6
local.get 3
i32.add
local.tee 11
local.get 6
i32.le_u
br_if 8 (;@23;)
local.get 6
i32.load offset=24
local.set 12
block ;; label = @32
local.get 6
i32.load offset=12
local.tee 9
local.get 6
i32.eq
br_if 0 (;@32;)
local.get 6
i32.load offset=8
local.tee 0
local.get 9
i32.store offset=12
local.get 9
local.get 0
i32.store offset=8
local.get 12
br_if 4 (;@28;)
br 5 (;@27;)
end
block ;; label = @32
block ;; label = @33
local.get 6
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 0
br_if 0 (;@33;)
local.get 6
i32.load offset=16
local.tee 0
i32.eqz
br_if 1 (;@32;)
local.get 6
i32.const 16
i32.add
local.set 4
end
loop ;; label = @33
local.get 4
local.set 8
local.get 0
local.tee 9
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 0
br_if 0 (;@33;)
local.get 9
i32.const 16
i32.add
local.set 4
local.get 9
i32.load offset=16
local.tee 0
br_if 0 (;@33;)
end
local.get 8
i32.const 0
i32.store
local.get 12
i32.eqz
br_if 5 (;@27;)
br 4 (;@28;)
end
i32.const 0
local.set 9
local.get 12
br_if 3 (;@28;)
br 4 (;@27;)
end
i32.const 1
local.set 4
br 1 (;@29;)
end
i32.const 1
local.set 4
br 0 (;@29;)
end
end
block ;; label = @28
block ;; label = @29
block ;; label = @30
local.get 6
local.get 6
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1364
i32.add
local.tee 0
i32.load
i32.eq
br_if 0 (;@30;)
local.get 12
i32.const 16
i32.const 20
local.get 12
i32.load offset=16
local.get 6
i32.eq
select
i32.add
local.get 9
i32.store
local.get 9
br_if 1 (;@29;)
br 3 (;@27;)
end
local.get 0
local.get 9
i32.store
local.get 9
i32.eqz
br_if 1 (;@28;)
end
local.get 9
local.get 12
i32.store offset=24
block ;; label = @29
local.get 6
i32.load offset=16
local.tee 0
i32.eqz
br_if 0 (;@29;)
local.get 9
local.get 0
i32.store offset=16
local.get 0
local.get 9
i32.store offset=24
end
local.get 6
i32.const 20
i32.add
i32.load
local.tee 0
i32.eqz
br_if 1 (;@27;)
local.get 9
i32.const 20
i32.add
local.get 0
i32.store
local.get 0
local.get 9
i32.store offset=24
br 1 (;@27;)
end
i32.const 0
local.get 10
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1064
end
block ;; label = @27
block ;; label = @28
local.get 5
i32.const 15
i32.gt_u
br_if 0 (;@28;)
local.get 6
local.get 5
local.get 3
i32.add
local.tee 0
i32.const 3
i32.or
i32.store offset=4
local.get 6
local.get 0
i32.add
local.tee 0
local.get 0
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
br 1 (;@27;)
end
local.get 11
local.get 5
i32.const 1
i32.or
i32.store offset=4
local.get 6
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 11
local.get 5
i32.add
local.get 5
i32.store
block ;; label = @28
local.get 7
i32.eqz
br_if 0 (;@28;)
local.get 7
i32.const 3
i32.shr_u
local.tee 3
i32.const 3
i32.shl
i32.const 1100
i32.add
local.set 4
i32.const 0
i32.load offset=1080
local.set 0
block ;; label = @29
block ;; label = @30
i32.const 1
local.get 3
i32.shl
local.tee 3
local.get 2
i32.and
i32.eqz
br_if 0 (;@30;)
local.get 4
i32.load offset=8
local.set 3
br 1 (;@29;)
end
i32.const 0
local.get 3
local.get 2
i32.or
i32.store offset=1060
local.get 4
local.set 3
end
local.get 3
local.get 0
i32.store offset=12
local.get 4
local.get 0
i32.store offset=8
local.get 0
local.get 4
i32.store offset=12
local.get 0
local.get 3
i32.store offset=8
end
i32.const 0
local.get 11
i32.store offset=1080
i32.const 0
local.get 5
i32.store offset=1068
end
local.get 6
i32.const 8
i32.add
local.set 0
br 25 (;@1;)
end
local.get 0
i32.eqz
br_if 1 (;@24;)
end
loop ;; label = @25
local.get 0
i32.load offset=4
i32.const -8
i32.and
local.get 3
i32.sub
local.tee 2
local.get 5
i32.lt_u
local.set 6
block ;; label = @26
local.get 0
i32.load offset=16
local.tee 4
br_if 0 (;@26;)
local.get 0
i32.const 20
i32.add
i32.load
local.set 4
end
local.get 2
local.get 5
local.get 6
select
local.set 5
local.get 0
local.get 9
local.get 6
select
local.set 9
local.get 4
local.set 0
local.get 4
br_if 0 (;@25;)
end
end
local.get 9
i32.eqz
br_if 0 (;@23;)
local.get 5
i32.const 0
i32.load offset=1068
local.get 3
i32.sub
i32.ge_u
br_if 0 (;@23;)
local.get 9
local.get 3
i32.add
local.tee 8
local.get 9
i32.le_u
br_if 0 (;@23;)
local.get 9
i32.load offset=24
local.set 10
local.get 9
i32.load offset=12
local.tee 6
local.get 9
i32.eq
br_if 1 (;@22;)
local.get 9
i32.load offset=8
local.tee 0
local.get 6
i32.store offset=12
local.get 6
local.get 0
i32.store offset=8
local.get 10
br_if 20 (;@3;)
br 21 (;@2;)
end
block ;; label = @23
block ;; label = @24
block ;; label = @25
block ;; label = @26
block ;; label = @27
block ;; label = @28
i32.const 0
i32.load offset=1068
local.tee 0
local.get 3
i32.ge_u
br_if 0 (;@28;)
i32.const 0
i32.load offset=1072
local.tee 6
local.get 3
i32.le_u
br_if 1 (;@27;)
i32.const 0
i32.load offset=1084
local.tee 0
local.get 3
i32.add
local.tee 4
local.get 6
local.get 3
i32.sub
local.tee 5
i32.const 1
i32.or
i32.store offset=4
i32.const 0
local.get 5
i32.store offset=1072
i32.const 0
local.get 4
i32.store offset=1084
local.get 0
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 0
i32.const 8
i32.add
local.set 0
br 27 (;@1;)
end
i32.const 0
i32.load offset=1080
local.set 4
local.get 0
local.get 3
i32.sub
local.tee 5
i32.const 16
i32.lt_u
br_if 1 (;@26;)
local.get 4
local.get 3
i32.add
local.tee 6
local.get 5
i32.const 1
i32.or
i32.store offset=4
i32.const 0
local.get 5
i32.store offset=1068
i32.const 0
local.get 6
i32.store offset=1080
local.get 4
local.get 0
i32.add
local.get 5
i32.store
local.get 4
local.get 3
i32.const 3
i32.or
i32.store offset=4
br 2 (;@25;)
end
i32.const 0
i32.load offset=1532
i32.eqz
br_if 2 (;@24;)
i32.const 0
i32.load offset=1540
local.set 4
br 3 (;@23;)
end
local.get 4
local.get 0
i32.const 3
i32.or
i32.store offset=4
local.get 4
local.get 0
i32.add
local.tee 0
local.get 0
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
i32.const 0
i32.const 0
i32.store offset=1080
i32.const 0
i32.const 0
i32.store offset=1068
end
local.get 4
i32.const 8
i32.add
local.set 0
br 23 (;@1;)
end
i32.const 0
i64.const -1
i64.store offset=1544 align=4
i32.const 0
i64.const 281474976776192
i64.store offset=1536 align=4
i32.const 0
local.get 1
i32.const 12
i32.add
i32.const -16
i32.and
i32.const 1431655768
i32.xor
i32.store offset=1532
i32.const 0
i32.const 0
i32.store offset=1552
i32.const 0
i32.const 0
i32.store offset=1504
i32.const 65536
local.set 4
end
i32.const 0
local.set 0
local.get 4
local.get 3
i32.const 47
i32.add
local.tee 7
i32.add
local.tee 2
i32.const 0
local.get 4
i32.sub
local.tee 8
i32.and
local.tee 9
local.get 3
i32.le_u
br_if 21 (;@1;)
i32.const 0
local.set 0
block ;; label = @23
i32.const 0
i32.load offset=1500
local.tee 4
i32.eqz
br_if 0 (;@23;)
i32.const 0
i32.load offset=1492
local.tee 5
local.get 9
i32.add
local.tee 10
local.get 5
i32.le_u
br_if 22 (;@1;)
local.get 10
local.get 4
i32.gt_u
br_if 22 (;@1;)
end
i32.const 0
i32.load8_u offset=1504
i32.const 4
i32.and
br_if 8 (;@14;)
block ;; label = @23
i32.const 0
i32.load offset=1084
local.tee 4
i32.eqz
br_if 0 (;@23;)
i32.const 1508
local.set 0
loop ;; label = @24
block ;; label = @25
local.get 0
i32.load
local.tee 5
local.get 4
i32.gt_u
br_if 0 (;@25;)
local.get 5
local.get 0
i32.load offset=4
i32.add
local.get 4
i32.gt_u
br_if 4 (;@21;)
end
local.get 0
i32.load offset=8
local.tee 0
br_if 0 (;@24;)
end
end
i32.const 0
call $sbrk
local.tee 6
i32.const -1
i32.eq
br_if 7 (;@15;)
local.get 9
local.set 2
block ;; label = @23
i32.const 0
i32.load offset=1536
local.tee 0
i32.const -1
i32.add
local.tee 4
local.get 6
i32.and
i32.eqz
br_if 0 (;@23;)
local.get 9
local.get 6
i32.sub
local.get 4
local.get 6
i32.add
i32.const 0
local.get 0
i32.sub
i32.and
i32.add
local.set 2
end
local.get 2
local.get 3
i32.le_u
br_if 7 (;@15;)
local.get 2
i32.const 2147483646
i32.gt_u
br_if 7 (;@15;)
block ;; label = @23
i32.const 0
i32.load offset=1500
local.tee 0
i32.eqz
br_if 0 (;@23;)
i32.const 0
i32.load offset=1492
local.tee 4
local.get 2
i32.add
local.tee 5
local.get 4
i32.le_u
br_if 8 (;@15;)
local.get 5
local.get 0
i32.gt_u
br_if 8 (;@15;)
end
local.get 2
call $sbrk
local.tee 0
local.get 6
i32.ne
br_if 2 (;@20;)
br 9 (;@13;)
end
block ;; label = @22
local.get 9
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 0
br_if 0 (;@22;)
local.get 9
i32.load offset=16
local.tee 0
i32.eqz
br_if 3 (;@19;)
local.get 9
i32.const 16
i32.add
local.set 4
end
loop ;; label = @22
local.get 4
local.set 2
local.get 0
local.tee 6
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 0
br_if 0 (;@22;)
local.get 6
i32.const 16
i32.add
local.set 4
local.get 6
i32.load offset=16
local.tee 0
br_if 0 (;@22;)
end
local.get 2
i32.const 0
i32.store
local.get 10
i32.eqz
br_if 19 (;@2;)
br 18 (;@3;)
end
local.get 2
local.get 6
i32.sub
local.get 8
i32.and
local.tee 2
i32.const 2147483646
i32.gt_u
br_if 5 (;@15;)
local.get 2
call $sbrk
local.tee 6
local.get 0
i32.load
local.get 0
i32.load offset=4
i32.add
i32.eq
br_if 3 (;@17;)
local.get 6
local.set 0
end
local.get 0
local.set 6
local.get 3
i32.const 48
i32.add
local.get 2
i32.le_u
br_if 1 (;@18;)
local.get 2
i32.const 2147483646
i32.gt_u
br_if 1 (;@18;)
local.get 6
i32.const -1
i32.eq
br_if 1 (;@18;)
local.get 7
local.get 2
i32.sub
i32.const 0
i32.load offset=1540
local.tee 0
i32.add
i32.const 0
local.get 0
i32.sub
i32.and
local.tee 0
i32.const 2147483646
i32.gt_u
br_if 6 (;@13;)
local.get 0
call $sbrk
i32.const -1
i32.eq
br_if 3 (;@16;)
local.get 0
local.get 2
i32.add
local.set 2
br 6 (;@13;)
end
i32.const 0
local.set 6
local.get 10
br_if 15 (;@3;)
br 16 (;@2;)
end
local.get 6
i32.const -1
i32.ne
br_if 4 (;@13;)
br 2 (;@15;)
end
local.get 6
i32.const -1
i32.ne
br_if 3 (;@13;)
br 1 (;@15;)
end
i32.const 0
local.get 2
i32.sub
call $sbrk
drop
end
i32.const 0
i32.const 0
i32.load offset=1504
i32.const 4
i32.or
i32.store offset=1504
end
local.get 9
i32.const 2147483646
i32.gt_u
br_if 1 (;@12;)
local.get 9
call $sbrk
local.tee 6
i32.const 0
call $sbrk
local.tee 0
i32.ge_u
br_if 1 (;@12;)
local.get 6
i32.const -1
i32.eq
br_if 1 (;@12;)
local.get 0
i32.const -1
i32.eq
br_if 1 (;@12;)
local.get 0
local.get 6
i32.sub
local.tee 2
local.get 3
i32.const 40
i32.add
i32.le_u
br_if 1 (;@12;)
end
i32.const 0
i32.const 0
i32.load offset=1492
local.get 2
i32.add
local.tee 0
i32.store offset=1492
block ;; label = @13
local.get 0
i32.const 0
i32.load offset=1496
i32.le_u
br_if 0 (;@13;)
i32.const 0
local.get 0
i32.store offset=1496
end
block ;; label = @13
block ;; label = @14
block ;; label = @15
block ;; label = @16
i32.const 0
i32.load offset=1084
local.tee 4
i32.eqz
br_if 0 (;@16;)
i32.const 1508
local.set 0
loop ;; label = @17
local.get 6
local.get 0
i32.load
local.tee 5
local.get 0
i32.load offset=4
local.tee 9
i32.add
i32.eq
br_if 2 (;@15;)
local.get 0
i32.load offset=8
local.tee 0
br_if 0 (;@17;)
br 3 (;@14;)
end
end
block ;; label = @16
block ;; label = @17
i32.const 0
i32.load offset=1076
local.tee 0
i32.eqz
br_if 0 (;@17;)
local.get 6
local.get 0
i32.ge_u
br_if 1 (;@16;)
end
i32.const 0
local.get 6
i32.store offset=1076
end
i32.const 0
local.set 0
i32.const 0
local.get 2
i32.store offset=1512
i32.const 0
local.get 6
i32.store offset=1508
i32.const 0
i32.const -1
i32.store offset=1092
i32.const 0
i32.const 0
i32.load offset=1532
i32.store offset=1096
i32.const 0
i32.const 0
i32.store offset=1520
loop ;; label = @16
local.get 0
i32.const 1108
i32.add
local.get 0
i32.const 1100
i32.add
local.tee 4
i32.store
local.get 0
i32.const 1112
i32.add
local.get 4
i32.store
local.get 0
i32.const 8
i32.add
local.tee 0
i32.const 256
i32.ne
br_if 0 (;@16;)
end
local.get 6
i32.const -8
local.get 6
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 6
i32.const 8
i32.add
i32.const 7
i32.and
select
local.tee 0
i32.add
local.tee 4
local.get 2
i32.const -40
i32.add
local.tee 5
local.get 0
i32.sub
local.tee 0
i32.const 1
i32.or
i32.store offset=4
i32.const 0
i32.const 0
i32.load offset=1548
i32.store offset=1088
i32.const 0
local.get 0
i32.store offset=1072
i32.const 0
local.get 4
i32.store offset=1084
local.get 6
local.get 5
i32.add
i32.const 40
i32.store offset=4
br 2 (;@13;)
end
local.get 0
i32.load8_u offset=12
i32.const 8
i32.and
br_if 0 (;@14;)
local.get 6
local.get 4
i32.le_u
br_if 0 (;@14;)
local.get 5
local.get 4
i32.gt_u
br_if 0 (;@14;)
local.get 4
i32.const -8
local.get 4
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 4
i32.const 8
i32.add
i32.const 7
i32.and
select
local.tee 5
i32.add
local.tee 6
i32.const 0
i32.load offset=1072
local.get 2
i32.add
local.tee 8
local.get 5
i32.sub
local.tee 5
i32.const 1
i32.or
i32.store offset=4
local.get 0
i32.const 4
i32.add
local.get 9
local.get 2
i32.add
i32.store
i32.const 0
i32.const 0
i32.load offset=1548
i32.store offset=1088
i32.const 0
local.get 5
i32.store offset=1072
i32.const 0
local.get 6
i32.store offset=1084
local.get 4
local.get 8
i32.add
i32.const 40
i32.store offset=4
br 1 (;@13;)
end
block ;; label = @14
local.get 6
i32.const 0
i32.load offset=1076
i32.ge_u
br_if 0 (;@14;)
i32.const 0
local.get 6
i32.store offset=1076
end
local.get 6
local.get 2
i32.add
local.set 5
i32.const 1508
local.set 0
block ;; label = @14
block ;; label = @15
block ;; label = @16
block ;; label = @17
block ;; label = @18
block ;; label = @19
block ;; label = @20
block ;; label = @21
loop ;; label = @22
local.get 0
i32.load
local.get 5
i32.eq
br_if 1 (;@21;)
local.get 0
i32.load offset=8
local.tee 0
br_if 0 (;@22;)
br 2 (;@20;)
end
end
local.get 0
i32.load8_u offset=12
i32.const 8
i32.and
br_if 0 (;@20;)
local.get 0
local.get 6
i32.store
local.get 0
local.get 0
i32.load offset=4
local.get 2
i32.add
i32.store offset=4
local.get 6
i32.const -8
local.get 6
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 6
i32.const 8
i32.add
i32.const 7
i32.and
select
i32.add
local.tee 2
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 5
i32.const -8
local.get 5
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 5
i32.const 8
i32.add
i32.const 7
i32.and
select
i32.add
local.tee 6
local.get 2
i32.sub
local.get 3
i32.sub
local.set 0
local.get 2
local.get 3
i32.add
local.set 5
local.get 4
local.get 6
i32.eq
br_if 1 (;@19;)
i32.const 0
i32.load offset=1080
local.get 6
i32.eq
br_if 9 (;@11;)
local.get 6
i32.load offset=4
local.tee 4
i32.const 3
i32.and
i32.const 1
i32.ne
br_if 15 (;@5;)
local.get 4
i32.const -8
i32.and
local.set 7
local.get 4
i32.const 255
i32.gt_u
br_if 10 (;@10;)
local.get 6
i32.load offset=12
local.tee 3
local.get 6
i32.load offset=8
local.tee 9
i32.eq
br_if 11 (;@9;)
local.get 3
local.get 9
i32.store offset=8
local.get 9
local.get 3
i32.store offset=12
br 14 (;@6;)
end
i32.const 1508
local.set 0
block ;; label = @20
loop ;; label = @21
block ;; label = @22
local.get 0
i32.load
local.tee 5
local.get 4
i32.gt_u
br_if 0 (;@22;)
local.get 5
local.get 0
i32.load offset=4
i32.add
local.tee 5
local.get 4
i32.gt_u
br_if 2 (;@20;)
end
local.get 0
i32.load offset=8
local.set 0
br 0 (;@21;)
end
end
local.get 6
i32.const -8
local.get 6
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 6
i32.const 8
i32.add
i32.const 7
i32.and
select
local.tee 0
i32.add
local.tee 8
local.get 2
i32.const -40
i32.add
local.tee 9
local.get 0
i32.sub
local.tee 0
i32.const 1
i32.or
i32.store offset=4
local.get 6
local.get 9
i32.add
i32.const 40
i32.store offset=4
local.get 4
local.get 5
i32.const 39
local.get 5
i32.sub
i32.const 7
i32.and
i32.const 0
local.get 5
i32.const -39
i32.add
i32.const 7
i32.and
select
i32.add
i32.const -47
i32.add
local.tee 9
local.get 9
local.get 4
i32.const 16
i32.add
i32.lt_u
select
local.tee 9
i32.const 27
i32.store offset=4
i32.const 0
i32.const 0
i32.load offset=1548
i32.store offset=1088
i32.const 0
local.get 0
i32.store offset=1072
i32.const 0
local.get 8
i32.store offset=1084
local.get 9
i32.const 16
i32.add
i32.const 0
i64.load offset=1516 align=4
i64.store align=4
local.get 9
i32.const 0
i64.load offset=1508 align=4
i64.store offset=8 align=4
i32.const 0
local.get 2
i32.store offset=1512
i32.const 0
local.get 6
i32.store offset=1508
i32.const 0
local.get 9
i32.const 8
i32.add
i32.store offset=1516
i32.const 0
i32.const 0
i32.store offset=1520
local.get 9
i32.const 28
i32.add
local.set 0
loop ;; label = @20
local.get 0
i32.const 7
i32.store
local.get 0
i32.const 4
i32.add
local.tee 0
local.get 5
i32.lt_u
br_if 0 (;@20;)
end
local.get 9
local.get 4
i32.eq
br_if 6 (;@13;)
local.get 9
i32.const 4
i32.add
local.tee 0
local.get 0
i32.load
i32.const -2
i32.and
i32.store
local.get 9
local.get 9
local.get 4
i32.sub
local.tee 2
i32.store
local.get 4
local.get 2
i32.const 1
i32.or
i32.store offset=4
block ;; label = @20
local.get 2
i32.const 255
i32.gt_u
br_if 0 (;@20;)
local.get 2
i32.const 3
i32.shr_u
local.tee 5
i32.const 3
i32.shl
i32.const 1100
i32.add
local.set 0
i32.const 0
i32.load offset=1060
local.tee 6
i32.const 1
local.get 5
i32.shl
local.tee 5
i32.and
i32.eqz
br_if 2 (;@18;)
local.get 0
i32.load offset=8
local.set 5
br 3 (;@17;)
end
i32.const 0
local.set 0
block ;; label = @20
local.get 2
i32.const 8
i32.shr_u
local.tee 5
i32.eqz
br_if 0 (;@20;)
i32.const 31
local.set 0
local.get 2
i32.const 16777215
i32.gt_u
br_if 0 (;@20;)
local.get 2
i32.const 14
local.get 5
local.get 5
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 0
i32.shl
local.tee 5
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 6
local.get 0
i32.or
local.get 5
local.get 6
i32.shl
local.tee 0
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 5
i32.or
i32.sub
local.get 0
local.get 5
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 0
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 0
i32.const 1
i32.shl
i32.or
local.set 0
end
local.get 4
i64.const 0
i64.store offset=16 align=4
local.get 4
i32.const 28
i32.add
local.get 0
i32.store
local.get 0
i32.const 2
i32.shl
i32.const 1364
i32.add
local.set 5
i32.const 0
i32.load offset=1064
local.tee 6
i32.const 1
local.get 0
i32.shl
local.tee 9
i32.and
i32.eqz
br_if 3 (;@16;)
local.get 2
i32.const 0
i32.const 25
local.get 0
i32.const 1
i32.shr_u
i32.sub
local.get 0
i32.const 31
i32.eq
select
i32.shl
local.set 0
local.get 5
i32.load
local.set 6
loop ;; label = @20
local.get 6
local.tee 5
i32.load offset=4
i32.const -8
i32.and
local.get 2
i32.eq
br_if 6 (;@14;)
local.get 0
i32.const 29
i32.shr_u
local.set 6
local.get 0
i32.const 1
i32.shl
local.set 0
local.get 5
local.get 6
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 9
i32.load
local.tee 6
br_if 0 (;@20;)
end
local.get 9
local.get 4
i32.store
local.get 4
i32.const 24
i32.add
local.get 5
i32.store
br 4 (;@15;)
end
i32.const 0
local.get 5
i32.store offset=1084
i32.const 0
i32.const 0
i32.load offset=1072
local.get 0
i32.add
local.tee 0
i32.store offset=1072
local.get 5
local.get 0
i32.const 1
i32.or
i32.store offset=4
br 14 (;@4;)
end
i32.const 0
local.get 6
local.get 5
i32.or
i32.store offset=1060
local.get 0
local.set 5
end
local.get 5
local.get 4
i32.store offset=12
local.get 0
local.get 4
i32.store offset=8
local.get 4
local.get 0
i32.store offset=12
local.get 4
local.get 5
i32.store offset=8
br 3 (;@13;)
end
local.get 5
local.get 4
i32.store
i32.const 0
local.get 6
local.get 9
i32.or
i32.store offset=1064
local.get 4
i32.const 24
i32.add
local.get 5
i32.store
end
local.get 4
local.get 4
i32.store offset=12
local.get 4
local.get 4
i32.store offset=8
br 1 (;@13;)
end
local.get 5
i32.load offset=8
local.tee 0
local.get 4
i32.store offset=12
local.get 5
local.get 4
i32.store offset=8
local.get 4
i32.const 24
i32.add
i32.const 0
i32.store
local.get 4
local.get 5
i32.store offset=12
local.get 4
local.get 0
i32.store offset=8
end
i32.const 0
i32.load offset=1072
local.tee 0
local.get 3
i32.le_u
br_if 0 (;@12;)
i32.const 0
i32.load offset=1084
local.tee 4
local.get 3
i32.add
local.tee 5
local.get 0
local.get 3
i32.sub
local.tee 0
i32.const 1
i32.or
i32.store offset=4
i32.const 0
local.get 0
i32.store offset=1072
i32.const 0
local.get 5
i32.store offset=1084
local.get 4
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 4
i32.const 8
i32.add
local.set 0
br 11 (;@1;)
end
i32.const 0
local.set 0
i32.const 0
i32.const 48
i32.store offset=1556
br 10 (;@1;)
end
i32.const 0
local.get 5
i32.store offset=1080
i32.const 0
i32.const 0
i32.load offset=1068
local.get 0
i32.add
local.tee 0
i32.store offset=1068
local.get 5
local.get 0
i32.const 1
i32.or
i32.store offset=4
local.get 5
local.get 0
i32.add
local.get 0
i32.store
br 6 (;@4;)
end
local.get 6
i32.load offset=24
local.set 10
local.get 6
i32.load offset=12
local.tee 9
local.get 6
i32.eq
br_if 1 (;@8;)
local.get 6
i32.load offset=8
local.tee 4
local.get 9
i32.store offset=12
local.get 9
local.get 4
i32.store offset=8
local.get 10
br_if 2 (;@7;)
br 3 (;@6;)
end
i32.const 0
i32.const 0
i32.load offset=1060
i32.const -2
local.get 4
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1060
br 2 (;@6;)
end
block ;; label = @8
block ;; label = @9
local.get 6
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 3
br_if 0 (;@9;)
local.get 6
i32.const 16
i32.add
local.tee 4
i32.load
local.tee 3
i32.eqz
br_if 1 (;@8;)
end
loop ;; label = @9
local.get 4
local.set 8
local.get 3
local.tee 9
i32.const 20
i32.add
local.tee 4
i32.load
local.tee 3
br_if 0 (;@9;)
local.get 9
i32.const 16
i32.add
local.set 4
local.get 9
i32.load offset=16
local.tee 3
br_if 0 (;@9;)
end
local.get 8
i32.const 0
i32.store
local.get 10
i32.eqz
br_if 2 (;@6;)
br 1 (;@7;)
end
i32.const 0
local.set 9
local.get 10
i32.eqz
br_if 1 (;@6;)
end
block ;; label = @7
block ;; label = @8
block ;; label = @9
local.get 6
i32.load offset=28
local.tee 3
i32.const 2
i32.shl
i32.const 1364
i32.add
local.tee 4
i32.load
local.get 6
i32.eq
br_if 0 (;@9;)
local.get 10
i32.const 16
i32.const 20
local.get 10
i32.load offset=16
local.get 6
i32.eq
select
i32.add
local.get 9
i32.store
local.get 9
br_if 1 (;@8;)
br 3 (;@6;)
end
local.get 4
local.get 9
i32.store
local.get 9
i32.eqz
br_if 1 (;@7;)
end
local.get 9
local.get 10
i32.store offset=24
block ;; label = @8
local.get 6
i32.load offset=16
local.tee 4
i32.eqz
br_if 0 (;@8;)
local.get 9
local.get 4
i32.store offset=16
local.get 4
local.get 9
i32.store offset=24
end
local.get 6
i32.const 20
i32.add
i32.load
local.tee 4
i32.eqz
br_if 1 (;@6;)
local.get 9
i32.const 20
i32.add
local.get 4
i32.store
local.get 4
local.get 9
i32.store offset=24
br 1 (;@6;)
end
i32.const 0
i32.const 0
i32.load offset=1064
i32.const -2
local.get 3
i32.rotl
i32.and
i32.store offset=1064
end
local.get 7
local.get 0
i32.add
local.set 0
local.get 6
local.get 7
i32.add
local.set 6
end
local.get 6
local.get 6
i32.load offset=4
i32.const -2
i32.and
i32.store offset=4
local.get 5
local.get 0
i32.add
local.get 0
i32.store
local.get 5
local.get 0
i32.const 1
i32.or
i32.store offset=4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
local.get 0
i32.const 255
i32.gt_u
br_if 0 (;@10;)
local.get 0
i32.const 3
i32.shr_u
local.tee 4
i32.const 3
i32.shl
i32.const 1100
i32.add
local.set 0
i32.const 0
i32.load offset=1060
local.tee 3
i32.const 1
local.get 4
i32.shl
local.tee 4
i32.and
i32.eqz
br_if 1 (;@9;)
local.get 0
i32.load offset=8
local.set 4
br 2 (;@8;)
end
i32.const 0
local.set 4
block ;; label = @10
local.get 0
i32.const 8
i32.shr_u
local.tee 3
i32.eqz
br_if 0 (;@10;)
i32.const 31
local.set 4
local.get 0
i32.const 16777215
i32.gt_u
br_if 0 (;@10;)
local.get 0
i32.const 14
local.get 3
local.get 3
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 4
i32.shl
local.tee 3
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 6
local.get 4
i32.or
local.get 3
local.get 6
i32.shl
local.tee 4
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 3
i32.or
i32.sub
local.get 4
local.get 3
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 4
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 4
i32.const 1
i32.shl
i32.or
local.set 4
end
local.get 5
local.get 4
i32.store offset=28
local.get 5
i64.const 0
i64.store offset=16 align=4
local.get 4
i32.const 2
i32.shl
i32.const 1364
i32.add
local.set 3
i32.const 0
i32.load offset=1064
local.tee 6
i32.const 1
local.get 4
i32.shl
local.tee 9
i32.and
i32.eqz
br_if 2 (;@7;)
local.get 0
i32.const 0
i32.const 25
local.get 4
i32.const 1
i32.shr_u
i32.sub
local.get 4
i32.const 31
i32.eq
select
i32.shl
local.set 4
local.get 3
i32.load
local.set 6
loop ;; label = @10
local.get 6
local.tee 3
i32.load offset=4
i32.const -8
i32.and
local.get 0
i32.eq
br_if 5 (;@5;)
local.get 4
i32.const 29
i32.shr_u
local.set 6
local.get 4
i32.const 1
i32.shl
local.set 4
local.get 3
local.get 6
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 9
i32.load
local.tee 6
br_if 0 (;@10;)
end
local.get 9
local.get 5
i32.store
local.get 5
local.get 3
i32.store offset=24
br 3 (;@6;)
end
i32.const 0
local.get 3
local.get 4
i32.or
i32.store offset=1060
local.get 0
local.set 4
end
local.get 4
local.get 5
i32.store offset=12
local.get 0
local.get 5
i32.store offset=8
local.get 5
local.get 0
i32.store offset=12
local.get 5
local.get 4
i32.store offset=8
br 3 (;@4;)
end
local.get 3
local.get 5
i32.store
i32.const 0
local.get 6
local.get 9
i32.or
i32.store offset=1064
local.get 5
local.get 3
i32.store offset=24
end
local.get 5
local.get 5
i32.store offset=12
local.get 5
local.get 5
i32.store offset=8
br 1 (;@4;)
end
local.get 3
i32.load offset=8
local.tee 0
local.get 5
i32.store offset=12
local.get 3
local.get 5
i32.store offset=8
local.get 5
i32.const 0
i32.store offset=24
local.get 5
local.get 3
i32.store offset=12
local.get 5
local.get 0
i32.store offset=8
end
local.get 2
i32.const 8
i32.add
local.set 0
br 2 (;@1;)
end
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 9
local.get 9
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1364
i32.add
local.tee 0
i32.load
i32.eq
br_if 0 (;@5;)
local.get 10
i32.const 16
i32.const 20
local.get 10
i32.load offset=16
local.get 9
i32.eq
select
i32.add
local.get 6
i32.store
local.get 6
br_if 1 (;@4;)
br 3 (;@2;)
end
local.get 0
local.get 6
i32.store
local.get 6
i32.eqz
br_if 1 (;@3;)
end
local.get 6
local.get 10
i32.store offset=24
block ;; label = @4
local.get 9
i32.load offset=16
local.tee 0
i32.eqz
br_if 0 (;@4;)
local.get 6
local.get 0
i32.store offset=16
local.get 0
local.get 6
i32.store offset=24
end
local.get 9
i32.const 20
i32.add
i32.load
local.tee 0
i32.eqz
br_if 1 (;@2;)
local.get 6
i32.const 20
i32.add
local.get 0
i32.store
local.get 0
local.get 6
i32.store offset=24
br 1 (;@2;)
end
i32.const 0
local.get 7
i32.const -2
local.get 4
i32.rotl
i32.and
local.tee 7
i32.store offset=1064
end
block ;; label = @2
block ;; label = @3
local.get 5
i32.const 15
i32.gt_u
br_if 0 (;@3;)
local.get 9
local.get 5
local.get 3
i32.add
local.tee 0
i32.const 3
i32.or
i32.store offset=4
local.get 9
local.get 0
i32.add
local.tee 0
local.get 0
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
br 1 (;@2;)
end
local.get 8
local.get 5
i32.const 1
i32.or
i32.store offset=4
local.get 9
local.get 3
i32.const 3
i32.or
i32.store offset=4
local.get 8
local.get 5
i32.add
local.get 5
i32.store
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
local.get 5
i32.const 255
i32.gt_u
br_if 0 (;@7;)
local.get 5
i32.const 3
i32.shr_u
local.tee 4
i32.const 3
i32.shl
i32.const 1100
i32.add
local.set 0
i32.const 0
i32.load offset=1060
local.tee 5
i32.const 1
local.get 4
i32.shl
local.tee 4
i32.and
i32.eqz
br_if 1 (;@6;)
local.get 0
i32.load offset=8
local.set 4
br 2 (;@5;)
end
local.get 5
i32.const 8
i32.shr_u
local.tee 4
i32.eqz
br_if 2 (;@4;)
i32.const 31
local.set 0
local.get 5
i32.const 16777215
i32.gt_u
br_if 3 (;@3;)
local.get 5
i32.const 14
local.get 4
local.get 4
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 0
i32.shl
local.tee 4
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 3
local.get 0
i32.or
local.get 4
local.get 3
i32.shl
local.tee 0
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
i32.sub
local.get 0
local.get 4
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 0
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 0
i32.const 1
i32.shl
i32.or
local.set 0
br 3 (;@3;)
end
i32.const 0
local.get 5
local.get 4
i32.or
i32.store offset=1060
local.get 0
local.set 4
end
local.get 4
local.get 8
i32.store offset=12
local.get 0
local.get 8
i32.store offset=8
local.get 8
local.get 0
i32.store offset=12
local.get 8
local.get 4
i32.store offset=8
br 2 (;@2;)
end
i32.const 0
local.set 0
end
local.get 8
local.get 0
i32.store offset=28
local.get 8
i64.const 0
i64.store offset=16 align=4
local.get 0
i32.const 2
i32.shl
i32.const 1364
i32.add
local.set 4
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 7
i32.const 1
local.get 0
i32.shl
local.tee 3
i32.and
i32.eqz
br_if 0 (;@5;)
local.get 5
i32.const 0
i32.const 25
local.get 0
i32.const 1
i32.shr_u
i32.sub
local.get 0
i32.const 31
i32.eq
select
i32.shl
local.set 0
local.get 4
i32.load
local.set 3
loop ;; label = @6
local.get 3
local.tee 4
i32.load offset=4
i32.const -8
i32.and
local.get 5
i32.eq
br_if 3 (;@3;)
local.get 0
i32.const 29
i32.shr_u
local.set 3
local.get 0
i32.const 1
i32.shl
local.set 0
local.get 4
local.get 3
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 6
i32.load
local.tee 3
br_if 0 (;@6;)
end
local.get 6
local.get 8
i32.store
local.get 8
local.get 4
i32.store offset=24
br 1 (;@4;)
end
local.get 4
local.get 8
i32.store
i32.const 0
local.get 7
local.get 3
i32.or
i32.store offset=1064
local.get 8
local.get 4
i32.store offset=24
end
local.get 8
local.get 8
i32.store offset=12
local.get 8
local.get 8
i32.store offset=8
br 1 (;@2;)
end
local.get 4
i32.load offset=8
local.tee 0
local.get 8
i32.store offset=12
local.get 4
local.get 8
i32.store offset=8
local.get 8
i32.const 0
i32.store offset=24
local.get 8
local.get 4
i32.store offset=12
local.get 8
local.get 0
i32.store offset=8
end
local.get 9
i32.const 8
i32.add
local.set 0
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $free (type 5) (param i32)
local.get 0
call $dlfree)
(func $dlfree (type 5) (param i32)
(local i32 i32 i32 i32 i32 i32 i32)
block ;; label = @1
block ;; label = @2
local.get 0
i32.eqz
br_if 0 (;@2;)
local.get 0
i32.const -8
i32.add
local.tee 1
local.get 0
i32.const -4
i32.add
i32.load
local.tee 2
i32.const -8
i32.and
local.tee 0
i32.add
local.set 3
block ;; label = @3
block ;; label = @4
local.get 2
i32.const 1
i32.and
br_if 0 (;@4;)
local.get 2
i32.const 3
i32.and
i32.eqz
br_if 2 (;@2;)
local.get 1
local.get 1
i32.load
local.tee 2
i32.sub
local.tee 1
i32.const 0
i32.load offset=1076
i32.lt_u
br_if 2 (;@2;)
local.get 2
local.get 0
i32.add
local.set 0
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
i32.const 0
i32.load offset=1080
local.get 1
i32.eq
br_if 0 (;@9;)
local.get 2
i32.const 255
i32.gt_u
br_if 1 (;@8;)
local.get 1
i32.load offset=12
local.tee 4
local.get 1
i32.load offset=8
local.tee 5
i32.eq
br_if 2 (;@7;)
local.get 4
local.get 5
i32.store offset=8
local.get 5
local.get 4
i32.store offset=12
local.get 1
local.get 3
i32.lt_u
br_if 6 (;@3;)
br 7 (;@2;)
end
local.get 3
i32.load offset=4
local.tee 2
i32.const 3
i32.and
i32.const 3
i32.ne
br_if 4 (;@4;)
local.get 3
i32.const 4
i32.add
local.get 2
i32.const -2
i32.and
i32.store
i32.const 0
local.get 0
i32.store offset=1068
local.get 1
local.get 0
i32.add
local.get 0
i32.store
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
return
end
local.get 1
i32.load offset=24
local.set 6
local.get 1
i32.load offset=12
local.tee 5
local.get 1
i32.eq
br_if 1 (;@6;)
local.get 1
i32.load offset=8
local.tee 2
local.get 5
i32.store offset=12
local.get 5
local.get 2
i32.store offset=8
local.get 6
br_if 2 (;@5;)
br 3 (;@4;)
end
i32.const 0
i32.const 0
i32.load offset=1060
i32.const -2
local.get 2
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1060
local.get 1
local.get 3
i32.lt_u
br_if 3 (;@3;)
br 4 (;@2;)
end
block ;; label = @6
block ;; label = @7
local.get 1
i32.const 20
i32.add
local.tee 2
i32.load
local.tee 4
br_if 0 (;@7;)
local.get 1
i32.const 16
i32.add
local.tee 2
i32.load
local.tee 4
i32.eqz
br_if 1 (;@6;)
end
loop ;; label = @7
local.get 2
local.set 7
local.get 4
local.tee 5
i32.const 20
i32.add
local.tee 2
i32.load
local.tee 4
br_if 0 (;@7;)
local.get 5
i32.const 16
i32.add
local.set 2
local.get 5
i32.load offset=16
local.tee 4
br_if 0 (;@7;)
end
local.get 7
i32.const 0
i32.store
local.get 6
i32.eqz
br_if 2 (;@4;)
br 1 (;@5;)
end
i32.const 0
local.set 5
local.get 6
i32.eqz
br_if 1 (;@4;)
end
block ;; label = @5
block ;; label = @6
block ;; label = @7
local.get 1
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1364
i32.add
local.tee 2
i32.load
local.get 1
i32.eq
br_if 0 (;@7;)
local.get 6
i32.const 16
i32.const 20
local.get 6
i32.load offset=16
local.get 1
i32.eq
select
i32.add
local.get 5
i32.store
local.get 5
br_if 1 (;@6;)
br 3 (;@4;)
end
local.get 2
local.get 5
i32.store
local.get 5
i32.eqz
br_if 1 (;@5;)
end
local.get 5
local.get 6
i32.store offset=24
block ;; label = @6
local.get 1
i32.load offset=16
local.tee 2
i32.eqz
br_if 0 (;@6;)
local.get 5
local.get 2
i32.store offset=16
local.get 2
local.get 5
i32.store offset=24
end
local.get 1
i32.const 20
i32.add
i32.load
local.tee 2
i32.eqz
br_if 1 (;@4;)
local.get 5
i32.const 20
i32.add
local.get 2
i32.store
local.get 2
local.get 5
i32.store offset=24
local.get 1
local.get 3
i32.lt_u
br_if 2 (;@3;)
br 3 (;@2;)
end
i32.const 0
i32.const 0
i32.load offset=1064
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1064
end
local.get 1
local.get 3
i32.ge_u
br_if 1 (;@2;)
end
local.get 3
i32.load offset=4
local.tee 2
i32.const 1
i32.and
i32.eqz
br_if 0 (;@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 2
i32.const 2
i32.and
br_if 0 (;@11;)
i32.const 0
i32.load offset=1084
local.get 3
i32.eq
br_if 1 (;@10;)
i32.const 0
i32.load offset=1080
local.get 3
i32.eq
br_if 2 (;@9;)
local.get 2
i32.const -8
i32.and
local.get 0
i32.add
local.set 0
local.get 2
i32.const 255
i32.gt_u
br_if 3 (;@8;)
local.get 3
i32.load offset=12
local.tee 4
local.get 3
i32.load offset=8
local.tee 5
i32.eq
br_if 4 (;@7;)
local.get 4
local.get 5
i32.store offset=8
local.get 5
local.get 4
i32.store offset=12
br 7 (;@4;)
end
local.get 3
i32.const 4
i32.add
local.get 2
i32.const -2
i32.and
i32.store
local.get 1
local.get 0
i32.add
local.get 0
i32.store
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
br 7 (;@3;)
end
i32.const 0
local.get 1
i32.store offset=1084
i32.const 0
i32.const 0
i32.load offset=1072
local.get 0
i32.add
local.tee 0
i32.store offset=1072
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
local.get 1
i32.const 0
i32.load offset=1080
i32.ne
br_if 7 (;@2;)
i32.const 0
i32.const 0
i32.store offset=1068
i32.const 0
i32.const 0
i32.store offset=1080
return
end
i32.const 0
local.get 1
i32.store offset=1080
i32.const 0
i32.const 0
i32.load offset=1068
local.get 0
i32.add
local.tee 0
i32.store offset=1068
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
local.get 1
local.get 0
i32.add
local.get 0
i32.store
return
end
local.get 3
i32.load offset=24
local.set 6
local.get 3
i32.load offset=12
local.tee 5
local.get 3
i32.eq
br_if 1 (;@6;)
local.get 3
i32.load offset=8
local.tee 2
local.get 5
i32.store offset=12
local.get 5
local.get 2
i32.store offset=8
local.get 6
br_if 2 (;@5;)
br 3 (;@4;)
end
i32.const 0
i32.const 0
i32.load offset=1060
i32.const -2
local.get 2
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1060
br 2 (;@4;)
end
block ;; label = @6
block ;; label = @7
local.get 3
i32.const 20
i32.add
local.tee 2
i32.load
local.tee 4
br_if 0 (;@7;)
local.get 3
i32.const 16
i32.add
local.tee 2
i32.load
local.tee 4
i32.eqz
br_if 1 (;@6;)
end
loop ;; label = @7
local.get 2
local.set 7
local.get 4
local.tee 5
i32.const 20
i32.add
local.tee 2
i32.load
local.tee 4
br_if 0 (;@7;)
local.get 5
i32.const 16
i32.add
local.set 2
local.get 5
i32.load offset=16
local.tee 4
br_if 0 (;@7;)
end
local.get 7
i32.const 0
i32.store
local.get 6
i32.eqz
br_if 2 (;@4;)
br 1 (;@5;)
end
i32.const 0
local.set 5
local.get 6
i32.eqz
br_if 1 (;@4;)
end
block ;; label = @5
block ;; label = @6
block ;; label = @7
local.get 3
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1364
i32.add
local.tee 2
i32.load
local.get 3
i32.eq
br_if 0 (;@7;)
local.get 6
i32.const 16
i32.const 20
local.get 6
i32.load offset=16
local.get 3
i32.eq
select
i32.add
local.get 5
i32.store
local.get 5
br_if 1 (;@6;)
br 3 (;@4;)
end
local.get 2
local.get 5
i32.store
local.get 5
i32.eqz
br_if 1 (;@5;)
end
local.get 5
local.get 6
i32.store offset=24
block ;; label = @6
local.get 3
i32.load offset=16
local.tee 2
i32.eqz
br_if 0 (;@6;)
local.get 5
local.get 2
i32.store offset=16
local.get 2
local.get 5
i32.store offset=24
end
local.get 3
i32.const 20
i32.add
i32.load
local.tee 2
i32.eqz
br_if 1 (;@4;)
local.get 5
i32.const 20
i32.add
local.get 2
i32.store
local.get 2
local.get 5
i32.store offset=24
br 1 (;@4;)
end
i32.const 0
i32.const 0
i32.load offset=1064
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1064
end
local.get 1
local.get 0
i32.add
local.get 0
i32.store
local.get 1
local.get 0
i32.const 1
i32.or
i32.store offset=4
local.get 1
i32.const 0
i32.load offset=1080
i32.ne
br_if 0 (;@3;)
i32.const 0
local.get 0
i32.store offset=1068
return
end
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
local.get 0
i32.const 255
i32.gt_u
br_if 0 (;@9;)
local.get 0
i32.const 3
i32.shr_u
local.tee 2
i32.const 3
i32.shl
i32.const 1100
i32.add
local.set 0
i32.const 0
i32.load offset=1060
local.tee 4
i32.const 1
local.get 2
i32.shl
local.tee 2
i32.and
i32.eqz
br_if 1 (;@8;)
local.get 0
i32.load offset=8
local.set 2
br 2 (;@7;)
end
i32.const 0
local.set 2
block ;; label = @9
local.get 0
i32.const 8
i32.shr_u
local.tee 4
i32.eqz
br_if 0 (;@9;)
i32.const 31
local.set 2
local.get 0
i32.const 16777215
i32.gt_u
br_if 0 (;@9;)
local.get 0
i32.const 14
local.get 4
local.get 4
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 2
i32.shl
local.tee 4
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 5
local.get 2
i32.or
local.get 4
local.get 5
i32.shl
local.tee 2
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
i32.sub
local.get 2
local.get 4
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 2
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 2
i32.const 1
i32.shl
i32.or
local.set 2
end
local.get 1
i64.const 0
i64.store offset=16 align=4
local.get 1
i32.const 28
i32.add
local.get 2
i32.store
local.get 2
i32.const 2
i32.shl
i32.const 1364
i32.add
local.set 4
i32.const 0
i32.load offset=1064
local.tee 5
i32.const 1
local.get 2
i32.shl
local.tee 3
i32.and
i32.eqz
br_if 2 (;@6;)
local.get 0
i32.const 0
i32.const 25
local.get 2
i32.const 1
i32.shr_u
i32.sub
local.get 2
i32.const 31
i32.eq
select
i32.shl
local.set 2
local.get 4
i32.load
local.set 5
loop ;; label = @9
local.get 5
local.tee 4
i32.load offset=4
i32.const -8
i32.and
local.get 0
i32.eq
br_if 5 (;@4;)
local.get 2
i32.const 29
i32.shr_u
local.set 5
local.get 2
i32.const 1
i32.shl
local.set 2
local.get 4
local.get 5
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 3
i32.load
local.tee 5
br_if 0 (;@9;)
end
local.get 3
local.get 1
i32.store
local.get 1
i32.const 24
i32.add
local.get 4
i32.store
br 3 (;@5;)
end
i32.const 0
local.get 4
local.get 2
i32.or
i32.store offset=1060
local.get 0
local.set 2
end
local.get 2
local.get 1
i32.store offset=12
local.get 0
local.get 1
i32.store offset=8
local.get 1
local.get 0
i32.store offset=12
local.get 1
local.get 2
i32.store offset=8
return
end
local.get 4
local.get 1
i32.store
i32.const 0
local.get 5
local.get 3
i32.or
i32.store offset=1064
local.get 1
i32.const 24
i32.add
local.get 4
i32.store
end
local.get 1
local.get 1
i32.store offset=12
local.get 1
local.get 1
i32.store offset=8
br 1 (;@3;)
end
local.get 4
i32.load offset=8
local.tee 0
local.get 1
i32.store offset=12
local.get 4
local.get 1
i32.store offset=8
local.get 1
i32.const 24
i32.add
i32.const 0
i32.store
local.get 1
local.get 4
i32.store offset=12
local.get 1
local.get 0
i32.store offset=8
end
i32.const 0
i32.const 0
i32.load offset=1092
i32.const -1
i32.add
local.tee 1
i32.store offset=1092
local.get 1
i32.eqz
br_if 1 (;@1;)
end
return
end
i32.const 1516
local.set 1
loop ;; label = @1
local.get 1
i32.load
local.tee 0
i32.const 8
i32.add
local.set 1
local.get 0
br_if 0 (;@1;)
end
i32.const 0
i32.const -1
i32.store offset=1092)
(func $calloc (type 0) (param i32 i32) (result i32)
(local i32)
block ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 0
i32.eqz
br_if 0 (;@3;)
local.get 1
local.get 0
i32.mul
local.set 2
block ;; label = @4
local.get 1
local.get 0
i32.or
i32.const 65536
i32.lt_u
br_if 0 (;@4;)
local.get 2
i32.const -1
local.get 2
local.get 0
i32.div_u
local.get 1
i32.eq
select
local.set 2
end
local.get 2
call $dlmalloc
local.tee 0
br_if 1 (;@2;)
br 2 (;@1;)
end
i32.const 0
local.set 2
i32.const 0
call $dlmalloc
local.tee 0
i32.eqz
br_if 1 (;@1;)
end
local.get 0
i32.const -4
i32.add
i32.load8_u
i32.const 3
i32.and
i32.eqz
br_if 0 (;@1;)
local.get 0
i32.const 0
local.get 2
call $memset
drop
end
local.get 0)
(func $realloc (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
block ;; label = @1
block ;; label = @2
local.get 0
i32.eqz
br_if 0 (;@2;)
local.get 1
i32.const -64
i32.lt_u
br_if 1 (;@1;)
i32.const 0
i32.const 48
i32.store offset=1556
i32.const 0
return
end
local.get 1
call $dlmalloc
return
end
i32.const 16
local.get 1
i32.const 11
i32.add
i32.const -8
i32.and
local.get 1
i32.const 11
i32.lt_u
select
local.set 2
local.get 0
i32.const -4
i32.add
local.tee 3
i32.load
local.tee 4
i32.const -8
i32.and
local.set 5
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @13
local.get 4
i32.const 3
i32.and
i32.eqz
br_if 0 (;@13;)
local.get 0
i32.const -8
i32.add
local.tee 6
local.get 5
i32.add
local.set 7
local.get 5
local.get 2
i32.ge_u
br_if 1 (;@12;)
i32.const 0
i32.load offset=1084
local.get 7
i32.eq
br_if 2 (;@11;)
i32.const 0
i32.load offset=1080
local.get 7
i32.eq
br_if 3 (;@10;)
local.get 7
i32.load offset=4
local.tee 8
i32.const 2
i32.and
br_if 4 (;@9;)
local.get 8
i32.const -8
i32.and
local.get 5
i32.add
local.tee 9
local.get 2
i32.lt_u
br_if 4 (;@9;)
local.get 9
local.get 2
i32.sub
local.set 10
local.get 8
i32.const 255
i32.gt_u
br_if 8 (;@5;)
local.get 7
i32.load offset=12
local.tee 1
local.get 7
i32.load offset=8
local.tee 5
i32.eq
br_if 9 (;@4;)
local.get 1
local.get 5
i32.store offset=8
local.get 5
local.get 1
i32.store offset=12
br 12 (;@1;)
end
local.get 2
i32.const 256
i32.lt_u
br_if 3 (;@9;)
local.get 5
local.get 2
i32.const 4
i32.or
i32.lt_u
br_if 3 (;@9;)
local.get 5
local.get 2
i32.sub
i32.const 0
i32.load offset=1540
i32.const 1
i32.shl
i32.gt_u
br_if 3 (;@9;)
br 4 (;@8;)
end
local.get 5
local.get 2
i32.sub
local.tee 1
i32.const 16
i32.lt_u
br_if 3 (;@8;)
local.get 3
local.get 2
local.get 4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 2
i32.add
local.tee 2
local.get 1
i32.const 3
i32.or
i32.store offset=4
local.get 7
local.get 7
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 2
local.get 1
call $dispose_chunk
local.get 0
return
end
i32.const 0
i32.load offset=1072
local.get 5
i32.add
local.tee 5
local.get 2
i32.le_u
br_if 1 (;@9;)
local.get 3
local.get 2
local.get 4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
i32.const 0
local.get 6
local.get 2
i32.add
local.tee 1
i32.store offset=1084
i32.const 0
local.get 5
local.get 2
i32.sub
local.tee 2
i32.store offset=1072
local.get 1
local.get 2
i32.const 1
i32.or
i32.store offset=4
local.get 0
return
end
i32.const 0
i32.load offset=1068
local.get 5
i32.add
local.tee 5
local.get 2
i32.ge_u
br_if 3 (;@6;)
end
local.get 1
call $dlmalloc
local.tee 2
i32.eqz
br_if 1 (;@7;)
local.get 2
local.get 0
local.get 3
i32.load
local.tee 5
i32.const -8
i32.and
i32.const 4
i32.const 8
local.get 5
i32.const 3
i32.and
select
i32.sub
local.tee 5
local.get 1
local.get 5
local.get 1
i32.lt_u
select
call $memcpy
drop
local.get 0
call $dlfree
local.get 2
local.set 0
end
local.get 0
return
end
i32.const 0
return
end
block ;; label = @6
block ;; label = @7
local.get 5
local.get 2
i32.sub
local.tee 1
i32.const 16
i32.lt_u
br_if 0 (;@7;)
local.get 3
local.get 2
local.get 4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 2
i32.add
local.tee 2
local.get 1
i32.const 1
i32.or
i32.store offset=4
local.get 6
local.get 5
i32.add
local.tee 5
local.get 1
i32.store
local.get 5
local.get 5
i32.load offset=4
i32.const -2
i32.and
i32.store offset=4
br 1 (;@6;)
end
local.get 3
local.get 4
i32.const 1
i32.and
local.get 5
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 5
i32.add
local.tee 1
local.get 1
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
i32.const 0
local.set 1
i32.const 0
local.set 2
end
i32.const 0
local.get 2
i32.store offset=1080
i32.const 0
local.get 1
i32.store offset=1068
local.get 0
return
end
local.get 7
i32.load offset=24
local.set 11
local.get 7
i32.load offset=12
local.tee 8
local.get 7
i32.eq
br_if 1 (;@3;)
local.get 7
i32.load offset=8
local.tee 1
local.get 8
i32.store offset=12
local.get 8
local.get 1
i32.store offset=8
local.get 11
br_if 2 (;@2;)
br 3 (;@1;)
end
i32.const 0
i32.const 0
i32.load offset=1060
i32.const -2
local.get 8
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1060
br 2 (;@1;)
end
block ;; label = @3
block ;; label = @4
local.get 7
i32.const 20
i32.add
local.tee 1
i32.load
local.tee 5
br_if 0 (;@4;)
local.get 7
i32.const 16
i32.add
local.tee 1
i32.load
local.tee 5
i32.eqz
br_if 1 (;@3;)
end
loop ;; label = @4
local.get 1
local.set 12
local.get 5
local.tee 8
i32.const 20
i32.add
local.tee 1
i32.load
local.tee 5
br_if 0 (;@4;)
local.get 8
i32.const 16
i32.add
local.set 1
local.get 8
i32.load offset=16
local.tee 5
br_if 0 (;@4;)
end
local.get 12
i32.const 0
i32.store
local.get 11
i32.eqz
br_if 2 (;@1;)
br 1 (;@2;)
end
i32.const 0
local.set 8
local.get 11
i32.eqz
br_if 1 (;@1;)
end
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 7
i32.load offset=28
local.tee 5
i32.const 2
i32.shl
i32.const 1364
i32.add
local.tee 1
i32.load
local.get 7
i32.eq
br_if 0 (;@4;)
local.get 11
i32.const 16
i32.const 20
local.get 11
i32.load offset=16
local.get 7
i32.eq
select
i32.add
local.get 8
i32.store
local.get 8
br_if 1 (;@3;)
br 3 (;@1;)
end
local.get 1
local.get 8
i32.store
local.get 8
i32.eqz
br_if 1 (;@2;)
end
local.get 8
local.get 11
i32.store offset=24
block ;; label = @3
local.get 7
i32.load offset=16
local.tee 1
i32.eqz
br_if 0 (;@3;)
local.get 8
local.get 1
i32.store offset=16
local.get 1
local.get 8
i32.store offset=24
end
local.get 7
i32.const 20
i32.add
i32.load
local.tee 1
i32.eqz
br_if 1 (;@1;)
local.get 8
i32.const 20
i32.add
local.get 1
i32.store
local.get 1
local.get 8
i32.store offset=24
br 1 (;@1;)
end
i32.const 0
i32.const 0
i32.load offset=1064
i32.const -2
local.get 5
i32.rotl
i32.and
i32.store offset=1064
end
block ;; label = @1
local.get 10
i32.const 15
i32.gt_u
br_if 0 (;@1;)
local.get 3
local.get 4
i32.const 1
i32.and
local.get 9
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 9
i32.add
local.tee 1
local.get 1
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 0
return
end
local.get 3
local.get 2
local.get 4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 6
local.get 2
i32.add
local.tee 1
local.get 10
i32.const 3
i32.or
i32.store offset=4
local.get 6
local.get 9
i32.add
local.tee 2
local.get 2
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 1
local.get 10
call $dispose_chunk
local.get 0)
(func $dispose_chunk (type 11) (param i32 i32)
(local i32 i32 i32 i32 i32 i32)
local.get 0
local.get 1
i32.add
local.set 2
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
local.get 0
i32.load offset=4
local.tee 3
i32.const 1
i32.and
br_if 0 (;@10;)
local.get 3
i32.const 3
i32.and
i32.eqz
br_if 1 (;@9;)
local.get 0
i32.load
local.tee 3
local.get 1
i32.add
local.set 1
block ;; label = @11
block ;; label = @12
block ;; label = @13
block ;; label = @14
block ;; label = @15
i32.const 0
i32.load offset=1080
local.get 0
local.get 3
i32.sub
local.tee 0
i32.eq
br_if 0 (;@15;)
local.get 3
i32.const 255
i32.gt_u
br_if 1 (;@14;)
local.get 0
i32.load offset=12
local.tee 4
local.get 0
i32.load offset=8
local.tee 5
i32.eq
br_if 2 (;@13;)
local.get 4
local.get 5
i32.store offset=8
local.get 5
local.get 4
i32.store offset=12
br 5 (;@10;)
end
local.get 2
i32.load offset=4
local.tee 3
i32.const 3
i32.and
i32.const 3
i32.ne
br_if 4 (;@10;)
local.get 2
i32.const 4
i32.add
local.get 3
i32.const -2
i32.and
i32.store
i32.const 0
local.get 1
i32.store offset=1068
local.get 2
local.get 1
i32.store
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
return
end
local.get 0
i32.load offset=24
local.set 6
local.get 0
i32.load offset=12
local.tee 5
local.get 0
i32.eq
br_if 1 (;@12;)
local.get 0
i32.load offset=8
local.tee 3
local.get 5
i32.store offset=12
local.get 5
local.get 3
i32.store offset=8
local.get 6
br_if 2 (;@11;)
br 3 (;@10;)
end
i32.const 0
i32.const 0
i32.load offset=1060
i32.const -2
local.get 3
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1060
br 2 (;@10;)
end
block ;; label = @12
block ;; label = @13
local.get 0
i32.const 20
i32.add
local.tee 3
i32.load
local.tee 4
br_if 0 (;@13;)
local.get 0
i32.const 16
i32.add
local.tee 3
i32.load
local.tee 4
i32.eqz
br_if 1 (;@12;)
end
loop ;; label = @13
local.get 3
local.set 7
local.get 4
local.tee 5
i32.const 20
i32.add
local.tee 3
i32.load
local.tee 4
br_if 0 (;@13;)
local.get 5
i32.const 16
i32.add
local.set 3
local.get 5
i32.load offset=16
local.tee 4
br_if 0 (;@13;)
end
local.get 7
i32.const 0
i32.store
local.get 6
i32.eqz
br_if 2 (;@10;)
br 1 (;@11;)
end
i32.const 0
local.set 5
local.get 6
i32.eqz
br_if 1 (;@10;)
end
block ;; label = @11
block ;; label = @12
block ;; label = @13
local.get 0
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1364
i32.add
local.tee 3
i32.load
local.get 0
i32.eq
br_if 0 (;@13;)
local.get 6
i32.const 16
i32.const 20
local.get 6
i32.load offset=16
local.get 0
i32.eq
select
i32.add
local.get 5
i32.store
local.get 5
br_if 1 (;@12;)
br 3 (;@10;)
end
local.get 3
local.get 5
i32.store
local.get 5
i32.eqz
br_if 1 (;@11;)
end
local.get 5
local.get 6
i32.store offset=24
block ;; label = @12
local.get 0
i32.load offset=16
local.tee 3
i32.eqz
br_if 0 (;@12;)
local.get 5
local.get 3
i32.store offset=16
local.get 3
local.get 5
i32.store offset=24
end
local.get 0
i32.const 20
i32.add
i32.load
local.tee 3
i32.eqz
br_if 1 (;@10;)
local.get 5
i32.const 20
i32.add
local.get 3
i32.store
local.get 3
local.get 5
i32.store offset=24
br 1 (;@10;)
end
i32.const 0
i32.const 0
i32.load offset=1064
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1064
end
block ;; label = @10
block ;; label = @11
local.get 2
i32.load offset=4
local.tee 3
i32.const 2
i32.and
br_if 0 (;@11;)
i32.const 0
i32.load offset=1084
local.get 2
i32.eq
br_if 1 (;@10;)
i32.const 0
i32.load offset=1080
local.get 2
i32.eq
br_if 3 (;@8;)
local.get 3
i32.const -8
i32.and
local.get 1
i32.add
local.set 1
local.get 3
i32.const 255
i32.gt_u
br_if 4 (;@7;)
local.get 2
i32.load offset=12
local.tee 4
local.get 2
i32.load offset=8
local.tee 5
i32.eq
br_if 6 (;@5;)
local.get 4
local.get 5
i32.store offset=8
local.get 5
local.get 4
i32.store offset=12
br 9 (;@2;)
end
local.get 2
i32.const 4
i32.add
local.get 3
i32.const -2
i32.and
i32.store
local.get 0
local.get 1
i32.add
local.get 1
i32.store
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
br 9 (;@1;)
end
i32.const 0
local.get 0
i32.store offset=1084
i32.const 0
i32.const 0
i32.load offset=1072
local.get 1
i32.add
local.tee 1
i32.store offset=1072
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
local.get 0
i32.const 0
i32.load offset=1080
i32.eq
br_if 3 (;@6;)
end
return
end
i32.const 0
local.get 0
i32.store offset=1080
i32.const 0
i32.const 0
i32.load offset=1068
local.get 1
i32.add
local.tee 1
i32.store offset=1068
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
local.get 0
local.get 1
i32.add
local.get 1
i32.store
return
end
local.get 2
i32.load offset=24
local.set 6
local.get 2
i32.load offset=12
local.tee 5
local.get 2
i32.eq
br_if 2 (;@4;)
local.get 2
i32.load offset=8
local.tee 3
local.get 5
i32.store offset=12
local.get 5
local.get 3
i32.store offset=8
local.get 6
br_if 3 (;@3;)
br 4 (;@2;)
end
i32.const 0
i32.const 0
i32.store offset=1068
i32.const 0
i32.const 0
i32.store offset=1080
return
end
i32.const 0
i32.const 0
i32.load offset=1060
i32.const -2
local.get 3
i32.const 3
i32.shr_u
i32.rotl
i32.and
i32.store offset=1060
br 2 (;@2;)
end
block ;; label = @4
block ;; label = @5
local.get 2
i32.const 20
i32.add
local.tee 3
i32.load
local.tee 4
br_if 0 (;@5;)
local.get 2
i32.const 16
i32.add
local.tee 3
i32.load
local.tee 4
i32.eqz
br_if 1 (;@4;)
end
loop ;; label = @5
local.get 3
local.set 7
local.get 4
local.tee 5
i32.const 20
i32.add
local.tee 3
i32.load
local.tee 4
br_if 0 (;@5;)
local.get 5
i32.const 16
i32.add
local.set 3
local.get 5
i32.load offset=16
local.tee 4
br_if 0 (;@5;)
end
local.get 7
i32.const 0
i32.store
local.get 6
i32.eqz
br_if 2 (;@2;)
br 1 (;@3;)
end
i32.const 0
local.set 5
local.get 6
i32.eqz
br_if 1 (;@2;)
end
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 2
i32.load offset=28
local.tee 4
i32.const 2
i32.shl
i32.const 1364
i32.add
local.tee 3
i32.load
local.get 2
i32.eq
br_if 0 (;@5;)
local.get 6
i32.const 16
i32.const 20
local.get 6
i32.load offset=16
local.get 2
i32.eq
select
i32.add
local.get 5
i32.store
local.get 5
br_if 1 (;@4;)
br 3 (;@2;)
end
local.get 3
local.get 5
i32.store
local.get 5
i32.eqz
br_if 1 (;@3;)
end
local.get 5
local.get 6
i32.store offset=24
block ;; label = @4
local.get 2
i32.load offset=16
local.tee 3
i32.eqz
br_if 0 (;@4;)
local.get 5
local.get 3
i32.store offset=16
local.get 3
local.get 5
i32.store offset=24
end
local.get 2
i32.const 20
i32.add
i32.load
local.tee 3
i32.eqz
br_if 1 (;@2;)
local.get 5
i32.const 20
i32.add
local.get 3
i32.store
local.get 3
local.get 5
i32.store offset=24
br 1 (;@2;)
end
i32.const 0
i32.const 0
i32.load offset=1064
i32.const -2
local.get 4
i32.rotl
i32.and
i32.store offset=1064
end
local.get 0
local.get 1
i32.add
local.get 1
i32.store
local.get 0
local.get 1
i32.const 1
i32.or
i32.store offset=4
local.get 0
i32.const 0
i32.load offset=1080
i32.ne
br_if 0 (;@1;)
i32.const 0
local.get 1
i32.store offset=1068
return
end
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 1
i32.const 255
i32.gt_u
br_if 0 (;@6;)
local.get 1
i32.const 3
i32.shr_u
local.tee 3
i32.const 3
i32.shl
i32.const 1100
i32.add
local.set 1
i32.const 0
i32.load offset=1060
local.tee 4
i32.const 1
local.get 3
i32.shl
local.tee 3
i32.and
i32.eqz
br_if 1 (;@5;)
local.get 1
i32.load offset=8
local.set 3
br 2 (;@4;)
end
i32.const 0
local.set 3
block ;; label = @6
local.get 1
i32.const 8
i32.shr_u
local.tee 4
i32.eqz
br_if 0 (;@6;)
i32.const 31
local.set 3
local.get 1
i32.const 16777215
i32.gt_u
br_if 0 (;@6;)
local.get 1
i32.const 14
local.get 4
local.get 4
i32.const 1048320
i32.add
i32.const 16
i32.shr_u
i32.const 8
i32.and
local.tee 3
i32.shl
local.tee 4
i32.const 520192
i32.add
i32.const 16
i32.shr_u
i32.const 4
i32.and
local.tee 5
local.get 3
i32.or
local.get 4
local.get 5
i32.shl
local.tee 3
i32.const 245760
i32.add
i32.const 16
i32.shr_u
i32.const 2
i32.and
local.tee 4
i32.or
i32.sub
local.get 3
local.get 4
i32.shl
i32.const 15
i32.shr_u
i32.add
local.tee 3
i32.const 7
i32.add
i32.shr_u
i32.const 1
i32.and
local.get 3
i32.const 1
i32.shl
i32.or
local.set 3
end
local.get 0
i64.const 0
i64.store offset=16 align=4
local.get 0
i32.const 28
i32.add
local.get 3
i32.store
local.get 3
i32.const 2
i32.shl
i32.const 1364
i32.add
local.set 4
i32.const 0
i32.load offset=1064
local.tee 5
i32.const 1
local.get 3
i32.shl
local.tee 2
i32.and
i32.eqz
br_if 2 (;@3;)
local.get 1
i32.const 0
i32.const 25
local.get 3
i32.const 1
i32.shr_u
i32.sub
local.get 3
i32.const 31
i32.eq
select
i32.shl
local.set 3
local.get 4
i32.load
local.set 5
loop ;; label = @6
local.get 5
local.tee 4
i32.load offset=4
i32.const -8
i32.and
local.get 1
i32.eq
br_if 5 (;@1;)
local.get 3
i32.const 29
i32.shr_u
local.set 5
local.get 3
i32.const 1
i32.shl
local.set 3
local.get 4
local.get 5
i32.const 4
i32.and
i32.add
i32.const 16
i32.add
local.tee 2
i32.load
local.tee 5
br_if 0 (;@6;)
end
local.get 2
local.get 0
i32.store
local.get 0
i32.const 24
i32.add
local.get 4
i32.store
br 3 (;@2;)
end
i32.const 0
local.get 4
local.get 3
i32.or
i32.store offset=1060
local.get 1
local.set 3
end
local.get 3
local.get 0
i32.store offset=12
local.get 1
local.get 0
i32.store offset=8
local.get 0
local.get 1
i32.store offset=12
local.get 0
local.get 3
i32.store offset=8
return
end
local.get 4
local.get 0
i32.store
i32.const 0
local.get 5
local.get 2
i32.or
i32.store offset=1064
local.get 0
i32.const 24
i32.add
local.get 4
i32.store
end
local.get 0
local.get 0
i32.store offset=12
local.get 0
local.get 0
i32.store offset=8
return
end
local.get 4
i32.load offset=8
local.tee 1
local.get 0
i32.store offset=12
local.get 4
local.get 0
i32.store offset=8
local.get 0
i32.const 24
i32.add
i32.const 0
i32.store
local.get 0
local.get 4
i32.store offset=12
local.get 0
local.get 1
i32.store offset=8)
(func $posix_memalign (type 4) (param i32 i32 i32) (result i32)
(local i32 i32)
block ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 1
i32.const 8
i32.ne
br_if 0 (;@3;)
local.get 2
call $dlmalloc
local.tee 1
i32.eqz
br_if 1 (;@2;)
br 2 (;@1;)
end
i32.const 28
local.set 3
block ;; label = @3
block ;; label = @4
local.get 1
i32.const 3
i32.and
br_if 0 (;@4;)
local.get 1
i32.const 2
i32.shr_u
local.tee 4
i32.eqz
br_if 0 (;@4;)
local.get 4
i32.const -1
i32.add
local.get 4
i32.and
br_if 0 (;@4;)
i32.const 48
local.set 3
i32.const -64
local.get 1
i32.sub
local.get 2
i32.ge_u
br_if 1 (;@3;)
end
local.get 3
return
end
local.get 1
i32.const 16
local.get 1
i32.const 16
i32.gt_u
select
local.get 2
call $internal_memalign
local.tee 1
br_if 1 (;@1;)
end
i32.const 48
return
end
local.get 0
local.get 1
i32.store
i32.const 0)
(func $internal_memalign (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32)
i32.const 16
local.set 2
block ;; label = @1
block ;; label = @2
local.get 0
i32.const 16
local.get 0
i32.const 16
i32.gt_u
select
local.tee 3
i32.const -1
i32.add
local.get 3
i32.and
i32.eqz
br_if 0 (;@2;)
loop ;; label = @3
local.get 2
local.tee 0
i32.const 1
i32.shl
local.set 2
local.get 0
local.get 3
i32.lt_u
br_if 0 (;@3;)
br 2 (;@1;)
end
end
local.get 3
local.set 0
end
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
i32.const -64
local.get 0
i32.sub
local.get 1
i32.le_u
br_if 0 (;@5;)
i32.const 16
local.get 1
i32.const 11
i32.add
i32.const -8
i32.and
local.get 1
i32.const 11
i32.lt_u
select
local.tee 1
local.get 0
i32.add
i32.const 12
i32.add
call $dlmalloc
local.tee 2
i32.eqz
br_if 1 (;@4;)
local.get 2
i32.const -8
i32.add
local.set 3
local.get 0
i32.const -1
i32.add
local.get 2
i32.and
i32.eqz
br_if 2 (;@3;)
local.get 2
i32.const -4
i32.add
local.tee 4
i32.load
local.tee 5
i32.const -8
i32.and
local.get 2
local.get 0
i32.add
i32.const -1
i32.add
i32.const 0
local.get 0
i32.sub
i32.and
i32.const -8
i32.add
local.tee 2
local.get 2
local.get 0
i32.add
local.get 2
local.get 3
i32.sub
i32.const 15
i32.gt_u
select
local.tee 0
local.get 3
i32.sub
local.tee 2
i32.sub
local.set 6
local.get 5
i32.const 3
i32.and
i32.eqz
br_if 3 (;@2;)
local.get 0
local.get 6
local.get 0
i32.load offset=4
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store offset=4
local.get 0
local.get 6
i32.add
local.tee 6
local.get 6
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 4
local.get 2
local.get 4
i32.load
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 0
local.get 0
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 3
local.get 2
call $dispose_chunk
br 4 (;@1;)
end
i32.const 0
i32.const 48
i32.store offset=1556
i32.const 0
return
end
i32.const 0
return
end
local.get 3
local.set 0
br 1 (;@1;)
end
local.get 0
local.get 6
i32.store offset=4
local.get 0
local.get 3
i32.load
local.get 2
i32.add
i32.store
end
block ;; label = @1
local.get 0
i32.load offset=4
local.tee 2
i32.const 3
i32.and
i32.eqz
br_if 0 (;@1;)
local.get 2
i32.const -8
i32.and
local.tee 3
local.get 1
i32.const 16
i32.add
i32.le_u
br_if 0 (;@1;)
local.get 0
i32.const 4
i32.add
local.get 1
local.get 2
i32.const 1
i32.and
i32.or
i32.const 2
i32.or
i32.store
local.get 0
local.get 1
i32.add
local.tee 2
local.get 3
local.get 1
i32.sub
local.tee 1
i32.const 3
i32.or
i32.store offset=4
local.get 0
local.get 3
i32.add
local.tee 3
local.get 3
i32.load offset=4
i32.const 1
i32.or
i32.store offset=4
local.get 2
local.get 1
call $dispose_chunk
end
local.get 0
i32.const 8
i32.add)
(func $aligned_alloc (type 0) (param i32 i32) (result i32)
block ;; label = @1
local.get 0
i32.const 8
i32.gt_u
br_if 0 (;@1;)
local.get 1
call $dlmalloc
return
end
local.get 0
local.get 1
call $internal_memalign)
(func $malloc_usable_size (type 1) (param i32) (result i32)
(local i32 i32)
i32.const 0
local.set 1
block ;; label = @1
local.get 0
i32.eqz
br_if 0 (;@1;)
local.get 0
i32.const -4
i32.add
i32.load
local.tee 0
i32.const 3
i32.and
local.tee 2
i32.const 1
i32.eq
br_if 0 (;@1;)
local.get 0
i32.const -8
i32.and
i32.const 4
i32.const 8
local.get 2
select
i32.sub
local.set 1
end
local.get 1)
(func $_Exit (type 5) (param i32)
local.get 0
call $__wasi_proc_exit
unreachable)
(func $openat (type 3) (param i32 i32 i32 i32) (result i32)
(local i32 i32 i64 i64 i64)
global.get 0
i32.const 32
i32.sub
local.tee 4
global.set 0
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
local.get 2
i32.const 503316480
i32.and
i32.const -33554432
i32.add
i32.const 25
i32.shr_u
local.tee 5
i32.const 9
i32.gt_u
br_if 0 (;@6;)
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
i32.const 1
local.get 5
i32.shl
local.tee 5
i32.const 642
i32.and
i32.eqz
br_if 0 (;@10;)
local.get 2
i32.const 67108864
i32.and
br_if 1 (;@9;)
i64.const 0
local.set 6
i64.const -4211012
local.set 7
br 2 (;@8;)
end
local.get 5
i32.const 9
i32.and
i32.eqz
br_if 3 (;@6;)
i64.const 0
local.set 6
i64.const -4211012
local.set 7
br 2 (;@7;)
end
i64.const 16384
i64.const 2
local.get 2
i32.const 8192
i32.and
select
local.set 6
i64.const -4194626
local.set 7
end
local.get 2
i32.const 268435456
i32.and
i32.eqz
br_if 0 (;@7;)
local.get 7
i64.const 4194625
i64.or
local.set 7
local.get 6
i64.const 64
i64.const 68
local.get 2
i32.const 1
i32.and
select
i64.or
local.set 6
end
local.get 6
local.get 7
i64.and
local.get 6
i64.ne
br_if 5 (;@1;)
block ;; label = @7
local.get 0
local.get 4
i32.const 8
i32.add
call $__wasi_fd_fdstat_get
local.tee 5
i32.eqz
br_if 0 (;@7;)
i32.const 0
local.get 5
i32.store offset=1556
i32.const -1
local.set 5
br 5 (;@2;)
end
local.get 4
i32.load8_u offset=8
i32.const 3
i32.ne
br_if 1 (;@5;)
local.get 4
i64.load offset=24
local.tee 8
local.get 6
i64.and
local.get 6
i64.ne
br_if 2 (;@4;)
i32.const -1
local.set 5
local.get 0
local.get 2
i32.const 24
i32.shr_u
i32.const -1
i32.xor
i32.const 1
i32.and
local.get 1
local.get 1
call $strlen
local.get 2
i32.const 12
i32.shr_u
i32.const 4095
i32.and
local.get 8
local.get 7
i64.and
local.get 8
local.get 2
i32.const 4095
i32.and
local.get 4
i32.const 4
i32.add
call $__wasi_path_open
local.tee 2
i32.eqz
br_if 3 (;@3;)
i32.const 0
local.get 2
i32.store offset=1556
br 4 (;@2;)
end
i32.const 0
i32.const 28
i32.store offset=1556
i32.const -1
local.set 5
br 3 (;@2;)
end
i32.const 0
i32.const 54
i32.store offset=1556
i32.const -1
local.set 5
br 2 (;@2;)
end
i32.const 0
i32.const 76
i32.store offset=1556
i32.const -1
local.set 5
br 1 (;@2;)
end
local.get 4
i32.load offset=4
local.set 5
end
local.get 4
i32.const 32
i32.add
global.set 0
local.get 5
return
end
call $abort
unreachable)
(func $faccessat (type 3) (param i32 i32 i32 i32) (result i32)
(local i32 i64)
global.get 0
i32.const 80
i32.sub
local.tee 4
global.set 0
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 2
i32.const 7
i32.gt_u
br_if 0 (;@4;)
local.get 3
br_if 0 (;@4;)
local.get 0
i32.const 1
local.get 1
local.get 1
call $strlen
local.get 4
i32.const 24
i32.add
call $__wasi_path_filestat_get
local.tee 1
i32.eqz
br_if 1 (;@3;)
i32.const 0
local.get 1
i32.store offset=1556
br 2 (;@2;)
end
i32.const 0
i32.const 28
i32.store offset=1556
br 1 (;@2;)
end
i32.const 0
local.set 1
local.get 2
i32.eqz
br_if 1 (;@1;)
block ;; label = @3
local.get 0
local.get 4
call $__wasi_fd_fdstat_get
local.tee 3
br_if 0 (;@3;)
i64.const 0
local.set 5
block ;; label = @4
local.get 2
i32.const 1
i32.and
i32.eqz
br_if 0 (;@4;)
i64.const 16384
i64.const 2
local.get 4
i32.load8_u offset=40
i32.const 3
i32.eq
select
local.set 5
end
i32.const 2
local.set 3
local.get 5
local.get 2
i32.const 5
i32.shl
i32.const 64
i32.and
i64.extend_i32_u
i64.or
local.tee 5
local.get 4
i64.load offset=16
i64.and
local.get 5
i64.eq
br_if 2 (;@1;)
end
i32.const 0
local.get 3
i32.store offset=1556
end
i32.const -1
local.set 1
end
local.get 4
i32.const 80
i32.add
global.set 0
local.get 1)
(func $fstatat (type 3) (param i32 i32 i32 i32) (result i32)
(local i32 i32 i64 i64 i64 i64 i64 i64)
global.get 0
i32.const 96
i32.sub
local.tee 4
global.set 0
i32.const -1
local.set 5
block ;; label = @1
block ;; label = @2
local.get 0
local.get 3
i32.const -1
i32.xor
i32.const 1
i32.and
local.get 1
local.get 1
call $strlen
local.get 4
i32.const 8
i32.add
call $__wasi_path_filestat_get
local.tee 1
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.get 1
i32.store offset=1556
br 1 (;@1;)
end
local.get 2
i64.const 0
i64.store offset=64
i32.const 0
local.set 5
local.get 2
i32.const 0
i32.store offset=56
local.get 2
i64.const 0
i64.store offset=40
local.get 2
i64.const 0
i64.store offset=32
local.get 2
i64.const 0
i64.store offset=24
local.get 4
i32.const 88
i32.add
i64.const 0
i64.store align=4
local.get 4
i32.const 80
i32.add
i64.const 0
i64.store align=4
local.get 2
local.get 4
i64.load offset=32
i64.store offset=48
local.get 2
local.get 4
i64.load32_u offset=28
i64.store offset=16
local.get 2
local.get 4
i64.load offset=16
i64.store offset=8
local.get 2
local.get 4
i64.load offset=8
i64.store
local.get 2
local.get 4
i64.load offset=56
local.tee 6
i64.const 1000000000
i64.div_u
local.tee 7
i64.store offset=104
local.get 2
local.get 4
i64.load offset=48
local.tee 8
i64.const 1000000000
i64.div_u
local.tee 9
i64.store offset=88
local.get 2
local.get 4
i64.load offset=40
local.tee 10
i64.const 1000000000
i64.div_u
local.tee 11
i64.store offset=72
local.get 2
i32.const 112
i32.add
local.get 6
local.get 7
i64.const 1000000000
i64.mul
i64.sub
i64.store32
local.get 2
i32.const 96
i32.add
local.get 8
local.get 9
i64.const 1000000000
i64.mul
i64.sub
i64.store32
local.get 2
i32.const 80
i32.add
local.get 10
local.get 11
i64.const 1000000000
i64.mul
i64.sub
i64.store32
local.get 4
i64.const 0
i64.store offset=72 align=4
local.get 2
i32.const 140
i32.add
local.get 4
i32.const 68
i32.add
i32.const 24
i32.add
i32.load
i32.store
local.get 2
i32.const 132
i32.add
local.get 4
i32.const 84
i32.add
i64.load align=4
i64.store align=4
local.get 2
i32.const 124
i32.add
local.get 4
i32.const 76
i32.add
i64.load align=4
i64.store align=4
local.get 2
local.get 4
i64.load offset=68 align=4
i64.store offset=116 align=4
local.get 4
i32.load8_u offset=24
i32.const -1
i32.add
local.tee 1
i32.const 255
i32.and
i32.const 6
i32.gt_u
br_if 0 (;@1;)
local.get 2
i32.const 24
i32.add
local.get 1
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 2
i32.shl
i32.const 1792
i32.add
i32.load
i32.store
end
local.get 4
i32.const 96
i32.add
global.set 0
local.get 5)
(func $renameat (type 3) (param i32 i32 i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 1
local.get 1
call $strlen
local.get 2
local.get 3
local.get 3
call $strlen
call $__wasi_path_rename
local.tee 3
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 3
i32.store offset=1556
i32.const -1
return
end
i32.const 0)
(func $__wasilibc_rmfileat (type 0) (param i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 1
local.get 1
call $strlen
call $__wasi_path_unlink_file
local.tee 1
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 1
i32.store offset=1556
i32.const -1
return
end
i32.const 0)
(func $__wasilibc_rmdirat (type 0) (param i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 1
local.get 1
call $strlen
call $__wasi_path_remove_directory
local.tee 1
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 1
i32.store offset=1556
i32.const -1
return
end
i32.const 0)
(func $linkat (type 7) (param i32 i32 i32 i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 4
i32.const 1
i32.shr_u
i32.const 1
i32.and
local.get 1
local.get 1
call $strlen
local.get 2
local.get 3
local.get 3
call $strlen
call $__wasi_path_link
local.tee 3
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 3
i32.store offset=1556
i32.const -1
return
end
i32.const 0)
(func $mkdirat (type 4) (param i32 i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 1
local.get 1
call $strlen
call $__wasi_path_create_directory
local.tee 1
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 1
i32.store offset=1556
i32.const -1
return
end
i32.const 0)
(func $fdopendir (type 1) (param i32) (result i32)
(local i32 i32)
i32.const 0
local.set 1
block ;; label = @1
i32.const 40
call $malloc
local.tee 2
i32.eqz
br_if 0 (;@1;)
local.get 2
i32.const 4096
call $malloc
local.tee 1
i32.store offset=16
block ;; label = @2
block ;; label = @3
local.get 1
i32.eqz
br_if 0 (;@3;)
local.get 0
local.get 1
i32.const 4096
i64.const 0
local.get 2
i32.const 28
i32.add
call $__wasi_fd_readdir
local.tee 1
i32.eqz
br_if 1 (;@2;)
local.get 2
i32.const 16
i32.add
i32.load
call $free
local.get 2
call $free
i32.const 0
local.get 1
i32.store offset=1556
i32.const 0
return
end
local.get 2
call $free
i32.const 0
return
end
local.get 2
i64.const 4294967296
i64.store offset=32
local.get 2
i64.const 17592186044416
i64.store offset=20 align=4
local.get 2
i64.const 0
i64.store offset=8
local.get 2
local.get 0
i32.store
local.get 2
local.set 1
end
local.get 1)
(func $close (type 1) (param i32) (result i32)
block ;; label = @1
local.get 0
call $__wasi_fd_close
local.tee 0
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.store offset=1556
i32.const -1
return
end
i32.const 0)
(func $opendirat (type 0) (param i32 i32) (result i32)
(local i32)
i32.const 0
local.set 2
block ;; label = @1
block ;; label = @2
local.get 0
local.get 1
i32.const 67117060
i32.const 0
call $openat
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
call $fdopendir
local.tee 2
i32.eqz
br_if 1 (;@1;)
end
local.get 2
return
end
local.get 0
call $close
drop
i32.const 0)
(func $readlinkat (type 3) (param i32 i32 i32 i32) (result i32)
(local i32)
global.get 0
i32.const 16
i32.sub
local.tee 4
global.set 0
block ;; label = @1
block ;; label = @2
local.get 0
local.get 1
local.get 1
call $strlen
local.get 2
local.get 3
local.get 4
i32.const 12
i32.add
call $__wasi_path_readlink
local.tee 1
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.get 1
i32.store offset=1556
i32.const -1
local.set 1
br 1 (;@1;)
end
local.get 4
i32.load offset=12
local.set 1
end
local.get 4
i32.const 16
i32.add
global.set 0
local.get 1)
(func $scandirat (type 7) (param i32 i32 i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 5
global.set 0
i32.const -1
local.set 6
block ;; label = @1
local.get 0
local.get 1
i32.const 67117060
i32.const 0
call $openat
local.tee 7
i32.const -1
i32.eq
br_if 0 (;@1;)
i32.const 4096
local.set 0
block ;; label = @2
i32.const 4096
call $malloc
local.tee 8
i32.eqz
br_if 0 (;@2;)
local.get 3
i32.const 2
local.get 3
select
local.set 9
local.get 5
i32.const 4096
i32.store offset=28
i64.const 0
local.set 10
local.get 5
i32.const 16
i32.add
local.set 11
local.get 5
i32.const 8
i32.add
local.set 12
local.get 5
i32.const 20
i32.add
local.set 13
i32.const 0
local.set 14
i32.const 0
local.set 6
i32.const 0
local.set 15
i32.const 0
local.set 16
i32.const 0
local.set 17
i32.const 4096
local.set 18
i32.const 4096
local.set 1
loop ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @13
block ;; label = @14
local.get 0
local.get 18
i32.sub
local.tee 19
i32.const 23
i32.gt_u
br_if 0 (;@14;)
local.get 0
local.get 1
i32.lt_u
br_if 5 (;@9;)
local.get 8
local.set 3
local.get 1
local.set 0
br 1 (;@13;)
end
local.get 5
local.get 8
local.get 18
i32.add
local.tee 20
i32.const 24
call $memcpy
drop
local.get 11
i32.load
local.tee 0
i32.const 24
i32.add
local.set 3
local.get 0
i32.eqz
br_if 1 (;@12;)
local.get 19
local.get 3
i32.ge_u
br_if 2 (;@11;)
loop ;; label = @14
local.get 1
local.tee 0
i32.const 1
i32.shl
local.set 1
local.get 0
local.get 3
i32.lt_u
br_if 0 (;@14;)
end
local.get 8
local.get 0
call $realloc
local.tee 3
i32.eqz
br_if 5 (;@8;)
end
i32.const 0
local.set 18
local.get 7
local.get 3
local.get 0
local.get 10
local.get 5
i32.const 28
i32.add
call $__wasi_fd_readdir
local.tee 1
br_if 2 (;@10;)
local.get 3
local.set 8
local.get 0
local.set 1
local.get 5
i32.load offset=28
local.set 0
br 9 (;@3;)
end
local.get 3
local.get 18
i32.add
local.set 18
local.get 5
i32.load offset=28
local.set 0
br 8 (;@3;)
end
local.get 3
local.get 18
i32.add
local.set 18
local.get 20
i32.const 24
i32.add
local.tee 3
i32.const 0
local.get 0
call $memchr
br_if 6 (;@4;)
local.get 0
i32.const 10
i32.add
call $malloc
local.tee 0
i32.eqz
br_if 2 (;@8;)
local.get 12
i64.load
local.set 10
local.get 0
local.get 13
i32.load8_u
i32.store8 offset=8
local.get 0
local.get 10
i64.store
local.get 0
i32.const 9
i32.add
local.tee 19
local.get 3
local.get 11
i32.load
call $memcpy
drop
local.get 19
local.get 11
i32.load
i32.add
i32.const 0
i32.store8
local.get 5
i64.load
local.set 10
block ;; label = @11
local.get 0
local.get 9
call_indirect (type 1)
i32.eqz
br_if 0 (;@11;)
block ;; label = @12
local.get 6
local.get 14
i32.ne
br_if 0 (;@12;)
local.get 16
i32.const 8
local.get 14
i32.const 1
i32.shl
local.get 14
i32.const 8
i32.lt_u
select
local.tee 3
i32.const 2
i32.shl
call $realloc
local.tee 16
i32.eqz
br_if 5 (;@7;)
local.get 3
local.set 14
local.get 16
local.set 15
local.get 16
local.set 17
end
local.get 17
local.get 6
i32.const 2
i32.shl
i32.add
local.get 0
i32.store
local.get 6
i32.const 1
i32.add
local.set 6
local.get 5
i32.load offset=28
local.set 0
br 8 (;@3;)
end
local.get 0
call $free
br 6 (;@4;)
end
i32.const 0
local.get 1
i32.store offset=1556
local.get 3
local.set 8
local.get 6
local.tee 14
br_if 3 (;@6;)
br 4 (;@5;)
end
local.get 8
call $free
local.get 7
call $close
drop
local.get 16
local.get 6
i32.const 4
local.get 4
call $qsort
local.get 2
local.get 15
i32.store
br 7 (;@1;)
end
local.get 6
local.tee 14
i32.eqz
br_if 2 (;@5;)
br 1 (;@6;)
end
local.get 0
call $free
local.get 14
i32.eqz
br_if 1 (;@5;)
end
loop ;; label = @6
local.get 17
i32.load
call $free
local.get 17
i32.const 4
i32.add
local.set 17
local.get 14
i32.const -1
i32.add
local.tee 14
br_if 0 (;@6;)
end
end
local.get 15
call $free
local.get 8
call $free
local.get 7
call $close
drop
i32.const -1
local.set 6
br 3 (;@1;)
end
local.get 5
i32.load offset=28
local.set 0
br 0 (;@3;)
end
end
local.get 7
call $close
drop
end
local.get 5
i32.const 32
i32.add
global.set 0
local.get 6)
(func $sel_true (type 1) (param i32) (result i32)
i32.const 1)
(func $symlinkat (type 4) (param i32 i32 i32) (result i32)
block ;; label = @1
local.get 0
local.get 0
call $strlen
local.get 1
local.get 2
local.get 2
call $strlen
call $__wasi_path_symlink
local.tee 2
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 2
i32.store offset=1556
i32.const -1
return
end
i32.const 0)
(func $open (type 4) (param i32 i32 i32) (result i32)
(local i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 3
global.set 0
i32.const 0
local.set 4
block ;; label = @1
local.get 1
i32.const 4096
i32.and
i32.eqz
br_if 0 (;@1;)
local.get 3
local.get 2
i32.const 4
i32.add
i32.store offset=28
local.get 2
i32.load
local.set 4
end
local.get 3
i32.const 16
i32.add
local.get 0
i64.const 8192
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 3
i32.load offset=16
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
i32.load offset=20
local.set 0
local.get 3
local.get 4
i32.store
local.get 2
local.get 0
local.get 1
local.get 3
call $openat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 3
i32.const 32
i32.add
global.set 0
local.get 0)
(func $find_relative (type 12) (param i32 i32 i64 i64)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
i32.const 0
local.set 4
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
i32.const 0
i32.load offset=1560
local.tee 5
i32.eqz
br_if 0 (;@5;)
local.get 5
call $po_map_assertvalid
i32.const 0
i32.load offset=1560
local.tee 5
call $po_map_assertvalid
local.get 1
i32.eqz
br_if 3 (;@2;)
local.get 5
i32.load offset=12
local.tee 6
i32.eqz
br_if 1 (;@4;)
local.get 5
i32.load offset=4
local.set 7
i32.const 0
local.set 8
local.get 1
i32.load8_u
local.tee 9
i32.const 47
i32.eq
local.set 10
local.get 9
i32.const 46
i32.ne
local.set 11
i32.const -1
local.set 12
i32.const 0
local.set 13
loop ;; label = @6
local.get 7
local.get 8
i32.const 24
i32.mul
i32.add
local.tee 14
i32.load
local.tee 15
call $strlen
local.set 16
block ;; label = @7
block ;; label = @8
block ;; label = @9
block ;; label = @10
block ;; label = @11
block ;; label = @12
block ;; label = @13
block ;; label = @14
block ;; label = @15
local.get 10
br_if 0 (;@15;)
block ;; label = @16
local.get 11
br_if 0 (;@16;)
local.get 1
i32.const 1
i32.add
i32.load8_u
local.tee 4
i32.eqz
br_if 1 (;@15;)
local.get 4
i32.const 47
i32.eq
br_if 1 (;@15;)
end
block ;; label = @16
local.get 16
i32.const 2
i32.lt_u
br_if 0 (;@16;)
local.get 15
i32.load8_u
local.tee 4
i32.const 46
i32.ne
br_if 4 (;@12;)
i32.const 46
local.set 4
local.get 15
i32.load8_u offset=1
i32.const 47
i32.ne
br_if 4 (;@12;)
local.get 16
i32.const -2
i32.add
local.set 16
local.get 15
i32.const 2
i32.add
local.set 15
local.get 10
i32.eqz
br_if 2 (;@14;)
br 3 (;@13;)
end
local.get 16
i32.const 1
i32.ne
br_if 0 (;@15;)
local.get 15
i32.const 1
i32.add
local.get 15
local.get 15
i32.load8_u
local.tee 4
i32.const 46
i32.eq
select
local.set 15
local.get 4
i32.const 46
i32.ne
local.set 16
local.get 10
i32.eqz
br_if 1 (;@14;)
br 2 (;@13;)
end
local.get 15
i32.eqz
br_if 9 (;@5;)
local.get 10
br_if 1 (;@13;)
end
i32.const 0
local.set 17
local.get 16
i32.eqz
br_if 5 (;@8;)
end
local.get 16
i32.eqz
br_if 1 (;@11;)
local.get 15
i32.load8_u
local.set 4
end
local.get 9
local.get 4
i32.const 255
i32.and
i32.ne
br_if 4 (;@7;)
i32.const 1
local.set 4
loop ;; label = @12
local.get 4
local.get 16
i32.ge_u
br_if 2 (;@10;)
local.get 15
local.get 4
i32.add
local.set 5
local.get 1
local.get 4
i32.add
local.set 18
local.get 4
i32.const 1
i32.add
local.set 4
local.get 18
i32.load8_u
local.get 5
i32.load8_u
i32.eq
br_if 0 (;@12;)
br 5 (;@7;)
end
end
i32.const 0
local.set 17
i32.const 0
local.set 4
br 1 (;@9;)
end
local.get 16
local.set 17
end
local.get 15
i32.const -1
i32.add
local.set 18
block ;; label = @9
loop ;; label = @10
local.get 4
local.tee 5
i32.eqz
br_if 1 (;@9;)
local.get 5
i32.const -1
i32.add
local.set 4
local.get 18
local.get 5
i32.add
i32.load8_u
i32.const 47
i32.eq
br_if 0 (;@10;)
end
end
local.get 1
local.get 5
i32.add
i32.load8_u
local.tee 4
i32.const 47
i32.eq
br_if 0 (;@8;)
local.get 4
br_if 1 (;@7;)
end
local.get 14
i64.load offset=8
i64.const -1
i64.xor
local.get 2
i64.and
i64.const 0
i64.ne
br_if 0 (;@7;)
local.get 14
i64.load offset=16
i64.const -1
i64.xor
local.get 3
i64.and
i64.const 0
i64.ne
br_if 0 (;@7;)
local.get 14
i32.load offset=4
local.set 12
local.get 17
local.set 13
end
local.get 8
i32.const 1
i32.add
local.tee 8
local.get 6
i32.lt_u
br_if 0 (;@6;)
br 3 (;@3;)
end
end
call $abort
unreachable
end
i32.const -1
local.set 12
i32.const 0
local.set 13
end
local.get 1
local.get 13
i32.add
local.tee 4
i32.const 1
i32.add
local.get 4
local.get 4
i32.load8_u
i32.const 47
i32.eq
local.tee 5
select
i32.const 1820
local.get 4
local.get 5
i32.add
i32.load8_u
select
local.set 4
br 1 (;@1;)
end
i32.const -1
local.set 12
end
local.get 0
local.get 4
i32.store offset=4
local.get 0
local.get 12
i32.store)
(func $po_map_assertvalid (type 5) (param i32)
(local i32 i32)
block ;; label = @1
local.get 0
i32.load
i32.const 0
i32.le_s
br_if 0 (;@1;)
local.get 0
i32.load offset=12
local.tee 1
local.get 0
i32.load offset=8
local.tee 2
i32.gt_u
br_if 0 (;@1;)
local.get 0
i32.load offset=4
local.set 0
block ;; label = @2
local.get 2
i32.eqz
br_if 0 (;@2;)
local.get 0
i32.eqz
br_if 1 (;@1;)
end
block ;; label = @2
local.get 1
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.set 2
loop ;; label = @3
local.get 0
i32.load
i32.eqz
br_if 2 (;@1;)
local.get 0
i32.const 4
i32.add
i32.load
i32.const -1
i32.le_s
br_if 2 (;@1;)
local.get 0
i32.const 24
i32.add
local.set 0
local.get 2
i32.const 1
i32.add
local.tee 2
local.get 1
i32.lt_u
br_if 0 (;@3;)
end
end
return
end
call $abort
unreachable)
(func $access (type 0) (param i32 i32) (result i32)
(local 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.get 0
i64.const 262144
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
i32.const 0
call $faccessat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $eaccess (type 0) (param i32 i32) (result i32)
(local 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.get 0
i64.const 262144
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
i32.const 0
call $faccessat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $lstat (type 0) (param i32 i32) (result i32)
(local 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.get 0
i64.const 262144
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
i32.const 1
call $fstatat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $rename (type 0) (param i32 i32) (result i32)
(local 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.get 0
i64.const 65536
i64.const 0
call $find_relative
local.get 2
local.get 1
i64.const 131072
i64.const 0
call $find_relative
i32.const -1
local.set 1
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 2
i32.load
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
local.get 2
i32.load offset=12
local.get 3
local.get 2
i32.load offset=4
call $renameat
local.set 1
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 1)
(func $stat (type 0) (param i32 i32) (result i32)
(local 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.get 0
i64.const 262144
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
i32.const 1
call $fstatat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $unlink (type 1) (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
i64.const 67108864
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 1
i32.load offset=8
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 2
local.get 1
i32.load offset=12
call $__wasilibc_rmfileat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $rmdir (type 1) (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
i64.const 33554432
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 1
i32.load offset=8
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 2
local.get 1
i32.load offset=12
call $__wasilibc_rmdirat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $remove (type 1) (param i32) (result i32)
(local i32 i32 i32 i32 i64)
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
i64.const 100663296
i64.const 0
call $find_relative
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 1
i32.load offset=8
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@4;)
local.get 2
local.get 1
i32.load offset=12
local.tee 3
call $__wasilibc_rmfileat
local.tee 0
i32.eqz
br_if 1 (;@3;)
br 2 (;@2;)
end
local.get 1
local.get 0
i64.const 67108864
i64.const 0
call $find_relative
local.get 1
local.get 1
i64.load
local.tee 5
i64.store offset=8
block ;; label = @4
local.get 5
i32.wrap_i64
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@4;)
local.get 2
local.get 5
i64.const 32
i64.shr_u
i32.wrap_i64
local.tee 3
call $__wasilibc_rmfileat
local.tee 0
br_if 2 (;@2;)
br 1 (;@3;)
end
local.get 1
local.get 0
i64.const 33554432
i64.const 0
call $find_relative
local.get 1
local.get 1
i64.load
local.tee 5
i64.store offset=8
i32.const -1
local.set 0
block ;; label = @4
local.get 5
i32.wrap_i64
local.tee 2
i32.const -1
i32.eq
br_if 0 (;@4;)
local.get 2
local.get 5
i64.const 32
i64.shr_u
i32.wrap_i64
local.tee 3
call $__wasilibc_rmfileat
local.tee 0
br_if 2 (;@2;)
br 1 (;@3;)
end
i32.const 0
i32.const 76
i32.store offset=1556
br 2 (;@1;)
end
i32.const 0
local.set 0
br 1 (;@1;)
end
block ;; label = @2
i32.const 0
i32.load offset=1556
local.tee 4
i32.const 76
i32.eq
br_if 0 (;@2;)
local.get 4
i32.const 31
i32.ne
br_if 1 (;@1;)
end
local.get 2
local.get 3
call $__wasilibc_rmdirat
local.set 0
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $link (type 0) (param i32 i32) (result i32)
(local 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.get 0
i64.const 2048
i64.const 0
call $find_relative
local.get 2
local.get 1
i64.const 4096
i64.const 0
call $find_relative
i32.const -1
local.set 1
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 2
i32.load
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
local.get 2
i32.load offset=12
local.get 3
local.get 2
i32.load offset=4
i32.const 0
call $linkat
local.set 1
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 1)
(func $mkdir (type 0) (param i32 i32) (result i32)
(local 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.get 0
i64.const 512
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 3
local.get 2
i32.load offset=12
local.get 1
call $mkdirat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 0)
(func $opendir (type 1) (param i32) (result i32)
(local 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
i64.const 8192
i64.const 0
call $find_relative
block ;; label = @1
block ;; label = @2
local.get 1
i32.load offset=8
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
local.get 1
i32.load offset=12
call $opendirat
local.set 0
br 1 (;@1;)
end
i32.const 0
local.set 0
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 1
i32.const 16
i32.add
global.set 0
local.get 0)
(func $readlink (type 4) (param i32 i32 i32) (result i32)
(local i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 3
global.set 0
local.get 3
i32.const 8
i32.add
local.get 0
i64.const 32768
i64.const 0
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 3
i32.load offset=8
local.tee 4
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 4
local.get 3
i32.load offset=12
local.get 1
local.get 2
call $readlinkat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 3
i32.const 16
i32.add
global.set 0
local.get 0)
(func $scandir (type 3) (param i32 i32 i32 i32) (result i32)
(local i32 i32)
global.get 0
i32.const 16
i32.sub
local.tee 4
global.set 0
local.get 4
i32.const 8
i32.add
local.get 0
i64.const 8192
i64.const 16384
call $find_relative
i32.const -1
local.set 0
block ;; label = @1
block ;; label = @2
local.get 4
i32.load offset=8
local.tee 5
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 5
local.get 4
i32.load offset=12
local.get 1
local.get 2
local.get 3
call $scandirat
local.set 0
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 4
i32.const 16
i32.add
global.set 0
local.get 0)
(func $symlink (type 0) (param i32 i32) (result i32)
(local 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.get 1
i64.const 16777216
i64.const 0
call $find_relative
i32.const -1
local.set 1
block ;; label = @1
block ;; label = @2
local.get 2
i32.load offset=8
local.tee 3
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
local.get 3
local.get 2
i32.load offset=12
call $symlinkat
local.set 1
br 1 (;@1;)
end
i32.const 0
i32.const 76
i32.store offset=1556
end
local.get 2
i32.const 16
i32.add
global.set 0
local.get 1)
(func $__wasilibc_init_preopen (type 2)
(local i32 i32)
block ;; label = @1
i32.const 16
call $malloc
local.tee 0
i32.eqz
br_if 0 (;@1;)
local.get 0
i32.const 24
i32.const 4
call $calloc
local.tee 1
i32.store offset=4
block ;; label = @2
local.get 1
i32.eqz
br_if 0 (;@2;)
local.get 0
i64.const 4
i64.store offset=8 align=4
local.get 0
i32.const 1
i32.store
local.get 0
call $po_map_assertvalid
i32.const 0
local.get 0
i32.store offset=1560
local.get 0
call $po_map_assertvalid
return
end
local.get 0
call $free
end
i32.const 0
i32.const 0
i32.store offset=1560
unreachable
unreachable)
(func $__wasilibc_register_preopened_fd (type 0) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 2
global.set 0
i32.const 0
i32.load offset=1560
call $po_map_assertvalid
i32.const -1
local.set 3
block ;; label = @1
local.get 1
i32.eqz
br_if 0 (;@1;)
i32.const 0
i32.load offset=1560
local.tee 4
call $po_map_assertvalid
local.get 0
i32.const 0
i32.lt_s
br_if 0 (;@1;)
block ;; label = @2
block ;; label = @3
local.get 4
i32.load offset=12
local.tee 5
local.get 4
i32.load offset=8
i32.ne
br_if 0 (;@3;)
i32.const 24
local.get 5
i32.const 1
i32.shl
call $calloc
local.tee 6
i32.eqz
br_if 2 (;@1;)
local.get 6
local.get 4
i32.load offset=4
local.get 4
i32.const 12
i32.add
local.tee 5
i32.load
i32.const 24
i32.mul
call $memcpy
drop
local.get 4
i32.load offset=4
call $free
local.get 4
local.get 6
i32.store offset=4
local.get 4
i32.const 8
i32.add
local.tee 7
local.get 7
i32.load
i32.const 1
i32.shl
i32.store
local.get 5
i32.load
local.set 5
br 1 (;@2;)
end
local.get 4
i32.load offset=4
local.set 6
end
local.get 4
i32.const 12
i32.add
local.get 5
i32.const 1
i32.add
i32.store
local.get 1
call $strdup
local.set 7
local.get 6
local.get 5
i32.const 24
i32.mul
i32.add
local.tee 1
local.get 0
i32.store offset=4
local.get 1
local.get 7
i32.store
block ;; label = @2
local.get 0
local.get 2
i32.const 8
i32.add
call $__wasi_fd_fdstat_get
local.tee 0
i32.eqz
br_if 0 (;@2;)
i32.const 0
local.get 0
i32.store offset=1556
br 1 (;@1;)
end
local.get 1
local.get 2
i64.load offset=16
i64.store offset=8
local.get 1
local.get 2
i64.load offset=24
i64.store offset=16
local.get 4
call $po_map_assertvalid
local.get 4
call $po_map_assertvalid
i32.const 0
local.set 3
i32.const 0
local.get 4
i32.store offset=1560
end
local.get 2
i32.const 32
i32.add
global.set 0
local.get 3)
(func $__wasilibc_find_relpath (type 13) (param i32 i64 i64 i32) (result i32)
(local i32)
global.get 0
i32.const 16
i32.sub
local.tee 4
global.set 0
local.get 4
i32.const 8
i32.add
local.get 0
local.get 1
local.get 2
call $find_relative
local.get 3
local.get 4
i32.load offset=12
i32.store
local.get 4
i32.load offset=8
local.set 3
local.get 4
i32.const 16
i32.add
global.set 0
local.get 3)
(func $abort (type 2)
unreachable
unreachable)
(func $sbrk (type 1) (param i32) (result i32)
block ;; label = @1
local.get 0
i32.const 65535
i32.and
br_if 0 (;@1;)
local.get 0
i32.const -1
i32.le_s
br_if 0 (;@1;)
block ;; label = @2
local.get 0
i32.const 16
i32.shr_u
memory.grow
local.tee 0
i32.const -1
i32.eq
br_if 0 (;@2;)
local.get 0
i32.const 16
i32.shl
return
end
i32.const 0
i32.const 48
i32.store offset=1556
i32.const -1
return
end
call $abort
unreachable)
(func $dummy (type 2))
(func $__prepare_for_exit (type 2)
call $dummy
call $dummy)
(func $exit (type 5) (param i32)
call $dummy
call $dummy
local.get 0
call $_Exit
unreachable)
(func $memchr (type 4) (param i32 i32 i32) (result i32)
(local i32 i32 i32)
local.get 2
i32.const 0
i32.ne
local.set 3
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 2
i32.eqz
br_if 0 (;@5;)
local.get 0
i32.const 3
i32.and
i32.eqz
br_if 0 (;@5;)
local.get 1
i32.const 255
i32.and
local.set 3
loop ;; label = @6
local.get 0
i32.load8_u
local.get 3
i32.eq
br_if 2 (;@4;)
local.get 2
i32.const 1
i32.ne
local.set 4
local.get 2
i32.const -1
i32.add
local.set 5
local.get 0
i32.const 1
i32.add
local.set 0
block ;; label = @7
local.get 2
i32.const 1
i32.eq
br_if 0 (;@7;)
local.get 5
local.set 2
local.get 0
i32.const 3
i32.and
br_if 1 (;@6;)
end
end
local.get 4
br_if 2 (;@3;)
br 3 (;@2;)
end
local.get 2
local.set 5
local.get 3
br_if 1 (;@3;)
br 2 (;@2;)
end
local.get 2
local.set 5
end
block ;; label = @3
local.get 0
i32.load8_u
local.get 1
i32.const 255
i32.and
i32.eq
br_if 0 (;@3;)
local.get 5
i32.const 4
i32.lt_u
br_if 0 (;@3;)
local.get 1
i32.const 255
i32.and
i32.const 16843009
i32.mul
local.set 3
loop ;; label = @4
local.get 0
i32.load
local.get 3
i32.xor
local.tee 2
i32.const -1
i32.xor
local.get 2
i32.const -16843009
i32.add
i32.and
i32.const -2139062144
i32.and
br_if 1 (;@3;)
local.get 0
i32.const 4
i32.add
local.set 0
local.get 5
i32.const -4
i32.add
local.tee 5
i32.const 3
i32.gt_u
br_if 0 (;@4;)
end
end
local.get 5
i32.eqz
br_if 0 (;@2;)
local.get 1
i32.const 255
i32.and
local.set 2
loop ;; label = @3
local.get 0
i32.load8_u
local.get 2
i32.eq
br_if 2 (;@1;)
local.get 0
i32.const 1
i32.add
local.set 0
local.get 5
i32.const -1
i32.add
local.tee 5
br_if 0 (;@3;)
end
end
i32.const 0
return
end
local.get 0)
(func $memcpy (type 4) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32)
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 2
i32.eqz
br_if 0 (;@4;)
local.get 1
i32.const 3
i32.and
i32.eqz
br_if 0 (;@4;)
local.get 0
local.set 3
block ;; label = @5
loop ;; label = @6
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 2
i32.const -1
i32.add
local.set 4
local.get 3
i32.const 1
i32.add
local.set 3
local.get 1
i32.const 1
i32.add
local.set 1
local.get 2
i32.const 1
i32.eq
br_if 1 (;@5;)
local.get 4
local.set 2
local.get 1
i32.const 3
i32.and
br_if 0 (;@6;)
end
end
local.get 3
i32.const 3
i32.and
local.tee 2
i32.eqz
br_if 1 (;@3;)
br 2 (;@2;)
end
local.get 2
local.set 4
local.get 0
local.tee 3
i32.const 3
i32.and
local.tee 2
br_if 1 (;@2;)
end
block ;; label = @3
block ;; label = @4
local.get 4
i32.const 16
i32.lt_u
br_if 0 (;@4;)
local.get 4
i32.const -16
i32.add
local.set 2
loop ;; label = @5
local.get 3
local.get 1
i32.load
i32.store
local.get 3
i32.const 4
i32.add
local.get 1
i32.const 4
i32.add
i32.load
i32.store
local.get 3
i32.const 8
i32.add
local.get 1
i32.const 8
i32.add
i32.load
i32.store
local.get 3
i32.const 12
i32.add
local.get 1
i32.const 12
i32.add
i32.load
i32.store
local.get 3
i32.const 16
i32.add
local.set 3
local.get 1
i32.const 16
i32.add
local.set 1
local.get 4
i32.const -16
i32.add
local.tee 4
i32.const 15
i32.gt_u
br_if 0 (;@5;)
br 2 (;@3;)
end
end
local.get 4
local.set 2
end
block ;; label = @3
local.get 2
i32.const 8
i32.and
i32.eqz
br_if 0 (;@3;)
local.get 3
local.get 1
i64.load align=4
i64.store align=4
local.get 1
i32.const 8
i32.add
local.set 1
local.get 3
i32.const 8
i32.add
local.set 3
end
block ;; label = @3
local.get 2
i32.const 4
i32.and
i32.eqz
br_if 0 (;@3;)
local.get 3
local.get 1
i32.load
i32.store
local.get 1
i32.const 4
i32.add
local.set 1
local.get 3
i32.const 4
i32.add
local.set 3
end
block ;; label = @3
local.get 2
i32.const 2
i32.and
i32.eqz
br_if 0 (;@3;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
i32.const 2
i32.add
local.set 3
local.get 1
i32.const 2
i32.add
local.set 1
end
local.get 2
i32.const 1
i32.and
i32.eqz
br_if 1 (;@1;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 0
return
end
block ;; label = @2
local.get 4
i32.const 32
i32.lt_u
br_if 0 (;@2;)
block ;; label = @3
block ;; label = @4
local.get 2
i32.const 3
i32.eq
br_if 0 (;@4;)
local.get 2
i32.const 2
i32.eq
br_if 1 (;@3;)
local.get 2
i32.const 1
i32.ne
br_if 2 (;@2;)
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
local.get 1
i32.load
local.tee 5
i32.store8
local.get 3
local.get 1
i32.load8_u offset=2
i32.store8 offset=2
local.get 4
i32.const -3
i32.add
local.set 6
local.get 3
i32.const 3
i32.add
local.set 7
local.get 4
i32.const -20
i32.add
i32.const -16
i32.and
local.set 8
i32.const 0
local.set 2
loop ;; label = @5
local.get 7
local.get 2
i32.add
local.tee 3
local.get 1
local.get 2
i32.add
local.tee 9
i32.const 4
i32.add
i32.load
local.tee 10
i32.const 8
i32.shl
local.get 5
i32.const 24
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 4
i32.add
local.get 9
i32.const 8
i32.add
i32.load
local.tee 5
i32.const 8
i32.shl
local.get 10
i32.const 24
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 8
i32.add
local.get 9
i32.const 12
i32.add
i32.load
local.tee 10
i32.const 8
i32.shl
local.get 5
i32.const 24
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 12
i32.add
local.get 9
i32.const 16
i32.add
i32.load
local.tee 5
i32.const 8
i32.shl
local.get 10
i32.const 24
i32.shr_u
i32.or
i32.store
local.get 2
i32.const 16
i32.add
local.set 2
local.get 6
i32.const -16
i32.add
local.tee 6
i32.const 16
i32.gt_u
br_if 0 (;@5;)
end
local.get 7
local.get 2
i32.add
local.set 3
local.get 1
local.get 2
i32.add
i32.const 3
i32.add
local.set 1
local.get 4
i32.const -19
i32.add
local.get 8
i32.sub
local.set 4
br 2 (;@2;)
end
local.get 3
local.get 1
i32.load
local.tee 5
i32.store8
local.get 4
i32.const -1
i32.add
local.set 6
local.get 3
i32.const 1
i32.add
local.set 7
local.get 4
i32.const -20
i32.add
i32.const -16
i32.and
local.set 8
i32.const 0
local.set 2
loop ;; label = @4
local.get 7
local.get 2
i32.add
local.tee 3
local.get 1
local.get 2
i32.add
local.tee 9
i32.const 4
i32.add
i32.load
local.tee 10
i32.const 24
i32.shl
local.get 5
i32.const 8
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 4
i32.add
local.get 9
i32.const 8
i32.add
i32.load
local.tee 5
i32.const 24
i32.shl
local.get 10
i32.const 8
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 8
i32.add
local.get 9
i32.const 12
i32.add
i32.load
local.tee 10
i32.const 24
i32.shl
local.get 5
i32.const 8
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 12
i32.add
local.get 9
i32.const 16
i32.add
i32.load
local.tee 5
i32.const 24
i32.shl
local.get 10
i32.const 8
i32.shr_u
i32.or
i32.store
local.get 2
i32.const 16
i32.add
local.set 2
local.get 6
i32.const -16
i32.add
local.tee 6
i32.const 18
i32.gt_u
br_if 0 (;@4;)
end
local.get 7
local.get 2
i32.add
local.set 3
local.get 1
local.get 2
i32.add
i32.const 1
i32.add
local.set 1
local.get 4
i32.const -17
i32.add
local.get 8
i32.sub
local.set 4
br 1 (;@2;)
end
local.get 3
local.get 1
i32.load
local.tee 5
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 4
i32.const -2
i32.add
local.set 6
local.get 3
i32.const 2
i32.add
local.set 7
local.get 4
i32.const -20
i32.add
i32.const -16
i32.and
local.set 8
i32.const 0
local.set 2
loop ;; label = @3
local.get 7
local.get 2
i32.add
local.tee 3
local.get 1
local.get 2
i32.add
local.tee 9
i32.const 4
i32.add
i32.load
local.tee 10
i32.const 16
i32.shl
local.get 5
i32.const 16
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 4
i32.add
local.get 9
i32.const 8
i32.add
i32.load
local.tee 5
i32.const 16
i32.shl
local.get 10
i32.const 16
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 8
i32.add
local.get 9
i32.const 12
i32.add
i32.load
local.tee 10
i32.const 16
i32.shl
local.get 5
i32.const 16
i32.shr_u
i32.or
i32.store
local.get 3
i32.const 12
i32.add
local.get 9
i32.const 16
i32.add
i32.load
local.tee 5
i32.const 16
i32.shl
local.get 10
i32.const 16
i32.shr_u
i32.or
i32.store
local.get 2
i32.const 16
i32.add
local.set 2
local.get 6
i32.const -16
i32.add
local.tee 6
i32.const 17
i32.gt_u
br_if 0 (;@3;)
end
local.get 7
local.get 2
i32.add
local.set 3
local.get 1
local.get 2
i32.add
i32.const 2
i32.add
local.set 1
local.get 4
i32.const -18
i32.add
local.get 8
i32.sub
local.set 4
end
block ;; label = @2
local.get 4
i32.const 16
i32.and
i32.eqz
br_if 0 (;@2;)
local.get 3
local.get 1
i32.load16_u align=1
i32.store16 align=1
local.get 3
local.get 1
i32.load8_u offset=2
i32.store8 offset=2
local.get 3
local.get 1
i32.load8_u offset=3
i32.store8 offset=3
local.get 3
local.get 1
i32.load8_u offset=4
i32.store8 offset=4
local.get 3
local.get 1
i32.load8_u offset=5
i32.store8 offset=5
local.get 3
local.get 1
i32.load8_u offset=6
i32.store8 offset=6
local.get 3
local.get 1
i32.load8_u offset=7
i32.store8 offset=7
local.get 3
local.get 1
i32.load8_u offset=8
i32.store8 offset=8
local.get 3
local.get 1
i32.load8_u offset=9
i32.store8 offset=9
local.get 3
local.get 1
i32.load8_u offset=10
i32.store8 offset=10
local.get 3
local.get 1
i32.load8_u offset=11
i32.store8 offset=11
local.get 3
local.get 1
i32.load8_u offset=12
i32.store8 offset=12
local.get 3
local.get 1
i32.load8_u offset=13
i32.store8 offset=13
local.get 3
local.get 1
i32.load8_u offset=14
i32.store8 offset=14
local.get 3
local.get 1
i32.load8_u offset=15
i32.store8 offset=15
local.get 3
i32.const 16
i32.add
local.set 3
local.get 1
i32.const 16
i32.add
local.set 1
end
block ;; label = @2
local.get 4
i32.const 8
i32.and
i32.eqz
br_if 0 (;@2;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
local.get 1
i32.load8_u offset=2
i32.store8 offset=2
local.get 3
local.get 1
i32.load8_u offset=3
i32.store8 offset=3
local.get 3
local.get 1
i32.load8_u offset=4
i32.store8 offset=4
local.get 3
local.get 1
i32.load8_u offset=5
i32.store8 offset=5
local.get 3
local.get 1
i32.load8_u offset=6
i32.store8 offset=6
local.get 3
local.get 1
i32.load8_u offset=7
i32.store8 offset=7
local.get 3
i32.const 8
i32.add
local.set 3
local.get 1
i32.const 8
i32.add
local.set 1
end
block ;; label = @2
local.get 4
i32.const 4
i32.and
i32.eqz
br_if 0 (;@2;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
local.get 1
i32.load8_u offset=2
i32.store8 offset=2
local.get 3
local.get 1
i32.load8_u offset=3
i32.store8 offset=3
local.get 3
i32.const 4
i32.add
local.set 3
local.get 1
i32.const 4
i32.add
local.set 1
end
block ;; label = @2
local.get 4
i32.const 2
i32.and
i32.eqz
br_if 0 (;@2;)
local.get 3
local.get 1
i32.load8_u
i32.store8
local.get 3
local.get 1
i32.load8_u offset=1
i32.store8 offset=1
local.get 3
i32.const 2
i32.add
local.set 3
local.get 1
i32.const 2
i32.add
local.set 1
end
local.get 4
i32.const 1
i32.and
i32.eqz
br_if 0 (;@1;)
local.get 3
local.get 1
i32.load8_u
i32.store8
end
local.get 0)
(func $memset (type 4) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i64)
block ;; label = @1
local.get 2
i32.eqz
br_if 0 (;@1;)
local.get 0
local.get 1
i32.store8
local.get 0
local.get 2
i32.add
local.tee 3
i32.const -1
i32.add
local.get 1
i32.store8
local.get 2
i32.const 3
i32.lt_u
br_if 0 (;@1;)
local.get 0
local.get 1
i32.store8 offset=2
local.get 0
local.get 1
i32.store8 offset=1
local.get 3
i32.const -3
i32.add
local.get 1
i32.store8
local.get 3
i32.const -2
i32.add
local.get 1
i32.store8
local.get 2
i32.const 7
i32.lt_u
br_if 0 (;@1;)
local.get 0
local.get 1
i32.store8 offset=3
local.get 3
i32.const -4
i32.add
local.get 1
i32.store8
local.get 2
i32.const 9
i32.lt_u
br_if 0 (;@1;)
local.get 0
i32.const 0
local.get 0
i32.sub
i32.const 3
i32.and
local.tee 4
i32.add
local.tee 3
local.get 1
i32.const 255
i32.and
i32.const 16843009
i32.mul
local.tee 1
i32.store
local.get 3
local.get 2
local.get 4
i32.sub
i32.const -4
i32.and
local.tee 4
i32.add
local.tee 2
i32.const -4
i32.add
local.get 1
i32.store
local.get 4
i32.const 9
i32.lt_u
br_if 0 (;@1;)
local.get 3
local.get 1
i32.store offset=8
local.get 3
local.get 1
i32.store offset=4
local.get 2
i32.const -8
i32.add
local.get 1
i32.store
local.get 2
i32.const -12
i32.add
local.get 1
i32.store
local.get 4
i32.const 25
i32.lt_u
br_if 0 (;@1;)
local.get 3
local.get 1
i32.store offset=24
local.get 3
local.get 1
i32.store offset=20
local.get 3
local.get 1
i32.store offset=16
local.get 3
local.get 1
i32.store offset=12
local.get 2
i32.const -16
i32.add
local.get 1
i32.store
local.get 2
i32.const -20
i32.add
local.get 1
i32.store
local.get 2
i32.const -24
i32.add
local.get 1
i32.store
local.get 2
i32.const -28
i32.add
local.get 1
i32.store
local.get 4
local.get 3
i32.const 4
i32.and
i32.const 24
i32.or
local.tee 5
i32.sub
local.tee 2
i32.const 32
i32.lt_u
br_if 0 (;@1;)
local.get 1
i64.extend_i32_u
local.tee 6
i64.const 32
i64.shl
local.get 6
i64.or
local.set 6
local.get 3
local.get 5
i32.add
local.set 1
loop ;; label = @2
local.get 1
local.get 6
i64.store
local.get 1
i32.const 24
i32.add
local.get 6
i64.store
local.get 1
i32.const 16
i32.add
local.get 6
i64.store
local.get 1
i32.const 8
i32.add
local.get 6
i64.store
local.get 1
i32.const 32
i32.add
local.set 1
local.get 2
i32.const -32
i32.add
local.tee 2
i32.const 31
i32.gt_u
br_if 0 (;@2;)
end
end
local.get 0)
(func $strdup (type 1) (param i32) (result i32)
(local i32 i32)
block ;; label = @1
local.get 0
call $strlen
i32.const 1
i32.add
local.tee 1
call $malloc
local.tee 2
i32.eqz
br_if 0 (;@1;)
local.get 2
local.get 0
local.get 1
call $memcpy
return
end
i32.const 0)
(func $strlen (type 1) (param i32) (result i32)
(local i32 i32 i32)
local.get 0
local.set 1
block ;; label = @1
block ;; label = @2
block ;; label = @3
local.get 0
i32.const 3
i32.and
i32.eqz
br_if 0 (;@3;)
local.get 0
i32.load8_u
i32.eqz
br_if 1 (;@2;)
local.get 0
i32.const 1
i32.add
local.set 1
loop ;; label = @4
local.get 1
i32.const 3
i32.and
i32.eqz
br_if 1 (;@3;)
local.get 1
i32.load8_u
local.set 2
local.get 1
i32.const 1
i32.add
local.tee 3
local.set 1
local.get 2
br_if 0 (;@4;)
end
local.get 3
i32.const -1
i32.add
local.get 0
i32.sub
return
end
local.get 1
i32.const -4
i32.add
local.set 1
loop ;; label = @3
local.get 1
i32.const 4
i32.add
local.tee 1
i32.load
local.tee 2
i32.const -1
i32.xor
local.get 2
i32.const -16843009
i32.add
i32.and
i32.const -2139062144
i32.and
i32.eqz
br_if 0 (;@3;)
end
local.get 2
i32.const 255
i32.and
i32.eqz
br_if 1 (;@1;)
loop ;; label = @3
local.get 1
i32.load8_u offset=1
local.set 2
local.get 1
i32.const 1
i32.add
local.tee 3
local.set 1
local.get 2
br_if 0 (;@3;)
end
local.get 3
local.get 0
i32.sub
return
end
local.get 0
local.get 0
i32.sub
return
end
local.get 1
local.get 0
i32.sub)
(func $qsort (type 14) (param i32 i32 i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 704
i32.sub
local.tee 4
global.set 0
local.get 4
i64.const 1
i64.store offset=8
block ;; label = @1
local.get 2
local.get 1
i32.mul
local.tee 5
i32.eqz
br_if 0 (;@1;)
local.get 4
local.get 2
i32.store offset=16
local.get 4
local.get 2
i32.store offset=20
i32.const 0
local.get 2
i32.sub
local.set 6
local.get 4
i32.const 16
i32.add
i32.const 8
i32.or
local.set 1
local.get 2
local.set 7
local.get 2
local.set 8
loop ;; label = @2
local.get 1
local.get 8
local.get 2
i32.add
local.get 7
local.tee 8
i32.add
local.tee 7
i32.store
local.get 1
i32.const 4
i32.add
local.set 1
local.get 8
local.set 8
local.get 7
local.get 5
i32.lt_u
br_if 0 (;@2;)
end
block ;; label = @2
block ;; label = @3
local.get 0
local.get 5
i32.add
local.get 6
i32.add
local.tee 9
local.get 0
i32.le_u
br_if 0 (;@3;)
local.get 4
i32.const 208
i32.add
i32.const 4
i32.or
local.set 10
i32.const 1
local.set 1
i32.const 1
local.set 11
loop ;; 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 1
i32.const 3
i32.and
i32.const 3
i32.ne
br_if 0 (;@11;)
local.get 4
local.get 0
i32.store offset=208
local.get 11
i32.const 2
i32.lt_s
br_if 5 (;@6;)
i32.const 1
local.set 12
local.get 10
local.set 5
local.get 0
local.set 13
local.get 0
local.set 1
local.get 11
local.set 14
block ;; label = @12
loop ;; label = @13
block ;; label = @14
local.get 13
local.get 1
local.get 6
i32.add
local.tee 7
local.get 4
i32.const 16
i32.add
local.get 14
i32.const -2
i32.add
local.tee 8
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 1
local.get 3
call_indirect (type 0)
i32.const 0
i32.lt_s
br_if 0 (;@14;)
local.get 13
local.get 7
local.get 3
call_indirect (type 0)
i32.const -1
i32.gt_s
br_if 2 (;@12;)
end
block ;; label = @14
block ;; label = @15
block ;; label = @16
local.get 1
local.get 7
local.get 3
call_indirect (type 0)
i32.const 0
i32.lt_s
br_if 0 (;@16;)
local.get 5
local.get 1
i32.store
local.get 14
i32.const -1
i32.add
local.tee 8
i32.const 2
i32.ge_s
br_if 1 (;@15;)
br 2 (;@14;)
end
local.get 5
local.get 7
i32.store
local.get 7
local.set 1
local.get 8
i32.const 2
i32.lt_s
br_if 1 (;@14;)
end
local.get 12
i32.const 1
i32.add
local.set 12
local.get 5
i32.const 4
i32.add
local.set 5
local.get 4
i32.load offset=208
local.set 13
local.get 8
local.set 14
br 1 (;@13;)
end
end
local.get 12
i32.const 1
i32.add
local.set 12
end
local.get 12
i32.const 2
i32.lt_s
br_if 5 (;@6;)
local.get 4
i32.const 208
i32.add
local.get 12
i32.const 2
i32.shl
i32.add
local.tee 15
local.get 4
i32.const 448
i32.add
i32.store
local.get 2
i32.eqz
br_if 5 (;@6;)
local.get 4
i32.const 448
i32.add
local.set 16
local.get 2
local.set 17
br 1 (;@10;)
end
block ;; label = @11
local.get 4
i32.const 16
i32.add
local.get 11
i32.const -1
i32.add
local.tee 18
i32.const 2
i32.shl
i32.add
i32.load
local.get 9
local.get 0
i32.sub
i32.ge_u
br_if 0 (;@11;)
local.get 4
local.get 0
i32.store offset=208
local.get 11
i32.const 2
i32.lt_s
br_if 4 (;@7;)
i32.const 1
local.set 19
local.get 10
local.set 5
local.get 0
local.set 13
local.get 0
local.set 1
local.get 11
local.set 14
block ;; label = @12
loop ;; label = @13
block ;; label = @14
local.get 13
local.get 1
local.get 6
i32.add
local.tee 7
local.get 4
i32.const 16
i32.add
local.get 14
i32.const -2
i32.add
local.tee 8
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 1
local.get 3
call_indirect (type 0)
i32.const 0
i32.lt_s
br_if 0 (;@14;)
local.get 13
local.get 7
local.get 3
call_indirect (type 0)
i32.const -1
i32.gt_s
br_if 2 (;@12;)
end
block ;; label = @14
block ;; label = @15
block ;; label = @16
local.get 1
local.get 7
local.get 3
call_indirect (type 0)
i32.const 0
i32.lt_s
br_if 0 (;@16;)
local.get 5
local.get 1
i32.store
local.get 14
i32.const -1
i32.add
local.tee 8
i32.const 2
i32.ge_s
br_if 1 (;@15;)
br 2 (;@14;)
end
local.get 5
local.get 7
i32.store
local.get 7
local.set 1
local.get 8
i32.const 2
i32.lt_s
br_if 1 (;@14;)
end
local.get 19
i32.const 1
i32.add
local.set 19
local.get 5
i32.const 4
i32.add
local.set 5
local.get 4
i32.load offset=208
local.set 13
local.get 8
local.set 14
br 1 (;@13;)
end
end
local.get 19
i32.const 1
i32.add
local.set 19
end
local.get 19
i32.const 2
i32.lt_s
br_if 4 (;@7;)
local.get 4
i32.const 208
i32.add
local.get 19
i32.const 2
i32.shl
i32.add
local.tee 20
local.get 4
i32.const 448
i32.add
i32.store
local.get 2
i32.eqz
br_if 4 (;@7;)
local.get 4
i32.const 448
i32.add
local.set 21
local.get 2
local.set 22
br 2 (;@9;)
end
local.get 0
local.get 2
local.get 3
local.get 4
i32.const 8
i32.add
local.get 11
i32.const 0
local.get 4
i32.const 16
i32.add
call $trinkle
br 3 (;@7;)
end
i32.const 0
local.set 1
br 1 (;@8;)
end
i32.const 1
local.set 1
end
loop ;; label = @8
block ;; label = @9
block ;; label = @10
local.get 1
br_table 0 (;@10;) 1 (;@9;) 1 (;@9;)
end
local.get 16
local.get 4
i32.load offset=208
local.tee 1
local.get 17
i32.const 256
local.get 17
i32.const 256
i32.lt_u
select
local.tee 8
call $memcpy
drop
local.get 4
i32.const 208
i32.add
local.set 7
local.get 12
local.set 5
loop ;; label = @10
local.get 1
local.get 7
i32.const 4
i32.add
local.tee 13
i32.load
local.tee 14
local.get 8
call $memcpy
drop
local.get 7
local.get 1
local.get 8
i32.add
i32.store
local.get 13
local.set 7
local.get 14
local.set 1
local.get 5
i32.const -1
i32.add
local.tee 5
br_if 0 (;@10;)
end
local.get 17
local.get 8
i32.sub
local.tee 17
i32.eqz
br_if 3 (;@6;)
local.get 15
i32.load
local.set 16
i32.const 0
local.set 1
br 1 (;@8;)
end
local.get 21
local.get 4
i32.load offset=208
local.tee 1
local.get 22
i32.const 256
local.get 22
i32.const 256
i32.lt_u
select
local.tee 8
call $memcpy
drop
local.get 4
i32.const 208
i32.add
local.set 7
local.get 19
local.set 5
loop ;; label = @9
local.get 1
local.get 7
i32.const 4
i32.add
local.tee 13
i32.load
local.tee 14
local.get 8
call $memcpy
drop
local.get 7
local.get 1
local.get 8
i32.add
i32.store
local.get 13
local.set 7
local.get 14
local.set 1
local.get 5
i32.const -1
i32.add
local.tee 5
br_if 0 (;@9;)
end
local.get 22
local.get 8
i32.sub
local.tee 22
i32.eqz
br_if 1 (;@7;)
local.get 20
i32.load
local.set 21
i32.const 1
local.set 1
br 0 (;@8;)
end
end
block ;; label = @7
block ;; label = @8
block ;; label = @9
local.get 11
i32.const 1
i32.eq
br_if 0 (;@9;)
local.get 18
i32.const 31
i32.le_u
br_if 1 (;@8;)
local.get 4
local.get 4
i32.load offset=8
local.tee 8
i32.store offset=12
i32.const 0
local.set 7
local.get 4
i32.const 0
i32.store offset=8
local.get 11
i32.const -33
i32.add
local.set 18
br 2 (;@7;)
end
local.get 4
local.get 4
i32.load offset=8
local.tee 7
i32.const 1
i32.shl
local.tee 1
i32.store offset=8
local.get 4
local.get 7
i32.const 31
i32.shr_u
local.get 4
i32.load offset=12
i32.const 1
i32.shl
i32.or
i32.store offset=12
i32.const 0
local.set 11
br 3 (;@5;)
end
local.get 4
i32.load offset=8
local.set 7
local.get 4
i32.load offset=12
local.set 8
end
local.get 4
local.get 7
local.get 18
i32.shl
local.tee 1
i32.store offset=8
local.get 4
local.get 7
i32.const 32
local.get 18
i32.sub
i32.shr_u
local.get 8
local.get 18
i32.shl
i32.or
i32.store offset=12
i32.const 1
local.set 11
br 1 (;@5;)
end
local.get 4
local.get 4
i32.load offset=12
local.tee 1
i32.const 2
i32.shr_u
i32.store offset=12
local.get 4
local.get 1
i32.const 30
i32.shl
local.get 4
i32.load offset=8
i32.const 2
i32.shr_u
i32.or
local.tee 1
i32.store offset=8
local.get 11
i32.const 2
i32.add
local.set 11
end
local.get 4
local.get 1
i32.const 1
i32.or
local.tee 1
i32.store offset=8
local.get 0
local.get 2
i32.add
local.tee 0
local.get 9
i32.lt_u
br_if 0 (;@4;)
br 2 (;@2;)
end
end
i32.const 1
local.set 11
end
local.get 0
local.get 2
local.get 3
local.get 4
i32.const 8
i32.add
local.get 11
i32.const 0
local.get 4
i32.const 16
i32.add
call $trinkle
local.get 0
local.get 6
i32.add
local.set 5
loop ;; label = @2
local.get 4
i32.load offset=8
local.set 1
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
local.get 11
i32.const 1
i32.ne
br_if 0 (;@8;)
local.get 1
i32.const 1
i32.ne
br_if 0 (;@8;)
local.get 4
i32.load offset=12
br_if 1 (;@7;)
br 7 (;@1;)
end
local.get 11
i32.const 1
i32.gt_s
br_if 1 (;@6;)
end
block ;; label = @7
block ;; label = @8
i32.const 1
local.get 1
i32.sub
local.get 1
i32.const -1
i32.add
i32.and
i32.const 124511785
i32.mul
i32.const 27
i32.shr_u
local.tee 7
i32.eqz
br_if 0 (;@8;)
local.get 7
i32.const 1824
i32.add
i32.load8_s
local.tee 13
i32.const 31
i32.le_u
br_if 1 (;@7;)
br 4 (;@4;)
end
i32.const 0
local.set 13
local.get 4
i32.load offset=12
local.tee 8
i32.const 0
local.get 8
i32.sub
i32.and
i32.const 124511785
i32.mul
i32.const 27
i32.shr_u
local.tee 7
i32.eqz
br_if 2 (;@5;)
local.get 7
i32.const 1824
i32.add
i32.load8_s
i32.const 32
i32.add
local.tee 13
i32.const 31
i32.gt_u
br_if 3 (;@4;)
end
local.get 4
i32.load offset=12
local.set 8
local.get 13
local.set 7
br 3 (;@3;)
end
local.get 4
local.get 4
i32.load offset=12
i32.const 2
i32.shl
local.get 1
i32.const 30
i32.shr_u
local.tee 7
i32.or
i32.const 1
i32.shr_u
i32.store offset=12
local.get 4
local.get 1
i32.const 1
i32.shl
i32.const 2147483646
i32.and
local.get 7
i32.const 31
i32.shl
i32.or
i32.const 3
i32.xor
i32.store offset=8
local.get 11
i32.const -1
i32.add
local.set 1
local.get 5
local.get 4
i32.const 16
i32.add
local.get 11
i32.const -2
i32.add
local.tee 11
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.get 2
local.get 3
local.get 4
i32.const 8
i32.add
local.get 1
i32.const 1
local.get 4
i32.const 16
i32.add
call $trinkle
local.get 4
local.get 4
i32.load offset=8
local.tee 1
i32.const 31
i32.shr_u
local.get 4
i32.load offset=12
i32.const 1
i32.shl
i32.or
i32.store offset=12
local.get 4
local.get 1
i32.const 1
i32.shl
i32.const 1
i32.or
i32.store offset=8
local.get 5
local.get 2
local.get 3
local.get 4
i32.const 8
i32.add
local.get 11
i32.const 1
local.get 4
i32.const 16
i32.add
call $trinkle
local.get 5
local.get 6
i32.add
local.set 5
br 3 (;@2;)
end
i32.const 0
local.set 7
br 1 (;@3;)
end
local.get 4
i32.load offset=12
local.set 1
i32.const 0
local.set 8
local.get 4
i32.const 0
i32.store offset=12
local.get 4
local.get 1
i32.store offset=8
local.get 13
i32.const -32
i32.add
local.set 7
end
local.get 4
local.get 8
local.get 7
i32.shr_u
i32.store offset=12
local.get 4
local.get 8
i32.const 32
local.get 7
i32.sub
i32.shl
local.get 1
local.get 7
i32.shr_u
i32.or
i32.store offset=8
local.get 13
local.get 11
i32.add
local.set 11
local.get 5
local.get 6
i32.add
local.set 5
br 0 (;@2;)
end
end
local.get 4
i32.const 704
i32.add
global.set 0)
(func $trinkle (type 15) (param i32 i32 i32 i32 i32 i32 i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 0
i32.const 736
i32.sub
local.tee 7
global.set 0
local.get 7
local.get 0
i32.store
local.get 3
i32.load
local.set 8
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 3
i32.load offset=4
local.tee 9
br_if 0 (;@5;)
i32.const 1
local.set 10
local.get 8
i32.const 1
i32.eq
br_if 1 (;@4;)
end
i32.const 1
local.set 10
local.get 0
local.get 6
local.get 4
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 11
local.get 0
local.get 2
call_indirect (type 0)
i32.const 1
i32.lt_s
br_if 0 (;@4;)
i32.const 0
local.get 1
i32.sub
local.set 12
local.get 7
i32.const 4
i32.or
local.set 13
local.get 5
i32.eqz
local.set 5
i32.const 1
local.set 10
br 1 (;@3;)
end
local.get 0
local.set 3
local.get 5
br_if 2 (;@1;)
br 1 (;@2;)
end
block ;; label = @3
loop ;; label = @4
local.get 11
local.set 3
block ;; label = @5
local.get 5
i32.const 1
i32.and
i32.eqz
br_if 0 (;@5;)
local.get 4
i32.const 2
i32.lt_s
br_if 0 (;@5;)
local.get 6
local.get 4
i32.const 2
i32.shl
i32.add
i32.const -8
i32.add
i32.load
local.set 11
local.get 0
local.get 12
i32.add
local.tee 5
local.get 3
local.get 2
call_indirect (type 0)
i32.const -1
i32.gt_s
br_if 2 (;@3;)
local.get 5
local.get 11
i32.sub
local.get 3
local.get 2
call_indirect (type 0)
i32.const -1
i32.gt_s
br_if 2 (;@3;)
end
local.get 13
local.get 3
i32.store
block ;; label = @5
block ;; label = @6
block ;; label = @7
i32.const 1
local.get 8
i32.sub
local.get 8
i32.const -1
i32.add
i32.and
i32.const 124511785
i32.mul
i32.const 27
i32.shr_u
local.tee 0
i32.eqz
br_if 0 (;@7;)
local.get 0
i32.const 1824
i32.add
i32.load8_s
local.set 0
br 1 (;@6;)
end
i32.const 0
local.set 0
block ;; label = @7
local.get 9
i32.const 0
local.get 9
i32.sub
i32.and
i32.const 124511785
i32.mul
i32.const 27
i32.shr_u
local.tee 11
br_if 0 (;@7;)
i32.const 0
local.set 11
br 2 (;@5;)
end
local.get 11
i32.const 1824
i32.add
i32.load8_s
i32.const 32
i32.add
local.set 0
end
local.get 0
i32.const -32
i32.add
local.get 0
local.get 0
i32.const 31
i32.gt_u
local.tee 5
select
local.set 11
local.get 9
local.get 8
local.get 5
select
local.set 8
i32.const 0
local.get 9
local.get 5
select
local.set 9
end
local.get 10
i32.const 1
i32.add
local.set 10
local.get 9
i32.const 32
local.get 11
i32.sub
i32.shl
local.get 8
local.get 11
i32.shr_u
i32.or
local.set 8
local.get 0
local.get 4
i32.add
local.set 4
block ;; label = @5
local.get 9
local.get 11
i32.shr_u
local.tee 9
br_if 0 (;@5;)
local.get 8
i32.const 1
i32.eq
br_if 3 (;@2;)
end
local.get 13
i32.const 4
i32.add
local.set 13
i32.const 1
local.set 5
local.get 3
local.set 0
local.get 3
local.get 6
local.get 4
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 11
local.get 7
i32.load
local.get 2
call_indirect (type 0)
i32.const 0
i32.gt_s
br_if 0 (;@4;)
end
i32.const 0
br_if 2 (;@1;)
br 1 (;@2;)
end
local.get 0
local.set 3
end
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 10
i32.const 2
i32.lt_u
br_if 0 (;@5;)
local.get 7
local.get 10
i32.const 2
i32.shl
i32.add
local.tee 14
local.get 7
i32.const 480
i32.add
i32.store
local.get 1
i32.eqz
br_if 1 (;@4;)
local.get 7
i32.const 480
i32.add
local.set 15
i32.const 256
local.set 16
i32.const 4
local.set 17
i32.const -1
local.set 18
local.get 1
local.set 19
i32.const 0
local.set 20
br 2 (;@3;)
end
i32.const 0
local.set 8
br 2 (;@2;)
end
i32.const 0
local.set 8
br 1 (;@2;)
end
i32.const 1
local.set 8
end
loop ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
block ;; label = @6
block ;; label = @7
block ;; label = @8
local.get 8
br_table 0 (;@8;) 1 (;@7;) 1 (;@7;)
end
local.get 7
local.get 3
i32.store offset=240
local.get 4
i32.const 1
i32.le_s
br_if 6 (;@1;)
i32.const 0
local.get 1
i32.sub
local.set 13
local.get 7
i32.const 240
i32.add
i32.const 4
i32.or
local.set 11
i32.const 1
local.set 21
local.get 3
local.set 8
block ;; label = @8
loop ;; label = @9
block ;; label = @10
local.get 3
local.get 8
local.get 13
i32.add
local.tee 9
local.get 6
local.get 4
i32.const -2
i32.add
local.tee 0
i32.const 2
i32.shl
i32.add
i32.load
i32.sub
local.tee 8
local.get 2
call_indirect (type 0)
i32.const 0
i32.lt_s
br_if 0 (;@10;)
local.get 3
local.get 9
local.get 2
call_indirect (type 0)
i32.const -1
i32.gt_s
br_if 2 (;@8;)
end
block ;; label = @10
block ;; label = @11
block ;; label = @12
local.get 8
local.get 9
local.get 2
call_indirect (type 0)
i32.const 0
i32.lt_s
br_if 0 (;@12;)
local.get 11
local.get 8
i32.store
local.get 4
i32.const -1
i32.add
local.tee 0
i32.const 2
i32.ge_s
br_if 1 (;@11;)
br 2 (;@10;)
end
local.get 11
local.get 9
i32.store
local.get 9
local.set 8
local.get 0
i32.const 2
i32.lt_s
br_if 1 (;@10;)
end
local.get 21
i32.const 1
i32.add
local.set 21
local.get 11
i32.const 4
i32.add
local.set 11
local.get 7
i32.load offset=240
local.set 3
local.get 0
local.set 4
br 1 (;@9;)
end
end
local.get 21
i32.const 1
i32.add
local.set 21
end
local.get 21
i32.const 2
i32.lt_s
br_if 6 (;@1;)
local.get 7
i32.const 240
i32.add
local.get 21
i32.const 2
i32.shl
i32.add
local.tee 22
local.get 7
i32.const 480
i32.add
i32.store
local.get 1
i32.eqz
br_if 6 (;@1;)
local.get 7
i32.const 480
i32.add
local.set 23
i32.const 256
local.set 24
i32.const 4
local.set 25
i32.const -1
local.set 26
br 1 (;@6;)
end
block ;; label = @7
block ;; label = @8
local.get 20
br_table 0 (;@8;) 1 (;@7;) 1 (;@7;)
end
local.get 15
local.get 7
i32.load
local.tee 8
local.get 19
local.get 16
local.get 19
local.get 16
i32.lt_u
select
local.tee 0
call $memcpy
drop
local.get 7
local.set 9
local.get 10
local.set 11
loop ;; label = @8
local.get 8
local.get 9
local.get 17
i32.add
local.tee 13
i32.load
local.tee 5
local.get 0
call $memcpy
drop
local.get 9
local.get 8
local.get 0
i32.add
i32.store
local.get 13
local.set 9
local.get 5
local.set 8
local.get 11
local.get 18
i32.add
local.tee 11
br_if 0 (;@8;)
end
block ;; label = @8
local.get 19
local.get 0
i32.sub
local.tee 19
i32.eqz
br_if 0 (;@8;)
local.get 14
i32.load
local.set 15
i32.const 0
local.set 20
br 3 (;@5;)
end
i32.const 0
local.set 8
br 5 (;@2;)
end
local.get 23
local.get 7
i32.load offset=240
local.tee 8
local.get 1
local.get 24
local.get 1
local.get 24
i32.lt_u
select
local.tee 0
call $memcpy
drop
local.get 7
i32.const 240
i32.add
local.set 9
local.get 21
local.set 11
loop ;; label = @7
local.get 8
local.get 9
local.get 25
i32.add
local.tee 13
i32.load
local.tee 5
local.get 0
call $memcpy
drop
local.get 9
local.get 8
local.get 0
i32.add
i32.store
local.get 13
local.set 9
local.get 5
local.set 8
local.get 11
local.get 26
i32.add
local.tee 11
br_if 0 (;@7;)
end
local.get 1
local.get 0
i32.sub
local.tee 1
i32.eqz
br_if 5 (;@1;)
local.get 22
i32.load
local.set 23
i32.const 1
local.set 20
br 3 (;@3;)
end
i32.const 1
local.set 20
br 1 (;@4;)
end
i32.const 1
local.set 8
br 2 (;@2;)
end
i32.const 1
local.set 8
br 1 (;@2;)
end
i32.const 1
local.set 8
br 0 (;@2;)
end
end
local.get 7
i32.const 736
i32.add
global.set 0)
(table (;0;) 3 3 anyfunc)
(memory (;0;) 2)
(global (;0;) (mut i32) (i32.const 67392))
(global (;1;) i32 (i32.const 67392))
(global (;2;) i32 (i32.const 1856))
(global (;3;) i32 (i32.const 1024))
(global (;4;) i32 (i32.const 1564))
(global (;5;) i32 (i32.const 1556))
(global (;6;) i32 (i32.const 1564))
(global (;7;) i32 (i32.const 1564))
(global (;8;) i32 (i32.const 1564))
(export "memory" (memory 0))
(export "__wasm_call_ctors" (func $__wasm_call_ctors))
(export "__heap_base" (global 1))
(export "__data_end" (global 2))
(export "__dso_handle" (global 3))
(export "main" (func $main))
(export "_start" (func $_start))
(export "__wasilibc_init_preopen" (func $__wasilibc_init_preopen))
(export "malloc" (func $malloc))
(export "__wasilibc_register_preopened_fd" (func $__wasilibc_register_preopened_fd))
(export "free" (func $free))
(export "__environ" (global 4))
(export "_Exit" (func $_Exit))
(export "__prepare_for_exit" (func $__prepare_for_exit))
(export "sbrk" (func $sbrk))
(export "errno" (global 5))
(export "calloc" (func $calloc))
(export "memset" (func $memset))
(export "realloc" (func $realloc))
(export "memcpy" (func $memcpy))
(export "posix_memalign" (func $posix_memalign))
(export "aligned_alloc" (func $aligned_alloc))
(export "malloc_usable_size" (func $malloc_usable_size))
(export "fdopendir" (func $fdopendir))
(export "opendirat" (func $opendirat))
(export "scandirat" (func $scandirat))
(export "faccessat" (func $faccessat))
(export "readlinkat" (func $readlinkat))
(export "__wasilibc_rmdirat" (func $__wasilibc_rmdirat))
(export "linkat" (func $linkat))
(export "symlinkat" (func $symlinkat))
(export "__wasilibc_rmfileat" (func $__wasilibc_rmfileat))
(export "close" (func $close))
(export "fstatat" (func $fstatat))
(export "mkdirat" (func $mkdirat))
(export "renameat" (func $renameat))
(export "_exit" (func $_Exit))
(export "openat" (func $openat))
(export "open" (func $open))
(export "access" (func $access))
(export "eaccess" (func $eaccess))
(export "lstat" (func $lstat))
(export "rename" (func $rename))
(export "stat" (func $stat))
(export "unlink" (func $unlink))
(export "rmdir" (func $rmdir))
(export "remove" (func $remove))
(export "link" (func $link))
(export "mkdir" (func $mkdir))
(export "opendir" (func $opendir))
(export "readlink" (func $readlink))
(export "scandir" (func $scandir))
(export "symlink" (func $symlink))
(export "strlen" (func $strlen))
(export "abort" (func $abort))
(export "memchr" (func $memchr))
(export "qsort" (func $qsort))
(export "strdup" (func $strdup))
(export "__wasilibc_find_relpath" (func $__wasilibc_find_relpath))
(export "__funcs_on_exit" (func $dummy))
(export "__stdio_exit" (func $dummy))
(export "exit" (func $exit))
(export "_fini" (func $dummy))
(export "___environ" (global 6))
(export "_environ" (global 7))
(export "environ" (global 8))
(elem (;0;) (i32.const 1) $std.os.file.OutStream.writeFn $sel_true)
(data (;0;) (i32.const 1024) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(data (;1;) (i32.const 1568) "reached unreachable code \06\00\00\18\00\00\00deadlock detected\00\00\00@\06\00\00\11\00\00\00\00\00\00\00\10\04\00\00\01\00\00\00integer overflowh\06\00\00\10\00\00\00attempt to cast negative value to unsigned integer\00\00\80\06\00\002\00\00\00cast causes pointer to be null\00\00\bc\06\00\00\1e\00\00\00index out of bounds\00\e4\06\00\00\13\00\00\00\00`\00\00\00 \00\00\00@\00\00\00\80\00\00\00\c0\00\00\00\c0\00\00\00\a0\00\00.\00\00\00\00\01\17\02\1d\18\13\03\1e\1b\19\0b\14\08\04\0d\1f\16\1c\12\1a\0a\07\0c\15\11\09\06\10\05\0f\0e"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment