-
-
Save quininer/53820dbf2bcadfca807aee1e9adb4865 to your computer and use it in GitHub Desktop.
wasm stack overflow
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[package] | |
name = "wasm-stack-overflow-zero" | |
version = "0.1.0" | |
authors = ["quininer <quininer@live.com>"] | |
[lib] | |
crate-type = ["cdylib"] | |
path = "lib.rs" | |
[dependencies] | |
wasm-bindgen = "0.2" | |
[profile.release] | |
debug = true | |
opt-level = "s" | |
lto = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<meta content="text/html;charset=utf-8" http-equiv="Content-Type"/> | |
</head> | |
<body> | |
<script src='./wasm_stack_overflow_zero.js'></script> | |
<script src='./index.js'></script> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { hash_with_key, table_index } = wasm_bindgen; | |
function js_hash(a) { | |
let sum = 0; | |
for (let v of a) { | |
sum ^= v; | |
} | |
return sum; | |
} | |
function run() { | |
console.log(hash_with_key("key", "aaaaaaaaa")); | |
console.log(table_index(-28), table_index(-27), table_index(-26)); | |
} | |
wasm_bindgen('wasm_stack_overflow_zero_bg.wasm').then(run); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#![feature(proc_macro, wasm_custom_section, wasm_import_module)] | |
extern crate wasm_bindgen; | |
use wasm_bindgen::prelude::*; | |
#[wasm_bindgen] | |
extern { | |
fn js_hash(data: &[u8]) -> u32; | |
} | |
#[wasm_bindgen] | |
pub fn hash_with_key(key: &str, data: &str) -> u32 { | |
let mut val = [0; 32]; | |
let key = key.as_bytes(); | |
let data = data.as_bytes(); | |
val[..3].copy_from_slice(&key[..3]); | |
val[3] = 0x33; | |
val[4..][..data.len()].copy_from_slice(&data); | |
js_hash(&val) | |
} | |
#[wasm_bindgen] | |
pub fn table_index(i: usize) -> u8 { | |
let a = [b'a', b'd', b'c', b'b']; | |
unsafe { *a.get_unchecked(i) } | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(module | |
(type (;0;) (func)) | |
(type (;1;) (func (param i32))) | |
(type (;2;) (func (param i32 i32) (result i32))) | |
(type (;3;) (func (param i32 i32 i32) (result i32))) | |
(type (;4;) (func (param i32) (result i32))) | |
(type (;5;) (func (param i32 i32))) | |
(type (;6;) (func (result i32))) | |
(type (;7;) (func (param i32 i32 i32 i32 i32 i32 i32 i32 i32 i32))) | |
(import "./wasm_stack_overflow_zero" "__wbg_f_js_hash_js_hash_n" (func $__wbg_f_js_hash_js_hash_n (type 4))) | |
(import "./wasm_stack_overflow_zero" "__wbindgen_throw" (func $__wbindgen_throw (type 5))) | |
(func $hash_with_key (type 2) (param i32 i32) (result i32) | |
(local i32 i32 i32) | |
get_global 0 | |
i32.const 32 | |
i32.sub | |
tee_local 2 | |
set_global 0 | |
i32.const 0 | |
i32.load offset=1028 | |
set_local 3 | |
i32.const 0 | |
i32.load offset=1024 | |
set_local 4 | |
get_local 2 | |
i32.const 24 | |
i32.add | |
i64.const 0 | |
i64.store | |
get_local 2 | |
i32.const 16 | |
i32.add | |
i64.const 0 | |
i64.store | |
get_local 2 | |
i32.const 8 | |
i32.add | |
i64.const 0 | |
i64.store | |
get_local 2 | |
i64.const 0 | |
i64.store | |
block ;; label = @1 | |
block ;; label = @2 | |
get_local 4 | |
i32.const 2 | |
i32.le_u | |
br_if 0 (;@2;) | |
get_local 2 | |
get_local 0 | |
i32.load16_u align=1 | |
i32.store16 | |
get_local 2 | |
get_local 0 | |
i32.const 2 | |
i32.add | |
i32.load8_u | |
i32.store8 offset=2 | |
get_local 2 | |
i32.const 51 | |
i32.store8 offset=3 | |
get_local 3 | |
i32.const 29 | |
i32.ge_u | |
br_if 1 (;@1;) | |
get_local 2 | |
i32.const 4 | |
i32.or | |
get_local 1 | |
get_local 3 | |
call $memcpy | |
drop | |
i32.const 0 | |
i32.const 32 | |
i32.store offset=1024 | |
get_local 2 | |
call $__wbg_f_js_hash_js_hash_n | |
set_local 0 | |
get_local 2 | |
i32.const 32 | |
i32.add | |
set_global 0 | |
get_local 0 | |
return | |
end | |
i32.const 3 | |
get_local 4 | |
call $core::slice::slice_index_len_fail::hdf37baaf81c4880a | |
unreachable | |
end | |
get_local 3 | |
i32.const 28 | |
call $core::slice::slice_index_len_fail::hdf37baaf81c4880a | |
unreachable) | |
(func $core::slice::slice_index_len_fail::hdf37baaf81c4880a (type 5) (param i32 i32) | |
(local i32) | |
get_global 0 | |
i32.const 48 | |
i32.sub | |
tee_local 2 | |
set_global 0 | |
get_local 2 | |
get_local 1 | |
i32.store offset=4 | |
get_local 2 | |
get_local 0 | |
i32.store | |
get_local 2 | |
i32.const 32 | |
i32.add | |
i32.const 12 | |
i32.add | |
i32.const 1 | |
i32.store | |
get_local 2 | |
i32.const 8 | |
i32.add | |
i32.const 12 | |
i32.add | |
i32.const 2 | |
i32.store | |
get_local 2 | |
i32.const 28 | |
i32.add | |
i32.const 2 | |
i32.store | |
get_local 2 | |
i32.const 1 | |
i32.store offset=36 | |
get_local 2 | |
i32.const 1932 | |
i32.store offset=8 | |
get_local 2 | |
i32.const 2 | |
i32.store offset=12 | |
get_local 2 | |
i32.const 1596 | |
i32.store offset=16 | |
get_local 2 | |
get_local 2 | |
i32.store offset=32 | |
get_local 2 | |
get_local 2 | |
i32.const 4 | |
i32.add | |
i32.store offset=40 | |
get_local 2 | |
get_local 2 | |
i32.const 32 | |
i32.add | |
i32.store offset=24 | |
get_local 2 | |
i32.const 8 | |
i32.add | |
i32.const 1948 | |
call $core::panicking::panic_fmt::h4d53977031397ce1 | |
unreachable) | |
(func $table_index (type 4) (param i32) (result i32) | |
(local i32) | |
get_global 0 | |
i32.const 16 | |
i32.sub | |
tee_local 1 | |
i32.const 1650680929 | |
i32.store offset=12 align=1 | |
get_local 1 | |
i32.const 12 | |
i32.add | |
get_local 0 | |
i32.add | |
i32.load8_u) | |
(func $wasm_bindgen::throw::ha829d54fe55e17ad (type 0) | |
i32.const 1572 | |
i32.const 22 | |
call $__wbindgen_throw | |
unreachable) | |
(func $__wbindgen_global_argument_ptr (type 6) (result i32) | |
i32.const 1024) | |
(func $__wbindgen_malloc (type 4) (param i32) (result i32) | |
block ;; label = @1 | |
block ;; label = @2 | |
get_local 0 | |
i32.eqz | |
br_if 0 (;@2;) | |
get_local 0 | |
i32.const 0 | |
i32.lt_s | |
br_if 1 (;@1;) | |
get_local 0 | |
call $dlmalloc::dlmalloc::Dlmalloc::malloc::hd768c0420c32c837 | |
tee_local 0 | |
i32.eqz | |
br_if 1 (;@1;) | |
get_local 0 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
call $wasm_bindgen::throw::ha829d54fe55e17ad | |
unreachable) | |
(func $dlmalloc::dlmalloc::Dlmalloc::malloc::hd768c0420c32c837 (type 4) (param i32) (result i32) | |
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i64) | |
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 | |
get_local 0 | |
i32.const 244 | |
i32.gt_u | |
br_if 0 (;@37;) | |
i32.const 0 | |
i32.load offset=1116 | |
tee_local 1 | |
i32.const 16 | |
get_local 0 | |
i32.const 11 | |
i32.add | |
i32.const -8 | |
i32.and | |
get_local 0 | |
i32.const 11 | |
i32.lt_u | |
select | |
tee_local 2 | |
i32.const 3 | |
i32.shr_u | |
tee_local 3 | |
i32.const 31 | |
i32.and | |
tee_local 4 | |
i32.shr_u | |
tee_local 0 | |
i32.const 3 | |
i32.and | |
i32.eqz | |
br_if 1 (;@36;) | |
get_local 0 | |
i32.const -1 | |
i32.xor | |
i32.const 1 | |
i32.and | |
get_local 3 | |
i32.add | |
tee_local 2 | |
i32.const 3 | |
i32.shl | |
tee_local 4 | |
i32.const 1132 | |
i32.add | |
i32.load | |
tee_local 0 | |
i32.const 8 | |
i32.add | |
set_local 5 | |
get_local 0 | |
i32.load offset=8 | |
tee_local 3 | |
get_local 4 | |
i32.const 1124 | |
i32.add | |
tee_local 4 | |
i32.eq | |
br_if 2 (;@35;) | |
get_local 3 | |
get_local 4 | |
i32.store offset=12 | |
get_local 4 | |
i32.const 8 | |
i32.add | |
get_local 3 | |
i32.store | |
br 3 (;@34;) | |
end | |
i32.const 0 | |
set_local 3 | |
get_local 0 | |
i32.const -64 | |
i32.ge_u | |
br_if 28 (;@8;) | |
get_local 0 | |
i32.const 11 | |
i32.add | |
tee_local 0 | |
i32.const -8 | |
i32.and | |
set_local 2 | |
i32.const 0 | |
i32.load offset=1120 | |
tee_local 6 | |
i32.eqz | |
br_if 9 (;@27;) | |
i32.const 0 | |
set_local 7 | |
block ;; label = @37 | |
get_local 0 | |
i32.const 8 | |
i32.shr_u | |
tee_local 0 | |
i32.eqz | |
br_if 0 (;@37;) | |
i32.const 31 | |
set_local 7 | |
get_local 2 | |
i32.const 16777215 | |
i32.gt_u | |
br_if 0 (;@37;) | |
get_local 2 | |
i32.const 38 | |
get_local 0 | |
i32.clz | |
tee_local 0 | |
i32.sub | |
i32.const 31 | |
i32.and | |
i32.shr_u | |
i32.const 1 | |
i32.and | |
i32.const 31 | |
get_local 0 | |
i32.sub | |
i32.const 1 | |
i32.shl | |
i32.or | |
set_local 7 | |
end | |
i32.const 0 | |
get_local 2 | |
i32.sub | |
set_local 3 | |
get_local 7 | |
i32.const 2 | |
i32.shl | |
i32.const 1388 | |
i32.add | |
i32.load | |
tee_local 0 | |
i32.eqz | |
br_if 6 (;@30;) | |
i32.const 0 | |
set_local 4 | |
get_local 2 | |
i32.const 0 | |
i32.const 25 | |
get_local 7 | |
i32.const 1 | |
i32.shr_u | |
i32.sub | |
i32.const 31 | |
i32.and | |
get_local 7 | |
i32.const 31 | |
i32.eq | |
select | |
i32.shl | |
set_local 1 | |
i32.const 0 | |
set_local 5 | |
loop ;; label = @37 | |
block ;; label = @38 | |
get_local 0 | |
i32.load offset=4 | |
i32.const -8 | |
i32.and | |
tee_local 8 | |
get_local 2 | |
i32.lt_u | |
br_if 0 (;@38;) | |
get_local 8 | |
get_local 2 | |
i32.sub | |
tee_local 8 | |
get_local 3 | |
i32.ge_u | |
br_if 0 (;@38;) | |
get_local 8 | |
set_local 3 | |
get_local 0 | |
set_local 5 | |
get_local 8 | |
i32.eqz | |
br_if 6 (;@32;) | |
end | |
get_local 0 | |
i32.const 20 | |
i32.add | |
i32.load | |
tee_local 8 | |
get_local 4 | |
get_local 8 | |
get_local 0 | |
get_local 1 | |
i32.const 29 | |
i32.shr_u | |
i32.const 4 | |
i32.and | |
i32.add | |
i32.const 16 | |
i32.add | |
i32.load | |
tee_local 0 | |
i32.ne | |
select | |
get_local 4 | |
get_local 8 | |
select | |
set_local 4 | |
get_local 1 | |
i32.const 1 | |
i32.shl | |
set_local 1 | |
get_local 0 | |
br_if 0 (;@37;) | |
end | |
get_local 4 | |
i32.eqz | |
br_if 5 (;@31;) | |
get_local 4 | |
set_local 0 | |
br 7 (;@29;) | |
end | |
get_local 2 | |
i32.const 0 | |
i32.load offset=1516 | |
i32.le_u | |
br_if 8 (;@27;) | |
get_local 0 | |
i32.eqz | |
br_if 2 (;@33;) | |
get_local 0 | |
get_local 4 | |
i32.shl | |
i32.const 2 | |
get_local 4 | |
i32.shl | |
tee_local 0 | |
i32.const 0 | |
get_local 0 | |
i32.sub | |
i32.or | |
i32.and | |
tee_local 0 | |
i32.const 0 | |
get_local 0 | |
i32.sub | |
i32.and | |
i32.ctz | |
tee_local 3 | |
i32.const 3 | |
i32.shl | |
tee_local 5 | |
i32.const 1132 | |
i32.add | |
i32.load | |
tee_local 0 | |
i32.load offset=8 | |
tee_local 4 | |
get_local 5 | |
i32.const 1124 | |
i32.add | |
tee_local 5 | |
i32.eq | |
br_if 10 (;@25;) | |
get_local 4 | |
get_local 5 | |
i32.store offset=12 | |
get_local 5 | |
i32.const 8 | |
i32.add | |
get_local 4 | |
i32.store | |
br 11 (;@24;) | |
end | |
i32.const 0 | |
get_local 1 | |
i32.const -2 | |
get_local 2 | |
i32.rotl | |
i32.and | |
i32.store offset=1116 | |
end | |
get_local 0 | |
get_local 2 | |
i32.const 3 | |
i32.shl | |
tee_local 2 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
get_local 2 | |
i32.add | |
tee_local 0 | |
get_local 0 | |
i32.load offset=4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 5 | |
return | |
end | |
i32.const 0 | |
i32.load offset=1120 | |
tee_local 0 | |
i32.eqz | |
br_if 5 (;@27;) | |
get_local 0 | |
i32.const 0 | |
get_local 0 | |
i32.sub | |
i32.and | |
i32.ctz | |
i32.const 2 | |
i32.shl | |
i32.const 1388 | |
i32.add | |
i32.load | |
tee_local 1 | |
i32.load offset=4 | |
i32.const -8 | |
i32.and | |
get_local 2 | |
i32.sub | |
set_local 3 | |
get_local 1 | |
set_local 4 | |
get_local 1 | |
i32.load offset=16 | |
tee_local 0 | |
i32.eqz | |
br_if 20 (;@12;) | |
i32.const 0 | |
set_local 9 | |
br 21 (;@11;) | |
end | |
i32.const 0 | |
set_local 3 | |
get_local 0 | |
set_local 5 | |
br 2 (;@29;) | |
end | |
get_local 5 | |
br_if 2 (;@28;) | |
end | |
i32.const 0 | |
set_local 5 | |
i32.const 2 | |
get_local 7 | |
i32.const 31 | |
i32.and | |
i32.shl | |
tee_local 0 | |
i32.const 0 | |
get_local 0 | |
i32.sub | |
i32.or | |
get_local 6 | |
i32.and | |
tee_local 0 | |
i32.eqz | |
br_if 2 (;@27;) | |
get_local 0 | |
i32.const 0 | |
get_local 0 | |
i32.sub | |
i32.and | |
i32.ctz | |
i32.const 2 | |
i32.shl | |
i32.const 1388 | |
i32.add | |
i32.load | |
tee_local 0 | |
i32.eqz | |
br_if 2 (;@27;) | |
end | |
loop ;; label = @29 | |
get_local 0 | |
i32.load offset=4 | |
i32.const -8 | |
i32.and | |
tee_local 4 | |
get_local 2 | |
i32.ge_u | |
get_local 4 | |
get_local 2 | |
i32.sub | |
tee_local 8 | |
get_local 3 | |
i32.lt_u | |
i32.and | |
set_local 1 | |
block ;; label = @30 | |
get_local 0 | |
i32.load offset=16 | |
tee_local 4 | |
br_if 0 (;@30;) | |
get_local 0 | |
i32.const 20 | |
i32.add | |
i32.load | |
set_local 4 | |
end | |
get_local 0 | |
get_local 5 | |
get_local 1 | |
select | |
set_local 5 | |
get_local 8 | |
get_local 3 | |
get_local 1 | |
select | |
set_local 3 | |
get_local 4 | |
set_local 0 | |
get_local 4 | |
br_if 0 (;@29;) | |
end | |
get_local 5 | |
i32.eqz | |
br_if 1 (;@27;) | |
end | |
i32.const 0 | |
i32.load offset=1516 | |
tee_local 0 | |
get_local 2 | |
i32.lt_u | |
br_if 1 (;@26;) | |
get_local 3 | |
get_local 0 | |
get_local 2 | |
i32.sub | |
i32.lt_u | |
br_if 1 (;@26;) | |
end | |
block ;; label = @27 | |
block ;; label = @28 | |
block ;; label = @29 | |
block ;; label = @30 | |
i32.const 0 | |
i32.load offset=1516 | |
tee_local 0 | |
get_local 2 | |
i32.ge_u | |
br_if 0 (;@30;) | |
i32.const 0 | |
i32.load offset=1520 | |
tee_local 0 | |
get_local 2 | |
i32.le_u | |
br_if 1 (;@29;) | |
i32.const 0 | |
get_local 0 | |
get_local 2 | |
i32.sub | |
tee_local 3 | |
i32.store offset=1520 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1528 | |
tee_local 0 | |
get_local 2 | |
i32.add | |
tee_local 4 | |
i32.store offset=1528 | |
get_local 4 | |
get_local 3 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
get_local 2 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
i32.const 8 | |
i32.add | |
return | |
end | |
i32.const 0 | |
i32.load offset=1524 | |
set_local 3 | |
get_local 0 | |
get_local 2 | |
i32.sub | |
tee_local 4 | |
i32.const 16 | |
i32.ge_u | |
br_if 1 (;@28;) | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1524 | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1516 | |
get_local 3 | |
get_local 0 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 3 | |
get_local 0 | |
i32.add | |
tee_local 2 | |
i32.const 4 | |
i32.add | |
set_local 0 | |
get_local 2 | |
i32.load offset=4 | |
i32.const 1 | |
i32.or | |
set_local 2 | |
br 2 (;@27;) | |
end | |
i32.const 0 | |
set_local 3 | |
get_local 2 | |
i32.const 65583 | |
i32.add | |
tee_local 4 | |
i32.const 16 | |
i32.shr_u | |
grow_memory | |
tee_local 0 | |
i32.const -1 | |
i32.eq | |
tee_local 5 | |
br_if 20 (;@8;) | |
get_local 0 | |
i32.const 16 | |
i32.shl | |
tee_local 1 | |
i32.eqz | |
br_if 20 (;@8;) | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1532 | |
i32.const 0 | |
get_local 4 | |
i32.const -65536 | |
i32.and | |
get_local 5 | |
select | |
tee_local 8 | |
i32.add | |
tee_local 0 | |
i32.store offset=1532 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1536 | |
tee_local 3 | |
get_local 0 | |
get_local 0 | |
get_local 3 | |
i32.lt_u | |
select | |
i32.store offset=1536 | |
i32.const 0 | |
i32.load offset=1528 | |
tee_local 3 | |
i32.eqz | |
br_if 6 (;@22;) | |
i32.const 1540 | |
set_local 0 | |
loop ;; label = @29 | |
get_local 0 | |
i32.load | |
tee_local 4 | |
get_local 0 | |
i32.load offset=4 | |
tee_local 5 | |
i32.add | |
get_local 1 | |
i32.eq | |
br_if 11 (;@18;) | |
get_local 0 | |
i32.load offset=8 | |
tee_local 0 | |
br_if 0 (;@29;) | |
br 19 (;@10;) | |
end | |
end | |
i32.const 0 | |
get_local 4 | |
i32.store offset=1516 | |
i32.const 0 | |
get_local 3 | |
get_local 2 | |
i32.add | |
tee_local 1 | |
i32.store offset=1524 | |
get_local 1 | |
get_local 4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 3 | |
get_local 0 | |
i32.add | |
get_local 4 | |
i32.store | |
get_local 2 | |
i32.const 3 | |
i32.or | |
set_local 2 | |
get_local 3 | |
i32.const 4 | |
i32.add | |
set_local 0 | |
end | |
get_local 0 | |
get_local 2 | |
i32.store | |
get_local 3 | |
i32.const 8 | |
i32.add | |
return | |
end | |
get_local 5 | |
call $dlmalloc::dlmalloc::Dlmalloc::unlink_large_chunk::h33acb3d068a3a47c | |
get_local 3 | |
i32.const 15 | |
i32.gt_u | |
br_if 2 (;@23;) | |
get_local 5 | |
get_local 3 | |
get_local 2 | |
i32.add | |
tee_local 0 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 5 | |
get_local 0 | |
i32.add | |
tee_local 0 | |
get_local 0 | |
i32.load offset=4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
br 12 (;@13;) | |
end | |
i32.const 0 | |
get_local 1 | |
i32.const -2 | |
get_local 3 | |
i32.rotl | |
i32.and | |
i32.store offset=1116 | |
end | |
get_local 0 | |
i32.const 8 | |
i32.add | |
set_local 4 | |
get_local 0 | |
get_local 2 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
get_local 2 | |
i32.add | |
tee_local 1 | |
get_local 3 | |
i32.const 3 | |
i32.shl | |
tee_local 3 | |
get_local 2 | |
i32.sub | |
tee_local 2 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
get_local 3 | |
i32.add | |
get_local 2 | |
i32.store | |
i32.const 0 | |
i32.load offset=1516 | |
tee_local 0 | |
i32.eqz | |
br_if 4 (;@19;) | |
get_local 0 | |
i32.const 3 | |
i32.shr_u | |
tee_local 5 | |
i32.const 3 | |
i32.shl | |
i32.const 1124 | |
i32.add | |
set_local 3 | |
i32.const 0 | |
i32.load offset=1524 | |
set_local 0 | |
i32.const 0 | |
i32.load offset=1116 | |
tee_local 8 | |
i32.const 1 | |
get_local 5 | |
i32.const 31 | |
i32.and | |
i32.shl | |
tee_local 5 | |
i32.and | |
i32.eqz | |
br_if 2 (;@21;) | |
get_local 3 | |
i32.load offset=8 | |
set_local 5 | |
br 3 (;@20;) | |
end | |
get_local 5 | |
get_local 2 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 5 | |
get_local 2 | |
i32.add | |
tee_local 0 | |
get_local 3 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
get_local 3 | |
i32.add | |
get_local 3 | |
i32.store | |
get_local 3 | |
i32.const 255 | |
i32.gt_u | |
br_if 5 (;@17;) | |
get_local 3 | |
i32.const 3 | |
i32.shr_u | |
tee_local 3 | |
i32.const 3 | |
i32.shl | |
i32.const 1124 | |
i32.add | |
set_local 2 | |
i32.const 0 | |
i32.load offset=1116 | |
tee_local 4 | |
i32.const 1 | |
get_local 3 | |
i32.const 31 | |
i32.and | |
i32.shl | |
tee_local 3 | |
i32.and | |
i32.eqz | |
br_if 7 (;@15;) | |
get_local 2 | |
i32.const 8 | |
i32.add | |
set_local 4 | |
get_local 2 | |
i32.load offset=8 | |
set_local 3 | |
br 8 (;@14;) | |
end | |
block ;; label = @22 | |
block ;; label = @23 | |
i32.const 0 | |
i32.load offset=1560 | |
tee_local 0 | |
i32.eqz | |
br_if 0 (;@23;) | |
get_local 0 | |
get_local 1 | |
i32.le_u | |
br_if 1 (;@22;) | |
end | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1560 | |
end | |
i32.const 0 | |
set_local 0 | |
i32.const 0 | |
get_local 8 | |
i32.store offset=1544 | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1540 | |
i32.const 0 | |
i32.const 4095 | |
i32.store offset=1564 | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1552 | |
loop ;; label = @22 | |
get_local 0 | |
i32.const 1132 | |
i32.add | |
get_local 0 | |
i32.const 1124 | |
i32.add | |
tee_local 3 | |
i32.store | |
get_local 0 | |
i32.const 1136 | |
i32.add | |
get_local 3 | |
i32.store | |
get_local 0 | |
i32.const 8 | |
i32.add | |
tee_local 0 | |
i32.const 256 | |
i32.ne | |
br_if 0 (;@22;) | |
end | |
get_local 1 | |
get_local 8 | |
i32.const -40 | |
i32.add | |
tee_local 0 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1528 | |
i32.const 0 | |
i32.const 2097152 | |
i32.store offset=1556 | |
i32.const 0 | |
get_local 0 | |
i32.store offset=1520 | |
get_local 1 | |
get_local 0 | |
i32.add | |
i32.const 40 | |
i32.store offset=4 | |
br 12 (;@9;) | |
end | |
i32.const 0 | |
get_local 8 | |
get_local 5 | |
i32.or | |
i32.store offset=1116 | |
get_local 3 | |
set_local 5 | |
end | |
get_local 3 | |
i32.const 8 | |
i32.add | |
get_local 0 | |
i32.store | |
get_local 5 | |
get_local 0 | |
i32.store offset=12 | |
get_local 0 | |
get_local 3 | |
i32.store offset=12 | |
get_local 0 | |
get_local 5 | |
i32.store offset=8 | |
end | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1524 | |
i32.const 0 | |
get_local 2 | |
i32.store offset=1516 | |
get_local 4 | |
return | |
end | |
get_local 0 | |
i32.load offset=12 | |
i32.eqz | |
br_if 1 (;@16;) | |
br 7 (;@10;) | |
end | |
get_local 0 | |
get_local 3 | |
call $dlmalloc::dlmalloc::Dlmalloc::insert_large_chunk::hb692ef7ac6874b20 | |
br 3 (;@13;) | |
end | |
get_local 1 | |
get_local 3 | |
i32.le_u | |
br_if 5 (;@10;) | |
get_local 4 | |
get_local 3 | |
i32.gt_u | |
br_if 5 (;@10;) | |
get_local 0 | |
i32.const 4 | |
i32.add | |
get_local 5 | |
get_local 8 | |
i32.add | |
i32.store | |
i32.const 0 | |
i32.load offset=1528 | |
tee_local 0 | |
i32.const 15 | |
i32.add | |
i32.const -8 | |
i32.and | |
tee_local 3 | |
i32.const -8 | |
i32.add | |
tee_local 4 | |
i32.const 0 | |
i32.load offset=1520 | |
get_local 8 | |
i32.add | |
tee_local 1 | |
get_local 3 | |
get_local 0 | |
i32.const 8 | |
i32.add | |
i32.sub | |
i32.sub | |
tee_local 3 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
i32.const 0 | |
i32.const 2097152 | |
i32.store offset=1556 | |
i32.const 0 | |
get_local 4 | |
i32.store offset=1528 | |
i32.const 0 | |
get_local 3 | |
i32.store offset=1520 | |
get_local 0 | |
get_local 1 | |
i32.add | |
i32.const 40 | |
i32.store offset=4 | |
br 6 (;@9;) | |
end | |
i32.const 0 | |
get_local 4 | |
get_local 3 | |
i32.or | |
i32.store offset=1116 | |
get_local 2 | |
i32.const 8 | |
i32.add | |
set_local 4 | |
get_local 2 | |
set_local 3 | |
end | |
get_local 4 | |
get_local 0 | |
i32.store | |
get_local 3 | |
get_local 0 | |
i32.store offset=12 | |
get_local 0 | |
get_local 2 | |
i32.store offset=12 | |
get_local 0 | |
get_local 3 | |
i32.store offset=8 | |
end | |
get_local 5 | |
i32.const 8 | |
i32.add | |
set_local 3 | |
br 4 (;@8;) | |
end | |
i32.const 1 | |
set_local 9 | |
end | |
loop ;; 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 | |
get_local 9 | |
br_table 0 (;@29;) 1 (;@28;) 2 (;@27;) 4 (;@25;) 5 (;@24;) 6 (;@23;) 8 (;@21;) 9 (;@20;) 10 (;@19;) 7 (;@22;) 3 (;@26;) 3 (;@26;) | |
end | |
get_local 0 | |
i32.load offset=4 | |
i32.const -8 | |
i32.and | |
get_local 2 | |
i32.sub | |
tee_local 1 | |
get_local 3 | |
get_local 1 | |
get_local 3 | |
i32.lt_u | |
tee_local 1 | |
select | |
set_local 3 | |
get_local 0 | |
get_local 4 | |
get_local 1 | |
select | |
set_local 4 | |
get_local 0 | |
tee_local 1 | |
i32.load offset=16 | |
tee_local 0 | |
br_if 10 (;@18;) | |
i32.const 1 | |
set_local 9 | |
br 17 (;@11;) | |
end | |
get_local 1 | |
i32.const 20 | |
i32.add | |
i32.load | |
tee_local 0 | |
br_if 10 (;@17;) | |
i32.const 2 | |
set_local 9 | |
br 16 (;@11;) | |
end | |
get_local 4 | |
call $dlmalloc::dlmalloc::Dlmalloc::unlink_large_chunk::h33acb3d068a3a47c | |
get_local 3 | |
i32.const 16 | |
i32.ge_u | |
br_if 10 (;@16;) | |
i32.const 10 | |
set_local 9 | |
br 15 (;@11;) | |
end | |
get_local 4 | |
get_local 3 | |
get_local 2 | |
i32.add | |
tee_local 0 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 4 | |
get_local 0 | |
i32.add | |
tee_local 0 | |
get_local 0 | |
i32.load offset=4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
br 13 (;@12;) | |
end | |
get_local 4 | |
get_local 2 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 4 | |
get_local 2 | |
i32.add | |
tee_local 2 | |
get_local 3 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 2 | |
get_local 3 | |
i32.add | |
get_local 3 | |
i32.store | |
i32.const 0 | |
i32.load offset=1516 | |
tee_local 0 | |
i32.eqz | |
br_if 9 (;@15;) | |
i32.const 4 | |
set_local 9 | |
br 13 (;@11;) | |
end | |
get_local 0 | |
i32.const 3 | |
i32.shr_u | |
tee_local 5 | |
i32.const 3 | |
i32.shl | |
i32.const 1124 | |
i32.add | |
set_local 1 | |
i32.const 0 | |
i32.load offset=1524 | |
set_local 0 | |
i32.const 0 | |
i32.load offset=1116 | |
tee_local 8 | |
i32.const 1 | |
get_local 5 | |
i32.const 31 | |
i32.and | |
i32.shl | |
tee_local 5 | |
i32.and | |
i32.eqz | |
br_if 9 (;@14;) | |
i32.const 5 | |
set_local 9 | |
br 12 (;@11;) | |
end | |
get_local 1 | |
i32.load offset=8 | |
set_local 5 | |
br 9 (;@13;) | |
end | |
i32.const 0 | |
get_local 8 | |
get_local 5 | |
i32.or | |
i32.store offset=1116 | |
get_local 1 | |
set_local 5 | |
i32.const 6 | |
set_local 9 | |
br 10 (;@11;) | |
end | |
get_local 1 | |
i32.const 8 | |
i32.add | |
get_local 0 | |
i32.store | |
get_local 5 | |
get_local 0 | |
i32.store offset=12 | |
get_local 0 | |
get_local 1 | |
i32.store offset=12 | |
get_local 0 | |
get_local 5 | |
i32.store offset=8 | |
i32.const 7 | |
set_local 9 | |
br 9 (;@11;) | |
end | |
i32.const 0 | |
get_local 2 | |
i32.store offset=1524 | |
i32.const 0 | |
get_local 3 | |
i32.store offset=1516 | |
i32.const 8 | |
set_local 9 | |
br 8 (;@11;) | |
end | |
get_local 4 | |
i32.const 8 | |
i32.add | |
return | |
end | |
i32.const 0 | |
set_local 9 | |
br 6 (;@11;) | |
end | |
i32.const 0 | |
set_local 9 | |
br 5 (;@11;) | |
end | |
i32.const 3 | |
set_local 9 | |
br 4 (;@11;) | |
end | |
i32.const 7 | |
set_local 9 | |
br 3 (;@11;) | |
end | |
i32.const 9 | |
set_local 9 | |
br 2 (;@11;) | |
end | |
i32.const 6 | |
set_local 9 | |
br 1 (;@11;) | |
end | |
i32.const 8 | |
set_local 9 | |
br 0 (;@11;) | |
end | |
end | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1560 | |
tee_local 0 | |
get_local 1 | |
get_local 0 | |
get_local 1 | |
i32.lt_u | |
select | |
i32.store offset=1560 | |
get_local 1 | |
get_local 8 | |
i32.add | |
set_local 4 | |
i32.const 1540 | |
set_local 0 | |
block ;; label = @10 | |
block ;; label = @11 | |
block ;; label = @12 | |
block ;; label = @13 | |
block ;; label = @14 | |
loop ;; label = @15 | |
get_local 0 | |
i32.load | |
get_local 4 | |
i32.eq | |
br_if 1 (;@14;) | |
get_local 0 | |
i32.load offset=8 | |
tee_local 0 | |
br_if 0 (;@15;) | |
br 2 (;@13;) | |
end | |
end | |
get_local 0 | |
i32.load offset=12 | |
i32.eqz | |
br_if 1 (;@12;) | |
end | |
i32.const 1540 | |
set_local 0 | |
block ;; label = @13 | |
loop ;; label = @14 | |
block ;; label = @15 | |
get_local 0 | |
i32.load | |
tee_local 4 | |
get_local 3 | |
i32.gt_u | |
br_if 0 (;@15;) | |
get_local 4 | |
get_local 0 | |
i32.load offset=4 | |
i32.add | |
tee_local 4 | |
get_local 3 | |
i32.gt_u | |
br_if 2 (;@13;) | |
end | |
get_local 0 | |
i32.load offset=8 | |
set_local 0 | |
br 0 (;@14;) | |
end | |
end | |
get_local 1 | |
get_local 8 | |
i32.const -40 | |
i32.add | |
tee_local 0 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 1 | |
get_local 0 | |
i32.add | |
i32.const 40 | |
i32.store offset=4 | |
get_local 3 | |
get_local 4 | |
i32.const -32 | |
i32.add | |
i32.const -8 | |
i32.and | |
i32.const -8 | |
i32.add | |
tee_local 5 | |
get_local 5 | |
get_local 3 | |
i32.const 16 | |
i32.add | |
i32.lt_u | |
select | |
tee_local 5 | |
i32.const 27 | |
i32.store offset=4 | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1528 | |
i32.const 0 | |
i32.const 2097152 | |
i32.store offset=1556 | |
i32.const 0 | |
get_local 0 | |
i32.store offset=1520 | |
i32.const 0 | |
i64.load offset=1540 align=4 | |
set_local 10 | |
get_local 5 | |
i32.const 16 | |
i32.add | |
i32.const 0 | |
i64.load offset=1548 align=4 | |
i64.store align=4 | |
get_local 5 | |
get_local 10 | |
i64.store offset=8 align=4 | |
i32.const 0 | |
get_local 8 | |
i32.store offset=1544 | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1540 | |
i32.const 0 | |
get_local 5 | |
i32.const 8 | |
i32.add | |
i32.store offset=1548 | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1552 | |
get_local 5 | |
i32.const 28 | |
i32.add | |
set_local 0 | |
loop ;; label = @13 | |
get_local 0 | |
i32.const 7 | |
i32.store | |
get_local 4 | |
get_local 0 | |
i32.const 4 | |
i32.add | |
tee_local 0 | |
i32.gt_u | |
br_if 0 (;@13;) | |
end | |
get_local 5 | |
get_local 3 | |
i32.eq | |
br_if 3 (;@9;) | |
get_local 5 | |
get_local 5 | |
i32.load offset=4 | |
i32.const -2 | |
i32.and | |
i32.store offset=4 | |
get_local 3 | |
get_local 5 | |
get_local 3 | |
i32.sub | |
tee_local 0 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 5 | |
get_local 0 | |
i32.store | |
block ;; label = @13 | |
get_local 0 | |
i32.const 255 | |
i32.gt_u | |
br_if 0 (;@13;) | |
get_local 0 | |
i32.const 3 | |
i32.shr_u | |
tee_local 4 | |
i32.const 3 | |
i32.shl | |
i32.const 1124 | |
i32.add | |
set_local 0 | |
i32.const 0 | |
i32.load offset=1116 | |
tee_local 1 | |
i32.const 1 | |
get_local 4 | |
i32.const 31 | |
i32.and | |
i32.shl | |
tee_local 4 | |
i32.and | |
i32.eqz | |
br_if 2 (;@11;) | |
get_local 0 | |
i32.load offset=8 | |
set_local 4 | |
br 3 (;@10;) | |
end | |
get_local 3 | |
get_local 0 | |
call $dlmalloc::dlmalloc::Dlmalloc::insert_large_chunk::hb692ef7ac6874b20 | |
br 3 (;@9;) | |
end | |
get_local 0 | |
get_local 1 | |
i32.store | |
get_local 0 | |
get_local 0 | |
i32.load offset=4 | |
get_local 8 | |
i32.add | |
i32.store offset=4 | |
get_local 1 | |
get_local 2 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 1 | |
get_local 2 | |
i32.add | |
set_local 0 | |
get_local 4 | |
get_local 1 | |
i32.sub | |
get_local 2 | |
i32.sub | |
set_local 2 | |
i32.const 0 | |
i32.load offset=1528 | |
get_local 4 | |
i32.eq | |
br_if 4 (;@7;) | |
i32.const 0 | |
i32.load offset=1524 | |
get_local 4 | |
i32.eq | |
br_if 5 (;@6;) | |
get_local 4 | |
i32.load offset=4 | |
tee_local 3 | |
i32.const 3 | |
i32.and | |
i32.const 1 | |
i32.ne | |
br_if 9 (;@2;) | |
get_local 3 | |
i32.const -8 | |
i32.and | |
tee_local 5 | |
i32.const 255 | |
i32.gt_u | |
br_if 6 (;@5;) | |
get_local 4 | |
i32.load offset=12 | |
tee_local 8 | |
get_local 4 | |
i32.load offset=8 | |
tee_local 7 | |
i32.eq | |
br_if 7 (;@4;) | |
get_local 7 | |
get_local 8 | |
i32.store offset=12 | |
get_local 8 | |
get_local 7 | |
i32.store offset=8 | |
br 8 (;@3;) | |
end | |
i32.const 0 | |
get_local 1 | |
get_local 4 | |
i32.or | |
i32.store offset=1116 | |
get_local 0 | |
set_local 4 | |
end | |
get_local 0 | |
i32.const 8 | |
i32.add | |
get_local 3 | |
i32.store | |
get_local 4 | |
get_local 3 | |
i32.store offset=12 | |
get_local 3 | |
get_local 0 | |
i32.store offset=12 | |
get_local 3 | |
get_local 4 | |
i32.store offset=8 | |
end | |
i32.const 0 | |
set_local 3 | |
i32.const 0 | |
i32.load offset=1520 | |
tee_local 0 | |
get_local 2 | |
i32.le_u | |
br_if 0 (;@8;) | |
i32.const 0 | |
get_local 0 | |
get_local 2 | |
i32.sub | |
tee_local 3 | |
i32.store offset=1520 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1528 | |
tee_local 0 | |
get_local 2 | |
i32.add | |
tee_local 4 | |
i32.store offset=1528 | |
get_local 4 | |
get_local 3 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
get_local 2 | |
i32.const 3 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
i32.const 8 | |
i32.add | |
return | |
end | |
get_local 3 | |
return | |
end | |
i32.const 0 | |
get_local 0 | |
i32.store offset=1528 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1520 | |
get_local 2 | |
i32.add | |
tee_local 2 | |
i32.store offset=1520 | |
get_local 0 | |
get_local 2 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
br 5 (;@1;) | |
end | |
get_local 0 | |
i32.const 0 | |
i32.load offset=1516 | |
get_local 2 | |
i32.add | |
tee_local 2 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
i32.const 0 | |
get_local 0 | |
i32.store offset=1524 | |
i32.const 0 | |
get_local 2 | |
i32.store offset=1516 | |
get_local 0 | |
get_local 2 | |
i32.add | |
get_local 2 | |
i32.store | |
br 4 (;@1;) | |
end | |
get_local 4 | |
call $dlmalloc::dlmalloc::Dlmalloc::unlink_large_chunk::h33acb3d068a3a47c | |
br 1 (;@3;) | |
end | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1116 | |
i32.const -2 | |
get_local 3 | |
i32.const 3 | |
i32.shr_u | |
i32.rotl | |
i32.and | |
i32.store offset=1116 | |
end | |
get_local 5 | |
get_local 2 | |
i32.add | |
set_local 2 | |
get_local 4 | |
get_local 5 | |
i32.add | |
set_local 4 | |
end | |
get_local 4 | |
get_local 4 | |
i32.load offset=4 | |
i32.const -2 | |
i32.and | |
i32.store offset=4 | |
get_local 0 | |
get_local 2 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 0 | |
get_local 2 | |
i32.add | |
get_local 2 | |
i32.store | |
block ;; label = @2 | |
block ;; label = @3 | |
block ;; label = @4 | |
get_local 2 | |
i32.const 255 | |
i32.gt_u | |
br_if 0 (;@4;) | |
get_local 2 | |
i32.const 3 | |
i32.shr_u | |
tee_local 3 | |
i32.const 3 | |
i32.shl | |
i32.const 1124 | |
i32.add | |
set_local 2 | |
i32.const 0 | |
i32.load offset=1116 | |
tee_local 4 | |
i32.const 1 | |
get_local 3 | |
i32.const 31 | |
i32.and | |
i32.shl | |
tee_local 3 | |
i32.and | |
i32.eqz | |
br_if 1 (;@3;) | |
get_local 2 | |
i32.const 8 | |
i32.add | |
set_local 4 | |
get_local 2 | |
i32.load offset=8 | |
set_local 3 | |
br 2 (;@2;) | |
end | |
get_local 0 | |
get_local 2 | |
call $dlmalloc::dlmalloc::Dlmalloc::insert_large_chunk::hb692ef7ac6874b20 | |
br 2 (;@1;) | |
end | |
i32.const 0 | |
get_local 4 | |
get_local 3 | |
i32.or | |
i32.store offset=1116 | |
get_local 2 | |
i32.const 8 | |
i32.add | |
set_local 4 | |
get_local 2 | |
set_local 3 | |
end | |
get_local 4 | |
get_local 0 | |
i32.store | |
get_local 3 | |
get_local 0 | |
i32.store offset=12 | |
get_local 0 | |
get_local 2 | |
i32.store offset=12 | |
get_local 0 | |
get_local 3 | |
i32.store offset=8 | |
end | |
get_local 1 | |
i32.const 8 | |
i32.add) | |
(func $__wbindgen_free (type 5) (param i32 i32) | |
block ;; label = @1 | |
get_local 1 | |
i32.eqz | |
br_if 0 (;@1;) | |
get_local 0 | |
call $dlmalloc::dlmalloc::Dlmalloc::free::h28b696f4b16d6a6c | |
end) | |
(func $dlmalloc::dlmalloc::Dlmalloc::free::h28b696f4b16d6a6c (type 1) (param i32) | |
(local i32 i32 i32 i32 i32) | |
get_local 0 | |
i32.const -8 | |
i32.add | |
tee_local 1 | |
get_local 0 | |
i32.const -4 | |
i32.add | |
i32.load | |
tee_local 2 | |
i32.const -8 | |
i32.and | |
tee_local 0 | |
i32.add | |
set_local 3 | |
block ;; label = @1 | |
block ;; label = @2 | |
get_local 2 | |
i32.const 1 | |
i32.and | |
br_if 0 (;@2;) | |
get_local 2 | |
i32.const 3 | |
i32.and | |
i32.eqz | |
br_if 1 (;@1;) | |
get_local 1 | |
i32.load | |
tee_local 2 | |
get_local 0 | |
i32.add | |
set_local 0 | |
block ;; label = @3 | |
block ;; label = @4 | |
block ;; label = @5 | |
i32.const 0 | |
i32.load offset=1524 | |
get_local 1 | |
get_local 2 | |
i32.sub | |
tee_local 1 | |
i32.eq | |
br_if 0 (;@5;) | |
get_local 2 | |
i32.const 255 | |
i32.gt_u | |
br_if 1 (;@4;) | |
get_local 1 | |
i32.load offset=12 | |
tee_local 4 | |
get_local 1 | |
i32.load offset=8 | |
tee_local 5 | |
i32.eq | |
br_if 2 (;@3;) | |
get_local 5 | |
get_local 4 | |
i32.store offset=12 | |
get_local 4 | |
get_local 5 | |
i32.store offset=8 | |
br 3 (;@2;) | |
end | |
get_local 3 | |
i32.load offset=4 | |
tee_local 2 | |
i32.const 3 | |
i32.and | |
i32.const 3 | |
i32.ne | |
br_if 2 (;@2;) | |
i32.const 0 | |
get_local 0 | |
i32.store offset=1516 | |
get_local 3 | |
i32.const 4 | |
i32.add | |
get_local 2 | |
i32.const -2 | |
i32.and | |
i32.store | |
get_local 1 | |
get_local 0 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 1 | |
get_local 0 | |
i32.add | |
get_local 0 | |
i32.store | |
return | |
end | |
get_local 1 | |
call $dlmalloc::dlmalloc::Dlmalloc::unlink_large_chunk::h33acb3d068a3a47c | |
br 1 (;@2;) | |
end | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1116 | |
i32.const -2 | |
get_local 2 | |
i32.const 3 | |
i32.shr_u | |
i32.rotl | |
i32.and | |
i32.store offset=1116 | |
end | |
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 | |
get_local 3 | |
i32.load offset=4 | |
tee_local 2 | |
i32.const 2 | |
i32.and | |
br_if 0 (;@10;) | |
i32.const 0 | |
i32.load offset=1528 | |
get_local 3 | |
i32.eq | |
br_if 1 (;@9;) | |
i32.const 0 | |
i32.load offset=1524 | |
get_local 3 | |
i32.eq | |
br_if 2 (;@8;) | |
get_local 2 | |
i32.const -8 | |
i32.and | |
tee_local 4 | |
get_local 0 | |
i32.add | |
set_local 0 | |
get_local 4 | |
i32.const 255 | |
i32.gt_u | |
br_if 3 (;@7;) | |
get_local 3 | |
i32.load offset=12 | |
tee_local 4 | |
get_local 3 | |
i32.load offset=8 | |
tee_local 3 | |
i32.eq | |
br_if 4 (;@6;) | |
get_local 3 | |
get_local 4 | |
i32.store offset=12 | |
get_local 4 | |
get_local 3 | |
i32.store offset=8 | |
br 5 (;@5;) | |
end | |
get_local 3 | |
i32.const 4 | |
i32.add | |
get_local 2 | |
i32.const -2 | |
i32.and | |
i32.store | |
get_local 1 | |
get_local 0 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 1 | |
get_local 0 | |
i32.add | |
get_local 0 | |
i32.store | |
br 7 (;@2;) | |
end | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1528 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1520 | |
get_local 0 | |
i32.add | |
tee_local 0 | |
i32.store offset=1520 | |
get_local 1 | |
get_local 0 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
block ;; label = @9 | |
get_local 1 | |
i32.const 0 | |
i32.load offset=1524 | |
i32.ne | |
br_if 0 (;@9;) | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1516 | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1524 | |
end | |
i32.const 0 | |
i32.load offset=1556 | |
get_local 0 | |
i32.ge_u | |
br_if 7 (;@1;) | |
block ;; label = @9 | |
get_local 0 | |
i32.const 41 | |
i32.lt_u | |
br_if 0 (;@9;) | |
i32.const 1540 | |
set_local 0 | |
loop ;; label = @10 | |
block ;; label = @11 | |
get_local 0 | |
i32.load | |
tee_local 3 | |
get_local 1 | |
i32.gt_u | |
br_if 0 (;@11;) | |
get_local 3 | |
get_local 0 | |
i32.load offset=4 | |
i32.add | |
get_local 1 | |
i32.gt_u | |
br_if 2 (;@9;) | |
end | |
get_local 0 | |
i32.load offset=8 | |
tee_local 0 | |
br_if 0 (;@10;) | |
end | |
end | |
i32.const 0 | |
set_local 1 | |
i32.const 0 | |
i32.load offset=1548 | |
tee_local 0 | |
i32.eqz | |
br_if 4 (;@4;) | |
loop ;; label = @9 | |
get_local 1 | |
i32.const 1 | |
i32.add | |
set_local 1 | |
get_local 0 | |
i32.load offset=8 | |
tee_local 0 | |
br_if 0 (;@9;) | |
end | |
get_local 1 | |
i32.const 4095 | |
get_local 1 | |
i32.const 4095 | |
i32.gt_u | |
select | |
set_local 1 | |
br 5 (;@3;) | |
end | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1524 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1516 | |
get_local 0 | |
i32.add | |
tee_local 0 | |
i32.store offset=1516 | |
get_local 1 | |
get_local 0 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 1 | |
get_local 0 | |
i32.add | |
get_local 0 | |
i32.store | |
return | |
end | |
get_local 3 | |
call $dlmalloc::dlmalloc::Dlmalloc::unlink_large_chunk::h33acb3d068a3a47c | |
br 1 (;@5;) | |
end | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1116 | |
i32.const -2 | |
get_local 2 | |
i32.const 3 | |
i32.shr_u | |
i32.rotl | |
i32.and | |
i32.store offset=1116 | |
end | |
get_local 1 | |
get_local 0 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
get_local 1 | |
get_local 0 | |
i32.add | |
get_local 0 | |
i32.store | |
get_local 1 | |
i32.const 0 | |
i32.load offset=1524 | |
i32.ne | |
br_if 2 (;@2;) | |
i32.const 0 | |
get_local 0 | |
i32.store offset=1516 | |
return | |
end | |
i32.const 4095 | |
set_local 1 | |
end | |
i32.const 0 | |
i32.const -1 | |
i32.store offset=1556 | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1564 | |
return | |
end | |
block ;; label = @2 | |
block ;; label = @3 | |
block ;; label = @4 | |
block ;; label = @5 | |
block ;; label = @6 | |
get_local 0 | |
i32.const 255 | |
i32.gt_u | |
br_if 0 (;@6;) | |
get_local 0 | |
i32.const 3 | |
i32.shr_u | |
tee_local 3 | |
i32.const 3 | |
i32.shl | |
i32.const 1124 | |
i32.add | |
set_local 0 | |
i32.const 0 | |
i32.load offset=1116 | |
tee_local 2 | |
i32.const 1 | |
get_local 3 | |
i32.const 31 | |
i32.and | |
i32.shl | |
tee_local 3 | |
i32.and | |
i32.eqz | |
br_if 1 (;@5;) | |
get_local 0 | |
i32.const 8 | |
i32.add | |
set_local 2 | |
get_local 0 | |
i32.load offset=8 | |
set_local 3 | |
br 2 (;@4;) | |
end | |
get_local 1 | |
get_local 0 | |
call $dlmalloc::dlmalloc::Dlmalloc::insert_large_chunk::hb692ef7ac6874b20 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1564 | |
i32.const -1 | |
i32.add | |
tee_local 1 | |
i32.store offset=1564 | |
get_local 1 | |
br_if 4 (;@1;) | |
i32.const 0 | |
i32.load offset=1548 | |
tee_local 0 | |
i32.eqz | |
br_if 2 (;@3;) | |
i32.const 0 | |
set_local 1 | |
loop ;; label = @6 | |
get_local 1 | |
i32.const 1 | |
i32.add | |
set_local 1 | |
get_local 0 | |
i32.load offset=8 | |
tee_local 0 | |
br_if 0 (;@6;) | |
end | |
get_local 1 | |
i32.const 4095 | |
get_local 1 | |
i32.const 4095 | |
i32.gt_u | |
select | |
set_local 1 | |
br 3 (;@2;) | |
end | |
i32.const 0 | |
get_local 2 | |
get_local 3 | |
i32.or | |
i32.store offset=1116 | |
get_local 0 | |
i32.const 8 | |
i32.add | |
set_local 2 | |
get_local 0 | |
set_local 3 | |
end | |
get_local 2 | |
get_local 1 | |
i32.store | |
get_local 3 | |
get_local 1 | |
i32.store offset=12 | |
get_local 1 | |
get_local 0 | |
i32.store offset=12 | |
get_local 1 | |
get_local 3 | |
i32.store offset=8 | |
return | |
end | |
i32.const 4095 | |
set_local 1 | |
end | |
i32.const 0 | |
get_local 1 | |
i32.store offset=1564 | |
end) | |
(func $std::panicking::rust_panic_with_hook::h00e551ef664e61a7 (type 1) (param i32) | |
(local i32 i32) | |
i32.const 1 | |
set_local 1 | |
block ;; label = @1 | |
block ;; label = @2 | |
block ;; label = @3 | |
i32.const 0 | |
i32.load offset=1096 | |
i32.const 1 | |
i32.ne | |
br_if 0 (;@3;) | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1100 | |
i32.const 1 | |
i32.add | |
tee_local 1 | |
i32.store offset=1100 | |
get_local 1 | |
i32.const 3 | |
i32.lt_u | |
br_if 1 (;@2;) | |
br 2 (;@1;) | |
end | |
i32.const 0 | |
i64.const 4294967297 | |
i64.store offset=1096 | |
end | |
i32.const 0 | |
i32.load offset=1108 | |
tee_local 2 | |
i32.const -1 | |
i32.le_s | |
br_if 0 (;@1;) | |
i32.const 0 | |
get_local 2 | |
i32.store offset=1108 | |
get_local 1 | |
i32.const 2 | |
i32.lt_u | |
drop | |
end | |
unreachable | |
unreachable) | |
(func $rust_begin_unwind (type 7) (param i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) | |
(local i32) | |
get_global 0 | |
i32.const 48 | |
i32.sub | |
tee_local 10 | |
set_global 0 | |
get_local 10 | |
i32.const 20 | |
i32.add | |
get_local 3 | |
i32.store | |
get_local 10 | |
i32.const 28 | |
i32.add | |
get_local 5 | |
i32.store | |
get_local 10 | |
get_local 1 | |
i32.store offset=12 | |
get_local 10 | |
get_local 0 | |
i32.store offset=8 | |
get_local 10 | |
get_local 2 | |
i32.store offset=16 | |
get_local 10 | |
get_local 4 | |
i32.store offset=24 | |
get_local 10 | |
get_local 7 | |
i32.store offset=36 | |
get_local 10 | |
get_local 6 | |
i32.store offset=32 | |
get_local 10 | |
get_local 8 | |
i32.store offset=40 | |
get_local 10 | |
get_local 9 | |
i32.store offset=44 | |
get_local 10 | |
i32.const 8 | |
i32.add | |
get_local 10 | |
i32.const 32 | |
i32.add | |
call $std::panicking::begin_panic_fmt::had0feab75a141b16 | |
unreachable) | |
(func $std::panicking::begin_panic_fmt::had0feab75a141b16 (type 5) (param i32 i32) | |
get_local 1 | |
call $std::panicking::rust_panic_with_hook::h00e551ef664e61a7 | |
unreachable) | |
(func $dlmalloc::dlmalloc::Dlmalloc::unlink_large_chunk::h33acb3d068a3a47c (type 1) (param i32) | |
(local i32 i32 i32 i32 i32) | |
get_local 0 | |
i32.load offset=24 | |
set_local 1 | |
block ;; label = @1 | |
block ;; label = @2 | |
block ;; label = @3 | |
block ;; label = @4 | |
get_local 0 | |
i32.load offset=12 | |
tee_local 2 | |
get_local 0 | |
i32.eq | |
br_if 0 (;@4;) | |
get_local 0 | |
i32.load offset=8 | |
tee_local 3 | |
get_local 2 | |
i32.store offset=12 | |
get_local 2 | |
get_local 3 | |
i32.store offset=8 | |
get_local 1 | |
br_if 1 (;@3;) | |
br 2 (;@2;) | |
end | |
block ;; label = @4 | |
get_local 0 | |
i32.const 20 | |
i32.add | |
tee_local 3 | |
get_local 0 | |
i32.const 16 | |
i32.add | |
get_local 3 | |
i32.load | |
select | |
tee_local 3 | |
i32.load | |
tee_local 4 | |
i32.eqz | |
br_if 0 (;@4;) | |
loop ;; label = @5 | |
get_local 3 | |
set_local 5 | |
get_local 4 | |
tee_local 2 | |
i32.const 20 | |
i32.add | |
tee_local 3 | |
i32.load | |
tee_local 4 | |
br_if 0 (;@5;) | |
get_local 2 | |
i32.const 16 | |
i32.add | |
set_local 3 | |
get_local 2 | |
i32.load offset=16 | |
tee_local 4 | |
br_if 0 (;@5;) | |
end | |
get_local 5 | |
i32.const 0 | |
i32.store | |
get_local 1 | |
br_if 1 (;@3;) | |
br 2 (;@2;) | |
end | |
i32.const 0 | |
set_local 2 | |
get_local 1 | |
i32.eqz | |
br_if 1 (;@2;) | |
end | |
block ;; label = @3 | |
block ;; label = @4 | |
get_local 0 | |
i32.load offset=28 | |
tee_local 4 | |
i32.const 2 | |
i32.shl | |
i32.const 1388 | |
i32.add | |
tee_local 3 | |
i32.load | |
get_local 0 | |
i32.eq | |
br_if 0 (;@4;) | |
get_local 1 | |
i32.const 16 | |
i32.add | |
get_local 1 | |
i32.const 20 | |
i32.add | |
get_local 1 | |
i32.load offset=16 | |
get_local 0 | |
i32.eq | |
select | |
get_local 2 | |
i32.store | |
get_local 2 | |
br_if 1 (;@3;) | |
br 2 (;@2;) | |
end | |
get_local 3 | |
get_local 2 | |
i32.store | |
get_local 2 | |
i32.eqz | |
br_if 2 (;@1;) | |
end | |
get_local 2 | |
get_local 1 | |
i32.store offset=24 | |
block ;; label = @3 | |
get_local 0 | |
i32.load offset=16 | |
tee_local 3 | |
i32.eqz | |
br_if 0 (;@3;) | |
get_local 2 | |
get_local 3 | |
i32.store offset=16 | |
get_local 3 | |
get_local 2 | |
i32.store offset=24 | |
end | |
get_local 0 | |
i32.const 20 | |
i32.add | |
i32.load | |
tee_local 3 | |
i32.eqz | |
br_if 0 (;@2;) | |
get_local 2 | |
i32.const 20 | |
i32.add | |
get_local 3 | |
i32.store | |
get_local 3 | |
get_local 2 | |
i32.store offset=24 | |
end | |
return | |
end | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1120 | |
i32.const -2 | |
get_local 4 | |
i32.rotl | |
i32.and | |
i32.store offset=1120) | |
(func $dlmalloc::dlmalloc::Dlmalloc::insert_large_chunk::hb692ef7ac6874b20 (type 5) (param i32 i32) | |
(local i32 i32 i32 i32) | |
i32.const 0 | |
set_local 2 | |
block ;; label = @1 | |
get_local 1 | |
i32.const 8 | |
i32.shr_u | |
tee_local 3 | |
i32.eqz | |
br_if 0 (;@1;) | |
i32.const 31 | |
set_local 2 | |
get_local 1 | |
i32.const 16777215 | |
i32.gt_u | |
br_if 0 (;@1;) | |
get_local 1 | |
i32.const 38 | |
get_local 3 | |
i32.clz | |
tee_local 2 | |
i32.sub | |
i32.const 31 | |
i32.and | |
i32.shr_u | |
i32.const 1 | |
i32.and | |
i32.const 31 | |
get_local 2 | |
i32.sub | |
i32.const 1 | |
i32.shl | |
i32.or | |
set_local 2 | |
end | |
get_local 0 | |
get_local 2 | |
i32.store offset=28 | |
get_local 0 | |
i64.const 0 | |
i64.store offset=16 align=4 | |
get_local 2 | |
i32.const 2 | |
i32.shl | |
i32.const 1388 | |
i32.add | |
set_local 3 | |
block ;; label = @1 | |
block ;; label = @2 | |
block ;; label = @3 | |
block ;; label = @4 | |
i32.const 0 | |
i32.load offset=1120 | |
tee_local 4 | |
i32.const 1 | |
get_local 2 | |
i32.const 31 | |
i32.and | |
i32.shl | |
tee_local 5 | |
i32.and | |
i32.eqz | |
br_if 0 (;@4;) | |
get_local 3 | |
i32.load | |
tee_local 4 | |
i32.load offset=4 | |
i32.const -8 | |
i32.and | |
get_local 1 | |
i32.ne | |
br_if 1 (;@3;) | |
get_local 4 | |
set_local 2 | |
br 2 (;@2;) | |
end | |
get_local 3 | |
get_local 0 | |
i32.store | |
i32.const 0 | |
get_local 4 | |
get_local 5 | |
i32.or | |
i32.store offset=1120 | |
get_local 0 | |
get_local 3 | |
i32.store offset=24 | |
get_local 0 | |
get_local 0 | |
i32.store offset=8 | |
get_local 0 | |
get_local 0 | |
i32.store offset=12 | |
return | |
end | |
get_local 1 | |
i32.const 0 | |
i32.const 25 | |
get_local 2 | |
i32.const 1 | |
i32.shr_u | |
i32.sub | |
i32.const 31 | |
i32.and | |
get_local 2 | |
i32.const 31 | |
i32.eq | |
select | |
i32.shl | |
set_local 3 | |
loop ;; label = @3 | |
get_local 4 | |
get_local 3 | |
i32.const 29 | |
i32.shr_u | |
i32.const 4 | |
i32.and | |
i32.add | |
i32.const 16 | |
i32.add | |
tee_local 5 | |
i32.load | |
tee_local 2 | |
i32.eqz | |
br_if 2 (;@1;) | |
get_local 3 | |
i32.const 1 | |
i32.shl | |
set_local 3 | |
get_local 2 | |
set_local 4 | |
get_local 2 | |
i32.load offset=4 | |
i32.const -8 | |
i32.and | |
get_local 1 | |
i32.ne | |
br_if 0 (;@3;) | |
end | |
end | |
get_local 2 | |
i32.load offset=8 | |
tee_local 3 | |
get_local 0 | |
i32.store offset=12 | |
get_local 2 | |
get_local 0 | |
i32.store offset=8 | |
get_local 0 | |
get_local 2 | |
i32.store offset=12 | |
get_local 0 | |
get_local 3 | |
i32.store offset=8 | |
get_local 0 | |
i32.const 0 | |
i32.store offset=24 | |
return | |
end | |
get_local 5 | |
get_local 0 | |
i32.store | |
get_local 0 | |
get_local 4 | |
i32.store offset=24 | |
get_local 0 | |
get_local 0 | |
i32.store offset=12 | |
get_local 0 | |
get_local 0 | |
i32.store offset=8) | |
(func $core::fmt::Formatter::pad_integral::__closure__::h09e9cab49bbd5a8d (type 2) (param i32 i32) (result i32) | |
(local i32 i32 i32 i32 i32) | |
get_global 0 | |
i32.const 16 | |
i32.sub | |
tee_local 2 | |
set_global 0 | |
block ;; label = @1 | |
block ;; label = @2 | |
get_local 0 | |
i32.load | |
i32.load | |
tee_local 3 | |
i32.const 1114112 | |
i32.eq | |
br_if 0 (;@2;) | |
get_local 1 | |
i32.const 28 | |
i32.add | |
i32.load | |
set_local 4 | |
get_local 1 | |
i32.load offset=24 | |
set_local 5 | |
get_local 2 | |
i32.const 0 | |
i32.store offset=12 | |
block ;; label = @3 | |
block ;; label = @4 | |
get_local 3 | |
i32.const 127 | |
i32.gt_u | |
br_if 0 (;@4;) | |
get_local 2 | |
get_local 3 | |
i32.store8 offset=12 | |
i32.const 1 | |
set_local 6 | |
br 1 (;@3;) | |
end | |
block ;; label = @4 | |
get_local 3 | |
i32.const 2047 | |
i32.gt_u | |
br_if 0 (;@4;) | |
get_local 2 | |
get_local 3 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=13 | |
get_local 2 | |
get_local 3 | |
i32.const 6 | |
i32.shr_u | |
i32.const 31 | |
i32.and | |
i32.const 192 | |
i32.or | |
i32.store8 offset=12 | |
i32.const 2 | |
set_local 6 | |
br 1 (;@3;) | |
end | |
block ;; label = @4 | |
get_local 3 | |
i32.const 65535 | |
i32.gt_u | |
br_if 0 (;@4;) | |
get_local 2 | |
get_local 3 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=14 | |
get_local 2 | |
get_local 3 | |
i32.const 6 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=13 | |
get_local 2 | |
get_local 3 | |
i32.const 12 | |
i32.shr_u | |
i32.const 15 | |
i32.and | |
i32.const 224 | |
i32.or | |
i32.store8 offset=12 | |
i32.const 3 | |
set_local 6 | |
br 1 (;@3;) | |
end | |
get_local 2 | |
get_local 3 | |
i32.const 18 | |
i32.shr_u | |
i32.const 240 | |
i32.or | |
i32.store8 offset=12 | |
get_local 2 | |
get_local 3 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=15 | |
get_local 2 | |
get_local 3 | |
i32.const 12 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=13 | |
get_local 2 | |
get_local 3 | |
i32.const 6 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=14 | |
i32.const 4 | |
set_local 6 | |
end | |
i32.const 1 | |
set_local 3 | |
get_local 5 | |
get_local 2 | |
i32.const 12 | |
i32.add | |
get_local 6 | |
get_local 4 | |
i32.load offset=12 | |
call_indirect (type 3) | |
br_if 1 (;@1;) | |
end | |
block ;; label = @2 | |
get_local 0 | |
i32.load offset=4 | |
i32.load8_u | |
i32.eqz | |
br_if 0 (;@2;) | |
get_local 1 | |
i32.load offset=24 | |
get_local 0 | |
i32.load offset=8 | |
tee_local 0 | |
i32.load | |
get_local 0 | |
i32.load offset=4 | |
get_local 1 | |
i32.const 28 | |
i32.add | |
i32.load | |
i32.load offset=12 | |
call_indirect (type 3) | |
set_local 3 | |
br 1 (;@1;) | |
end | |
i32.const 0 | |
set_local 3 | |
end | |
get_local 2 | |
i32.const 16 | |
i32.add | |
set_global 0 | |
get_local 3) | |
(func $core::panicking::panic_fmt::h4d53977031397ce1 (type 5) (param i32 i32) | |
get_local 0 | |
i32.load | |
get_local 0 | |
i32.load offset=4 | |
get_local 0 | |
i32.load offset=8 | |
get_local 0 | |
i32.const 12 | |
i32.add | |
i32.load | |
get_local 0 | |
i32.load offset=16 | |
get_local 0 | |
i32.const 20 | |
i32.add | |
i32.load | |
get_local 1 | |
i32.load | |
get_local 1 | |
i32.load offset=4 | |
get_local 1 | |
i32.load offset=8 | |
get_local 1 | |
i32.load offset=12 | |
call $rust_begin_unwind | |
unreachable) | |
(func $core::fmt::num::<impl_core::fmt::Display_for_usize>::fmt::h643baf2e84091bc0 (type 2) (param i32 i32) (result i32) | |
(local i32 i32 i32 i32 i32 i32 i32 i32) | |
get_global 0 | |
i32.const 80 | |
i32.sub | |
tee_local 2 | |
set_global 0 | |
i32.const 39 | |
set_local 3 | |
block ;; label = @1 | |
block ;; label = @2 | |
get_local 0 | |
i32.load | |
tee_local 0 | |
i32.const 10000 | |
i32.lt_u | |
br_if 0 (;@2;) | |
i32.const 39 | |
set_local 3 | |
loop ;; label = @3 | |
get_local 2 | |
i32.const 9 | |
i32.add | |
get_local 3 | |
i32.add | |
tee_local 4 | |
i32.const -4 | |
i32.add | |
get_local 0 | |
i32.const 10000 | |
i32.div_u | |
tee_local 5 | |
i32.const -10000 | |
i32.mul | |
get_local 0 | |
i32.add | |
tee_local 6 | |
i32.const 100 | |
i32.div_u | |
tee_local 7 | |
i32.const 1 | |
i32.shl | |
i32.const 1709 | |
i32.add | |
i32.load16_u align=1 | |
i32.store16 align=1 | |
get_local 4 | |
i32.const -2 | |
i32.add | |
get_local 7 | |
i32.const -100 | |
i32.mul | |
get_local 6 | |
i32.add | |
i32.const 1 | |
i32.shl | |
i32.const 1709 | |
i32.add | |
i32.load16_u align=1 | |
i32.store16 align=1 | |
get_local 3 | |
i32.const -4 | |
i32.add | |
set_local 3 | |
get_local 0 | |
i32.const 99999999 | |
i32.gt_u | |
set_local 4 | |
get_local 5 | |
set_local 0 | |
get_local 4 | |
br_if 0 (;@3;) | |
br 2 (;@1;) | |
end | |
end | |
get_local 0 | |
set_local 5 | |
end | |
block ;; label = @1 | |
block ;; label = @2 | |
get_local 5 | |
i32.const 100 | |
i32.lt_s | |
br_if 0 (;@2;) | |
get_local 2 | |
i32.const 9 | |
i32.add | |
get_local 3 | |
i32.const -2 | |
i32.add | |
tee_local 3 | |
i32.add | |
get_local 5 | |
i32.const 100 | |
i32.div_u | |
tee_local 0 | |
i32.const -100 | |
i32.mul | |
get_local 5 | |
i32.add | |
i32.const 1 | |
i32.shl | |
i32.const 1709 | |
i32.add | |
i32.load16_u align=1 | |
i32.store16 align=1 | |
br 1 (;@1;) | |
end | |
get_local 5 | |
set_local 0 | |
end | |
block ;; label = @1 | |
block ;; label = @2 | |
get_local 0 | |
i32.const 9 | |
i32.gt_s | |
br_if 0 (;@2;) | |
get_local 2 | |
i32.const 9 | |
i32.add | |
get_local 3 | |
i32.const -1 | |
i32.add | |
tee_local 3 | |
i32.add | |
tee_local 6 | |
get_local 0 | |
i32.const 48 | |
i32.add | |
i32.store8 | |
br 1 (;@1;) | |
end | |
get_local 2 | |
i32.const 9 | |
i32.add | |
get_local 3 | |
i32.const -2 | |
i32.add | |
tee_local 3 | |
i32.add | |
tee_local 6 | |
get_local 0 | |
i32.const 1 | |
i32.shl | |
i32.const 1709 | |
i32.add | |
i32.load16_u align=1 | |
i32.store16 align=1 | |
end | |
get_local 2 | |
i32.const 0 | |
i32.store offset=52 | |
get_local 2 | |
i32.const 1708 | |
i32.store offset=48 | |
get_local 2 | |
i32.const 1114112 | |
i32.store offset=56 | |
i32.const 39 | |
get_local 3 | |
i32.sub | |
tee_local 4 | |
set_local 3 | |
block ;; label = @1 | |
get_local 1 | |
i32.load | |
tee_local 0 | |
i32.const 1 | |
i32.and | |
i32.eqz | |
br_if 0 (;@1;) | |
get_local 2 | |
i32.const 43 | |
i32.store offset=56 | |
get_local 4 | |
i32.const 1 | |
i32.add | |
set_local 3 | |
end | |
get_local 2 | |
get_local 0 | |
i32.const 2 | |
i32.shr_u | |
i32.const 1 | |
i32.and | |
i32.store8 offset=63 | |
get_local 1 | |
i32.load offset=8 | |
set_local 5 | |
get_local 2 | |
get_local 2 | |
i32.const 63 | |
i32.add | |
i32.store offset=68 | |
get_local 2 | |
get_local 2 | |
i32.const 56 | |
i32.add | |
i32.store offset=64 | |
get_local 2 | |
get_local 2 | |
i32.const 48 | |
i32.add | |
i32.store offset=72 | |
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 | |
get_local 5 | |
i32.const 1 | |
i32.ne | |
br_if 0 (;@17;) | |
get_local 1 | |
i32.const 12 | |
i32.add | |
i32.load | |
tee_local 5 | |
get_local 3 | |
i32.le_u | |
br_if 1 (;@16;) | |
get_local 0 | |
i32.const 8 | |
i32.and | |
br_if 2 (;@15;) | |
get_local 5 | |
get_local 3 | |
i32.sub | |
set_local 3 | |
i32.const 1 | |
get_local 1 | |
i32.load8_u offset=48 | |
tee_local 0 | |
get_local 0 | |
i32.const 3 | |
i32.eq | |
select | |
i32.const 3 | |
i32.and | |
tee_local 0 | |
i32.eqz | |
br_if 4 (;@13;) | |
get_local 0 | |
i32.const 2 | |
i32.eq | |
br_if 3 (;@14;) | |
i32.const 0 | |
set_local 8 | |
br 5 (;@12;) | |
end | |
get_local 2 | |
i32.const 64 | |
i32.add | |
get_local 1 | |
call $core::fmt::Formatter::pad_integral::__closure__::h09e9cab49bbd5a8d | |
br_if 14 (;@2;) | |
get_local 1 | |
i32.load offset=24 | |
get_local 6 | |
get_local 4 | |
get_local 1 | |
i32.const 28 | |
i32.add | |
i32.load | |
i32.load offset=12 | |
call_indirect (type 3) | |
set_local 0 | |
br 15 (;@1;) | |
end | |
get_local 2 | |
i32.const 64 | |
i32.add | |
get_local 1 | |
call $core::fmt::Formatter::pad_integral::__closure__::h09e9cab49bbd5a8d | |
br_if 13 (;@2;) | |
get_local 1 | |
i32.load offset=24 | |
get_local 6 | |
get_local 4 | |
get_local 1 | |
i32.const 28 | |
i32.add | |
i32.load | |
i32.load offset=12 | |
call_indirect (type 3) | |
set_local 0 | |
br 14 (;@1;) | |
end | |
get_local 1 | |
i32.const 1 | |
i32.store8 offset=48 | |
get_local 1 | |
i32.const 48 | |
i32.store offset=4 | |
get_local 2 | |
i32.const 64 | |
i32.add | |
get_local 1 | |
call $core::fmt::Formatter::pad_integral::__closure__::h09e9cab49bbd5a8d | |
br_if 12 (;@2;) | |
get_local 5 | |
get_local 3 | |
i32.sub | |
set_local 9 | |
i32.const 1 | |
get_local 1 | |
i32.const 48 | |
i32.add | |
i32.load8_u | |
tee_local 0 | |
get_local 0 | |
i32.const 3 | |
i32.eq | |
select | |
i32.const 3 | |
i32.and | |
tee_local 0 | |
i32.eqz | |
br_if 4 (;@10;) | |
get_local 0 | |
i32.const 2 | |
i32.eq | |
br_if 3 (;@11;) | |
i32.const 0 | |
set_local 8 | |
br 5 (;@9;) | |
end | |
get_local 3 | |
i32.const 1 | |
i32.add | |
i32.const 1 | |
i32.shr_u | |
set_local 8 | |
get_local 3 | |
i32.const 1 | |
i32.shr_u | |
set_local 3 | |
br 1 (;@12;) | |
end | |
get_local 3 | |
set_local 8 | |
i32.const 0 | |
set_local 3 | |
end | |
get_local 2 | |
i32.const 0 | |
i32.store offset=76 | |
block ;; label = @12 | |
get_local 1 | |
i32.load offset=4 | |
tee_local 0 | |
i32.const 127 | |
i32.gt_u | |
br_if 0 (;@12;) | |
get_local 2 | |
get_local 0 | |
i32.store8 offset=76 | |
i32.const 1 | |
set_local 5 | |
get_local 3 | |
br_if 5 (;@7;) | |
br 6 (;@6;) | |
end | |
block ;; label = @12 | |
get_local 0 | |
i32.const 2047 | |
i32.gt_u | |
br_if 0 (;@12;) | |
get_local 2 | |
get_local 0 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=77 | |
get_local 2 | |
get_local 0 | |
i32.const 6 | |
i32.shr_u | |
i32.const 31 | |
i32.and | |
i32.const 192 | |
i32.or | |
i32.store8 offset=76 | |
i32.const 2 | |
set_local 5 | |
get_local 3 | |
br_if 5 (;@7;) | |
br 6 (;@6;) | |
end | |
get_local 0 | |
i32.const 65535 | |
i32.gt_u | |
br_if 3 (;@8;) | |
get_local 2 | |
get_local 0 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=78 | |
get_local 2 | |
get_local 0 | |
i32.const 6 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=77 | |
get_local 2 | |
get_local 0 | |
i32.const 12 | |
i32.shr_u | |
i32.const 15 | |
i32.and | |
i32.const 224 | |
i32.or | |
i32.store8 offset=76 | |
i32.const 3 | |
set_local 5 | |
get_local 3 | |
br_if 4 (;@7;) | |
br 5 (;@6;) | |
end | |
get_local 9 | |
i32.const 1 | |
i32.add | |
i32.const 1 | |
i32.shr_u | |
set_local 8 | |
get_local 9 | |
i32.const 1 | |
i32.shr_u | |
set_local 9 | |
br 1 (;@9;) | |
end | |
get_local 9 | |
set_local 8 | |
i32.const 0 | |
set_local 9 | |
end | |
get_local 2 | |
i32.const 0 | |
i32.store offset=76 | |
block ;; label = @9 | |
get_local 1 | |
i32.const 4 | |
i32.add | |
i32.load | |
tee_local 0 | |
i32.const 127 | |
i32.gt_u | |
br_if 0 (;@9;) | |
get_local 2 | |
get_local 0 | |
i32.store8 offset=76 | |
i32.const 1 | |
set_local 7 | |
br 5 (;@4;) | |
end | |
get_local 0 | |
i32.const 2047 | |
i32.gt_u | |
br_if 3 (;@5;) | |
get_local 2 | |
get_local 0 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=77 | |
get_local 2 | |
get_local 0 | |
i32.const 6 | |
i32.shr_u | |
i32.const 31 | |
i32.and | |
i32.const 192 | |
i32.or | |
i32.store8 offset=76 | |
i32.const 2 | |
set_local 7 | |
br 4 (;@4;) | |
end | |
get_local 2 | |
get_local 0 | |
i32.const 18 | |
i32.shr_u | |
i32.const 240 | |
i32.or | |
i32.store8 offset=76 | |
get_local 2 | |
get_local 0 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=79 | |
get_local 2 | |
get_local 0 | |
i32.const 12 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=77 | |
get_local 2 | |
get_local 0 | |
i32.const 6 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=78 | |
i32.const 4 | |
set_local 5 | |
get_local 3 | |
i32.eqz | |
br_if 1 (;@6;) | |
end | |
get_local 1 | |
i32.const 28 | |
i32.add | |
i32.load | |
i32.load offset=12 | |
set_local 7 | |
get_local 1 | |
i32.load offset=24 | |
set_local 9 | |
i32.const 0 | |
set_local 0 | |
loop ;; label = @7 | |
get_local 9 | |
get_local 2 | |
i32.const 76 | |
i32.add | |
get_local 5 | |
get_local 7 | |
call_indirect (type 3) | |
br_if 5 (;@2;) | |
get_local 0 | |
i32.const 1 | |
i32.add | |
tee_local 0 | |
get_local 3 | |
i32.lt_u | |
br_if 0 (;@7;) | |
end | |
end | |
get_local 2 | |
i32.const 64 | |
i32.add | |
get_local 1 | |
call $core::fmt::Formatter::pad_integral::__closure__::h09e9cab49bbd5a8d | |
br_if 3 (;@2;) | |
get_local 1 | |
i32.load offset=24 | |
tee_local 3 | |
get_local 6 | |
get_local 4 | |
get_local 1 | |
i32.const 28 | |
i32.add | |
i32.load | |
i32.load offset=12 | |
tee_local 7 | |
call_indirect (type 3) | |
br_if 3 (;@2;) | |
get_local 8 | |
i32.eqz | |
br_if 2 (;@3;) | |
i32.const 0 | |
set_local 0 | |
loop ;; label = @6 | |
get_local 3 | |
get_local 2 | |
i32.const 76 | |
i32.add | |
get_local 5 | |
get_local 7 | |
call_indirect (type 3) | |
br_if 4 (;@2;) | |
get_local 0 | |
i32.const 1 | |
i32.add | |
tee_local 0 | |
get_local 8 | |
i32.lt_u | |
br_if 0 (;@6;) | |
br 3 (;@3;) | |
end | |
end | |
block ;; label = @5 | |
get_local 0 | |
i32.const 65535 | |
i32.gt_u | |
br_if 0 (;@5;) | |
get_local 2 | |
get_local 0 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=78 | |
get_local 2 | |
get_local 0 | |
i32.const 6 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=77 | |
get_local 2 | |
get_local 0 | |
i32.const 12 | |
i32.shr_u | |
i32.const 15 | |
i32.and | |
i32.const 224 | |
i32.or | |
i32.store8 offset=76 | |
i32.const 3 | |
set_local 7 | |
br 1 (;@4;) | |
end | |
get_local 2 | |
get_local 0 | |
i32.const 18 | |
i32.shr_u | |
i32.const 240 | |
i32.or | |
i32.store8 offset=76 | |
get_local 2 | |
get_local 0 | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=79 | |
get_local 2 | |
get_local 0 | |
i32.const 12 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=77 | |
get_local 2 | |
get_local 0 | |
i32.const 6 | |
i32.shr_u | |
i32.const 63 | |
i32.and | |
i32.const 128 | |
i32.or | |
i32.store8 offset=78 | |
i32.const 4 | |
set_local 7 | |
end | |
get_local 1 | |
i32.const 28 | |
i32.add | |
i32.load | |
i32.load offset=12 | |
set_local 3 | |
get_local 1 | |
i32.load offset=24 | |
set_local 5 | |
block ;; label = @4 | |
get_local 9 | |
i32.eqz | |
br_if 0 (;@4;) | |
i32.const 0 | |
set_local 0 | |
loop ;; label = @5 | |
get_local 5 | |
get_local 2 | |
i32.const 76 | |
i32.add | |
get_local 7 | |
get_local 3 | |
call_indirect (type 3) | |
br_if 3 (;@2;) | |
get_local 0 | |
i32.const 1 | |
i32.add | |
tee_local 0 | |
get_local 9 | |
i32.lt_u | |
br_if 0 (;@5;) | |
end | |
end | |
get_local 5 | |
get_local 6 | |
get_local 4 | |
get_local 3 | |
call_indirect (type 3) | |
br_if 1 (;@2;) | |
get_local 8 | |
i32.eqz | |
br_if 0 (;@3;) | |
i32.const 0 | |
set_local 0 | |
loop ;; label = @4 | |
get_local 5 | |
get_local 2 | |
i32.const 76 | |
i32.add | |
get_local 7 | |
get_local 3 | |
call_indirect (type 3) | |
br_if 2 (;@2;) | |
get_local 0 | |
i32.const 1 | |
i32.add | |
tee_local 0 | |
get_local 8 | |
i32.lt_u | |
br_if 0 (;@4;) | |
end | |
end | |
i32.const 0 | |
set_local 0 | |
br 1 (;@1;) | |
end | |
i32.const 1 | |
set_local 0 | |
end | |
get_local 2 | |
i32.const 80 | |
i32.add | |
set_global 0 | |
get_local 0) | |
(func $memcpy (type 3) (param i32 i32 i32) (result i32) | |
(local i32) | |
block ;; label = @1 | |
get_local 2 | |
i32.eqz | |
br_if 0 (;@1;) | |
get_local 0 | |
set_local 3 | |
loop ;; label = @2 | |
get_local 3 | |
get_local 1 | |
i32.load8_u | |
i32.store8 | |
get_local 1 | |
i32.const 1 | |
i32.add | |
set_local 1 | |
get_local 3 | |
i32.const 1 | |
i32.add | |
set_local 3 | |
get_local 2 | |
i32.const -1 | |
i32.add | |
tee_local 2 | |
br_if 0 (;@2;) | |
end | |
end | |
get_local 0) | |
(table (;0;) 2 2 anyfunc) | |
(memory (;0;) 17) | |
(global (;0;) (mut i32) (i32.const 1050544)) | |
(export "memory" (memory 0)) | |
(export "hash_with_key" (func $hash_with_key)) | |
(export "table_index" (func $table_index)) | |
(export "__wbindgen_global_argument_ptr" (func $__wbindgen_global_argument_ptr)) | |
(export "__wbindgen_malloc" (func $__wbindgen_malloc)) | |
(export "__wbindgen_free" (func $__wbindgen_free)) | |
(elem (i32.const 1) $core::fmt::num::<impl_core::fmt::Display_for_usize>::fmt::h643baf2e84091bc0) | |
(data (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\00") | |
(data (i32.const 1572) "invalid malloc request\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00 \00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00index out of range for slice of length \0000010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899libcore/slice/mod.rs") | |
(data (i32.const 1932) "\84\06\00\00\06\00\00\00\8a\06\00\00\22\00\00\00u\07\00\00\14\00\00\00\d0\08\00\00\05\00\00\00")) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment