diff options
Diffstat (limited to 'test/passes/safe-heap_enable-threads_enable-simd64.txt')
-rw-r--r-- | test/passes/safe-heap_enable-threads_enable-simd64.txt | 8705 |
1 files changed, 8705 insertions, 0 deletions
diff --git a/test/passes/safe-heap_enable-threads_enable-simd64.txt b/test/passes/safe-heap_enable-threads_enable-simd64.txt new file mode 100644 index 000000000..fcfd59694 --- /dev/null +++ b/test/passes/safe-heap_enable-threads_enable-simd64.txt @@ -0,0 +1,8705 @@ +(module + (type $i64_i64_=>_i64 (func (param i64 i64) (result i64))) + (type $i64_i64_i64_=>_none (func (param i64 i64 i64))) + (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) + (type $i64_i64_i32_=>_none (func (param i64 i64 i32))) + (type $i64_i64_v128_=>_none (func (param i64 i64 v128))) + (type $i64_i64_=>_v128 (func (param i64 i64) (result v128))) + (type $none_=>_none (func)) + (type $i64_i64_f64_=>_none (func (param i64 i64 f64))) + (type $i64_i64_=>_f64 (func (param i64 i64) (result f64))) + (type $i64_i64_f32_=>_none (func (param i64 i64 f32))) + (type $i64_i64_=>_f32 (func (param i64 i64) (result f32))) + (type $none_=>_i64 (func (result i64))) + (import "env" "emscripten_get_sbrk_ptr" (func $emscripten_get_sbrk_ptr (result i64))) + (import "env" "segfault" (func $segfault)) + (import "env" "alignfault" (func $alignfault)) + (memory $0 (shared i64 100 100)) + (func $loads + (drop + (call $SAFE_HEAP_LOAD_i32_4_4 + (i64.const 1) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_4_A + (i64.const 1) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_4_4 + (i64.const 2) + (i64.const 31) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_4_2 + (i64.const 3) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_4_1 + (i64.const 4) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_1_1 + (i64.const 5) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i32_2_U_2 + (i64.const 6) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_1_1 + (i64.const 7) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_2_U_2 + (i64.const 8) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_4_4 + (i64.const 9) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_8_4 + (i64.const 10) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_i64_8_8 + (i64.const 11) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_f32_4_4 + (i64.const 12) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_f64_8_8 + (i64.const 13) + (i64.const 0) + ) + ) + (drop + (call $SAFE_HEAP_LOAD_v128_16_16 + (i64.const 14) + (i64.const 0) + ) + ) + ) + (func $stores + (call $SAFE_HEAP_STORE_i32_4_4 + (i64.const 1) + (i64.const 0) + (i32.const 100) + ) + (call $SAFE_HEAP_STORE_i32_4_A + (i64.const 1) + (i64.const 0) + (i32.const 100) + ) + (call $SAFE_HEAP_STORE_i32_4_4 + (i64.const 2) + (i64.const 31) + (i32.const 200) + ) + (call $SAFE_HEAP_STORE_i32_4_2 + (i64.const 3) + (i64.const 0) + (i32.const 300) + ) + (call $SAFE_HEAP_STORE_i32_4_1 + (i64.const 4) + (i64.const 0) + (i32.const 400) + ) + (call $SAFE_HEAP_STORE_i32_1_1 + (i64.const 5) + (i64.const 0) + (i32.const 500) + ) + (call $SAFE_HEAP_STORE_i32_2_2 + (i64.const 6) + (i64.const 0) + (i32.const 600) + ) + (call $SAFE_HEAP_STORE_i64_1_1 + (i64.const 7) + (i64.const 0) + (i64.const 700) + ) + (call $SAFE_HEAP_STORE_i64_2_2 + (i64.const 8) + (i64.const 0) + (i64.const 800) + ) + (call $SAFE_HEAP_STORE_i64_4_4 + (i64.const 9) + (i64.const 0) + (i64.const 900) + ) + (call $SAFE_HEAP_STORE_i64_8_4 + (i64.const 10) + (i64.const 0) + (i64.const 1000) + ) + (call $SAFE_HEAP_STORE_i64_8_8 + (i64.const 11) + (i64.const 0) + (i64.const 1100) + ) + (call $SAFE_HEAP_STORE_f32_4_4 + (i64.const 12) + (i64.const 0) + (f32.const 1200) + ) + (call $SAFE_HEAP_STORE_f64_8_8 + (i64.const 13) + (i64.const 0) + (f64.const 1300) + ) + (call $SAFE_HEAP_STORE_v128_16_16 + (i64.const 14) + (i64.const 0) + (v128.const i32x4 0x00000001 0x00000002 0x00000003 0x00000004) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.shr_s + (i32.shl + (i32.atomic.load8_u + (local.get $2) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.atomic.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.shr_s + (i32.shl + (i32.atomic.load16_u + (local.get $2) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.atomic.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_4 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load8_u + (local.get $2) + ) + (i64.const 56) + ) + (i64.const 56) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.atomic.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load16_u + (local.get $2) + ) + (i64.const 48) + ) + (i64.const 48) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.atomic.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load32_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_s align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load32_u + (local.get $2) + ) + (i64.const 32) + ) + (i64.const 32) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load32_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_u align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.atomic.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_8 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_1 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (f32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_2 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_4 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_1 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (f64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_2 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_4 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_8 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_1 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_2 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_4 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_8 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_16 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_A (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.atomic.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_A (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.atomic.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_2 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_2 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_A (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_4 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_A (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.atomic.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_A (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.atomic.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.store32 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store32 align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_A (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.atomic.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_4 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_4 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_A (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_8 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_1 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (f32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_2 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_4 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_1 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (f64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_2 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_4 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_8 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_1 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (v128.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_2 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_4 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_8 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.store align=8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_16 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.store + (local.get $3) + (local.get $2) + ) + ) +) +(module + (type $i64_i64_=>_i64 (func (param i64 i64) (result i64))) + (type $i64_i64_i64_=>_none (func (param i64 i64 i64))) + (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) + (type $i64_i64_i32_=>_none (func (param i64 i64 i32))) + (type $i64_i64_v128_=>_none (func (param i64 i64 v128))) + (type $i64_i64_=>_v128 (func (param i64 i64) (result v128))) + (type $i64_i64_f64_=>_none (func (param i64 i64 f64))) + (type $i64_i64_=>_f64 (func (param i64 i64) (result f64))) + (type $none_=>_none (func)) + (type $i64_i64_f32_=>_none (func (param i64 i64 f32))) + (type $i64_i64_=>_f32 (func (param i64 i64) (result f32))) + (type $none_=>_i64 (func (result i64))) + (import "env" "emscripten_get_sbrk_ptr" (func $emscripten_get_sbrk_ptr (result i64))) + (import "env" "segfault" (func $segfault)) + (import "env" "alignfault" (func $alignfault)) + (memory $0 i64 100 100) + (func $loads + (drop + (call $SAFE_HEAP_LOAD_i32_4_4 + (i64.const 1) + (i64.const 0) + ) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_4 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load32_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_s align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load32_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_u align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_8 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_1 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (f32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_2 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_4 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_1 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (f64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_2 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_4 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_8 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_1 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_2 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_4 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_8 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_16 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_2 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_2 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_4 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.store32 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store32 align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_4 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (i64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_4 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_8 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_1 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (f32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_2 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_4 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_1 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (f64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_2 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_4 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_8 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_1 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (v128.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_2 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_4 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_8 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.store align=8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_16 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (call $emscripten_get_sbrk_ptr) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.store + (local.get $3) + (local.get $2) + ) + ) +) +(module + (type $i64_i64_=>_i64 (func (param i64 i64) (result i64))) + (type $i64_i64_i64_=>_none (func (param i64 i64 i64))) + (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) + (type $i64_i64_i32_=>_none (func (param i64 i64 i32))) + (type $i64_i64_v128_=>_none (func (param i64 i64 v128))) + (type $i64_i64_=>_v128 (func (param i64 i64) (result v128))) + (type $i64_i64_f64_=>_none (func (param i64 i64 f64))) + (type $i64_i64_=>_f64 (func (param i64 i64) (result f64))) + (type $none_=>_none (func)) + (type $i64_i64_f32_=>_none (func (param i64 i64 f32))) + (type $i64_i64_=>_f32 (func (param i64 i64) (result f32))) + (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32)) + (import "env" "segfault" (func $segfault)) + (import "env" "alignfault" (func $alignfault)) + (memory $0 (shared i64 100 100)) + (func $actions + (drop + (call $SAFE_HEAP_LOAD_i32_4_4 + (i64.const 1) + (i64.const 0) + ) + ) + (call $SAFE_HEAP_STORE_i32_4_4 + (i64.const 1) + (i64.const 0) + (i32.const 100) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.shr_s + (i32.shl + (i32.atomic.load8_u + (local.get $2) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.atomic.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_1_U_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.shr_s + (i32.shl + (i32.atomic.load16_u + (local.get $2) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.atomic.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_2_U_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_1 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_2 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_A (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i32_4_4 (param $0 i64) (param $1 i64) (result i32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load8_u + (local.get $2) + ) + (i64.const 56) + ) + (i64.const 56) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load8_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.atomic.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_1_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load8_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load16_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load16_u + (local.get $2) + ) + (i64.const 48) + ) + (i64.const 48) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load16_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.atomic.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_2_U_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load16_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load32_s align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_s align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.shr_s + (i64.shl + (i64.atomic.load32_u + (local.get $2) + ) + (i64.const 32) + ) + (i64.const 32) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_s + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load32_u align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load32_u align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.atomic.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_4_U_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load32_u + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_1 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_2 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_4 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_A (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_i64_8_8 (param $0 i64) (param $1 i64) (result i64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_1 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f32.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_2 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f32_4_4 (param $0 i64) (param $1 i64) (result f32) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_1 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f64.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_2 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_4 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_f64_8_8 (param $0 i64) (param $1 i64) (result f64) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_1 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.load align=1 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_2 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.load align=2 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_4 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.load align=4 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_8 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.load align=8 + (local.get $2) + ) + ) + (func $SAFE_HEAP_LOAD_v128_16_16 (param $0 i64) (param $1 i64) (result v128) + (local $2 i64) + (local.set $2 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $2) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $2) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $2) + ) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.load + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_A (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.atomic.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_1_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_A (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.atomic.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_2_2 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_1 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_2 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_A (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.atomic.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i32_4_4 (param $0 i64) (param $1 i64) (param $2 i32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_A (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.atomic.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_1_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 1) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store16 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_A (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.atomic.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_2_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 2) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store16 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store32 align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store32 align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_A (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.atomic.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_4_4 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store32 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_1 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (i64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_2 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (i64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_4 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (i64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_A (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.atomic.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_i64_8_8 (param $0 i64) (param $1 i64) (param $2 i64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (i64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_1 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f32.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_2 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f32.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f32_4_4 (param $0 i64) (param $1 i64) (param $2 f32) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 4) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f32.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_1 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (f64.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_2 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (f64.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_4 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (f64.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_f64_8_8 (param $0 i64) (param $1 i64) (param $2 f64) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 8) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (f64.store + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_1 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (v128.store align=1 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_2 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 1) + ) + (call $alignfault) + ) + (v128.store align=2 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_4 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 3) + ) + (call $alignfault) + ) + (v128.store align=4 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_8 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 7) + ) + (call $alignfault) + ) + (v128.store align=8 + (local.get $3) + (local.get $2) + ) + ) + (func $SAFE_HEAP_STORE_v128_16_16 (param $0 i64) (param $1 i64) (param $2 v128) + (local $3 i64) + (local.set $3 + (i64.add + (local.get $0) + (local.get $1) + ) + ) + (if + (i32.or + (i64.eq + (local.get $3) + (i64.const 0) + ) + (i64.gt_u + (i64.add + (local.get $3) + (i64.const 16) + ) + (i64.load + (global.get $DYNAMICTOP_PTR) + ) + ) + ) + (call $segfault) + ) + (if + (i32.and + (i32.wrap_i64 + (local.get $3) + ) + (i32.const 15) + ) + (call $alignfault) + ) + (v128.store + (local.get $3) + (local.get $2) + ) + ) +) |