Skip to content

Instantly share code, notes, and snippets.

@petamoriken
Created August 9, 2016 07:50
Show Gist options
  • Save petamoriken/c520eef76988bb525aaad40546c3c99a to your computer and use it in GitHub Desktop.
Save petamoriken/c520eef76988bb525aaad40546c3c99a to your computer and use it in GitHub Desktop.
Wasm malloc テスト
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>malloc test</title>
<script>
fetch("malloc.wasm").then(res => res.arrayBuffer())
.then(buffer => {
const binarray = new Uint8Array(buffer);
const info = {
env: {
abort,
sbrk: _sbrk,
pthread_self: _pthread_self
}
};
const module = Wasm.instantiateModule(binarray, info);
window.modules = module.exports;
});
/*
ここから下は Emscripten からの引用
*/
var TOTAL_STACK = 5242880;
var TOTAL_MEMORY = 16777216;
var STATICTOP = 0;
var DYNAMICTOP = 0;
var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
function assert(condition, text) {
if (!condition) {
abort('Assertion failed: ' + text);
}
}
function abort(what) {
console.error(what);
}
function alignMemoryPage(x) {
if (x % 4096 > 0) {
x += (4096 - (x % 4096));
}
return x;
}
function abortOnCannotGrowMemory() {
abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ');
}
function enlargeMemory() {
abortOnCannotGrowMemory();
}
var Runtime = {
dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + (assert(DYNAMICTOP > 0),size))|0;DYNAMICTOP = (((DYNAMICTOP)+15)&-16); if (DYNAMICTOP >= TOTAL_MEMORY) { var success = enlargeMemory(); if (!success) { DYNAMICTOP = ret; return 0; } }; return ret; },
alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }
};
STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
STACK_MAX = STACK_BASE + TOTAL_STACK;
DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
function _sbrk(bytes) {
// Implement a Linux-like 'memory area' for our 'process'.
// Changes the size of the memory area by |bytes|; returns the
// address of the previous top ('break') of the memory area
// We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
var self = _sbrk;
if (!self.called) {
DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
self.called = true;
assert(Runtime.dynamicAlloc);
self.alloc = Runtime.dynamicAlloc;
Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
}
var ret = DYNAMICTOP;
if (bytes != 0) {
var success = self.alloc(bytes);
if (!success) return -1 >>> 0; // sbrk failure code
}
return ret; // Previous break location.
}
function _pthread_self() {
return 0;
}
</script>
</head>
<body>
</body>
</html>
(module
(memory 256)
(export "memory" memory)
(import $abort "env" "abort")
(import $sbrk "env" "sbrk" (param i32) (result i32))
(import $pthread_self "env" "pthread_self" (result i32))
(func $malloc (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i32)
(local $9 i32)
(local $10 i32)
(local $11 i32)
(local $12 i32)
(local $13 i32)
(set_local $1
(i32.store offset=1024
(i32.const 0)
(i32.sub
(i32.load offset=1024
(i32.const 0)
)
(i32.const 16)
)
)
)
(block $label$0
(block $label$1
(block $label$2
(block $label$3
(block $label$4
(block $label$5
(block $label$6
(block $label$7
(block $label$8
(block $label$9
(block $label$10
(block $label$11
(block $label$12
(block $label$13
(block $label$14
(block $label$15
(block $label$16
(block $label$17
(block $label$18
(block $label$19
(block $label$20
(block $label$21
(block $label$22
(block $label$23
(block $label$24
(block $label$25
(block $label$26
(block $label$27
(block $label$28
(block $label$29
(block $label$30
(block $label$31
(block $label$32
(block $label$33
(block $label$34
(block $label$35
(block $label$36
(block $label$37
(block $label$38
(block $label$39
(block $label$40
(block $label$41
(block $label$42
(block $label$43
(block $label$44
(block $label$45
(block $label$46
(block $label$47
(block $label$48
(block $label$49
(block $label$50
(block $label$51
(block $label$52
(block $label$53
(block $label$54
(block $label$55
(block $label$56
(block $label$57
(block $label$58
(block $label$59
(block $label$60
(block $label$61
(block $label$62
(block $label$63
(block $label$64
(block $label$65
(block $label$66
(block $label$67
(block $label$68
(br_if $label$68
(i32.gt_u
(get_local $0)
(i32.const 244)
)
)
(br_if $label$67
(i32.eqz
(i32.and
(set_local $0
(i32.shr_u
(set_local $9
(i32.load offset=2256
(i32.const 0)
)
)
(set_local $12
(i32.shr_u
(set_local $8
(select
(i32.const 16)
(i32.and
(i32.add
(get_local $0)
(i32.const 11)
)
(i32.const -8)
)
(i32.lt_u
(get_local $0)
(i32.const 11)
)
)
)
(i32.const 3)
)
)
)
)
(i32.const 3)
)
)
)
(br_if $label$66
(i32.eq
(set_local $8
(i32.add
(set_local $0
(i32.shl
(set_local $5
(i32.add
(i32.and
(i32.xor
(get_local $0)
(i32.const -1)
)
(i32.const 1)
)
(get_local $12)
)
)
(i32.const 3)
)
)
(i32.const 2296)
)
)
(set_local $0
(i32.load offset=8
(set_local $12
(i32.load offset=2304
(get_local $0)
)
)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $0)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$31
(i32.ne
(i32.load offset=12
(get_local $0)
)
(get_local $12)
)
)
(i32.store
(i32.add
(i32.store
(i32.add
(get_local $0)
(i32.const 12)
)
(get_local $8)
)
(i32.const 8)
)
(get_local $0)
)
(br $label$65)
)
(set_local $8
(i32.const -1)
)
(br_if $label$58
(i32.gt_u
(get_local $0)
(i32.const -65)
)
)
(set_local $8
(i32.and
(set_local $0
(i32.add
(get_local $0)
(i32.const 11)
)
)
(i32.const -8)
)
)
(br_if $label$58
(i32.eqz
(set_local $4
(i32.load offset=2260
(i32.const 0)
)
)
)
)
(set_local $10
(i32.const 0)
)
(block $label$69
(br_if $label$69
(i32.eqz
(set_local $0
(i32.shr_u
(get_local $0)
(i32.const 8)
)
)
)
)
(set_local $10
(i32.const 31)
)
(br_if $label$69
(i32.gt_u
(get_local $8)
(i32.const 16777215)
)
)
(set_local $10
(i32.or
(i32.and
(i32.shr_u
(get_local $8)
(i32.add
(set_local $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
(set_local $5
(i32.and
(i32.shr_u
(i32.add
(set_local $0
(i32.shl
(get_local $0)
(set_local $12
(i32.and
(i32.shr_u
(i32.add
(get_local $0)
(i32.const 1048320)
)
(i32.const 16)
)
(i32.const 8)
)
)
)
)
(i32.const 520192)
)
(i32.const 16)
)
(i32.const 4)
)
)
(get_local $12)
)
(set_local $12
(i32.and
(i32.shr_u
(i32.add
(set_local $0
(i32.shl
(get_local $0)
(get_local $5)
)
)
(i32.const 245760)
)
(i32.const 16)
)
(i32.const 2)
)
)
)
)
(i32.shr_u
(i32.shl
(get_local $0)
(get_local $12)
)
(i32.const 15)
)
)
)
(i32.const 7)
)
)
(i32.const 1)
)
(i32.shl
(get_local $0)
(i32.const 1)
)
)
)
)
(set_local $12
(i32.sub
(i32.const 0)
(get_local $8)
)
)
(set_local $0
(i32.const 0)
)
(br_if $label$64
(i32.eqz
(set_local $5
(i32.load offset=2560
(i32.shl
(get_local $10)
(i32.const 2)
)
)
)
)
)
(set_local $11
(i32.shl
(get_local $8)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
(get_local $10)
(i32.const 1)
)
)
(i32.eq
(get_local $10)
(i32.const 31)
)
)
)
)
(set_local $0
(i32.const 0)
)
(set_local $13
(i32.const 0)
)
(loop $label$71 $label$70
(block $label$72
(br_if $label$72
(i32.ge_u
(set_local $9
(i32.sub
(i32.and
(i32.load offset=4
(get_local $5)
)
(i32.const -8)
)
(get_local $8)
)
)
(get_local $12)
)
)
(set_local $12
(get_local $9)
)
(set_local $13
(get_local $5)
)
(br_if $label$61
(i32.eqz
(get_local $9)
)
)
)
(set_local $0
(select
(select
(get_local $0)
(set_local $9
(i32.load
(i32.add
(get_local $5)
(i32.const 20)
)
)
)
(i32.eq
(get_local $9)
(set_local $5
(i32.load
(i32.add
(i32.add
(get_local $5)
(i32.and
(i32.shr_u
(get_local $11)
(i32.const 29)
)
(i32.const 4)
)
)
(i32.const 16)
)
)
)
)
)
(get_local $0)
(get_local $9)
)
)
(set_local $11
(i32.shl
(get_local $11)
(i32.ne
(get_local $5)
(i32.const 0)
)
)
)
(br_if $label$70
(get_local $5)
)
(br $label$63)
)
)
(br_if $label$58
(i32.le_u
(get_local $8)
(set_local $4
(i32.load offset=2264
(i32.const 0)
)
)
)
)
(br_if $label$62
(i32.eqz
(get_local $0)
)
)
(br_if $label$57
(i32.eq
(set_local $5
(i32.add
(set_local $0
(i32.shl
(set_local $13
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
(set_local $5
(i32.and
(i32.shr_u
(set_local $12
(i32.shr_u
(set_local $0
(i32.add
(i32.and
(set_local $0
(i32.and
(i32.shl
(get_local $0)
(get_local $12)
)
(i32.or
(set_local $0
(i32.shl
(i32.const 2)
(get_local $12)
)
)
(i32.sub
(i32.const 0)
(get_local $0)
)
)
)
)
(i32.sub
(i32.const 0)
(get_local $0)
)
)
(i32.const -1)
)
)
(set_local $0
(i32.and
(i32.shr_u
(get_local $0)
(i32.const 12)
)
(i32.const 16)
)
)
)
)
(i32.const 5)
)
(i32.const 8)
)
)
(get_local $0)
)
(set_local $12
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $12)
(get_local $5)
)
)
(i32.const 2)
)
(i32.const 4)
)
)
)
(set_local $12
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $0)
(get_local $12)
)
)
(i32.const 1)
)
(i32.const 2)
)
)
)
(set_local $12
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $0)
(get_local $12)
)
)
(i32.const 1)
)
(i32.const 1)
)
)
)
(i32.shr_u
(get_local $0)
(get_local $12)
)
)
)
(i32.const 3)
)
)
(i32.const 2296)
)
)
(set_local $12
(i32.load offset=8
(set_local $0
(i32.load offset=2304
(get_local $0)
)
)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $12)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$31
(i32.ne
(i32.load offset=12
(get_local $12)
)
(get_local $0)
)
)
(i32.store
(i32.add
(i32.store
(i32.add
(get_local $12)
(i32.const 12)
)
(get_local $5)
)
(i32.const 8)
)
(get_local $12)
)
(br $label$56)
)
(i32.store offset=2256
(i32.const 0)
(i32.and
(get_local $9)
(i32.rotl
(i32.const -2)
(get_local $5)
)
)
)
)
(set_local $0
(i32.add
(get_local $12)
(i32.const 8)
)
)
(i32.store offset=4
(get_local $12)
(i32.or
(set_local $5
(i32.shl
(get_local $5)
(i32.const 3)
)
)
(i32.const 3)
)
)
(i32.store offset=4
(set_local $12
(i32.add
(get_local $12)
(get_local $5)
)
)
(i32.or
(i32.load offset=4
(get_local $12)
)
(i32.const 1)
)
)
(br $label$0)
)
(set_local $13
(i32.const 0)
)
)
(block $label$73
(br_if $label$73
(i32.or
(get_local $0)
(get_local $13)
)
)
(br_if $label$58
(i32.eqz
(set_local $0
(i32.and
(get_local $4)
(i32.or
(set_local $0
(i32.shl
(i32.const 2)
(get_local $10)
)
)
(i32.sub
(i32.const 0)
(get_local $0)
)
)
)
)
)
)
(set_local $0
(i32.load offset=2560
(i32.shl
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
(set_local $11
(i32.and
(i32.shr_u
(set_local $5
(i32.shr_u
(set_local $0
(i32.add
(i32.and
(get_local $0)
(i32.sub
(i32.const 0)
(get_local $0)
)
)
(i32.const -1)
)
)
(set_local $0
(i32.and
(i32.shr_u
(get_local $0)
(i32.const 12)
)
(i32.const 16)
)
)
)
)
(i32.const 5)
)
(i32.const 8)
)
)
(get_local $0)
)
(set_local $5
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $5)
(get_local $11)
)
)
(i32.const 2)
)
(i32.const 4)
)
)
)
(set_local $5
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $0)
(get_local $5)
)
)
(i32.const 1)
)
(i32.const 2)
)
)
)
(set_local $5
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $0)
(get_local $5)
)
)
(i32.const 1)
)
(i32.const 1)
)
)
)
(i32.shr_u
(get_local $0)
(get_local $5)
)
)
(i32.const 2)
)
)
)
)
(br_if $label$60
(get_local $0)
)
(br $label$59)
)
(br_if $label$58
(i32.eqz
(set_local $7
(i32.load offset=2260
(i32.const 0)
)
)
)
)
(set_local $12
(i32.sub
(i32.and
(i32.load offset=4
(set_local $13
(i32.load offset=2560
(i32.shl
(i32.add
(i32.or
(i32.or
(i32.or
(i32.or
(set_local $5
(i32.and
(i32.shr_u
(set_local $12
(i32.shr_u
(set_local $0
(i32.add
(i32.and
(get_local $7)
(i32.sub
(i32.const 0)
(get_local $7)
)
)
(i32.const -1)
)
)
(set_local $0
(i32.and
(i32.shr_u
(get_local $0)
(i32.const 12)
)
(i32.const 16)
)
)
)
)
(i32.const 5)
)
(i32.const 8)
)
)
(get_local $0)
)
(set_local $12
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $12)
(get_local $5)
)
)
(i32.const 2)
)
(i32.const 4)
)
)
)
(set_local $12
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $0)
(get_local $12)
)
)
(i32.const 1)
)
(i32.const 2)
)
)
)
(set_local $12
(i32.and
(i32.shr_u
(set_local $0
(i32.shr_u
(get_local $0)
(get_local $12)
)
)
(i32.const 1)
)
(i32.const 1)
)
)
)
(i32.shr_u
(get_local $0)
(get_local $12)
)
)
(i32.const 2)
)
)
)
)
(i32.const -8)
)
(get_local $8)
)
)
(set_local $5
(get_local $13)
)
(loop $label$75 $label$74
(block $label$76
(br_if $label$76
(set_local $0
(i32.load offset=16
(get_local $5)
)
)
)
(br_if $label$75
(i32.eqz
(set_local $0
(i32.load
(i32.add
(get_local $5)
(i32.const 20)
)
)
)
)
)
)
(set_local $12
(select
(set_local $5
(i32.sub
(i32.and
(i32.load offset=4
(get_local $0)
)
(i32.const -8)
)
(get_local $8)
)
)
(get_local $12)
(set_local $5
(i32.lt_u
(get_local $5)
(get_local $12)
)
)
)
)
(set_local $13
(select
(get_local $0)
(get_local $13)
(get_local $5)
)
)
(set_local $5
(get_local $0)
)
(br $label$74)
)
(br_if $label$31
(i32.lt_u
(get_local $13)
(set_local $2
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(br_if $label$31
(i32.ge_u
(get_local $13)
(set_local $3
(i32.add
(get_local $13)
(get_local $8)
)
)
)
)
(set_local $6
(i32.load offset=24
(get_local $13)
)
)
(br_if $label$49
(i32.eq
(set_local $11
(i32.load offset=12
(get_local $13)
)
)
(get_local $13)
)
)
(br_if $label$9
(i32.lt_u
(set_local $0
(i32.load offset=8
(get_local $13)
)
)
(get_local $2)
)
)
(br_if $label$9
(i32.ne
(i32.load offset=12
(get_local $0)
)
(get_local $13)
)
)
(br_if $label$9
(i32.ne
(i32.load offset=8
(get_local $11)
)
(get_local $13)
)
)
(i32.store
(i32.add
(i32.store
(i32.add
(get_local $0)
(i32.const 12)
)
(get_local $11)
)
(i32.const 8)
)
(get_local $0)
)
(br $label$48)
)
(set_local $13
(get_local $5)
)
(set_local $12
(i32.const 0)
)
(set_local $0
(get_local $5)
)
)
(loop $label$78 $label$77
(set_local $12
(select
(set_local $0
(i32.sub
(i32.and
(i32.load offset=4
(set_local $5
(get_local $0)
)
)
(i32.const -8)
)
(get_local $8)
)
)
(get_local $12)
(set_local $0
(i32.lt_u
(get_local $0)
(get_local $12)
)
)
)
)
(set_local $13
(select
(get_local $5)
(get_local $13)
(get_local $0)
)
)
(br_if $label$77
(set_local $0
(i32.load offset=16
(get_local $5)
)
)
)
(br_if $label$77
(set_local $0
(i32.load
(i32.add
(get_local $5)
(i32.const 20)
)
)
)
)
)
)
(br_if $label$58
(i32.eqz
(get_local $13)
)
)
(br_if $label$58
(i32.ge_u
(get_local $12)
(i32.sub
(i32.load offset=2264
(i32.const 0)
)
(get_local $8)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $13)
(set_local $6
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(br_if $label$31
(i32.ge_u
(get_local $13)
(set_local $7
(i32.add
(get_local $13)
(get_local $8)
)
)
)
)
(set_local $10
(i32.load offset=24
(get_local $13)
)
)
(br_if $label$55
(i32.eq
(set_local $11
(i32.load offset=12
(get_local $13)
)
)
(get_local $13)
)
)
(br_if $label$10
(i32.lt_u
(set_local $0
(i32.load offset=8
(get_local $13)
)
)
(get_local $6)
)
)
(br_if $label$10
(i32.ne
(i32.load offset=12
(get_local $0)
)
(get_local $13)
)
)
(br_if $label$10
(i32.ne
(i32.load offset=8
(get_local $11)
)
(get_local $13)
)
)
(i32.store
(i32.add
(i32.store
(i32.add
(get_local $0)
(i32.const 12)
)
(get_local $11)
)
(i32.const 8)
)
(get_local $0)
)
(br $label$54)
)
(block $label$79
(block $label$80
(block $label$81
(block $label$82
(block $label$83
(block $label$84
(br_if $label$84
(i32.ge_u
(set_local $0
(i32.load offset=2264
(i32.const 0)
)
)
(get_local $8)
)
)
(br_if $label$83
(i32.le_u
(set_local $13
(i32.load offset=2268
(i32.const 0)
)
)
(get_local $8)
)
)
(set_local $12
(i32.store offset=2268
(i32.const 0)
(i32.sub
(get_local $13)
(get_local $8)
)
)
)
(i32.store offset=4
(i32.store offset=2280
(i32.const 0)
(i32.add
(set_local $0
(i32.load offset=2280
(i32.const 0)
)
)
(get_local $8)
)
)
(i32.or
(get_local $12)
(i32.const 1)
)
)
(i32.store offset=4
(get_local $0)
(i32.or
(get_local $8)
(i32.const 3)
)
)
(set_local $0
(i32.add
(get_local $0)
(i32.const 8)
)
)
(br $label$0)
)
(set_local $12
(i32.load offset=2276
(i32.const 0)
)
)
(br_if $label$82
(i32.lt_u
(set_local $5
(i32.sub
(get_local $0)
(get_local $8)
)
)
(i32.const 16)
)
)
(i32.store offset=4
(set_local $13
(i32.store offset=2276
(i32.const 0)
(i32.add
(get_local $12)
(get_local $8)
)
)
)
(i32.or
(set_local $0
(i32.store offset=2264
(i32.const 0)
(get_local $5)
)
)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $13)
(get_local $0)
)
(get_local $0)
)
(i32.store offset=4
(get_local $12)
(i32.or
(get_local $8)
(i32.const 3)
)
)
(br $label$81)
)
(br_if $label$80
(i32.eqz
(i32.load offset=2728
(i32.const 0)
)
)
)
(set_local $12
(i32.load offset=2736
(i32.const 0)
)
)
(br $label$79)
)
(i32.store offset=2276
(set_local $5
(i32.store offset=2264
(i32.const 0)
(i32.const 0)
)
)
(get_local $5)
)
(i32.store offset=4
(get_local $12)
(i32.or
(get_local $0)
(i32.const 3)
)
)
(i32.store offset=4
(set_local $0
(i32.add
(get_local $12)
(get_local $0)
)
)
(i32.or
(i32.load offset=4
(get_local $0)
)
(i32.const 1)
)
)
)
(set_local $0
(i32.add
(get_local $12)
(i32.const 8)
)
)
(br $label$0)
)
(set_local $12
(i32.const 4096)
)
(i32.store offset=2732
(i32.const 0)
(i32.store offset=2736
(i32.const 0)
(i32.const 4096)
)
)
(i32.store offset=2744
(i32.const 0)
(i32.store offset=2740
(i32.const 0)
(i32.const -1)
)
)
(i32.store offset=2728
(i32.store offset=2700
(set_local $0
(i32.store offset=2748
(i32.const 0)
(i32.const 0)
)
)
(get_local $0)
)
(i32.store offset=12
(get_local $1)
(i32.xor
(i32.and
(i32.add
(get_local $1)
(i32.const 12)
)
(i32.const -16)
)
(i32.const 1431655768)
)
)
)
)
(set_local $0
(i32.const 0)
)
(br_if $label$0
(i32.le_u
(set_local $11
(i32.and
(set_local $9
(i32.add
(get_local $12)
(set_local $4
(i32.add
(get_local $8)
(i32.const 47)
)
)
)
)
(set_local $10
(i32.sub
(i32.const 0)
(get_local $12)
)
)
)
)
(get_local $8)
)
)
(set_local $0
(i32.const 0)
)
(block $label$85
(br_if $label$85
(i32.eqz
(set_local $12
(i32.load offset=2696
(i32.const 0)
)
)
)
)
(br_if $label$0
(i32.le_u
(set_local $7
(i32.add
(set_local $5
(i32.load offset=2688
(i32.const 0)
)
)
(get_local $11)
)
)
(get_local $5)
)
)
(br_if $label$0
(i32.gt_u
(get_local $7)
(get_local $12)
)
)
)
(br_if $label$23
(i32.and
(i32.load8_u offset=2700
(i32.const 0)
)
(i32.const 4)
)
)
(block $label$86
(br_if $label$86
(i32.eqz
(set_local $12
(i32.load offset=2280
(i32.const 0)
)
)
)
)
(set_local $0
(i32.const 2704)
)
(loop $label$88 $label$87
(block $label$89
(br_if $label$89
(i32.gt_u
(set_local $5
(i32.load
(get_local $0)
)
)
(get_local $12)
)
)
(br_if $label$42
(i32.gt_u
(i32.add
(get_local $5)
(i32.load offset=4
(get_local $0)
)
)
(get_local $12)
)
)
)
(br_if $label$87
(set_local $0
(i32.load offset=8
(get_local $0)
)
)
)
)
)
(br_if $label$24
(i32.eq
(set_local $13
(call_import $sbrk
(i32.const 0)
)
)
(i32.const -1)
)
)
(set_local $9
(get_local $11)
)
(block $label$90
(br_if $label$90
(i32.eqz
(i32.and
(set_local $12
(i32.add
(set_local $0
(i32.load offset=2732
(i32.const 0)
)
)
(i32.const -1)
)
)
(get_local $13)
)
)
)
(set_local $9
(i32.add
(i32.sub
(get_local $11)
(get_local $13)
)
(i32.and
(i32.add
(get_local $12)
(get_local $13)
)
(i32.sub
(i32.const 0)
(get_local $0)
)
)
)
)
)
(br_if $label$24
(i32.le_u
(get_local $9)
(get_local $8)
)
)
(br_if $label$24
(i32.gt_u
(get_local $9)
(i32.const 2147483646)
)
)
(block $label$91
(br_if $label$91
(i32.eqz
(set_local $0
(i32.load offset=2696
(i32.const 0)
)
)
)
)
(br_if $label$24
(i32.le_u
(set_local $5
(i32.add
(set_local $12
(i32.load offset=2688
(i32.const 0)
)
)
(get_local $9)
)
)
(get_local $12)
)
)
(br_if $label$24
(i32.gt_u
(get_local $5)
(get_local $0)
)
)
)
(br_if $label$41
(i32.ne
(set_local $0
(call_import $sbrk
(get_local $9)
)
)
(get_local $13)
)
)
(br $label$22)
)
(i32.store offset=2256
(i32.const 0)
(set_local $9
(i32.and
(get_local $9)
(i32.rotl
(i32.const -2)
(get_local $13)
)
)
)
)
)
(i32.store offset=4
(get_local $0)
(i32.or
(get_local $8)
(i32.const 3)
)
)
(i32.store offset=4
(set_local $5
(i32.add
(get_local $0)
(get_local $8)
)
)
(i32.or
(set_local $12
(i32.sub
(i32.shl
(get_local $13)
(i32.const 3)
)
(get_local $8)
)
)
(i32.const 1)
)
)
(set_local $8
(i32.store
(i32.add
(get_local $5)
(get_local $12)
)
(get_local $12)
)
)
(br_if $label$51
(i32.eqz
(get_local $4)
)
)
(set_local $12
(i32.add
(i32.shl
(set_local $13
(i32.shr_u
(get_local $4)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
(set_local $11
(i32.load offset=2276
(i32.const 0)
)
)
(br_if $label$53
(i32.eqz
(i32.and
(get_local $9)
(set_local $13
(i32.shl
(i32.const 1)
(get_local $13)
)
)
)
)
)
(br_if $label$52
(i32.ge_u
(set_local $13
(i32.load offset=8
(get_local $12)
)
)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br $label$31)
)
(block $label$92
(br_if $label$92
(set_local $0
(i32.load
(set_local $5
(i32.add
(get_local $13)
(i32.const 20)
)
)
)
)
)
(set_local $11
(i32.const 0)
)
(br_if $label$54
(i32.eqz
(set_local $0
(i32.load offset=16
(get_local $13)
)
)
)
)
(set_local $5
(i32.add
(get_local $13)
(i32.const 16)
)
)
)
(loop $label$94 $label$93
(set_local $9
(get_local $5)
)
(br_if $label$93
(set_local $0
(i32.load
(set_local $5
(i32.add
(set_local $11
(get_local $0)
)
(i32.const 20)
)
)
)
)
)
(set_local $5
(i32.add
(get_local $11)
(i32.const 16)
)
)
(br_if $label$93
(set_local $0
(i32.load offset=16
(get_local $11)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $9)
(get_local $6)
)
)
(i32.store
(get_local $9)
(i32.const 0)
)
)
(br_if $label$44
(i32.eqz
(get_local $10)
)
)
(br_if $label$50
(i32.eq
(get_local $13)
(i32.load offset=2560
(set_local $0
(i32.shl
(set_local $5
(i32.load offset=28
(get_local $13)
)
)
(i32.const 2)
)
)
)
)
)
(br_if $label$8
(i32.lt_u
(get_local $10)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$47
(i32.eq
(i32.load offset=16
(get_local $10)
)
(get_local $13)
)
)
(i32.store
(i32.add
(get_local $10)
(i32.const 20)
)
(get_local $11)
)
(br $label$46)
)
(i32.store offset=2256
(i32.const 0)
(i32.or
(get_local $9)
(get_local $13)
)
)
(set_local $13
(get_local $12)
)
)
(i32.store offset=8
(set_local $11
(i32.store offset=12
(get_local $13)
(i32.store
(i32.add
(get_local $12)
(i32.const 8)
)
(get_local $11)
)
)
)
(get_local $13)
)
(i32.store offset=12
(get_local $11)
(get_local $12)
)
)
(set_local $0
(i32.add
(get_local $0)
(i32.const 8)
)
)
(i32.store offset=2264
(i32.const 0)
(get_local $8)
)
(i32.store offset=2276
(i32.const 0)
(get_local $5)
)
(br $label$0)
)
(br_if $label$45
(i32.store
(i32.add
(get_local $0)
(i32.const 2560)
)
(get_local $11)
)
)
(i32.store offset=2260
(i32.const 0)
(set_local $4
(i32.and
(get_local $4)
(i32.rotl
(i32.const -2)
(get_local $5)
)
)
)
)
(br $label$44)
)
(block $label$95
(br_if $label$95
(set_local $0
(i32.load
(set_local $5
(i32.add
(get_local $13)
(i32.const 20)
)
)
)
)
)
(set_local $11
(i32.const 0)
)
(br_if $label$48
(i32.eqz
(set_local $0
(i32.load offset=16
(get_local $13)
)
)
)
)
(set_local $5
(i32.add
(get_local $13)
(i32.const 16)
)
)
)
(loop $label$97 $label$96
(set_local $10
(get_local $5)
)
(br_if $label$96
(set_local $0
(i32.load
(set_local $5
(i32.add
(set_local $11
(get_local $0)
)
(i32.const 20)
)
)
)
)
)
(set_local $5
(i32.add
(get_local $11)
(i32.const 16)
)
)
(br_if $label$96
(set_local $0
(i32.load offset=16
(get_local $11)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $10)
(get_local $2)
)
)
(i32.store
(get_local $10)
(i32.const 0)
)
)
(br_if $label$32
(i32.eqz
(get_local $6)
)
)
(br_if $label$43
(i32.eq
(get_local $13)
(i32.load offset=2560
(set_local $0
(i32.shl
(set_local $5
(i32.load offset=28
(get_local $13)
)
)
(i32.const 2)
)
)
)
)
)
(br_if $label$7
(i32.lt_u
(get_local $6)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$35
(i32.eq
(i32.load offset=16
(get_local $6)
)
(get_local $13)
)
)
(i32.store
(i32.add
(get_local $6)
(i32.const 20)
)
(get_local $11)
)
(br $label$34)
)
(i32.store
(i32.add
(get_local $10)
(i32.const 16)
)
(get_local $11)
)
)
(br_if $label$44
(i32.eqz
(get_local $11)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $11)
(set_local $5
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(i32.store offset=24
(get_local $11)
(get_local $10)
)
(block $label$98
(br_if $label$98
(i32.eqz
(set_local $0
(i32.load offset=16
(get_local $13)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $0)
(get_local $5)
)
)
(i32.store offset=24
(i32.store offset=16
(get_local $11)
(get_local $0)
)
(get_local $11)
)
)
(br_if $label$44
(i32.eqz
(set_local $0
(i32.load
(i32.add
(get_local $13)
(i32.const 20)
)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $0)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store offset=24
(i32.store
(i32.add
(get_local $11)
(i32.const 20)
)
(get_local $0)
)
(get_local $11)
)
)
(block $label$99
(br_if $label$99
(i32.gt_u
(get_local $12)
(i32.const 15)
)
)
(i32.store offset=4
(get_local $13)
(i32.or
(set_local $0
(i32.add
(get_local $12)
(get_local $8)
)
)
(i32.const 3)
)
)
(i32.store offset=4
(set_local $0
(i32.add
(get_local $13)
(get_local $0)
)
)
(i32.or
(i32.load offset=4
(get_local $0)
)
(i32.const 1)
)
)
(br $label$36)
)
(i32.store offset=4
(get_local $13)
(i32.or
(get_local $8)
(i32.const 3)
)
)
(i32.store offset=4
(get_local $7)
(i32.or
(get_local $12)
(i32.const 1)
)
)
(block $label$100
(br_if $label$100
(i32.gt_u
(set_local $8
(i32.store
(i32.add
(get_local $7)
(get_local $12)
)
(get_local $12)
)
)
(i32.const 255)
)
)
(set_local $0
(i32.add
(i32.shl
(set_local $12
(i32.shr_u
(get_local $8)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
(br_if $label$40
(i32.eqz
(i32.and
(set_local $5
(i32.load offset=2256
(i32.const 0)
)
)
(set_local $12
(i32.shl
(i32.const 1)
(get_local $12)
)
)
)
)
)
(br_if $label$31
(i32.lt_u
(set_local $12
(i32.load offset=8
(get_local $0)
)
)
(i32.load offset=2272
(i32.const 0)
)
)
)
(set_local $5
(i32.add
(get_local $0)
(i32.const 8)
)
)
(br $label$39)
)
(set_local $0
(i32.const 0)
)
(block $label$101
(br_if $label$101
(i32.eqz
(set_local $12
(i32.shr_u
(get_local $8)
(i32.const 8)
)
)
)
)
(set_local $0
(i32.const 31)
)
(br_if $label$101
(i32.gt_u
(get_local $8)
(i32.const 16777215)
)
)
(set_local $0
(i32.or
(i32.and
(i32.shr_u
(get_local $8)
(i32.add
(set_local $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
(set_local $5
(i32.and
(i32.shr_u
(i32.add
(set_local $12
(i32.shl
(get_local $12)
(set_local $0
(i32.and
(i32.shr_u
(i32.add
(get_local $12)
(i32.const 1048320)
)
(i32.const 16)
)
(i32.const 8)
)
)
)
)
(i32.const 520192)
)
(i32.const 16)
)
(i32.const 4)
)
)
(get_local $0)
)
(set_local $12
(i32.and
(i32.shr_u
(i32.add
(set_local $0
(i32.shl
(get_local $12)
(get_local $5)
)
)
(i32.const 245760)
)
(i32.const 16)
)
(i32.const 2)
)
)
)
)
(i32.shr_u
(i32.shl
(get_local $0)
(get_local $12)
)
(i32.const 15)
)
)
)
(i32.const 7)
)
)
(i32.const 1)
)
(i32.shl
(get_local $0)
(i32.const 1)
)
)
)
)
(i32.store offset=28
(get_local $7)
(get_local $0)
)
(i32.store offset=16
(get_local $7)
(i32.store
(i32.add
(get_local $7)
(i32.const 20)
)
(i32.const 0)
)
)
(set_local $12
(i32.add
(i32.shl
(get_local $0)
(i32.const 2)
)
(i32.const 2560)
)
)
(br_if $label$38
(i32.eqz
(i32.and
(get_local $4)
(set_local $5
(i32.shl
(i32.const 1)
(get_local $0)
)
)
)
)
)
(set_local $0
(i32.shl
(get_local $8)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
(get_local $0)
(i32.const 1)
)
)
(i32.eq
(get_local $0)
(i32.const 31)
)
)
)
)
(set_local $5
(i32.load
(get_local $12)
)
)
(loop $label$103 $label$102
(br_if $label$37
(i32.eq
(i32.and
(i32.load offset=4
(set_local $12
(get_local $5)
)
)
(i32.const -8)
)
(get_local $8)
)
)
(set_local $5
(i32.shr_u
(get_local $0)
(i32.const 29)
)
)
(set_local $0
(i32.shl
(get_local $0)
(i32.const 1)
)
)
(br_if $label$102
(set_local $5
(i32.load
(set_local $11
(i32.add
(i32.add
(get_local $12)
(i32.and
(get_local $5)
(i32.const 4)
)
)
(i32.const 16)
)
)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $11)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store offset=24
(set_local $0
(i32.store
(get_local $11)
(get_local $7)
)
)
(get_local $12)
)
(i32.store offset=8
(set_local $0
(i32.store offset=12
(get_local $0)
(get_local $0)
)
)
(get_local $0)
)
(br $label$36)
)
(br_if $label$33
(i32.store
(i32.add
(get_local $0)
(i32.const 2560)
)
(get_local $11)
)
)
(i32.store offset=2260
(i32.const 0)
(i32.and
(get_local $7)
(i32.rotl
(i32.const -2)
(get_local $5)
)
)
)
(br $label$32)
)
(br_if $label$24
(i32.gt_u
(set_local $9
(i32.and
(i32.sub
(get_local $9)
(get_local $13)
)
(get_local $10)
)
)
(i32.const 2147483646)
)
)
(br_if $label$26
(i32.eq
(set_local $13
(call_import $sbrk
(get_local $9)
)
)
(i32.add
(i32.load
(get_local $0)
)
(i32.load
(i32.add
(get_local $0)
(i32.const 4)
)
)
)
)
)
(set_local $0
(get_local $13)
)
)
(set_local $13
(get_local $0)
)
(block $label$104
(br_if $label$104
(i32.le_u
(i32.add
(get_local $8)
(i32.const 48)
)
(get_local $9)
)
)
(br_if $label$104
(i32.gt_u
(get_local $9)
(i32.const 2147483646)
)
)
(br_if $label$104
(i32.eq
(get_local $13)
(i32.const -1)
)
)
(br_if $label$104
(i32.gt_u
(set_local $0
(i32.and
(i32.add
(i32.sub
(get_local $4)
(get_local $9)
)
(set_local $0
(i32.load offset=2736
(i32.const 0)
)
)
)
(i32.sub
(i32.const 0)
(get_local $0)
)
)
)
(i32.const 2147483646)
)
)
(br_if $label$25
(i32.eq
(call_import $sbrk
(get_local $0)
)
(i32.const -1)
)
)
(set_local $9
(i32.add
(get_local $0)
(get_local $9)
)
)
)
(br_if $label$22
(i32.ne
(get_local $13)
(i32.const -1)
)
)
(br $label$24)
)
(i32.store offset=2256
(i32.const 0)
(i32.or
(get_local $5)
(get_local $12)
)
)
(set_local $5
(i32.add
(get_local $0)
(i32.const 8)
)
)
(set_local $12
(get_local $0)
)
)
(i32.store offset=8
(set_local $5
(i32.store offset=12
(get_local $12)
(i32.store
(get_local $5)
(get_local $7)
)
)
)
(get_local $12)
)
(i32.store offset=12
(get_local $5)
(get_local $0)
)
(br $label$36)
)
(i32.store offset=2260
(i32.const 0)
(i32.or
(get_local $4)
(get_local $5)
)
)
(i32.store offset=24
(set_local $0
(i32.store
(get_local $12)
(get_local $7)
)
)
(get_local $12)
)
(i32.store offset=8
(set_local $0
(i32.store offset=12
(get_local $0)
(get_local $0)
)
)
(get_local $0)
)
(br $label$36)
)
(br_if $label$31
(i32.lt_u
(set_local $0
(i32.load offset=8
(get_local $12)
)
)
(set_local $5
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $12)
(get_local $5)
)
)
(i32.store offset=8
(set_local $5
(i32.store
(i32.add
(get_local $12)
(i32.const 8)
)
(i32.store offset=12
(get_local $0)
(get_local $7)
)
)
)
(get_local $0)
)
(i32.store offset=12
(get_local $5)
(get_local $12)
)
(i32.store offset=24
(get_local $5)
(i32.const 0)
)
)
(set_local $0
(i32.add
(get_local $13)
(i32.const 8)
)
)
(br $label$0)
)
(i32.store
(i32.add
(get_local $6)
(i32.const 16)
)
(get_local $11)
)
)
(br_if $label$32
(i32.eqz
(get_local $11)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $11)
(set_local $5
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(i32.store offset=24
(get_local $11)
(get_local $6)
)
(block $label$105
(br_if $label$105
(i32.eqz
(set_local $0
(i32.load offset=16
(get_local $13)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $0)
(get_local $5)
)
)
(i32.store offset=24
(i32.store offset=16
(get_local $11)
(get_local $0)
)
(get_local $11)
)
)
(br_if $label$32
(i32.eqz
(set_local $0
(i32.load
(i32.add
(get_local $13)
(i32.const 20)
)
)
)
)
)
(br_if $label$31
(i32.lt_u
(get_local $0)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store offset=24
(i32.store
(i32.add
(get_local $11)
(i32.const 20)
)
(get_local $0)
)
(get_local $11)
)
)
(block $label$106
(br_if $label$106
(i32.gt_u
(get_local $12)
(i32.const 15)
)
)
(i32.store offset=4
(get_local $13)
(i32.or
(set_local $0
(i32.add
(get_local $12)
(get_local $8)
)
)
(i32.const 3)
)
)
(i32.store offset=4
(set_local $0
(i32.add
(get_local $13)
(get_local $0)
)
)
(i32.or
(i32.load offset=4
(get_local $0)
)
(i32.const 1)
)
)
(br $label$27)
)
(i32.store offset=4
(get_local $13)
(i32.or
(get_local $8)
(i32.const 3)
)
)
(i32.store offset=4
(get_local $3)
(i32.or
(get_local $12)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $3)
(get_local $12)
)
(get_local $12)
)
(br_if $label$28
(i32.eqz
(get_local $4)
)
)
(set_local $0
(i32.add
(i32.shl
(set_local $5
(i32.shr_u
(get_local $4)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
(set_local $8
(i32.load offset=2276
(i32.const 0)
)
)
(br_if $label$30
(i32.eqz
(i32.and
(get_local $9)
(set_local $5
(i32.shl
(i32.const 1)
(get_local $5)
)
)
)
)
)
(br_if $label$29
(i32.ge_u
(set_local $5
(i32.load offset=8
(get_local $0)
)
)
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(call_import $abort)
(unreachable)
)
(i32.store offset=2256
(i32.const 0)
(i32.or
(get_local $9)
(get_local $5)
)
)
(set_local $5
(get_local $0)
)
)
(i32.store offset=8
(set_local $8
(i32.store offset=12
(get_local $5)
(i32.store
(i32.add
(get_local $0)
(i32.const 8)
)
(get_local $8)
)
)
)
(get_local $5)
)
(i32.store offset=12
(get_local $8)
(get_local $0)
)
)
(i32.store offset=2264
(i32.const 0)
(get_local $12)
)
(i32.store offset=2276
(i32.const 0)
(get_local $3)
)
)
(set_local $0
(i32.add
(get_local $13)
(i32.const 8)
)
)
(br $label$0)
)
(br_if $label$22
(i32.ne
(get_local $13)
(i32.const -1)
)
)
(br $label$24)
)
(call_import $sbrk
(i32.sub
(i32.const 0)
(get_local $9)
)
)
)
(i32.store offset=2700
(i32.const 0)
(i32.or
(i32.load offset=2700
(i32.const 0)
)
(i32.const 4)
)
)
)
(br_if $label$21
(i32.gt_u
(get_local $11)
(i32.const 2147483646)
)
)
(br_if $label$21
(i32.ge_u
(set_local $13
(call_import $sbrk
(get_local $11)
)
)
(set_local $0
(call_import $sbrk
(i32.const 0)
)
)
)
)
(br_if $label$21
(i32.eq
(get_local $13)
(i32.const -1)
)
)
(br_if $label$21
(i32.eq
(get_local $0)
(i32.const -1)
)
)
(br_if $label$21
(i32.le_u
(set_local $9
(i32.sub
(get_local $0)
(get_local $13)
)
)
(i32.add
(get_local $8)
(i32.const 40)
)
)
)
)
(block $label$107
(br_if $label$107
(i32.le_u
(set_local $0
(i32.store offset=2688
(i32.const 0)
(i32.add
(i32.load offset=2688
(i32.const 0)
)
(get_local $9)
)
)
)
(i32.load offset=2692
(i32.const 0)
)
)
)
(i32.store offset=2692
(i32.const 0)
(get_local $0)
)
)
(block $label$108
(block $label$109
(block $label$110
(block $label$111
(br_if $label$111
(i32.eqz
(set_local $12
(i32.load offset=2280
(i32.const 0)
)
)
)
)
(set_local $0
(i32.const 2704)
)
(loop $label$113 $label$112
(br_if $label$110
(i32.eq
(get_local $13)
(i32.add
(set_local $5
(i32.load
(get_local $0)
)
)
(set_local $11
(i32.load offset=4
(get_local $0)
)
)
)
)
)
(br_if $label$112
(set_local $0
(i32.load offset=8
(get_local $0)
)
)
)
(br $label$109)
)
)
(block $label$114
(block $label$115
(br_if $label$115
(i32.eqz
(set_local $0
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(br_if $label$114
(i32.ge_u
(get_local $13)
(get_local $0)
)
)
)
(i32.store offset=2272
(i32.const 0)
(get_local $13)
)
)
(set_local $0
(i32.const 0)
)
(set_local $12
(i32.store offset=2704
(i32.const 0)
(get_local $13)
)
)
(set_local $13
(i32.store offset=2708
(i32.const 0)
(get_local $9)
)
)
(i32.store offset=2292
(set_local $5
(i32.store offset=2716
(i32.const 0)
(i32.const 0)
)
)
(i32.load offset=2728
(get_local $5)
)
)
(i32.store offset=2288
(get_local $5)
(i32.const -1)
)
(loop $label$117 $label$116
(i32.store offset=2304
(get_local $0)
(i32.store offset=2308
(get_local $0)
(i32.add
(get_local $0)
(i32.const 2296)
)
)
)
(br_if $label$116
(i32.ne
(set_local $0
(i32.add
(get_local $0)
(i32.const 8)
)
)
(i32.const 256)
)
)
)
(i32.store offset=4
(set_local $12
(i32.store offset=2280
(i32.const 0)
(i32.add
(get_local $12)
(set_local $0
(select
(i32.and
(i32.sub
(i32.const -8)
(get_local $12)
)
(i32.const 7)
)
(i32.const 0)
(i32.and
(i32.add
(get_local $12)
(i32.const 8)
)
(i32.const 7)
)
)
)
)
)
)
(i32.or
(set_local $0
(i32.store offset=2268
(i32.const 0)
(i32.sub
(i32.add
(get_local $13)
(i32.const -40)
)
(get_local $0)
)
)
)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $12)
(get_local $0)
)
(i32.const 40)
)
(i32.store offset=2284
(i32.const 0)
(i32.load offset=2744
(i32.const 0)
)
)
(br $label$108)
)
(br_if $label$109
(i32.and
(i32.load8_u offset=12
(get_local $0)
)
(i32.const 8)
)
)
(br_if $label$109
(i32.ge_u
(get_local $12)
(get_local $13)
)
)
(br_if $label$109
(i32.lt_u
(get_local $12)
(get_local $5)
)
)
(i32.store
(i32.add
(get_local $0)
(i32.const 4)
)
(i32.add
(get_local $11)
(get_local $9)
)
)
(set_local $0
(i32.load offset=2268
(i32.const 0)
)
)
(i32.store offset=4
(set_local $12
(i32.store offset=2280
(i32.const 0)
(i32.add
(get_local $12)
(set_local $5
(select
(i32.and
(i32.sub
(i32.const -8)
(get_local $12)
)
(i32.const 7)
)
(i32.const 0)
(i32.and
(i32.add
(get_local $12)
(i32.const 8)
)
(i32.const 7)
)
)
)
)
)
)
(i32.or
(set_local $0
(i32.store offset=2268
(i32.const 0)
(i32.add
(get_local $0)
(i32.sub
(get_local $9)
(get_local $5)
)
)
)
)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $12)
(get_local $0)
)
(i32.const 40)
)
(i32.store offset=2284
(i32.const 0)
(i32.load offset=2744
(i32.const 0)
)
)
(br $label$108)
)
(block $label$118
(br_if $label$118
(i32.ge_u
(get_local $13)
(set_local $11
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(set_local $11
(i32.store offset=2272
(i32.const 0)
(get_local $13)
)
)
)
(set_local $5
(i32.add
(get_local $13)
(get_local $9)
)
)
(set_local $0
(i32.const 2704)
)
(block $label$119
(block $label$120
(block $label$121
(block $label$122
(block $label$123
(block $label$124
(loop $label$126 $label$125
(br_if $label$126
(i32.eq
(i32.load
(get_local $0)
)
(get_local $5)
)
)
(br_if $label$125
(set_local $0
(i32.load offset=8
(get_local $0)
)
)
)
(br $label$124)
)
(br_if $label$124
(i32.and
(i32.load8_u offset=12
(get_local $0)
)
(i32.const 8)
)
)
(i32.store
(get_local $0)
(get_local $13)
)
(i32.store offset=4
(get_local $0)
(i32.add
(i32.load offset=4
(get_local $0)
)
(get_local $9)
)
)
(i32.store offset=4
(set_local $13
(i32.add
(get_local $13)
(select
(i32.and
(i32.sub
(i32.const -8)
(get_local $13)
)
(i32.const 7)
)
(i32.const 0)
(i32.and
(i32.add
(get_local $13)
(i32.const 8)
)
(i32.const 7)
)
)
)
)
(i32.or
(get_local $8)
(i32.const 3)
)
)
(set_local $10
(i32.sub
(i32.sub
(set_local $0
(i32.add
(get_local $5)
(select
(i32.and
(i32.sub
(i32.const -8)
(get_local $5)
)
(i32.const 7)
)
(i32.const 0)
(i32.and
(i32.add
(get_local $5)
(i32.const 8)
)
(i32.const 7)
)
)
)
)
(get_local $13)
)
(get_local $8)
)
)
(set_local $9
(i32.add
(get_local $13)
(get_local $8)
)
)
(br_if $label$123
(i32.eq
(get_local $0)
(get_local $12)
)
)
(br_if $label$20
(i32.eq
(get_local $0)
(i32.load offset=2276
(i32.const 0)
)
)
)
(br_if $label$12
(i32.ne
(i32.and
(set_local $7
(i32.load offset=4
(get_local $0)
)
)
(i32.const 3)
)
(i32.const 1)
)
)
(br_if $label$19
(i32.gt_u
(get_local $7)
(i32.const 255)
)
)
(set_local $5
(i32.load offset=12
(get_local $0)
)
)
(block $label$127
(br_if $label$127
(i32.eq
(set_local $12
(i32.load offset=8
(get_local $0)
)
)
(set_local $8
(i32.add
(i32.shl
(set_local $4
(i32.shr_u
(get_local $7)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
)
)
(br_if $label$4
(i32.lt_u
(get_local $12)
(get_local $11)
)
)
(br_if $label$4
(i32.ne
(i32.load offset=12
(get_local $12)
)
(get_local $0)
)
)
)
(br_if $label$18
(i32.eq
(get_local $5)
(get_local $12)
)
)
(block $label$128
(br_if $label$128
(i32.eq
(get_local $5)
(get_local $8)
)
)
(br_if $label$4
(i32.lt_u
(get_local $5)
(get_local $11)
)
)
(br_if $label$4
(i32.ne
(i32.load offset=8
(get_local $5)
)
(get_local $0)
)
)
)
(i32.store
(i32.add
(i32.store offset=12
(get_local $12)
(get_local $5)
)
(i32.const 8)
)
(get_local $12)
)
(br $label$13)
)
(set_local $0
(i32.const 2704)
)
(loop $label$130 $label$129
(block $label$131
(br_if $label$131
(i32.gt_u
(set_local $5
(i32.load
(get_local $0)
)
)
(get_local $12)
)
)
(br_if $label$130
(i32.gt_u
(set_local $5
(i32.add
(get_local $5)
(i32.load offset=4
(get_local $0)
)
)
)
(get_local $12)
)
)
)
(set_local $0
(i32.load offset=8
(get_local $0)
)
)
(br $label$129)
)
(i32.store offset=4
(set_local $11
(i32.store offset=2280
(i32.const 0)
(i32.add
(get_local $13)
(set_local $0
(select
(i32.and
(i32.sub
(i32.const -8)
(get_local $13)
)
(i32.const 7)
)
(i32.const 0)
(i32.and
(i32.add
(get_local $13)
(i32.const 8)
)
(i32.const 7)
)
)
)
)
)
)
(i32.or
(set_local $0
(i32.store offset=2268
(i32.const 0)
(i32.sub
(i32.add
(get_local $9)
(i32.const -40)
)
(get_local $0)
)
)
)
(i32.const 1)
)
)
(i32.store offset=4
(i32.add
(get_local $11)
(get_local $0)
)
(i32.const 40)
)
(i32.store offset=2284
(i32.const 0)
(i32.load offset=2744
(i32.const 0)
)
)
(i32.store offset=4
(set_local $11
(select
(get_local $12)
(set_local $0
(i32.add
(i32.add
(get_local $5)
(select
(i32.and
(i32.sub
(i32.const 39)
(get_local $5)
)
(i32.const 7)
)
(i32.const 0)
(i32.and
(i32.add
(get_local $5)
(i32.const -39)
)
(i32.const 7)
)
)
)
(i32.const -47)
)
)
(i32.lt_u
(get_local $0)
(i32.add
(get_local $12)
(i32.const 16)
)
)
)
)
(i32.const 27)
)
(i32.store
(i32.add
(get_local $11)
(i32.const 20)
)
(i32.load offset=2716
(i32.const 0)
)
)
(i32.store
(i32.add
(get_local $11)
(i32.const 16)
)
(i32.load offset=2712
(i32.const 0)
)
)
(i32.store
(i32.add
(get_local $11)
(i32.const 12)
)
(i32.load offset=2708
(i32.const 0)
)
)
(i32.store offset=8
(get_local $11)
(i32.load offset=2704
(i32.const 0)
)
)
(i32.store offset=2704
(i32.const 0)
(get_local $13)
)
(i32.store offset=2708
(i32.const 0)
(get_local $9)
)
(i32.store offset=2712
(i32.store offset=2716
(i32.const 0)
(i32.const 0)
)
(i32.add
(get_local $11)
(i32.const 8)
)
)
(set_local $0
(i32.add
(get_local $11)
(i32.const 28)
)
)
(loop $label$133 $label$132
(i32.store
(get_local $0)
(i32.const 7)
)
(br_if $label$132
(i32.lt_u
(set_local $0
(i32.add
(get_local $0)
(i32.const 4)
)
)
(get_local $5)
)
)
)
(br_if $label$108
(i32.eq
(get_local $11)
(get_local $12)
)
)
(i32.store
(set_local $0
(i32.add
(get_local $11)
(i32.const 4)
)
)
(i32.and
(i32.load
(get_local $0)
)
(i32.const -2)
)
)
(i32.store offset=4
(get_local $12)
(i32.or
(set_local $0
(i32.sub
(get_local $11)
(get_local $12)
)
)
(i32.const 1)
)
)
(block $label$134
(br_if $label$134
(i32.gt_u
(set_local $11
(i32.store
(get_local $11)
(get_local $0)
)
)
(i32.const 255)
)
)
(set_local $0
(i32.add
(i32.shl
(set_local $5
(i32.shr_u
(get_local $11)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
(br_if $label$122
(i32.eqz
(i32.and
(set_local $13
(i32.load offset=2256
(i32.const 0)
)
)
(set_local $5
(i32.shl
(i32.const 1)
(get_local $5)
)
)
)
)
)
(br_if $label$121
(i32.ge_u
(set_local $5
(i32.load offset=8
(get_local $0)
)
)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br $label$6)
)
(set_local $0
(i32.const 0)
)
(block $label$135
(br_if $label$135
(i32.eqz
(set_local $5
(i32.shr_u
(get_local $11)
(i32.const 8)
)
)
)
)
(set_local $0
(i32.const 31)
)
(br_if $label$135
(i32.gt_u
(get_local $11)
(i32.const 16777215)
)
)
(set_local $0
(i32.or
(i32.and
(i32.shr_u
(get_local $11)
(i32.add
(set_local $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
(set_local $13
(i32.and
(i32.shr_u
(i32.add
(set_local $5
(i32.shl
(get_local $5)
(set_local $0
(i32.and
(i32.shr_u
(i32.add
(get_local $5)
(i32.const 1048320)
)
(i32.const 16)
)
(i32.const 8)
)
)
)
)
(i32.const 520192)
)
(i32.const 16)
)
(i32.const 4)
)
)
(get_local $0)
)
(set_local $5
(i32.and
(i32.shr_u
(i32.add
(set_local $0
(i32.shl
(get_local $5)
(get_local $13)
)
)
(i32.const 245760)
)
(i32.const 16)
)
(i32.const 2)
)
)
)
)
(i32.shr_u
(i32.shl
(get_local $0)
(get_local $5)
)
(i32.const 15)
)
)
)
(i32.const 7)
)
)
(i32.const 1)
)
(i32.shl
(get_local $0)
(i32.const 1)
)
)
)
)
(set_local $5
(i32.add
(i32.shl
(set_local $0
(i32.store
(i32.add
(get_local $12)
(i32.const 28)
)
(get_local $0)
)
)
(i32.const 2)
)
(i32.const 2560)
)
)
(br_if $label$120
(i32.eqz
(i32.and
(set_local $13
(i32.load offset=2260
(i32.store
(i32.add
(get_local $12)
(i32.const 16)
)
(i32.store
(i32.add
(get_local $12)
(i32.const 20)
)
(i32.const 0)
)
)
)
)
(set_local $9
(i32.shl
(i32.const 1)
(get_local $0)
)
)
)
)
)
(set_local $0
(i32.shl
(get_local $11)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
(get_local $0)
(i32.const 1)
)
)
(i32.eq
(get_local $0)
(i32.const 31)
)
)
)
)
(set_local $13
(i32.load
(get_local $5)
)
)
(loop $label$137 $label$136
(br_if $label$119
(i32.eq
(i32.and
(i32.load offset=4
(set_local $5
(get_local $13)
)
)
(i32.const -8)
)
(get_local $11)
)
)
(set_local $13
(i32.shr_u
(get_local $0)
(i32.const 29)
)
)
(set_local $0
(i32.shl
(get_local $0)
(i32.const 1)
)
)
(br_if $label$136
(set_local $13
(i32.load
(set_local $9
(i32.add
(i32.add
(get_local $5)
(i32.and
(get_local $13)
(i32.const 4)
)
)
(i32.const 16)
)
)
)
)
)
)
(br_if $label$6
(i32.lt_u
(get_local $9)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store
(i32.add
(set_local $0
(i32.store
(get_local $9)
(get_local $12)
)
)
(i32.const 24)
)
(get_local $5)
)
(i32.store offset=8
(set_local $0
(i32.store offset=12
(get_local $0)
(get_local $0)
)
)
(get_local $0)
)
(br $label$108)
)
(set_local $0
(i32.store offset=2268
(i32.const 0)
(i32.add
(i32.load offset=2268
(i32.const 0)
)
(get_local $10)
)
)
)
(i32.store offset=4
(i32.store offset=2280
(i32.const 0)
(get_local $9)
)
(i32.or
(get_local $0)
(i32.const 1)
)
)
(br $label$11)
)
(i32.store offset=2256
(i32.const 0)
(i32.or
(get_local $13)
(get_local $5)
)
)
(set_local $5
(get_local $0)
)
)
(i32.store offset=8
(set_local $12
(i32.store offset=12
(get_local $5)
(i32.store
(i32.add
(get_local $0)
(i32.const 8)
)
(get_local $12)
)
)
)
(get_local $5)
)
(i32.store offset=12
(get_local $12)
(get_local $0)
)
(br $label$108)
)
(i32.store offset=2260
(i32.const 0)
(i32.or
(get_local $13)
(get_local $9)
)
)
(i32.store
(i32.add
(set_local $0
(i32.store
(get_local $5)
(get_local $12)
)
)
(i32.const 24)
)
(get_local $5)
)
(i32.store offset=8
(set_local $0
(i32.store offset=12
(get_local $0)
(get_local $0)
)
)
(get_local $0)
)
(br $label$108)
)
(br_if $label$5
(i32.lt_u
(set_local $0
(i32.load offset=8
(get_local $5)
)
)
(set_local $13
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(br_if $label$5
(i32.lt_u
(get_local $5)
(get_local $13)
)
)
(i32.store offset=8
(set_local $12
(i32.store
(i32.add
(get_local $5)
(i32.const 8)
)
(i32.store offset=12
(get_local $0)
(get_local $12)
)
)
)
(get_local $0)
)
(i32.store offset=12
(get_local $12)
(get_local $5)
)
(i32.store
(i32.add
(get_local $12)
(i32.const 24)
)
(i32.const 0)
)
)
(br_if $label$21
(i32.le_u
(set_local $0
(i32.load offset=2268
(i32.const 0)
)
)
(get_local $8)
)
)
(set_local $12
(i32.store offset=2268
(i32.const 0)
(i32.sub
(get_local $0)
(get_local $8)
)
)
)
(i32.store offset=4
(i32.store offset=2280
(i32.const 0)
(i32.add
(set_local $0
(i32.load offset=2280
(i32.const 0)
)
)
(get_local $8)
)
)
(i32.or
(get_local $12)
(i32.const 1)
)
)
(i32.store offset=4
(get_local $0)
(i32.or
(get_local $8)
(i32.const 3)
)
)
(set_local $0
(i32.add
(get_local $0)
(i32.const 8)
)
)
(br $label$0)
)
(i32.store
(call $__errno_location)
(i32.const 12)
)
(set_local $0
(i32.const 0)
)
(br $label$0)
)
(set_local $0
(i32.store offset=2264
(i32.const 0)
(i32.add
(i32.load offset=2264
(i32.const 0)
)
(get_local $10)
)
)
)
(i32.store offset=4
(set_local $12
(i32.store offset=2276
(i32.const 0)
(get_local $9)
)
)
(i32.or
(get_local $0)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $12)
(get_local $0)
)
(get_local $0)
)
(br $label$11)
)
(set_local $6
(i32.load offset=24
(get_local $0)
)
)
(block $label$138
(block $label$139
(br_if $label$139
(i32.eq
(set_local $8
(i32.load offset=12
(get_local $0)
)
)
(get_local $0)
)
)
(br_if $label$3
(i32.lt_u
(set_local $12
(i32.load offset=8
(get_local $0)
)
)
(get_local $11)
)
)
(br_if $label$3
(i32.ne
(i32.load offset=12
(get_local $12)
)
(get_local $0)
)
)
(br_if $label$3
(i32.ne
(i32.load offset=8
(get_local $8)
)
(get_local $0)
)
)
(i32.store
(i32.add
(i32.store
(i32.add
(get_local $12)
(i32.const 12)
)
(get_local $8)
)
(i32.const 8)
)
(get_local $12)
)
(br $label$138)
)
(block $label$140
(br_if $label$140
(set_local $12
(i32.load
(set_local $5
(i32.add
(get_local $0)
(i32.const 20)
)
)
)
)
)
(set_local $8
(i32.const 0)
)
(br_if $label$138
(i32.eqz
(set_local $12
(i32.load
(set_local $5
(i32.add
(get_local $0)
(i32.const 16)
)
)
)
)
)
)
)
(loop $label$142 $label$141
(set_local $4
(get_local $5)
)
(br_if $label$141
(set_local $12
(i32.load
(set_local $5
(i32.add
(set_local $8
(get_local $12)
)
(i32.const 20)
)
)
)
)
)
(set_local $5
(i32.add
(get_local $8)
(i32.const 16)
)
)
(br_if $label$141
(set_local $12
(i32.load offset=16
(get_local $8)
)
)
)
)
(br_if $label$6
(i32.lt_u
(get_local $4)
(get_local $11)
)
)
(i32.store
(get_local $4)
(i32.const 0)
)
)
(br_if $label$13
(i32.eqz
(get_local $6)
)
)
(br_if $label$17
(i32.eq
(get_local $0)
(i32.load offset=2560
(set_local $12
(i32.shl
(set_local $5
(i32.load offset=28
(get_local $0)
)
)
(i32.const 2)
)
)
)
)
)
(br_if $label$1
(i32.lt_u
(get_local $6)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$16
(i32.eq
(i32.load offset=16
(get_local $6)
)
(get_local $0)
)
)
(i32.store
(i32.add
(get_local $6)
(i32.const 20)
)
(get_local $8)
)
(br $label$15)
)
(i32.store offset=2256
(i32.const 0)
(i32.and
(i32.load offset=2256
(i32.const 0)
)
(i32.rotl
(i32.const -2)
(get_local $4)
)
)
)
(br $label$13)
)
(br_if $label$14
(i32.store
(i32.add
(get_local $12)
(i32.const 2560)
)
(get_local $8)
)
)
(i32.store offset=2260
(i32.const 0)
(i32.and
(i32.load offset=2260
(i32.const 0)
)
(i32.rotl
(i32.const -2)
(get_local $5)
)
)
)
(br $label$13)
)
(i32.store
(i32.add
(get_local $6)
(i32.const 16)
)
(get_local $8)
)
)
(br_if $label$13
(i32.eqz
(get_local $8)
)
)
)
(br_if $label$6
(i32.lt_u
(get_local $8)
(set_local $5
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(i32.store offset=24
(get_local $8)
(get_local $6)
)
(block $label$143
(br_if $label$143
(i32.eqz
(set_local $12
(i32.load offset=16
(get_local $0)
)
)
)
)
(br_if $label$6
(i32.lt_u
(get_local $12)
(get_local $5)
)
)
(i32.store offset=24
(i32.store offset=16
(get_local $8)
(get_local $12)
)
(get_local $8)
)
)
(br_if $label$13
(i32.eqz
(set_local $12
(i32.load
(i32.add
(get_local $0)
(i32.const 20)
)
)
)
)
)
(br_if $label$6
(i32.lt_u
(get_local $12)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store offset=24
(i32.store
(i32.add
(get_local $8)
(i32.const 20)
)
(get_local $12)
)
(get_local $8)
)
)
(set_local $10
(i32.add
(set_local $12
(i32.and
(get_local $7)
(i32.const -8)
)
)
(get_local $10)
)
)
(set_local $0
(i32.add
(get_local $0)
(get_local $12)
)
)
)
(i32.store offset=4
(get_local $0)
(i32.and
(i32.load offset=4
(get_local $0)
)
(i32.const -2)
)
)
(i32.store offset=4
(get_local $9)
(i32.or
(get_local $10)
(i32.const 1)
)
)
(block $label$144
(block $label$145
(block $label$146
(block $label$147
(block $label$148
(br_if $label$148
(i32.gt_u
(set_local $8
(i32.store
(i32.add
(get_local $9)
(get_local $10)
)
(get_local $10)
)
)
(i32.const 255)
)
)
(set_local $0
(i32.add
(i32.shl
(set_local $12
(i32.shr_u
(get_local $8)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
(br_if $label$147
(i32.eqz
(i32.and
(set_local $5
(i32.load offset=2256
(i32.const 0)
)
)
(set_local $12
(i32.shl
(i32.const 1)
(get_local $12)
)
)
)
)
)
(br_if $label$6
(i32.lt_u
(set_local $12
(i32.load offset=8
(get_local $0)
)
)
(i32.load offset=2272
(i32.const 0)
)
)
)
(set_local $5
(i32.add
(get_local $0)
(i32.const 8)
)
)
(br $label$146)
)
(set_local $0
(i32.const 0)
)
(block $label$149
(br_if $label$149
(i32.eqz
(set_local $12
(i32.shr_u
(get_local $8)
(i32.const 8)
)
)
)
)
(set_local $0
(i32.const 31)
)
(br_if $label$149
(i32.gt_u
(get_local $8)
(i32.const 16777215)
)
)
(set_local $0
(i32.or
(i32.and
(i32.shr_u
(get_local $8)
(i32.add
(set_local $0
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
(set_local $5
(i32.and
(i32.shr_u
(i32.add
(set_local $12
(i32.shl
(get_local $12)
(set_local $0
(i32.and
(i32.shr_u
(i32.add
(get_local $12)
(i32.const 1048320)
)
(i32.const 16)
)
(i32.const 8)
)
)
)
)
(i32.const 520192)
)
(i32.const 16)
)
(i32.const 4)
)
)
(get_local $0)
)
(set_local $12
(i32.and
(i32.shr_u
(i32.add
(set_local $0
(i32.shl
(get_local $12)
(get_local $5)
)
)
(i32.const 245760)
)
(i32.const 16)
)
(i32.const 2)
)
)
)
)
(i32.shr_u
(i32.shl
(get_local $0)
(get_local $12)
)
(i32.const 15)
)
)
)
(i32.const 7)
)
)
(i32.const 1)
)
(i32.shl
(get_local $0)
(i32.const 1)
)
)
)
)
(set_local $12
(i32.add
(i32.shl
(set_local $0
(i32.store offset=28
(get_local $9)
(get_local $0)
)
)
(i32.const 2)
)
(i32.const 2560)
)
)
(br_if $label$145
(i32.eqz
(i32.and
(set_local $5
(i32.load offset=2260
(i32.store offset=16
(get_local $9)
(i32.store
(i32.add
(get_local $9)
(i32.const 20)
)
(i32.const 0)
)
)
)
)
(set_local $11
(i32.shl
(i32.const 1)
(get_local $0)
)
)
)
)
)
(set_local $0
(i32.shl
(get_local $8)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
(get_local $0)
(i32.const 1)
)
)
(i32.eq
(get_local $0)
(i32.const 31)
)
)
)
)
(set_local $5
(i32.load
(get_local $12)
)
)
(loop $label$151 $label$150
(br_if $label$144
(i32.eq
(i32.and
(i32.load offset=4
(set_local $12
(get_local $5)
)
)
(i32.const -8)
)
(get_local $8)
)
)
(set_local $5
(i32.shr_u
(get_local $0)
(i32.const 29)
)
)
(set_local $0
(i32.shl
(get_local $0)
(i32.const 1)
)
)
(br_if $label$150
(set_local $5
(i32.load
(set_local $11
(i32.add
(i32.add
(get_local $12)
(i32.and
(get_local $5)
(i32.const 4)
)
)
(i32.const 16)
)
)
)
)
)
)
(br_if $label$6
(i32.lt_u
(get_local $11)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store offset=24
(set_local $0
(i32.store
(get_local $11)
(get_local $9)
)
)
(get_local $12)
)
(i32.store offset=8
(set_local $0
(i32.store offset=12
(get_local $0)
(get_local $0)
)
)
(get_local $0)
)
(br $label$11)
)
(i32.store offset=2256
(i32.const 0)
(i32.or
(get_local $5)
(get_local $12)
)
)
(set_local $5
(i32.add
(get_local $0)
(i32.const 8)
)
)
(set_local $12
(get_local $0)
)
)
(i32.store offset=8
(set_local $5
(i32.store offset=12
(get_local $12)
(i32.store
(get_local $5)
(get_local $9)
)
)
)
(get_local $12)
)
(i32.store offset=12
(get_local $5)
(get_local $0)
)
(br $label$11)
)
(i32.store offset=2260
(i32.const 0)
(i32.or
(get_local $5)
(get_local $11)
)
)
(i32.store offset=24
(set_local $0
(i32.store
(get_local $12)
(get_local $9)
)
)
(get_local $12)
)
(i32.store offset=8
(set_local $0
(i32.store offset=12
(get_local $0)
(get_local $0)
)
)
(get_local $0)
)
(br $label$11)
)
(br_if $label$2
(i32.lt_u
(set_local $0
(i32.load offset=8
(get_local $12)
)
)
(set_local $5
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(br_if $label$2
(i32.lt_u
(get_local $12)
(get_local $5)
)
)
(i32.store offset=8
(set_local $5
(i32.store
(i32.add
(get_local $12)
(i32.const 8)
)
(i32.store offset=12
(get_local $0)
(get_local $9)
)
)
)
(get_local $0)
)
(i32.store offset=12
(get_local $5)
(get_local $12)
)
(i32.store offset=24
(get_local $5)
(i32.const 0)
)
)
(set_local $0
(i32.add
(get_local $13)
(i32.const 8)
)
)
(br $label$0)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(i32.store offset=1024
(i32.const 0)
(i32.add
(get_local $1)
(i32.const 16)
)
)
(get_local $0)
)
(export "malloc" $malloc)
(func $free (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i32)
(block $label$0
(block $label$1
(br_if $label$1
(i32.eqz
(get_local $0)
)
)
(block $label$2
(block $label$3
(block $label$4
(block $label$5
(block $label$6
(block $label$7
(block $label$8
(block $label$9
(br_if $label$9
(i32.lt_u
(set_local $3
(i32.add
(get_local $0)
(i32.const -8)
)
)
(set_local $5
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(br_if $label$9
(i32.eq
(set_local $6
(i32.and
(set_local $8
(i32.load
(i32.add
(get_local $0)
(i32.const -4)
)
)
)
(i32.const 3)
)
)
(i32.const 1)
)
)
(set_local $1
(i32.add
(get_local $3)
(set_local $0
(i32.and
(get_local $8)
(i32.const -8)
)
)
)
)
(block $label$10
(br_if $label$10
(i32.and
(get_local $8)
(i32.const 1)
)
)
(br_if $label$1
(i32.eqz
(get_local $6)
)
)
(br_if $label$9
(i32.lt_u
(set_local $3
(i32.sub
(get_local $3)
(set_local $8
(i32.load
(get_local $3)
)
)
)
)
(get_local $5)
)
)
(set_local $0
(i32.add
(get_local $8)
(get_local $0)
)
)
(block $label$11
(block $label$12
(block $label$13
(block $label$14
(block $label$15
(block $label$16
(block $label$17
(br_if $label$17
(i32.eq
(get_local $3)
(i32.load offset=2276
(i32.const 0)
)
)
)
(br_if $label$16
(i32.gt_u
(get_local $8)
(i32.const 255)
)
)
(set_local $7
(i32.load offset=12
(get_local $3)
)
)
(block $label$18
(br_if $label$18
(i32.eq
(set_local $6
(i32.load offset=8
(get_local $3)
)
)
(set_local $8
(i32.add
(i32.shl
(set_local $4
(i32.shr_u
(get_local $8)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
)
)
(br_if $label$8
(i32.lt_u
(get_local $6)
(get_local $5)
)
)
(br_if $label$8
(i32.ne
(i32.load offset=12
(get_local $6)
)
(get_local $3)
)
)
)
(br_if $label$15
(i32.eq
(get_local $7)
(get_local $6)
)
)
(block $label$19
(br_if $label$19
(i32.eq
(get_local $7)
(get_local $8)
)
)
(br_if $label$8
(i32.lt_u
(get_local $7)
(get_local $5)
)
)
(br_if $label$8
(i32.ne
(i32.load offset=8
(get_local $7)
)
(get_local $3)
)
)
)
(i32.store
(i32.add
(i32.store offset=12
(get_local $6)
(get_local $7)
)
(i32.const 8)
)
(get_local $6)
)
(br $label$10)
)
(br_if $label$10
(i32.ne
(i32.and
(set_local $8
(i32.load offset=4
(get_local $1)
)
)
(i32.const 3)
)
(i32.const 3)
)
)
(i32.store offset=2264
(i32.const 0)
(get_local $0)
)
(i32.store
(i32.add
(get_local $1)
(i32.const 4)
)
(i32.and
(get_local $8)
(i32.const -2)
)
)
(i32.store offset=4
(get_local $3)
(i32.or
(get_local $0)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $3)
(get_local $0)
)
(get_local $0)
)
(return)
)
(set_local $2
(i32.load offset=24
(get_local $3)
)
)
(block $label$20
(block $label$21
(br_if $label$21
(i32.eq
(set_local $7
(i32.load offset=12
(get_local $3)
)
)
(get_local $3)
)
)
(br_if $label$7
(i32.lt_u
(set_local $8
(i32.load offset=8
(get_local $3)
)
)
(get_local $5)
)
)
(br_if $label$7
(i32.ne
(i32.load offset=12
(get_local $8)
)
(get_local $3)
)
)
(br_if $label$7
(i32.ne
(i32.load offset=8
(get_local $7)
)
(get_local $3)
)
)
(i32.store
(i32.add
(i32.store
(i32.add
(get_local $8)
(i32.const 12)
)
(get_local $7)
)
(i32.const 8)
)
(get_local $8)
)
(br $label$20)
)
(block $label$22
(br_if $label$22
(set_local $6
(i32.load
(set_local $8
(i32.add
(get_local $3)
(i32.const 20)
)
)
)
)
)
(set_local $7
(i32.const 0)
)
(br_if $label$20
(i32.eqz
(set_local $6
(i32.load
(set_local $8
(i32.add
(get_local $3)
(i32.const 16)
)
)
)
)
)
)
)
(loop $label$24 $label$23
(set_local $4
(get_local $8)
)
(br_if $label$23
(set_local $6
(i32.load
(set_local $8
(i32.add
(set_local $7
(get_local $6)
)
(i32.const 20)
)
)
)
)
)
(set_local $8
(i32.add
(get_local $7)
(i32.const 16)
)
)
(br_if $label$23
(set_local $6
(i32.load offset=16
(get_local $7)
)
)
)
)
(br_if $label$0
(i32.lt_u
(get_local $4)
(get_local $5)
)
)
(i32.store
(get_local $4)
(i32.const 0)
)
)
(br_if $label$10
(i32.eqz
(get_local $2)
)
)
(br_if $label$14
(i32.eq
(get_local $3)
(i32.load offset=2560
(set_local $8
(i32.shl
(set_local $6
(i32.load offset=28
(get_local $3)
)
)
(i32.const 2)
)
)
)
)
)
(br_if $label$4
(i32.lt_u
(get_local $2)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$13
(i32.eq
(i32.load offset=16
(get_local $2)
)
(get_local $3)
)
)
(i32.store
(i32.add
(get_local $2)
(i32.const 20)
)
(get_local $7)
)
(br $label$12)
)
(i32.store offset=2256
(i32.const 0)
(i32.and
(i32.load offset=2256
(i32.const 0)
)
(i32.rotl
(i32.const -2)
(get_local $4)
)
)
)
(br $label$10)
)
(br_if $label$11
(i32.store
(i32.add
(get_local $8)
(i32.const 2560)
)
(get_local $7)
)
)
(i32.store offset=2260
(i32.const 0)
(i32.and
(i32.load offset=2260
(i32.const 0)
)
(i32.rotl
(i32.const -2)
(get_local $6)
)
)
)
(br $label$10)
)
(i32.store
(i32.add
(get_local $2)
(i32.const 16)
)
(get_local $7)
)
)
(br_if $label$10
(i32.eqz
(get_local $7)
)
)
)
(br_if $label$9
(i32.lt_u
(get_local $7)
(set_local $6
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(i32.store offset=24
(get_local $7)
(get_local $2)
)
(block $label$25
(br_if $label$25
(i32.eqz
(set_local $8
(i32.load offset=16
(get_local $3)
)
)
)
)
(br_if $label$0
(i32.lt_u
(get_local $8)
(get_local $6)
)
)
(i32.store offset=24
(i32.store offset=16
(get_local $7)
(get_local $8)
)
(get_local $7)
)
)
(br_if $label$10
(i32.eqz
(set_local $8
(i32.load
(i32.add
(get_local $3)
(i32.const 20)
)
)
)
)
)
(br_if $label$9
(i32.lt_u
(get_local $8)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store offset=24
(i32.store
(i32.add
(get_local $7)
(i32.const 20)
)
(get_local $8)
)
(get_local $7)
)
)
(br_if $label$9
(i32.ge_u
(get_local $3)
(get_local $1)
)
)
(br_if $label$9
(i32.eqz
(i32.and
(set_local $4
(i32.load offset=4
(get_local $1)
)
)
(i32.const 1)
)
)
)
(block $label$26
(block $label$27
(block $label$28
(block $label$29
(block $label$30
(block $label$31
(block $label$32
(block $label$33
(block $label$34
(block $label$35
(br_if $label$35
(i32.and
(get_local $4)
(i32.const 2)
)
)
(br_if $label$34
(i32.eq
(get_local $1)
(i32.load offset=2280
(i32.const 0)
)
)
)
(br_if $label$33
(i32.eq
(get_local $1)
(i32.load offset=2276
(i32.const 0)
)
)
)
(br_if $label$32
(i32.gt_u
(get_local $4)
(i32.const 255)
)
)
(set_local $6
(i32.load offset=12
(get_local $1)
)
)
(block $label$36
(br_if $label$36
(i32.eq
(set_local $8
(i32.load offset=8
(get_local $1)
)
)
(set_local $7
(i32.add
(i32.shl
(set_local $5
(i32.shr_u
(get_local $4)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
)
)
(br_if $label$6
(i32.lt_u
(get_local $8)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$6
(i32.ne
(i32.load offset=12
(get_local $8)
)
(get_local $1)
)
)
)
(br_if $label$31
(i32.eq
(get_local $6)
(get_local $8)
)
)
(block $label$37
(br_if $label$37
(i32.eq
(get_local $6)
(get_local $7)
)
)
(br_if $label$6
(i32.lt_u
(get_local $6)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$6
(i32.ne
(i32.load offset=8
(get_local $6)
)
(get_local $1)
)
)
)
(i32.store
(i32.add
(i32.store offset=12
(get_local $8)
(get_local $6)
)
(i32.const 8)
)
(get_local $8)
)
(br $label$26)
)
(i32.store
(i32.add
(get_local $1)
(i32.const 4)
)
(i32.and
(get_local $4)
(i32.const -2)
)
)
(i32.store offset=4
(get_local $3)
(i32.or
(get_local $0)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $3)
(get_local $0)
)
(get_local $0)
)
(br $label$2)
)
(set_local $0
(i32.store offset=2268
(i32.const 0)
(i32.add
(i32.load offset=2268
(i32.const 0)
)
(get_local $0)
)
)
)
(i32.store offset=4
(set_local $3
(i32.store offset=2280
(i32.const 0)
(get_local $3)
)
)
(i32.or
(get_local $0)
(i32.const 1)
)
)
(br_if $label$1
(i32.ne
(get_local $3)
(i32.load offset=2276
(i32.const 0)
)
)
)
(i32.store offset=2264
(set_local $3
(i32.store offset=2276
(i32.const 0)
(i32.const 0)
)
)
(get_local $3)
)
(return)
)
(set_local $0
(i32.store offset=2264
(i32.const 0)
(i32.add
(i32.load offset=2264
(i32.const 0)
)
(get_local $0)
)
)
)
(i32.store offset=4
(set_local $3
(i32.store offset=2276
(i32.const 0)
(get_local $3)
)
)
(i32.or
(get_local $0)
(i32.const 1)
)
)
(i32.store
(i32.add
(get_local $3)
(get_local $0)
)
(get_local $0)
)
(return)
)
(set_local $2
(i32.load offset=24
(get_local $1)
)
)
(block $label$38
(block $label$39
(br_if $label$39
(i32.eq
(set_local $7
(i32.load offset=12
(get_local $1)
)
)
(get_local $1)
)
)
(br_if $label$5
(i32.lt_u
(set_local $8
(i32.load offset=8
(get_local $1)
)
)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$5
(i32.ne
(i32.load offset=12
(get_local $8)
)
(get_local $1)
)
)
(br_if $label$5
(i32.ne
(i32.load offset=8
(get_local $7)
)
(get_local $1)
)
)
(i32.store
(i32.add
(i32.store
(i32.add
(get_local $8)
(i32.const 12)
)
(get_local $7)
)
(i32.const 8)
)
(get_local $8)
)
(br $label$38)
)
(block $label$40
(br_if $label$40
(set_local $6
(i32.load
(set_local $8
(i32.add
(get_local $1)
(i32.const 20)
)
)
)
)
)
(set_local $7
(i32.const 0)
)
(br_if $label$38
(i32.eqz
(set_local $6
(i32.load
(set_local $8
(i32.add
(get_local $1)
(i32.const 16)
)
)
)
)
)
)
)
(loop $label$42 $label$41
(set_local $5
(get_local $8)
)
(br_if $label$41
(set_local $6
(i32.load
(set_local $8
(i32.add
(set_local $7
(get_local $6)
)
(i32.const 20)
)
)
)
)
)
(set_local $8
(i32.add
(get_local $7)
(i32.const 16)
)
)
(br_if $label$41
(set_local $6
(i32.load offset=16
(get_local $7)
)
)
)
)
(br_if $label$0
(i32.lt_u
(get_local $5)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store
(get_local $5)
(i32.const 0)
)
)
(br_if $label$26
(i32.eqz
(get_local $2)
)
)
(br_if $label$30
(i32.eq
(get_local $1)
(i32.load offset=2560
(set_local $8
(i32.shl
(set_local $6
(i32.load offset=28
(get_local $1)
)
)
(i32.const 2)
)
)
)
)
)
(br_if $label$3
(i32.lt_u
(get_local $2)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br_if $label$29
(i32.eq
(i32.load offset=16
(get_local $2)
)
(get_local $1)
)
)
(i32.store
(i32.add
(get_local $2)
(i32.const 20)
)
(get_local $7)
)
(br $label$28)
)
(i32.store offset=2256
(i32.const 0)
(i32.and
(i32.load offset=2256
(i32.const 0)
)
(i32.rotl
(i32.const -2)
(get_local $5)
)
)
)
(br $label$26)
)
(br_if $label$27
(i32.store
(i32.add
(get_local $8)
(i32.const 2560)
)
(get_local $7)
)
)
(i32.store offset=2260
(i32.const 0)
(i32.and
(i32.load offset=2260
(i32.const 0)
)
(i32.rotl
(i32.const -2)
(get_local $6)
)
)
)
(br $label$26)
)
(i32.store
(i32.add
(get_local $2)
(i32.const 16)
)
(get_local $7)
)
)
(br_if $label$26
(i32.eqz
(get_local $7)
)
)
)
(br_if $label$0
(i32.lt_u
(get_local $7)
(set_local $6
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(i32.store offset=24
(get_local $7)
(get_local $2)
)
(block $label$43
(br_if $label$43
(i32.eqz
(set_local $8
(i32.load offset=16
(get_local $1)
)
)
)
)
(br_if $label$0
(i32.lt_u
(get_local $8)
(get_local $6)
)
)
(i32.store offset=24
(i32.store offset=16
(get_local $7)
(get_local $8)
)
(get_local $7)
)
)
(br_if $label$26
(i32.eqz
(set_local $8
(i32.load
(i32.add
(get_local $1)
(i32.const 20)
)
)
)
)
)
(br_if $label$0
(i32.lt_u
(get_local $8)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store offset=24
(i32.store
(i32.add
(get_local $7)
(i32.const 20)
)
(get_local $8)
)
(get_local $7)
)
)
(i32.store offset=4
(get_local $3)
(i32.or
(set_local $0
(i32.add
(i32.and
(get_local $4)
(i32.const -8)
)
(get_local $0)
)
)
(i32.const 1)
)
)
(set_local $8
(i32.store
(i32.add
(get_local $3)
(get_local $0)
)
(get_local $0)
)
)
(br_if $label$2
(i32.ne
(get_local $3)
(i32.load offset=2276
(i32.const 0)
)
)
)
(i32.store offset=2264
(i32.const 0)
(get_local $8)
)
(return)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(call_import $abort)
(unreachable)
)
(block $label$44
(block $label$45
(block $label$46
(block $label$47
(block $label$48
(block $label$49
(br_if $label$49
(i32.gt_u
(get_local $0)
(i32.const 255)
)
)
(set_local $0
(i32.add
(i32.shl
(set_local $8
(i32.shr_u
(get_local $0)
(i32.const 3)
)
)
(i32.const 3)
)
(i32.const 2296)
)
)
(br_if $label$48
(i32.eqz
(i32.and
(set_local $6
(i32.load offset=2256
(i32.const 0)
)
)
(set_local $8
(i32.shl
(i32.const 1)
(get_local $8)
)
)
)
)
)
(br_if $label$47
(i32.ge_u
(set_local $8
(i32.load offset=8
(get_local $0)
)
)
(i32.load offset=2272
(i32.const 0)
)
)
)
(br $label$0)
)
(set_local $8
(i32.const 0)
)
(block $label$50
(br_if $label$50
(i32.eqz
(set_local $6
(i32.shr_u
(get_local $0)
(i32.const 8)
)
)
)
)
(set_local $8
(i32.const 31)
)
(br_if $label$50
(i32.gt_u
(get_local $0)
(i32.const 16777215)
)
)
(set_local $8
(i32.or
(i32.and
(i32.shr_u
(get_local $0)
(i32.add
(set_local $8
(i32.add
(i32.sub
(i32.const 14)
(i32.or
(i32.or
(set_local $7
(i32.and
(i32.shr_u
(i32.add
(set_local $6
(i32.shl
(get_local $6)
(set_local $8
(i32.and
(i32.shr_u
(i32.add
(get_local $6)
(i32.const 1048320)
)
(i32.const 16)
)
(i32.const 8)
)
)
)
)
(i32.const 520192)
)
(i32.const 16)
)
(i32.const 4)
)
)
(get_local $8)
)
(set_local $6
(i32.and
(i32.shr_u
(i32.add
(set_local $8
(i32.shl
(get_local $6)
(get_local $7)
)
)
(i32.const 245760)
)
(i32.const 16)
)
(i32.const 2)
)
)
)
)
(i32.shr_u
(i32.shl
(get_local $8)
(get_local $6)
)
(i32.const 15)
)
)
)
(i32.const 7)
)
)
(i32.const 1)
)
(i32.shl
(get_local $8)
(i32.const 1)
)
)
)
)
(set_local $6
(i32.add
(i32.shl
(set_local $8
(i32.store
(i32.add
(get_local $3)
(i32.const 28)
)
(get_local $8)
)
)
(i32.const 2)
)
(i32.const 2560)
)
)
(br_if $label$46
(i32.eqz
(i32.and
(set_local $7
(i32.load offset=2260
(i32.store offset=16
(get_local $3)
(i32.store
(i32.add
(get_local $3)
(i32.const 20)
)
(i32.const 0)
)
)
)
)
(set_local $1
(i32.shl
(i32.const 1)
(get_local $8)
)
)
)
)
)
(set_local $8
(i32.shl
(get_local $0)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
(get_local $8)
(i32.const 1)
)
)
(i32.eq
(get_local $8)
(i32.const 31)
)
)
)
)
(set_local $7
(i32.load
(get_local $6)
)
)
(loop $label$52 $label$51
(br_if $label$45
(i32.eq
(i32.and
(i32.load offset=4
(set_local $6
(get_local $7)
)
)
(i32.const -8)
)
(get_local $0)
)
)
(set_local $7
(i32.shr_u
(get_local $8)
(i32.const 29)
)
)
(set_local $8
(i32.shl
(get_local $8)
(i32.const 1)
)
)
(br_if $label$51
(set_local $7
(i32.load
(set_local $1
(i32.add
(i32.add
(get_local $6)
(i32.and
(get_local $7)
(i32.const 4)
)
)
(i32.const 16)
)
)
)
)
)
)
(br_if $label$0
(i32.lt_u
(get_local $1)
(i32.load offset=2272
(i32.const 0)
)
)
)
(i32.store
(i32.add
(set_local $3
(i32.store
(get_local $1)
(get_local $3)
)
)
(i32.const 24)
)
(get_local $6)
)
(i32.store offset=8
(set_local $3
(i32.store offset=12
(get_local $3)
(get_local $3)
)
)
(get_local $3)
)
(br $label$44)
)
(i32.store offset=2256
(i32.const 0)
(i32.or
(get_local $6)
(get_local $8)
)
)
(set_local $8
(get_local $0)
)
)
(i32.store offset=8
(set_local $3
(i32.store offset=12
(get_local $8)
(i32.store
(i32.add
(get_local $0)
(i32.const 8)
)
(get_local $3)
)
)
)
(get_local $8)
)
(i32.store offset=12
(get_local $3)
(get_local $0)
)
(return)
)
(i32.store offset=2260
(i32.const 0)
(i32.or
(get_local $7)
(get_local $1)
)
)
(i32.store
(i32.add
(set_local $3
(i32.store
(get_local $6)
(get_local $3)
)
)
(i32.const 24)
)
(get_local $6)
)
(i32.store offset=8
(set_local $3
(i32.store offset=12
(get_local $3)
(get_local $3)
)
)
(get_local $3)
)
(br $label$44)
)
(br_if $label$0
(i32.lt_u
(set_local $0
(i32.load offset=8
(get_local $6)
)
)
(set_local $8
(i32.load offset=2272
(i32.const 0)
)
)
)
)
(br_if $label$0
(i32.lt_u
(get_local $6)
(get_local $8)
)
)
(i32.store offset=8
(set_local $3
(i32.store
(i32.add
(get_local $6)
(i32.const 8)
)
(i32.store offset=12
(get_local $0)
(get_local $3)
)
)
)
(get_local $0)
)
(i32.store offset=12
(get_local $3)
(get_local $6)
)
(i32.store
(i32.add
(get_local $3)
(i32.const 24)
)
(i32.const 0)
)
)
(br_if $label$1
(i32.store offset=2288
(i32.const 0)
(i32.add
(i32.load offset=2288
(i32.const 0)
)
(i32.const -1)
)
)
)
(set_local $3
(i32.const 2712)
)
(loop $label$54 $label$53
(set_local $3
(i32.add
(set_local $0
(i32.load
(get_local $3)
)
)
(i32.const 8)
)
)
(br_if $label$53
(get_local $0)
)
)
(i32.store offset=2288
(i32.const 0)
(i32.const -1)
)
)
(return)
)
(call_import $abort)
(unreachable)
)
(export "free" $free)
(func $__errno_location (result i32)
(local $0 i32)
(set_local $0
(i32.const 2248)
)
(block $label$0
(br_if $label$0
(i32.eqz
(i32.load offset=2204
(i32.const 0)
)
)
)
(set_local $0
(i32.load offset=64
(call_import $pthread_self)
)
)
)
(get_local $0)
)
)
@petamoriken
Copy link
Author

Wast (S-Expression) は sexpr-wasm-prototype で Wasm に変換する。

なお、malloc.wast は Waterfall ビルド 9517 の 27. Compile LLVM Torture (emscripten+wasm backend) の download からテキトーに抜き出して書きなおした。

@petamoriken
Copy link
Author

petamoriken commented Aug 18, 2016

最新ビルドの wast を取ってくる方法

  1. last known good revision から最新の Successful ビルドの番号を得る
  2. https://wasm-stat.us/builders/linux/builds/ の末尾にビルド番号を入れてアクセス
  3. "27. Compile LLVM Torture (emscripten+wasm backend)" を download する

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment