Skip to content

Instantly share code, notes, and snippets.

@YangSeungWon
Last active April 15, 2020 12:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YangSeungWon/5af37d55f65b44e7ddb027f84897956f to your computer and use it in GitHub Desktop.
Save YangSeungWon/5af37d55f65b44e7ddb027f84897956f to your computer and use it in GitHub Desktop.

DEF CON CTF Qualifier 2019 - nodb

tags: wasm

[name=whysw@PLUS]

Attachments

Attachments are uploaded on gist.

If you want to run payload, you need to change var wasmBinaryFile = 'wasm.wasm'; to var wasmBinaryFile = 'wasm_57.wasm' in function integrateWasmJS(), in wasm.js file.

Challenge

When you press the button Submit, the value in the password field goes to _authenticate function of WASM.

Solution

JEB demo

WASM can be decompiled using JEB > v3.0.0. There is many limitations in demo version, but I can find out what _authenticate function does.

So the length of the flag must be 69. And variable v8 increases if v14 is 0. In the end, v8 must be 69 to return success, so v8 contains the information about how many characters are same with the flag.

So we can use brute force to get the flag, if we know v8 for every input.


patch WASM using WAT

wasm2wat

Using wasm2wat in wabt, you can get .WAT file(webassembly text file)

~/tools/wabt/build/wasm2wat wasm.wasm > wasm.wat

patch _authenticate function

_authenticate function is func25. (we can know it through dynamic debugging)

At the end of the _authenticate function, we can see what we analyzed in decompiled source.

        local.get 58
        local.set 49
        local.get 49 // this might be v8
        i32.const 1  // because 1 is added
        i32.add
        local.set 50
        local.get 50
        local.set 58
        br 1 (;@1;)
      end
    end              // at the end of the for loop,
    local.get 57
    local.set 51
    local.get 51
    i32.const 69     // v8 is XORed with 69
    i32.xor
    local.set 52
    local.get 52
    i32.const 0
    i32.ne           // and tested if they are same.
    local.set 53
    local.get 53
    if  ;; label = @1 // if v8 != 69
      i32.const 1245  // return 1245
      local.set 1
      local.get 1
      local.set 54
      local.get 61
      global.set 12
      local.get 54
      return
    else              // if v8 == 69
      i32.const 1237  // return 1237
      local.set 1
      local.get 1
      local.set 54
      local.get 61
      global.set 12
      local.get 54
      return
    end
    unreachable
    i32.const 0
    return)

so we can patch it to return v8 no matter v8 == 69 or not.

    if  ;; label = @1
      local.get 57    // local variable 57 has the value of v8. check above :)
      local.set 1
      local.get 1
      local.set 54
      local.get 61
      global.set 12
      local.get 54
      return
    else
      local.get 57
      local.set 1
      local.get 1
      local.set 54
      local.get 61
      global.set 12
      local.get 54
      return
    end
    unreachable
    i32.const 0
    return)

wat2wasm

Using wat2wasm (also) in wabt, you can get .WASM file again.

~/tools/wabt/build/wat2wasm wasm_57.wat

It generates wasm_57.wasm file.


Brute Force

flag=""
for(i=0; i<69; i++){
  for(j=32; j<128; j++){
    trial = flag + String.fromCharCode(j);
        trial = trial.padEnd(69,'|');
        res = _authenticate(allocate(intArrayFromString(trial),'i8',ALLOC_NORMAL));
        if(res == i+1){
      flag += String.fromCharCode(j);
            break;
    }
  }
}
console.log(flag);

output : OOO{ifthereisnodataontheserverthereisnodatabreachproblemsolvedkthxbb}

<html>
<head>
<script src="wasm.js"></script>
<style>
html, body{margin:0;overflow:hidden;}html{background:black;}li{list-style-type:none;}body{display:flex;align-items:center;justify-content:center;}
/*The sun*/
.midnightHeart{
position: fixed;
top: 0;
z-index:1;
background:orange;
margin-top:10px;
width:15vmax;
height:15vmax;
border-radius:100%;
background:linear-gradient(to bottom, #FFD800, #FFD800, #F59440, #F59440, #EB6380, #AA12D7, #4e0962, rgba(0,0,0,0) 95%);
}
.midnightHeart::after{
content:"";
position:relative;
display:block;
width:100%;
height:100%;
background: repeating-linear-gradient(
to top,
rgba(0,0,0,1),
rgba(0,0,0,1) 3.8%,
rgba(0,0,0,0) 4%,
rgba(0,0,0,0) 17%
);
border-radius:100%;
}
/*the cliffs*/
.midnightCliffs{
position:absolute;
display:block;
width:100%;
height:120px;
top:calc(16vmax - 100px);
z-index:1;
}
.midnightCliffs::after{
content:"";
position:relative;
display:block;
width:100%;
height:100%;
background:linear-gradient(to bottom, rgba(0,0,0,0) 20%, rgba(0,0,0,0.4) 70%, rgba(0,0,0,1) 100%),
linear-gradient(to left, rgba(0,0,0,0) 80%, rgba(0,0,0,1)),
linear-gradient(to right, rgba(0,0,0,0) 80%, rgba(0,0,0,1));
}
.cliff1{
position:absolute;
height:100%;
width:100%;
background: linear-gradient(-45deg, rgb(40, 170, 220) 2.6vmax, transparent 2.7vmax) 1px 0 / 6.2vw 100%,
linear-gradient(60deg, rgb(40, 170, 220) 1.8vmax, transparent 1.9vmax) 0 0 / 6.2vw 100%;
}
.cliff2{
position:absolute;
height:100%;
width:100%;
background: linear-gradient(25deg, rgb(40, 170, 220) 3vmax, transparent 2.7vmax) -31px 0 / 7.3vw 100%,
linear-gradient(-40deg, rgb(40, 170, 220) 2.55vmax, transparent 1.9vmax) -30px 0 / 7.3vw 100%;
}
/*the grid*/
.midnightGrid{
position:absolute;
z-index:-1;
top:16vw;
width:100%;
height:100%;
transform-origin:top center;
overflow-y:hidden;
}
.midnightGrid{
transform:perspective(55vmin) rotateX(77deg);
}
.gridInner{
animation:animatedGrid 20s linear infinite;
}
.midnightGrid::after{
content:"";
background:linear-gradient(to top, rgba(0,0,0,0) 60%, rgba(0,0,0,1) 90%);
display:block;
position:relative;
height:100%;
width:100%;
z-index:9;
}
.grid-x,.grid-y{
width:100vw;
height:100vw;
position:absolute;
bottom:0;
left:0;
background: repeating-linear-gradient(
to top,
rgba(194,44,146,0),
rgba(194,44,146,0) 2.4vmax,
rgba(194,44,146,1) 2.4vmax,
rgba(194,44,146,1) 2.56vmax
);
}
.grid-y{
transform:rotate(90deg);
}
@keyframes animatedGrid {
from {
transform:translateY(80vmin)
}
to {
transform:translateY(130vmin)
}
}
/*the text*/
.text{
position: fixed;
z-index:1;
top: 0;
right: 0;
width:30%;
height:100%;
transform-origin:top center;
overflow-y:hidden;
font-size: 36px !important;
font-weight: bold;
font-family: "Lucida Console", Monaco, monospace;
color: green;
}
input[type=text] {
width: 50%;
padding: 8px 12px;
margin: 8px 0;
box-sizing: border-box;
background: black;
}
input[type=button], input[type=submit], input[type=reset] {
background-color: #4CAF50;
border: none;
color: black;
padding: 12px 18px;
text-decoration: none;
margin: 4px 2px;
cursor: pointer;
font-size: 18px !important;
font-family: "Lucida Console", Monaco, monospace;
}
</style>
<script>
function validateForm() {
str = document.forms["myForm"]["password"].value
ptr = allocate(intArrayFromString(str), 'i8', ALLOC_NORMAL);
ret = UTF8ToString(_authenticate(ptr));
console.log(ret);
if (ret == "success") document.getElementsByClassName("text")[0].innerText = "SUCCESS"
return false;
}
</script>
</head>
<body>
<div class="midnightHeart"></div>
<div class="midnightCliffs">
<div class="cliff1"></div>
<div class="cliff2"></div>
</div>
<div class="midnightGrid">
<div class="gridInner">
<div class="grid-x"></div>
<div class="grid-y"></div>
</div>
</div>
<div class="text">Welcome to the future! <br> The future of no data breaches...<br>
<form name="myForm" action="/" onsubmit="return validateForm()" method="get">
Password: <input type="text" name="password">
<input type="submit" value="Submit">
</form>
</div>
</body>
</html>
// The Module object: Our interface to the outside world. We import
// and export values on it. There are various ways Module can be used:
// 1. Not defined. We create it here
// 2. A function parameter, function(Module) { ..generated code.. }
// 3. pre-run appended it, var Module = {}; ..generated code..
// 4. External script tag defines var Module.
// We need to check if Module already exists (e.g. case 3 above).
// Substitution will be replaced with actual code on later stage of the build,
// this way Closure Compiler will not mangle it (e.g. case 4. above).
// Note that if you want to run closure, and also to use Module
// after the generated code, you will need to define var Module = {};
// before the code. Then that object will be used in the code, and you
// can continue to use Module afterwards as well.
var Module = typeof Module !== 'undefined' ? Module : {};
// --pre-jses are emitted after the Module integration code, so that they can
// refer to Module (if they choose; they can also define Module)
// {{PRE_JSES}}
// Sometimes an existing Module object exists with properties
// meant to overwrite the default module functionality. Here
// we collect those properties and reapply _after_ we configure
// the current environment's defaults to avoid having to be so
// defensive during initialization.
var moduleOverrides = {};
var key;
for (key in Module) {
if (Module.hasOwnProperty(key)) {
moduleOverrides[key] = Module[key];
}
}
Module['arguments'] = [];
Module['thisProgram'] = './this.program';
Module['quit'] = function(status, toThrow) {
throw toThrow;
};
Module['preRun'] = [];
Module['postRun'] = [];
// The environment setup code below is customized to use Module.
// *** Environment setup code ***
var ENVIRONMENT_IS_WEB = false;
var ENVIRONMENT_IS_WORKER = false;
var ENVIRONMENT_IS_NODE = false;
var ENVIRONMENT_IS_SHELL = false;
ENVIRONMENT_IS_WEB = typeof window === 'object';
ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
if (Module['ENVIRONMENT']) {
throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)');
}
// Three configurations we can be running in:
// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)
// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)
// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)
assert(typeof Module['memoryInitializerPrefixURL'] === 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead');
assert(typeof Module['pthreadMainPrefixURL'] === 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead');
assert(typeof Module['cdInitializerPrefixURL'] === 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead');
assert(typeof Module['filePackagePrefixURL'] === 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead');
// `/` should be present at the end if `scriptDirectory` is not empty
var scriptDirectory = '';
function locateFile(path) {
if (Module['locateFile']) {
return Module['locateFile'](path, scriptDirectory);
} else {
return scriptDirectory + path;
}
}
if (ENVIRONMENT_IS_NODE) {
scriptDirectory = __dirname + '/';
// Expose functionality in the same simple way that the shells work
// Note that we pollute the global namespace here, otherwise we break in node
var nodeFS;
var nodePath;
Module['read'] = function shell_read(filename, binary) {
var ret;
if (!nodeFS) nodeFS = require('fs');
if (!nodePath) nodePath = require('path');
filename = nodePath['normalize'](filename);
ret = nodeFS['readFileSync'](filename);
return binary ? ret : ret.toString();
};
Module['readBinary'] = function readBinary(filename) {
var ret = Module['read'](filename, true);
if (!ret.buffer) {
ret = new Uint8Array(ret);
}
assert(ret.buffer);
return ret;
};
if (process['argv'].length > 1) {
Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/');
}
Module['arguments'] = process['argv'].slice(2);
if (typeof module !== 'undefined') {
module['exports'] = Module;
}
process['on']('uncaughtException', function(ex) {
// suppress ExitStatus exceptions from showing an error
if (!(ex instanceof ExitStatus)) {
throw ex;
}
});
// Currently node will swallow unhandled rejections, but this behavior is
// deprecated, and in the future it will exit with error status.
process['on']('unhandledRejection', function(reason, p) {
err('node.js exiting due to unhandled promise rejection');
process['exit'](1);
});
Module['quit'] = function(status) {
process['exit'](status);
};
Module['inspect'] = function () { return '[Emscripten Module object]'; };
} else
if (ENVIRONMENT_IS_SHELL) {
if (typeof read != 'undefined') {
Module['read'] = function shell_read(f) {
return read(f);
};
}
Module['readBinary'] = function readBinary(f) {
var data;
if (typeof readbuffer === 'function') {
return new Uint8Array(readbuffer(f));
}
data = read(f, 'binary');
assert(typeof data === 'object');
return data;
};
if (typeof scriptArgs != 'undefined') {
Module['arguments'] = scriptArgs;
} else if (typeof arguments != 'undefined') {
Module['arguments'] = arguments;
}
if (typeof quit === 'function') {
Module['quit'] = function(status) {
quit(status);
}
}
} else
if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
if (ENVIRONMENT_IS_WEB) {
var currentScript = document.currentScript;
if (currentScript.src.indexOf('blob:') !== 0) {
scriptDirectory = currentScript.src.split('/').slice(0, -1).join('/') + '/';
}
} else if (ENVIRONMENT_IS_WORKER) {
scriptDirectory = self.location.href.split('/').slice(0, -1).join('/') + '/';
}
Module['read'] = function shell_read(url) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.send(null);
return xhr.responseText;
};
if (ENVIRONMENT_IS_WORKER) {
Module['readBinary'] = function readBinary(url) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.responseType = 'arraybuffer';
xhr.send(null);
return new Uint8Array(xhr.response);
};
}
Module['readAsync'] = function readAsync(url, onload, onerror) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function xhr_onload() {
if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
onload(xhr.response);
return;
}
onerror();
};
xhr.onerror = onerror;
xhr.send(null);
};
Module['setWindowTitle'] = function(title) { document.title = title };
} else
{
throw new Error('environment detection error');
}
// Set up the out() and err() hooks, which are how we can print to stdout or
// stderr, respectively.
// If the user provided Module.print or printErr, use that. Otherwise,
// console.log is checked first, as 'print' on the web will open a print dialogue
// printErr is preferable to console.warn (works better in shells)
// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.
var out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));
var err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));
// *** Environment setup code ***
// Merge back in the overrides
for (key in moduleOverrides) {
if (moduleOverrides.hasOwnProperty(key)) {
Module[key] = moduleOverrides[key];
}
}
// Free the object hierarchy contained in the overrides, this lets the GC
// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.
moduleOverrides = undefined;
// {{PREAMBLE_ADDITIONS}}
var STACK_ALIGN = 16;
// stack management, and other functionality that is provided by the compiled code,
// should not be used before it is ready
stackSave = stackRestore = stackAlloc = setTempRet0 = getTempRet0 = function() {
abort('cannot use the stack before compiled code is ready to run, and has provided stack access');
};
function staticAlloc(size) {
assert(!staticSealed);
var ret = STATICTOP;
STATICTOP = (STATICTOP + size + 15) & -16;
assert(STATICTOP < TOTAL_MEMORY, 'not enough memory for static allocation - increase TOTAL_MEMORY');
return ret;
}
function dynamicAlloc(size) {
assert(DYNAMICTOP_PTR);
var ret = HEAP32[DYNAMICTOP_PTR>>2];
var end = (ret + size + 15) & -16;
HEAP32[DYNAMICTOP_PTR>>2] = end;
if (end >= TOTAL_MEMORY) {
var success = enlargeMemory();
if (!success) {
HEAP32[DYNAMICTOP_PTR>>2] = ret;
return 0;
}
}
return ret;
}
function alignMemory(size, factor) {
if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default
var ret = size = Math.ceil(size / factor) * factor;
return ret;
}
function getNativeTypeSize(type) {
switch (type) {
case 'i1': case 'i8': return 1;
case 'i16': return 2;
case 'i32': return 4;
case 'i64': return 8;
case 'float': return 4;
case 'double': return 8;
default: {
if (type[type.length-1] === '*') {
return 4; // A pointer
} else if (type[0] === 'i') {
var bits = parseInt(type.substr(1));
assert(bits % 8 === 0);
return bits / 8;
} else {
return 0;
}
}
}
}
function warnOnce(text) {
if (!warnOnce.shown) warnOnce.shown = {};
if (!warnOnce.shown[text]) {
warnOnce.shown[text] = 1;
err(text);
}
}
var asm2wasmImports = { // special asm2wasm imports
"f64-rem": function(x, y) {
return x % y;
},
"debugger": function() {
debugger;
}
};
var jsCallStartIndex = 1;
var functionPointers = new Array(32);
// 'sig' parameter is only used on LLVM wasm backend
function addFunction(func, sig) {
if (typeof sig === 'undefined') {
err('warning: addFunction(): You should provide a wasm function signature string as a second argument. This is not necessary for asm.js and asm2wasm, but is required for the LLVM wasm backend, so it is recommended for full portability.');
}
var base = 0;
for (var i = base; i < base + 32; i++) {
if (!functionPointers[i]) {
functionPointers[i] = func;
return jsCallStartIndex + i;
}
}
throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
}
function removeFunction(index) {
functionPointers[index-jsCallStartIndex] = null;
}
var funcWrappers = {};
function getFuncWrapper(func, sig) {
if (!func) return; // on null pointer, return undefined
assert(sig);
if (!funcWrappers[sig]) {
funcWrappers[sig] = {};
}
var sigCache = funcWrappers[sig];
if (!sigCache[func]) {
// optimize away arguments usage in common cases
if (sig.length === 1) {
sigCache[func] = function dynCall_wrapper() {
return dynCall(sig, func);
};
} else if (sig.length === 2) {
sigCache[func] = function dynCall_wrapper(arg) {
return dynCall(sig, func, [arg]);
};
} else {
// general case
sigCache[func] = function dynCall_wrapper() {
return dynCall(sig, func, Array.prototype.slice.call(arguments));
};
}
}
return sigCache[func];
}
function makeBigInt(low, high, unsigned) {
return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));
}
function dynCall(sig, ptr, args) {
if (args && args.length) {
assert(args.length == sig.length-1);
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
return Module['dynCall_' + sig].apply(null, [ptr].concat(args));
} else {
assert(sig.length == 1);
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
return Module['dynCall_' + sig].call(null, ptr);
}
}
function getCompilerSetting(name) {
throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work';
}
var Runtime = {
// FIXME backwards compatibility layer for ports. Support some Runtime.*
// for now, fix it there, then remove it from here. That way we
// can minimize any period of breakage.
dynCall: dynCall, // for SDL2 port
// helpful errors
getTempRet0: function() { abort('getTempRet0() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
staticAlloc: function() { abort('staticAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
stackAlloc: function() { abort('stackAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') },
};
// The address globals begin at. Very low in memory, for code size and optimization opportunities.
// Above 0 is static memory, starting with globals.
// Then the stack.
// Then 'dynamic' memory for sbrk.
var GLOBAL_BASE = 1024;
// === Preamble library stuff ===
// Documentation for the public APIs defined in this file must be updated in:
// site/source/docs/api_reference/preamble.js.rst
// A prebuilt local version of the documentation is available at:
// site/build/text/docs/api_reference/preamble.js.txt
// You can also build docs locally as HTML or other formats in site/
// An online HTML version (which may be of a different version of Emscripten)
// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
//========================================
// Runtime essentials
//========================================
var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort()
var EXITSTATUS = 0;
/** @type {function(*, string=)} */
function assert(condition, text) {
if (!condition) {
abort('Assertion failed: ' + text);
}
}
var globalScope = this;
// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
function getCFunc(ident) {
var func = Module['_' + ident]; // closure exported function
assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');
return func;
}
var JSfuncs = {
// Helpers for cwrap -- it can't refer to Runtime directly because it might
// be renamed by closure, instead it calls JSfuncs['stackSave'].body to find
// out what the minified function name is.
'stackSave': function() {
stackSave()
},
'stackRestore': function() {
stackRestore()
},
// type conversion from js to c
'arrayToC' : function(arr) {
var ret = stackAlloc(arr.length);
writeArrayToMemory(arr, ret);
return ret;
},
'stringToC' : function(str) {
var ret = 0;
if (str !== null && str !== undefined && str !== 0) { // null string
// at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
var len = (str.length << 2) + 1;
ret = stackAlloc(len);
stringToUTF8(str, ret, len);
}
return ret;
}
};
// For fast lookup of conversion functions
var toC = {
'string': JSfuncs['stringToC'], 'array': JSfuncs['arrayToC']
};
// C calling interface.
function ccall(ident, returnType, argTypes, args, opts) {
function convertReturnValue(ret) {
if (returnType === 'string') return Pointer_stringify(ret);
if (returnType === 'boolean') return Boolean(ret);
return ret;
}
var func = getCFunc(ident);
var cArgs = [];
var stack = 0;
assert(returnType !== 'array', 'Return type should not be "array".');
if (args) {
for (var i = 0; i < args.length; i++) {
var converter = toC[argTypes[i]];
if (converter) {
if (stack === 0) stack = stackSave();
cArgs[i] = converter(args[i]);
} else {
cArgs[i] = args[i];
}
}
}
var ret = func.apply(null, cArgs);
ret = convertReturnValue(ret);
if (stack !== 0) stackRestore(stack);
return ret;
}
function cwrap(ident, returnType, argTypes, opts) {
return function() {
return ccall(ident, returnType, argTypes, arguments, opts);
}
}
/** @type {function(number, number, string, boolean=)} */
function setValue(ptr, value, type, noSafe) {
type = type || 'i8';
if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
switch(type) {
case 'i1': HEAP8[((ptr)>>0)]=value; break;
case 'i8': HEAP8[((ptr)>>0)]=value; break;
case 'i16': HEAP16[((ptr)>>1)]=value; break;
case 'i32': HEAP32[((ptr)>>2)]=value; break;
case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
case 'float': HEAPF32[((ptr)>>2)]=value; break;
case 'double': HEAPF64[((ptr)>>3)]=value; break;
default: abort('invalid type for setValue: ' + type);
}
}
/** @type {function(number, string, boolean=)} */
function getValue(ptr, type, noSafe) {
type = type || 'i8';
if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
switch(type) {
case 'i1': return HEAP8[((ptr)>>0)];
case 'i8': return HEAP8[((ptr)>>0)];
case 'i16': return HEAP16[((ptr)>>1)];
case 'i32': return HEAP32[((ptr)>>2)];
case 'i64': return HEAP32[((ptr)>>2)];
case 'float': return HEAPF32[((ptr)>>2)];
case 'double': return HEAPF64[((ptr)>>3)];
default: abort('invalid type for getValue: ' + type);
}
return null;
}
var ALLOC_NORMAL = 0; // Tries to use _malloc()
var ALLOC_STACK = 1; // Lives for the duration of the current function call
var ALLOC_STATIC = 2; // Cannot be freed
var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
var ALLOC_NONE = 4; // Do not allocate
// allocate(): This is for internal use. You can use it yourself as well, but the interface
// is a little tricky (see docs right below). The reason is that it is optimized
// for multiple syntaxes to save space in generated code. So you should
// normally not use allocate(), and instead allocate memory using _malloc(),
// initialize it with setValue(), and so forth.
// @slab: An array of data, or a number. If a number, then the size of the block to allocate,
// in *bytes* (note that this is sometimes confusing: the next parameter does not
// affect this!)
// @types: Either an array of types, one for each byte (or 0 if no type at that position),
// or a single type which is used for the entire block. This only matters if there
// is initial data - if @slab is a number, then this does not matter at all and is
// ignored.
// @allocator: How to allocate memory, see ALLOC_*
/** @type {function((TypedArray|Array<number>|number), string, number, number=)} */
function allocate(slab, types, allocator, ptr) {
var zeroinit, size;
if (typeof slab === 'number') {
zeroinit = true;
size = slab;
} else {
zeroinit = false;
size = slab.length;
}
var singleType = typeof types === 'string' ? types : null;
var ret;
if (allocator == ALLOC_NONE) {
ret = ptr;
} else {
ret = [typeof _malloc === 'function' ? _malloc : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
}
if (zeroinit) {
var stop;
ptr = ret;
assert((ret & 3) == 0);
stop = ret + (size & ~3);
for (; ptr < stop; ptr += 4) {
HEAP32[((ptr)>>2)]=0;
}
stop = ret + size;
while (ptr < stop) {
HEAP8[((ptr++)>>0)]=0;
}
return ret;
}
if (singleType === 'i8') {
if (slab.subarray || slab.slice) {
HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);
} else {
HEAPU8.set(new Uint8Array(slab), ret);
}
return ret;
}
var i = 0, type, typeSize, previousType;
while (i < size) {
var curr = slab[i];
type = singleType || types[i];
if (type === 0) {
i++;
continue;
}
assert(type, 'Must know what type to store in allocate!');
if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
setValue(ret+i, curr, type);
// no need to look up size unless type changes, so cache it
if (previousType !== type) {
typeSize = getNativeTypeSize(type);
previousType = type;
}
i += typeSize;
}
return ret;
}
// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready
function getMemory(size) {
if (!staticSealed) return staticAlloc(size);
if (!runtimeInitialized) return dynamicAlloc(size);
return _malloc(size);
}
/** @type {function(number, number=)} */
function Pointer_stringify(ptr, length) {
if (length === 0 || !ptr) return '';
// Find the length, and check for UTF while doing so
var hasUtf = 0;
var t;
var i = 0;
while (1) {
assert(ptr + i < TOTAL_MEMORY);
t = HEAPU8[(((ptr)+(i))>>0)];
hasUtf |= t;
if (t == 0 && !length) break;
i++;
if (length && i == length) break;
}
if (!length) length = i;
var ret = '';
if (hasUtf < 128) {
var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
var curr;
while (length > 0) {
curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
ret = ret ? ret + curr : curr;
ptr += MAX_CHUNK;
length -= MAX_CHUNK;
}
return ret;
}
return UTF8ToString(ptr);
}
// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function AsciiToString(ptr) {
var str = '';
while (1) {
var ch = HEAP8[((ptr++)>>0)];
if (!ch) return str;
str += String.fromCharCode(ch);
}
}
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.
function stringToAscii(str, outPtr) {
return writeAsciiToMemory(str, outPtr, false);
}
// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns
// a copy of that string as a Javascript String object.
var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;
function UTF8ArrayToString(u8Array, idx) {
var endPtr = idx;
// TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.
// Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.
while (u8Array[endPtr]) ++endPtr;
if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {
return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));
} else {
var u0, u1, u2, u3, u4, u5;
var str = '';
while (1) {
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
u0 = u8Array[idx++];
if (!u0) return str;
if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
u1 = u8Array[idx++] & 63;
if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
u2 = u8Array[idx++] & 63;
if ((u0 & 0xF0) == 0xE0) {
u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
} else {
u3 = u8Array[idx++] & 63;
if ((u0 & 0xF8) == 0xF0) {
u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3;
} else {
u4 = u8Array[idx++] & 63;
if ((u0 & 0xFC) == 0xF8) {
u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4;
} else {
u5 = u8Array[idx++] & 63;
u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5;
}
}
}
if (u0 < 0x10000) {
str += String.fromCharCode(u0);
} else {
var ch = u0 - 0x10000;
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
}
}
}
}
// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function UTF8ToString(ptr) {
return UTF8ArrayToString(HEAPU8,ptr);
}
// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',
// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.
// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.
// outIdx: The starting offset in the array to begin the copying.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.
// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.
return 0;
var startIdx = outIdx;
var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
// See http://unicode.org/faq/utf_bom.html#utf16-3
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
var u = str.charCodeAt(i); // possibly a lead surrogate
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
if (u <= 0x7F) {
if (outIdx >= endIdx) break;
outU8Array[outIdx++] = u;
} else if (u <= 0x7FF) {
if (outIdx + 1 >= endIdx) break;
outU8Array[outIdx++] = 0xC0 | (u >> 6);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0xFFFF) {
if (outIdx + 2 >= endIdx) break;
outU8Array[outIdx++] = 0xE0 | (u >> 12);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0x1FFFFF) {
if (outIdx + 3 >= endIdx) break;
outU8Array[outIdx++] = 0xF0 | (u >> 18);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0x3FFFFFF) {
if (outIdx + 4 >= endIdx) break;
outU8Array[outIdx++] = 0xF8 | (u >> 24);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else {
if (outIdx + 5 >= endIdx) break;
outU8Array[outIdx++] = 0xFC | (u >> 30);
outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
}
}
// Null-terminate the pointer to the buffer.
outU8Array[outIdx] = 0;
return outIdx - startIdx;
}
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.
// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8(str, outPtr, maxBytesToWrite) {
assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);
}
// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.
function lengthBytesUTF8(str) {
var len = 0;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var u = str.charCodeAt(i); // possibly a lead surrogate
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
if (u <= 0x7F) {
++len;
} else if (u <= 0x7FF) {
len += 2;
} else if (u <= 0xFFFF) {
len += 3;
} else if (u <= 0x1FFFFF) {
len += 4;
} else if (u <= 0x3FFFFFF) {
len += 5;
} else {
len += 6;
}
}
return len;
}
// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;
function UTF16ToString(ptr) {
assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!');
var endPtr = ptr;
// TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.
// Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.
var idx = endPtr >> 1;
while (HEAP16[idx]) ++idx;
endPtr = idx << 1;
if (endPtr - ptr > 32 && UTF16Decoder) {
return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
} else {
var i = 0;
var str = '';
while (1) {
var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
if (codeUnit == 0) return str;
++i;
// fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
str += String.fromCharCode(codeUnit);
}
}
}
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.
// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outPtr: Byte address in Emscripten HEAP where to write the string to.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.
// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF16(str, outPtr, maxBytesToWrite) {
assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!');
assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
if (maxBytesToWrite === undefined) {
maxBytesToWrite = 0x7FFFFFFF;
}
if (maxBytesToWrite < 2) return 0;
maxBytesToWrite -= 2; // Null terminator.
var startPtr = outPtr;
var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;
for (var i = 0; i < numCharsToWrite; ++i) {
// charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
HEAP16[((outPtr)>>1)]=codeUnit;
outPtr += 2;
}
// Null-terminate the pointer to the HEAP.
HEAP16[((outPtr)>>1)]=0;
return outPtr - startPtr;
}
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
function lengthBytesUTF16(str) {
return str.length*2;
}
function UTF32ToString(ptr) {
assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!');
var i = 0;
var str = '';
while (1) {
var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
if (utf32 == 0)
return str;
++i;
// Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
// See http://unicode.org/faq/utf_bom.html#utf16-3
if (utf32 >= 0x10000) {
var ch = utf32 - 0x10000;
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
} else {
str += String.fromCharCode(utf32);
}
}
}
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.
// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outPtr: Byte address in Emscripten HEAP where to write the string to.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.
// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF32(str, outPtr, maxBytesToWrite) {
assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!');
assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
if (maxBytesToWrite === undefined) {
maxBytesToWrite = 0x7FFFFFFF;
}
if (maxBytesToWrite < 4) return 0;
var startPtr = outPtr;
var endPtr = startPtr + maxBytesToWrite - 4;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
var trailSurrogate = str.charCodeAt(++i);
codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
}
HEAP32[((outPtr)>>2)]=codeUnit;
outPtr += 4;
if (outPtr + 4 > endPtr) break;
}
// Null-terminate the pointer to the HEAP.
HEAP32[((outPtr)>>2)]=0;
return outPtr - startPtr;
}
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
function lengthBytesUTF32(str) {
var len = 0;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var codeUnit = str.charCodeAt(i);
if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.
len += 4;
}
return len;
}
// Allocate heap space for a JS string, and write it there.
// It is the responsibility of the caller to free() that memory.
function allocateUTF8(str) {
var size = lengthBytesUTF8(str) + 1;
var ret = _malloc(size);
if (ret) stringToUTF8Array(str, HEAP8, ret, size);
return ret;
}
// Allocate stack space for a JS string, and write it there.
function allocateUTF8OnStack(str) {
var size = lengthBytesUTF8(str) + 1;
var ret = stackAlloc(size);
stringToUTF8Array(str, HEAP8, ret, size);
return ret;
}
function demangle(func) {
warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling');
return func;
}
function demangleAll(text) {
var regex =
/__Z[\w\d_]+/g;
return text.replace(regex,
function(x) {
var y = demangle(x);
return x === y ? x : (x + ' [' + y + ']');
});
}
function jsStackTrace() {
var err = new Error();
if (!err.stack) {
// IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,
// so try that as a special-case.
try {
throw new Error(0);
} catch(e) {
err = e;
}
if (!err.stack) {
return '(no stack trace available)';
}
}
return err.stack.toString();
}
function stackTrace() {
var js = jsStackTrace();
if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace']();
return demangleAll(js);
}
// Memory management
var PAGE_SIZE = 16384;
var WASM_PAGE_SIZE = 65536;
var ASMJS_PAGE_SIZE = 16777216;
var MIN_TOTAL_MEMORY = 16777216;
function alignUp(x, multiple) {
if (x % multiple > 0) {
x += multiple - (x % multiple);
}
return x;
}
var HEAP,
/** @type {ArrayBuffer} */
buffer,
/** @type {Int8Array} */
HEAP8,
/** @type {Uint8Array} */
HEAPU8,
/** @type {Int16Array} */
HEAP16,
/** @type {Uint16Array} */
HEAPU16,
/** @type {Int32Array} */
HEAP32,
/** @type {Uint32Array} */
HEAPU32,
/** @type {Float32Array} */
HEAPF32,
/** @type {Float64Array} */
HEAPF64;
function updateGlobalBuffer(buf) {
Module['buffer'] = buffer = buf;
}
function updateGlobalBufferViews() {
Module['HEAP8'] = HEAP8 = new Int8Array(buffer);
Module['HEAP16'] = HEAP16 = new Int16Array(buffer);
Module['HEAP32'] = HEAP32 = new Int32Array(buffer);
Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);
Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);
Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);
Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);
Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);
}
var STATIC_BASE, STATICTOP, staticSealed; // static area
var STACK_BASE, STACKTOP, STACK_MAX; // stack area
var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk
STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0;
staticSealed = false;
// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode.
function writeStackCookie() {
assert((STACK_MAX & 3) == 0);
HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467;
HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE;
}
function checkStackCookie() {
if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) {
abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16));
}
// Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own.
if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!';
}
function abortStackOverflow(allocSize) {
abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes available!');
}
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 allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ');
}
function enlargeMemory() {
abortOnCannotGrowMemory();
}
var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
if (TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');
// Initialize the runtime's memory
// check for full engine support (use string 'subarray' to avoid closure compiler confusion)
assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined,
'JS engine does not provide full typed array support');
// Use a provided buffer, if there is one, or else allocate a new one
if (Module['buffer']) {
buffer = Module['buffer'];
assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength);
} else {
// Use a WebAssembly memory where available
if (typeof WebAssembly === 'object' && typeof WebAssembly.Memory === 'function') {
assert(TOTAL_MEMORY % WASM_PAGE_SIZE === 0);
Module['wasmMemory'] = new WebAssembly.Memory({ 'initial': TOTAL_MEMORY / WASM_PAGE_SIZE, 'maximum': TOTAL_MEMORY / WASM_PAGE_SIZE });
buffer = Module['wasmMemory'].buffer;
} else
{
buffer = new ArrayBuffer(TOTAL_MEMORY);
}
assert(buffer.byteLength === TOTAL_MEMORY);
Module['buffer'] = buffer;
}
updateGlobalBufferViews();
function getTotalMemory() {
return TOTAL_MEMORY;
}
// Endianness check (note: assumes compiler arch was little-endian)
HEAP32[0] = 0x63736d65; /* 'emsc' */
HEAP16[1] = 0x6373;
if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!';
function callRuntimeCallbacks(callbacks) {
while(callbacks.length > 0) {
var callback = callbacks.shift();
if (typeof callback == 'function') {
callback();
continue;
}
var func = callback.func;
if (typeof func === 'number') {
if (callback.arg === undefined) {
Module['dynCall_v'](func);
} else {
Module['dynCall_vi'](func, callback.arg);
}
} else {
func(callback.arg === undefined ? null : callback.arg);
}
}
}
var __ATPRERUN__ = []; // functions called before the runtime is initialized
var __ATINIT__ = []; // functions called during startup
var __ATMAIN__ = []; // functions called when main() is to be run
var __ATEXIT__ = []; // functions called during shutdown
var __ATPOSTRUN__ = []; // functions called after the main() is called
var runtimeInitialized = false;
var runtimeExited = false;
function preRun() {
// compatibility - merge in anything from Module['preRun'] at this time
if (Module['preRun']) {
if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
while (Module['preRun'].length) {
addOnPreRun(Module['preRun'].shift());
}
}
callRuntimeCallbacks(__ATPRERUN__);
}
function ensureInitRuntime() {
checkStackCookie();
if (runtimeInitialized) return;
runtimeInitialized = true;
callRuntimeCallbacks(__ATINIT__);
}
function preMain() {
checkStackCookie();
callRuntimeCallbacks(__ATMAIN__);
}
function exitRuntime() {
checkStackCookie();
callRuntimeCallbacks(__ATEXIT__);
runtimeExited = true;
}
function postRun() {
checkStackCookie();
// compatibility - merge in anything from Module['postRun'] at this time
if (Module['postRun']) {
if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
while (Module['postRun'].length) {
addOnPostRun(Module['postRun'].shift());
}
}
callRuntimeCallbacks(__ATPOSTRUN__);
}
function addOnPreRun(cb) {
__ATPRERUN__.unshift(cb);
}
function addOnInit(cb) {
__ATINIT__.unshift(cb);
}
function addOnPreMain(cb) {
__ATMAIN__.unshift(cb);
}
function addOnExit(cb) {
__ATEXIT__.unshift(cb);
}
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb);
}
// Deprecated: This function should not be called because it is unsafe and does not provide
// a maximum length limit of how many bytes it is allowed to write. Prefer calling the
// function stringToUTF8Array() instead, which takes in a maximum length that can be used
// to be secure from out of bounds writes.
/** @deprecated */
function writeStringToMemory(string, buffer, dontAddNull) {
warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');
var /** @type {number} */ lastChar, /** @type {number} */ end;
if (dontAddNull) {
// stringToUTF8Array always appends null. If we don't want to do that, remember the
// character that existed at the location where the null will be placed, and restore
// that after the write (below).
end = buffer + lengthBytesUTF8(string);
lastChar = HEAP8[end];
}
stringToUTF8(string, buffer, Infinity);
if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.
}
function writeArrayToMemory(array, buffer) {
assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)')
HEAP8.set(array, buffer);
}
function writeAsciiToMemory(str, buffer, dontAddNull) {
for (var i = 0; i < str.length; ++i) {
assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff);
HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
}
// Null-terminate the pointer to the HEAP.
if (!dontAddNull) HEAP8[((buffer)>>0)]=0;
}
function unSign(value, bits, ignore) {
if (value >= 0) {
return value;
}
return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
: Math.pow(2, bits) + value;
}
function reSign(value, bits, ignore) {
if (value <= 0) {
return value;
}
var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
: Math.pow(2, bits-1);
if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
// but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
// TODO: In i64 mode 1, resign the two parts separately and safely
value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
}
return value;
}
assert(Math['imul'] && Math['fround'] && Math['clz32'] && Math['trunc'], 'this is a legacy browser, build with LEGACY_VM_SUPPORT');
var Math_abs = Math.abs;
var Math_cos = Math.cos;
var Math_sin = Math.sin;
var Math_tan = Math.tan;
var Math_acos = Math.acos;
var Math_asin = Math.asin;
var Math_atan = Math.atan;
var Math_atan2 = Math.atan2;
var Math_exp = Math.exp;
var Math_log = Math.log;
var Math_sqrt = Math.sqrt;
var Math_ceil = Math.ceil;
var Math_floor = Math.floor;
var Math_pow = Math.pow;
var Math_imul = Math.imul;
var Math_fround = Math.fround;
var Math_round = Math.round;
var Math_min = Math.min;
var Math_max = Math.max;
var Math_clz32 = Math.clz32;
var Math_trunc = Math.trunc;
// A counter of dependencies for calling run(). If we need to
// do asynchronous work before running, increment this and
// decrement it. Incrementing must happen in a place like
// PRE_RUN_ADDITIONS (used by emcc to add file preloading).
// Note that you can add dependencies in preRun, even though
// it happens right before run - run will be postponed until
// the dependencies are met.
var runDependencies = 0;
var runDependencyWatcher = null;
var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled
var runDependencyTracking = {};
function getUniqueRunDependency(id) {
var orig = id;
while (1) {
if (!runDependencyTracking[id]) return id;
id = orig + Math.random();
}
return id;
}
function addRunDependency(id) {
runDependencies++;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
if (id) {
assert(!runDependencyTracking[id]);
runDependencyTracking[id] = 1;
if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {
// Check for missing dependencies every few seconds
runDependencyWatcher = setInterval(function() {
if (ABORT) {
clearInterval(runDependencyWatcher);
runDependencyWatcher = null;
return;
}
var shown = false;
for (var dep in runDependencyTracking) {
if (!shown) {
shown = true;
err('still waiting on run dependencies:');
}
err('dependency: ' + dep);
}
if (shown) {
err('(end of list)');
}
}, 10000);
}
} else {
err('warning: run dependency added without ID');
}
}
function removeRunDependency(id) {
runDependencies--;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
if (id) {
assert(runDependencyTracking[id]);
delete runDependencyTracking[id];
} else {
err('warning: run dependency removed without ID');
}
if (runDependencies == 0) {
if (runDependencyWatcher !== null) {
clearInterval(runDependencyWatcher);
runDependencyWatcher = null;
}
if (dependenciesFulfilled) {
var callback = dependenciesFulfilled;
dependenciesFulfilled = null;
callback(); // can add another dependenciesFulfilled
}
}
}
Module["preloadedImages"] = {}; // maps url to image data
Module["preloadedAudios"] = {}; // maps url to audio data
var memoryInitializer = null;
var /* show errors on likely calls to FS when it was not included */ FS = {
error: function() {
abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1');
},
init: function() { FS.error() },
createDataFile: function() { FS.error() },
createPreloadedFile: function() { FS.error() },
createLazyFile: function() { FS.error() },
open: function() { FS.error() },
mkdev: function() { FS.error() },
registerDevice: function() { FS.error() },
analyzePath: function() { FS.error() },
loadFilesFromDB: function() { FS.error() },
ErrnoError: function ErrnoError() { FS.error() },
};
Module['FS_createDataFile'] = FS.createDataFile;
Module['FS_createPreloadedFile'] = FS.createPreloadedFile;
// Prefix of data URIs emitted by SINGLE_FILE and related options.
var dataURIPrefix = 'data:application/octet-stream;base64,';
// Indicates whether filename is a base64 data URI.
function isDataURI(filename) {
return String.prototype.startsWith ?
filename.startsWith(dataURIPrefix) :
filename.indexOf(dataURIPrefix) === 0;
}
function integrateWasmJS() {
// wasm.js has several methods for creating the compiled code module here:
// * 'native-wasm' : use native WebAssembly support in the browser
// * 'interpret-s-expr': load s-expression code from a .wast and interpret
// * 'interpret-binary': load binary wasm and interpret
// * 'interpret-asm2wasm': load asm.js code, translate to wasm, and interpret
// * 'asmjs': no wasm, just load the asm.js code and use that (good for testing)
// The method is set at compile time (BINARYEN_METHOD)
// The method can be a comma-separated list, in which case, we will try the
// options one by one. Some of them can fail gracefully, and then we can try
// the next.
// inputs
var method = 'native-wasm';
var wasmTextFile = 'wasm.wast';
var wasmBinaryFile = 'wasm.wasm';
var asmjsCodeFile = 'wasm.temp.asm.js';
if (!isDataURI(wasmTextFile)) {
wasmTextFile = locateFile(wasmTextFile);
}
if (!isDataURI(wasmBinaryFile)) {
wasmBinaryFile = locateFile(wasmBinaryFile);
}
if (!isDataURI(asmjsCodeFile)) {
asmjsCodeFile = locateFile(asmjsCodeFile);
}
// utilities
var wasmPageSize = 64*1024;
var info = {
'global': null,
'env': null,
'asm2wasm': asm2wasmImports,
'parent': Module // Module inside wasm-js.cpp refers to wasm-js.cpp; this allows access to the outside program.
};
var exports = null;
function mergeMemory(newBuffer) {
// The wasm instance creates its memory. But static init code might have written to
// buffer already, including the mem init file, and we must copy it over in a proper merge.
// TODO: avoid this copy, by avoiding such static init writes
// TODO: in shorter term, just copy up to the last static init write
var oldBuffer = Module['buffer'];
if (newBuffer.byteLength < oldBuffer.byteLength) {
err('the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here');
}
var oldView = new Int8Array(oldBuffer);
var newView = new Int8Array(newBuffer);
newView.set(oldView);
updateGlobalBuffer(newBuffer);
updateGlobalBufferViews();
}
function fixImports(imports) {
return imports;
}
function getBinary() {
try {
if (Module['wasmBinary']) {
return new Uint8Array(Module['wasmBinary']);
}
if (Module['readBinary']) {
return Module['readBinary'](wasmBinaryFile);
} else {
throw "both async and sync fetching of the wasm failed";
}
}
catch (err) {
abort(err);
}
}
function getBinaryPromise() {
// if we don't have the binary yet, and have the Fetch api, use that
// in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web
if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {
return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {
if (!response['ok']) {
throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
}
return response['arrayBuffer']();
}).catch(function () {
return getBinary();
});
}
// Otherwise, getBinary should be able to get it synchronously
return new Promise(function(resolve, reject) {
resolve(getBinary());
});
}
// do-method functions
function doNativeWasm(global, env, providedBuffer) {
if (typeof WebAssembly !== 'object') {
// when the method is just native-wasm, our error message can be very specific
abort('No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.');
err('no native wasm support detected');
return false;
}
// prepare memory import
if (!(Module['wasmMemory'] instanceof WebAssembly.Memory)) {
err('no native wasm Memory in use');
return false;
}
env['memory'] = Module['wasmMemory'];
// Load the wasm module and create an instance of using native support in the JS engine.
info['global'] = {
'NaN': NaN,
'Infinity': Infinity
};
info['global.Math'] = Math;
info['env'] = env;
// handle a generated wasm instance, receiving its exports and
// performing other necessary setup
function receiveInstance(instance, module) {
exports = instance.exports;
if (exports.memory) mergeMemory(exports.memory);
Module['asm'] = exports;
Module["usingWasm"] = true;
removeRunDependency('wasm-instantiate');
}
addRunDependency('wasm-instantiate');
// User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
// to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel
// to any other async startup actions they are performing.
if (Module['instantiateWasm']) {
try {
return Module['instantiateWasm'](info, receiveInstance);
} catch(e) {
err('Module.instantiateWasm callback failed with error: ' + e);
return false;
}
}
// Async compilation can be confusing when an error on the page overwrites Module
// (for example, if the order of elements is wrong, and the one defining Module is
// later), so we save Module and check it later.
var trueModule = Module;
function receiveInstantiatedSource(output) {
// 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.
// receiveInstance() will swap in the exports (to Module.asm) so they can be called
assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?');
trueModule = null;
receiveInstance(output['instance'], output['module']);
}
function instantiateArrayBuffer(receiver) {
getBinaryPromise().then(function(binary) {
return WebAssembly.instantiate(binary, info);
}).then(receiver).catch(function(reason) {
err('failed to asynchronously prepare wasm: ' + reason);
abort(reason);
});
}
// Prefer streaming instantiation if available.
if (!Module['wasmBinary'] &&
typeof WebAssembly.instantiateStreaming === 'function' &&
!isDataURI(wasmBinaryFile) &&
typeof fetch === 'function') {
WebAssembly.instantiateStreaming(fetch(wasmBinaryFile, { credentials: 'same-origin' }), info)
.then(receiveInstantiatedSource)
.catch(function(reason) {
// We expect the most common failure cause to be a bad MIME type for the binary,
// in which case falling back to ArrayBuffer instantiation should work.
err('wasm streaming compile failed: ' + reason);
err('falling back to ArrayBuffer instantiation');
instantiateArrayBuffer(receiveInstantiatedSource);
});
} else {
instantiateArrayBuffer(receiveInstantiatedSource);
}
return {}; // no exports yet; we'll fill them in later
}
// We may have a preloaded value in Module.asm, save it
Module['asmPreload'] = Module['asm'];
// Memory growth integration code
var asmjsReallocBuffer = Module['reallocBuffer'];
var wasmReallocBuffer = function(size) {
var PAGE_MULTIPLE = Module["usingWasm"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.
size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size
var old = Module['buffer'];
var oldSize = old.byteLength;
if (Module["usingWasm"]) {
// native wasm support
try {
var result = Module['wasmMemory'].grow((size - oldSize) / wasmPageSize); // .grow() takes a delta compared to the previous size
if (result !== (-1 | 0)) {
// success in native wasm memory growth, get the buffer from the memory
return Module['buffer'] = Module['wasmMemory'].buffer;
} else {
return null;
}
} catch(e) {
console.error('Module.reallocBuffer: Attempted to grow from ' + oldSize + ' bytes to ' + size + ' bytes, but got error: ' + e);
return null;
}
}
};
Module['reallocBuffer'] = function(size) {
if (finalMethod === 'asmjs') {
return asmjsReallocBuffer(size);
} else {
return wasmReallocBuffer(size);
}
};
// we may try more than one; this is the final one, that worked and we are using
var finalMethod = '';
// Provide an "asm.js function" for the application, called to "link" the asm.js module. We instantiate
// the wasm module at that time, and it receives imports and provides exports and so forth, the app
// doesn't need to care that it is wasm or olyfilled wasm or asm.js.
Module['asm'] = function(global, env, providedBuffer) {
env = fixImports(env);
// import table
if (!env['table']) {
var TABLE_SIZE = Module['wasmTableSize'];
if (TABLE_SIZE === undefined) TABLE_SIZE = 1024; // works in binaryen interpreter at least
var MAX_TABLE_SIZE = Module['wasmMaxTableSize'];
if (typeof WebAssembly === 'object' && typeof WebAssembly.Table === 'function') {
if (MAX_TABLE_SIZE !== undefined) {
env['table'] = new WebAssembly.Table({ 'initial': TABLE_SIZE, 'maximum': MAX_TABLE_SIZE, 'element': 'anyfunc' });
} else {
env['table'] = new WebAssembly.Table({ 'initial': TABLE_SIZE, element: 'anyfunc' });
}
} else {
env['table'] = new Array(TABLE_SIZE); // works in binaryen interpreter at least
}
Module['wasmTable'] = env['table'];
}
if (!env['memoryBase']) {
env['memoryBase'] = Module['STATIC_BASE']; // tell the memory segments where to place themselves
}
if (!env['tableBase']) {
env['tableBase'] = 0; // table starts at 0 by default, in dynamic linking this will change
}
// try the methods. each should return the exports if it succeeded
var exports;
exports = doNativeWasm(global, env, providedBuffer);
assert(exports, 'no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods');
return exports;
};
var methodHandler = Module['asm']; // note our method handler, as we may modify Module['asm'] later
}
integrateWasmJS();
// === Body ===
var ASM_CONSTS = [];
STATIC_BASE = GLOBAL_BASE;
STATICTOP = STATIC_BASE + 2832;
/* global initializers */ __ATINIT__.push();
var STATIC_BUMP = 2832;
Module["STATIC_BASE"] = STATIC_BASE;
Module["STATIC_BUMP"] = STATIC_BUMP;
/* no memory initializer */
var tempDoublePtr = STATICTOP; STATICTOP += 16;
assert(tempDoublePtr % 8 == 0);
function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
HEAP8[tempDoublePtr] = HEAP8[ptr];
HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
}
function copyTempDouble(ptr) {
HEAP8[tempDoublePtr] = HEAP8[ptr];
HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
}
// {{PRE_LIBRARY}}
function ___lock() {}
var SYSCALLS={varargs:0,get:function (varargs) {
SYSCALLS.varargs += 4;
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
return ret;
},getStr:function () {
var ret = Pointer_stringify(SYSCALLS.get());
return ret;
},get64:function () {
var low = SYSCALLS.get(), high = SYSCALLS.get();
if (low >= 0) assert(high === 0);
else assert(high === -1);
return low;
},getZero:function () {
assert(SYSCALLS.get() === 0);
}};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;
try {
// llseek
var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();
// NOTE: offset_high is unused - Emscripten's off_t is 32-bit
var offset = offset_low;
FS.llseek(stream, offset, whence);
HEAP32[((result)>>2)]=stream.position;
if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function flush_NO_FILESYSTEM() {
// flush anything remaining in the buffers during shutdown
var fflush = Module["_fflush"];
if (fflush) fflush(0);
var printChar = ___syscall146.printChar;
if (!printChar) return;
var buffers = ___syscall146.buffers;
if (buffers[1].length) printChar(1, 10);
if (buffers[2].length) printChar(2, 10);
}function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;
try {
// writev
// hack to support printf in NO_FILESYSTEM
var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();
var ret = 0;
if (!___syscall146.buffers) {
___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr
___syscall146.printChar = function(stream, curr) {
var buffer = ___syscall146.buffers[stream];
assert(buffer);
if (curr === 0 || curr === 10) {
(stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
buffer.length = 0;
} else {
buffer.push(curr);
}
};
}
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
for (var j = 0; j < len; j++) {
___syscall146.printChar(stream, HEAPU8[ptr+j]);
}
ret += len;
}
return ret;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
try {
// ioctl
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;
try {
// close
var stream = SYSCALLS.getStreamFromFD();
FS.close(stream);
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___unlock() {}
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
return dest;
}
function ___setErrNo(value) {
if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
else err('failed to set errno from JS');
return value;
}
function _time(ptr) {
var ret = (Date.now()/1000)|0;
if (ptr) {
HEAP32[((ptr)>>2)]=ret;
}
return ret;
}
DYNAMICTOP_PTR = staticAlloc(4);
STACK_BASE = STACKTOP = alignMemory(STATICTOP);
STACK_MAX = STACK_BASE + TOTAL_STACK;
DYNAMIC_BASE = alignMemory(STACK_MAX);
HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;
staticSealed = true; // seal the static portion of memory
assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
var ASSERTIONS = true;
/** @type {function(string, boolean=, number=)} */
function intArrayFromString(stringy, dontAddNull, length) {
var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;
var u8array = new Array(len);
var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
if (dontAddNull) u8array.length = numBytesWritten;
return u8array;
}
function intArrayToString(array) {
var ret = [];
for (var i = 0; i < array.length; i++) {
var chr = array[i];
if (chr > 0xFF) {
if (ASSERTIONS) {
assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');
}
chr &= 0xFF;
}
ret.push(String.fromCharCode(chr));
}
return ret.join('');
}
function nullFunc_ii(x) { err("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); err("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_iiii(x) { err("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); err("Build with ASSERTIONS=2 for more info.");abort(x) }
Module['wasmTableSize'] = 128;
Module['wasmMaxTableSize'] = 128;
function invoke_ii(index,a1) {
var sp = stackSave();
try {
return Module["dynCall_ii"](index,a1);
} catch(e) {
stackRestore(sp);
if (typeof e !== 'number' && e !== 'longjmp') throw e;
Module["setThrew"](1, 0);
}
}
function jsCall_ii(index,a1) {
return functionPointers[index](a1);
}
function invoke_iiii(index,a1,a2,a3) {
var sp = stackSave();
try {
return Module["dynCall_iiii"](index,a1,a2,a3);
} catch(e) {
stackRestore(sp);
if (typeof e !== 'number' && e !== 'longjmp') throw e;
Module["setThrew"](1, 0);
}
}
function jsCall_iiii(index,a1,a2,a3) {
return functionPointers[index](a1,a2,a3);
}
Module.asmGlobalArg = {};
Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_ii": nullFunc_ii, "nullFunc_iiii": nullFunc_iiii, "invoke_ii": invoke_ii, "jsCall_ii": jsCall_ii, "invoke_iiii": invoke_iiii, "jsCall_iiii": jsCall_iiii, "___lock": ___lock, "___setErrNo": ___setErrNo, "___syscall140": ___syscall140, "___syscall146": ___syscall146, "___syscall54": ___syscall54, "___syscall6": ___syscall6, "___unlock": ___unlock, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_time": _time, "flush_NO_FILESYSTEM": flush_NO_FILESYSTEM, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX };
// EMSCRIPTEN_START_ASM
var asm =Module["asm"]// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg, Module.asmLibraryArg, buffer);
var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real____errno_location.apply(null, arguments);
};
var real__authenticate = asm["_authenticate"]; asm["_authenticate"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__authenticate.apply(null, arguments);
};
var real__fflush = asm["_fflush"]; asm["_fflush"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__fflush.apply(null, arguments);
};
var real__free = asm["_free"]; asm["_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__free.apply(null, arguments);
};
var real__malloc = asm["_malloc"]; asm["_malloc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__malloc.apply(null, arguments);
};
var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__sbrk.apply(null, arguments);
};
var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real_establishStackSpace.apply(null, arguments);
};
var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real_getTempRet0.apply(null, arguments);
};
var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real_setTempRet0.apply(null, arguments);
};
var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real_setThrew.apply(null, arguments);
};
var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real_stackAlloc.apply(null, arguments);
};
var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real_stackRestore.apply(null, arguments);
};
var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real_stackSave.apply(null, arguments);
};
Module["asm"] = asm;
var ___errno_location = Module["___errno_location"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["___errno_location"].apply(null, arguments) };
var _authenticate = Module["_authenticate"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["_authenticate"].apply(null, arguments) };
var _fflush = Module["_fflush"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["_fflush"].apply(null, arguments) };
var _free = Module["_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["_free"].apply(null, arguments) };
var _malloc = Module["_malloc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["_malloc"].apply(null, arguments) };
var _memcpy = Module["_memcpy"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["_memcpy"].apply(null, arguments) };
var _memset = Module["_memset"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["_memset"].apply(null, arguments) };
var _sbrk = Module["_sbrk"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["_sbrk"].apply(null, arguments) };
var establishStackSpace = Module["establishStackSpace"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["establishStackSpace"].apply(null, arguments) };
var getTempRet0 = Module["getTempRet0"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["getTempRet0"].apply(null, arguments) };
var runPostSets = Module["runPostSets"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["runPostSets"].apply(null, arguments) };
var setTempRet0 = Module["setTempRet0"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["setTempRet0"].apply(null, arguments) };
var setThrew = Module["setThrew"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["setThrew"].apply(null, arguments) };
var stackAlloc = Module["stackAlloc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["stackAlloc"].apply(null, arguments) };
var stackRestore = Module["stackRestore"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["stackRestore"].apply(null, arguments) };
var stackSave = Module["stackSave"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["stackSave"].apply(null, arguments) };
var dynCall_ii = Module["dynCall_ii"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["dynCall_ii"].apply(null, arguments) };
var dynCall_iiii = Module["dynCall_iiii"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return Module["asm"]["dynCall_iiii"].apply(null, arguments) };
;
// === Auto-generated postamble setup entry stuff ===
Module['asm'] = asm;
Module["intArrayFromString"] = intArrayFromString;
if (!Module["intArrayToString"]) Module["intArrayToString"] = function() { abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
Module["ccall"] = ccall;
Module["cwrap"] = cwrap;
if (!Module["setValue"]) Module["setValue"] = function() { abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["getValue"]) Module["getValue"] = function() { abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
Module["allocate"] = allocate;
if (!Module["getMemory"]) Module["getMemory"] = function() { abort("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
Module["Pointer_stringify"] = Pointer_stringify;
if (!Module["AsciiToString"]) Module["AsciiToString"] = function() { abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stringToAscii"]) Module["stringToAscii"] = function() { abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["UTF8ArrayToString"]) Module["UTF8ArrayToString"] = function() { abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["UTF8ToString"]) Module["UTF8ToString"] = function() { abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stringToUTF8Array"]) Module["stringToUTF8Array"] = function() { abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stringToUTF8"]) Module["stringToUTF8"] = function() { abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["lengthBytesUTF8"]) Module["lengthBytesUTF8"] = function() { abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["UTF16ToString"]) Module["UTF16ToString"] = function() { abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stringToUTF16"]) Module["stringToUTF16"] = function() { abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["lengthBytesUTF16"]) Module["lengthBytesUTF16"] = function() { abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["UTF32ToString"]) Module["UTF32ToString"] = function() { abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stringToUTF32"]) Module["stringToUTF32"] = function() { abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["lengthBytesUTF32"]) Module["lengthBytesUTF32"] = function() { abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["allocateUTF8"]) Module["allocateUTF8"] = function() { abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stackTrace"]) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["addOnPreRun"]) Module["addOnPreRun"] = function() { abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["addOnInit"]) Module["addOnInit"] = function() { abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["addOnPreMain"]) Module["addOnPreMain"] = function() { abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["addOnExit"]) Module["addOnExit"] = function() { abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["addOnPostRun"]) Module["addOnPostRun"] = function() { abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["writeStringToMemory"]) Module["writeStringToMemory"] = function() { abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["writeArrayToMemory"]) Module["writeArrayToMemory"] = function() { abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["writeAsciiToMemory"]) Module["writeAsciiToMemory"] = function() { abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["addRunDependency"]) Module["addRunDependency"] = function() { abort("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["removeRunDependency"]) Module["removeRunDependency"] = function() { abort("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["ENV"]) Module["ENV"] = function() { abort("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["FS"]) Module["FS"] = function() { abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["FS_createFolder"]) Module["FS_createFolder"] = function() { abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["FS_createPath"]) Module["FS_createPath"] = function() { abort("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["FS_createDataFile"]) Module["FS_createDataFile"] = function() { abort("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["FS_createPreloadedFile"]) Module["FS_createPreloadedFile"] = function() { abort("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["FS_createLazyFile"]) Module["FS_createLazyFile"] = function() { abort("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["FS_createLink"]) Module["FS_createLink"] = function() { abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["FS_createDevice"]) Module["FS_createDevice"] = function() { abort("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["FS_unlink"]) Module["FS_unlink"] = function() { abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") };
if (!Module["GL"]) Module["GL"] = function() { abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["staticAlloc"]) Module["staticAlloc"] = function() { abort("'staticAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["dynamicAlloc"]) Module["dynamicAlloc"] = function() { abort("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["warnOnce"]) Module["warnOnce"] = function() { abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["loadDynamicLibrary"]) Module["loadDynamicLibrary"] = function() { abort("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["loadWebAssemblyModule"]) Module["loadWebAssemblyModule"] = function() { abort("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["getLEB"]) Module["getLEB"] = function() { abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["getFunctionTables"]) Module["getFunctionTables"] = function() { abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["alignFunctionTables"]) Module["alignFunctionTables"] = function() { abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["registerFunctions"]) Module["registerFunctions"] = function() { abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
Module["addFunction"] = addFunction;
if (!Module["removeFunction"]) Module["removeFunction"] = function() { abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["getFuncWrapper"]) Module["getFuncWrapper"] = function() { abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["prettyPrint"]) Module["prettyPrint"] = function() { abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["makeBigInt"]) Module["makeBigInt"] = function() { abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["dynCall"]) Module["dynCall"] = function() { abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["getCompilerSetting"]) Module["getCompilerSetting"] = function() { abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stackSave"]) Module["stackSave"] = function() { abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stackRestore"]) Module["stackRestore"] = function() { abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["stackAlloc"]) Module["stackAlloc"] = function() { abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["establishStackSpace"]) Module["establishStackSpace"] = function() { abort("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["print"]) Module["print"] = function() { abort("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Module["printErr"]) Module["printErr"] = function() { abort("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };Module["ALLOC_NORMAL"] = ALLOC_NORMAL;
if (!Module["ALLOC_STACK"]) Object.defineProperty(Module, "ALLOC_STACK", { get: function() { abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
if (!Module["ALLOC_STATIC"]) Object.defineProperty(Module, "ALLOC_STATIC", { get: function() { abort("'ALLOC_STATIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
if (!Module["ALLOC_DYNAMIC"]) Object.defineProperty(Module, "ALLOC_DYNAMIC", { get: function() { abort("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
if (!Module["ALLOC_NONE"]) Object.defineProperty(Module, "ALLOC_NONE", { get: function() { abort("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } });
/**
* @constructor
* @extends {Error}
* @this {ExitStatus}
*/
function ExitStatus(status) {
this.name = "ExitStatus";
this.message = "Program terminated with exit(" + status + ")";
this.status = status;
};
ExitStatus.prototype = new Error();
ExitStatus.prototype.constructor = ExitStatus;
var initialStackTop;
var calledMain = false;
dependenciesFulfilled = function runCaller() {
// If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
if (!Module['calledRun']) run();
if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
}
/** @type {function(Array=)} */
function run(args) {
args = args || Module['arguments'];
if (runDependencies > 0) {
return;
}
writeStackCookie();
preRun();
if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
function onRuntimeInitialized() {
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)^c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))/2;
if (ret==c[0].charCodeAt(0)) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)-c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))%c[1].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)^c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))/2;
if (ret==c[0].charCodeAt(0)) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)-c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))%c[1].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = !(c[1].charCodeAt(0)===c[0].charCodeAt(0));
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)^c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))/2;
if (ret==c[0].charCodeAt(0)) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)-c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))%c[1].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = !(c[1].charCodeAt(0)===c[0].charCodeAt(0));
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)^c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))/2;
if (ret==c[0].charCodeAt(0)) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)-c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))%c[1].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = !(c[1].charCodeAt(0)===c[0].charCodeAt(0));
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)^c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))/2;
if (ret==c[0].charCodeAt(0)) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)-c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))%c[1].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = !(c[1].charCodeAt(0)===c[0].charCodeAt(0));
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)^c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))/2;
if (ret==c[0].charCodeAt(0)) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)-c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))%c[1].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = !(c[1].charCodeAt(0)===c[0].charCodeAt(0));
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = c[1].charCodeAt(0)^c[0].charCodeAt(0);
if (ret==0) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
var fnPtr = Module.addFunction(function (c) {
c = UTF8ToString(c);
ret = (c[1].charCodeAt(0)+c[0].charCodeAt(0))/2;
if (ret==c[0].charCodeAt(0)) ret ="true"
else ret="false"
ptr = allocate(intArrayFromString(ret), 'i8', ALLOC_NORMAL);
return ptr;
}, 'ii');
}
function doRun() {
if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
Module['calledRun'] = true;
if (ABORT) return;
ensureInitRuntime();
preMain();
if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');
postRun();
onRuntimeInitialized();
}
if (Module['setStatus']) {
Module['setStatus']('Running...');
setTimeout(function() {
setTimeout(function() {
Module['setStatus']('');
}, 1);
doRun();
}, 1);
} else {
doRun();
}
checkStackCookie();
}
Module['run'] = run;
function checkUnflushedContent() {
// Compiler settings do not allow exiting the runtime, so flushing
// the streams is not possible. but in ASSERTIONS mode we check
// if there was something to flush, and if so tell the user they
// should request that the runtime be exitable.
// Normally we would not even include flush() at all, but in ASSERTIONS
// builds we do so just for this check, and here we see if there is any
// content to flush, that is, we check if there would have been
// something a non-ASSERTIONS build would have not seen.
// How we flush the streams depends on whether we are in NO_FILESYSTEM
// mode (which has its own special function for this; otherwise, all
// the code is inside libc)
var print = out;
var printErr = err;
var has = false;
out = err = function(x) {
has = true;
}
try { // it doesn't matter if it fails
var flush = flush_NO_FILESYSTEM;
if (flush) flush(0);
} catch(e) {}
out = print;
err = printErr;
if (has) {
warnOnce('stdio streams had content in them that was not flushed. you should set NO_EXIT_RUNTIME to 0 (see the FAQ), or make sure to emit a newline when you printf etc.');
}
}
function exit(status, implicit) {
checkUnflushedContent();
// if this is just main exit-ing implicitly, and the status is 0, then we
// don't need to do anything here and can just leave. if the status is
// non-zero, though, then we need to report it.
// (we may have warned about this earlier, if a situation justifies doing so)
if (implicit && Module['noExitRuntime'] && status === 0) {
return;
}
if (Module['noExitRuntime']) {
// if exit() was called, we may warn the user if the runtime isn't actually being shut down
if (!implicit) {
err('exit(' + status + ') called, but NO_EXIT_RUNTIME is set, so halting execution but not exiting the runtime or preventing further async execution (build with NO_EXIT_RUNTIME=0, if you want a true shutdown)');
}
} else {
ABORT = true;
EXITSTATUS = status;
STACKTOP = initialStackTop;
exitRuntime();
if (Module['onExit']) Module['onExit'](status);
}
Module['quit'](status, new ExitStatus(status));
}
var abortDecorators = [];
function abort(what) {
if (Module['onAbort']) {
Module['onAbort'](what);
}
if (what !== undefined) {
out(what);
err(what);
what = JSON.stringify(what)
} else {
what = '';
}
ABORT = true;
EXITSTATUS = 1;
var extra = '';
var output = 'abort(' + what + ') at ' + stackTrace() + extra;
if (abortDecorators) {
abortDecorators.forEach(function(decorator) {
output = decorator(output, what);
});
}
throw output;
}
Module['abort'] = abort;
// {{PRE_RUN_ADDITIONS}}
if (Module['preInit']) {
if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
while (Module['preInit'].length > 0) {
Module['preInit'].pop()();
}
}
Module["noExitRuntime"] = true;
run();
// {{POST_RUN_ADDITIONS}}
// {{MODULE_ADDITIONS}}
(module
(type (;0;) (func (param i32) (result i32)))
(type (;1;) (func (param i32 i32 i32) (result i32)))
(type (;2;) (func (result i32)))
(type (;3;) (func (param i32)))
(type (;4;) (func (param i32 i32) (result i32)))
(type (;5;) (func (param i32 i32 i32 i32) (result i32)))
(type (;6;) (func (param i32 i32)))
(type (;7;) (func))
(import "env" "memory" (memory (;0;) 256 256))
(import "env" "table" (table (;0;) 128 funcref))
(import "env" "memoryBase" (global (;0;) i32))
(import "env" "tableBase" (global (;1;) i32))
(import "env" "DYNAMICTOP_PTR" (global (;2;) i32))
(import "env" "tempDoublePtr" (global (;3;) i32))
(import "env" "ABORT" (global (;4;) i32))
(import "env" "STACKTOP" (global (;5;) i32))
(import "env" "STACK_MAX" (global (;6;) i32))
(import "global" "NaN" (global (;7;) f64))
(import "global" "Infinity" (global (;8;) f64))
(import "env" "enlargeMemory" (func (;0;) (type 2)))
(import "env" "getTotalMemory" (func (;1;) (type 2)))
(import "env" "abortOnCannotGrowMemory" (func (;2;) (type 2)))
(import "env" "abortStackOverflow" (func (;3;) (type 3)))
(import "env" "nullFunc_ii" (func (;4;) (type 3)))
(import "env" "nullFunc_iiii" (func (;5;) (type 3)))
(import "env" "jsCall_ii" (func (;6;) (type 4)))
(import "env" "jsCall_iiii" (func (;7;) (type 5)))
(import "env" "___lock" (func (;8;) (type 3)))
(import "env" "___setErrNo" (func (;9;) (type 3)))
(import "env" "___syscall140" (func (;10;) (type 4)))
(import "env" "___syscall146" (func (;11;) (type 4)))
(import "env" "___syscall54" (func (;12;) (type 4)))
(import "env" "___syscall6" (func (;13;) (type 4)))
(import "env" "___unlock" (func (;14;) (type 3)))
(import "env" "_emscripten_memcpy_big" (func (;15;) (type 1)))
(import "env" "_time" (func (;16;) (type 0)))
(func (;17;) (type 0) (param i32) (result i32)
(local i32)
global.get 12
local.set 1
global.get 12
local.get 0
i32.add
global.set 12
global.get 12
i32.const 15
i32.add
i32.const -16
i32.and
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
local.get 0
call 3
end
local.get 1
return)
(func (;18;) (type 2) (result i32)
global.get 12
return)
(func (;19;) (type 3) (param i32)
local.get 0
global.set 12)
(func (;20;) (type 6) (param i32 i32)
local.get 0
global.set 12
local.get 1
global.set 13)
(func (;21;) (type 6) (param i32 i32)
global.get 14
i32.const 0
i32.eq
if ;; label = @1
local.get 0
global.set 14
local.get 1
global.set 15
end)
(func (;22;) (type 3) (param i32)
local.get 0
global.set 25)
(func (;23;) (type 2) (result i32)
global.get 25
return)
(func (;24;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 10
global.get 12
i32.const 80
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 80
call 3
end
local.get 10
local.set 2
local.get 0
local.set 1
local.get 2
i32.const 1024
i64.load
i64.store
local.get 2
i32.const 8
i32.add
i32.const 1024
i32.const 8
i32.add
i64.load
i64.store
local.get 2
i32.const 16
i32.add
i32.const 1024
i32.const 16
i32.add
i64.load
i64.store
local.get 2
i32.const 24
i32.add
i32.const 1024
i32.const 24
i32.add
i64.load
i64.store
local.get 2
i32.const 32
i32.add
i32.const 1024
i32.const 32
i32.add
i64.load
i64.store
local.get 2
i32.const 40
i32.add
i32.const 1024
i32.const 40
i32.add
i64.load
i64.store
local.get 2
i32.const 48
i32.add
i32.const 1024
i32.const 48
i32.add
i64.load
i64.store
local.get 2
i32.const 56
i32.add
i32.const 1024
i32.const 56
i32.add
i64.load
i64.store
local.get 2
i32.const 64
i32.add
i32.const 1024
i32.const 64
i32.add
i32.load
i32.store
local.get 2
i32.const 68
i32.add
i32.const 1024
i32.const 68
i32.add
i32.load8_s
i32.store8
local.get 1
local.set 3
local.get 2
local.get 3
i32.add
local.set 4
local.get 4
i32.load8_s
local.set 5
local.get 5
i32.const 24
i32.shl
i32.const 24
i32.shr_s
local.set 6
local.get 6
i32.const 66
i32.sub
local.set 7
local.get 7
i32.const 255
i32.and
local.set 8
local.get 10
global.set 12
local.get 8
return)
(func (;25;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 61
global.get 12
i32.const 48
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 48
call 3
end
local.get 61
i32.const 33
i32.add
local.set 34
local.get 61
i32.const 28
i32.add
local.set 45
local.get 0
local.set 12
local.get 45
i32.const 1232
i32.load align=1
i32.store align=1
local.get 45
i32.const 4
i32.add
i32.const 1232
i32.const 4
i32.add
i32.load8_s
i32.store8
local.get 12
local.set 2
local.get 2
call 38
local.set 3
local.get 3
local.set 55
i32.const 1
local.set 56
i32.const 0
local.set 57
i32.const 0
call 16
local.set 4
local.get 4
call 45
local.get 34
i32.const 2
i32.add
local.set 5
local.get 5
i32.const 0
i32.store8
local.get 55
local.set 6
local.get 6
i32.const 69
i32.xor
local.set 7
local.get 7
i32.const 0
i32.ne
local.set 8
local.get 8
if ;; label = @1
i32.const 0
local.set 1
local.get 1
local.set 54
local.get 61
global.set 12
local.get 54
return
end
i32.const 0
local.set 58
loop ;; label = @1
block ;; label = @2
local.get 58
local.set 9
local.get 55
local.set 10
local.get 9
local.get 10
i32.lt_s
local.set 11
local.get 11
i32.const 1
i32.and
local.set 13
local.get 58
local.set 14
local.get 55
local.set 15
local.get 14
local.get 15
i32.lt_s
local.set 16
local.get 16
i32.const 1
i32.xor
local.set 17
local.get 17
i32.const 1
i32.xor
local.set 18
local.get 18
i32.const 1
i32.and
local.set 19
local.get 13
local.get 19
i32.and
local.set 20
local.get 20
i32.const 0
i32.ne
local.set 21
local.get 21
i32.eqz
if ;; label = @3
br 1 (;@2;)
end
local.get 12
local.set 22
local.get 58
local.set 24
local.get 22
local.get 24
i32.add
local.set 25
local.get 34
local.get 25
i32.const 2
call 43
drop
local.get 12
local.set 26
local.get 58
local.set 27
local.get 26
local.get 27
i32.add
local.set 28
local.get 28
i32.load8_s
local.set 29
local.get 34
local.get 29
i32.store8
local.get 58
local.set 30
local.get 30
call 24
local.set 31
local.get 34
i32.const 1
i32.add
local.set 32
local.get 32
local.get 31
i32.store8
local.get 56
local.set 33
local.get 33
local.set 35
local.get 34
local.get 35
i32.const 63
i32.and
i32.const 0
i32.add
call_indirect (type 0)
local.set 36
local.get 36
local.set 23
call 46
local.set 37
local.get 37
i32.const 31
i32.rem_s
i32.const -1
i32.and
local.set 38
local.get 38
local.set 56
local.get 56
local.set 39
local.get 39
i32.const 0
i32.xor
local.set 40
local.get 40
i32.const 0
i32.ne
local.set 41
local.get 41
if (result i32) ;; label = @3
local.get 38
else
i32.const 1
end
local.set 59
local.get 59
local.set 56
local.get 23
local.set 42
local.get 42
local.get 45
call 35
local.set 43
local.get 43
i32.const 0
i32.xor
local.set 44
local.get 44
i32.const 0
i32.ne
local.set 46
local.get 46
i32.eqz
if ;; label = @3
local.get 57
local.set 47
local.get 47
i32.const 1
i32.add
local.set 48
local.get 48
local.set 57
end
local.get 58
local.set 49
local.get 49
i32.const 1
i32.add
local.set 50
local.get 50
local.set 58
br 1 (;@1;)
end
end
local.get 57
local.set 51
local.get 51
i32.const 69
i32.xor
local.set 52
local.get 52
i32.const 0
i32.ne
local.set 53
local.get 53
if ;; label = @1
i32.const 1245
local.set 1
local.get 1
local.set 54
local.get 61
global.set 12
local.get 54
return
else
i32.const 1237
local.set 1
local.get 1
local.set 54
local.get 61
global.set 12
local.get 54
return
end
unreachable
i32.const 0
return)
(func (;26;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 1096
global.get 12
i32.const 16
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 16
call 3
end
local.get 1096
local.set 92
local.get 0
i32.const 245
i32.lt_u
local.set 203
block ;; label = @1
local.get 203
if ;; label = @2
local.get 0
i32.const 11
i32.lt_u
local.set 314
local.get 0
i32.const 11
i32.add
local.set 425
local.get 425
i32.const -8
i32.and
local.set 536
local.get 314
if (result i32) ;; label = @3
i32.const 16
else
local.get 536
end
local.set 647
local.get 647
i32.const 3
i32.shr_u
local.set 758
i32.const 2312
i32.load
local.set 869
local.get 869
local.get 758
i32.shr_u
local.set 980
local.get 980
i32.const 3
i32.and
local.set 93
local.get 93
i32.const 0
i32.eq
local.set 104
local.get 104
i32.eqz
if ;; label = @3
local.get 980
i32.const 1
i32.and
local.set 115
local.get 115
i32.const 1
i32.xor
local.set 126
local.get 126
local.get 758
i32.add
local.set 137
local.get 137
i32.const 1
i32.shl
local.set 148
i32.const 2352
local.get 148
i32.const 2
i32.shl
i32.add
local.set 159
local.get 159
i32.const 8
i32.add
local.set 170
local.get 170
i32.load
local.set 181
local.get 181
i32.const 8
i32.add
local.set 192
local.get 192
i32.load
local.set 204
local.get 204
local.get 159
i32.eq
local.set 215
local.get 215
if ;; label = @4
i32.const 1
local.get 137
i32.shl
local.set 226
local.get 226
i32.const -1
i32.xor
local.set 237
local.get 869
local.get 237
i32.and
local.set 248
i32.const 2312
local.get 248
i32.store
else
local.get 204
i32.const 12
i32.add
local.set 259
local.get 259
local.get 159
i32.store
local.get 170
local.get 204
i32.store
end
local.get 137
i32.const 3
i32.shl
local.set 270
local.get 270
i32.const 3
i32.or
local.set 281
local.get 181
i32.const 4
i32.add
local.set 292
local.get 292
local.get 281
i32.store
local.get 181
local.get 270
i32.add
local.set 303
local.get 303
i32.const 4
i32.add
local.set 315
local.get 315
i32.load
local.set 326
local.get 326
i32.const 1
i32.or
local.set 337
local.get 315
local.get 337
i32.store
local.get 192
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2320
i32.load
local.set 348
local.get 647
local.get 348
i32.gt_u
local.set 359
local.get 359
if ;; label = @3
local.get 980
i32.const 0
i32.eq
local.set 370
local.get 370
i32.eqz
if ;; label = @4
local.get 980
local.get 758
i32.shl
local.set 381
i32.const 2
local.get 758
i32.shl
local.set 392
i32.const 0
local.get 392
i32.sub
local.set 403
local.get 392
local.get 403
i32.or
local.set 414
local.get 381
local.get 414
i32.and
local.set 426
i32.const 0
local.get 426
i32.sub
local.set 437
local.get 426
local.get 437
i32.and
local.set 448
local.get 448
i32.const -1
i32.add
local.set 459
local.get 459
i32.const 12
i32.shr_u
local.set 470
local.get 470
i32.const 16
i32.and
local.set 481
local.get 459
local.get 481
i32.shr_u
local.set 492
local.get 492
i32.const 5
i32.shr_u
local.set 503
local.get 503
i32.const 8
i32.and
local.set 514
local.get 514
local.get 481
i32.or
local.set 525
local.get 492
local.get 514
i32.shr_u
local.set 537
local.get 537
i32.const 2
i32.shr_u
local.set 548
local.get 548
i32.const 4
i32.and
local.set 559
local.get 525
local.get 559
i32.or
local.set 570
local.get 537
local.get 559
i32.shr_u
local.set 581
local.get 581
i32.const 1
i32.shr_u
local.set 592
local.get 592
i32.const 2
i32.and
local.set 603
local.get 570
local.get 603
i32.or
local.set 614
local.get 581
local.get 603
i32.shr_u
local.set 625
local.get 625
i32.const 1
i32.shr_u
local.set 636
local.get 636
i32.const 1
i32.and
local.set 648
local.get 614
local.get 648
i32.or
local.set 659
local.get 625
local.get 648
i32.shr_u
local.set 670
local.get 659
local.get 670
i32.add
local.set 681
local.get 681
i32.const 1
i32.shl
local.set 692
i32.const 2352
local.get 692
i32.const 2
i32.shl
i32.add
local.set 703
local.get 703
i32.const 8
i32.add
local.set 714
local.get 714
i32.load
local.set 725
local.get 725
i32.const 8
i32.add
local.set 736
local.get 736
i32.load
local.set 747
local.get 747
local.get 703
i32.eq
local.set 759
local.get 759
if ;; label = @5
i32.const 1
local.get 681
i32.shl
local.set 770
local.get 770
i32.const -1
i32.xor
local.set 781
local.get 869
local.get 781
i32.and
local.set 792
i32.const 2312
local.get 792
i32.store
local.get 792
local.set 981
else
local.get 747
i32.const 12
i32.add
local.set 803
local.get 803
local.get 703
i32.store
local.get 714
local.get 747
i32.store
local.get 869
local.set 981
end
local.get 681
i32.const 3
i32.shl
local.set 814
local.get 814
local.get 647
i32.sub
local.set 825
local.get 647
i32.const 3
i32.or
local.set 836
local.get 725
i32.const 4
i32.add
local.set 847
local.get 847
local.get 836
i32.store
local.get 725
local.get 647
i32.add
local.set 858
local.get 825
i32.const 1
i32.or
local.set 870
local.get 858
i32.const 4
i32.add
local.set 881
local.get 881
local.get 870
i32.store
local.get 725
local.get 814
i32.add
local.set 892
local.get 892
local.get 825
i32.store
local.get 348
i32.const 0
i32.eq
local.set 903
local.get 903
i32.eqz
if ;; label = @5
i32.const 2332
i32.load
local.set 914
local.get 348
i32.const 3
i32.shr_u
local.set 925
local.get 925
i32.const 1
i32.shl
local.set 936
i32.const 2352
local.get 936
i32.const 2
i32.shl
i32.add
local.set 947
i32.const 1
local.get 925
i32.shl
local.set 958
local.get 981
local.get 958
i32.and
local.set 969
local.get 969
i32.const 0
i32.eq
local.set 992
local.get 992
if ;; label = @6
local.get 981
local.get 958
i32.or
local.set 1003
i32.const 2312
local.get 1003
i32.store
local.get 947
i32.const 8
i32.add
local.set 78
local.get 947
local.set 10
local.get 78
local.set 88
else
local.get 947
i32.const 8
i32.add
local.set 1014
local.get 1014
i32.load
local.set 1025
local.get 1025
local.set 10
local.get 1014
local.set 88
end
local.get 88
local.get 914
i32.store
local.get 10
i32.const 12
i32.add
local.set 1036
local.get 1036
local.get 914
i32.store
local.get 914
i32.const 8
i32.add
local.set 1047
local.get 1047
local.get 10
i32.store
local.get 914
i32.const 12
i32.add
local.set 1058
local.get 1058
local.get 947
i32.store
end
i32.const 2320
local.get 825
i32.store
i32.const 2332
local.get 858
i32.store
local.get 736
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2316
i32.load
local.set 1069
local.get 1069
i32.const 0
i32.eq
local.set 1070
local.get 1070
if ;; label = @4
local.get 647
local.set 9
else
i32.const 0
local.get 1069
i32.sub
local.set 94
local.get 1069
local.get 94
i32.and
local.set 95
local.get 95
i32.const -1
i32.add
local.set 96
local.get 96
i32.const 12
i32.shr_u
local.set 97
local.get 97
i32.const 16
i32.and
local.set 98
local.get 96
local.get 98
i32.shr_u
local.set 99
local.get 99
i32.const 5
i32.shr_u
local.set 100
local.get 100
i32.const 8
i32.and
local.set 101
local.get 101
local.get 98
i32.or
local.set 102
local.get 99
local.get 101
i32.shr_u
local.set 103
local.get 103
i32.const 2
i32.shr_u
local.set 105
local.get 105
i32.const 4
i32.and
local.set 106
local.get 102
local.get 106
i32.or
local.set 107
local.get 103
local.get 106
i32.shr_u
local.set 108
local.get 108
i32.const 1
i32.shr_u
local.set 109
local.get 109
i32.const 2
i32.and
local.set 110
local.get 107
local.get 110
i32.or
local.set 111
local.get 108
local.get 110
i32.shr_u
local.set 112
local.get 112
i32.const 1
i32.shr_u
local.set 113
local.get 113
i32.const 1
i32.and
local.set 114
local.get 111
local.get 114
i32.or
local.set 116
local.get 112
local.get 114
i32.shr_u
local.set 117
local.get 116
local.get 117
i32.add
local.set 118
i32.const 2616
local.get 118
i32.const 2
i32.shl
i32.add
local.set 119
local.get 119
i32.load
local.set 120
local.get 120
i32.const 4
i32.add
local.set 121
local.get 121
i32.load
local.set 122
local.get 122
i32.const -8
i32.and
local.set 123
local.get 123
local.get 647
i32.sub
local.set 124
local.get 120
local.set 6
local.get 120
local.set 7
local.get 124
local.set 8
loop ;; label = @5
block ;; label = @6
local.get 6
i32.const 16
i32.add
local.set 125
local.get 125
i32.load
local.set 127
local.get 127
i32.const 0
i32.eq
local.set 128
local.get 128
if ;; label = @7
local.get 6
i32.const 20
i32.add
local.set 129
local.get 129
i32.load
local.set 130
local.get 130
i32.const 0
i32.eq
local.set 131
local.get 131
if ;; label = @8
br 2 (;@6;)
else
local.get 130
local.set 133
end
else
local.get 127
local.set 133
end
local.get 133
i32.const 4
i32.add
local.set 132
local.get 132
i32.load
local.set 134
local.get 134
i32.const -8
i32.and
local.set 135
local.get 135
local.get 647
i32.sub
local.set 136
local.get 136
local.get 8
i32.lt_u
local.set 138
local.get 138
if (result i32) ;; label = @7
local.get 136
else
local.get 8
end
local.set 1088
local.get 138
if (result i32) ;; label = @7
local.get 133
else
local.get 7
end
local.set 1090
local.get 133
local.set 6
local.get 1090
local.set 7
local.get 1088
local.set 8
br 1 (;@5;)
end
end
local.get 7
local.get 647
i32.add
local.set 139
local.get 139
local.get 7
i32.gt_u
local.set 140
local.get 140
if ;; label = @5
local.get 7
i32.const 24
i32.add
local.set 141
local.get 141
i32.load
local.set 142
local.get 7
i32.const 12
i32.add
local.set 143
local.get 143
i32.load
local.set 144
local.get 144
local.get 7
i32.eq
local.set 145
block ;; label = @6
local.get 145
if ;; label = @7
local.get 7
i32.const 20
i32.add
local.set 151
local.get 151
i32.load
local.set 152
local.get 152
i32.const 0
i32.eq
local.set 153
local.get 153
if ;; label = @8
local.get 7
i32.const 16
i32.add
local.set 154
local.get 154
i32.load
local.set 155
local.get 155
i32.const 0
i32.eq
local.set 156
local.get 156
if ;; label = @9
i32.const 0
local.set 60
br 3 (;@6;)
else
local.get 155
local.set 36
local.get 154
local.set 39
end
else
local.get 152
local.set 36
local.get 151
local.set 39
end
local.get 36
local.set 34
local.get 39
local.set 37
loop ;; label = @8
block ;; label = @9
local.get 34
i32.const 20
i32.add
local.set 157
local.get 157
i32.load
local.set 158
local.get 158
i32.const 0
i32.eq
local.set 160
local.get 160
if ;; label = @10
local.get 34
i32.const 16
i32.add
local.set 161
local.get 161
i32.load
local.set 162
local.get 162
i32.const 0
i32.eq
local.set 163
local.get 163
if ;; label = @11
br 2 (;@9;)
else
local.get 162
local.set 35
local.get 161
local.set 38
end
else
local.get 158
local.set 35
local.get 157
local.set 38
end
local.get 35
local.set 34
local.get 38
local.set 37
br 1 (;@8;)
end
end
local.get 37
i32.const 0
i32.store
local.get 34
local.set 60
else
local.get 7
i32.const 8
i32.add
local.set 146
local.get 146
i32.load
local.set 147
local.get 147
i32.const 12
i32.add
local.set 149
local.get 149
local.get 144
i32.store
local.get 144
i32.const 8
i32.add
local.set 150
local.get 150
local.get 147
i32.store
local.get 144
local.set 60
end
end
local.get 142
i32.const 0
i32.eq
local.set 164
block ;; label = @6
local.get 164
i32.eqz
if ;; label = @7
local.get 7
i32.const 28
i32.add
local.set 165
local.get 165
i32.load
local.set 166
i32.const 2616
local.get 166
i32.const 2
i32.shl
i32.add
local.set 167
local.get 167
i32.load
local.set 168
local.get 7
local.get 168
i32.eq
local.set 169
local.get 169
if ;; label = @8
local.get 167
local.get 60
i32.store
local.get 60
i32.const 0
i32.eq
local.set 1071
local.get 1071
if ;; label = @9
i32.const 1
local.get 166
i32.shl
local.set 171
local.get 171
i32.const -1
i32.xor
local.set 172
local.get 1069
local.get 172
i32.and
local.set 173
i32.const 2316
local.get 173
i32.store
br 3 (;@6;)
end
else
local.get 142
i32.const 16
i32.add
local.set 174
local.get 174
i32.load
local.set 175
local.get 175
local.get 7
i32.eq
local.set 176
local.get 142
i32.const 20
i32.add
local.set 177
local.get 176
if (result i32) ;; label = @9
local.get 174
else
local.get 177
end
local.set 89
local.get 89
local.get 60
i32.store
local.get 60
i32.const 0
i32.eq
local.set 178
local.get 178
if ;; label = @9
br 3 (;@6;)
end
end
local.get 60
i32.const 24
i32.add
local.set 179
local.get 179
local.get 142
i32.store
local.get 7
i32.const 16
i32.add
local.set 180
local.get 180
i32.load
local.set 182
local.get 182
i32.const 0
i32.eq
local.set 183
local.get 183
i32.eqz
if ;; label = @8
local.get 60
i32.const 16
i32.add
local.set 184
local.get 184
local.get 182
i32.store
local.get 182
i32.const 24
i32.add
local.set 185
local.get 185
local.get 60
i32.store
end
local.get 7
i32.const 20
i32.add
local.set 186
local.get 186
i32.load
local.set 187
local.get 187
i32.const 0
i32.eq
local.set 188
local.get 188
i32.eqz
if ;; label = @8
local.get 60
i32.const 20
i32.add
local.set 189
local.get 189
local.get 187
i32.store
local.get 187
i32.const 24
i32.add
local.set 190
local.get 190
local.get 60
i32.store
end
end
end
local.get 8
i32.const 16
i32.lt_u
local.set 191
local.get 191
if ;; label = @6
local.get 8
local.get 647
i32.add
local.set 193
local.get 193
i32.const 3
i32.or
local.set 194
local.get 7
i32.const 4
i32.add
local.set 195
local.get 195
local.get 194
i32.store
local.get 7
local.get 193
i32.add
local.set 196
local.get 196
i32.const 4
i32.add
local.set 197
local.get 197
i32.load
local.set 198
local.get 198
i32.const 1
i32.or
local.set 199
local.get 197
local.get 199
i32.store
else
local.get 647
i32.const 3
i32.or
local.set 200
local.get 7
i32.const 4
i32.add
local.set 201
local.get 201
local.get 200
i32.store
local.get 8
i32.const 1
i32.or
local.set 202
local.get 139
i32.const 4
i32.add
local.set 205
local.get 205
local.get 202
i32.store
local.get 139
local.get 8
i32.add
local.set 206
local.get 206
local.get 8
i32.store
local.get 348
i32.const 0
i32.eq
local.set 207
local.get 207
i32.eqz
if ;; label = @7
i32.const 2332
i32.load
local.set 208
local.get 348
i32.const 3
i32.shr_u
local.set 209
local.get 209
i32.const 1
i32.shl
local.set 210
i32.const 2352
local.get 210
i32.const 2
i32.shl
i32.add
local.set 211
i32.const 1
local.get 209
i32.shl
local.set 212
local.get 212
local.get 869
i32.and
local.set 213
local.get 213
i32.const 0
i32.eq
local.set 214
local.get 214
if ;; label = @8
local.get 212
local.get 869
i32.or
local.set 216
i32.const 2312
local.get 216
i32.store
local.get 211
i32.const 8
i32.add
local.set 79
local.get 211
local.set 2
local.get 79
local.set 87
else
local.get 211
i32.const 8
i32.add
local.set 217
local.get 217
i32.load
local.set 218
local.get 218
local.set 2
local.get 217
local.set 87
end
local.get 87
local.get 208
i32.store
local.get 2
i32.const 12
i32.add
local.set 219
local.get 219
local.get 208
i32.store
local.get 208
i32.const 8
i32.add
local.set 220
local.get 220
local.get 2
i32.store
local.get 208
i32.const 12
i32.add
local.set 221
local.get 221
local.get 211
i32.store
end
i32.const 2320
local.get 8
i32.store
i32.const 2332
local.get 139
i32.store
end
local.get 7
i32.const 8
i32.add
local.set 222
local.get 222
local.set 1
local.get 1096
global.set 12
local.get 1
return
else
local.get 647
local.set 9
end
end
else
local.get 647
local.set 9
end
else
local.get 0
i32.const -65
i32.gt_u
local.set 223
local.get 223
if ;; label = @3
i32.const -1
local.set 9
else
local.get 0
i32.const 11
i32.add
local.set 224
local.get 224
i32.const -8
i32.and
local.set 225
i32.const 2316
i32.load
local.set 227
local.get 227
i32.const 0
i32.eq
local.set 228
local.get 228
if ;; label = @4
local.get 225
local.set 9
else
i32.const 0
local.get 225
i32.sub
local.set 229
local.get 224
i32.const 8
i32.shr_u
local.set 230
local.get 230
i32.const 0
i32.eq
local.set 231
local.get 231
if ;; label = @5
i32.const 0
local.set 29
else
local.get 225
i32.const 16777215
i32.gt_u
local.set 232
local.get 232
if ;; label = @6
i32.const 31
local.set 29
else
local.get 230
i32.const 1048320
i32.add
local.set 233
local.get 233
i32.const 16
i32.shr_u
local.set 234
local.get 234
i32.const 8
i32.and
local.set 235
local.get 230
local.get 235
i32.shl
local.set 236
local.get 236
i32.const 520192
i32.add
local.set 238
local.get 238
i32.const 16
i32.shr_u
local.set 239
local.get 239
i32.const 4
i32.and
local.set 240
local.get 240
local.get 235
i32.or
local.set 241
local.get 236
local.get 240
i32.shl
local.set 242
local.get 242
i32.const 245760
i32.add
local.set 243
local.get 243
i32.const 16
i32.shr_u
local.set 244
local.get 244
i32.const 2
i32.and
local.set 245
local.get 241
local.get 245
i32.or
local.set 246
i32.const 14
local.get 246
i32.sub
local.set 247
local.get 242
local.get 245
i32.shl
local.set 249
local.get 249
i32.const 15
i32.shr_u
local.set 250
local.get 247
local.get 250
i32.add
local.set 251
local.get 251
i32.const 1
i32.shl
local.set 252
local.get 251
i32.const 7
i32.add
local.set 253
local.get 225
local.get 253
i32.shr_u
local.set 254
local.get 254
i32.const 1
i32.and
local.set 255
local.get 255
local.get 252
i32.or
local.set 256
local.get 256
local.set 29
end
end
i32.const 2616
local.get 29
i32.const 2
i32.shl
i32.add
local.set 257
local.get 257
i32.load
local.set 258
local.get 258
i32.const 0
i32.eq
local.set 260
block ;; label = @5
local.get 260
if ;; label = @6
i32.const 0
local.set 59
i32.const 0
local.set 62
local.get 229
local.set 64
i32.const 61
local.set 1095
else
local.get 29
i32.const 31
i32.eq
local.set 261
local.get 29
i32.const 1
i32.shr_u
local.set 262
i32.const 25
local.get 262
i32.sub
local.set 263
local.get 261
if (result i32) ;; label = @7
i32.const 0
else
local.get 263
end
local.set 264
local.get 225
local.get 264
i32.shl
local.set 265
i32.const 0
local.set 23
local.get 229
local.set 27
local.get 258
local.set 28
local.get 265
local.set 30
i32.const 0
local.set 32
loop ;; label = @7
block ;; label = @8
local.get 28
i32.const 4
i32.add
local.set 266
local.get 266
i32.load
local.set 267
local.get 267
i32.const -8
i32.and
local.set 268
local.get 268
local.get 225
i32.sub
local.set 269
local.get 269
local.get 27
i32.lt_u
local.set 271
local.get 271
if ;; label = @9
local.get 269
i32.const 0
i32.eq
local.set 272
local.get 272
if ;; label = @10
local.get 28
local.set 68
i32.const 0
local.set 72
local.get 28
local.set 75
i32.const 65
local.set 1095
br 5 (;@5;)
else
local.get 28
local.set 47
local.get 269
local.set 48
end
else
local.get 23
local.set 47
local.get 27
local.set 48
end
local.get 28
i32.const 20
i32.add
local.set 273
local.get 273
i32.load
local.set 274
local.get 30
i32.const 31
i32.shr_u
local.set 275
local.get 28
i32.const 16
i32.add
local.get 275
i32.const 2
i32.shl
i32.add
local.set 276
local.get 276
i32.load
local.set 277
local.get 274
i32.const 0
i32.eq
local.set 278
local.get 274
local.get 277
i32.eq
local.set 279
local.get 278
local.get 279
i32.or
local.set 1078
local.get 1078
if (result i32) ;; label = @9
local.get 32
else
local.get 274
end
local.set 49
local.get 277
i32.const 0
i32.eq
local.set 280
local.get 30
i32.const 1
i32.shl
local.set 1092
local.get 280
if ;; label = @9
local.get 49
local.set 59
local.get 47
local.set 62
local.get 48
local.set 64
i32.const 61
local.set 1095
br 1 (;@8;)
else
local.get 47
local.set 23
local.get 48
local.set 27
local.get 277
local.set 28
local.get 1092
local.set 30
local.get 49
local.set 32
end
br 1 (;@7;)
end
end
end
end
local.get 1095
i32.const 61
i32.eq
if ;; label = @5
local.get 59
i32.const 0
i32.eq
local.set 282
local.get 62
i32.const 0
i32.eq
local.set 283
local.get 282
local.get 283
i32.and
local.set 1076
local.get 1076
if ;; label = @6
i32.const 2
local.get 29
i32.shl
local.set 284
i32.const 0
local.get 284
i32.sub
local.set 285
local.get 284
local.get 285
i32.or
local.set 286
local.get 286
local.get 227
i32.and
local.set 287
local.get 287
i32.const 0
i32.eq
local.set 288
local.get 288
if ;; label = @7
local.get 225
local.set 9
br 6 (;@1;)
end
i32.const 0
local.get 287
i32.sub
local.set 289
local.get 287
local.get 289
i32.and
local.set 290
local.get 290
i32.const -1
i32.add
local.set 291
local.get 291
i32.const 12
i32.shr_u
local.set 293
local.get 293
i32.const 16
i32.and
local.set 294
local.get 291
local.get 294
i32.shr_u
local.set 295
local.get 295
i32.const 5
i32.shr_u
local.set 296
local.get 296
i32.const 8
i32.and
local.set 297
local.get 297
local.get 294
i32.or
local.set 298
local.get 295
local.get 297
i32.shr_u
local.set 299
local.get 299
i32.const 2
i32.shr_u
local.set 300
local.get 300
i32.const 4
i32.and
local.set 301
local.get 298
local.get 301
i32.or
local.set 302
local.get 299
local.get 301
i32.shr_u
local.set 304
local.get 304
i32.const 1
i32.shr_u
local.set 305
local.get 305
i32.const 2
i32.and
local.set 306
local.get 302
local.get 306
i32.or
local.set 307
local.get 304
local.get 306
i32.shr_u
local.set 308
local.get 308
i32.const 1
i32.shr_u
local.set 309
local.get 309
i32.const 1
i32.and
local.set 310
local.get 307
local.get 310
i32.or
local.set 311
local.get 308
local.get 310
i32.shr_u
local.set 312
local.get 311
local.get 312
i32.add
local.set 313
i32.const 2616
local.get 313
i32.const 2
i32.shl
i32.add
local.set 316
local.get 316
i32.load
local.set 317
i32.const 0
local.set 63
local.get 317
local.set 73
else
local.get 62
local.set 63
local.get 59
local.set 73
end
local.get 73
i32.const 0
i32.eq
local.set 318
local.get 318
if ;; label = @6
local.get 63
local.set 66
local.get 64
local.set 70
else
local.get 63
local.set 68
local.get 64
local.set 72
local.get 73
local.set 75
i32.const 65
local.set 1095
end
end
local.get 1095
i32.const 65
i32.eq
if ;; label = @5
local.get 68
local.set 67
local.get 72
local.set 71
local.get 75
local.set 74
loop ;; label = @6
block ;; label = @7
local.get 74
i32.const 4
i32.add
local.set 319
local.get 319
i32.load
local.set 320
local.get 320
i32.const -8
i32.and
local.set 321
local.get 321
local.get 225
i32.sub
local.set 322
local.get 322
local.get 71
i32.lt_u
local.set 323
local.get 323
if (result i32) ;; label = @8
local.get 322
else
local.get 71
end
local.set 1089
local.get 323
if (result i32) ;; label = @8
local.get 74
else
local.get 67
end
local.set 1091
local.get 74
i32.const 16
i32.add
local.set 324
local.get 324
i32.load
local.set 325
local.get 325
i32.const 0
i32.eq
local.set 327
local.get 327
if ;; label = @8
local.get 74
i32.const 20
i32.add
local.set 328
local.get 328
i32.load
local.set 329
local.get 329
local.set 330
else
local.get 325
local.set 330
end
local.get 330
i32.const 0
i32.eq
local.set 331
local.get 331
if ;; label = @8
local.get 1091
local.set 66
local.get 1089
local.set 70
br 1 (;@7;)
else
local.get 1091
local.set 67
local.get 1089
local.set 71
local.get 330
local.set 74
end
br 1 (;@6;)
end
end
end
local.get 66
i32.const 0
i32.eq
local.set 332
local.get 332
if ;; label = @5
local.get 225
local.set 9
else
i32.const 2320
i32.load
local.set 333
local.get 333
local.get 225
i32.sub
local.set 334
local.get 70
local.get 334
i32.lt_u
local.set 335
local.get 335
if ;; label = @6
local.get 66
local.get 225
i32.add
local.set 336
local.get 336
local.get 66
i32.gt_u
local.set 338
local.get 338
if ;; label = @7
local.get 66
i32.const 24
i32.add
local.set 339
local.get 339
i32.load
local.set 340
local.get 66
i32.const 12
i32.add
local.set 341
local.get 341
i32.load
local.set 342
local.get 342
local.get 66
i32.eq
local.set 343
block ;; label = @8
local.get 343
if ;; label = @9
local.get 66
i32.const 20
i32.add
local.set 349
local.get 349
i32.load
local.set 350
local.get 350
i32.const 0
i32.eq
local.set 351
local.get 351
if ;; label = @10
local.get 66
i32.const 16
i32.add
local.set 352
local.get 352
i32.load
local.set 353
local.get 353
i32.const 0
i32.eq
local.set 354
local.get 354
if ;; label = @11
i32.const 0
local.set 65
br 3 (;@8;)
else
local.get 353
local.set 52
local.get 352
local.set 55
end
else
local.get 350
local.set 52
local.get 349
local.set 55
end
local.get 52
local.set 50
local.get 55
local.set 53
loop ;; label = @10
block ;; label = @11
local.get 50
i32.const 20
i32.add
local.set 355
local.get 355
i32.load
local.set 356
local.get 356
i32.const 0
i32.eq
local.set 357
local.get 357
if ;; label = @12
local.get 50
i32.const 16
i32.add
local.set 358
local.get 358
i32.load
local.set 360
local.get 360
i32.const 0
i32.eq
local.set 361
local.get 361
if ;; label = @13
br 2 (;@11;)
else
local.get 360
local.set 51
local.get 358
local.set 54
end
else
local.get 356
local.set 51
local.get 355
local.set 54
end
local.get 51
local.set 50
local.get 54
local.set 53
br 1 (;@10;)
end
end
local.get 53
i32.const 0
i32.store
local.get 50
local.set 65
else
local.get 66
i32.const 8
i32.add
local.set 344
local.get 344
i32.load
local.set 345
local.get 345
i32.const 12
i32.add
local.set 346
local.get 346
local.get 342
i32.store
local.get 342
i32.const 8
i32.add
local.set 347
local.get 347
local.get 345
i32.store
local.get 342
local.set 65
end
end
local.get 340
i32.const 0
i32.eq
local.set 362
block ;; label = @8
local.get 362
if ;; label = @9
local.get 227
local.set 454
else
local.get 66
i32.const 28
i32.add
local.set 363
local.get 363
i32.load
local.set 364
i32.const 2616
local.get 364
i32.const 2
i32.shl
i32.add
local.set 365
local.get 365
i32.load
local.set 366
local.get 66
local.get 366
i32.eq
local.set 367
local.get 367
if ;; label = @10
local.get 365
local.get 65
i32.store
local.get 65
i32.const 0
i32.eq
local.set 1073
local.get 1073
if ;; label = @11
i32.const 1
local.get 364
i32.shl
local.set 368
local.get 368
i32.const -1
i32.xor
local.set 369
local.get 227
local.get 369
i32.and
local.set 371
i32.const 2316
local.get 371
i32.store
local.get 371
local.set 454
br 3 (;@8;)
end
else
local.get 340
i32.const 16
i32.add
local.set 372
local.get 372
i32.load
local.set 373
local.get 373
local.get 66
i32.eq
local.set 374
local.get 340
i32.const 20
i32.add
local.set 375
local.get 374
if (result i32) ;; label = @11
local.get 372
else
local.get 375
end
local.set 90
local.get 90
local.get 65
i32.store
local.get 65
i32.const 0
i32.eq
local.set 376
local.get 376
if ;; label = @11
local.get 227
local.set 454
br 3 (;@8;)
end
end
local.get 65
i32.const 24
i32.add
local.set 377
local.get 377
local.get 340
i32.store
local.get 66
i32.const 16
i32.add
local.set 378
local.get 378
i32.load
local.set 379
local.get 379
i32.const 0
i32.eq
local.set 380
local.get 380
i32.eqz
if ;; label = @10
local.get 65
i32.const 16
i32.add
local.set 382
local.get 382
local.get 379
i32.store
local.get 379
i32.const 24
i32.add
local.set 383
local.get 383
local.get 65
i32.store
end
local.get 66
i32.const 20
i32.add
local.set 384
local.get 384
i32.load
local.set 385
local.get 385
i32.const 0
i32.eq
local.set 386
local.get 386
if ;; label = @10
local.get 227
local.set 454
else
local.get 65
i32.const 20
i32.add
local.set 387
local.get 387
local.get 385
i32.store
local.get 385
i32.const 24
i32.add
local.set 388
local.get 388
local.get 65
i32.store
local.get 227
local.set 454
end
end
end
local.get 70
i32.const 16
i32.lt_u
local.set 389
block ;; label = @8
local.get 389
if ;; label = @9
local.get 70
local.get 225
i32.add
local.set 390
local.get 390
i32.const 3
i32.or
local.set 391
local.get 66
i32.const 4
i32.add
local.set 393
local.get 393
local.get 391
i32.store
local.get 66
local.get 390
i32.add
local.set 394
local.get 394
i32.const 4
i32.add
local.set 395
local.get 395
i32.load
local.set 396
local.get 396
i32.const 1
i32.or
local.set 397
local.get 395
local.get 397
i32.store
else
local.get 225
i32.const 3
i32.or
local.set 398
local.get 66
i32.const 4
i32.add
local.set 399
local.get 399
local.get 398
i32.store
local.get 70
i32.const 1
i32.or
local.set 400
local.get 336
i32.const 4
i32.add
local.set 401
local.get 401
local.get 400
i32.store
local.get 336
local.get 70
i32.add
local.set 402
local.get 402
local.get 70
i32.store
local.get 70
i32.const 3
i32.shr_u
local.set 404
local.get 70
i32.const 256
i32.lt_u
local.set 405
local.get 405
if ;; label = @10
local.get 404
i32.const 1
i32.shl
local.set 406
i32.const 2352
local.get 406
i32.const 2
i32.shl
i32.add
local.set 407
i32.const 2312
i32.load
local.set 408
i32.const 1
local.get 404
i32.shl
local.set 409
local.get 408
local.get 409
i32.and
local.set 410
local.get 410
i32.const 0
i32.eq
local.set 411
local.get 411
if ;; label = @11
local.get 408
local.get 409
i32.or
local.set 412
i32.const 2312
local.get 412
i32.store
local.get 407
i32.const 8
i32.add
local.set 83
local.get 407
local.set 33
local.get 83
local.set 86
else
local.get 407
i32.const 8
i32.add
local.set 413
local.get 413
i32.load
local.set 415
local.get 415
local.set 33
local.get 413
local.set 86
end
local.get 86
local.get 336
i32.store
local.get 33
i32.const 12
i32.add
local.set 416
local.get 416
local.get 336
i32.store
local.get 336
i32.const 8
i32.add
local.set 417
local.get 417
local.get 33
i32.store
local.get 336
i32.const 12
i32.add
local.set 418
local.get 418
local.get 407
i32.store
br 2 (;@8;)
end
local.get 70
i32.const 8
i32.shr_u
local.set 419
local.get 419
i32.const 0
i32.eq
local.set 420
local.get 420
if ;; label = @10
i32.const 0
local.set 31
else
local.get 70
i32.const 16777215
i32.gt_u
local.set 421
local.get 421
if ;; label = @11
i32.const 31
local.set 31
else
local.get 419
i32.const 1048320
i32.add
local.set 422
local.get 422
i32.const 16
i32.shr_u
local.set 423
local.get 423
i32.const 8
i32.and
local.set 424
local.get 419
local.get 424
i32.shl
local.set 427
local.get 427
i32.const 520192
i32.add
local.set 428
local.get 428
i32.const 16
i32.shr_u
local.set 429
local.get 429
i32.const 4
i32.and
local.set 430
local.get 430
local.get 424
i32.or
local.set 431
local.get 427
local.get 430
i32.shl
local.set 432
local.get 432
i32.const 245760
i32.add
local.set 433
local.get 433
i32.const 16
i32.shr_u
local.set 434
local.get 434
i32.const 2
i32.and
local.set 435
local.get 431
local.get 435
i32.or
local.set 436
i32.const 14
local.get 436
i32.sub
local.set 438
local.get 432
local.get 435
i32.shl
local.set 439
local.get 439
i32.const 15
i32.shr_u
local.set 440
local.get 438
local.get 440
i32.add
local.set 441
local.get 441
i32.const 1
i32.shl
local.set 442
local.get 441
i32.const 7
i32.add
local.set 443
local.get 70
local.get 443
i32.shr_u
local.set 444
local.get 444
i32.const 1
i32.and
local.set 445
local.get 445
local.get 442
i32.or
local.set 446
local.get 446
local.set 31
end
end
i32.const 2616
local.get 31
i32.const 2
i32.shl
i32.add
local.set 447
local.get 336
i32.const 28
i32.add
local.set 449
local.get 449
local.get 31
i32.store
local.get 336
i32.const 16
i32.add
local.set 450
local.get 450
i32.const 4
i32.add
local.set 451
local.get 451
i32.const 0
i32.store
local.get 450
i32.const 0
i32.store
i32.const 1
local.get 31
i32.shl
local.set 452
local.get 454
local.get 452
i32.and
local.set 453
local.get 453
i32.const 0
i32.eq
local.set 455
local.get 455
if ;; label = @10
local.get 454
local.get 452
i32.or
local.set 456
i32.const 2316
local.get 456
i32.store
local.get 447
local.get 336
i32.store
local.get 336
i32.const 24
i32.add
local.set 457
local.get 457
local.get 447
i32.store
local.get 336
i32.const 12
i32.add
local.set 458
local.get 458
local.get 336
i32.store
local.get 336
i32.const 8
i32.add
local.set 460
local.get 460
local.get 336
i32.store
br 2 (;@8;)
end
local.get 447
i32.load
local.set 461
local.get 461
i32.const 4
i32.add
local.set 462
local.get 462
i32.load
local.set 463
local.get 463
i32.const -8
i32.and
local.set 464
local.get 464
local.get 70
i32.eq
local.set 465
block ;; label = @10
local.get 465
if ;; label = @11
local.get 461
local.set 25
else
local.get 31
i32.const 31
i32.eq
local.set 466
local.get 31
i32.const 1
i32.shr_u
local.set 467
i32.const 25
local.get 467
i32.sub
local.set 468
local.get 466
if (result i32) ;; label = @12
i32.const 0
else
local.get 468
end
local.set 469
local.get 70
local.get 469
i32.shl
local.set 471
local.get 471
local.set 24
local.get 461
local.set 26
loop ;; label = @12
block ;; label = @13
local.get 24
i32.const 31
i32.shr_u
local.set 478
local.get 26
i32.const 16
i32.add
local.get 478
i32.const 2
i32.shl
i32.add
local.set 479
local.get 479
i32.load
local.set 474
local.get 474
i32.const 0
i32.eq
local.set 480
local.get 480
if ;; label = @14
br 1 (;@13;)
end
local.get 24
i32.const 1
i32.shl
local.set 472
local.get 474
i32.const 4
i32.add
local.set 473
local.get 473
i32.load
local.set 475
local.get 475
i32.const -8
i32.and
local.set 476
local.get 476
local.get 70
i32.eq
local.set 477
local.get 477
if ;; label = @14
local.get 474
local.set 25
br 4 (;@10;)
else
local.get 472
local.set 24
local.get 474
local.set 26
end
br 1 (;@12;)
end
end
local.get 479
local.get 336
i32.store
local.get 336
i32.const 24
i32.add
local.set 482
local.get 482
local.get 26
i32.store
local.get 336
i32.const 12
i32.add
local.set 483
local.get 483
local.get 336
i32.store
local.get 336
i32.const 8
i32.add
local.set 484
local.get 484
local.get 336
i32.store
br 3 (;@8;)
end
end
local.get 25
i32.const 8
i32.add
local.set 485
local.get 485
i32.load
local.set 486
local.get 486
i32.const 12
i32.add
local.set 487
local.get 487
local.get 336
i32.store
local.get 485
local.get 336
i32.store
local.get 336
i32.const 8
i32.add
local.set 488
local.get 488
local.get 486
i32.store
local.get 336
i32.const 12
i32.add
local.set 489
local.get 489
local.get 25
i32.store
local.get 336
i32.const 24
i32.add
local.set 490
local.get 490
i32.const 0
i32.store
end
end
local.get 66
i32.const 8
i32.add
local.set 491
local.get 491
local.set 1
local.get 1096
global.set 12
local.get 1
return
else
local.get 225
local.set 9
end
else
local.get 225
local.set 9
end
end
end
end
end
end
i32.const 2320
i32.load
local.set 493
local.get 493
local.get 9
i32.lt_u
local.set 494
local.get 494
i32.eqz
if ;; label = @1
local.get 493
local.get 9
i32.sub
local.set 495
i32.const 2332
i32.load
local.set 496
local.get 495
i32.const 15
i32.gt_u
local.set 497
local.get 497
if ;; label = @2
local.get 496
local.get 9
i32.add
local.set 498
i32.const 2332
local.get 498
i32.store
i32.const 2320
local.get 495
i32.store
local.get 495
i32.const 1
i32.or
local.set 499
local.get 498
i32.const 4
i32.add
local.set 500
local.get 500
local.get 499
i32.store
local.get 496
local.get 493
i32.add
local.set 501
local.get 501
local.get 495
i32.store
local.get 9
i32.const 3
i32.or
local.set 502
local.get 496
i32.const 4
i32.add
local.set 504
local.get 504
local.get 502
i32.store
else
i32.const 2320
i32.const 0
i32.store
i32.const 2332
i32.const 0
i32.store
local.get 493
i32.const 3
i32.or
local.set 505
local.get 496
i32.const 4
i32.add
local.set 506
local.get 506
local.get 505
i32.store
local.get 496
local.get 493
i32.add
local.set 507
local.get 507
i32.const 4
i32.add
local.set 508
local.get 508
i32.load
local.set 509
local.get 509
i32.const 1
i32.or
local.set 510
local.get 508
local.get 510
i32.store
end
local.get 496
i32.const 8
i32.add
local.set 511
local.get 511
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2324
i32.load
local.set 512
local.get 512
local.get 9
i32.gt_u
local.set 513
local.get 513
if ;; label = @1
local.get 512
local.get 9
i32.sub
local.set 515
i32.const 2324
local.get 515
i32.store
i32.const 2336
i32.load
local.set 516
local.get 516
local.get 9
i32.add
local.set 517
i32.const 2336
local.get 517
i32.store
local.get 515
i32.const 1
i32.or
local.set 518
local.get 517
i32.const 4
i32.add
local.set 519
local.get 519
local.get 518
i32.store
local.get 9
i32.const 3
i32.or
local.set 520
local.get 516
i32.const 4
i32.add
local.set 521
local.get 521
local.get 520
i32.store
local.get 516
i32.const 8
i32.add
local.set 522
local.get 522
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2784
i32.load
local.set 523
local.get 523
i32.const 0
i32.eq
local.set 524
local.get 524
if ;; label = @1
i32.const 2792
i32.const 4096
i32.store
i32.const 2788
i32.const 4096
i32.store
i32.const 2796
i32.const -1
i32.store
i32.const 2800
i32.const -1
i32.store
i32.const 2804
i32.const 0
i32.store
i32.const 2756
i32.const 0
i32.store
local.get 92
local.set 526
local.get 526
i32.const -16
i32.and
local.set 527
local.get 527
i32.const 1431655768
i32.xor
local.set 528
i32.const 2784
local.get 528
i32.store
i32.const 4096
local.set 532
else
i32.const 2792
i32.load
local.set 82
local.get 82
local.set 532
end
local.get 9
i32.const 48
i32.add
local.set 529
local.get 9
i32.const 47
i32.add
local.set 530
local.get 532
local.get 530
i32.add
local.set 531
i32.const 0
local.get 532
i32.sub
local.set 533
local.get 531
local.get 533
i32.and
local.set 534
local.get 534
local.get 9
i32.gt_u
local.set 535
local.get 535
i32.eqz
if ;; label = @1
i32.const 0
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2752
i32.load
local.set 538
local.get 538
i32.const 0
i32.eq
local.set 539
local.get 539
i32.eqz
if ;; label = @1
i32.const 2744
i32.load
local.set 540
local.get 540
local.get 534
i32.add
local.set 541
local.get 541
local.get 540
i32.le_u
local.set 542
local.get 541
local.get 538
i32.gt_u
local.set 543
local.get 542
local.get 543
i32.or
local.set 1077
local.get 1077
if ;; label = @2
i32.const 0
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
end
i32.const 2756
i32.load
local.set 544
local.get 544
i32.const 4
i32.and
local.set 545
local.get 545
i32.const 0
i32.eq
local.set 546
block ;; label = @1
local.get 546
if ;; label = @2
i32.const 2336
i32.load
local.set 547
local.get 547
i32.const 0
i32.eq
local.set 549
block ;; label = @3
local.get 549
if ;; label = @4
i32.const 128
local.set 1095
else
i32.const 2760
local.set 5
loop ;; label = @5
block ;; label = @6
local.get 5
i32.load
local.set 550
local.get 550
local.get 547
i32.gt_u
local.set 551
local.get 551
i32.eqz
if ;; label = @7
local.get 5
i32.const 4
i32.add
local.set 552
local.get 552
i32.load
local.set 553
local.get 550
local.get 553
i32.add
local.set 554
local.get 554
local.get 547
i32.gt_u
local.set 555
local.get 555
if ;; label = @8
br 2 (;@6;)
end
end
local.get 5
i32.const 8
i32.add
local.set 556
local.get 556
i32.load
local.set 557
local.get 557
i32.const 0
i32.eq
local.set 558
local.get 558
if ;; label = @7
i32.const 128
local.set 1095
br 4 (;@3;)
else
local.get 557
local.set 5
end
br 1 (;@5;)
end
end
local.get 531
local.get 512
i32.sub
local.set 584
local.get 584
local.get 533
i32.and
local.set 585
local.get 585
i32.const 2147483647
i32.lt_u
local.set 586
local.get 586
if ;; label = @5
local.get 5
i32.const 4
i32.add
local.set 587
local.get 585
call 50
local.set 588
local.get 5
i32.load
local.set 589
local.get 587
i32.load
local.set 590
local.get 589
local.get 590
i32.add
local.set 591
local.get 588
local.get 591
i32.eq
local.set 593
local.get 593
if ;; label = @6
local.get 588
i32.const -1
i32.eq
local.set 594
local.get 594
if ;; label = @7
local.get 585
local.set 56
else
local.get 585
local.set 76
local.get 588
local.set 77
i32.const 145
local.set 1095
br 6 (;@1;)
end
else
local.get 588
local.set 57
local.get 585
local.set 58
i32.const 136
local.set 1095
end
else
i32.const 0
local.set 56
end
end
end
block ;; label = @3
local.get 1095
i32.const 128
i32.eq
if ;; label = @4
i32.const 0
call 50
local.set 560
local.get 560
i32.const -1
i32.eq
local.set 561
local.get 561
if ;; label = @5
i32.const 0
local.set 56
else
local.get 560
local.set 562
i32.const 2788
i32.load
local.set 563
local.get 563
i32.const -1
i32.add
local.set 564
local.get 564
local.get 562
i32.and
local.set 565
local.get 565
i32.const 0
i32.eq
local.set 566
local.get 564
local.get 562
i32.add
local.set 567
i32.const 0
local.get 563
i32.sub
local.set 568
local.get 567
local.get 568
i32.and
local.set 569
local.get 569
local.get 562
i32.sub
local.set 571
local.get 566
if (result i32) ;; label = @6
i32.const 0
else
local.get 571
end
local.set 572
local.get 572
local.get 534
i32.add
local.set 1093
i32.const 2744
i32.load
local.set 573
local.get 1093
local.get 573
i32.add
local.set 574
local.get 1093
local.get 9
i32.gt_u
local.set 575
local.get 1093
i32.const 2147483647
i32.lt_u
local.set 576
local.get 575
local.get 576
i32.and
local.set 1075
local.get 1075
if ;; label = @6
i32.const 2752
i32.load
local.set 577
local.get 577
i32.const 0
i32.eq
local.set 578
local.get 578
i32.eqz
if ;; label = @7
local.get 574
local.get 573
i32.le_u
local.set 579
local.get 574
local.get 577
i32.gt_u
local.set 580
local.get 579
local.get 580
i32.or
local.set 1080
local.get 1080
if ;; label = @8
i32.const 0
local.set 56
br 5 (;@3;)
end
end
local.get 1093
call 50
local.set 582
local.get 582
local.get 560
i32.eq
local.set 583
local.get 583
if ;; label = @7
local.get 1093
local.set 76
local.get 560
local.set 77
i32.const 145
local.set 1095
br 6 (;@1;)
else
local.get 582
local.set 57
local.get 1093
local.set 58
i32.const 136
local.set 1095
end
else
i32.const 0
local.set 56
end
end
end
end
block ;; label = @3
local.get 1095
i32.const 136
i32.eq
if ;; label = @4
i32.const 0
local.get 58
i32.sub
local.set 595
local.get 57
i32.const -1
i32.ne
local.set 596
local.get 58
i32.const 2147483647
i32.lt_u
local.set 597
local.get 597
local.get 596
i32.and
local.set 1085
local.get 529
local.get 58
i32.gt_u
local.set 598
local.get 598
local.get 1085
i32.and
local.set 1084
local.get 1084
i32.eqz
if ;; label = @5
local.get 57
i32.const -1
i32.eq
local.set 609
local.get 609
if ;; label = @6
i32.const 0
local.set 56
br 3 (;@3;)
else
local.get 58
local.set 76
local.get 57
local.set 77
i32.const 145
local.set 1095
br 5 (;@1;)
end
unreachable
end
i32.const 2792
i32.load
local.set 599
local.get 530
local.get 58
i32.sub
local.set 600
local.get 600
local.get 599
i32.add
local.set 601
i32.const 0
local.get 599
i32.sub
local.set 602
local.get 601
local.get 602
i32.and
local.set 604
local.get 604
i32.const 2147483647
i32.lt_u
local.set 605
local.get 605
i32.eqz
if ;; label = @5
local.get 58
local.set 76
local.get 57
local.set 77
i32.const 145
local.set 1095
br 4 (;@1;)
end
local.get 604
call 50
local.set 606
local.get 606
i32.const -1
i32.eq
local.set 607
local.get 607
if ;; label = @5
local.get 595
call 50
drop
i32.const 0
local.set 56
br 2 (;@3;)
else
local.get 604
local.get 58
i32.add
local.set 608
local.get 608
local.set 76
local.get 57
local.set 77
i32.const 145
local.set 1095
br 4 (;@1;)
end
unreachable
end
end
i32.const 2756
i32.load
local.set 610
local.get 610
i32.const 4
i32.or
local.set 611
i32.const 2756
local.get 611
i32.store
local.get 56
local.set 69
i32.const 143
local.set 1095
else
i32.const 0
local.set 69
i32.const 143
local.set 1095
end
end
local.get 1095
i32.const 143
i32.eq
if ;; label = @1
local.get 534
i32.const 2147483647
i32.lt_u
local.set 612
local.get 612
if ;; label = @2
local.get 534
call 50
local.set 613
i32.const 0
call 50
local.set 615
local.get 613
i32.const -1
i32.ne
local.set 616
local.get 615
i32.const -1
i32.ne
local.set 617
local.get 616
local.get 617
i32.and
local.set 1081
local.get 613
local.get 615
i32.lt_u
local.set 618
local.get 618
local.get 1081
i32.and
local.set 1086
local.get 615
local.set 619
local.get 613
local.set 620
local.get 619
local.get 620
i32.sub
local.set 621
local.get 9
i32.const 40
i32.add
local.set 622
local.get 621
local.get 622
i32.gt_u
local.set 623
local.get 623
if (result i32) ;; label = @3
local.get 621
else
local.get 69
end
local.set 1094
local.get 1086
i32.const 1
i32.xor
local.set 1087
local.get 613
i32.const -1
i32.eq
local.set 624
local.get 623
i32.const 1
i32.xor
local.set 1074
local.get 624
local.get 1074
i32.or
local.set 626
local.get 626
local.get 1087
i32.or
local.set 1082
local.get 1082
i32.eqz
if ;; label = @3
local.get 1094
local.set 76
local.get 613
local.set 77
i32.const 145
local.set 1095
end
end
end
local.get 1095
i32.const 145
i32.eq
if ;; label = @1
i32.const 2744
i32.load
local.set 627
local.get 627
local.get 76
i32.add
local.set 628
i32.const 2744
local.get 628
i32.store
i32.const 2748
i32.load
local.set 629
local.get 628
local.get 629
i32.gt_u
local.set 630
local.get 630
if ;; label = @2
i32.const 2748
local.get 628
i32.store
end
i32.const 2336
i32.load
local.set 631
local.get 631
i32.const 0
i32.eq
local.set 632
block ;; label = @2
local.get 632
if ;; label = @3
i32.const 2328
i32.load
local.set 633
local.get 633
i32.const 0
i32.eq
local.set 634
local.get 77
local.get 633
i32.lt_u
local.set 635
local.get 634
local.get 635
i32.or
local.set 1079
local.get 1079
if ;; label = @4
i32.const 2328
local.get 77
i32.store
end
i32.const 2760
local.get 77
i32.store
i32.const 2764
local.get 76
i32.store
i32.const 2772
i32.const 0
i32.store
i32.const 2784
i32.load
local.set 637
i32.const 2348
local.get 637
i32.store
i32.const 2344
i32.const -1
i32.store
i32.const 2364
i32.const 2352
i32.store
i32.const 2360
i32.const 2352
i32.store
i32.const 2372
i32.const 2360
i32.store
i32.const 2368
i32.const 2360
i32.store
i32.const 2380
i32.const 2368
i32.store
i32.const 2376
i32.const 2368
i32.store
i32.const 2388
i32.const 2376
i32.store
i32.const 2384
i32.const 2376
i32.store
i32.const 2396
i32.const 2384
i32.store
i32.const 2392
i32.const 2384
i32.store
i32.const 2404
i32.const 2392
i32.store
i32.const 2400
i32.const 2392
i32.store
i32.const 2412
i32.const 2400
i32.store
i32.const 2408
i32.const 2400
i32.store
i32.const 2420
i32.const 2408
i32.store
i32.const 2416
i32.const 2408
i32.store
i32.const 2428
i32.const 2416
i32.store
i32.const 2424
i32.const 2416
i32.store
i32.const 2436
i32.const 2424
i32.store
i32.const 2432
i32.const 2424
i32.store
i32.const 2444
i32.const 2432
i32.store
i32.const 2440
i32.const 2432
i32.store
i32.const 2452
i32.const 2440
i32.store
i32.const 2448
i32.const 2440
i32.store
i32.const 2460
i32.const 2448
i32.store
i32.const 2456
i32.const 2448
i32.store
i32.const 2468
i32.const 2456
i32.store
i32.const 2464
i32.const 2456
i32.store
i32.const 2476
i32.const 2464
i32.store
i32.const 2472
i32.const 2464
i32.store
i32.const 2484
i32.const 2472
i32.store
i32.const 2480
i32.const 2472
i32.store
i32.const 2492
i32.const 2480
i32.store
i32.const 2488
i32.const 2480
i32.store
i32.const 2500
i32.const 2488
i32.store
i32.const 2496
i32.const 2488
i32.store
i32.const 2508
i32.const 2496
i32.store
i32.const 2504
i32.const 2496
i32.store
i32.const 2516
i32.const 2504
i32.store
i32.const 2512
i32.const 2504
i32.store
i32.const 2524
i32.const 2512
i32.store
i32.const 2520
i32.const 2512
i32.store
i32.const 2532
i32.const 2520
i32.store
i32.const 2528
i32.const 2520
i32.store
i32.const 2540
i32.const 2528
i32.store
i32.const 2536
i32.const 2528
i32.store
i32.const 2548
i32.const 2536
i32.store
i32.const 2544
i32.const 2536
i32.store
i32.const 2556
i32.const 2544
i32.store
i32.const 2552
i32.const 2544
i32.store
i32.const 2564
i32.const 2552
i32.store
i32.const 2560
i32.const 2552
i32.store
i32.const 2572
i32.const 2560
i32.store
i32.const 2568
i32.const 2560
i32.store
i32.const 2580
i32.const 2568
i32.store
i32.const 2576
i32.const 2568
i32.store
i32.const 2588
i32.const 2576
i32.store
i32.const 2584
i32.const 2576
i32.store
i32.const 2596
i32.const 2584
i32.store
i32.const 2592
i32.const 2584
i32.store
i32.const 2604
i32.const 2592
i32.store
i32.const 2600
i32.const 2592
i32.store
i32.const 2612
i32.const 2600
i32.store
i32.const 2608
i32.const 2600
i32.store
local.get 76
i32.const -40
i32.add
local.set 638
local.get 77
i32.const 8
i32.add
local.set 639
local.get 639
local.set 640
local.get 640
i32.const 7
i32.and
local.set 641
local.get 641
i32.const 0
i32.eq
local.set 642
i32.const 0
local.get 640
i32.sub
local.set 643
local.get 643
i32.const 7
i32.and
local.set 644
local.get 642
if (result i32) ;; label = @4
i32.const 0
else
local.get 644
end
local.set 645
local.get 77
local.get 645
i32.add
local.set 646
local.get 638
local.get 645
i32.sub
local.set 649
i32.const 2336
local.get 646
i32.store
i32.const 2324
local.get 649
i32.store
local.get 649
i32.const 1
i32.or
local.set 650
local.get 646
i32.const 4
i32.add
local.set 651
local.get 651
local.get 650
i32.store
local.get 77
local.get 638
i32.add
local.set 652
local.get 652
i32.const 4
i32.add
local.set 653
local.get 653
i32.const 40
i32.store
i32.const 2800
i32.load
local.set 654
i32.const 2340
local.get 654
i32.store
else
i32.const 2760
local.set 16
loop ;; label = @4
block ;; label = @5
local.get 16
i32.load
local.set 655
local.get 16
i32.const 4
i32.add
local.set 656
local.get 656
i32.load
local.set 657
local.get 655
local.get 657
i32.add
local.set 658
local.get 77
local.get 658
i32.eq
local.set 660
local.get 660
if ;; label = @6
i32.const 154
local.set 1095
br 1 (;@5;)
end
local.get 16
i32.const 8
i32.add
local.set 661
local.get 661
i32.load
local.set 662
local.get 662
i32.const 0
i32.eq
local.set 663
local.get 663
if ;; label = @6
br 1 (;@5;)
else
local.get 662
local.set 16
end
br 1 (;@4;)
end
end
local.get 1095
i32.const 154
i32.eq
if ;; label = @4
local.get 16
i32.const 4
i32.add
local.set 664
local.get 16
i32.const 12
i32.add
local.set 665
local.get 665
i32.load
local.set 666
local.get 666
i32.const 8
i32.and
local.set 667
local.get 667
i32.const 0
i32.eq
local.set 668
local.get 668
if ;; label = @5
local.get 655
local.get 631
i32.le_u
local.set 669
local.get 77
local.get 631
i32.gt_u
local.set 671
local.get 671
local.get 669
i32.and
local.set 1083
local.get 1083
if ;; label = @6
local.get 657
local.get 76
i32.add
local.set 672
local.get 664
local.get 672
i32.store
i32.const 2324
i32.load
local.set 673
local.get 673
local.get 76
i32.add
local.set 674
local.get 631
i32.const 8
i32.add
local.set 675
local.get 675
local.set 676
local.get 676
i32.const 7
i32.and
local.set 677
local.get 677
i32.const 0
i32.eq
local.set 678
i32.const 0
local.get 676
i32.sub
local.set 679
local.get 679
i32.const 7
i32.and
local.set 680
local.get 678
if (result i32) ;; label = @7
i32.const 0
else
local.get 680
end
local.set 682
local.get 631
local.get 682
i32.add
local.set 683
local.get 674
local.get 682
i32.sub
local.set 684
i32.const 2336
local.get 683
i32.store
i32.const 2324
local.get 684
i32.store
local.get 684
i32.const 1
i32.or
local.set 685
local.get 683
i32.const 4
i32.add
local.set 686
local.get 686
local.get 685
i32.store
local.get 631
local.get 674
i32.add
local.set 687
local.get 687
i32.const 4
i32.add
local.set 688
local.get 688
i32.const 40
i32.store
i32.const 2800
i32.load
local.set 689
i32.const 2340
local.get 689
i32.store
br 4 (;@2;)
end
end
end
i32.const 2328
i32.load
local.set 690
local.get 77
local.get 690
i32.lt_u
local.set 691
local.get 691
if ;; label = @4
i32.const 2328
local.get 77
i32.store
end
local.get 77
local.get 76
i32.add
local.set 693
i32.const 2760
local.set 40
loop ;; label = @4
block ;; label = @5
local.get 40
i32.load
local.set 694
local.get 694
local.get 693
i32.eq
local.set 695
local.get 695
if ;; label = @6
i32.const 162
local.set 1095
br 1 (;@5;)
end
local.get 40
i32.const 8
i32.add
local.set 696
local.get 696
i32.load
local.set 697
local.get 697
i32.const 0
i32.eq
local.set 698
local.get 698
if ;; label = @6
br 1 (;@5;)
else
local.get 697
local.set 40
end
br 1 (;@4;)
end
end
local.get 1095
i32.const 162
i32.eq
if ;; label = @4
local.get 40
i32.const 12
i32.add
local.set 699
local.get 699
i32.load
local.set 700
local.get 700
i32.const 8
i32.and
local.set 701
local.get 701
i32.const 0
i32.eq
local.set 702
local.get 702
if ;; label = @5
local.get 40
local.get 77
i32.store
local.get 40
i32.const 4
i32.add
local.set 704
local.get 704
i32.load
local.set 705
local.get 705
local.get 76
i32.add
local.set 706
local.get 704
local.get 706
i32.store
local.get 77
i32.const 8
i32.add
local.set 707
local.get 707
local.set 708
local.get 708
i32.const 7
i32.and
local.set 709
local.get 709
i32.const 0
i32.eq
local.set 710
i32.const 0
local.get 708
i32.sub
local.set 711
local.get 711
i32.const 7
i32.and
local.set 712
local.get 710
if (result i32) ;; label = @6
i32.const 0
else
local.get 712
end
local.set 713
local.get 77
local.get 713
i32.add
local.set 715
local.get 693
i32.const 8
i32.add
local.set 716
local.get 716
local.set 717
local.get 717
i32.const 7
i32.and
local.set 718
local.get 718
i32.const 0
i32.eq
local.set 719
i32.const 0
local.get 717
i32.sub
local.set 720
local.get 720
i32.const 7
i32.and
local.set 721
local.get 719
if (result i32) ;; label = @6
i32.const 0
else
local.get 721
end
local.set 722
local.get 693
local.get 722
i32.add
local.set 723
local.get 723
local.set 724
local.get 715
local.set 726
local.get 724
local.get 726
i32.sub
local.set 727
local.get 715
local.get 9
i32.add
local.set 728
local.get 727
local.get 9
i32.sub
local.set 729
local.get 9
i32.const 3
i32.or
local.set 730
local.get 715
i32.const 4
i32.add
local.set 731
local.get 731
local.get 730
i32.store
local.get 631
local.get 723
i32.eq
local.set 732
block ;; label = @6
local.get 732
if ;; label = @7
i32.const 2324
i32.load
local.set 733
local.get 733
local.get 729
i32.add
local.set 734
i32.const 2324
local.get 734
i32.store
i32.const 2336
local.get 728
i32.store
local.get 734
i32.const 1
i32.or
local.set 735
local.get 728
i32.const 4
i32.add
local.set 737
local.get 737
local.get 735
i32.store
else
i32.const 2332
i32.load
local.set 738
local.get 738
local.get 723
i32.eq
local.set 739
local.get 739
if ;; label = @8
i32.const 2320
i32.load
local.set 740
local.get 740
local.get 729
i32.add
local.set 741
i32.const 2320
local.get 741
i32.store
i32.const 2332
local.get 728
i32.store
local.get 741
i32.const 1
i32.or
local.set 742
local.get 728
i32.const 4
i32.add
local.set 743
local.get 743
local.get 742
i32.store
local.get 728
local.get 741
i32.add
local.set 744
local.get 744
local.get 741
i32.store
br 2 (;@6;)
end
local.get 723
i32.const 4
i32.add
local.set 745
local.get 745
i32.load
local.set 746
local.get 746
i32.const 3
i32.and
local.set 748
local.get 748
i32.const 1
i32.eq
local.set 749
local.get 749
if ;; label = @8
local.get 746
i32.const -8
i32.and
local.set 750
local.get 746
i32.const 3
i32.shr_u
local.set 751
local.get 746
i32.const 256
i32.lt_u
local.set 752
block ;; label = @9
local.get 752
if ;; label = @10
local.get 723
i32.const 8
i32.add
local.set 753
local.get 753
i32.load
local.set 754
local.get 723
i32.const 12
i32.add
local.set 755
local.get 755
i32.load
local.set 756
local.get 756
local.get 754
i32.eq
local.set 757
local.get 757
if ;; label = @11
i32.const 1
local.get 751
i32.shl
local.set 760
local.get 760
i32.const -1
i32.xor
local.set 761
i32.const 2312
i32.load
local.set 762
local.get 762
local.get 761
i32.and
local.set 763
i32.const 2312
local.get 763
i32.store
br 2 (;@9;)
else
local.get 754
i32.const 12
i32.add
local.set 764
local.get 764
local.get 756
i32.store
local.get 756
i32.const 8
i32.add
local.set 765
local.get 765
local.get 754
i32.store
br 2 (;@9;)
end
unreachable
else
local.get 723
i32.const 24
i32.add
local.set 766
local.get 766
i32.load
local.set 767
local.get 723
i32.const 12
i32.add
local.set 768
local.get 768
i32.load
local.set 769
local.get 769
local.get 723
i32.eq
local.set 771
block ;; label = @11
local.get 771
if ;; label = @12
local.get 723
i32.const 16
i32.add
local.set 776
local.get 776
i32.const 4
i32.add
local.set 777
local.get 777
i32.load
local.set 778
local.get 778
i32.const 0
i32.eq
local.set 779
local.get 779
if ;; label = @13
local.get 776
i32.load
local.set 780
local.get 780
i32.const 0
i32.eq
local.set 782
local.get 782
if ;; label = @14
i32.const 0
local.set 61
br 3 (;@11;)
else
local.get 780
local.set 43
local.get 776
local.set 46
end
else
local.get 778
local.set 43
local.get 777
local.set 46
end
local.get 43
local.set 41
local.get 46
local.set 44
loop ;; label = @13
block ;; label = @14
local.get 41
i32.const 20
i32.add
local.set 783
local.get 783
i32.load
local.set 784
local.get 784
i32.const 0
i32.eq
local.set 785
local.get 785
if ;; label = @15
local.get 41
i32.const 16
i32.add
local.set 786
local.get 786
i32.load
local.set 787
local.get 787
i32.const 0
i32.eq
local.set 788
local.get 788
if ;; label = @16
br 2 (;@14;)
else
local.get 787
local.set 42
local.get 786
local.set 45
end
else
local.get 784
local.set 42
local.get 783
local.set 45
end
local.get 42
local.set 41
local.get 45
local.set 44
br 1 (;@13;)
end
end
local.get 44
i32.const 0
i32.store
local.get 41
local.set 61
else
local.get 723
i32.const 8
i32.add
local.set 772
local.get 772
i32.load
local.set 773
local.get 773
i32.const 12
i32.add
local.set 774
local.get 774
local.get 769
i32.store
local.get 769
i32.const 8
i32.add
local.set 775
local.get 775
local.get 773
i32.store
local.get 769
local.set 61
end
end
local.get 767
i32.const 0
i32.eq
local.set 789
local.get 789
if ;; label = @11
br 2 (;@9;)
end
local.get 723
i32.const 28
i32.add
local.set 790
local.get 790
i32.load
local.set 791
i32.const 2616
local.get 791
i32.const 2
i32.shl
i32.add
local.set 793
local.get 793
i32.load
local.set 794
local.get 794
local.get 723
i32.eq
local.set 795
block ;; label = @11
local.get 795
if ;; label = @12
local.get 793
local.get 61
i32.store
local.get 61
i32.const 0
i32.eq
local.set 1072
local.get 1072
i32.eqz
if ;; label = @13
br 2 (;@11;)
end
i32.const 1
local.get 791
i32.shl
local.set 796
local.get 796
i32.const -1
i32.xor
local.set 797
i32.const 2316
i32.load
local.set 798
local.get 798
local.get 797
i32.and
local.set 799
i32.const 2316
local.get 799
i32.store
br 3 (;@9;)
else
local.get 767
i32.const 16
i32.add
local.set 800
local.get 800
i32.load
local.set 801
local.get 801
local.get 723
i32.eq
local.set 802
local.get 767
i32.const 20
i32.add
local.set 804
local.get 802
if (result i32) ;; label = @13
local.get 800
else
local.get 804
end
local.set 91
local.get 91
local.get 61
i32.store
local.get 61
i32.const 0
i32.eq
local.set 805
local.get 805
if ;; label = @13
br 4 (;@9;)
end
end
end
local.get 61
i32.const 24
i32.add
local.set 806
local.get 806
local.get 767
i32.store
local.get 723
i32.const 16
i32.add
local.set 807
local.get 807
i32.load
local.set 808
local.get 808
i32.const 0
i32.eq
local.set 809
local.get 809
i32.eqz
if ;; label = @11
local.get 61
i32.const 16
i32.add
local.set 810
local.get 810
local.get 808
i32.store
local.get 808
i32.const 24
i32.add
local.set 811
local.get 811
local.get 61
i32.store
end
local.get 807
i32.const 4
i32.add
local.set 812
local.get 812
i32.load
local.set 813
local.get 813
i32.const 0
i32.eq
local.set 815
local.get 815
if ;; label = @11
br 2 (;@9;)
end
local.get 61
i32.const 20
i32.add
local.set 816
local.get 816
local.get 813
i32.store
local.get 813
i32.const 24
i32.add
local.set 817
local.get 817
local.get 61
i32.store
end
end
local.get 723
local.get 750
i32.add
local.set 818
local.get 750
local.get 729
i32.add
local.set 819
local.get 818
local.set 3
local.get 819
local.set 17
else
local.get 723
local.set 3
local.get 729
local.set 17
end
local.get 3
i32.const 4
i32.add
local.set 820
local.get 820
i32.load
local.set 821
local.get 821
i32.const -2
i32.and
local.set 822
local.get 820
local.get 822
i32.store
local.get 17
i32.const 1
i32.or
local.set 823
local.get 728
i32.const 4
i32.add
local.set 824
local.get 824
local.get 823
i32.store
local.get 728
local.get 17
i32.add
local.set 826
local.get 826
local.get 17
i32.store
local.get 17
i32.const 3
i32.shr_u
local.set 827
local.get 17
i32.const 256
i32.lt_u
local.set 828
local.get 828
if ;; label = @8
local.get 827
i32.const 1
i32.shl
local.set 829
i32.const 2352
local.get 829
i32.const 2
i32.shl
i32.add
local.set 830
i32.const 2312
i32.load
local.set 831
i32.const 1
local.get 827
i32.shl
local.set 832
local.get 831
local.get 832
i32.and
local.set 833
local.get 833
i32.const 0
i32.eq
local.set 834
local.get 834
if ;; label = @9
local.get 831
local.get 832
i32.or
local.set 835
i32.const 2312
local.get 835
i32.store
local.get 830
i32.const 8
i32.add
local.set 81
local.get 830
local.set 21
local.get 81
local.set 85
else
local.get 830
i32.const 8
i32.add
local.set 837
local.get 837
i32.load
local.set 838
local.get 838
local.set 21
local.get 837
local.set 85
end
local.get 85
local.get 728
i32.store
local.get 21
i32.const 12
i32.add
local.set 839
local.get 839
local.get 728
i32.store
local.get 728
i32.const 8
i32.add
local.set 840
local.get 840
local.get 21
i32.store
local.get 728
i32.const 12
i32.add
local.set 841
local.get 841
local.get 830
i32.store
br 2 (;@6;)
end
local.get 17
i32.const 8
i32.shr_u
local.set 842
local.get 842
i32.const 0
i32.eq
local.set 843
block ;; label = @8
local.get 843
if ;; label = @9
i32.const 0
local.set 22
else
local.get 17
i32.const 16777215
i32.gt_u
local.set 844
local.get 844
if ;; label = @10
i32.const 31
local.set 22
br 2 (;@8;)
end
local.get 842
i32.const 1048320
i32.add
local.set 845
local.get 845
i32.const 16
i32.shr_u
local.set 846
local.get 846
i32.const 8
i32.and
local.set 848
local.get 842
local.get 848
i32.shl
local.set 849
local.get 849
i32.const 520192
i32.add
local.set 850
local.get 850
i32.const 16
i32.shr_u
local.set 851
local.get 851
i32.const 4
i32.and
local.set 852
local.get 852
local.get 848
i32.or
local.set 853
local.get 849
local.get 852
i32.shl
local.set 854
local.get 854
i32.const 245760
i32.add
local.set 855
local.get 855
i32.const 16
i32.shr_u
local.set 856
local.get 856
i32.const 2
i32.and
local.set 857
local.get 853
local.get 857
i32.or
local.set 859
i32.const 14
local.get 859
i32.sub
local.set 860
local.get 854
local.get 857
i32.shl
local.set 861
local.get 861
i32.const 15
i32.shr_u
local.set 862
local.get 860
local.get 862
i32.add
local.set 863
local.get 863
i32.const 1
i32.shl
local.set 864
local.get 863
i32.const 7
i32.add
local.set 865
local.get 17
local.get 865
i32.shr_u
local.set 866
local.get 866
i32.const 1
i32.and
local.set 867
local.get 867
local.get 864
i32.or
local.set 868
local.get 868
local.set 22
end
end
i32.const 2616
local.get 22
i32.const 2
i32.shl
i32.add
local.set 871
local.get 728
i32.const 28
i32.add
local.set 872
local.get 872
local.get 22
i32.store
local.get 728
i32.const 16
i32.add
local.set 873
local.get 873
i32.const 4
i32.add
local.set 874
local.get 874
i32.const 0
i32.store
local.get 873
i32.const 0
i32.store
i32.const 2316
i32.load
local.set 875
i32.const 1
local.get 22
i32.shl
local.set 876
local.get 875
local.get 876
i32.and
local.set 877
local.get 877
i32.const 0
i32.eq
local.set 878
local.get 878
if ;; label = @8
local.get 875
local.get 876
i32.or
local.set 879
i32.const 2316
local.get 879
i32.store
local.get 871
local.get 728
i32.store
local.get 728
i32.const 24
i32.add
local.set 880
local.get 880
local.get 871
i32.store
local.get 728
i32.const 12
i32.add
local.set 882
local.get 882
local.get 728
i32.store
local.get 728
i32.const 8
i32.add
local.set 883
local.get 883
local.get 728
i32.store
br 2 (;@6;)
end
local.get 871
i32.load
local.set 884
local.get 884
i32.const 4
i32.add
local.set 885
local.get 885
i32.load
local.set 886
local.get 886
i32.const -8
i32.and
local.set 887
local.get 887
local.get 17
i32.eq
local.set 888
block ;; label = @8
local.get 888
if ;; label = @9
local.get 884
local.set 19
else
local.get 22
i32.const 31
i32.eq
local.set 889
local.get 22
i32.const 1
i32.shr_u
local.set 890
i32.const 25
local.get 890
i32.sub
local.set 891
local.get 889
if (result i32) ;; label = @10
i32.const 0
else
local.get 891
end
local.set 893
local.get 17
local.get 893
i32.shl
local.set 894
local.get 894
local.set 18
local.get 884
local.set 20
loop ;; label = @10
block ;; label = @11
local.get 18
i32.const 31
i32.shr_u
local.set 901
local.get 20
i32.const 16
i32.add
local.get 901
i32.const 2
i32.shl
i32.add
local.set 902
local.get 902
i32.load
local.set 897
local.get 897
i32.const 0
i32.eq
local.set 904
local.get 904
if ;; label = @12
br 1 (;@11;)
end
local.get 18
i32.const 1
i32.shl
local.set 895
local.get 897
i32.const 4
i32.add
local.set 896
local.get 896
i32.load
local.set 898
local.get 898
i32.const -8
i32.and
local.set 899
local.get 899
local.get 17
i32.eq
local.set 900
local.get 900
if ;; label = @12
local.get 897
local.set 19
br 4 (;@8;)
else
local.get 895
local.set 18
local.get 897
local.set 20
end
br 1 (;@10;)
end
end
local.get 902
local.get 728
i32.store
local.get 728
i32.const 24
i32.add
local.set 905
local.get 905
local.get 20
i32.store
local.get 728
i32.const 12
i32.add
local.set 906
local.get 906
local.get 728
i32.store
local.get 728
i32.const 8
i32.add
local.set 907
local.get 907
local.get 728
i32.store
br 3 (;@6;)
end
end
local.get 19
i32.const 8
i32.add
local.set 908
local.get 908
i32.load
local.set 909
local.get 909
i32.const 12
i32.add
local.set 910
local.get 910
local.get 728
i32.store
local.get 908
local.get 728
i32.store
local.get 728
i32.const 8
i32.add
local.set 911
local.get 911
local.get 909
i32.store
local.get 728
i32.const 12
i32.add
local.set 912
local.get 912
local.get 19
i32.store
local.get 728
i32.const 24
i32.add
local.set 913
local.get 913
i32.const 0
i32.store
end
end
local.get 715
i32.const 8
i32.add
local.set 1056
local.get 1056
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
end
i32.const 2760
local.set 4
loop ;; label = @4
block ;; label = @5
local.get 4
i32.load
local.set 915
local.get 915
local.get 631
i32.gt_u
local.set 916
local.get 916
i32.eqz
if ;; label = @6
local.get 4
i32.const 4
i32.add
local.set 917
local.get 917
i32.load
local.set 918
local.get 915
local.get 918
i32.add
local.set 919
local.get 919
local.get 631
i32.gt_u
local.set 920
local.get 920
if ;; label = @7
br 2 (;@5;)
end
end
local.get 4
i32.const 8
i32.add
local.set 921
local.get 921
i32.load
local.set 922
local.get 922
local.set 4
br 1 (;@4;)
end
end
local.get 919
i32.const -47
i32.add
local.set 923
local.get 923
i32.const 8
i32.add
local.set 924
local.get 924
local.set 926
local.get 926
i32.const 7
i32.and
local.set 927
local.get 927
i32.const 0
i32.eq
local.set 928
i32.const 0
local.get 926
i32.sub
local.set 929
local.get 929
i32.const 7
i32.and
local.set 930
local.get 928
if (result i32) ;; label = @4
i32.const 0
else
local.get 930
end
local.set 931
local.get 923
local.get 931
i32.add
local.set 932
local.get 631
i32.const 16
i32.add
local.set 933
local.get 932
local.get 933
i32.lt_u
local.set 934
local.get 934
if (result i32) ;; label = @4
local.get 631
else
local.get 932
end
local.set 935
local.get 935
i32.const 8
i32.add
local.set 937
local.get 935
i32.const 24
i32.add
local.set 938
local.get 76
i32.const -40
i32.add
local.set 939
local.get 77
i32.const 8
i32.add
local.set 940
local.get 940
local.set 941
local.get 941
i32.const 7
i32.and
local.set 942
local.get 942
i32.const 0
i32.eq
local.set 943
i32.const 0
local.get 941
i32.sub
local.set 944
local.get 944
i32.const 7
i32.and
local.set 945
local.get 943
if (result i32) ;; label = @4
i32.const 0
else
local.get 945
end
local.set 946
local.get 77
local.get 946
i32.add
local.set 948
local.get 939
local.get 946
i32.sub
local.set 949
i32.const 2336
local.get 948
i32.store
i32.const 2324
local.get 949
i32.store
local.get 949
i32.const 1
i32.or
local.set 950
local.get 948
i32.const 4
i32.add
local.set 951
local.get 951
local.get 950
i32.store
local.get 77
local.get 939
i32.add
local.set 952
local.get 952
i32.const 4
i32.add
local.set 953
local.get 953
i32.const 40
i32.store
i32.const 2800
i32.load
local.set 954
i32.const 2340
local.get 954
i32.store
local.get 935
i32.const 4
i32.add
local.set 955
local.get 955
i32.const 27
i32.store
local.get 937
i32.const 2760
i64.load align=4
i64.store align=4
local.get 937
i32.const 8
i32.add
i32.const 2760
i32.const 8
i32.add
i64.load align=4
i64.store align=4
i32.const 2760
local.get 77
i32.store
i32.const 2764
local.get 76
i32.store
i32.const 2772
i32.const 0
i32.store
i32.const 2768
local.get 937
i32.store
local.get 938
local.set 957
loop ;; label = @4
block ;; label = @5
local.get 957
i32.const 4
i32.add
local.set 956
local.get 956
i32.const 7
i32.store
local.get 957
i32.const 8
i32.add
local.set 959
local.get 959
local.get 919
i32.lt_u
local.set 960
local.get 960
if ;; label = @6
local.get 956
local.set 957
else
br 1 (;@5;)
end
br 1 (;@4;)
end
end
local.get 935
local.get 631
i32.eq
local.set 961
local.get 961
i32.eqz
if ;; label = @4
local.get 935
local.set 962
local.get 631
local.set 963
local.get 962
local.get 963
i32.sub
local.set 964
local.get 955
i32.load
local.set 965
local.get 965
i32.const -2
i32.and
local.set 966
local.get 955
local.get 966
i32.store
local.get 964
i32.const 1
i32.or
local.set 967
local.get 631
i32.const 4
i32.add
local.set 968
local.get 968
local.get 967
i32.store
local.get 935
local.get 964
i32.store
local.get 964
i32.const 3
i32.shr_u
local.set 970
local.get 964
i32.const 256
i32.lt_u
local.set 971
local.get 971
if ;; label = @5
local.get 970
i32.const 1
i32.shl
local.set 972
i32.const 2352
local.get 972
i32.const 2
i32.shl
i32.add
local.set 973
i32.const 2312
i32.load
local.set 974
i32.const 1
local.get 970
i32.shl
local.set 975
local.get 974
local.get 975
i32.and
local.set 976
local.get 976
i32.const 0
i32.eq
local.set 977
local.get 977
if ;; label = @6
local.get 974
local.get 975
i32.or
local.set 978
i32.const 2312
local.get 978
i32.store
local.get 973
i32.const 8
i32.add
local.set 80
local.get 973
local.set 14
local.get 80
local.set 84
else
local.get 973
i32.const 8
i32.add
local.set 979
local.get 979
i32.load
local.set 982
local.get 982
local.set 14
local.get 979
local.set 84
end
local.get 84
local.get 631
i32.store
local.get 14
i32.const 12
i32.add
local.set 983
local.get 983
local.get 631
i32.store
local.get 631
i32.const 8
i32.add
local.set 984
local.get 984
local.get 14
i32.store
local.get 631
i32.const 12
i32.add
local.set 985
local.get 985
local.get 973
i32.store
br 3 (;@2;)
end
local.get 964
i32.const 8
i32.shr_u
local.set 986
local.get 986
i32.const 0
i32.eq
local.set 987
local.get 987
if ;; label = @5
i32.const 0
local.set 15
else
local.get 964
i32.const 16777215
i32.gt_u
local.set 988
local.get 988
if ;; label = @6
i32.const 31
local.set 15
else
local.get 986
i32.const 1048320
i32.add
local.set 989
local.get 989
i32.const 16
i32.shr_u
local.set 990
local.get 990
i32.const 8
i32.and
local.set 991
local.get 986
local.get 991
i32.shl
local.set 993
local.get 993
i32.const 520192
i32.add
local.set 994
local.get 994
i32.const 16
i32.shr_u
local.set 995
local.get 995
i32.const 4
i32.and
local.set 996
local.get 996
local.get 991
i32.or
local.set 997
local.get 993
local.get 996
i32.shl
local.set 998
local.get 998
i32.const 245760
i32.add
local.set 999
local.get 999
i32.const 16
i32.shr_u
local.set 1000
local.get 1000
i32.const 2
i32.and
local.set 1001
local.get 997
local.get 1001
i32.or
local.set 1002
i32.const 14
local.get 1002
i32.sub
local.set 1004
local.get 998
local.get 1001
i32.shl
local.set 1005
local.get 1005
i32.const 15
i32.shr_u
local.set 1006
local.get 1004
local.get 1006
i32.add
local.set 1007
local.get 1007
i32.const 1
i32.shl
local.set 1008
local.get 1007
i32.const 7
i32.add
local.set 1009
local.get 964
local.get 1009
i32.shr_u
local.set 1010
local.get 1010
i32.const 1
i32.and
local.set 1011
local.get 1011
local.get 1008
i32.or
local.set 1012
local.get 1012
local.set 15
end
end
i32.const 2616
local.get 15
i32.const 2
i32.shl
i32.add
local.set 1013
local.get 631
i32.const 28
i32.add
local.set 1015
local.get 1015
local.get 15
i32.store
local.get 631
i32.const 20
i32.add
local.set 1016
local.get 1016
i32.const 0
i32.store
local.get 933
i32.const 0
i32.store
i32.const 2316
i32.load
local.set 1017
i32.const 1
local.get 15
i32.shl
local.set 1018
local.get 1017
local.get 1018
i32.and
local.set 1019
local.get 1019
i32.const 0
i32.eq
local.set 1020
local.get 1020
if ;; label = @5
local.get 1017
local.get 1018
i32.or
local.set 1021
i32.const 2316
local.get 1021
i32.store
local.get 1013
local.get 631
i32.store
local.get 631
i32.const 24
i32.add
local.set 1022
local.get 1022
local.get 1013
i32.store
local.get 631
i32.const 12
i32.add
local.set 1023
local.get 1023
local.get 631
i32.store
local.get 631
i32.const 8
i32.add
local.set 1024
local.get 1024
local.get 631
i32.store
br 3 (;@2;)
end
local.get 1013
i32.load
local.set 1026
local.get 1026
i32.const 4
i32.add
local.set 1027
local.get 1027
i32.load
local.set 1028
local.get 1028
i32.const -8
i32.and
local.set 1029
local.get 1029
local.get 964
i32.eq
local.set 1030
block ;; label = @5
local.get 1030
if ;; label = @6
local.get 1026
local.set 12
else
local.get 15
i32.const 31
i32.eq
local.set 1031
local.get 15
i32.const 1
i32.shr_u
local.set 1032
i32.const 25
local.get 1032
i32.sub
local.set 1033
local.get 1031
if (result i32) ;; label = @7
i32.const 0
else
local.get 1033
end
local.set 1034
local.get 964
local.get 1034
i32.shl
local.set 1035
local.get 1035
local.set 11
local.get 1026
local.set 13
loop ;; label = @7
block ;; label = @8
local.get 11
i32.const 31
i32.shr_u
local.set 1043
local.get 13
i32.const 16
i32.add
local.get 1043
i32.const 2
i32.shl
i32.add
local.set 1044
local.get 1044
i32.load
local.set 1039
local.get 1039
i32.const 0
i32.eq
local.set 1045
local.get 1045
if ;; label = @9
br 1 (;@8;)
end
local.get 11
i32.const 1
i32.shl
local.set 1037
local.get 1039
i32.const 4
i32.add
local.set 1038
local.get 1038
i32.load
local.set 1040
local.get 1040
i32.const -8
i32.and
local.set 1041
local.get 1041
local.get 964
i32.eq
local.set 1042
local.get 1042
if ;; label = @9
local.get 1039
local.set 12
br 4 (;@5;)
else
local.get 1037
local.set 11
local.get 1039
local.set 13
end
br 1 (;@7;)
end
end
local.get 1044
local.get 631
i32.store
local.get 631
i32.const 24
i32.add
local.set 1046
local.get 1046
local.get 13
i32.store
local.get 631
i32.const 12
i32.add
local.set 1048
local.get 1048
local.get 631
i32.store
local.get 631
i32.const 8
i32.add
local.set 1049
local.get 1049
local.get 631
i32.store
br 4 (;@2;)
end
end
local.get 12
i32.const 8
i32.add
local.set 1050
local.get 1050
i32.load
local.set 1051
local.get 1051
i32.const 12
i32.add
local.set 1052
local.get 1052
local.get 631
i32.store
local.get 1050
local.get 631
i32.store
local.get 631
i32.const 8
i32.add
local.set 1053
local.get 1053
local.get 1051
i32.store
local.get 631
i32.const 12
i32.add
local.set 1054
local.get 1054
local.get 12
i32.store
local.get 631
i32.const 24
i32.add
local.set 1055
local.get 1055
i32.const 0
i32.store
end
end
end
i32.const 2324
i32.load
local.set 1057
local.get 1057
local.get 9
i32.gt_u
local.set 1059
local.get 1059
if ;; label = @2
local.get 1057
local.get 9
i32.sub
local.set 1060
i32.const 2324
local.get 1060
i32.store
i32.const 2336
i32.load
local.set 1061
local.get 1061
local.get 9
i32.add
local.set 1062
i32.const 2336
local.get 1062
i32.store
local.get 1060
i32.const 1
i32.or
local.set 1063
local.get 1062
i32.const 4
i32.add
local.set 1064
local.get 1064
local.get 1063
i32.store
local.get 9
i32.const 3
i32.or
local.set 1065
local.get 1061
i32.const 4
i32.add
local.set 1066
local.get 1066
local.get 1065
i32.store
local.get 1061
i32.const 8
i32.add
local.set 1067
local.get 1067
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
end
call 32
local.set 1068
local.get 1068
i32.const 12
i32.store
i32.const 0
local.set 1
local.get 1096
global.set 12
local.get 1
return)
(func (;27;) (type 3) (param i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 296
local.get 0
i32.const 0
i32.eq
local.set 29
local.get 29
if ;; label = @1
return
end
local.get 0
i32.const -8
i32.add
local.set 140
i32.const 2328
i32.load
local.set 216
local.get 0
i32.const -4
i32.add
local.set 227
local.get 227
i32.load
local.set 238
local.get 238
i32.const -8
i32.and
local.set 249
local.get 140
local.get 249
i32.add
local.set 260
local.get 238
i32.const 1
i32.and
local.set 271
local.get 271
i32.const 0
i32.eq
local.set 282
block ;; label = @1
local.get 282
if ;; label = @2
local.get 140
i32.load
local.set 30
local.get 238
i32.const 3
i32.and
local.set 41
local.get 41
i32.const 0
i32.eq
local.set 52
local.get 52
if ;; label = @3
return
end
i32.const 0
local.get 30
i32.sub
local.set 63
local.get 140
local.get 63
i32.add
local.set 74
local.get 30
local.get 249
i32.add
local.set 85
local.get 74
local.get 216
i32.lt_u
local.set 96
local.get 96
if ;; label = @3
return
end
i32.const 2332
i32.load
local.set 107
local.get 107
local.get 74
i32.eq
local.set 118
local.get 118
if ;; label = @3
local.get 260
i32.const 4
i32.add
local.set 270
local.get 270
i32.load
local.set 272
local.get 272
i32.const 3
i32.and
local.set 273
local.get 273
i32.const 3
i32.eq
local.set 274
local.get 274
i32.eqz
if ;; label = @4
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 3 (;@1;)
end
local.get 74
local.get 85
i32.add
local.set 275
local.get 74
i32.const 4
i32.add
local.set 276
local.get 85
i32.const 1
i32.or
local.set 277
local.get 272
i32.const -2
i32.and
local.set 278
i32.const 2320
local.get 85
i32.store
local.get 270
local.get 278
i32.store
local.get 276
local.get 277
i32.store
local.get 275
local.get 85
i32.store
return
end
local.get 30
i32.const 3
i32.shr_u
local.set 129
local.get 30
i32.const 256
i32.lt_u
local.set 141
local.get 141
if ;; label = @3
local.get 74
i32.const 8
i32.add
local.set 152
local.get 152
i32.load
local.set 163
local.get 74
i32.const 12
i32.add
local.set 174
local.get 174
i32.load
local.set 185
local.get 185
local.get 163
i32.eq
local.set 196
local.get 196
if ;; label = @4
i32.const 1
local.get 129
i32.shl
local.set 207
local.get 207
i32.const -1
i32.xor
local.set 213
i32.const 2312
i32.load
local.set 214
local.get 214
local.get 213
i32.and
local.set 215
i32.const 2312
local.get 215
i32.store
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 3 (;@1;)
else
local.get 163
i32.const 12
i32.add
local.set 217
local.get 217
local.get 185
i32.store
local.get 185
i32.const 8
i32.add
local.set 218
local.get 218
local.get 163
i32.store
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 3 (;@1;)
end
unreachable
end
local.get 74
i32.const 24
i32.add
local.set 219
local.get 219
i32.load
local.set 220
local.get 74
i32.const 12
i32.add
local.set 221
local.get 221
i32.load
local.set 222
local.get 222
local.get 74
i32.eq
local.set 223
block ;; label = @3
local.get 223
if ;; label = @4
local.get 74
i32.const 16
i32.add
local.set 229
local.get 229
i32.const 4
i32.add
local.set 230
local.get 230
i32.load
local.set 231
local.get 231
i32.const 0
i32.eq
local.set 232
local.get 232
if ;; label = @5
local.get 229
i32.load
local.set 233
local.get 233
i32.const 0
i32.eq
local.set 234
local.get 234
if ;; label = @6
i32.const 0
local.set 23
br 3 (;@3;)
else
local.get 233
local.set 12
local.get 229
local.set 15
end
else
local.get 231
local.set 12
local.get 230
local.set 15
end
local.get 12
local.set 10
local.get 15
local.set 13
loop ;; label = @5
block ;; label = @6
local.get 10
i32.const 20
i32.add
local.set 235
local.get 235
i32.load
local.set 236
local.get 236
i32.const 0
i32.eq
local.set 237
local.get 237
if ;; label = @7
local.get 10
i32.const 16
i32.add
local.set 239
local.get 239
i32.load
local.set 240
local.get 240
i32.const 0
i32.eq
local.set 241
local.get 241
if ;; label = @8
br 2 (;@6;)
else
local.get 240
local.set 11
local.get 239
local.set 14
end
else
local.get 236
local.set 11
local.get 235
local.set 14
end
local.get 11
local.set 10
local.get 14
local.set 13
br 1 (;@5;)
end
end
local.get 13
i32.const 0
i32.store
local.get 10
local.set 23
else
local.get 74
i32.const 8
i32.add
local.set 224
local.get 224
i32.load
local.set 225
local.get 225
i32.const 12
i32.add
local.set 226
local.get 226
local.get 222
i32.store
local.get 222
i32.const 8
i32.add
local.set 228
local.get 228
local.get 225
i32.store
local.get 222
local.set 23
end
end
local.get 220
i32.const 0
i32.eq
local.set 242
local.get 242
if ;; label = @3
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
else
local.get 74
i32.const 28
i32.add
local.set 243
local.get 243
i32.load
local.set 244
i32.const 2616
local.get 244
i32.const 2
i32.shl
i32.add
local.set 245
local.get 245
i32.load
local.set 246
local.get 246
local.get 74
i32.eq
local.set 247
local.get 247
if ;; label = @4
local.get 245
local.get 23
i32.store
local.get 23
i32.const 0
i32.eq
local.set 293
local.get 293
if ;; label = @5
i32.const 1
local.get 244
i32.shl
local.set 248
local.get 248
i32.const -1
i32.xor
local.set 250
i32.const 2316
i32.load
local.set 251
local.get 251
local.get 250
i32.and
local.set 252
i32.const 2316
local.get 252
i32.store
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 4 (;@1;)
end
else
local.get 220
i32.const 16
i32.add
local.set 253
local.get 253
i32.load
local.set 254
local.get 254
local.get 74
i32.eq
local.set 255
local.get 220
i32.const 20
i32.add
local.set 256
local.get 255
if (result i32) ;; label = @5
local.get 253
else
local.get 256
end
local.set 27
local.get 27
local.get 23
i32.store
local.get 23
i32.const 0
i32.eq
local.set 257
local.get 257
if ;; label = @5
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 4 (;@1;)
end
end
local.get 23
i32.const 24
i32.add
local.set 258
local.get 258
local.get 220
i32.store
local.get 74
i32.const 16
i32.add
local.set 259
local.get 259
i32.load
local.set 261
local.get 261
i32.const 0
i32.eq
local.set 262
local.get 262
i32.eqz
if ;; label = @4
local.get 23
i32.const 16
i32.add
local.set 263
local.get 263
local.get 261
i32.store
local.get 261
i32.const 24
i32.add
local.set 264
local.get 264
local.get 23
i32.store
end
local.get 259
i32.const 4
i32.add
local.set 265
local.get 265
i32.load
local.set 266
local.get 266
i32.const 0
i32.eq
local.set 267
local.get 267
if ;; label = @4
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
else
local.get 23
i32.const 20
i32.add
local.set 268
local.get 268
local.get 266
i32.store
local.get 266
i32.const 24
i32.add
local.set 269
local.get 269
local.get 23
i32.store
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
end
end
else
local.get 140
local.set 8
local.get 249
local.set 9
local.get 140
local.set 279
end
end
local.get 279
local.get 260
i32.lt_u
local.set 280
local.get 280
i32.eqz
if ;; label = @1
return
end
local.get 260
i32.const 4
i32.add
local.set 281
local.get 281
i32.load
local.set 283
local.get 283
i32.const 1
i32.and
local.set 284
local.get 284
i32.const 0
i32.eq
local.set 285
local.get 285
if ;; label = @1
return
end
local.get 283
i32.const 2
i32.and
local.set 286
local.get 286
i32.const 0
i32.eq
local.set 287
local.get 287
if ;; label = @1
i32.const 2336
i32.load
local.set 288
local.get 288
local.get 260
i32.eq
local.set 289
local.get 289
if ;; label = @2
i32.const 2324
i32.load
local.set 290
local.get 290
local.get 9
i32.add
local.set 291
i32.const 2324
local.get 291
i32.store
i32.const 2336
local.get 8
i32.store
local.get 291
i32.const 1
i32.or
local.set 292
local.get 8
i32.const 4
i32.add
local.set 31
local.get 31
local.get 292
i32.store
i32.const 2332
i32.load
local.set 32
local.get 8
local.get 32
i32.eq
local.set 33
local.get 33
i32.eqz
if ;; label = @3
return
end
i32.const 2332
i32.const 0
i32.store
i32.const 2320
i32.const 0
i32.store
return
end
i32.const 2332
i32.load
local.set 34
local.get 34
local.get 260
i32.eq
local.set 35
local.get 35
if ;; label = @2
i32.const 2320
i32.load
local.set 36
local.get 36
local.get 9
i32.add
local.set 37
i32.const 2320
local.get 37
i32.store
i32.const 2332
local.get 279
i32.store
local.get 37
i32.const 1
i32.or
local.set 38
local.get 8
i32.const 4
i32.add
local.set 39
local.get 39
local.get 38
i32.store
local.get 279
local.get 37
i32.add
local.set 40
local.get 40
local.get 37
i32.store
return
end
local.get 283
i32.const -8
i32.and
local.set 42
local.get 42
local.get 9
i32.add
local.set 43
local.get 283
i32.const 3
i32.shr_u
local.set 44
local.get 283
i32.const 256
i32.lt_u
local.set 45
block ;; label = @2
local.get 45
if ;; label = @3
local.get 260
i32.const 8
i32.add
local.set 46
local.get 46
i32.load
local.set 47
local.get 260
i32.const 12
i32.add
local.set 48
local.get 48
i32.load
local.set 49
local.get 49
local.get 47
i32.eq
local.set 50
local.get 50
if ;; label = @4
i32.const 1
local.get 44
i32.shl
local.set 51
local.get 51
i32.const -1
i32.xor
local.set 53
i32.const 2312
i32.load
local.set 54
local.get 54
local.get 53
i32.and
local.set 55
i32.const 2312
local.get 55
i32.store
br 2 (;@2;)
else
local.get 47
i32.const 12
i32.add
local.set 56
local.get 56
local.get 49
i32.store
local.get 49
i32.const 8
i32.add
local.set 57
local.get 57
local.get 47
i32.store
br 2 (;@2;)
end
unreachable
else
local.get 260
i32.const 24
i32.add
local.set 58
local.get 58
i32.load
local.set 59
local.get 260
i32.const 12
i32.add
local.set 60
local.get 60
i32.load
local.set 61
local.get 61
local.get 260
i32.eq
local.set 62
block ;; label = @4
local.get 62
if ;; label = @5
local.get 260
i32.const 16
i32.add
local.set 68
local.get 68
i32.const 4
i32.add
local.set 69
local.get 69
i32.load
local.set 70
local.get 70
i32.const 0
i32.eq
local.set 71
local.get 71
if ;; label = @6
local.get 68
i32.load
local.set 72
local.get 72
i32.const 0
i32.eq
local.set 73
local.get 73
if ;; label = @7
i32.const 0
local.set 24
br 3 (;@4;)
else
local.get 72
local.set 18
local.get 68
local.set 21
end
else
local.get 70
local.set 18
local.get 69
local.set 21
end
local.get 18
local.set 16
local.get 21
local.set 19
loop ;; label = @6
block ;; label = @7
local.get 16
i32.const 20
i32.add
local.set 75
local.get 75
i32.load
local.set 76
local.get 76
i32.const 0
i32.eq
local.set 77
local.get 77
if ;; label = @8
local.get 16
i32.const 16
i32.add
local.set 78
local.get 78
i32.load
local.set 79
local.get 79
i32.const 0
i32.eq
local.set 80
local.get 80
if ;; label = @9
br 2 (;@7;)
else
local.get 79
local.set 17
local.get 78
local.set 20
end
else
local.get 76
local.set 17
local.get 75
local.set 20
end
local.get 17
local.set 16
local.get 20
local.set 19
br 1 (;@6;)
end
end
local.get 19
i32.const 0
i32.store
local.get 16
local.set 24
else
local.get 260
i32.const 8
i32.add
local.set 64
local.get 64
i32.load
local.set 65
local.get 65
i32.const 12
i32.add
local.set 66
local.get 66
local.get 61
i32.store
local.get 61
i32.const 8
i32.add
local.set 67
local.get 67
local.get 65
i32.store
local.get 61
local.set 24
end
end
local.get 59
i32.const 0
i32.eq
local.set 81
local.get 81
i32.eqz
if ;; label = @4
local.get 260
i32.const 28
i32.add
local.set 82
local.get 82
i32.load
local.set 83
i32.const 2616
local.get 83
i32.const 2
i32.shl
i32.add
local.set 84
local.get 84
i32.load
local.set 86
local.get 86
local.get 260
i32.eq
local.set 87
local.get 87
if ;; label = @5
local.get 84
local.get 24
i32.store
local.get 24
i32.const 0
i32.eq
local.set 294
local.get 294
if ;; label = @6
i32.const 1
local.get 83
i32.shl
local.set 88
local.get 88
i32.const -1
i32.xor
local.set 89
i32.const 2316
i32.load
local.set 90
local.get 90
local.get 89
i32.and
local.set 91
i32.const 2316
local.get 91
i32.store
br 4 (;@2;)
end
else
local.get 59
i32.const 16
i32.add
local.set 92
local.get 92
i32.load
local.set 93
local.get 93
local.get 260
i32.eq
local.set 94
local.get 59
i32.const 20
i32.add
local.set 95
local.get 94
if (result i32) ;; label = @6
local.get 92
else
local.get 95
end
local.set 28
local.get 28
local.get 24
i32.store
local.get 24
i32.const 0
i32.eq
local.set 97
local.get 97
if ;; label = @6
br 4 (;@2;)
end
end
local.get 24
i32.const 24
i32.add
local.set 98
local.get 98
local.get 59
i32.store
local.get 260
i32.const 16
i32.add
local.set 99
local.get 99
i32.load
local.set 100
local.get 100
i32.const 0
i32.eq
local.set 101
local.get 101
i32.eqz
if ;; label = @5
local.get 24
i32.const 16
i32.add
local.set 102
local.get 102
local.get 100
i32.store
local.get 100
i32.const 24
i32.add
local.set 103
local.get 103
local.get 24
i32.store
end
local.get 99
i32.const 4
i32.add
local.set 104
local.get 104
i32.load
local.set 105
local.get 105
i32.const 0
i32.eq
local.set 106
local.get 106
i32.eqz
if ;; label = @5
local.get 24
i32.const 20
i32.add
local.set 108
local.get 108
local.get 105
i32.store
local.get 105
i32.const 24
i32.add
local.set 109
local.get 109
local.get 24
i32.store
end
end
end
end
local.get 43
i32.const 1
i32.or
local.set 110
local.get 8
i32.const 4
i32.add
local.set 111
local.get 111
local.get 110
i32.store
local.get 279
local.get 43
i32.add
local.set 112
local.get 112
local.get 43
i32.store
i32.const 2332
i32.load
local.set 113
local.get 8
local.get 113
i32.eq
local.set 114
local.get 114
if ;; label = @2
i32.const 2320
local.get 43
i32.store
return
else
local.get 43
local.set 22
end
else
local.get 283
i32.const -2
i32.and
local.set 115
local.get 281
local.get 115
i32.store
local.get 9
i32.const 1
i32.or
local.set 116
local.get 8
i32.const 4
i32.add
local.set 117
local.get 117
local.get 116
i32.store
local.get 279
local.get 9
i32.add
local.set 119
local.get 119
local.get 9
i32.store
local.get 9
local.set 22
end
local.get 22
i32.const 3
i32.shr_u
local.set 120
local.get 22
i32.const 256
i32.lt_u
local.set 121
local.get 121
if ;; label = @1
local.get 120
i32.const 1
i32.shl
local.set 122
i32.const 2352
local.get 122
i32.const 2
i32.shl
i32.add
local.set 123
i32.const 2312
i32.load
local.set 124
i32.const 1
local.get 120
i32.shl
local.set 125
local.get 124
local.get 125
i32.and
local.set 126
local.get 126
i32.const 0
i32.eq
local.set 127
local.get 127
if ;; label = @2
local.get 124
local.get 125
i32.or
local.set 128
i32.const 2312
local.get 128
i32.store
local.get 123
i32.const 8
i32.add
local.set 25
local.get 123
local.set 7
local.get 25
local.set 26
else
local.get 123
i32.const 8
i32.add
local.set 130
local.get 130
i32.load
local.set 131
local.get 131
local.set 7
local.get 130
local.set 26
end
local.get 26
local.get 8
i32.store
local.get 7
i32.const 12
i32.add
local.set 132
local.get 132
local.get 8
i32.store
local.get 8
i32.const 8
i32.add
local.set 133
local.get 133
local.get 7
i32.store
local.get 8
i32.const 12
i32.add
local.set 134
local.get 134
local.get 123
i32.store
return
end
local.get 22
i32.const 8
i32.shr_u
local.set 135
local.get 135
i32.const 0
i32.eq
local.set 136
local.get 136
if ;; label = @1
i32.const 0
local.set 6
else
local.get 22
i32.const 16777215
i32.gt_u
local.set 137
local.get 137
if ;; label = @2
i32.const 31
local.set 6
else
local.get 135
i32.const 1048320
i32.add
local.set 138
local.get 138
i32.const 16
i32.shr_u
local.set 139
local.get 139
i32.const 8
i32.and
local.set 142
local.get 135
local.get 142
i32.shl
local.set 143
local.get 143
i32.const 520192
i32.add
local.set 144
local.get 144
i32.const 16
i32.shr_u
local.set 145
local.get 145
i32.const 4
i32.and
local.set 146
local.get 146
local.get 142
i32.or
local.set 147
local.get 143
local.get 146
i32.shl
local.set 148
local.get 148
i32.const 245760
i32.add
local.set 149
local.get 149
i32.const 16
i32.shr_u
local.set 150
local.get 150
i32.const 2
i32.and
local.set 151
local.get 147
local.get 151
i32.or
local.set 153
i32.const 14
local.get 153
i32.sub
local.set 154
local.get 148
local.get 151
i32.shl
local.set 155
local.get 155
i32.const 15
i32.shr_u
local.set 156
local.get 154
local.get 156
i32.add
local.set 157
local.get 157
i32.const 1
i32.shl
local.set 158
local.get 157
i32.const 7
i32.add
local.set 159
local.get 22
local.get 159
i32.shr_u
local.set 160
local.get 160
i32.const 1
i32.and
local.set 161
local.get 161
local.get 158
i32.or
local.set 162
local.get 162
local.set 6
end
end
i32.const 2616
local.get 6
i32.const 2
i32.shl
i32.add
local.set 164
local.get 8
i32.const 28
i32.add
local.set 165
local.get 165
local.get 6
i32.store
local.get 8
i32.const 16
i32.add
local.set 166
local.get 8
i32.const 20
i32.add
local.set 167
local.get 167
i32.const 0
i32.store
local.get 166
i32.const 0
i32.store
i32.const 2316
i32.load
local.set 168
i32.const 1
local.get 6
i32.shl
local.set 169
local.get 168
local.get 169
i32.and
local.set 170
local.get 170
i32.const 0
i32.eq
local.set 171
block ;; label = @1
local.get 171
if ;; label = @2
local.get 168
local.get 169
i32.or
local.set 172
i32.const 2316
local.get 172
i32.store
local.get 164
local.get 8
i32.store
local.get 8
i32.const 24
i32.add
local.set 173
local.get 173
local.get 164
i32.store
local.get 8
i32.const 12
i32.add
local.set 175
local.get 175
local.get 8
i32.store
local.get 8
i32.const 8
i32.add
local.set 176
local.get 176
local.get 8
i32.store
else
local.get 164
i32.load
local.set 177
local.get 177
i32.const 4
i32.add
local.set 178
local.get 178
i32.load
local.set 179
local.get 179
i32.const -8
i32.and
local.set 180
local.get 180
local.get 22
i32.eq
local.set 181
block ;; label = @3
local.get 181
if ;; label = @4
local.get 177
local.set 4
else
local.get 6
i32.const 31
i32.eq
local.set 182
local.get 6
i32.const 1
i32.shr_u
local.set 183
i32.const 25
local.get 183
i32.sub
local.set 184
local.get 182
if (result i32) ;; label = @5
i32.const 0
else
local.get 184
end
local.set 186
local.get 22
local.get 186
i32.shl
local.set 187
local.get 187
local.set 3
local.get 177
local.set 5
loop ;; label = @5
block ;; label = @6
local.get 3
i32.const 31
i32.shr_u
local.set 194
local.get 5
i32.const 16
i32.add
local.get 194
i32.const 2
i32.shl
i32.add
local.set 195
local.get 195
i32.load
local.set 190
local.get 190
i32.const 0
i32.eq
local.set 197
local.get 197
if ;; label = @7
br 1 (;@6;)
end
local.get 3
i32.const 1
i32.shl
local.set 188
local.get 190
i32.const 4
i32.add
local.set 189
local.get 189
i32.load
local.set 191
local.get 191
i32.const -8
i32.and
local.set 192
local.get 192
local.get 22
i32.eq
local.set 193
local.get 193
if ;; label = @7
local.get 190
local.set 4
br 4 (;@3;)
else
local.get 188
local.set 3
local.get 190
local.set 5
end
br 1 (;@5;)
end
end
local.get 195
local.get 8
i32.store
local.get 8
i32.const 24
i32.add
local.set 198
local.get 198
local.get 5
i32.store
local.get 8
i32.const 12
i32.add
local.set 199
local.get 199
local.get 8
i32.store
local.get 8
i32.const 8
i32.add
local.set 200
local.get 200
local.get 8
i32.store
br 3 (;@1;)
end
end
local.get 4
i32.const 8
i32.add
local.set 201
local.get 201
i32.load
local.set 202
local.get 202
i32.const 12
i32.add
local.set 203
local.get 203
local.get 8
i32.store
local.get 201
local.get 8
i32.store
local.get 8
i32.const 8
i32.add
local.set 204
local.get 204
local.get 202
i32.store
local.get 8
i32.const 12
i32.add
local.set 205
local.get 205
local.get 4
i32.store
local.get 8
i32.const 24
i32.add
local.set 206
local.get 206
i32.const 0
i32.store
end
end
i32.const 2344
i32.load
local.set 208
local.get 208
i32.const -1
i32.add
local.set 209
i32.const 2344
local.get 209
i32.store
local.get 209
i32.const 0
i32.eq
local.set 210
local.get 210
i32.eqz
if ;; label = @1
return
end
i32.const 2768
local.set 2
loop ;; label = @1
block ;; label = @2
local.get 2
i32.load
local.set 1
local.get 1
i32.const 0
i32.eq
local.set 211
local.get 1
i32.const 8
i32.add
local.set 212
local.get 211
if ;; label = @3
br 1 (;@2;)
else
local.get 212
local.set 2
end
br 1 (;@1;)
end
end
i32.const 2344
i32.const -1
i32.store
return)
(func (;28;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 8
global.get 12
i32.const 16
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 16
call 3
end
local.get 8
local.set 6
local.get 0
i32.const 60
i32.add
local.set 1
local.get 1
i32.load
local.set 2
local.get 2
call 33
local.set 3
local.get 6
local.get 3
i32.store
i32.const 6
local.get 6
call 13
local.set 4
local.get 4
call 31
local.set 5
local.get 8
global.set 12
local.get 5
return)
(func (;29;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 66
global.get 12
i32.const 48
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 48
call 3
end
local.get 66
i32.const 32
i32.add
local.set 60
local.get 66
i32.const 16
i32.add
local.set 59
local.get 66
local.set 30
local.get 0
i32.const 28
i32.add
local.set 41
local.get 41
i32.load
local.set 52
local.get 30
local.get 52
i32.store
local.get 30
i32.const 4
i32.add
local.set 55
local.get 0
i32.const 20
i32.add
local.set 56
local.get 56
i32.load
local.set 57
local.get 57
local.get 52
i32.sub
local.set 58
local.get 55
local.get 58
i32.store
local.get 30
i32.const 8
i32.add
local.set 10
local.get 10
local.get 1
i32.store
local.get 30
i32.const 12
i32.add
local.set 11
local.get 11
local.get 2
i32.store
local.get 58
local.get 2
i32.add
local.set 12
local.get 0
i32.const 60
i32.add
local.set 13
local.get 13
i32.load
local.set 14
local.get 30
local.set 15
local.get 59
local.get 14
i32.store
local.get 59
i32.const 4
i32.add
local.set 61
local.get 61
local.get 15
i32.store
local.get 59
i32.const 8
i32.add
local.set 62
local.get 62
i32.const 2
i32.store
i32.const 146
local.get 59
call 11
local.set 16
local.get 16
call 31
local.set 17
local.get 12
local.get 17
i32.eq
local.set 18
block ;; label = @1
local.get 18
if ;; label = @2
i32.const 3
local.set 65
else
i32.const 2
local.set 4
local.get 12
local.set 5
local.get 30
local.set 6
local.get 17
local.set 26
loop ;; label = @3
block ;; label = @4
local.get 26
i32.const 0
i32.lt_s
local.set 27
local.get 27
if ;; label = @5
br 1 (;@4;)
end
local.get 5
local.get 26
i32.sub
local.set 36
local.get 6
i32.const 4
i32.add
local.set 37
local.get 37
i32.load
local.set 38
local.get 26
local.get 38
i32.gt_u
local.set 39
local.get 6
i32.const 8
i32.add
local.set 40
local.get 39
if (result i32) ;; label = @5
local.get 40
else
local.get 6
end
local.set 9
local.get 39
i32.const 31
i32.shl
i32.const 31
i32.shr_s
local.set 42
local.get 4
local.get 42
i32.add
local.set 8
local.get 39
if (result i32) ;; label = @5
local.get 38
else
i32.const 0
end
local.set 43
local.get 26
local.get 43
i32.sub
local.set 3
local.get 9
i32.load
local.set 44
local.get 44
local.get 3
i32.add
local.set 45
local.get 9
local.get 45
i32.store
local.get 9
i32.const 4
i32.add
local.set 46
local.get 46
i32.load
local.set 47
local.get 47
local.get 3
i32.sub
local.set 48
local.get 46
local.get 48
i32.store
local.get 13
i32.load
local.set 49
local.get 9
local.set 50
local.get 60
local.get 49
i32.store
local.get 60
i32.const 4
i32.add
local.set 63
local.get 63
local.get 50
i32.store
local.get 60
i32.const 8
i32.add
local.set 64
local.get 64
local.get 8
i32.store
i32.const 146
local.get 60
call 11
local.set 51
local.get 51
call 31
local.set 53
local.get 36
local.get 53
i32.eq
local.set 54
local.get 54
if ;; label = @5
i32.const 3
local.set 65
br 4 (;@1;)
else
local.get 8
local.set 4
local.get 36
local.set 5
local.get 9
local.set 6
local.get 53
local.set 26
end
br 1 (;@3;)
end
end
local.get 0
i32.const 16
i32.add
local.set 28
local.get 28
i32.const 0
i32.store
local.get 41
i32.const 0
i32.store
local.get 56
i32.const 0
i32.store
local.get 0
i32.load
local.set 29
local.get 29
i32.const 32
i32.or
local.set 31
local.get 0
local.get 31
i32.store
local.get 4
i32.const 2
i32.eq
local.set 32
local.get 32
if ;; label = @3
i32.const 0
local.set 7
else
local.get 6
i32.const 4
i32.add
local.set 33
local.get 33
i32.load
local.set 34
local.get 2
local.get 34
i32.sub
local.set 35
local.get 35
local.set 7
end
end
end
local.get 65
i32.const 3
i32.eq
if ;; label = @1
local.get 0
i32.const 44
i32.add
local.set 19
local.get 19
i32.load
local.set 20
local.get 0
i32.const 48
i32.add
local.set 21
local.get 21
i32.load
local.set 22
local.get 20
local.get 22
i32.add
local.set 23
local.get 0
i32.const 16
i32.add
local.set 24
local.get 24
local.get 23
i32.store
local.get 20
local.set 25
local.get 41
local.get 25
i32.store
local.get 56
local.get 25
i32.store
local.get 2
local.set 7
end
local.get 66
global.set 12
local.get 7
return)
(func (;30;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 18
global.get 12
i32.const 32
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 32
call 3
end
local.get 18
local.set 12
local.get 18
i32.const 20
i32.add
local.set 5
local.get 0
i32.const 60
i32.add
local.set 6
local.get 6
i32.load
local.set 7
local.get 5
local.set 8
local.get 12
local.get 7
i32.store
local.get 12
i32.const 4
i32.add
local.set 13
local.get 13
i32.const 0
i32.store
local.get 12
i32.const 8
i32.add
local.set 14
local.get 14
local.get 1
i32.store
local.get 12
i32.const 12
i32.add
local.set 15
local.get 15
local.get 8
i32.store
local.get 12
i32.const 16
i32.add
local.set 16
local.get 16
local.get 2
i32.store
i32.const 140
local.get 12
call 10
local.set 9
local.get 9
call 31
local.set 10
local.get 10
i32.const 0
i32.lt_s
local.set 11
local.get 11
if ;; label = @1
local.get 5
i32.const -1
i32.store
i32.const -1
local.set 4
else
local.get 5
i32.load
local.set 3
local.get 3
local.set 4
end
local.get 18
global.set 12
local.get 4
return)
(func (;31;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32)
global.get 12
local.set 6
local.get 0
i32.const -4096
i32.gt_u
local.set 2
local.get 2
if ;; label = @1
i32.const 0
local.get 0
i32.sub
local.set 3
call 32
local.set 4
local.get 4
local.get 3
i32.store
i32.const -1
local.set 1
else
local.get 0
local.set 1
end
local.get 1
return)
(func (;32;) (type 2) (result i32)
(local i32 i32)
global.get 12
local.set 1
i32.const 2808
return)
(func (;33;) (type 0) (param i32) (result i32)
(local i32 i32)
global.get 12
local.set 2
local.get 0
return)
(func (;34;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 19
global.get 12
i32.const 32
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 32
call 3
end
local.get 19
local.set 15
local.get 19
i32.const 16
i32.add
local.set 8
local.get 0
i32.const 36
i32.add
local.set 9
local.get 9
i32.const 36
i32.store
local.get 0
i32.load
local.set 10
local.get 10
i32.const 64
i32.and
local.set 11
local.get 11
i32.const 0
i32.eq
local.set 12
local.get 12
if ;; label = @1
local.get 0
i32.const 60
i32.add
local.set 13
local.get 13
i32.load
local.set 14
local.get 8
local.set 3
local.get 15
local.get 14
i32.store
local.get 15
i32.const 4
i32.add
local.set 16
local.get 16
i32.const 21523
i32.store
local.get 15
i32.const 8
i32.add
local.set 17
local.get 17
local.get 3
i32.store
i32.const 54
local.get 15
call 12
local.set 4
local.get 4
i32.const 0
i32.eq
local.set 5
local.get 5
i32.eqz
if ;; label = @2
local.get 0
i32.const 75
i32.add
local.set 6
local.get 6
i32.const -1
i32.store8
end
end
local.get 0
local.get 1
local.get 2
call 29
local.set 7
local.get 19
global.set 12
local.get 7
return)
(func (;35;) (type 4) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 22
local.get 0
i32.load8_s
local.set 11
local.get 1
i32.load8_s
local.set 12
local.get 11
i32.const 24
i32.shl
i32.const 24
i32.shr_s
local.get 12
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.ne
local.set 13
local.get 11
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 14
local.get 14
local.get 13
i32.or
local.set 20
local.get 20
if ;; label = @1
local.get 12
local.set 4
local.get 11
local.set 5
else
local.get 1
local.set 2
local.get 0
local.set 3
loop ;; label = @2
block ;; label = @3
local.get 3
i32.const 1
i32.add
local.set 15
local.get 2
i32.const 1
i32.add
local.set 16
local.get 15
i32.load8_s
local.set 17
local.get 16
i32.load8_s
local.set 18
local.get 17
i32.const 24
i32.shl
i32.const 24
i32.shr_s
local.get 18
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.ne
local.set 6
local.get 17
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 7
local.get 7
local.get 6
i32.or
local.set 19
local.get 19
if ;; label = @4
local.get 18
local.set 4
local.get 17
local.set 5
br 1 (;@3;)
else
local.get 16
local.set 2
local.get 15
local.set 3
end
br 1 (;@2;)
end
end
end
local.get 5
i32.const 255
i32.and
local.set 8
local.get 4
i32.const 255
i32.and
local.set 9
local.get 8
local.get 9
i32.sub
local.set 10
local.get 10
return)
(func (;36;) (type 0) (param i32) (result i32)
(local i32 i32)
global.get 12
local.set 2
i32.const 0
return)
(func (;37;) (type 3) (param i32)
(local i32 i32)
global.get 12
local.set 2
return)
(func (;38;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 32
local.get 0
local.set 9
local.get 9
i32.const 3
i32.and
local.set 20
local.get 20
i32.const 0
i32.eq
local.set 24
block ;; label = @1
local.get 24
if ;; label = @2
local.get 0
local.set 3
i32.const 5
local.set 31
else
local.get 0
local.set 4
local.get 9
local.set 23
loop ;; label = @3
block ;; label = @4
local.get 4
i32.load8_s
local.set 25
local.get 25
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 26
local.get 26
if ;; label = @5
local.get 23
local.set 6
br 4 (;@1;)
end
local.get 4
i32.const 1
i32.add
local.set 27
local.get 27
local.set 28
local.get 28
i32.const 3
i32.and
local.set 29
local.get 29
i32.const 0
i32.eq
local.set 30
local.get 30
if ;; label = @5
local.get 27
local.set 3
i32.const 5
local.set 31
br 1 (;@4;)
else
local.get 27
local.set 4
local.get 28
local.set 23
end
br 1 (;@3;)
end
end
end
end
local.get 31
i32.const 5
i32.eq
if ;; label = @1
local.get 3
local.set 1
loop ;; label = @2
block ;; label = @3
local.get 1
i32.load
local.set 10
local.get 10
i32.const -16843009
i32.add
local.set 11
local.get 10
i32.const -2139062144
i32.and
local.set 12
local.get 12
i32.const -2139062144
i32.xor
local.set 13
local.get 13
local.get 11
i32.and
local.set 14
local.get 14
i32.const 0
i32.eq
local.set 15
local.get 1
i32.const 4
i32.add
local.set 16
local.get 15
if ;; label = @4
local.get 16
local.set 1
else
br 1 (;@3;)
end
br 1 (;@2;)
end
end
local.get 10
i32.const 255
i32.and
local.set 17
local.get 17
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 18
local.get 18
if ;; label = @2
local.get 1
local.set 5
else
local.get 1
local.set 7
loop ;; label = @3
block ;; label = @4
local.get 7
i32.const 1
i32.add
local.set 19
local.get 19
i32.load8_s
local.set 8
local.get 8
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 21
local.get 21
if ;; label = @5
local.get 19
local.set 5
br 1 (;@4;)
else
local.get 19
local.set 7
end
br 1 (;@3;)
end
end
end
local.get 5
local.set 22
local.get 22
local.set 6
end
local.get 6
local.get 9
i32.sub
local.set 2
local.get 2
return)
(func (;39;) (type 2) (result i32)
(local i32 i32)
global.get 12
local.set 1
i32.const 2812
call 8
i32.const 2820
return)
(func (;40;) (type 7)
(local i32 i32)
global.get 12
local.set 1
i32.const 2812
call 14
return)
(func (;41;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 39
local.get 0
i32.const 0
i32.eq
local.set 8
block ;; label = @1
local.get 8
if ;; label = @2
i32.const 1228
i32.load
local.set 35
local.get 35
i32.const 0
i32.eq
local.set 36
local.get 36
if ;; label = @3
i32.const 0
local.set 29
else
i32.const 1228
i32.load
local.set 9
local.get 9
call 41
local.set 10
local.get 10
local.set 29
end
call 39
local.set 11
local.get 11
i32.load
local.set 3
local.get 3
i32.const 0
i32.eq
local.set 12
local.get 12
if ;; label = @3
local.get 29
local.set 5
else
local.get 3
local.set 4
local.get 29
local.set 6
loop ;; label = @4
block ;; label = @5
local.get 4
i32.const 76
i32.add
local.set 13
local.get 13
i32.load
local.set 14
local.get 14
i32.const -1
i32.gt_s
local.set 15
local.get 15
if ;; label = @6
local.get 4
call 36
local.set 16
local.get 16
local.set 25
else
i32.const 0
local.set 25
end
local.get 4
i32.const 20
i32.add
local.set 17
local.get 17
i32.load
local.set 18
local.get 4
i32.const 28
i32.add
local.set 20
local.get 20
i32.load
local.set 21
local.get 18
local.get 21
i32.gt_u
local.set 22
local.get 22
if ;; label = @6
local.get 4
call 42
local.set 23
local.get 23
local.get 6
i32.or
local.set 24
local.get 24
local.set 7
else
local.get 6
local.set 7
end
local.get 25
i32.const 0
i32.eq
local.set 26
local.get 26
i32.eqz
if ;; label = @6
local.get 4
call 37
end
local.get 4
i32.const 56
i32.add
local.set 27
local.get 27
i32.load
local.set 2
local.get 2
i32.const 0
i32.eq
local.set 28
local.get 28
if ;; label = @6
local.get 7
local.set 5
br 1 (;@5;)
else
local.get 2
local.set 4
local.get 7
local.set 6
end
br 1 (;@4;)
end
end
end
call 40
local.get 5
local.set 1
else
local.get 0
i32.const 76
i32.add
local.set 19
local.get 19
i32.load
local.set 30
local.get 30
i32.const -1
i32.gt_s
local.set 31
local.get 31
i32.eqz
if ;; label = @3
local.get 0
call 42
local.set 32
local.get 32
local.set 1
br 2 (;@1;)
end
local.get 0
call 36
local.set 33
local.get 33
i32.const 0
i32.eq
local.set 37
local.get 0
call 42
local.set 34
local.get 37
if ;; label = @3
local.get 34
local.set 1
else
local.get 0
call 37
local.get 34
local.set 1
end
end
end
local.get 1
return)
(func (;42;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 23
local.get 0
i32.const 20
i32.add
local.set 2
local.get 2
i32.load
local.set 13
local.get 0
i32.const 28
i32.add
local.set 15
local.get 15
i32.load
local.set 16
local.get 13
local.get 16
i32.gt_u
local.set 17
local.get 17
if ;; label = @1
local.get 0
i32.const 36
i32.add
local.set 18
local.get 18
i32.load
local.set 19
local.get 0
i32.const 0
i32.const 0
local.get 19
i32.const 63
i32.and
i32.const 64
i32.add
call_indirect (type 1)
drop
local.get 2
i32.load
local.set 20
local.get 20
i32.const 0
i32.eq
local.set 21
local.get 21
if ;; label = @2
i32.const -1
local.set 1
else
i32.const 3
local.set 22
end
else
i32.const 3
local.set 22
end
local.get 22
i32.const 3
i32.eq
if ;; label = @1
local.get 0
i32.const 4
i32.add
local.set 3
local.get 3
i32.load
local.set 4
local.get 0
i32.const 8
i32.add
local.set 5
local.get 5
i32.load
local.set 6
local.get 4
local.get 6
i32.lt_u
local.set 7
local.get 7
if ;; label = @2
local.get 4
local.set 8
local.get 6
local.set 9
local.get 8
local.get 9
i32.sub
local.set 10
local.get 0
i32.const 40
i32.add
local.set 11
local.get 11
i32.load
local.set 12
local.get 0
local.get 10
i32.const 1
local.get 12
i32.const 63
i32.and
i32.const 64
i32.add
call_indirect (type 1)
drop
end
local.get 0
i32.const 16
i32.add
local.set 14
local.get 14
i32.const 0
i32.store
local.get 15
i32.const 0
i32.store
local.get 2
i32.const 0
i32.store
local.get 5
i32.const 0
i32.store
local.get 3
i32.const 0
i32.store
i32.const 0
local.set 1
end
local.get 1
return)
(func (;43;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32)
global.get 12
local.set 4
local.get 0
local.get 1
local.get 2
call 44
drop
local.get 0
return)
(func (;44;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 64
local.get 1
local.set 45
local.get 0
local.set 55
local.get 45
local.get 55
i32.xor
local.set 56
local.get 56
i32.const 3
i32.and
local.set 57
local.get 57
i32.const 0
i32.eq
local.set 58
block ;; label = @1
local.get 58
if ;; label = @2
local.get 45
i32.const 3
i32.and
local.set 59
local.get 59
i32.const 0
i32.ne
local.set 60
local.get 2
i32.const 0
i32.ne
local.set 25
local.get 25
local.get 60
i32.and
local.set 62
local.get 62
if ;; label = @3
local.get 2
local.set 7
local.get 1
local.set 9
local.get 0
local.set 11
loop ;; label = @4
block ;; label = @5
local.get 9
i32.load8_s
local.set 26
local.get 11
local.get 26
i32.store8
local.get 26
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 27
local.get 27
if ;; label = @6
local.get 11
local.set 20
local.get 7
local.set 22
br 5 (;@1;)
end
local.get 7
i32.const -1
i32.add
local.set 28
local.get 9
i32.const 1
i32.add
local.set 29
local.get 11
i32.const 1
i32.add
local.set 30
local.get 29
local.set 31
local.get 31
i32.const 3
i32.and
local.set 32
local.get 32
i32.const 0
i32.ne
local.set 33
local.get 28
i32.const 0
i32.ne
local.set 34
local.get 34
local.get 33
i32.and
local.set 61
local.get 61
if ;; label = @6
local.get 28
local.set 7
local.get 29
local.set 9
local.get 30
local.set 11
else
local.get 28
local.set 6
local.get 29
local.set 8
local.get 30
local.set 10
local.get 34
local.set 23
br 1 (;@5;)
end
br 1 (;@4;)
end
end
else
local.get 2
local.set 6
local.get 1
local.set 8
local.get 0
local.set 10
local.get 25
local.set 23
end
local.get 23
if ;; label = @3
local.get 8
i32.load8_s
local.set 24
local.get 24
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 35
local.get 35
if ;; label = @4
local.get 10
local.set 20
local.get 6
local.set 22
else
local.get 6
i32.const 3
i32.gt_u
local.set 36
block ;; label = @5
local.get 36
if ;; label = @6
local.get 10
local.set 5
local.get 8
local.set 12
local.get 6
local.set 16
loop ;; label = @7
block ;; label = @8
local.get 12
i32.load
local.set 37
local.get 37
i32.const -16843009
i32.add
local.set 38
local.get 37
i32.const -2139062144
i32.and
local.set 39
local.get 39
i32.const -2139062144
i32.xor
local.set 40
local.get 40
local.get 38
i32.and
local.set 41
local.get 41
i32.const 0
i32.eq
local.set 42
local.get 42
i32.eqz
if ;; label = @9
local.get 12
local.set 3
local.get 5
local.set 4
local.get 16
local.set 13
br 4 (;@5;)
end
local.get 5
local.get 37
i32.store
local.get 16
i32.const -4
i32.add
local.set 43
local.get 12
i32.const 4
i32.add
local.set 44
local.get 5
i32.const 4
i32.add
local.set 46
local.get 43
i32.const 3
i32.gt_u
local.set 47
local.get 47
if ;; label = @9
local.get 46
local.set 5
local.get 44
local.set 12
local.get 43
local.set 16
else
local.get 44
local.set 3
local.get 46
local.set 4
local.get 43
local.set 13
br 1 (;@8;)
end
br 1 (;@7;)
end
end
else
local.get 8
local.set 3
local.get 10
local.set 4
local.get 6
local.set 13
end
end
local.get 3
local.set 14
local.get 4
local.set 15
local.get 13
local.set 17
i32.const 13
local.set 63
end
else
local.get 10
local.set 20
i32.const 0
local.set 22
end
else
local.get 1
local.set 14
local.get 0
local.set 15
local.get 2
local.set 17
i32.const 13
local.set 63
end
end
block ;; label = @1
local.get 63
i32.const 13
i32.eq
if ;; label = @2
local.get 17
i32.const 0
i32.eq
local.set 48
local.get 48
if ;; label = @3
local.get 15
local.set 20
i32.const 0
local.set 22
else
local.get 14
local.set 18
local.get 15
local.set 19
local.get 17
local.set 21
loop ;; label = @4
block ;; label = @5
local.get 18
i32.load8_s
local.set 49
local.get 19
local.get 49
i32.store8
local.get 49
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 50
local.get 50
if ;; label = @6
local.get 19
local.set 20
local.get 21
local.set 22
br 5 (;@1;)
end
local.get 21
i32.const -1
i32.add
local.set 51
local.get 18
i32.const 1
i32.add
local.set 52
local.get 19
i32.const 1
i32.add
local.set 53
local.get 51
i32.const 0
i32.eq
local.set 54
local.get 54
if ;; label = @6
local.get 53
local.set 20
i32.const 0
local.set 22
br 1 (;@5;)
else
local.get 52
local.set 18
local.get 53
local.set 19
local.get 51
local.set 21
end
br 1 (;@4;)
end
end
end
end
end
local.get 20
i32.const 0
local.get 22
call 49
drop
local.get 20
return)
(func (;45;) (type 3) (param i32)
(local i32 i32 i32 i64)
global.get 12
local.set 3
local.get 0
i32.const -1
i32.add
local.set 1
local.get 1
i64.extend_i32_u
local.set 4
i32.const 2304
local.get 4
i64.store
return)
(func (;46;) (type 2) (result i32)
(local i32 i32 i32 i64 i64 i64 i64)
global.get 12
local.set 2
i32.const 2304
i64.load
local.set 3
local.get 3
i64.const 6364136223846793005
i64.mul
local.set 4
local.get 4
i64.const 1
i64.add
local.set 5
i32.const 2304
local.get 5
i64.store
local.get 5
i64.const 33
i64.shr_u
local.set 6
local.get 6
i32.wrap_i64
local.set 0
local.get 0
return)
(func (;47;) (type 7)
nop)
(func (;48;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32)
local.get 2
i32.const 8192
i32.ge_s
if ;; label = @1
local.get 0
local.get 1
local.get 2
call 15
return
end
local.get 0
local.set 3
local.get 0
local.get 2
i32.add
local.set 6
local.get 0
i32.const 3
i32.and
local.get 1
i32.const 3
i32.and
i32.eq
if ;; label = @1
loop ;; label = @2
block ;; label = @3
local.get 0
i32.const 3
i32.and
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 2
i32.const 0
i32.eq
if ;; label = @5
local.get 3
return
end
local.get 0
local.get 1
i32.load8_s
i32.store8
local.get 0
i32.const 1
i32.add
local.set 0
local.get 1
i32.const 1
i32.add
local.set 1
local.get 2
i32.const 1
i32.sub
local.set 2
end
br 1 (;@2;)
end
end
local.get 6
i32.const -4
i32.and
local.set 4
local.get 4
i32.const 64
i32.sub
local.set 5
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 5
i32.le_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 1
i32.load
i32.store
local.get 0
i32.const 4
i32.add
local.get 1
i32.const 4
i32.add
i32.load
i32.store
local.get 0
i32.const 8
i32.add
local.get 1
i32.const 8
i32.add
i32.load
i32.store
local.get 0
i32.const 12
i32.add
local.get 1
i32.const 12
i32.add
i32.load
i32.store
local.get 0
i32.const 16
i32.add
local.get 1
i32.const 16
i32.add
i32.load
i32.store
local.get 0
i32.const 20
i32.add
local.get 1
i32.const 20
i32.add
i32.load
i32.store
local.get 0
i32.const 24
i32.add
local.get 1
i32.const 24
i32.add
i32.load
i32.store
local.get 0
i32.const 28
i32.add
local.get 1
i32.const 28
i32.add
i32.load
i32.store
local.get 0
i32.const 32
i32.add
local.get 1
i32.const 32
i32.add
i32.load
i32.store
local.get 0
i32.const 36
i32.add
local.get 1
i32.const 36
i32.add
i32.load
i32.store
local.get 0
i32.const 40
i32.add
local.get 1
i32.const 40
i32.add
i32.load
i32.store
local.get 0
i32.const 44
i32.add
local.get 1
i32.const 44
i32.add
i32.load
i32.store
local.get 0
i32.const 48
i32.add
local.get 1
i32.const 48
i32.add
i32.load
i32.store
local.get 0
i32.const 52
i32.add
local.get 1
i32.const 52
i32.add
i32.load
i32.store
local.get 0
i32.const 56
i32.add
local.get 1
i32.const 56
i32.add
i32.load
i32.store
local.get 0
i32.const 60
i32.add
local.get 1
i32.const 60
i32.add
i32.load
i32.store
local.get 0
i32.const 64
i32.add
local.set 0
local.get 1
i32.const 64
i32.add
local.set 1
end
br 1 (;@2;)
end
end
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 4
i32.lt_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 1
i32.load
i32.store
local.get 0
i32.const 4
i32.add
local.set 0
local.get 1
i32.const 4
i32.add
local.set 1
end
br 1 (;@2;)
end
end
else
local.get 6
i32.const 4
i32.sub
local.set 4
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 4
i32.lt_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 1
i32.load8_s
i32.store8
local.get 0
i32.const 1
i32.add
local.get 1
i32.const 1
i32.add
i32.load8_s
i32.store8
local.get 0
i32.const 2
i32.add
local.get 1
i32.const 2
i32.add
i32.load8_s
i32.store8
local.get 0
i32.const 3
i32.add
local.get 1
i32.const 3
i32.add
i32.load8_s
i32.store8
local.get 0
i32.const 4
i32.add
local.set 0
local.get 1
i32.const 4
i32.add
local.set 1
end
br 1 (;@2;)
end
end
end
loop ;; label = @1
block ;; label = @2
local.get 0
local.get 6
i32.lt_s
i32.eqz
if ;; label = @3
br 1 (;@2;)
end
block ;; label = @3
local.get 0
local.get 1
i32.load8_s
i32.store8
local.get 0
i32.const 1
i32.add
local.set 0
local.get 1
i32.const 1
i32.add
local.set 1
end
br 1 (;@1;)
end
end
local.get 3
return)
(func (;49;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32)
local.get 0
local.get 2
i32.add
local.set 3
local.get 1
i32.const 255
i32.and
local.set 1
local.get 2
i32.const 67
i32.ge_s
if ;; label = @1
loop ;; label = @2
block ;; label = @3
local.get 0
i32.const 3
i32.and
i32.const 0
i32.ne
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 1
i32.store8
local.get 0
i32.const 1
i32.add
local.set 0
end
br 1 (;@2;)
end
end
local.get 3
i32.const -4
i32.and
local.set 4
local.get 4
i32.const 64
i32.sub
local.set 5
local.get 1
local.get 1
i32.const 8
i32.shl
i32.or
local.get 1
i32.const 16
i32.shl
i32.or
local.get 1
i32.const 24
i32.shl
i32.or
local.set 6
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 5
i32.le_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 6
i32.store
local.get 0
i32.const 4
i32.add
local.get 6
i32.store
local.get 0
i32.const 8
i32.add
local.get 6
i32.store
local.get 0
i32.const 12
i32.add
local.get 6
i32.store
local.get 0
i32.const 16
i32.add
local.get 6
i32.store
local.get 0
i32.const 20
i32.add
local.get 6
i32.store
local.get 0
i32.const 24
i32.add
local.get 6
i32.store
local.get 0
i32.const 28
i32.add
local.get 6
i32.store
local.get 0
i32.const 32
i32.add
local.get 6
i32.store
local.get 0
i32.const 36
i32.add
local.get 6
i32.store
local.get 0
i32.const 40
i32.add
local.get 6
i32.store
local.get 0
i32.const 44
i32.add
local.get 6
i32.store
local.get 0
i32.const 48
i32.add
local.get 6
i32.store
local.get 0
i32.const 52
i32.add
local.get 6
i32.store
local.get 0
i32.const 56
i32.add
local.get 6
i32.store
local.get 0
i32.const 60
i32.add
local.get 6
i32.store
local.get 0
i32.const 64
i32.add
local.set 0
end
br 1 (;@2;)
end
end
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 4
i32.lt_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 6
i32.store
local.get 0
i32.const 4
i32.add
local.set 0
end
br 1 (;@2;)
end
end
end
loop ;; label = @1
block ;; label = @2
local.get 0
local.get 3
i32.lt_s
i32.eqz
if ;; label = @3
br 1 (;@2;)
end
block ;; label = @3
local.get 0
local.get 1
i32.store8
local.get 0
i32.const 1
i32.add
local.set 0
end
br 1 (;@1;)
end
end
local.get 3
local.get 2
i32.sub
return)
(func (;50;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32)
global.get 9
i32.load
local.set 1
local.get 1
local.get 0
i32.add
local.set 3
local.get 0
i32.const 0
i32.gt_s
local.get 3
local.get 1
i32.lt_s
i32.and
local.get 3
i32.const 0
i32.lt_s
i32.or
if ;; label = @1
call 2
drop
i32.const 12
call 9
i32.const -1
return
end
global.get 9
local.get 3
i32.store
call 1
local.set 4
local.get 3
local.get 4
i32.gt_s
if ;; label = @1
call 0
i32.const 0
i32.eq
if ;; label = @2
global.get 9
local.get 1
i32.store
i32.const 12
call 9
i32.const -1
return
end
end
local.get 1
return)
(func (;51;) (type 4) (param i32 i32) (result i32)
local.get 1
local.get 0
i32.const 63
i32.and
i32.const 0
i32.add
call_indirect (type 0)
return)
(func (;52;) (type 0) (param i32) (result i32)
i32.const 0
local.get 0
call 6
return)
(func (;53;) (type 0) (param i32) (result i32)
i32.const 1
local.get 0
call 6
return)
(func (;54;) (type 0) (param i32) (result i32)
i32.const 2
local.get 0
call 6
return)
(func (;55;) (type 0) (param i32) (result i32)
i32.const 3
local.get 0
call 6
return)
(func (;56;) (type 0) (param i32) (result i32)
i32.const 4
local.get 0
call 6
return)
(func (;57;) (type 0) (param i32) (result i32)
i32.const 5
local.get 0
call 6
return)
(func (;58;) (type 0) (param i32) (result i32)
i32.const 6
local.get 0
call 6
return)
(func (;59;) (type 0) (param i32) (result i32)
i32.const 7
local.get 0
call 6
return)
(func (;60;) (type 0) (param i32) (result i32)
i32.const 8
local.get 0
call 6
return)
(func (;61;) (type 0) (param i32) (result i32)
i32.const 9
local.get 0
call 6
return)
(func (;62;) (type 0) (param i32) (result i32)
i32.const 10
local.get 0
call 6
return)
(func (;63;) (type 0) (param i32) (result i32)
i32.const 11
local.get 0
call 6
return)
(func (;64;) (type 0) (param i32) (result i32)
i32.const 12
local.get 0
call 6
return)
(func (;65;) (type 0) (param i32) (result i32)
i32.const 13
local.get 0
call 6
return)
(func (;66;) (type 0) (param i32) (result i32)
i32.const 14
local.get 0
call 6
return)
(func (;67;) (type 0) (param i32) (result i32)
i32.const 15
local.get 0
call 6
return)
(func (;68;) (type 0) (param i32) (result i32)
i32.const 16
local.get 0
call 6
return)
(func (;69;) (type 0) (param i32) (result i32)
i32.const 17
local.get 0
call 6
return)
(func (;70;) (type 0) (param i32) (result i32)
i32.const 18
local.get 0
call 6
return)
(func (;71;) (type 0) (param i32) (result i32)
i32.const 19
local.get 0
call 6
return)
(func (;72;) (type 0) (param i32) (result i32)
i32.const 20
local.get 0
call 6
return)
(func (;73;) (type 0) (param i32) (result i32)
i32.const 21
local.get 0
call 6
return)
(func (;74;) (type 0) (param i32) (result i32)
i32.const 22
local.get 0
call 6
return)
(func (;75;) (type 0) (param i32) (result i32)
i32.const 23
local.get 0
call 6
return)
(func (;76;) (type 0) (param i32) (result i32)
i32.const 24
local.get 0
call 6
return)
(func (;77;) (type 0) (param i32) (result i32)
i32.const 25
local.get 0
call 6
return)
(func (;78;) (type 0) (param i32) (result i32)
i32.const 26
local.get 0
call 6
return)
(func (;79;) (type 0) (param i32) (result i32)
i32.const 27
local.get 0
call 6
return)
(func (;80;) (type 0) (param i32) (result i32)
i32.const 28
local.get 0
call 6
return)
(func (;81;) (type 0) (param i32) (result i32)
i32.const 29
local.get 0
call 6
return)
(func (;82;) (type 0) (param i32) (result i32)
i32.const 30
local.get 0
call 6
return)
(func (;83;) (type 0) (param i32) (result i32)
i32.const 31
local.get 0
call 6
return)
(func (;84;) (type 5) (param i32 i32 i32 i32) (result i32)
local.get 1
local.get 2
local.get 3
local.get 0
i32.const 63
i32.and
i32.const 64
i32.add
call_indirect (type 1)
return)
(func (;85;) (type 1) (param i32 i32 i32) (result i32)
i32.const 0
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;86;) (type 1) (param i32 i32 i32) (result i32)
i32.const 1
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;87;) (type 1) (param i32 i32 i32) (result i32)
i32.const 2
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;88;) (type 1) (param i32 i32 i32) (result i32)
i32.const 3
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;89;) (type 1) (param i32 i32 i32) (result i32)
i32.const 4
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;90;) (type 1) (param i32 i32 i32) (result i32)
i32.const 5
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;91;) (type 1) (param i32 i32 i32) (result i32)
i32.const 6
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;92;) (type 1) (param i32 i32 i32) (result i32)
i32.const 7
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;93;) (type 1) (param i32 i32 i32) (result i32)
i32.const 8
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;94;) (type 1) (param i32 i32 i32) (result i32)
i32.const 9
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;95;) (type 1) (param i32 i32 i32) (result i32)
i32.const 10
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;96;) (type 1) (param i32 i32 i32) (result i32)
i32.const 11
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;97;) (type 1) (param i32 i32 i32) (result i32)
i32.const 12
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;98;) (type 1) (param i32 i32 i32) (result i32)
i32.const 13
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;99;) (type 1) (param i32 i32 i32) (result i32)
i32.const 14
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;100;) (type 1) (param i32 i32 i32) (result i32)
i32.const 15
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;101;) (type 1) (param i32 i32 i32) (result i32)
i32.const 16
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;102;) (type 1) (param i32 i32 i32) (result i32)
i32.const 17
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;103;) (type 1) (param i32 i32 i32) (result i32)
i32.const 18
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;104;) (type 1) (param i32 i32 i32) (result i32)
i32.const 19
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;105;) (type 1) (param i32 i32 i32) (result i32)
i32.const 20
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;106;) (type 1) (param i32 i32 i32) (result i32)
i32.const 21
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;107;) (type 1) (param i32 i32 i32) (result i32)
i32.const 22
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;108;) (type 1) (param i32 i32 i32) (result i32)
i32.const 23
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;109;) (type 1) (param i32 i32 i32) (result i32)
i32.const 24
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;110;) (type 1) (param i32 i32 i32) (result i32)
i32.const 25
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;111;) (type 1) (param i32 i32 i32) (result i32)
i32.const 26
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;112;) (type 1) (param i32 i32 i32) (result i32)
i32.const 27
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;113;) (type 1) (param i32 i32 i32) (result i32)
i32.const 28
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;114;) (type 1) (param i32 i32 i32) (result i32)
i32.const 29
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;115;) (type 1) (param i32 i32 i32) (result i32)
i32.const 30
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;116;) (type 1) (param i32 i32 i32) (result i32)
i32.const 31
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;117;) (type 0) (param i32) (result i32)
i32.const 0
call 4
i32.const 0
return)
(func (;118;) (type 1) (param i32 i32 i32) (result i32)
i32.const 1
call 5
i32.const 0
return)
(global (;9;) (mut i32) (global.get 2))
(global (;10;) (mut i32) (global.get 3))
(global (;11;) (mut i32) (global.get 4))
(global (;12;) (mut i32) (global.get 5))
(global (;13;) (mut i32) (global.get 6))
(global (;14;) (mut i32) (i32.const 0))
(global (;15;) (mut i32) (i32.const 0))
(global (;16;) (mut i32) (i32.const 0))
(global (;17;) (mut i32) (i32.const 0))
(global (;18;) (mut f64) (global.get 7))
(global (;19;) (mut f64) (global.get 8))
(global (;20;) (mut i32) (i32.const 0))
(global (;21;) (mut i32) (i32.const 0))
(global (;22;) (mut i32) (i32.const 0))
(global (;23;) (mut i32) (i32.const 0))
(global (;24;) (mut f64) (f64.const 0x0p+0 (;=0;)))
(global (;25;) (mut i32) (i32.const 0))
(global (;26;) (mut f32) (f32.const 0x0p+0 (;=0;)))
(global (;27;) (mut f32) (f32.const 0x0p+0 (;=0;)))
(export "___errno_location" (func 32))
(export "_authenticate" (func 25))
(export "_fflush" (func 41))
(export "_free" (func 27))
(export "_malloc" (func 26))
(export "_memcpy" (func 48))
(export "_memset" (func 49))
(export "_sbrk" (func 50))
(export "dynCall_ii" (func 51))
(export "dynCall_iiii" (func 84))
(export "establishStackSpace" (func 20))
(export "getTempRet0" (func 23))
(export "runPostSets" (func 47))
(export "setTempRet0" (func 22))
(export "setThrew" (func 21))
(export "stackAlloc" (func 17))
(export "stackRestore" (func 19))
(export "stackSave" (func 18))
(elem (;0;) (global.get 1) func 117 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 28 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 118 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 34 30 29 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118)
(data (;0;) (i32.const 1024) "\91\91\91\bd\ab\a8\b6\aa\a7\b4\a7\ab\b5\b0\b1\a6\a3\b6\a3\b1\b0\b6\aa\a7\b5\a7\b4\b8\a7\b4\b6\aa\a7\b4\a7\ab\b5\b0\b1\a6\a3\b6\a3\a4\b4\a7\a3\a5\aa\b2\b4\b1\a4\ae\a7\af\b5\b1\ae\b8\a7\a6\ad\b6\aa\ba\a4\a4\bf\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\22\00\00\00#\00\00\00\f8\04\00\00\00\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0a\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\04\00\00true\00success\00failure"))
(module
(type (;0;) (func (param i32) (result i32)))
(type (;1;) (func (param i32 i32 i32) (result i32)))
(type (;2;) (func (result i32)))
(type (;3;) (func (param i32)))
(type (;4;) (func (param i32 i32) (result i32)))
(type (;5;) (func (param i32 i32 i32 i32) (result i32)))
(type (;6;) (func (param i32 i32)))
(type (;7;) (func))
(import "env" "memory" (memory (;0;) 256 256))
(import "env" "table" (table (;0;) 128 funcref))
(import "env" "memoryBase" (global (;0;) i32))
(import "env" "tableBase" (global (;1;) i32))
(import "env" "DYNAMICTOP_PTR" (global (;2;) i32))
(import "env" "tempDoublePtr" (global (;3;) i32))
(import "env" "ABORT" (global (;4;) i32))
(import "env" "STACKTOP" (global (;5;) i32))
(import "env" "STACK_MAX" (global (;6;) i32))
(import "global" "NaN" (global (;7;) f64))
(import "global" "Infinity" (global (;8;) f64))
(import "env" "enlargeMemory" (func (;0;) (type 2)))
(import "env" "getTotalMemory" (func (;1;) (type 2)))
(import "env" "abortOnCannotGrowMemory" (func (;2;) (type 2)))
(import "env" "abortStackOverflow" (func (;3;) (type 3)))
(import "env" "nullFunc_ii" (func (;4;) (type 3)))
(import "env" "nullFunc_iiii" (func (;5;) (type 3)))
(import "env" "jsCall_ii" (func (;6;) (type 4)))
(import "env" "jsCall_iiii" (func (;7;) (type 5)))
(import "env" "___lock" (func (;8;) (type 3)))
(import "env" "___setErrNo" (func (;9;) (type 3)))
(import "env" "___syscall140" (func (;10;) (type 4)))
(import "env" "___syscall146" (func (;11;) (type 4)))
(import "env" "___syscall54" (func (;12;) (type 4)))
(import "env" "___syscall6" (func (;13;) (type 4)))
(import "env" "___unlock" (func (;14;) (type 3)))
(import "env" "_emscripten_memcpy_big" (func (;15;) (type 1)))
(import "env" "_time" (func (;16;) (type 0)))
(func (;17;) (type 0) (param i32) (result i32)
(local i32)
global.get 12
local.set 1
global.get 12
local.get 0
i32.add
global.set 12
global.get 12
i32.const 15
i32.add
i32.const -16
i32.and
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
local.get 0
call 3
end
local.get 1
return)
(func (;18;) (type 2) (result i32)
global.get 12
return)
(func (;19;) (type 3) (param i32)
local.get 0
global.set 12)
(func (;20;) (type 6) (param i32 i32)
local.get 0
global.set 12
local.get 1
global.set 13)
(func (;21;) (type 6) (param i32 i32)
global.get 14
i32.const 0
i32.eq
if ;; label = @1
local.get 0
global.set 14
local.get 1
global.set 15
end)
(func (;22;) (type 3) (param i32)
local.get 0
global.set 25)
(func (;23;) (type 2) (result i32)
global.get 25
return)
(func (;24;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 10
global.get 12
i32.const 80
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 80
call 3
end
local.get 10
local.set 2
local.get 0
local.set 1
local.get 2
i32.const 1024
i64.load
i64.store
local.get 2
i32.const 8
i32.add
i32.const 1024
i32.const 8
i32.add
i64.load
i64.store
local.get 2
i32.const 16
i32.add
i32.const 1024
i32.const 16
i32.add
i64.load
i64.store
local.get 2
i32.const 24
i32.add
i32.const 1024
i32.const 24
i32.add
i64.load
i64.store
local.get 2
i32.const 32
i32.add
i32.const 1024
i32.const 32
i32.add
i64.load
i64.store
local.get 2
i32.const 40
i32.add
i32.const 1024
i32.const 40
i32.add
i64.load
i64.store
local.get 2
i32.const 48
i32.add
i32.const 1024
i32.const 48
i32.add
i64.load
i64.store
local.get 2
i32.const 56
i32.add
i32.const 1024
i32.const 56
i32.add
i64.load
i64.store
local.get 2
i32.const 64
i32.add
i32.const 1024
i32.const 64
i32.add
i32.load
i32.store
local.get 2
i32.const 68
i32.add
i32.const 1024
i32.const 68
i32.add
i32.load8_s
i32.store8
local.get 1
local.set 3
local.get 2
local.get 3
i32.add
local.set 4
local.get 4
i32.load8_s
local.set 5
local.get 5
i32.const 24
i32.shl
i32.const 24
i32.shr_s
local.set 6
local.get 6
i32.const 66
i32.sub
local.set 7
local.get 7
i32.const 255
i32.and
local.set 8
local.get 10
global.set 12
local.get 8
return)
(func (;25;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 61
global.get 12
i32.const 48
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 48
call 3
end
local.get 61
i32.const 33
i32.add
local.set 34
local.get 61
i32.const 28
i32.add
local.set 45
local.get 0
local.set 12
local.get 45
i32.const 1232
i32.load align=1
i32.store align=1
local.get 45
i32.const 4
i32.add
i32.const 1232
i32.const 4
i32.add
i32.load8_s
i32.store8
local.get 12
local.set 2
local.get 2
call 38
local.set 3
local.get 3
local.set 55
i32.const 1
local.set 56
i32.const 0
local.set 57
i32.const 0
call 16
local.set 4
local.get 4
call 45
local.get 34
i32.const 2
i32.add
local.set 5
local.get 5
i32.const 0
i32.store8
local.get 55
local.set 6
local.get 6
i32.const 69
i32.xor
local.set 7
local.get 7
i32.const 0
i32.ne
local.set 8
local.get 8
if ;; label = @1
i32.const 0
local.set 1
local.get 1
local.set 54
local.get 61
global.set 12
local.get 54
return
end
i32.const 0
local.set 58
loop ;; label = @1
block ;; label = @2
local.get 58
local.set 9
local.get 55
local.set 10
local.get 9
local.get 10
i32.lt_s
local.set 11
local.get 11
i32.const 1
i32.and
local.set 13
local.get 58
local.set 14
local.get 55
local.set 15
local.get 14
local.get 15
i32.lt_s
local.set 16
local.get 16
i32.const 1
i32.xor
local.set 17
local.get 17
i32.const 1
i32.xor
local.set 18
local.get 18
i32.const 1
i32.and
local.set 19
local.get 13
local.get 19
i32.and
local.set 20
local.get 20
i32.const 0
i32.ne
local.set 21
local.get 21
i32.eqz
if ;; label = @3
br 1 (;@2;)
end
local.get 12
local.set 22
local.get 58
local.set 24
local.get 22
local.get 24
i32.add
local.set 25
local.get 34
local.get 25
i32.const 2
call 43
drop
local.get 12
local.set 26
local.get 58
local.set 27
local.get 26
local.get 27
i32.add
local.set 28
local.get 28
i32.load8_s
local.set 29
local.get 34
local.get 29
i32.store8
local.get 58
local.set 30
local.get 30
call 24
local.set 31
local.get 34
i32.const 1
i32.add
local.set 32
local.get 32
local.get 31
i32.store8
local.get 56
local.set 33
local.get 33
local.set 35
local.get 34
local.get 35
i32.const 63
i32.and
i32.const 0
i32.add
call_indirect (type 0)
local.set 36
local.get 36
local.set 23
call 46
local.set 37
local.get 37
i32.const 31
i32.rem_s
i32.const -1
i32.and
local.set 38
local.get 38
local.set 56
local.get 56
local.set 39
local.get 39
i32.const 0
i32.xor
local.set 40
local.get 40
i32.const 0
i32.ne
local.set 41
local.get 41
if (result i32) ;; label = @3
local.get 38
else
i32.const 1
end
local.set 59
local.get 59
local.set 56
local.get 23
local.set 42
local.get 42
local.get 45
call 35
local.set 43
local.get 43
i32.const 0
i32.xor
local.set 44
local.get 44
i32.const 0
i32.ne
local.set 46
local.get 46
i32.eqz
if ;; label = @3
local.get 57
local.set 47
local.get 47
i32.const 1
i32.add
local.set 48
local.get 48
local.set 57
end
local.get 58
local.set 49
local.get 49
i32.const 1
i32.add
local.set 50
local.get 50
local.set 58
br 1 (;@1;)
end
end
local.get 57
local.set 51
local.get 51
i32.const 69
i32.xor
local.set 52
local.get 52
i32.const 0
i32.ne
local.set 53
local.get 53
if ;; label = @1
local.get 57
local.set 1
local.get 1
local.set 54
local.get 61
global.set 12
local.get 54
return
else
local.get 57
local.set 1
local.get 1
local.set 54
local.get 61
global.set 12
local.get 54
return
end
unreachable
i32.const 0
return)
(func (;26;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 1096
global.get 12
i32.const 16
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 16
call 3
end
local.get 1096
local.set 92
local.get 0
i32.const 245
i32.lt_u
local.set 203
block ;; label = @1
local.get 203
if ;; label = @2
local.get 0
i32.const 11
i32.lt_u
local.set 314
local.get 0
i32.const 11
i32.add
local.set 425
local.get 425
i32.const -8
i32.and
local.set 536
local.get 314
if (result i32) ;; label = @3
i32.const 16
else
local.get 536
end
local.set 647
local.get 647
i32.const 3
i32.shr_u
local.set 758
i32.const 2312
i32.load
local.set 869
local.get 869
local.get 758
i32.shr_u
local.set 980
local.get 980
i32.const 3
i32.and
local.set 93
local.get 93
i32.const 0
i32.eq
local.set 104
local.get 104
i32.eqz
if ;; label = @3
local.get 980
i32.const 1
i32.and
local.set 115
local.get 115
i32.const 1
i32.xor
local.set 126
local.get 126
local.get 758
i32.add
local.set 137
local.get 137
i32.const 1
i32.shl
local.set 148
i32.const 2352
local.get 148
i32.const 2
i32.shl
i32.add
local.set 159
local.get 159
i32.const 8
i32.add
local.set 170
local.get 170
i32.load
local.set 181
local.get 181
i32.const 8
i32.add
local.set 192
local.get 192
i32.load
local.set 204
local.get 204
local.get 159
i32.eq
local.set 215
local.get 215
if ;; label = @4
i32.const 1
local.get 137
i32.shl
local.set 226
local.get 226
i32.const -1
i32.xor
local.set 237
local.get 869
local.get 237
i32.and
local.set 248
i32.const 2312
local.get 248
i32.store
else
local.get 204
i32.const 12
i32.add
local.set 259
local.get 259
local.get 159
i32.store
local.get 170
local.get 204
i32.store
end
local.get 137
i32.const 3
i32.shl
local.set 270
local.get 270
i32.const 3
i32.or
local.set 281
local.get 181
i32.const 4
i32.add
local.set 292
local.get 292
local.get 281
i32.store
local.get 181
local.get 270
i32.add
local.set 303
local.get 303
i32.const 4
i32.add
local.set 315
local.get 315
i32.load
local.set 326
local.get 326
i32.const 1
i32.or
local.set 337
local.get 315
local.get 337
i32.store
local.get 192
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2320
i32.load
local.set 348
local.get 647
local.get 348
i32.gt_u
local.set 359
local.get 359
if ;; label = @3
local.get 980
i32.const 0
i32.eq
local.set 370
local.get 370
i32.eqz
if ;; label = @4
local.get 980
local.get 758
i32.shl
local.set 381
i32.const 2
local.get 758
i32.shl
local.set 392
i32.const 0
local.get 392
i32.sub
local.set 403
local.get 392
local.get 403
i32.or
local.set 414
local.get 381
local.get 414
i32.and
local.set 426
i32.const 0
local.get 426
i32.sub
local.set 437
local.get 426
local.get 437
i32.and
local.set 448
local.get 448
i32.const -1
i32.add
local.set 459
local.get 459
i32.const 12
i32.shr_u
local.set 470
local.get 470
i32.const 16
i32.and
local.set 481
local.get 459
local.get 481
i32.shr_u
local.set 492
local.get 492
i32.const 5
i32.shr_u
local.set 503
local.get 503
i32.const 8
i32.and
local.set 514
local.get 514
local.get 481
i32.or
local.set 525
local.get 492
local.get 514
i32.shr_u
local.set 537
local.get 537
i32.const 2
i32.shr_u
local.set 548
local.get 548
i32.const 4
i32.and
local.set 559
local.get 525
local.get 559
i32.or
local.set 570
local.get 537
local.get 559
i32.shr_u
local.set 581
local.get 581
i32.const 1
i32.shr_u
local.set 592
local.get 592
i32.const 2
i32.and
local.set 603
local.get 570
local.get 603
i32.or
local.set 614
local.get 581
local.get 603
i32.shr_u
local.set 625
local.get 625
i32.const 1
i32.shr_u
local.set 636
local.get 636
i32.const 1
i32.and
local.set 648
local.get 614
local.get 648
i32.or
local.set 659
local.get 625
local.get 648
i32.shr_u
local.set 670
local.get 659
local.get 670
i32.add
local.set 681
local.get 681
i32.const 1
i32.shl
local.set 692
i32.const 2352
local.get 692
i32.const 2
i32.shl
i32.add
local.set 703
local.get 703
i32.const 8
i32.add
local.set 714
local.get 714
i32.load
local.set 725
local.get 725
i32.const 8
i32.add
local.set 736
local.get 736
i32.load
local.set 747
local.get 747
local.get 703
i32.eq
local.set 759
local.get 759
if ;; label = @5
i32.const 1
local.get 681
i32.shl
local.set 770
local.get 770
i32.const -1
i32.xor
local.set 781
local.get 869
local.get 781
i32.and
local.set 792
i32.const 2312
local.get 792
i32.store
local.get 792
local.set 981
else
local.get 747
i32.const 12
i32.add
local.set 803
local.get 803
local.get 703
i32.store
local.get 714
local.get 747
i32.store
local.get 869
local.set 981
end
local.get 681
i32.const 3
i32.shl
local.set 814
local.get 814
local.get 647
i32.sub
local.set 825
local.get 647
i32.const 3
i32.or
local.set 836
local.get 725
i32.const 4
i32.add
local.set 847
local.get 847
local.get 836
i32.store
local.get 725
local.get 647
i32.add
local.set 858
local.get 825
i32.const 1
i32.or
local.set 870
local.get 858
i32.const 4
i32.add
local.set 881
local.get 881
local.get 870
i32.store
local.get 725
local.get 814
i32.add
local.set 892
local.get 892
local.get 825
i32.store
local.get 348
i32.const 0
i32.eq
local.set 903
local.get 903
i32.eqz
if ;; label = @5
i32.const 2332
i32.load
local.set 914
local.get 348
i32.const 3
i32.shr_u
local.set 925
local.get 925
i32.const 1
i32.shl
local.set 936
i32.const 2352
local.get 936
i32.const 2
i32.shl
i32.add
local.set 947
i32.const 1
local.get 925
i32.shl
local.set 958
local.get 981
local.get 958
i32.and
local.set 969
local.get 969
i32.const 0
i32.eq
local.set 992
local.get 992
if ;; label = @6
local.get 981
local.get 958
i32.or
local.set 1003
i32.const 2312
local.get 1003
i32.store
local.get 947
i32.const 8
i32.add
local.set 78
local.get 947
local.set 10
local.get 78
local.set 88
else
local.get 947
i32.const 8
i32.add
local.set 1014
local.get 1014
i32.load
local.set 1025
local.get 1025
local.set 10
local.get 1014
local.set 88
end
local.get 88
local.get 914
i32.store
local.get 10
i32.const 12
i32.add
local.set 1036
local.get 1036
local.get 914
i32.store
local.get 914
i32.const 8
i32.add
local.set 1047
local.get 1047
local.get 10
i32.store
local.get 914
i32.const 12
i32.add
local.set 1058
local.get 1058
local.get 947
i32.store
end
i32.const 2320
local.get 825
i32.store
i32.const 2332
local.get 858
i32.store
local.get 736
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2316
i32.load
local.set 1069
local.get 1069
i32.const 0
i32.eq
local.set 1070
local.get 1070
if ;; label = @4
local.get 647
local.set 9
else
i32.const 0
local.get 1069
i32.sub
local.set 94
local.get 1069
local.get 94
i32.and
local.set 95
local.get 95
i32.const -1
i32.add
local.set 96
local.get 96
i32.const 12
i32.shr_u
local.set 97
local.get 97
i32.const 16
i32.and
local.set 98
local.get 96
local.get 98
i32.shr_u
local.set 99
local.get 99
i32.const 5
i32.shr_u
local.set 100
local.get 100
i32.const 8
i32.and
local.set 101
local.get 101
local.get 98
i32.or
local.set 102
local.get 99
local.get 101
i32.shr_u
local.set 103
local.get 103
i32.const 2
i32.shr_u
local.set 105
local.get 105
i32.const 4
i32.and
local.set 106
local.get 102
local.get 106
i32.or
local.set 107
local.get 103
local.get 106
i32.shr_u
local.set 108
local.get 108
i32.const 1
i32.shr_u
local.set 109
local.get 109
i32.const 2
i32.and
local.set 110
local.get 107
local.get 110
i32.or
local.set 111
local.get 108
local.get 110
i32.shr_u
local.set 112
local.get 112
i32.const 1
i32.shr_u
local.set 113
local.get 113
i32.const 1
i32.and
local.set 114
local.get 111
local.get 114
i32.or
local.set 116
local.get 112
local.get 114
i32.shr_u
local.set 117
local.get 116
local.get 117
i32.add
local.set 118
i32.const 2616
local.get 118
i32.const 2
i32.shl
i32.add
local.set 119
local.get 119
i32.load
local.set 120
local.get 120
i32.const 4
i32.add
local.set 121
local.get 121
i32.load
local.set 122
local.get 122
i32.const -8
i32.and
local.set 123
local.get 123
local.get 647
i32.sub
local.set 124
local.get 120
local.set 6
local.get 120
local.set 7
local.get 124
local.set 8
loop ;; label = @5
block ;; label = @6
local.get 6
i32.const 16
i32.add
local.set 125
local.get 125
i32.load
local.set 127
local.get 127
i32.const 0
i32.eq
local.set 128
local.get 128
if ;; label = @7
local.get 6
i32.const 20
i32.add
local.set 129
local.get 129
i32.load
local.set 130
local.get 130
i32.const 0
i32.eq
local.set 131
local.get 131
if ;; label = @8
br 2 (;@6;)
else
local.get 130
local.set 133
end
else
local.get 127
local.set 133
end
local.get 133
i32.const 4
i32.add
local.set 132
local.get 132
i32.load
local.set 134
local.get 134
i32.const -8
i32.and
local.set 135
local.get 135
local.get 647
i32.sub
local.set 136
local.get 136
local.get 8
i32.lt_u
local.set 138
local.get 138
if (result i32) ;; label = @7
local.get 136
else
local.get 8
end
local.set 1088
local.get 138
if (result i32) ;; label = @7
local.get 133
else
local.get 7
end
local.set 1090
local.get 133
local.set 6
local.get 1090
local.set 7
local.get 1088
local.set 8
br 1 (;@5;)
end
end
local.get 7
local.get 647
i32.add
local.set 139
local.get 139
local.get 7
i32.gt_u
local.set 140
local.get 140
if ;; label = @5
local.get 7
i32.const 24
i32.add
local.set 141
local.get 141
i32.load
local.set 142
local.get 7
i32.const 12
i32.add
local.set 143
local.get 143
i32.load
local.set 144
local.get 144
local.get 7
i32.eq
local.set 145
block ;; label = @6
local.get 145
if ;; label = @7
local.get 7
i32.const 20
i32.add
local.set 151
local.get 151
i32.load
local.set 152
local.get 152
i32.const 0
i32.eq
local.set 153
local.get 153
if ;; label = @8
local.get 7
i32.const 16
i32.add
local.set 154
local.get 154
i32.load
local.set 155
local.get 155
i32.const 0
i32.eq
local.set 156
local.get 156
if ;; label = @9
i32.const 0
local.set 60
br 3 (;@6;)
else
local.get 155
local.set 36
local.get 154
local.set 39
end
else
local.get 152
local.set 36
local.get 151
local.set 39
end
local.get 36
local.set 34
local.get 39
local.set 37
loop ;; label = @8
block ;; label = @9
local.get 34
i32.const 20
i32.add
local.set 157
local.get 157
i32.load
local.set 158
local.get 158
i32.const 0
i32.eq
local.set 160
local.get 160
if ;; label = @10
local.get 34
i32.const 16
i32.add
local.set 161
local.get 161
i32.load
local.set 162
local.get 162
i32.const 0
i32.eq
local.set 163
local.get 163
if ;; label = @11
br 2 (;@9;)
else
local.get 162
local.set 35
local.get 161
local.set 38
end
else
local.get 158
local.set 35
local.get 157
local.set 38
end
local.get 35
local.set 34
local.get 38
local.set 37
br 1 (;@8;)
end
end
local.get 37
i32.const 0
i32.store
local.get 34
local.set 60
else
local.get 7
i32.const 8
i32.add
local.set 146
local.get 146
i32.load
local.set 147
local.get 147
i32.const 12
i32.add
local.set 149
local.get 149
local.get 144
i32.store
local.get 144
i32.const 8
i32.add
local.set 150
local.get 150
local.get 147
i32.store
local.get 144
local.set 60
end
end
local.get 142
i32.const 0
i32.eq
local.set 164
block ;; label = @6
local.get 164
i32.eqz
if ;; label = @7
local.get 7
i32.const 28
i32.add
local.set 165
local.get 165
i32.load
local.set 166
i32.const 2616
local.get 166
i32.const 2
i32.shl
i32.add
local.set 167
local.get 167
i32.load
local.set 168
local.get 7
local.get 168
i32.eq
local.set 169
local.get 169
if ;; label = @8
local.get 167
local.get 60
i32.store
local.get 60
i32.const 0
i32.eq
local.set 1071
local.get 1071
if ;; label = @9
i32.const 1
local.get 166
i32.shl
local.set 171
local.get 171
i32.const -1
i32.xor
local.set 172
local.get 1069
local.get 172
i32.and
local.set 173
i32.const 2316
local.get 173
i32.store
br 3 (;@6;)
end
else
local.get 142
i32.const 16
i32.add
local.set 174
local.get 174
i32.load
local.set 175
local.get 175
local.get 7
i32.eq
local.set 176
local.get 142
i32.const 20
i32.add
local.set 177
local.get 176
if (result i32) ;; label = @9
local.get 174
else
local.get 177
end
local.set 89
local.get 89
local.get 60
i32.store
local.get 60
i32.const 0
i32.eq
local.set 178
local.get 178
if ;; label = @9
br 3 (;@6;)
end
end
local.get 60
i32.const 24
i32.add
local.set 179
local.get 179
local.get 142
i32.store
local.get 7
i32.const 16
i32.add
local.set 180
local.get 180
i32.load
local.set 182
local.get 182
i32.const 0
i32.eq
local.set 183
local.get 183
i32.eqz
if ;; label = @8
local.get 60
i32.const 16
i32.add
local.set 184
local.get 184
local.get 182
i32.store
local.get 182
i32.const 24
i32.add
local.set 185
local.get 185
local.get 60
i32.store
end
local.get 7
i32.const 20
i32.add
local.set 186
local.get 186
i32.load
local.set 187
local.get 187
i32.const 0
i32.eq
local.set 188
local.get 188
i32.eqz
if ;; label = @8
local.get 60
i32.const 20
i32.add
local.set 189
local.get 189
local.get 187
i32.store
local.get 187
i32.const 24
i32.add
local.set 190
local.get 190
local.get 60
i32.store
end
end
end
local.get 8
i32.const 16
i32.lt_u
local.set 191
local.get 191
if ;; label = @6
local.get 8
local.get 647
i32.add
local.set 193
local.get 193
i32.const 3
i32.or
local.set 194
local.get 7
i32.const 4
i32.add
local.set 195
local.get 195
local.get 194
i32.store
local.get 7
local.get 193
i32.add
local.set 196
local.get 196
i32.const 4
i32.add
local.set 197
local.get 197
i32.load
local.set 198
local.get 198
i32.const 1
i32.or
local.set 199
local.get 197
local.get 199
i32.store
else
local.get 647
i32.const 3
i32.or
local.set 200
local.get 7
i32.const 4
i32.add
local.set 201
local.get 201
local.get 200
i32.store
local.get 8
i32.const 1
i32.or
local.set 202
local.get 139
i32.const 4
i32.add
local.set 205
local.get 205
local.get 202
i32.store
local.get 139
local.get 8
i32.add
local.set 206
local.get 206
local.get 8
i32.store
local.get 348
i32.const 0
i32.eq
local.set 207
local.get 207
i32.eqz
if ;; label = @7
i32.const 2332
i32.load
local.set 208
local.get 348
i32.const 3
i32.shr_u
local.set 209
local.get 209
i32.const 1
i32.shl
local.set 210
i32.const 2352
local.get 210
i32.const 2
i32.shl
i32.add
local.set 211
i32.const 1
local.get 209
i32.shl
local.set 212
local.get 212
local.get 869
i32.and
local.set 213
local.get 213
i32.const 0
i32.eq
local.set 214
local.get 214
if ;; label = @8
local.get 212
local.get 869
i32.or
local.set 216
i32.const 2312
local.get 216
i32.store
local.get 211
i32.const 8
i32.add
local.set 79
local.get 211
local.set 2
local.get 79
local.set 87
else
local.get 211
i32.const 8
i32.add
local.set 217
local.get 217
i32.load
local.set 218
local.get 218
local.set 2
local.get 217
local.set 87
end
local.get 87
local.get 208
i32.store
local.get 2
i32.const 12
i32.add
local.set 219
local.get 219
local.get 208
i32.store
local.get 208
i32.const 8
i32.add
local.set 220
local.get 220
local.get 2
i32.store
local.get 208
i32.const 12
i32.add
local.set 221
local.get 221
local.get 211
i32.store
end
i32.const 2320
local.get 8
i32.store
i32.const 2332
local.get 139
i32.store
end
local.get 7
i32.const 8
i32.add
local.set 222
local.get 222
local.set 1
local.get 1096
global.set 12
local.get 1
return
else
local.get 647
local.set 9
end
end
else
local.get 647
local.set 9
end
else
local.get 0
i32.const -65
i32.gt_u
local.set 223
local.get 223
if ;; label = @3
i32.const -1
local.set 9
else
local.get 0
i32.const 11
i32.add
local.set 224
local.get 224
i32.const -8
i32.and
local.set 225
i32.const 2316
i32.load
local.set 227
local.get 227
i32.const 0
i32.eq
local.set 228
local.get 228
if ;; label = @4
local.get 225
local.set 9
else
i32.const 0
local.get 225
i32.sub
local.set 229
local.get 224
i32.const 8
i32.shr_u
local.set 230
local.get 230
i32.const 0
i32.eq
local.set 231
local.get 231
if ;; label = @5
i32.const 0
local.set 29
else
local.get 225
i32.const 16777215
i32.gt_u
local.set 232
local.get 232
if ;; label = @6
i32.const 31
local.set 29
else
local.get 230
i32.const 1048320
i32.add
local.set 233
local.get 233
i32.const 16
i32.shr_u
local.set 234
local.get 234
i32.const 8
i32.and
local.set 235
local.get 230
local.get 235
i32.shl
local.set 236
local.get 236
i32.const 520192
i32.add
local.set 238
local.get 238
i32.const 16
i32.shr_u
local.set 239
local.get 239
i32.const 4
i32.and
local.set 240
local.get 240
local.get 235
i32.or
local.set 241
local.get 236
local.get 240
i32.shl
local.set 242
local.get 242
i32.const 245760
i32.add
local.set 243
local.get 243
i32.const 16
i32.shr_u
local.set 244
local.get 244
i32.const 2
i32.and
local.set 245
local.get 241
local.get 245
i32.or
local.set 246
i32.const 14
local.get 246
i32.sub
local.set 247
local.get 242
local.get 245
i32.shl
local.set 249
local.get 249
i32.const 15
i32.shr_u
local.set 250
local.get 247
local.get 250
i32.add
local.set 251
local.get 251
i32.const 1
i32.shl
local.set 252
local.get 251
i32.const 7
i32.add
local.set 253
local.get 225
local.get 253
i32.shr_u
local.set 254
local.get 254
i32.const 1
i32.and
local.set 255
local.get 255
local.get 252
i32.or
local.set 256
local.get 256
local.set 29
end
end
i32.const 2616
local.get 29
i32.const 2
i32.shl
i32.add
local.set 257
local.get 257
i32.load
local.set 258
local.get 258
i32.const 0
i32.eq
local.set 260
block ;; label = @5
local.get 260
if ;; label = @6
i32.const 0
local.set 59
i32.const 0
local.set 62
local.get 229
local.set 64
i32.const 61
local.set 1095
else
local.get 29
i32.const 31
i32.eq
local.set 261
local.get 29
i32.const 1
i32.shr_u
local.set 262
i32.const 25
local.get 262
i32.sub
local.set 263
local.get 261
if (result i32) ;; label = @7
i32.const 0
else
local.get 263
end
local.set 264
local.get 225
local.get 264
i32.shl
local.set 265
i32.const 0
local.set 23
local.get 229
local.set 27
local.get 258
local.set 28
local.get 265
local.set 30
i32.const 0
local.set 32
loop ;; label = @7
block ;; label = @8
local.get 28
i32.const 4
i32.add
local.set 266
local.get 266
i32.load
local.set 267
local.get 267
i32.const -8
i32.and
local.set 268
local.get 268
local.get 225
i32.sub
local.set 269
local.get 269
local.get 27
i32.lt_u
local.set 271
local.get 271
if ;; label = @9
local.get 269
i32.const 0
i32.eq
local.set 272
local.get 272
if ;; label = @10
local.get 28
local.set 68
i32.const 0
local.set 72
local.get 28
local.set 75
i32.const 65
local.set 1095
br 5 (;@5;)
else
local.get 28
local.set 47
local.get 269
local.set 48
end
else
local.get 23
local.set 47
local.get 27
local.set 48
end
local.get 28
i32.const 20
i32.add
local.set 273
local.get 273
i32.load
local.set 274
local.get 30
i32.const 31
i32.shr_u
local.set 275
local.get 28
i32.const 16
i32.add
local.get 275
i32.const 2
i32.shl
i32.add
local.set 276
local.get 276
i32.load
local.set 277
local.get 274
i32.const 0
i32.eq
local.set 278
local.get 274
local.get 277
i32.eq
local.set 279
local.get 278
local.get 279
i32.or
local.set 1078
local.get 1078
if (result i32) ;; label = @9
local.get 32
else
local.get 274
end
local.set 49
local.get 277
i32.const 0
i32.eq
local.set 280
local.get 30
i32.const 1
i32.shl
local.set 1092
local.get 280
if ;; label = @9
local.get 49
local.set 59
local.get 47
local.set 62
local.get 48
local.set 64
i32.const 61
local.set 1095
br 1 (;@8;)
else
local.get 47
local.set 23
local.get 48
local.set 27
local.get 277
local.set 28
local.get 1092
local.set 30
local.get 49
local.set 32
end
br 1 (;@7;)
end
end
end
end
local.get 1095
i32.const 61
i32.eq
if ;; label = @5
local.get 59
i32.const 0
i32.eq
local.set 282
local.get 62
i32.const 0
i32.eq
local.set 283
local.get 282
local.get 283
i32.and
local.set 1076
local.get 1076
if ;; label = @6
i32.const 2
local.get 29
i32.shl
local.set 284
i32.const 0
local.get 284
i32.sub
local.set 285
local.get 284
local.get 285
i32.or
local.set 286
local.get 286
local.get 227
i32.and
local.set 287
local.get 287
i32.const 0
i32.eq
local.set 288
local.get 288
if ;; label = @7
local.get 225
local.set 9
br 6 (;@1;)
end
i32.const 0
local.get 287
i32.sub
local.set 289
local.get 287
local.get 289
i32.and
local.set 290
local.get 290
i32.const -1
i32.add
local.set 291
local.get 291
i32.const 12
i32.shr_u
local.set 293
local.get 293
i32.const 16
i32.and
local.set 294
local.get 291
local.get 294
i32.shr_u
local.set 295
local.get 295
i32.const 5
i32.shr_u
local.set 296
local.get 296
i32.const 8
i32.and
local.set 297
local.get 297
local.get 294
i32.or
local.set 298
local.get 295
local.get 297
i32.shr_u
local.set 299
local.get 299
i32.const 2
i32.shr_u
local.set 300
local.get 300
i32.const 4
i32.and
local.set 301
local.get 298
local.get 301
i32.or
local.set 302
local.get 299
local.get 301
i32.shr_u
local.set 304
local.get 304
i32.const 1
i32.shr_u
local.set 305
local.get 305
i32.const 2
i32.and
local.set 306
local.get 302
local.get 306
i32.or
local.set 307
local.get 304
local.get 306
i32.shr_u
local.set 308
local.get 308
i32.const 1
i32.shr_u
local.set 309
local.get 309
i32.const 1
i32.and
local.set 310
local.get 307
local.get 310
i32.or
local.set 311
local.get 308
local.get 310
i32.shr_u
local.set 312
local.get 311
local.get 312
i32.add
local.set 313
i32.const 2616
local.get 313
i32.const 2
i32.shl
i32.add
local.set 316
local.get 316
i32.load
local.set 317
i32.const 0
local.set 63
local.get 317
local.set 73
else
local.get 62
local.set 63
local.get 59
local.set 73
end
local.get 73
i32.const 0
i32.eq
local.set 318
local.get 318
if ;; label = @6
local.get 63
local.set 66
local.get 64
local.set 70
else
local.get 63
local.set 68
local.get 64
local.set 72
local.get 73
local.set 75
i32.const 65
local.set 1095
end
end
local.get 1095
i32.const 65
i32.eq
if ;; label = @5
local.get 68
local.set 67
local.get 72
local.set 71
local.get 75
local.set 74
loop ;; label = @6
block ;; label = @7
local.get 74
i32.const 4
i32.add
local.set 319
local.get 319
i32.load
local.set 320
local.get 320
i32.const -8
i32.and
local.set 321
local.get 321
local.get 225
i32.sub
local.set 322
local.get 322
local.get 71
i32.lt_u
local.set 323
local.get 323
if (result i32) ;; label = @8
local.get 322
else
local.get 71
end
local.set 1089
local.get 323
if (result i32) ;; label = @8
local.get 74
else
local.get 67
end
local.set 1091
local.get 74
i32.const 16
i32.add
local.set 324
local.get 324
i32.load
local.set 325
local.get 325
i32.const 0
i32.eq
local.set 327
local.get 327
if ;; label = @8
local.get 74
i32.const 20
i32.add
local.set 328
local.get 328
i32.load
local.set 329
local.get 329
local.set 330
else
local.get 325
local.set 330
end
local.get 330
i32.const 0
i32.eq
local.set 331
local.get 331
if ;; label = @8
local.get 1091
local.set 66
local.get 1089
local.set 70
br 1 (;@7;)
else
local.get 1091
local.set 67
local.get 1089
local.set 71
local.get 330
local.set 74
end
br 1 (;@6;)
end
end
end
local.get 66
i32.const 0
i32.eq
local.set 332
local.get 332
if ;; label = @5
local.get 225
local.set 9
else
i32.const 2320
i32.load
local.set 333
local.get 333
local.get 225
i32.sub
local.set 334
local.get 70
local.get 334
i32.lt_u
local.set 335
local.get 335
if ;; label = @6
local.get 66
local.get 225
i32.add
local.set 336
local.get 336
local.get 66
i32.gt_u
local.set 338
local.get 338
if ;; label = @7
local.get 66
i32.const 24
i32.add
local.set 339
local.get 339
i32.load
local.set 340
local.get 66
i32.const 12
i32.add
local.set 341
local.get 341
i32.load
local.set 342
local.get 342
local.get 66
i32.eq
local.set 343
block ;; label = @8
local.get 343
if ;; label = @9
local.get 66
i32.const 20
i32.add
local.set 349
local.get 349
i32.load
local.set 350
local.get 350
i32.const 0
i32.eq
local.set 351
local.get 351
if ;; label = @10
local.get 66
i32.const 16
i32.add
local.set 352
local.get 352
i32.load
local.set 353
local.get 353
i32.const 0
i32.eq
local.set 354
local.get 354
if ;; label = @11
i32.const 0
local.set 65
br 3 (;@8;)
else
local.get 353
local.set 52
local.get 352
local.set 55
end
else
local.get 350
local.set 52
local.get 349
local.set 55
end
local.get 52
local.set 50
local.get 55
local.set 53
loop ;; label = @10
block ;; label = @11
local.get 50
i32.const 20
i32.add
local.set 355
local.get 355
i32.load
local.set 356
local.get 356
i32.const 0
i32.eq
local.set 357
local.get 357
if ;; label = @12
local.get 50
i32.const 16
i32.add
local.set 358
local.get 358
i32.load
local.set 360
local.get 360
i32.const 0
i32.eq
local.set 361
local.get 361
if ;; label = @13
br 2 (;@11;)
else
local.get 360
local.set 51
local.get 358
local.set 54
end
else
local.get 356
local.set 51
local.get 355
local.set 54
end
local.get 51
local.set 50
local.get 54
local.set 53
br 1 (;@10;)
end
end
local.get 53
i32.const 0
i32.store
local.get 50
local.set 65
else
local.get 66
i32.const 8
i32.add
local.set 344
local.get 344
i32.load
local.set 345
local.get 345
i32.const 12
i32.add
local.set 346
local.get 346
local.get 342
i32.store
local.get 342
i32.const 8
i32.add
local.set 347
local.get 347
local.get 345
i32.store
local.get 342
local.set 65
end
end
local.get 340
i32.const 0
i32.eq
local.set 362
block ;; label = @8
local.get 362
if ;; label = @9
local.get 227
local.set 454
else
local.get 66
i32.const 28
i32.add
local.set 363
local.get 363
i32.load
local.set 364
i32.const 2616
local.get 364
i32.const 2
i32.shl
i32.add
local.set 365
local.get 365
i32.load
local.set 366
local.get 66
local.get 366
i32.eq
local.set 367
local.get 367
if ;; label = @10
local.get 365
local.get 65
i32.store
local.get 65
i32.const 0
i32.eq
local.set 1073
local.get 1073
if ;; label = @11
i32.const 1
local.get 364
i32.shl
local.set 368
local.get 368
i32.const -1
i32.xor
local.set 369
local.get 227
local.get 369
i32.and
local.set 371
i32.const 2316
local.get 371
i32.store
local.get 371
local.set 454
br 3 (;@8;)
end
else
local.get 340
i32.const 16
i32.add
local.set 372
local.get 372
i32.load
local.set 373
local.get 373
local.get 66
i32.eq
local.set 374
local.get 340
i32.const 20
i32.add
local.set 375
local.get 374
if (result i32) ;; label = @11
local.get 372
else
local.get 375
end
local.set 90
local.get 90
local.get 65
i32.store
local.get 65
i32.const 0
i32.eq
local.set 376
local.get 376
if ;; label = @11
local.get 227
local.set 454
br 3 (;@8;)
end
end
local.get 65
i32.const 24
i32.add
local.set 377
local.get 377
local.get 340
i32.store
local.get 66
i32.const 16
i32.add
local.set 378
local.get 378
i32.load
local.set 379
local.get 379
i32.const 0
i32.eq
local.set 380
local.get 380
i32.eqz
if ;; label = @10
local.get 65
i32.const 16
i32.add
local.set 382
local.get 382
local.get 379
i32.store
local.get 379
i32.const 24
i32.add
local.set 383
local.get 383
local.get 65
i32.store
end
local.get 66
i32.const 20
i32.add
local.set 384
local.get 384
i32.load
local.set 385
local.get 385
i32.const 0
i32.eq
local.set 386
local.get 386
if ;; label = @10
local.get 227
local.set 454
else
local.get 65
i32.const 20
i32.add
local.set 387
local.get 387
local.get 385
i32.store
local.get 385
i32.const 24
i32.add
local.set 388
local.get 388
local.get 65
i32.store
local.get 227
local.set 454
end
end
end
local.get 70
i32.const 16
i32.lt_u
local.set 389
block ;; label = @8
local.get 389
if ;; label = @9
local.get 70
local.get 225
i32.add
local.set 390
local.get 390
i32.const 3
i32.or
local.set 391
local.get 66
i32.const 4
i32.add
local.set 393
local.get 393
local.get 391
i32.store
local.get 66
local.get 390
i32.add
local.set 394
local.get 394
i32.const 4
i32.add
local.set 395
local.get 395
i32.load
local.set 396
local.get 396
i32.const 1
i32.or
local.set 397
local.get 395
local.get 397
i32.store
else
local.get 225
i32.const 3
i32.or
local.set 398
local.get 66
i32.const 4
i32.add
local.set 399
local.get 399
local.get 398
i32.store
local.get 70
i32.const 1
i32.or
local.set 400
local.get 336
i32.const 4
i32.add
local.set 401
local.get 401
local.get 400
i32.store
local.get 336
local.get 70
i32.add
local.set 402
local.get 402
local.get 70
i32.store
local.get 70
i32.const 3
i32.shr_u
local.set 404
local.get 70
i32.const 256
i32.lt_u
local.set 405
local.get 405
if ;; label = @10
local.get 404
i32.const 1
i32.shl
local.set 406
i32.const 2352
local.get 406
i32.const 2
i32.shl
i32.add
local.set 407
i32.const 2312
i32.load
local.set 408
i32.const 1
local.get 404
i32.shl
local.set 409
local.get 408
local.get 409
i32.and
local.set 410
local.get 410
i32.const 0
i32.eq
local.set 411
local.get 411
if ;; label = @11
local.get 408
local.get 409
i32.or
local.set 412
i32.const 2312
local.get 412
i32.store
local.get 407
i32.const 8
i32.add
local.set 83
local.get 407
local.set 33
local.get 83
local.set 86
else
local.get 407
i32.const 8
i32.add
local.set 413
local.get 413
i32.load
local.set 415
local.get 415
local.set 33
local.get 413
local.set 86
end
local.get 86
local.get 336
i32.store
local.get 33
i32.const 12
i32.add
local.set 416
local.get 416
local.get 336
i32.store
local.get 336
i32.const 8
i32.add
local.set 417
local.get 417
local.get 33
i32.store
local.get 336
i32.const 12
i32.add
local.set 418
local.get 418
local.get 407
i32.store
br 2 (;@8;)
end
local.get 70
i32.const 8
i32.shr_u
local.set 419
local.get 419
i32.const 0
i32.eq
local.set 420
local.get 420
if ;; label = @10
i32.const 0
local.set 31
else
local.get 70
i32.const 16777215
i32.gt_u
local.set 421
local.get 421
if ;; label = @11
i32.const 31
local.set 31
else
local.get 419
i32.const 1048320
i32.add
local.set 422
local.get 422
i32.const 16
i32.shr_u
local.set 423
local.get 423
i32.const 8
i32.and
local.set 424
local.get 419
local.get 424
i32.shl
local.set 427
local.get 427
i32.const 520192
i32.add
local.set 428
local.get 428
i32.const 16
i32.shr_u
local.set 429
local.get 429
i32.const 4
i32.and
local.set 430
local.get 430
local.get 424
i32.or
local.set 431
local.get 427
local.get 430
i32.shl
local.set 432
local.get 432
i32.const 245760
i32.add
local.set 433
local.get 433
i32.const 16
i32.shr_u
local.set 434
local.get 434
i32.const 2
i32.and
local.set 435
local.get 431
local.get 435
i32.or
local.set 436
i32.const 14
local.get 436
i32.sub
local.set 438
local.get 432
local.get 435
i32.shl
local.set 439
local.get 439
i32.const 15
i32.shr_u
local.set 440
local.get 438
local.get 440
i32.add
local.set 441
local.get 441
i32.const 1
i32.shl
local.set 442
local.get 441
i32.const 7
i32.add
local.set 443
local.get 70
local.get 443
i32.shr_u
local.set 444
local.get 444
i32.const 1
i32.and
local.set 445
local.get 445
local.get 442
i32.or
local.set 446
local.get 446
local.set 31
end
end
i32.const 2616
local.get 31
i32.const 2
i32.shl
i32.add
local.set 447
local.get 336
i32.const 28
i32.add
local.set 449
local.get 449
local.get 31
i32.store
local.get 336
i32.const 16
i32.add
local.set 450
local.get 450
i32.const 4
i32.add
local.set 451
local.get 451
i32.const 0
i32.store
local.get 450
i32.const 0
i32.store
i32.const 1
local.get 31
i32.shl
local.set 452
local.get 454
local.get 452
i32.and
local.set 453
local.get 453
i32.const 0
i32.eq
local.set 455
local.get 455
if ;; label = @10
local.get 454
local.get 452
i32.or
local.set 456
i32.const 2316
local.get 456
i32.store
local.get 447
local.get 336
i32.store
local.get 336
i32.const 24
i32.add
local.set 457
local.get 457
local.get 447
i32.store
local.get 336
i32.const 12
i32.add
local.set 458
local.get 458
local.get 336
i32.store
local.get 336
i32.const 8
i32.add
local.set 460
local.get 460
local.get 336
i32.store
br 2 (;@8;)
end
local.get 447
i32.load
local.set 461
local.get 461
i32.const 4
i32.add
local.set 462
local.get 462
i32.load
local.set 463
local.get 463
i32.const -8
i32.and
local.set 464
local.get 464
local.get 70
i32.eq
local.set 465
block ;; label = @10
local.get 465
if ;; label = @11
local.get 461
local.set 25
else
local.get 31
i32.const 31
i32.eq
local.set 466
local.get 31
i32.const 1
i32.shr_u
local.set 467
i32.const 25
local.get 467
i32.sub
local.set 468
local.get 466
if (result i32) ;; label = @12
i32.const 0
else
local.get 468
end
local.set 469
local.get 70
local.get 469
i32.shl
local.set 471
local.get 471
local.set 24
local.get 461
local.set 26
loop ;; label = @12
block ;; label = @13
local.get 24
i32.const 31
i32.shr_u
local.set 478
local.get 26
i32.const 16
i32.add
local.get 478
i32.const 2
i32.shl
i32.add
local.set 479
local.get 479
i32.load
local.set 474
local.get 474
i32.const 0
i32.eq
local.set 480
local.get 480
if ;; label = @14
br 1 (;@13;)
end
local.get 24
i32.const 1
i32.shl
local.set 472
local.get 474
i32.const 4
i32.add
local.set 473
local.get 473
i32.load
local.set 475
local.get 475
i32.const -8
i32.and
local.set 476
local.get 476
local.get 70
i32.eq
local.set 477
local.get 477
if ;; label = @14
local.get 474
local.set 25
br 4 (;@10;)
else
local.get 472
local.set 24
local.get 474
local.set 26
end
br 1 (;@12;)
end
end
local.get 479
local.get 336
i32.store
local.get 336
i32.const 24
i32.add
local.set 482
local.get 482
local.get 26
i32.store
local.get 336
i32.const 12
i32.add
local.set 483
local.get 483
local.get 336
i32.store
local.get 336
i32.const 8
i32.add
local.set 484
local.get 484
local.get 336
i32.store
br 3 (;@8;)
end
end
local.get 25
i32.const 8
i32.add
local.set 485
local.get 485
i32.load
local.set 486
local.get 486
i32.const 12
i32.add
local.set 487
local.get 487
local.get 336
i32.store
local.get 485
local.get 336
i32.store
local.get 336
i32.const 8
i32.add
local.set 488
local.get 488
local.get 486
i32.store
local.get 336
i32.const 12
i32.add
local.set 489
local.get 489
local.get 25
i32.store
local.get 336
i32.const 24
i32.add
local.set 490
local.get 490
i32.const 0
i32.store
end
end
local.get 66
i32.const 8
i32.add
local.set 491
local.get 491
local.set 1
local.get 1096
global.set 12
local.get 1
return
else
local.get 225
local.set 9
end
else
local.get 225
local.set 9
end
end
end
end
end
end
i32.const 2320
i32.load
local.set 493
local.get 493
local.get 9
i32.lt_u
local.set 494
local.get 494
i32.eqz
if ;; label = @1
local.get 493
local.get 9
i32.sub
local.set 495
i32.const 2332
i32.load
local.set 496
local.get 495
i32.const 15
i32.gt_u
local.set 497
local.get 497
if ;; label = @2
local.get 496
local.get 9
i32.add
local.set 498
i32.const 2332
local.get 498
i32.store
i32.const 2320
local.get 495
i32.store
local.get 495
i32.const 1
i32.or
local.set 499
local.get 498
i32.const 4
i32.add
local.set 500
local.get 500
local.get 499
i32.store
local.get 496
local.get 493
i32.add
local.set 501
local.get 501
local.get 495
i32.store
local.get 9
i32.const 3
i32.or
local.set 502
local.get 496
i32.const 4
i32.add
local.set 504
local.get 504
local.get 502
i32.store
else
i32.const 2320
i32.const 0
i32.store
i32.const 2332
i32.const 0
i32.store
local.get 493
i32.const 3
i32.or
local.set 505
local.get 496
i32.const 4
i32.add
local.set 506
local.get 506
local.get 505
i32.store
local.get 496
local.get 493
i32.add
local.set 507
local.get 507
i32.const 4
i32.add
local.set 508
local.get 508
i32.load
local.set 509
local.get 509
i32.const 1
i32.or
local.set 510
local.get 508
local.get 510
i32.store
end
local.get 496
i32.const 8
i32.add
local.set 511
local.get 511
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2324
i32.load
local.set 512
local.get 512
local.get 9
i32.gt_u
local.set 513
local.get 513
if ;; label = @1
local.get 512
local.get 9
i32.sub
local.set 515
i32.const 2324
local.get 515
i32.store
i32.const 2336
i32.load
local.set 516
local.get 516
local.get 9
i32.add
local.set 517
i32.const 2336
local.get 517
i32.store
local.get 515
i32.const 1
i32.or
local.set 518
local.get 517
i32.const 4
i32.add
local.set 519
local.get 519
local.get 518
i32.store
local.get 9
i32.const 3
i32.or
local.set 520
local.get 516
i32.const 4
i32.add
local.set 521
local.get 521
local.get 520
i32.store
local.get 516
i32.const 8
i32.add
local.set 522
local.get 522
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2784
i32.load
local.set 523
local.get 523
i32.const 0
i32.eq
local.set 524
local.get 524
if ;; label = @1
i32.const 2792
i32.const 4096
i32.store
i32.const 2788
i32.const 4096
i32.store
i32.const 2796
i32.const -1
i32.store
i32.const 2800
i32.const -1
i32.store
i32.const 2804
i32.const 0
i32.store
i32.const 2756
i32.const 0
i32.store
local.get 92
local.set 526
local.get 526
i32.const -16
i32.and
local.set 527
local.get 527
i32.const 1431655768
i32.xor
local.set 528
i32.const 2784
local.get 528
i32.store
i32.const 4096
local.set 532
else
i32.const 2792
i32.load
local.set 82
local.get 82
local.set 532
end
local.get 9
i32.const 48
i32.add
local.set 529
local.get 9
i32.const 47
i32.add
local.set 530
local.get 532
local.get 530
i32.add
local.set 531
i32.const 0
local.get 532
i32.sub
local.set 533
local.get 531
local.get 533
i32.and
local.set 534
local.get 534
local.get 9
i32.gt_u
local.set 535
local.get 535
i32.eqz
if ;; label = @1
i32.const 0
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
i32.const 2752
i32.load
local.set 538
local.get 538
i32.const 0
i32.eq
local.set 539
local.get 539
i32.eqz
if ;; label = @1
i32.const 2744
i32.load
local.set 540
local.get 540
local.get 534
i32.add
local.set 541
local.get 541
local.get 540
i32.le_u
local.set 542
local.get 541
local.get 538
i32.gt_u
local.set 543
local.get 542
local.get 543
i32.or
local.set 1077
local.get 1077
if ;; label = @2
i32.const 0
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
end
i32.const 2756
i32.load
local.set 544
local.get 544
i32.const 4
i32.and
local.set 545
local.get 545
i32.const 0
i32.eq
local.set 546
block ;; label = @1
local.get 546
if ;; label = @2
i32.const 2336
i32.load
local.set 547
local.get 547
i32.const 0
i32.eq
local.set 549
block ;; label = @3
local.get 549
if ;; label = @4
i32.const 128
local.set 1095
else
i32.const 2760
local.set 5
loop ;; label = @5
block ;; label = @6
local.get 5
i32.load
local.set 550
local.get 550
local.get 547
i32.gt_u
local.set 551
local.get 551
i32.eqz
if ;; label = @7
local.get 5
i32.const 4
i32.add
local.set 552
local.get 552
i32.load
local.set 553
local.get 550
local.get 553
i32.add
local.set 554
local.get 554
local.get 547
i32.gt_u
local.set 555
local.get 555
if ;; label = @8
br 2 (;@6;)
end
end
local.get 5
i32.const 8
i32.add
local.set 556
local.get 556
i32.load
local.set 557
local.get 557
i32.const 0
i32.eq
local.set 558
local.get 558
if ;; label = @7
i32.const 128
local.set 1095
br 4 (;@3;)
else
local.get 557
local.set 5
end
br 1 (;@5;)
end
end
local.get 531
local.get 512
i32.sub
local.set 584
local.get 584
local.get 533
i32.and
local.set 585
local.get 585
i32.const 2147483647
i32.lt_u
local.set 586
local.get 586
if ;; label = @5
local.get 5
i32.const 4
i32.add
local.set 587
local.get 585
call 50
local.set 588
local.get 5
i32.load
local.set 589
local.get 587
i32.load
local.set 590
local.get 589
local.get 590
i32.add
local.set 591
local.get 588
local.get 591
i32.eq
local.set 593
local.get 593
if ;; label = @6
local.get 588
i32.const -1
i32.eq
local.set 594
local.get 594
if ;; label = @7
local.get 585
local.set 56
else
local.get 585
local.set 76
local.get 588
local.set 77
i32.const 145
local.set 1095
br 6 (;@1;)
end
else
local.get 588
local.set 57
local.get 585
local.set 58
i32.const 136
local.set 1095
end
else
i32.const 0
local.set 56
end
end
end
block ;; label = @3
local.get 1095
i32.const 128
i32.eq
if ;; label = @4
i32.const 0
call 50
local.set 560
local.get 560
i32.const -1
i32.eq
local.set 561
local.get 561
if ;; label = @5
i32.const 0
local.set 56
else
local.get 560
local.set 562
i32.const 2788
i32.load
local.set 563
local.get 563
i32.const -1
i32.add
local.set 564
local.get 564
local.get 562
i32.and
local.set 565
local.get 565
i32.const 0
i32.eq
local.set 566
local.get 564
local.get 562
i32.add
local.set 567
i32.const 0
local.get 563
i32.sub
local.set 568
local.get 567
local.get 568
i32.and
local.set 569
local.get 569
local.get 562
i32.sub
local.set 571
local.get 566
if (result i32) ;; label = @6
i32.const 0
else
local.get 571
end
local.set 572
local.get 572
local.get 534
i32.add
local.set 1093
i32.const 2744
i32.load
local.set 573
local.get 1093
local.get 573
i32.add
local.set 574
local.get 1093
local.get 9
i32.gt_u
local.set 575
local.get 1093
i32.const 2147483647
i32.lt_u
local.set 576
local.get 575
local.get 576
i32.and
local.set 1075
local.get 1075
if ;; label = @6
i32.const 2752
i32.load
local.set 577
local.get 577
i32.const 0
i32.eq
local.set 578
local.get 578
i32.eqz
if ;; label = @7
local.get 574
local.get 573
i32.le_u
local.set 579
local.get 574
local.get 577
i32.gt_u
local.set 580
local.get 579
local.get 580
i32.or
local.set 1080
local.get 1080
if ;; label = @8
i32.const 0
local.set 56
br 5 (;@3;)
end
end
local.get 1093
call 50
local.set 582
local.get 582
local.get 560
i32.eq
local.set 583
local.get 583
if ;; label = @7
local.get 1093
local.set 76
local.get 560
local.set 77
i32.const 145
local.set 1095
br 6 (;@1;)
else
local.get 582
local.set 57
local.get 1093
local.set 58
i32.const 136
local.set 1095
end
else
i32.const 0
local.set 56
end
end
end
end
block ;; label = @3
local.get 1095
i32.const 136
i32.eq
if ;; label = @4
i32.const 0
local.get 58
i32.sub
local.set 595
local.get 57
i32.const -1
i32.ne
local.set 596
local.get 58
i32.const 2147483647
i32.lt_u
local.set 597
local.get 597
local.get 596
i32.and
local.set 1085
local.get 529
local.get 58
i32.gt_u
local.set 598
local.get 598
local.get 1085
i32.and
local.set 1084
local.get 1084
i32.eqz
if ;; label = @5
local.get 57
i32.const -1
i32.eq
local.set 609
local.get 609
if ;; label = @6
i32.const 0
local.set 56
br 3 (;@3;)
else
local.get 58
local.set 76
local.get 57
local.set 77
i32.const 145
local.set 1095
br 5 (;@1;)
end
unreachable
end
i32.const 2792
i32.load
local.set 599
local.get 530
local.get 58
i32.sub
local.set 600
local.get 600
local.get 599
i32.add
local.set 601
i32.const 0
local.get 599
i32.sub
local.set 602
local.get 601
local.get 602
i32.and
local.set 604
local.get 604
i32.const 2147483647
i32.lt_u
local.set 605
local.get 605
i32.eqz
if ;; label = @5
local.get 58
local.set 76
local.get 57
local.set 77
i32.const 145
local.set 1095
br 4 (;@1;)
end
local.get 604
call 50
local.set 606
local.get 606
i32.const -1
i32.eq
local.set 607
local.get 607
if ;; label = @5
local.get 595
call 50
drop
i32.const 0
local.set 56
br 2 (;@3;)
else
local.get 604
local.get 58
i32.add
local.set 608
local.get 608
local.set 76
local.get 57
local.set 77
i32.const 145
local.set 1095
br 4 (;@1;)
end
unreachable
end
end
i32.const 2756
i32.load
local.set 610
local.get 610
i32.const 4
i32.or
local.set 611
i32.const 2756
local.get 611
i32.store
local.get 56
local.set 69
i32.const 143
local.set 1095
else
i32.const 0
local.set 69
i32.const 143
local.set 1095
end
end
local.get 1095
i32.const 143
i32.eq
if ;; label = @1
local.get 534
i32.const 2147483647
i32.lt_u
local.set 612
local.get 612
if ;; label = @2
local.get 534
call 50
local.set 613
i32.const 0
call 50
local.set 615
local.get 613
i32.const -1
i32.ne
local.set 616
local.get 615
i32.const -1
i32.ne
local.set 617
local.get 616
local.get 617
i32.and
local.set 1081
local.get 613
local.get 615
i32.lt_u
local.set 618
local.get 618
local.get 1081
i32.and
local.set 1086
local.get 615
local.set 619
local.get 613
local.set 620
local.get 619
local.get 620
i32.sub
local.set 621
local.get 9
i32.const 40
i32.add
local.set 622
local.get 621
local.get 622
i32.gt_u
local.set 623
local.get 623
if (result i32) ;; label = @3
local.get 621
else
local.get 69
end
local.set 1094
local.get 1086
i32.const 1
i32.xor
local.set 1087
local.get 613
i32.const -1
i32.eq
local.set 624
local.get 623
i32.const 1
i32.xor
local.set 1074
local.get 624
local.get 1074
i32.or
local.set 626
local.get 626
local.get 1087
i32.or
local.set 1082
local.get 1082
i32.eqz
if ;; label = @3
local.get 1094
local.set 76
local.get 613
local.set 77
i32.const 145
local.set 1095
end
end
end
local.get 1095
i32.const 145
i32.eq
if ;; label = @1
i32.const 2744
i32.load
local.set 627
local.get 627
local.get 76
i32.add
local.set 628
i32.const 2744
local.get 628
i32.store
i32.const 2748
i32.load
local.set 629
local.get 628
local.get 629
i32.gt_u
local.set 630
local.get 630
if ;; label = @2
i32.const 2748
local.get 628
i32.store
end
i32.const 2336
i32.load
local.set 631
local.get 631
i32.const 0
i32.eq
local.set 632
block ;; label = @2
local.get 632
if ;; label = @3
i32.const 2328
i32.load
local.set 633
local.get 633
i32.const 0
i32.eq
local.set 634
local.get 77
local.get 633
i32.lt_u
local.set 635
local.get 634
local.get 635
i32.or
local.set 1079
local.get 1079
if ;; label = @4
i32.const 2328
local.get 77
i32.store
end
i32.const 2760
local.get 77
i32.store
i32.const 2764
local.get 76
i32.store
i32.const 2772
i32.const 0
i32.store
i32.const 2784
i32.load
local.set 637
i32.const 2348
local.get 637
i32.store
i32.const 2344
i32.const -1
i32.store
i32.const 2364
i32.const 2352
i32.store
i32.const 2360
i32.const 2352
i32.store
i32.const 2372
i32.const 2360
i32.store
i32.const 2368
i32.const 2360
i32.store
i32.const 2380
i32.const 2368
i32.store
i32.const 2376
i32.const 2368
i32.store
i32.const 2388
i32.const 2376
i32.store
i32.const 2384
i32.const 2376
i32.store
i32.const 2396
i32.const 2384
i32.store
i32.const 2392
i32.const 2384
i32.store
i32.const 2404
i32.const 2392
i32.store
i32.const 2400
i32.const 2392
i32.store
i32.const 2412
i32.const 2400
i32.store
i32.const 2408
i32.const 2400
i32.store
i32.const 2420
i32.const 2408
i32.store
i32.const 2416
i32.const 2408
i32.store
i32.const 2428
i32.const 2416
i32.store
i32.const 2424
i32.const 2416
i32.store
i32.const 2436
i32.const 2424
i32.store
i32.const 2432
i32.const 2424
i32.store
i32.const 2444
i32.const 2432
i32.store
i32.const 2440
i32.const 2432
i32.store
i32.const 2452
i32.const 2440
i32.store
i32.const 2448
i32.const 2440
i32.store
i32.const 2460
i32.const 2448
i32.store
i32.const 2456
i32.const 2448
i32.store
i32.const 2468
i32.const 2456
i32.store
i32.const 2464
i32.const 2456
i32.store
i32.const 2476
i32.const 2464
i32.store
i32.const 2472
i32.const 2464
i32.store
i32.const 2484
i32.const 2472
i32.store
i32.const 2480
i32.const 2472
i32.store
i32.const 2492
i32.const 2480
i32.store
i32.const 2488
i32.const 2480
i32.store
i32.const 2500
i32.const 2488
i32.store
i32.const 2496
i32.const 2488
i32.store
i32.const 2508
i32.const 2496
i32.store
i32.const 2504
i32.const 2496
i32.store
i32.const 2516
i32.const 2504
i32.store
i32.const 2512
i32.const 2504
i32.store
i32.const 2524
i32.const 2512
i32.store
i32.const 2520
i32.const 2512
i32.store
i32.const 2532
i32.const 2520
i32.store
i32.const 2528
i32.const 2520
i32.store
i32.const 2540
i32.const 2528
i32.store
i32.const 2536
i32.const 2528
i32.store
i32.const 2548
i32.const 2536
i32.store
i32.const 2544
i32.const 2536
i32.store
i32.const 2556
i32.const 2544
i32.store
i32.const 2552
i32.const 2544
i32.store
i32.const 2564
i32.const 2552
i32.store
i32.const 2560
i32.const 2552
i32.store
i32.const 2572
i32.const 2560
i32.store
i32.const 2568
i32.const 2560
i32.store
i32.const 2580
i32.const 2568
i32.store
i32.const 2576
i32.const 2568
i32.store
i32.const 2588
i32.const 2576
i32.store
i32.const 2584
i32.const 2576
i32.store
i32.const 2596
i32.const 2584
i32.store
i32.const 2592
i32.const 2584
i32.store
i32.const 2604
i32.const 2592
i32.store
i32.const 2600
i32.const 2592
i32.store
i32.const 2612
i32.const 2600
i32.store
i32.const 2608
i32.const 2600
i32.store
local.get 76
i32.const -40
i32.add
local.set 638
local.get 77
i32.const 8
i32.add
local.set 639
local.get 639
local.set 640
local.get 640
i32.const 7
i32.and
local.set 641
local.get 641
i32.const 0
i32.eq
local.set 642
i32.const 0
local.get 640
i32.sub
local.set 643
local.get 643
i32.const 7
i32.and
local.set 644
local.get 642
if (result i32) ;; label = @4
i32.const 0
else
local.get 644
end
local.set 645
local.get 77
local.get 645
i32.add
local.set 646
local.get 638
local.get 645
i32.sub
local.set 649
i32.const 2336
local.get 646
i32.store
i32.const 2324
local.get 649
i32.store
local.get 649
i32.const 1
i32.or
local.set 650
local.get 646
i32.const 4
i32.add
local.set 651
local.get 651
local.get 650
i32.store
local.get 77
local.get 638
i32.add
local.set 652
local.get 652
i32.const 4
i32.add
local.set 653
local.get 653
i32.const 40
i32.store
i32.const 2800
i32.load
local.set 654
i32.const 2340
local.get 654
i32.store
else
i32.const 2760
local.set 16
loop ;; label = @4
block ;; label = @5
local.get 16
i32.load
local.set 655
local.get 16
i32.const 4
i32.add
local.set 656
local.get 656
i32.load
local.set 657
local.get 655
local.get 657
i32.add
local.set 658
local.get 77
local.get 658
i32.eq
local.set 660
local.get 660
if ;; label = @6
i32.const 154
local.set 1095
br 1 (;@5;)
end
local.get 16
i32.const 8
i32.add
local.set 661
local.get 661
i32.load
local.set 662
local.get 662
i32.const 0
i32.eq
local.set 663
local.get 663
if ;; label = @6
br 1 (;@5;)
else
local.get 662
local.set 16
end
br 1 (;@4;)
end
end
local.get 1095
i32.const 154
i32.eq
if ;; label = @4
local.get 16
i32.const 4
i32.add
local.set 664
local.get 16
i32.const 12
i32.add
local.set 665
local.get 665
i32.load
local.set 666
local.get 666
i32.const 8
i32.and
local.set 667
local.get 667
i32.const 0
i32.eq
local.set 668
local.get 668
if ;; label = @5
local.get 655
local.get 631
i32.le_u
local.set 669
local.get 77
local.get 631
i32.gt_u
local.set 671
local.get 671
local.get 669
i32.and
local.set 1083
local.get 1083
if ;; label = @6
local.get 657
local.get 76
i32.add
local.set 672
local.get 664
local.get 672
i32.store
i32.const 2324
i32.load
local.set 673
local.get 673
local.get 76
i32.add
local.set 674
local.get 631
i32.const 8
i32.add
local.set 675
local.get 675
local.set 676
local.get 676
i32.const 7
i32.and
local.set 677
local.get 677
i32.const 0
i32.eq
local.set 678
i32.const 0
local.get 676
i32.sub
local.set 679
local.get 679
i32.const 7
i32.and
local.set 680
local.get 678
if (result i32) ;; label = @7
i32.const 0
else
local.get 680
end
local.set 682
local.get 631
local.get 682
i32.add
local.set 683
local.get 674
local.get 682
i32.sub
local.set 684
i32.const 2336
local.get 683
i32.store
i32.const 2324
local.get 684
i32.store
local.get 684
i32.const 1
i32.or
local.set 685
local.get 683
i32.const 4
i32.add
local.set 686
local.get 686
local.get 685
i32.store
local.get 631
local.get 674
i32.add
local.set 687
local.get 687
i32.const 4
i32.add
local.set 688
local.get 688
i32.const 40
i32.store
i32.const 2800
i32.load
local.set 689
i32.const 2340
local.get 689
i32.store
br 4 (;@2;)
end
end
end
i32.const 2328
i32.load
local.set 690
local.get 77
local.get 690
i32.lt_u
local.set 691
local.get 691
if ;; label = @4
i32.const 2328
local.get 77
i32.store
end
local.get 77
local.get 76
i32.add
local.set 693
i32.const 2760
local.set 40
loop ;; label = @4
block ;; label = @5
local.get 40
i32.load
local.set 694
local.get 694
local.get 693
i32.eq
local.set 695
local.get 695
if ;; label = @6
i32.const 162
local.set 1095
br 1 (;@5;)
end
local.get 40
i32.const 8
i32.add
local.set 696
local.get 696
i32.load
local.set 697
local.get 697
i32.const 0
i32.eq
local.set 698
local.get 698
if ;; label = @6
br 1 (;@5;)
else
local.get 697
local.set 40
end
br 1 (;@4;)
end
end
local.get 1095
i32.const 162
i32.eq
if ;; label = @4
local.get 40
i32.const 12
i32.add
local.set 699
local.get 699
i32.load
local.set 700
local.get 700
i32.const 8
i32.and
local.set 701
local.get 701
i32.const 0
i32.eq
local.set 702
local.get 702
if ;; label = @5
local.get 40
local.get 77
i32.store
local.get 40
i32.const 4
i32.add
local.set 704
local.get 704
i32.load
local.set 705
local.get 705
local.get 76
i32.add
local.set 706
local.get 704
local.get 706
i32.store
local.get 77
i32.const 8
i32.add
local.set 707
local.get 707
local.set 708
local.get 708
i32.const 7
i32.and
local.set 709
local.get 709
i32.const 0
i32.eq
local.set 710
i32.const 0
local.get 708
i32.sub
local.set 711
local.get 711
i32.const 7
i32.and
local.set 712
local.get 710
if (result i32) ;; label = @6
i32.const 0
else
local.get 712
end
local.set 713
local.get 77
local.get 713
i32.add
local.set 715
local.get 693
i32.const 8
i32.add
local.set 716
local.get 716
local.set 717
local.get 717
i32.const 7
i32.and
local.set 718
local.get 718
i32.const 0
i32.eq
local.set 719
i32.const 0
local.get 717
i32.sub
local.set 720
local.get 720
i32.const 7
i32.and
local.set 721
local.get 719
if (result i32) ;; label = @6
i32.const 0
else
local.get 721
end
local.set 722
local.get 693
local.get 722
i32.add
local.set 723
local.get 723
local.set 724
local.get 715
local.set 726
local.get 724
local.get 726
i32.sub
local.set 727
local.get 715
local.get 9
i32.add
local.set 728
local.get 727
local.get 9
i32.sub
local.set 729
local.get 9
i32.const 3
i32.or
local.set 730
local.get 715
i32.const 4
i32.add
local.set 731
local.get 731
local.get 730
i32.store
local.get 631
local.get 723
i32.eq
local.set 732
block ;; label = @6
local.get 732
if ;; label = @7
i32.const 2324
i32.load
local.set 733
local.get 733
local.get 729
i32.add
local.set 734
i32.const 2324
local.get 734
i32.store
i32.const 2336
local.get 728
i32.store
local.get 734
i32.const 1
i32.or
local.set 735
local.get 728
i32.const 4
i32.add
local.set 737
local.get 737
local.get 735
i32.store
else
i32.const 2332
i32.load
local.set 738
local.get 738
local.get 723
i32.eq
local.set 739
local.get 739
if ;; label = @8
i32.const 2320
i32.load
local.set 740
local.get 740
local.get 729
i32.add
local.set 741
i32.const 2320
local.get 741
i32.store
i32.const 2332
local.get 728
i32.store
local.get 741
i32.const 1
i32.or
local.set 742
local.get 728
i32.const 4
i32.add
local.set 743
local.get 743
local.get 742
i32.store
local.get 728
local.get 741
i32.add
local.set 744
local.get 744
local.get 741
i32.store
br 2 (;@6;)
end
local.get 723
i32.const 4
i32.add
local.set 745
local.get 745
i32.load
local.set 746
local.get 746
i32.const 3
i32.and
local.set 748
local.get 748
i32.const 1
i32.eq
local.set 749
local.get 749
if ;; label = @8
local.get 746
i32.const -8
i32.and
local.set 750
local.get 746
i32.const 3
i32.shr_u
local.set 751
local.get 746
i32.const 256
i32.lt_u
local.set 752
block ;; label = @9
local.get 752
if ;; label = @10
local.get 723
i32.const 8
i32.add
local.set 753
local.get 753
i32.load
local.set 754
local.get 723
i32.const 12
i32.add
local.set 755
local.get 755
i32.load
local.set 756
local.get 756
local.get 754
i32.eq
local.set 757
local.get 757
if ;; label = @11
i32.const 1
local.get 751
i32.shl
local.set 760
local.get 760
i32.const -1
i32.xor
local.set 761
i32.const 2312
i32.load
local.set 762
local.get 762
local.get 761
i32.and
local.set 763
i32.const 2312
local.get 763
i32.store
br 2 (;@9;)
else
local.get 754
i32.const 12
i32.add
local.set 764
local.get 764
local.get 756
i32.store
local.get 756
i32.const 8
i32.add
local.set 765
local.get 765
local.get 754
i32.store
br 2 (;@9;)
end
unreachable
else
local.get 723
i32.const 24
i32.add
local.set 766
local.get 766
i32.load
local.set 767
local.get 723
i32.const 12
i32.add
local.set 768
local.get 768
i32.load
local.set 769
local.get 769
local.get 723
i32.eq
local.set 771
block ;; label = @11
local.get 771
if ;; label = @12
local.get 723
i32.const 16
i32.add
local.set 776
local.get 776
i32.const 4
i32.add
local.set 777
local.get 777
i32.load
local.set 778
local.get 778
i32.const 0
i32.eq
local.set 779
local.get 779
if ;; label = @13
local.get 776
i32.load
local.set 780
local.get 780
i32.const 0
i32.eq
local.set 782
local.get 782
if ;; label = @14
i32.const 0
local.set 61
br 3 (;@11;)
else
local.get 780
local.set 43
local.get 776
local.set 46
end
else
local.get 778
local.set 43
local.get 777
local.set 46
end
local.get 43
local.set 41
local.get 46
local.set 44
loop ;; label = @13
block ;; label = @14
local.get 41
i32.const 20
i32.add
local.set 783
local.get 783
i32.load
local.set 784
local.get 784
i32.const 0
i32.eq
local.set 785
local.get 785
if ;; label = @15
local.get 41
i32.const 16
i32.add
local.set 786
local.get 786
i32.load
local.set 787
local.get 787
i32.const 0
i32.eq
local.set 788
local.get 788
if ;; label = @16
br 2 (;@14;)
else
local.get 787
local.set 42
local.get 786
local.set 45
end
else
local.get 784
local.set 42
local.get 783
local.set 45
end
local.get 42
local.set 41
local.get 45
local.set 44
br 1 (;@13;)
end
end
local.get 44
i32.const 0
i32.store
local.get 41
local.set 61
else
local.get 723
i32.const 8
i32.add
local.set 772
local.get 772
i32.load
local.set 773
local.get 773
i32.const 12
i32.add
local.set 774
local.get 774
local.get 769
i32.store
local.get 769
i32.const 8
i32.add
local.set 775
local.get 775
local.get 773
i32.store
local.get 769
local.set 61
end
end
local.get 767
i32.const 0
i32.eq
local.set 789
local.get 789
if ;; label = @11
br 2 (;@9;)
end
local.get 723
i32.const 28
i32.add
local.set 790
local.get 790
i32.load
local.set 791
i32.const 2616
local.get 791
i32.const 2
i32.shl
i32.add
local.set 793
local.get 793
i32.load
local.set 794
local.get 794
local.get 723
i32.eq
local.set 795
block ;; label = @11
local.get 795
if ;; label = @12
local.get 793
local.get 61
i32.store
local.get 61
i32.const 0
i32.eq
local.set 1072
local.get 1072
i32.eqz
if ;; label = @13
br 2 (;@11;)
end
i32.const 1
local.get 791
i32.shl
local.set 796
local.get 796
i32.const -1
i32.xor
local.set 797
i32.const 2316
i32.load
local.set 798
local.get 798
local.get 797
i32.and
local.set 799
i32.const 2316
local.get 799
i32.store
br 3 (;@9;)
else
local.get 767
i32.const 16
i32.add
local.set 800
local.get 800
i32.load
local.set 801
local.get 801
local.get 723
i32.eq
local.set 802
local.get 767
i32.const 20
i32.add
local.set 804
local.get 802
if (result i32) ;; label = @13
local.get 800
else
local.get 804
end
local.set 91
local.get 91
local.get 61
i32.store
local.get 61
i32.const 0
i32.eq
local.set 805
local.get 805
if ;; label = @13
br 4 (;@9;)
end
end
end
local.get 61
i32.const 24
i32.add
local.set 806
local.get 806
local.get 767
i32.store
local.get 723
i32.const 16
i32.add
local.set 807
local.get 807
i32.load
local.set 808
local.get 808
i32.const 0
i32.eq
local.set 809
local.get 809
i32.eqz
if ;; label = @11
local.get 61
i32.const 16
i32.add
local.set 810
local.get 810
local.get 808
i32.store
local.get 808
i32.const 24
i32.add
local.set 811
local.get 811
local.get 61
i32.store
end
local.get 807
i32.const 4
i32.add
local.set 812
local.get 812
i32.load
local.set 813
local.get 813
i32.const 0
i32.eq
local.set 815
local.get 815
if ;; label = @11
br 2 (;@9;)
end
local.get 61
i32.const 20
i32.add
local.set 816
local.get 816
local.get 813
i32.store
local.get 813
i32.const 24
i32.add
local.set 817
local.get 817
local.get 61
i32.store
end
end
local.get 723
local.get 750
i32.add
local.set 818
local.get 750
local.get 729
i32.add
local.set 819
local.get 818
local.set 3
local.get 819
local.set 17
else
local.get 723
local.set 3
local.get 729
local.set 17
end
local.get 3
i32.const 4
i32.add
local.set 820
local.get 820
i32.load
local.set 821
local.get 821
i32.const -2
i32.and
local.set 822
local.get 820
local.get 822
i32.store
local.get 17
i32.const 1
i32.or
local.set 823
local.get 728
i32.const 4
i32.add
local.set 824
local.get 824
local.get 823
i32.store
local.get 728
local.get 17
i32.add
local.set 826
local.get 826
local.get 17
i32.store
local.get 17
i32.const 3
i32.shr_u
local.set 827
local.get 17
i32.const 256
i32.lt_u
local.set 828
local.get 828
if ;; label = @8
local.get 827
i32.const 1
i32.shl
local.set 829
i32.const 2352
local.get 829
i32.const 2
i32.shl
i32.add
local.set 830
i32.const 2312
i32.load
local.set 831
i32.const 1
local.get 827
i32.shl
local.set 832
local.get 831
local.get 832
i32.and
local.set 833
local.get 833
i32.const 0
i32.eq
local.set 834
local.get 834
if ;; label = @9
local.get 831
local.get 832
i32.or
local.set 835
i32.const 2312
local.get 835
i32.store
local.get 830
i32.const 8
i32.add
local.set 81
local.get 830
local.set 21
local.get 81
local.set 85
else
local.get 830
i32.const 8
i32.add
local.set 837
local.get 837
i32.load
local.set 838
local.get 838
local.set 21
local.get 837
local.set 85
end
local.get 85
local.get 728
i32.store
local.get 21
i32.const 12
i32.add
local.set 839
local.get 839
local.get 728
i32.store
local.get 728
i32.const 8
i32.add
local.set 840
local.get 840
local.get 21
i32.store
local.get 728
i32.const 12
i32.add
local.set 841
local.get 841
local.get 830
i32.store
br 2 (;@6;)
end
local.get 17
i32.const 8
i32.shr_u
local.set 842
local.get 842
i32.const 0
i32.eq
local.set 843
block ;; label = @8
local.get 843
if ;; label = @9
i32.const 0
local.set 22
else
local.get 17
i32.const 16777215
i32.gt_u
local.set 844
local.get 844
if ;; label = @10
i32.const 31
local.set 22
br 2 (;@8;)
end
local.get 842
i32.const 1048320
i32.add
local.set 845
local.get 845
i32.const 16
i32.shr_u
local.set 846
local.get 846
i32.const 8
i32.and
local.set 848
local.get 842
local.get 848
i32.shl
local.set 849
local.get 849
i32.const 520192
i32.add
local.set 850
local.get 850
i32.const 16
i32.shr_u
local.set 851
local.get 851
i32.const 4
i32.and
local.set 852
local.get 852
local.get 848
i32.or
local.set 853
local.get 849
local.get 852
i32.shl
local.set 854
local.get 854
i32.const 245760
i32.add
local.set 855
local.get 855
i32.const 16
i32.shr_u
local.set 856
local.get 856
i32.const 2
i32.and
local.set 857
local.get 853
local.get 857
i32.or
local.set 859
i32.const 14
local.get 859
i32.sub
local.set 860
local.get 854
local.get 857
i32.shl
local.set 861
local.get 861
i32.const 15
i32.shr_u
local.set 862
local.get 860
local.get 862
i32.add
local.set 863
local.get 863
i32.const 1
i32.shl
local.set 864
local.get 863
i32.const 7
i32.add
local.set 865
local.get 17
local.get 865
i32.shr_u
local.set 866
local.get 866
i32.const 1
i32.and
local.set 867
local.get 867
local.get 864
i32.or
local.set 868
local.get 868
local.set 22
end
end
i32.const 2616
local.get 22
i32.const 2
i32.shl
i32.add
local.set 871
local.get 728
i32.const 28
i32.add
local.set 872
local.get 872
local.get 22
i32.store
local.get 728
i32.const 16
i32.add
local.set 873
local.get 873
i32.const 4
i32.add
local.set 874
local.get 874
i32.const 0
i32.store
local.get 873
i32.const 0
i32.store
i32.const 2316
i32.load
local.set 875
i32.const 1
local.get 22
i32.shl
local.set 876
local.get 875
local.get 876
i32.and
local.set 877
local.get 877
i32.const 0
i32.eq
local.set 878
local.get 878
if ;; label = @8
local.get 875
local.get 876
i32.or
local.set 879
i32.const 2316
local.get 879
i32.store
local.get 871
local.get 728
i32.store
local.get 728
i32.const 24
i32.add
local.set 880
local.get 880
local.get 871
i32.store
local.get 728
i32.const 12
i32.add
local.set 882
local.get 882
local.get 728
i32.store
local.get 728
i32.const 8
i32.add
local.set 883
local.get 883
local.get 728
i32.store
br 2 (;@6;)
end
local.get 871
i32.load
local.set 884
local.get 884
i32.const 4
i32.add
local.set 885
local.get 885
i32.load
local.set 886
local.get 886
i32.const -8
i32.and
local.set 887
local.get 887
local.get 17
i32.eq
local.set 888
block ;; label = @8
local.get 888
if ;; label = @9
local.get 884
local.set 19
else
local.get 22
i32.const 31
i32.eq
local.set 889
local.get 22
i32.const 1
i32.shr_u
local.set 890
i32.const 25
local.get 890
i32.sub
local.set 891
local.get 889
if (result i32) ;; label = @10
i32.const 0
else
local.get 891
end
local.set 893
local.get 17
local.get 893
i32.shl
local.set 894
local.get 894
local.set 18
local.get 884
local.set 20
loop ;; label = @10
block ;; label = @11
local.get 18
i32.const 31
i32.shr_u
local.set 901
local.get 20
i32.const 16
i32.add
local.get 901
i32.const 2
i32.shl
i32.add
local.set 902
local.get 902
i32.load
local.set 897
local.get 897
i32.const 0
i32.eq
local.set 904
local.get 904
if ;; label = @12
br 1 (;@11;)
end
local.get 18
i32.const 1
i32.shl
local.set 895
local.get 897
i32.const 4
i32.add
local.set 896
local.get 896
i32.load
local.set 898
local.get 898
i32.const -8
i32.and
local.set 899
local.get 899
local.get 17
i32.eq
local.set 900
local.get 900
if ;; label = @12
local.get 897
local.set 19
br 4 (;@8;)
else
local.get 895
local.set 18
local.get 897
local.set 20
end
br 1 (;@10;)
end
end
local.get 902
local.get 728
i32.store
local.get 728
i32.const 24
i32.add
local.set 905
local.get 905
local.get 20
i32.store
local.get 728
i32.const 12
i32.add
local.set 906
local.get 906
local.get 728
i32.store
local.get 728
i32.const 8
i32.add
local.set 907
local.get 907
local.get 728
i32.store
br 3 (;@6;)
end
end
local.get 19
i32.const 8
i32.add
local.set 908
local.get 908
i32.load
local.set 909
local.get 909
i32.const 12
i32.add
local.set 910
local.get 910
local.get 728
i32.store
local.get 908
local.get 728
i32.store
local.get 728
i32.const 8
i32.add
local.set 911
local.get 911
local.get 909
i32.store
local.get 728
i32.const 12
i32.add
local.set 912
local.get 912
local.get 19
i32.store
local.get 728
i32.const 24
i32.add
local.set 913
local.get 913
i32.const 0
i32.store
end
end
local.get 715
i32.const 8
i32.add
local.set 1056
local.get 1056
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
end
i32.const 2760
local.set 4
loop ;; label = @4
block ;; label = @5
local.get 4
i32.load
local.set 915
local.get 915
local.get 631
i32.gt_u
local.set 916
local.get 916
i32.eqz
if ;; label = @6
local.get 4
i32.const 4
i32.add
local.set 917
local.get 917
i32.load
local.set 918
local.get 915
local.get 918
i32.add
local.set 919
local.get 919
local.get 631
i32.gt_u
local.set 920
local.get 920
if ;; label = @7
br 2 (;@5;)
end
end
local.get 4
i32.const 8
i32.add
local.set 921
local.get 921
i32.load
local.set 922
local.get 922
local.set 4
br 1 (;@4;)
end
end
local.get 919
i32.const -47
i32.add
local.set 923
local.get 923
i32.const 8
i32.add
local.set 924
local.get 924
local.set 926
local.get 926
i32.const 7
i32.and
local.set 927
local.get 927
i32.const 0
i32.eq
local.set 928
i32.const 0
local.get 926
i32.sub
local.set 929
local.get 929
i32.const 7
i32.and
local.set 930
local.get 928
if (result i32) ;; label = @4
i32.const 0
else
local.get 930
end
local.set 931
local.get 923
local.get 931
i32.add
local.set 932
local.get 631
i32.const 16
i32.add
local.set 933
local.get 932
local.get 933
i32.lt_u
local.set 934
local.get 934
if (result i32) ;; label = @4
local.get 631
else
local.get 932
end
local.set 935
local.get 935
i32.const 8
i32.add
local.set 937
local.get 935
i32.const 24
i32.add
local.set 938
local.get 76
i32.const -40
i32.add
local.set 939
local.get 77
i32.const 8
i32.add
local.set 940
local.get 940
local.set 941
local.get 941
i32.const 7
i32.and
local.set 942
local.get 942
i32.const 0
i32.eq
local.set 943
i32.const 0
local.get 941
i32.sub
local.set 944
local.get 944
i32.const 7
i32.and
local.set 945
local.get 943
if (result i32) ;; label = @4
i32.const 0
else
local.get 945
end
local.set 946
local.get 77
local.get 946
i32.add
local.set 948
local.get 939
local.get 946
i32.sub
local.set 949
i32.const 2336
local.get 948
i32.store
i32.const 2324
local.get 949
i32.store
local.get 949
i32.const 1
i32.or
local.set 950
local.get 948
i32.const 4
i32.add
local.set 951
local.get 951
local.get 950
i32.store
local.get 77
local.get 939
i32.add
local.set 952
local.get 952
i32.const 4
i32.add
local.set 953
local.get 953
i32.const 40
i32.store
i32.const 2800
i32.load
local.set 954
i32.const 2340
local.get 954
i32.store
local.get 935
i32.const 4
i32.add
local.set 955
local.get 955
i32.const 27
i32.store
local.get 937
i32.const 2760
i64.load align=4
i64.store align=4
local.get 937
i32.const 8
i32.add
i32.const 2760
i32.const 8
i32.add
i64.load align=4
i64.store align=4
i32.const 2760
local.get 77
i32.store
i32.const 2764
local.get 76
i32.store
i32.const 2772
i32.const 0
i32.store
i32.const 2768
local.get 937
i32.store
local.get 938
local.set 957
loop ;; label = @4
block ;; label = @5
local.get 957
i32.const 4
i32.add
local.set 956
local.get 956
i32.const 7
i32.store
local.get 957
i32.const 8
i32.add
local.set 959
local.get 959
local.get 919
i32.lt_u
local.set 960
local.get 960
if ;; label = @6
local.get 956
local.set 957
else
br 1 (;@5;)
end
br 1 (;@4;)
end
end
local.get 935
local.get 631
i32.eq
local.set 961
local.get 961
i32.eqz
if ;; label = @4
local.get 935
local.set 962
local.get 631
local.set 963
local.get 962
local.get 963
i32.sub
local.set 964
local.get 955
i32.load
local.set 965
local.get 965
i32.const -2
i32.and
local.set 966
local.get 955
local.get 966
i32.store
local.get 964
i32.const 1
i32.or
local.set 967
local.get 631
i32.const 4
i32.add
local.set 968
local.get 968
local.get 967
i32.store
local.get 935
local.get 964
i32.store
local.get 964
i32.const 3
i32.shr_u
local.set 970
local.get 964
i32.const 256
i32.lt_u
local.set 971
local.get 971
if ;; label = @5
local.get 970
i32.const 1
i32.shl
local.set 972
i32.const 2352
local.get 972
i32.const 2
i32.shl
i32.add
local.set 973
i32.const 2312
i32.load
local.set 974
i32.const 1
local.get 970
i32.shl
local.set 975
local.get 974
local.get 975
i32.and
local.set 976
local.get 976
i32.const 0
i32.eq
local.set 977
local.get 977
if ;; label = @6
local.get 974
local.get 975
i32.or
local.set 978
i32.const 2312
local.get 978
i32.store
local.get 973
i32.const 8
i32.add
local.set 80
local.get 973
local.set 14
local.get 80
local.set 84
else
local.get 973
i32.const 8
i32.add
local.set 979
local.get 979
i32.load
local.set 982
local.get 982
local.set 14
local.get 979
local.set 84
end
local.get 84
local.get 631
i32.store
local.get 14
i32.const 12
i32.add
local.set 983
local.get 983
local.get 631
i32.store
local.get 631
i32.const 8
i32.add
local.set 984
local.get 984
local.get 14
i32.store
local.get 631
i32.const 12
i32.add
local.set 985
local.get 985
local.get 973
i32.store
br 3 (;@2;)
end
local.get 964
i32.const 8
i32.shr_u
local.set 986
local.get 986
i32.const 0
i32.eq
local.set 987
local.get 987
if ;; label = @5
i32.const 0
local.set 15
else
local.get 964
i32.const 16777215
i32.gt_u
local.set 988
local.get 988
if ;; label = @6
i32.const 31
local.set 15
else
local.get 986
i32.const 1048320
i32.add
local.set 989
local.get 989
i32.const 16
i32.shr_u
local.set 990
local.get 990
i32.const 8
i32.and
local.set 991
local.get 986
local.get 991
i32.shl
local.set 993
local.get 993
i32.const 520192
i32.add
local.set 994
local.get 994
i32.const 16
i32.shr_u
local.set 995
local.get 995
i32.const 4
i32.and
local.set 996
local.get 996
local.get 991
i32.or
local.set 997
local.get 993
local.get 996
i32.shl
local.set 998
local.get 998
i32.const 245760
i32.add
local.set 999
local.get 999
i32.const 16
i32.shr_u
local.set 1000
local.get 1000
i32.const 2
i32.and
local.set 1001
local.get 997
local.get 1001
i32.or
local.set 1002
i32.const 14
local.get 1002
i32.sub
local.set 1004
local.get 998
local.get 1001
i32.shl
local.set 1005
local.get 1005
i32.const 15
i32.shr_u
local.set 1006
local.get 1004
local.get 1006
i32.add
local.set 1007
local.get 1007
i32.const 1
i32.shl
local.set 1008
local.get 1007
i32.const 7
i32.add
local.set 1009
local.get 964
local.get 1009
i32.shr_u
local.set 1010
local.get 1010
i32.const 1
i32.and
local.set 1011
local.get 1011
local.get 1008
i32.or
local.set 1012
local.get 1012
local.set 15
end
end
i32.const 2616
local.get 15
i32.const 2
i32.shl
i32.add
local.set 1013
local.get 631
i32.const 28
i32.add
local.set 1015
local.get 1015
local.get 15
i32.store
local.get 631
i32.const 20
i32.add
local.set 1016
local.get 1016
i32.const 0
i32.store
local.get 933
i32.const 0
i32.store
i32.const 2316
i32.load
local.set 1017
i32.const 1
local.get 15
i32.shl
local.set 1018
local.get 1017
local.get 1018
i32.and
local.set 1019
local.get 1019
i32.const 0
i32.eq
local.set 1020
local.get 1020
if ;; label = @5
local.get 1017
local.get 1018
i32.or
local.set 1021
i32.const 2316
local.get 1021
i32.store
local.get 1013
local.get 631
i32.store
local.get 631
i32.const 24
i32.add
local.set 1022
local.get 1022
local.get 1013
i32.store
local.get 631
i32.const 12
i32.add
local.set 1023
local.get 1023
local.get 631
i32.store
local.get 631
i32.const 8
i32.add
local.set 1024
local.get 1024
local.get 631
i32.store
br 3 (;@2;)
end
local.get 1013
i32.load
local.set 1026
local.get 1026
i32.const 4
i32.add
local.set 1027
local.get 1027
i32.load
local.set 1028
local.get 1028
i32.const -8
i32.and
local.set 1029
local.get 1029
local.get 964
i32.eq
local.set 1030
block ;; label = @5
local.get 1030
if ;; label = @6
local.get 1026
local.set 12
else
local.get 15
i32.const 31
i32.eq
local.set 1031
local.get 15
i32.const 1
i32.shr_u
local.set 1032
i32.const 25
local.get 1032
i32.sub
local.set 1033
local.get 1031
if (result i32) ;; label = @7
i32.const 0
else
local.get 1033
end
local.set 1034
local.get 964
local.get 1034
i32.shl
local.set 1035
local.get 1035
local.set 11
local.get 1026
local.set 13
loop ;; label = @7
block ;; label = @8
local.get 11
i32.const 31
i32.shr_u
local.set 1043
local.get 13
i32.const 16
i32.add
local.get 1043
i32.const 2
i32.shl
i32.add
local.set 1044
local.get 1044
i32.load
local.set 1039
local.get 1039
i32.const 0
i32.eq
local.set 1045
local.get 1045
if ;; label = @9
br 1 (;@8;)
end
local.get 11
i32.const 1
i32.shl
local.set 1037
local.get 1039
i32.const 4
i32.add
local.set 1038
local.get 1038
i32.load
local.set 1040
local.get 1040
i32.const -8
i32.and
local.set 1041
local.get 1041
local.get 964
i32.eq
local.set 1042
local.get 1042
if ;; label = @9
local.get 1039
local.set 12
br 4 (;@5;)
else
local.get 1037
local.set 11
local.get 1039
local.set 13
end
br 1 (;@7;)
end
end
local.get 1044
local.get 631
i32.store
local.get 631
i32.const 24
i32.add
local.set 1046
local.get 1046
local.get 13
i32.store
local.get 631
i32.const 12
i32.add
local.set 1048
local.get 1048
local.get 631
i32.store
local.get 631
i32.const 8
i32.add
local.set 1049
local.get 1049
local.get 631
i32.store
br 4 (;@2;)
end
end
local.get 12
i32.const 8
i32.add
local.set 1050
local.get 1050
i32.load
local.set 1051
local.get 1051
i32.const 12
i32.add
local.set 1052
local.get 1052
local.get 631
i32.store
local.get 1050
local.get 631
i32.store
local.get 631
i32.const 8
i32.add
local.set 1053
local.get 1053
local.get 1051
i32.store
local.get 631
i32.const 12
i32.add
local.set 1054
local.get 1054
local.get 12
i32.store
local.get 631
i32.const 24
i32.add
local.set 1055
local.get 1055
i32.const 0
i32.store
end
end
end
i32.const 2324
i32.load
local.set 1057
local.get 1057
local.get 9
i32.gt_u
local.set 1059
local.get 1059
if ;; label = @2
local.get 1057
local.get 9
i32.sub
local.set 1060
i32.const 2324
local.get 1060
i32.store
i32.const 2336
i32.load
local.set 1061
local.get 1061
local.get 9
i32.add
local.set 1062
i32.const 2336
local.get 1062
i32.store
local.get 1060
i32.const 1
i32.or
local.set 1063
local.get 1062
i32.const 4
i32.add
local.set 1064
local.get 1064
local.get 1063
i32.store
local.get 9
i32.const 3
i32.or
local.set 1065
local.get 1061
i32.const 4
i32.add
local.set 1066
local.get 1066
local.get 1065
i32.store
local.get 1061
i32.const 8
i32.add
local.set 1067
local.get 1067
local.set 1
local.get 1096
global.set 12
local.get 1
return
end
end
call 32
local.set 1068
local.get 1068
i32.const 12
i32.store
i32.const 0
local.set 1
local.get 1096
global.set 12
local.get 1
return)
(func (;27;) (type 3) (param i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 296
local.get 0
i32.const 0
i32.eq
local.set 29
local.get 29
if ;; label = @1
return
end
local.get 0
i32.const -8
i32.add
local.set 140
i32.const 2328
i32.load
local.set 216
local.get 0
i32.const -4
i32.add
local.set 227
local.get 227
i32.load
local.set 238
local.get 238
i32.const -8
i32.and
local.set 249
local.get 140
local.get 249
i32.add
local.set 260
local.get 238
i32.const 1
i32.and
local.set 271
local.get 271
i32.const 0
i32.eq
local.set 282
block ;; label = @1
local.get 282
if ;; label = @2
local.get 140
i32.load
local.set 30
local.get 238
i32.const 3
i32.and
local.set 41
local.get 41
i32.const 0
i32.eq
local.set 52
local.get 52
if ;; label = @3
return
end
i32.const 0
local.get 30
i32.sub
local.set 63
local.get 140
local.get 63
i32.add
local.set 74
local.get 30
local.get 249
i32.add
local.set 85
local.get 74
local.get 216
i32.lt_u
local.set 96
local.get 96
if ;; label = @3
return
end
i32.const 2332
i32.load
local.set 107
local.get 107
local.get 74
i32.eq
local.set 118
local.get 118
if ;; label = @3
local.get 260
i32.const 4
i32.add
local.set 270
local.get 270
i32.load
local.set 272
local.get 272
i32.const 3
i32.and
local.set 273
local.get 273
i32.const 3
i32.eq
local.set 274
local.get 274
i32.eqz
if ;; label = @4
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 3 (;@1;)
end
local.get 74
local.get 85
i32.add
local.set 275
local.get 74
i32.const 4
i32.add
local.set 276
local.get 85
i32.const 1
i32.or
local.set 277
local.get 272
i32.const -2
i32.and
local.set 278
i32.const 2320
local.get 85
i32.store
local.get 270
local.get 278
i32.store
local.get 276
local.get 277
i32.store
local.get 275
local.get 85
i32.store
return
end
local.get 30
i32.const 3
i32.shr_u
local.set 129
local.get 30
i32.const 256
i32.lt_u
local.set 141
local.get 141
if ;; label = @3
local.get 74
i32.const 8
i32.add
local.set 152
local.get 152
i32.load
local.set 163
local.get 74
i32.const 12
i32.add
local.set 174
local.get 174
i32.load
local.set 185
local.get 185
local.get 163
i32.eq
local.set 196
local.get 196
if ;; label = @4
i32.const 1
local.get 129
i32.shl
local.set 207
local.get 207
i32.const -1
i32.xor
local.set 213
i32.const 2312
i32.load
local.set 214
local.get 214
local.get 213
i32.and
local.set 215
i32.const 2312
local.get 215
i32.store
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 3 (;@1;)
else
local.get 163
i32.const 12
i32.add
local.set 217
local.get 217
local.get 185
i32.store
local.get 185
i32.const 8
i32.add
local.set 218
local.get 218
local.get 163
i32.store
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 3 (;@1;)
end
unreachable
end
local.get 74
i32.const 24
i32.add
local.set 219
local.get 219
i32.load
local.set 220
local.get 74
i32.const 12
i32.add
local.set 221
local.get 221
i32.load
local.set 222
local.get 222
local.get 74
i32.eq
local.set 223
block ;; label = @3
local.get 223
if ;; label = @4
local.get 74
i32.const 16
i32.add
local.set 229
local.get 229
i32.const 4
i32.add
local.set 230
local.get 230
i32.load
local.set 231
local.get 231
i32.const 0
i32.eq
local.set 232
local.get 232
if ;; label = @5
local.get 229
i32.load
local.set 233
local.get 233
i32.const 0
i32.eq
local.set 234
local.get 234
if ;; label = @6
i32.const 0
local.set 23
br 3 (;@3;)
else
local.get 233
local.set 12
local.get 229
local.set 15
end
else
local.get 231
local.set 12
local.get 230
local.set 15
end
local.get 12
local.set 10
local.get 15
local.set 13
loop ;; label = @5
block ;; label = @6
local.get 10
i32.const 20
i32.add
local.set 235
local.get 235
i32.load
local.set 236
local.get 236
i32.const 0
i32.eq
local.set 237
local.get 237
if ;; label = @7
local.get 10
i32.const 16
i32.add
local.set 239
local.get 239
i32.load
local.set 240
local.get 240
i32.const 0
i32.eq
local.set 241
local.get 241
if ;; label = @8
br 2 (;@6;)
else
local.get 240
local.set 11
local.get 239
local.set 14
end
else
local.get 236
local.set 11
local.get 235
local.set 14
end
local.get 11
local.set 10
local.get 14
local.set 13
br 1 (;@5;)
end
end
local.get 13
i32.const 0
i32.store
local.get 10
local.set 23
else
local.get 74
i32.const 8
i32.add
local.set 224
local.get 224
i32.load
local.set 225
local.get 225
i32.const 12
i32.add
local.set 226
local.get 226
local.get 222
i32.store
local.get 222
i32.const 8
i32.add
local.set 228
local.get 228
local.get 225
i32.store
local.get 222
local.set 23
end
end
local.get 220
i32.const 0
i32.eq
local.set 242
local.get 242
if ;; label = @3
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
else
local.get 74
i32.const 28
i32.add
local.set 243
local.get 243
i32.load
local.set 244
i32.const 2616
local.get 244
i32.const 2
i32.shl
i32.add
local.set 245
local.get 245
i32.load
local.set 246
local.get 246
local.get 74
i32.eq
local.set 247
local.get 247
if ;; label = @4
local.get 245
local.get 23
i32.store
local.get 23
i32.const 0
i32.eq
local.set 293
local.get 293
if ;; label = @5
i32.const 1
local.get 244
i32.shl
local.set 248
local.get 248
i32.const -1
i32.xor
local.set 250
i32.const 2316
i32.load
local.set 251
local.get 251
local.get 250
i32.and
local.set 252
i32.const 2316
local.get 252
i32.store
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 4 (;@1;)
end
else
local.get 220
i32.const 16
i32.add
local.set 253
local.get 253
i32.load
local.set 254
local.get 254
local.get 74
i32.eq
local.set 255
local.get 220
i32.const 20
i32.add
local.set 256
local.get 255
if (result i32) ;; label = @5
local.get 253
else
local.get 256
end
local.set 27
local.get 27
local.get 23
i32.store
local.get 23
i32.const 0
i32.eq
local.set 257
local.get 257
if ;; label = @5
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
br 4 (;@1;)
end
end
local.get 23
i32.const 24
i32.add
local.set 258
local.get 258
local.get 220
i32.store
local.get 74
i32.const 16
i32.add
local.set 259
local.get 259
i32.load
local.set 261
local.get 261
i32.const 0
i32.eq
local.set 262
local.get 262
i32.eqz
if ;; label = @4
local.get 23
i32.const 16
i32.add
local.set 263
local.get 263
local.get 261
i32.store
local.get 261
i32.const 24
i32.add
local.set 264
local.get 264
local.get 23
i32.store
end
local.get 259
i32.const 4
i32.add
local.set 265
local.get 265
i32.load
local.set 266
local.get 266
i32.const 0
i32.eq
local.set 267
local.get 267
if ;; label = @4
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
else
local.get 23
i32.const 20
i32.add
local.set 268
local.get 268
local.get 266
i32.store
local.get 266
i32.const 24
i32.add
local.set 269
local.get 269
local.get 23
i32.store
local.get 74
local.set 8
local.get 85
local.set 9
local.get 74
local.set 279
end
end
else
local.get 140
local.set 8
local.get 249
local.set 9
local.get 140
local.set 279
end
end
local.get 279
local.get 260
i32.lt_u
local.set 280
local.get 280
i32.eqz
if ;; label = @1
return
end
local.get 260
i32.const 4
i32.add
local.set 281
local.get 281
i32.load
local.set 283
local.get 283
i32.const 1
i32.and
local.set 284
local.get 284
i32.const 0
i32.eq
local.set 285
local.get 285
if ;; label = @1
return
end
local.get 283
i32.const 2
i32.and
local.set 286
local.get 286
i32.const 0
i32.eq
local.set 287
local.get 287
if ;; label = @1
i32.const 2336
i32.load
local.set 288
local.get 288
local.get 260
i32.eq
local.set 289
local.get 289
if ;; label = @2
i32.const 2324
i32.load
local.set 290
local.get 290
local.get 9
i32.add
local.set 291
i32.const 2324
local.get 291
i32.store
i32.const 2336
local.get 8
i32.store
local.get 291
i32.const 1
i32.or
local.set 292
local.get 8
i32.const 4
i32.add
local.set 31
local.get 31
local.get 292
i32.store
i32.const 2332
i32.load
local.set 32
local.get 8
local.get 32
i32.eq
local.set 33
local.get 33
i32.eqz
if ;; label = @3
return
end
i32.const 2332
i32.const 0
i32.store
i32.const 2320
i32.const 0
i32.store
return
end
i32.const 2332
i32.load
local.set 34
local.get 34
local.get 260
i32.eq
local.set 35
local.get 35
if ;; label = @2
i32.const 2320
i32.load
local.set 36
local.get 36
local.get 9
i32.add
local.set 37
i32.const 2320
local.get 37
i32.store
i32.const 2332
local.get 279
i32.store
local.get 37
i32.const 1
i32.or
local.set 38
local.get 8
i32.const 4
i32.add
local.set 39
local.get 39
local.get 38
i32.store
local.get 279
local.get 37
i32.add
local.set 40
local.get 40
local.get 37
i32.store
return
end
local.get 283
i32.const -8
i32.and
local.set 42
local.get 42
local.get 9
i32.add
local.set 43
local.get 283
i32.const 3
i32.shr_u
local.set 44
local.get 283
i32.const 256
i32.lt_u
local.set 45
block ;; label = @2
local.get 45
if ;; label = @3
local.get 260
i32.const 8
i32.add
local.set 46
local.get 46
i32.load
local.set 47
local.get 260
i32.const 12
i32.add
local.set 48
local.get 48
i32.load
local.set 49
local.get 49
local.get 47
i32.eq
local.set 50
local.get 50
if ;; label = @4
i32.const 1
local.get 44
i32.shl
local.set 51
local.get 51
i32.const -1
i32.xor
local.set 53
i32.const 2312
i32.load
local.set 54
local.get 54
local.get 53
i32.and
local.set 55
i32.const 2312
local.get 55
i32.store
br 2 (;@2;)
else
local.get 47
i32.const 12
i32.add
local.set 56
local.get 56
local.get 49
i32.store
local.get 49
i32.const 8
i32.add
local.set 57
local.get 57
local.get 47
i32.store
br 2 (;@2;)
end
unreachable
else
local.get 260
i32.const 24
i32.add
local.set 58
local.get 58
i32.load
local.set 59
local.get 260
i32.const 12
i32.add
local.set 60
local.get 60
i32.load
local.set 61
local.get 61
local.get 260
i32.eq
local.set 62
block ;; label = @4
local.get 62
if ;; label = @5
local.get 260
i32.const 16
i32.add
local.set 68
local.get 68
i32.const 4
i32.add
local.set 69
local.get 69
i32.load
local.set 70
local.get 70
i32.const 0
i32.eq
local.set 71
local.get 71
if ;; label = @6
local.get 68
i32.load
local.set 72
local.get 72
i32.const 0
i32.eq
local.set 73
local.get 73
if ;; label = @7
i32.const 0
local.set 24
br 3 (;@4;)
else
local.get 72
local.set 18
local.get 68
local.set 21
end
else
local.get 70
local.set 18
local.get 69
local.set 21
end
local.get 18
local.set 16
local.get 21
local.set 19
loop ;; label = @6
block ;; label = @7
local.get 16
i32.const 20
i32.add
local.set 75
local.get 75
i32.load
local.set 76
local.get 76
i32.const 0
i32.eq
local.set 77
local.get 77
if ;; label = @8
local.get 16
i32.const 16
i32.add
local.set 78
local.get 78
i32.load
local.set 79
local.get 79
i32.const 0
i32.eq
local.set 80
local.get 80
if ;; label = @9
br 2 (;@7;)
else
local.get 79
local.set 17
local.get 78
local.set 20
end
else
local.get 76
local.set 17
local.get 75
local.set 20
end
local.get 17
local.set 16
local.get 20
local.set 19
br 1 (;@6;)
end
end
local.get 19
i32.const 0
i32.store
local.get 16
local.set 24
else
local.get 260
i32.const 8
i32.add
local.set 64
local.get 64
i32.load
local.set 65
local.get 65
i32.const 12
i32.add
local.set 66
local.get 66
local.get 61
i32.store
local.get 61
i32.const 8
i32.add
local.set 67
local.get 67
local.get 65
i32.store
local.get 61
local.set 24
end
end
local.get 59
i32.const 0
i32.eq
local.set 81
local.get 81
i32.eqz
if ;; label = @4
local.get 260
i32.const 28
i32.add
local.set 82
local.get 82
i32.load
local.set 83
i32.const 2616
local.get 83
i32.const 2
i32.shl
i32.add
local.set 84
local.get 84
i32.load
local.set 86
local.get 86
local.get 260
i32.eq
local.set 87
local.get 87
if ;; label = @5
local.get 84
local.get 24
i32.store
local.get 24
i32.const 0
i32.eq
local.set 294
local.get 294
if ;; label = @6
i32.const 1
local.get 83
i32.shl
local.set 88
local.get 88
i32.const -1
i32.xor
local.set 89
i32.const 2316
i32.load
local.set 90
local.get 90
local.get 89
i32.and
local.set 91
i32.const 2316
local.get 91
i32.store
br 4 (;@2;)
end
else
local.get 59
i32.const 16
i32.add
local.set 92
local.get 92
i32.load
local.set 93
local.get 93
local.get 260
i32.eq
local.set 94
local.get 59
i32.const 20
i32.add
local.set 95
local.get 94
if (result i32) ;; label = @6
local.get 92
else
local.get 95
end
local.set 28
local.get 28
local.get 24
i32.store
local.get 24
i32.const 0
i32.eq
local.set 97
local.get 97
if ;; label = @6
br 4 (;@2;)
end
end
local.get 24
i32.const 24
i32.add
local.set 98
local.get 98
local.get 59
i32.store
local.get 260
i32.const 16
i32.add
local.set 99
local.get 99
i32.load
local.set 100
local.get 100
i32.const 0
i32.eq
local.set 101
local.get 101
i32.eqz
if ;; label = @5
local.get 24
i32.const 16
i32.add
local.set 102
local.get 102
local.get 100
i32.store
local.get 100
i32.const 24
i32.add
local.set 103
local.get 103
local.get 24
i32.store
end
local.get 99
i32.const 4
i32.add
local.set 104
local.get 104
i32.load
local.set 105
local.get 105
i32.const 0
i32.eq
local.set 106
local.get 106
i32.eqz
if ;; label = @5
local.get 24
i32.const 20
i32.add
local.set 108
local.get 108
local.get 105
i32.store
local.get 105
i32.const 24
i32.add
local.set 109
local.get 109
local.get 24
i32.store
end
end
end
end
local.get 43
i32.const 1
i32.or
local.set 110
local.get 8
i32.const 4
i32.add
local.set 111
local.get 111
local.get 110
i32.store
local.get 279
local.get 43
i32.add
local.set 112
local.get 112
local.get 43
i32.store
i32.const 2332
i32.load
local.set 113
local.get 8
local.get 113
i32.eq
local.set 114
local.get 114
if ;; label = @2
i32.const 2320
local.get 43
i32.store
return
else
local.get 43
local.set 22
end
else
local.get 283
i32.const -2
i32.and
local.set 115
local.get 281
local.get 115
i32.store
local.get 9
i32.const 1
i32.or
local.set 116
local.get 8
i32.const 4
i32.add
local.set 117
local.get 117
local.get 116
i32.store
local.get 279
local.get 9
i32.add
local.set 119
local.get 119
local.get 9
i32.store
local.get 9
local.set 22
end
local.get 22
i32.const 3
i32.shr_u
local.set 120
local.get 22
i32.const 256
i32.lt_u
local.set 121
local.get 121
if ;; label = @1
local.get 120
i32.const 1
i32.shl
local.set 122
i32.const 2352
local.get 122
i32.const 2
i32.shl
i32.add
local.set 123
i32.const 2312
i32.load
local.set 124
i32.const 1
local.get 120
i32.shl
local.set 125
local.get 124
local.get 125
i32.and
local.set 126
local.get 126
i32.const 0
i32.eq
local.set 127
local.get 127
if ;; label = @2
local.get 124
local.get 125
i32.or
local.set 128
i32.const 2312
local.get 128
i32.store
local.get 123
i32.const 8
i32.add
local.set 25
local.get 123
local.set 7
local.get 25
local.set 26
else
local.get 123
i32.const 8
i32.add
local.set 130
local.get 130
i32.load
local.set 131
local.get 131
local.set 7
local.get 130
local.set 26
end
local.get 26
local.get 8
i32.store
local.get 7
i32.const 12
i32.add
local.set 132
local.get 132
local.get 8
i32.store
local.get 8
i32.const 8
i32.add
local.set 133
local.get 133
local.get 7
i32.store
local.get 8
i32.const 12
i32.add
local.set 134
local.get 134
local.get 123
i32.store
return
end
local.get 22
i32.const 8
i32.shr_u
local.set 135
local.get 135
i32.const 0
i32.eq
local.set 136
local.get 136
if ;; label = @1
i32.const 0
local.set 6
else
local.get 22
i32.const 16777215
i32.gt_u
local.set 137
local.get 137
if ;; label = @2
i32.const 31
local.set 6
else
local.get 135
i32.const 1048320
i32.add
local.set 138
local.get 138
i32.const 16
i32.shr_u
local.set 139
local.get 139
i32.const 8
i32.and
local.set 142
local.get 135
local.get 142
i32.shl
local.set 143
local.get 143
i32.const 520192
i32.add
local.set 144
local.get 144
i32.const 16
i32.shr_u
local.set 145
local.get 145
i32.const 4
i32.and
local.set 146
local.get 146
local.get 142
i32.or
local.set 147
local.get 143
local.get 146
i32.shl
local.set 148
local.get 148
i32.const 245760
i32.add
local.set 149
local.get 149
i32.const 16
i32.shr_u
local.set 150
local.get 150
i32.const 2
i32.and
local.set 151
local.get 147
local.get 151
i32.or
local.set 153
i32.const 14
local.get 153
i32.sub
local.set 154
local.get 148
local.get 151
i32.shl
local.set 155
local.get 155
i32.const 15
i32.shr_u
local.set 156
local.get 154
local.get 156
i32.add
local.set 157
local.get 157
i32.const 1
i32.shl
local.set 158
local.get 157
i32.const 7
i32.add
local.set 159
local.get 22
local.get 159
i32.shr_u
local.set 160
local.get 160
i32.const 1
i32.and
local.set 161
local.get 161
local.get 158
i32.or
local.set 162
local.get 162
local.set 6
end
end
i32.const 2616
local.get 6
i32.const 2
i32.shl
i32.add
local.set 164
local.get 8
i32.const 28
i32.add
local.set 165
local.get 165
local.get 6
i32.store
local.get 8
i32.const 16
i32.add
local.set 166
local.get 8
i32.const 20
i32.add
local.set 167
local.get 167
i32.const 0
i32.store
local.get 166
i32.const 0
i32.store
i32.const 2316
i32.load
local.set 168
i32.const 1
local.get 6
i32.shl
local.set 169
local.get 168
local.get 169
i32.and
local.set 170
local.get 170
i32.const 0
i32.eq
local.set 171
block ;; label = @1
local.get 171
if ;; label = @2
local.get 168
local.get 169
i32.or
local.set 172
i32.const 2316
local.get 172
i32.store
local.get 164
local.get 8
i32.store
local.get 8
i32.const 24
i32.add
local.set 173
local.get 173
local.get 164
i32.store
local.get 8
i32.const 12
i32.add
local.set 175
local.get 175
local.get 8
i32.store
local.get 8
i32.const 8
i32.add
local.set 176
local.get 176
local.get 8
i32.store
else
local.get 164
i32.load
local.set 177
local.get 177
i32.const 4
i32.add
local.set 178
local.get 178
i32.load
local.set 179
local.get 179
i32.const -8
i32.and
local.set 180
local.get 180
local.get 22
i32.eq
local.set 181
block ;; label = @3
local.get 181
if ;; label = @4
local.get 177
local.set 4
else
local.get 6
i32.const 31
i32.eq
local.set 182
local.get 6
i32.const 1
i32.shr_u
local.set 183
i32.const 25
local.get 183
i32.sub
local.set 184
local.get 182
if (result i32) ;; label = @5
i32.const 0
else
local.get 184
end
local.set 186
local.get 22
local.get 186
i32.shl
local.set 187
local.get 187
local.set 3
local.get 177
local.set 5
loop ;; label = @5
block ;; label = @6
local.get 3
i32.const 31
i32.shr_u
local.set 194
local.get 5
i32.const 16
i32.add
local.get 194
i32.const 2
i32.shl
i32.add
local.set 195
local.get 195
i32.load
local.set 190
local.get 190
i32.const 0
i32.eq
local.set 197
local.get 197
if ;; label = @7
br 1 (;@6;)
end
local.get 3
i32.const 1
i32.shl
local.set 188
local.get 190
i32.const 4
i32.add
local.set 189
local.get 189
i32.load
local.set 191
local.get 191
i32.const -8
i32.and
local.set 192
local.get 192
local.get 22
i32.eq
local.set 193
local.get 193
if ;; label = @7
local.get 190
local.set 4
br 4 (;@3;)
else
local.get 188
local.set 3
local.get 190
local.set 5
end
br 1 (;@5;)
end
end
local.get 195
local.get 8
i32.store
local.get 8
i32.const 24
i32.add
local.set 198
local.get 198
local.get 5
i32.store
local.get 8
i32.const 12
i32.add
local.set 199
local.get 199
local.get 8
i32.store
local.get 8
i32.const 8
i32.add
local.set 200
local.get 200
local.get 8
i32.store
br 3 (;@1;)
end
end
local.get 4
i32.const 8
i32.add
local.set 201
local.get 201
i32.load
local.set 202
local.get 202
i32.const 12
i32.add
local.set 203
local.get 203
local.get 8
i32.store
local.get 201
local.get 8
i32.store
local.get 8
i32.const 8
i32.add
local.set 204
local.get 204
local.get 202
i32.store
local.get 8
i32.const 12
i32.add
local.set 205
local.get 205
local.get 4
i32.store
local.get 8
i32.const 24
i32.add
local.set 206
local.get 206
i32.const 0
i32.store
end
end
i32.const 2344
i32.load
local.set 208
local.get 208
i32.const -1
i32.add
local.set 209
i32.const 2344
local.get 209
i32.store
local.get 209
i32.const 0
i32.eq
local.set 210
local.get 210
i32.eqz
if ;; label = @1
return
end
i32.const 2768
local.set 2
loop ;; label = @1
block ;; label = @2
local.get 2
i32.load
local.set 1
local.get 1
i32.const 0
i32.eq
local.set 211
local.get 1
i32.const 8
i32.add
local.set 212
local.get 211
if ;; label = @3
br 1 (;@2;)
else
local.get 212
local.set 2
end
br 1 (;@1;)
end
end
i32.const 2344
i32.const -1
i32.store
return)
(func (;28;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 8
global.get 12
i32.const 16
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 16
call 3
end
local.get 8
local.set 6
local.get 0
i32.const 60
i32.add
local.set 1
local.get 1
i32.load
local.set 2
local.get 2
call 33
local.set 3
local.get 6
local.get 3
i32.store
i32.const 6
local.get 6
call 13
local.set 4
local.get 4
call 31
local.set 5
local.get 8
global.set 12
local.get 5
return)
(func (;29;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 66
global.get 12
i32.const 48
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 48
call 3
end
local.get 66
i32.const 32
i32.add
local.set 60
local.get 66
i32.const 16
i32.add
local.set 59
local.get 66
local.set 30
local.get 0
i32.const 28
i32.add
local.set 41
local.get 41
i32.load
local.set 52
local.get 30
local.get 52
i32.store
local.get 30
i32.const 4
i32.add
local.set 55
local.get 0
i32.const 20
i32.add
local.set 56
local.get 56
i32.load
local.set 57
local.get 57
local.get 52
i32.sub
local.set 58
local.get 55
local.get 58
i32.store
local.get 30
i32.const 8
i32.add
local.set 10
local.get 10
local.get 1
i32.store
local.get 30
i32.const 12
i32.add
local.set 11
local.get 11
local.get 2
i32.store
local.get 58
local.get 2
i32.add
local.set 12
local.get 0
i32.const 60
i32.add
local.set 13
local.get 13
i32.load
local.set 14
local.get 30
local.set 15
local.get 59
local.get 14
i32.store
local.get 59
i32.const 4
i32.add
local.set 61
local.get 61
local.get 15
i32.store
local.get 59
i32.const 8
i32.add
local.set 62
local.get 62
i32.const 2
i32.store
i32.const 146
local.get 59
call 11
local.set 16
local.get 16
call 31
local.set 17
local.get 12
local.get 17
i32.eq
local.set 18
block ;; label = @1
local.get 18
if ;; label = @2
i32.const 3
local.set 65
else
i32.const 2
local.set 4
local.get 12
local.set 5
local.get 30
local.set 6
local.get 17
local.set 26
loop ;; label = @3
block ;; label = @4
local.get 26
i32.const 0
i32.lt_s
local.set 27
local.get 27
if ;; label = @5
br 1 (;@4;)
end
local.get 5
local.get 26
i32.sub
local.set 36
local.get 6
i32.const 4
i32.add
local.set 37
local.get 37
i32.load
local.set 38
local.get 26
local.get 38
i32.gt_u
local.set 39
local.get 6
i32.const 8
i32.add
local.set 40
local.get 39
if (result i32) ;; label = @5
local.get 40
else
local.get 6
end
local.set 9
local.get 39
i32.const 31
i32.shl
i32.const 31
i32.shr_s
local.set 42
local.get 4
local.get 42
i32.add
local.set 8
local.get 39
if (result i32) ;; label = @5
local.get 38
else
i32.const 0
end
local.set 43
local.get 26
local.get 43
i32.sub
local.set 3
local.get 9
i32.load
local.set 44
local.get 44
local.get 3
i32.add
local.set 45
local.get 9
local.get 45
i32.store
local.get 9
i32.const 4
i32.add
local.set 46
local.get 46
i32.load
local.set 47
local.get 47
local.get 3
i32.sub
local.set 48
local.get 46
local.get 48
i32.store
local.get 13
i32.load
local.set 49
local.get 9
local.set 50
local.get 60
local.get 49
i32.store
local.get 60
i32.const 4
i32.add
local.set 63
local.get 63
local.get 50
i32.store
local.get 60
i32.const 8
i32.add
local.set 64
local.get 64
local.get 8
i32.store
i32.const 146
local.get 60
call 11
local.set 51
local.get 51
call 31
local.set 53
local.get 36
local.get 53
i32.eq
local.set 54
local.get 54
if ;; label = @5
i32.const 3
local.set 65
br 4 (;@1;)
else
local.get 8
local.set 4
local.get 36
local.set 5
local.get 9
local.set 6
local.get 53
local.set 26
end
br 1 (;@3;)
end
end
local.get 0
i32.const 16
i32.add
local.set 28
local.get 28
i32.const 0
i32.store
local.get 41
i32.const 0
i32.store
local.get 56
i32.const 0
i32.store
local.get 0
i32.load
local.set 29
local.get 29
i32.const 32
i32.or
local.set 31
local.get 0
local.get 31
i32.store
local.get 4
i32.const 2
i32.eq
local.set 32
local.get 32
if ;; label = @3
i32.const 0
local.set 7
else
local.get 6
i32.const 4
i32.add
local.set 33
local.get 33
i32.load
local.set 34
local.get 2
local.get 34
i32.sub
local.set 35
local.get 35
local.set 7
end
end
end
local.get 65
i32.const 3
i32.eq
if ;; label = @1
local.get 0
i32.const 44
i32.add
local.set 19
local.get 19
i32.load
local.set 20
local.get 0
i32.const 48
i32.add
local.set 21
local.get 21
i32.load
local.set 22
local.get 20
local.get 22
i32.add
local.set 23
local.get 0
i32.const 16
i32.add
local.set 24
local.get 24
local.get 23
i32.store
local.get 20
local.set 25
local.get 41
local.get 25
i32.store
local.get 56
local.get 25
i32.store
local.get 2
local.set 7
end
local.get 66
global.set 12
local.get 7
return)
(func (;30;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 18
global.get 12
i32.const 32
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 32
call 3
end
local.get 18
local.set 12
local.get 18
i32.const 20
i32.add
local.set 5
local.get 0
i32.const 60
i32.add
local.set 6
local.get 6
i32.load
local.set 7
local.get 5
local.set 8
local.get 12
local.get 7
i32.store
local.get 12
i32.const 4
i32.add
local.set 13
local.get 13
i32.const 0
i32.store
local.get 12
i32.const 8
i32.add
local.set 14
local.get 14
local.get 1
i32.store
local.get 12
i32.const 12
i32.add
local.set 15
local.get 15
local.get 8
i32.store
local.get 12
i32.const 16
i32.add
local.set 16
local.get 16
local.get 2
i32.store
i32.const 140
local.get 12
call 10
local.set 9
local.get 9
call 31
local.set 10
local.get 10
i32.const 0
i32.lt_s
local.set 11
local.get 11
if ;; label = @1
local.get 5
i32.const -1
i32.store
i32.const -1
local.set 4
else
local.get 5
i32.load
local.set 3
local.get 3
local.set 4
end
local.get 18
global.set 12
local.get 4
return)
(func (;31;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32)
global.get 12
local.set 6
local.get 0
i32.const -4096
i32.gt_u
local.set 2
local.get 2
if ;; label = @1
i32.const 0
local.get 0
i32.sub
local.set 3
call 32
local.set 4
local.get 4
local.get 3
i32.store
i32.const -1
local.set 1
else
local.get 0
local.set 1
end
local.get 1
return)
(func (;32;) (type 2) (result i32)
(local i32 i32)
global.get 12
local.set 1
i32.const 2808
return)
(func (;33;) (type 0) (param i32) (result i32)
(local i32 i32)
global.get 12
local.set 2
local.get 0
return)
(func (;34;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 19
global.get 12
i32.const 32
i32.add
global.set 12
global.get 12
global.get 13
i32.ge_s
if ;; label = @1
i32.const 32
call 3
end
local.get 19
local.set 15
local.get 19
i32.const 16
i32.add
local.set 8
local.get 0
i32.const 36
i32.add
local.set 9
local.get 9
i32.const 36
i32.store
local.get 0
i32.load
local.set 10
local.get 10
i32.const 64
i32.and
local.set 11
local.get 11
i32.const 0
i32.eq
local.set 12
local.get 12
if ;; label = @1
local.get 0
i32.const 60
i32.add
local.set 13
local.get 13
i32.load
local.set 14
local.get 8
local.set 3
local.get 15
local.get 14
i32.store
local.get 15
i32.const 4
i32.add
local.set 16
local.get 16
i32.const 21523
i32.store
local.get 15
i32.const 8
i32.add
local.set 17
local.get 17
local.get 3
i32.store
i32.const 54
local.get 15
call 12
local.set 4
local.get 4
i32.const 0
i32.eq
local.set 5
local.get 5
i32.eqz
if ;; label = @2
local.get 0
i32.const 75
i32.add
local.set 6
local.get 6
i32.const -1
i32.store8
end
end
local.get 0
local.get 1
local.get 2
call 29
local.set 7
local.get 19
global.set 12
local.get 7
return)
(func (;35;) (type 4) (param i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 22
local.get 0
i32.load8_s
local.set 11
local.get 1
i32.load8_s
local.set 12
local.get 11
i32.const 24
i32.shl
i32.const 24
i32.shr_s
local.get 12
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.ne
local.set 13
local.get 11
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 14
local.get 14
local.get 13
i32.or
local.set 20
local.get 20
if ;; label = @1
local.get 12
local.set 4
local.get 11
local.set 5
else
local.get 1
local.set 2
local.get 0
local.set 3
loop ;; label = @2
block ;; label = @3
local.get 3
i32.const 1
i32.add
local.set 15
local.get 2
i32.const 1
i32.add
local.set 16
local.get 15
i32.load8_s
local.set 17
local.get 16
i32.load8_s
local.set 18
local.get 17
i32.const 24
i32.shl
i32.const 24
i32.shr_s
local.get 18
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.ne
local.set 6
local.get 17
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 7
local.get 7
local.get 6
i32.or
local.set 19
local.get 19
if ;; label = @4
local.get 18
local.set 4
local.get 17
local.set 5
br 1 (;@3;)
else
local.get 16
local.set 2
local.get 15
local.set 3
end
br 1 (;@2;)
end
end
end
local.get 5
i32.const 255
i32.and
local.set 8
local.get 4
i32.const 255
i32.and
local.set 9
local.get 8
local.get 9
i32.sub
local.set 10
local.get 10
return)
(func (;36;) (type 0) (param i32) (result i32)
(local i32 i32)
global.get 12
local.set 2
i32.const 0
return)
(func (;37;) (type 3) (param i32)
(local i32 i32)
global.get 12
local.set 2
return)
(func (;38;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 32
local.get 0
local.set 9
local.get 9
i32.const 3
i32.and
local.set 20
local.get 20
i32.const 0
i32.eq
local.set 24
block ;; label = @1
local.get 24
if ;; label = @2
local.get 0
local.set 3
i32.const 5
local.set 31
else
local.get 0
local.set 4
local.get 9
local.set 23
loop ;; label = @3
block ;; label = @4
local.get 4
i32.load8_s
local.set 25
local.get 25
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 26
local.get 26
if ;; label = @5
local.get 23
local.set 6
br 4 (;@1;)
end
local.get 4
i32.const 1
i32.add
local.set 27
local.get 27
local.set 28
local.get 28
i32.const 3
i32.and
local.set 29
local.get 29
i32.const 0
i32.eq
local.set 30
local.get 30
if ;; label = @5
local.get 27
local.set 3
i32.const 5
local.set 31
br 1 (;@4;)
else
local.get 27
local.set 4
local.get 28
local.set 23
end
br 1 (;@3;)
end
end
end
end
local.get 31
i32.const 5
i32.eq
if ;; label = @1
local.get 3
local.set 1
loop ;; label = @2
block ;; label = @3
local.get 1
i32.load
local.set 10
local.get 10
i32.const -16843009
i32.add
local.set 11
local.get 10
i32.const -2139062144
i32.and
local.set 12
local.get 12
i32.const -2139062144
i32.xor
local.set 13
local.get 13
local.get 11
i32.and
local.set 14
local.get 14
i32.const 0
i32.eq
local.set 15
local.get 1
i32.const 4
i32.add
local.set 16
local.get 15
if ;; label = @4
local.get 16
local.set 1
else
br 1 (;@3;)
end
br 1 (;@2;)
end
end
local.get 10
i32.const 255
i32.and
local.set 17
local.get 17
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 18
local.get 18
if ;; label = @2
local.get 1
local.set 5
else
local.get 1
local.set 7
loop ;; label = @3
block ;; label = @4
local.get 7
i32.const 1
i32.add
local.set 19
local.get 19
i32.load8_s
local.set 8
local.get 8
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 21
local.get 21
if ;; label = @5
local.get 19
local.set 5
br 1 (;@4;)
else
local.get 19
local.set 7
end
br 1 (;@3;)
end
end
end
local.get 5
local.set 22
local.get 22
local.set 6
end
local.get 6
local.get 9
i32.sub
local.set 2
local.get 2
return)
(func (;39;) (type 2) (result i32)
(local i32 i32)
global.get 12
local.set 1
i32.const 2812
call 8
i32.const 2820
return)
(func (;40;) (type 7)
(local i32 i32)
global.get 12
local.set 1
i32.const 2812
call 14
return)
(func (;41;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 39
local.get 0
i32.const 0
i32.eq
local.set 8
block ;; label = @1
local.get 8
if ;; label = @2
i32.const 1228
i32.load
local.set 35
local.get 35
i32.const 0
i32.eq
local.set 36
local.get 36
if ;; label = @3
i32.const 0
local.set 29
else
i32.const 1228
i32.load
local.set 9
local.get 9
call 41
local.set 10
local.get 10
local.set 29
end
call 39
local.set 11
local.get 11
i32.load
local.set 3
local.get 3
i32.const 0
i32.eq
local.set 12
local.get 12
if ;; label = @3
local.get 29
local.set 5
else
local.get 3
local.set 4
local.get 29
local.set 6
loop ;; label = @4
block ;; label = @5
local.get 4
i32.const 76
i32.add
local.set 13
local.get 13
i32.load
local.set 14
local.get 14
i32.const -1
i32.gt_s
local.set 15
local.get 15
if ;; label = @6
local.get 4
call 36
local.set 16
local.get 16
local.set 25
else
i32.const 0
local.set 25
end
local.get 4
i32.const 20
i32.add
local.set 17
local.get 17
i32.load
local.set 18
local.get 4
i32.const 28
i32.add
local.set 20
local.get 20
i32.load
local.set 21
local.get 18
local.get 21
i32.gt_u
local.set 22
local.get 22
if ;; label = @6
local.get 4
call 42
local.set 23
local.get 23
local.get 6
i32.or
local.set 24
local.get 24
local.set 7
else
local.get 6
local.set 7
end
local.get 25
i32.const 0
i32.eq
local.set 26
local.get 26
i32.eqz
if ;; label = @6
local.get 4
call 37
end
local.get 4
i32.const 56
i32.add
local.set 27
local.get 27
i32.load
local.set 2
local.get 2
i32.const 0
i32.eq
local.set 28
local.get 28
if ;; label = @6
local.get 7
local.set 5
br 1 (;@5;)
else
local.get 2
local.set 4
local.get 7
local.set 6
end
br 1 (;@4;)
end
end
end
call 40
local.get 5
local.set 1
else
local.get 0
i32.const 76
i32.add
local.set 19
local.get 19
i32.load
local.set 30
local.get 30
i32.const -1
i32.gt_s
local.set 31
local.get 31
i32.eqz
if ;; label = @3
local.get 0
call 42
local.set 32
local.get 32
local.set 1
br 2 (;@1;)
end
local.get 0
call 36
local.set 33
local.get 33
i32.const 0
i32.eq
local.set 37
local.get 0
call 42
local.set 34
local.get 37
if ;; label = @3
local.get 34
local.set 1
else
local.get 0
call 37
local.get 34
local.set 1
end
end
end
local.get 1
return)
(func (;42;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 23
local.get 0
i32.const 20
i32.add
local.set 2
local.get 2
i32.load
local.set 13
local.get 0
i32.const 28
i32.add
local.set 15
local.get 15
i32.load
local.set 16
local.get 13
local.get 16
i32.gt_u
local.set 17
local.get 17
if ;; label = @1
local.get 0
i32.const 36
i32.add
local.set 18
local.get 18
i32.load
local.set 19
local.get 0
i32.const 0
i32.const 0
local.get 19
i32.const 63
i32.and
i32.const 64
i32.add
call_indirect (type 1)
drop
local.get 2
i32.load
local.set 20
local.get 20
i32.const 0
i32.eq
local.set 21
local.get 21
if ;; label = @2
i32.const -1
local.set 1
else
i32.const 3
local.set 22
end
else
i32.const 3
local.set 22
end
local.get 22
i32.const 3
i32.eq
if ;; label = @1
local.get 0
i32.const 4
i32.add
local.set 3
local.get 3
i32.load
local.set 4
local.get 0
i32.const 8
i32.add
local.set 5
local.get 5
i32.load
local.set 6
local.get 4
local.get 6
i32.lt_u
local.set 7
local.get 7
if ;; label = @2
local.get 4
local.set 8
local.get 6
local.set 9
local.get 8
local.get 9
i32.sub
local.set 10
local.get 0
i32.const 40
i32.add
local.set 11
local.get 11
i32.load
local.set 12
local.get 0
local.get 10
i32.const 1
local.get 12
i32.const 63
i32.and
i32.const 64
i32.add
call_indirect (type 1)
drop
end
local.get 0
i32.const 16
i32.add
local.set 14
local.get 14
i32.const 0
i32.store
local.get 15
i32.const 0
i32.store
local.get 2
i32.const 0
i32.store
local.get 5
i32.const 0
i32.store
local.get 3
i32.const 0
i32.store
i32.const 0
local.set 1
end
local.get 1
return)
(func (;43;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32)
global.get 12
local.set 4
local.get 0
local.get 1
local.get 2
call 44
drop
local.get 0
return)
(func (;44;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get 12
local.set 64
local.get 1
local.set 45
local.get 0
local.set 55
local.get 45
local.get 55
i32.xor
local.set 56
local.get 56
i32.const 3
i32.and
local.set 57
local.get 57
i32.const 0
i32.eq
local.set 58
block ;; label = @1
local.get 58
if ;; label = @2
local.get 45
i32.const 3
i32.and
local.set 59
local.get 59
i32.const 0
i32.ne
local.set 60
local.get 2
i32.const 0
i32.ne
local.set 25
local.get 25
local.get 60
i32.and
local.set 62
local.get 62
if ;; label = @3
local.get 2
local.set 7
local.get 1
local.set 9
local.get 0
local.set 11
loop ;; label = @4
block ;; label = @5
local.get 9
i32.load8_s
local.set 26
local.get 11
local.get 26
i32.store8
local.get 26
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 27
local.get 27
if ;; label = @6
local.get 11
local.set 20
local.get 7
local.set 22
br 5 (;@1;)
end
local.get 7
i32.const -1
i32.add
local.set 28
local.get 9
i32.const 1
i32.add
local.set 29
local.get 11
i32.const 1
i32.add
local.set 30
local.get 29
local.set 31
local.get 31
i32.const 3
i32.and
local.set 32
local.get 32
i32.const 0
i32.ne
local.set 33
local.get 28
i32.const 0
i32.ne
local.set 34
local.get 34
local.get 33
i32.and
local.set 61
local.get 61
if ;; label = @6
local.get 28
local.set 7
local.get 29
local.set 9
local.get 30
local.set 11
else
local.get 28
local.set 6
local.get 29
local.set 8
local.get 30
local.set 10
local.get 34
local.set 23
br 1 (;@5;)
end
br 1 (;@4;)
end
end
else
local.get 2
local.set 6
local.get 1
local.set 8
local.get 0
local.set 10
local.get 25
local.set 23
end
local.get 23
if ;; label = @3
local.get 8
i32.load8_s
local.set 24
local.get 24
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 35
local.get 35
if ;; label = @4
local.get 10
local.set 20
local.get 6
local.set 22
else
local.get 6
i32.const 3
i32.gt_u
local.set 36
block ;; label = @5
local.get 36
if ;; label = @6
local.get 10
local.set 5
local.get 8
local.set 12
local.get 6
local.set 16
loop ;; label = @7
block ;; label = @8
local.get 12
i32.load
local.set 37
local.get 37
i32.const -16843009
i32.add
local.set 38
local.get 37
i32.const -2139062144
i32.and
local.set 39
local.get 39
i32.const -2139062144
i32.xor
local.set 40
local.get 40
local.get 38
i32.and
local.set 41
local.get 41
i32.const 0
i32.eq
local.set 42
local.get 42
i32.eqz
if ;; label = @9
local.get 12
local.set 3
local.get 5
local.set 4
local.get 16
local.set 13
br 4 (;@5;)
end
local.get 5
local.get 37
i32.store
local.get 16
i32.const -4
i32.add
local.set 43
local.get 12
i32.const 4
i32.add
local.set 44
local.get 5
i32.const 4
i32.add
local.set 46
local.get 43
i32.const 3
i32.gt_u
local.set 47
local.get 47
if ;; label = @9
local.get 46
local.set 5
local.get 44
local.set 12
local.get 43
local.set 16
else
local.get 44
local.set 3
local.get 46
local.set 4
local.get 43
local.set 13
br 1 (;@8;)
end
br 1 (;@7;)
end
end
else
local.get 8
local.set 3
local.get 10
local.set 4
local.get 6
local.set 13
end
end
local.get 3
local.set 14
local.get 4
local.set 15
local.get 13
local.set 17
i32.const 13
local.set 63
end
else
local.get 10
local.set 20
i32.const 0
local.set 22
end
else
local.get 1
local.set 14
local.get 0
local.set 15
local.get 2
local.set 17
i32.const 13
local.set 63
end
end
block ;; label = @1
local.get 63
i32.const 13
i32.eq
if ;; label = @2
local.get 17
i32.const 0
i32.eq
local.set 48
local.get 48
if ;; label = @3
local.get 15
local.set 20
i32.const 0
local.set 22
else
local.get 14
local.set 18
local.get 15
local.set 19
local.get 17
local.set 21
loop ;; label = @4
block ;; label = @5
local.get 18
i32.load8_s
local.set 49
local.get 19
local.get 49
i32.store8
local.get 49
i32.const 24
i32.shl
i32.const 24
i32.shr_s
i32.const 0
i32.eq
local.set 50
local.get 50
if ;; label = @6
local.get 19
local.set 20
local.get 21
local.set 22
br 5 (;@1;)
end
local.get 21
i32.const -1
i32.add
local.set 51
local.get 18
i32.const 1
i32.add
local.set 52
local.get 19
i32.const 1
i32.add
local.set 53
local.get 51
i32.const 0
i32.eq
local.set 54
local.get 54
if ;; label = @6
local.get 53
local.set 20
i32.const 0
local.set 22
br 1 (;@5;)
else
local.get 52
local.set 18
local.get 53
local.set 19
local.get 51
local.set 21
end
br 1 (;@4;)
end
end
end
end
end
local.get 20
i32.const 0
local.get 22
call 49
drop
local.get 20
return)
(func (;45;) (type 3) (param i32)
(local i32 i32 i32 i64)
global.get 12
local.set 3
local.get 0
i32.const -1
i32.add
local.set 1
local.get 1
i64.extend_i32_u
local.set 4
i32.const 2304
local.get 4
i64.store
return)
(func (;46;) (type 2) (result i32)
(local i32 i32 i32 i64 i64 i64 i64)
global.get 12
local.set 2
i32.const 2304
i64.load
local.set 3
local.get 3
i64.const 6364136223846793005
i64.mul
local.set 4
local.get 4
i64.const 1
i64.add
local.set 5
i32.const 2304
local.get 5
i64.store
local.get 5
i64.const 33
i64.shr_u
local.set 6
local.get 6
i32.wrap_i64
local.set 0
local.get 0
return)
(func (;47;) (type 7)
nop)
(func (;48;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32)
local.get 2
i32.const 8192
i32.ge_s
if ;; label = @1
local.get 0
local.get 1
local.get 2
call 15
return
end
local.get 0
local.set 3
local.get 0
local.get 2
i32.add
local.set 6
local.get 0
i32.const 3
i32.and
local.get 1
i32.const 3
i32.and
i32.eq
if ;; label = @1
loop ;; label = @2
block ;; label = @3
local.get 0
i32.const 3
i32.and
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 2
i32.const 0
i32.eq
if ;; label = @5
local.get 3
return
end
local.get 0
local.get 1
i32.load8_s
i32.store8
local.get 0
i32.const 1
i32.add
local.set 0
local.get 1
i32.const 1
i32.add
local.set 1
local.get 2
i32.const 1
i32.sub
local.set 2
end
br 1 (;@2;)
end
end
local.get 6
i32.const -4
i32.and
local.set 4
local.get 4
i32.const 64
i32.sub
local.set 5
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 5
i32.le_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 1
i32.load
i32.store
local.get 0
i32.const 4
i32.add
local.get 1
i32.const 4
i32.add
i32.load
i32.store
local.get 0
i32.const 8
i32.add
local.get 1
i32.const 8
i32.add
i32.load
i32.store
local.get 0
i32.const 12
i32.add
local.get 1
i32.const 12
i32.add
i32.load
i32.store
local.get 0
i32.const 16
i32.add
local.get 1
i32.const 16
i32.add
i32.load
i32.store
local.get 0
i32.const 20
i32.add
local.get 1
i32.const 20
i32.add
i32.load
i32.store
local.get 0
i32.const 24
i32.add
local.get 1
i32.const 24
i32.add
i32.load
i32.store
local.get 0
i32.const 28
i32.add
local.get 1
i32.const 28
i32.add
i32.load
i32.store
local.get 0
i32.const 32
i32.add
local.get 1
i32.const 32
i32.add
i32.load
i32.store
local.get 0
i32.const 36
i32.add
local.get 1
i32.const 36
i32.add
i32.load
i32.store
local.get 0
i32.const 40
i32.add
local.get 1
i32.const 40
i32.add
i32.load
i32.store
local.get 0
i32.const 44
i32.add
local.get 1
i32.const 44
i32.add
i32.load
i32.store
local.get 0
i32.const 48
i32.add
local.get 1
i32.const 48
i32.add
i32.load
i32.store
local.get 0
i32.const 52
i32.add
local.get 1
i32.const 52
i32.add
i32.load
i32.store
local.get 0
i32.const 56
i32.add
local.get 1
i32.const 56
i32.add
i32.load
i32.store
local.get 0
i32.const 60
i32.add
local.get 1
i32.const 60
i32.add
i32.load
i32.store
local.get 0
i32.const 64
i32.add
local.set 0
local.get 1
i32.const 64
i32.add
local.set 1
end
br 1 (;@2;)
end
end
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 4
i32.lt_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 1
i32.load
i32.store
local.get 0
i32.const 4
i32.add
local.set 0
local.get 1
i32.const 4
i32.add
local.set 1
end
br 1 (;@2;)
end
end
else
local.get 6
i32.const 4
i32.sub
local.set 4
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 4
i32.lt_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 1
i32.load8_s
i32.store8
local.get 0
i32.const 1
i32.add
local.get 1
i32.const 1
i32.add
i32.load8_s
i32.store8
local.get 0
i32.const 2
i32.add
local.get 1
i32.const 2
i32.add
i32.load8_s
i32.store8
local.get 0
i32.const 3
i32.add
local.get 1
i32.const 3
i32.add
i32.load8_s
i32.store8
local.get 0
i32.const 4
i32.add
local.set 0
local.get 1
i32.const 4
i32.add
local.set 1
end
br 1 (;@2;)
end
end
end
loop ;; label = @1
block ;; label = @2
local.get 0
local.get 6
i32.lt_s
i32.eqz
if ;; label = @3
br 1 (;@2;)
end
block ;; label = @3
local.get 0
local.get 1
i32.load8_s
i32.store8
local.get 0
i32.const 1
i32.add
local.set 0
local.get 1
i32.const 1
i32.add
local.set 1
end
br 1 (;@1;)
end
end
local.get 3
return)
(func (;49;) (type 1) (param i32 i32 i32) (result i32)
(local i32 i32 i32 i32)
local.get 0
local.get 2
i32.add
local.set 3
local.get 1
i32.const 255
i32.and
local.set 1
local.get 2
i32.const 67
i32.ge_s
if ;; label = @1
loop ;; label = @2
block ;; label = @3
local.get 0
i32.const 3
i32.and
i32.const 0
i32.ne
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 1
i32.store8
local.get 0
i32.const 1
i32.add
local.set 0
end
br 1 (;@2;)
end
end
local.get 3
i32.const -4
i32.and
local.set 4
local.get 4
i32.const 64
i32.sub
local.set 5
local.get 1
local.get 1
i32.const 8
i32.shl
i32.or
local.get 1
i32.const 16
i32.shl
i32.or
local.get 1
i32.const 24
i32.shl
i32.or
local.set 6
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 5
i32.le_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 6
i32.store
local.get 0
i32.const 4
i32.add
local.get 6
i32.store
local.get 0
i32.const 8
i32.add
local.get 6
i32.store
local.get 0
i32.const 12
i32.add
local.get 6
i32.store
local.get 0
i32.const 16
i32.add
local.get 6
i32.store
local.get 0
i32.const 20
i32.add
local.get 6
i32.store
local.get 0
i32.const 24
i32.add
local.get 6
i32.store
local.get 0
i32.const 28
i32.add
local.get 6
i32.store
local.get 0
i32.const 32
i32.add
local.get 6
i32.store
local.get 0
i32.const 36
i32.add
local.get 6
i32.store
local.get 0
i32.const 40
i32.add
local.get 6
i32.store
local.get 0
i32.const 44
i32.add
local.get 6
i32.store
local.get 0
i32.const 48
i32.add
local.get 6
i32.store
local.get 0
i32.const 52
i32.add
local.get 6
i32.store
local.get 0
i32.const 56
i32.add
local.get 6
i32.store
local.get 0
i32.const 60
i32.add
local.get 6
i32.store
local.get 0
i32.const 64
i32.add
local.set 0
end
br 1 (;@2;)
end
end
loop ;; label = @2
block ;; label = @3
local.get 0
local.get 4
i32.lt_s
i32.eqz
if ;; label = @4
br 1 (;@3;)
end
block ;; label = @4
local.get 0
local.get 6
i32.store
local.get 0
i32.const 4
i32.add
local.set 0
end
br 1 (;@2;)
end
end
end
loop ;; label = @1
block ;; label = @2
local.get 0
local.get 3
i32.lt_s
i32.eqz
if ;; label = @3
br 1 (;@2;)
end
block ;; label = @3
local.get 0
local.get 1
i32.store8
local.get 0
i32.const 1
i32.add
local.set 0
end
br 1 (;@1;)
end
end
local.get 3
local.get 2
i32.sub
return)
(func (;50;) (type 0) (param i32) (result i32)
(local i32 i32 i32 i32)
global.get 9
i32.load
local.set 1
local.get 1
local.get 0
i32.add
local.set 3
local.get 0
i32.const 0
i32.gt_s
local.get 3
local.get 1
i32.lt_s
i32.and
local.get 3
i32.const 0
i32.lt_s
i32.or
if ;; label = @1
call 2
drop
i32.const 12
call 9
i32.const -1
return
end
global.get 9
local.get 3
i32.store
call 1
local.set 4
local.get 3
local.get 4
i32.gt_s
if ;; label = @1
call 0
i32.const 0
i32.eq
if ;; label = @2
global.get 9
local.get 1
i32.store
i32.const 12
call 9
i32.const -1
return
end
end
local.get 1
return)
(func (;51;) (type 4) (param i32 i32) (result i32)
local.get 1
local.get 0
i32.const 63
i32.and
i32.const 0
i32.add
call_indirect (type 0)
return)
(func (;52;) (type 0) (param i32) (result i32)
i32.const 0
local.get 0
call 6
return)
(func (;53;) (type 0) (param i32) (result i32)
i32.const 1
local.get 0
call 6
return)
(func (;54;) (type 0) (param i32) (result i32)
i32.const 2
local.get 0
call 6
return)
(func (;55;) (type 0) (param i32) (result i32)
i32.const 3
local.get 0
call 6
return)
(func (;56;) (type 0) (param i32) (result i32)
i32.const 4
local.get 0
call 6
return)
(func (;57;) (type 0) (param i32) (result i32)
i32.const 5
local.get 0
call 6
return)
(func (;58;) (type 0) (param i32) (result i32)
i32.const 6
local.get 0
call 6
return)
(func (;59;) (type 0) (param i32) (result i32)
i32.const 7
local.get 0
call 6
return)
(func (;60;) (type 0) (param i32) (result i32)
i32.const 8
local.get 0
call 6
return)
(func (;61;) (type 0) (param i32) (result i32)
i32.const 9
local.get 0
call 6
return)
(func (;62;) (type 0) (param i32) (result i32)
i32.const 10
local.get 0
call 6
return)
(func (;63;) (type 0) (param i32) (result i32)
i32.const 11
local.get 0
call 6
return)
(func (;64;) (type 0) (param i32) (result i32)
i32.const 12
local.get 0
call 6
return)
(func (;65;) (type 0) (param i32) (result i32)
i32.const 13
local.get 0
call 6
return)
(func (;66;) (type 0) (param i32) (result i32)
i32.const 14
local.get 0
call 6
return)
(func (;67;) (type 0) (param i32) (result i32)
i32.const 15
local.get 0
call 6
return)
(func (;68;) (type 0) (param i32) (result i32)
i32.const 16
local.get 0
call 6
return)
(func (;69;) (type 0) (param i32) (result i32)
i32.const 17
local.get 0
call 6
return)
(func (;70;) (type 0) (param i32) (result i32)
i32.const 18
local.get 0
call 6
return)
(func (;71;) (type 0) (param i32) (result i32)
i32.const 19
local.get 0
call 6
return)
(func (;72;) (type 0) (param i32) (result i32)
i32.const 20
local.get 0
call 6
return)
(func (;73;) (type 0) (param i32) (result i32)
i32.const 21
local.get 0
call 6
return)
(func (;74;) (type 0) (param i32) (result i32)
i32.const 22
local.get 0
call 6
return)
(func (;75;) (type 0) (param i32) (result i32)
i32.const 23
local.get 0
call 6
return)
(func (;76;) (type 0) (param i32) (result i32)
i32.const 24
local.get 0
call 6
return)
(func (;77;) (type 0) (param i32) (result i32)
i32.const 25
local.get 0
call 6
return)
(func (;78;) (type 0) (param i32) (result i32)
i32.const 26
local.get 0
call 6
return)
(func (;79;) (type 0) (param i32) (result i32)
i32.const 27
local.get 0
call 6
return)
(func (;80;) (type 0) (param i32) (result i32)
i32.const 28
local.get 0
call 6
return)
(func (;81;) (type 0) (param i32) (result i32)
i32.const 29
local.get 0
call 6
return)
(func (;82;) (type 0) (param i32) (result i32)
i32.const 30
local.get 0
call 6
return)
(func (;83;) (type 0) (param i32) (result i32)
i32.const 31
local.get 0
call 6
return)
(func (;84;) (type 5) (param i32 i32 i32 i32) (result i32)
local.get 1
local.get 2
local.get 3
local.get 0
i32.const 63
i32.and
i32.const 64
i32.add
call_indirect (type 1)
return)
(func (;85;) (type 1) (param i32 i32 i32) (result i32)
i32.const 0
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;86;) (type 1) (param i32 i32 i32) (result i32)
i32.const 1
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;87;) (type 1) (param i32 i32 i32) (result i32)
i32.const 2
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;88;) (type 1) (param i32 i32 i32) (result i32)
i32.const 3
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;89;) (type 1) (param i32 i32 i32) (result i32)
i32.const 4
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;90;) (type 1) (param i32 i32 i32) (result i32)
i32.const 5
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;91;) (type 1) (param i32 i32 i32) (result i32)
i32.const 6
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;92;) (type 1) (param i32 i32 i32) (result i32)
i32.const 7
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;93;) (type 1) (param i32 i32 i32) (result i32)
i32.const 8
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;94;) (type 1) (param i32 i32 i32) (result i32)
i32.const 9
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;95;) (type 1) (param i32 i32 i32) (result i32)
i32.const 10
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;96;) (type 1) (param i32 i32 i32) (result i32)
i32.const 11
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;97;) (type 1) (param i32 i32 i32) (result i32)
i32.const 12
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;98;) (type 1) (param i32 i32 i32) (result i32)
i32.const 13
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;99;) (type 1) (param i32 i32 i32) (result i32)
i32.const 14
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;100;) (type 1) (param i32 i32 i32) (result i32)
i32.const 15
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;101;) (type 1) (param i32 i32 i32) (result i32)
i32.const 16
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;102;) (type 1) (param i32 i32 i32) (result i32)
i32.const 17
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;103;) (type 1) (param i32 i32 i32) (result i32)
i32.const 18
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;104;) (type 1) (param i32 i32 i32) (result i32)
i32.const 19
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;105;) (type 1) (param i32 i32 i32) (result i32)
i32.const 20
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;106;) (type 1) (param i32 i32 i32) (result i32)
i32.const 21
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;107;) (type 1) (param i32 i32 i32) (result i32)
i32.const 22
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;108;) (type 1) (param i32 i32 i32) (result i32)
i32.const 23
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;109;) (type 1) (param i32 i32 i32) (result i32)
i32.const 24
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;110;) (type 1) (param i32 i32 i32) (result i32)
i32.const 25
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;111;) (type 1) (param i32 i32 i32) (result i32)
i32.const 26
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;112;) (type 1) (param i32 i32 i32) (result i32)
i32.const 27
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;113;) (type 1) (param i32 i32 i32) (result i32)
i32.const 28
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;114;) (type 1) (param i32 i32 i32) (result i32)
i32.const 29
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;115;) (type 1) (param i32 i32 i32) (result i32)
i32.const 30
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;116;) (type 1) (param i32 i32 i32) (result i32)
i32.const 31
local.get 0
local.get 1
local.get 2
call 7
return)
(func (;117;) (type 0) (param i32) (result i32)
i32.const 0
call 4
i32.const 0
return)
(func (;118;) (type 1) (param i32 i32 i32) (result i32)
i32.const 1
call 5
i32.const 0
return)
(global (;9;) (mut i32) (global.get 2))
(global (;10;) (mut i32) (global.get 3))
(global (;11;) (mut i32) (global.get 4))
(global (;12;) (mut i32) (global.get 5))
(global (;13;) (mut i32) (global.get 6))
(global (;14;) (mut i32) (i32.const 0))
(global (;15;) (mut i32) (i32.const 0))
(global (;16;) (mut i32) (i32.const 0))
(global (;17;) (mut i32) (i32.const 0))
(global (;18;) (mut f64) (global.get 7))
(global (;19;) (mut f64) (global.get 8))
(global (;20;) (mut i32) (i32.const 0))
(global (;21;) (mut i32) (i32.const 0))
(global (;22;) (mut i32) (i32.const 0))
(global (;23;) (mut i32) (i32.const 0))
(global (;24;) (mut f64) (f64.const 0x0p+0 (;=0;)))
(global (;25;) (mut i32) (i32.const 0))
(global (;26;) (mut f32) (f32.const 0x0p+0 (;=0;)))
(global (;27;) (mut f32) (f32.const 0x0p+0 (;=0;)))
(export "___errno_location" (func 32))
(export "_authenticate" (func 25))
(export "_fflush" (func 41))
(export "_free" (func 27))
(export "_malloc" (func 26))
(export "_memcpy" (func 48))
(export "_memset" (func 49))
(export "_sbrk" (func 50))
(export "dynCall_ii" (func 51))
(export "dynCall_iiii" (func 84))
(export "establishStackSpace" (func 20))
(export "getTempRet0" (func 23))
(export "runPostSets" (func 47))
(export "setTempRet0" (func 22))
(export "setThrew" (func 21))
(export "stackAlloc" (func 17))
(export "stackRestore" (func 19))
(export "stackSave" (func 18))
(elem (;0;) (global.get 1) func 117 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 28 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 118 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 34 30 29 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118)
(data (;0;) (i32.const 1024) "\91\91\91\bd\ab\a8\b6\aa\a7\b4\a7\ab\b5\b0\b1\a6\a3\b6\a3\b1\b0\b6\aa\a7\b5\a7\b4\b8\a7\b4\b6\aa\a7\b4\a7\ab\b5\b0\b1\a6\a3\b6\a3\a4\b4\a7\a3\a5\aa\b2\b4\b1\a4\ae\a7\af\b5\b1\ae\b8\a7\a6\ad\b6\aa\ba\a4\a4\bf\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\22\00\00\00#\00\00\00\f8\04\00\00\00\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0a\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\04\00\00true\00success\00failure"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment