lkarch.org/tools/ducklife4/ClassiCube.js
Lucas Kent e39465ad2f Changes to be committed:
new file:   Files/flashplayer_32_sa.exe
	new file:   favicon.ico
	new file:   globe.gif
	new file:   imgs/download.png
	new file:   imgs/zuck.jpg
	new file:   index.html
	new file:   other.ico
	new file:   script.js
	new file:   site.webmanifest
	new file:   sitemap.html
	new file:   styles/backround.css
	new file:   styles/border.css
	new file:   styles/fonts/Titillium_Web/OFL.txt
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf
	new file:   styles/fonts/webfontkit-20221027-163353/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2
	new file:   styles/fonts/webfontkit-20221027-165950/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2
	new file:   styles/style.css
	new file:   tools/2048/.gitignore
	new file:   tools/2048/.jshintrc
	new file:   tools/2048/CONTRIBUTING.md
	new file:   tools/2048/LICENSE.txt
	new file:   tools/2048/README.md
	new file:   tools/2048/Rakefile
	new file:   tools/2048/favicon.ico
	new file:   tools/2048/index.html
	new file:   tools/2048/js/animframe_polyfill.js
	new file:   tools/2048/js/application.js
	new file:   tools/2048/js/bind_polyfill.js
	new file:   tools/2048/js/classlist_polyfill.js
	new file:   tools/2048/js/game_manager.js
	new file:   tools/2048/js/grid.js
	new file:   tools/2048/js/html_actuator.js
	new file:   tools/2048/js/keyboard_input_manager.js
	new file:   tools/2048/js/local_storage_manager.js
	new file:   tools/2048/js/tile.js
    new file:   tools/2048/meta/apple-touch-icon.png
	new file:   tools/webretro/cores/neocd_libretro.js
	new file:   tools/webretro/cores/neocd_libretro.wasm
	new file:   tools/webretro/cores/nestopia_libretro.js
	new file:   tools/webretro/cores/nestopia_libretro.wasm
	new file:   tools/webretro/cores/o2em_libretro.js
	new file:   tools/webretro/cores/o2em_libretro.wasm
	new file:   tools/webretro/cores/opera_libretro.js
	new file:   tools/webretro/cores/opera_libretro.wasm
2022-11-02 08:40:01 -04:00

100919 lines
2.7 MiB

// Copyright 2010 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
// University of Illinois/NCSA Open Source License. Both these licenses can be
// found in the LICENSE file.
// 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)
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
var loadPackage = function(metadata) {
var PACKAGE_PATH;
if (typeof window === 'object') {
PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
} else if (typeof location !== 'undefined') {
// worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
} else {
throw 'using preloaded data can only be done on a web page or in a web worker';
}
var PACKAGE_NAME = '/static/default.zip';
var REMOTE_PACKAGE_BASE = '/static/default.zip';
if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
Module['locateFile'] = Module['locateFilePackage'];
err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
}
var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size;
var PACKAGE_UUID = metadata.package_uuid;
function fetchRemotePackage(packageName, packageSize, callback, errback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', packageName, true);
xhr.responseType = 'arraybuffer';
xhr.onprogress = function(event) {
var url = packageName;
var size = packageSize;
if (event.total) size = event.total;
if (event.loaded) {
if (!xhr.addedTotal) {
xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
}
};
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
}
xhr.onload = function(event) {
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
var packageData = xhr.response;
callback(packageData);
} else {
throw new Error(xhr.statusText + " : " + xhr.responseURL);
}
};
xhr.send(null);
};
function handleError(error) {
console.error('package error:', error);
};
var fetchedCallback = null;
var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
if (fetchedCallback) {
fetchedCallback(data);
fetchedCallback = null;
} else {
fetched = data;
}
}, handleError);
function runWithFS() {
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
Module['FS_createPath']('/', 'texpacks', true, true);
function DataRequest(start, end, audio) {
this.start = start;
this.end = end;
this.audio = audio;
}
DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['removeRunDependency']('fp ' + that.name);
this.requests[this.name] = null;
}
};
var files = metadata.files;
for (var i = 0; i < files.length; ++i) {
new DataRequest(files[i].start, files[i].end, files[i].audio).open('GET', files[i].filename);
}
function processPackageData(arrayBuffer) {
Module.finishedDataFileDownloads++;
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// Reuse the bytearray from the XHR as the source for file reads.
DataRequest.prototype.byteArray = byteArray;
var files = metadata.files;
for (var i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_/static/default.zip');
};
Module['addRunDependency']('datafile_/static/default.zip');
if (!Module.preloadResults) Module.preloadResults = {};
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
if (fetched) {
processPackageData(fetched);
fetched = null;
} else {
fetchedCallback = processPackageData;
}
}
if (Module['calledRun']) {
runWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
}
}
loadPackage({"files": [{"start": 0, "audio": 0, "end": 237603, "filename": "/texpacks/default.zip"}], "remote_package_size": 237603, "package_uuid": "ae897999-5dce-4041-89a9-f47a7acf7d1f"});
})();
// 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'] = [];
// Determine the runtime environment we are in. You can customize this by
// setting the ENVIRONMENT setting at compile time (see settings.js).
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;
// 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)
// `/` 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;
ret = tryParseAsDataURI(filename);
if (!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', abort);
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) {
var data = tryParseAsDataURI(f);
if (data) {
return intArrayToString(data);
}
return read(f);
};
}
Module['readBinary'] = function readBinary(f) {
var data;
data = tryParseAsDataURI(f);
if (data) {
return 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_WORKER) { // Check worker, not web, since window could be polyfilled
scriptDirectory = self.location.href;
} else if (document.currentScript) { // web
scriptDirectory = document.currentScript.src;
}
// blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.
// otherwise, slice off the final part of the url to find the script directory.
// if scriptDirectory does not contain a slash, lastIndexOf will return -1,
// and scriptDirectory will correctly be replaced with an empty string.
if (scriptDirectory.indexOf('blob:') !== 0) {
scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1);
} else {
scriptDirectory = '';
}
Module['read'] = function shell_read(url) {
try {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.send(null);
return xhr.responseText;
} catch (err) {
var data = tryParseAsDataURI(url);
if (data) {
return intArrayToString(data);
}
throw err;
}
};
if (ENVIRONMENT_IS_WORKER) {
Module['readBinary'] = function readBinary(url) {
try {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.responseType = 'arraybuffer';
xhr.send(null);
return new Uint8Array(xhr.response);
} catch (err) {
var data = tryParseAsDataURI(url);
if (data) {
return data;
}
throw err;
}
};
}
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;
}
var data = tryParseAsDataURI(url);
if (data) {
onload(data.buffer);
return;
}
onerror();
};
xhr.onerror = onerror;
xhr.send(null);
};
Module['setWindowTitle'] = function(title) { document.title = title };
} else
{
}
// 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));
// 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;
// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message
// Copyright 2017 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
// University of Illinois/NCSA Open Source License. Both these licenses can be
// found in the LICENSE file.
// {{PREAMBLE_ADDITIONS}}
var STACK_ALIGN = 16;
function dynamicAlloc(size) {
var ret = HEAP32[DYNAMICTOP_PTR>>2];
var end = (ret + size + 15) & -16;
if (end <= _emscripten_get_heap_size()) {
HEAP32[DYNAMICTOP_PTR>>2] = end;
} else {
var success = _emscripten_resize_heap(end);
if (!success) return 0;
}
return ret;
}
function alignMemory(size, factor) {
if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default
return Math.ceil(size / factor) * factor;
}
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, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);
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(0);
// 'sig' parameter is required for the llvm backend but only when func is not
// already a WebAssembly function.
function addFunction(func, sig) {
var base = 0;
for (var i = base; i < base + 0; 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) {
return Module['dynCall_' + sig].apply(null, [ptr].concat(args));
} else {
return Module['dynCall_' + sig].call(null, ptr);
}
}
var tempRet0 = 0;
var setTempRet0 = function(value) {
tempRet0 = value;
}
var getTempRet0 = function() {
return tempRet0;
}
var 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 = 8;
// === 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
/** @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;
}
// Wasm globals
var wasmMemory;
// Potentially used for direct table calls.
var wasmTable;
//========================================
// Runtime essentials
//========================================
// whether we are quitting the application. no code should run after this.
// set in exit() and abort()
var ABORT = false;
// set by exit() and abort(). Passed to 'onExit' handler.
// NOTE: This is also used as the process return code code in shell environments
// but only when noExitRuntime is false.
var EXITSTATUS = 0;
/** @type {function(*, string=)} */
function assert(condition, text) {
if (!condition) {
abort('Assertion failed: ' + text);
}
}
// 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;
}
// C calling interface.
function ccall(ident, returnType, argTypes, args, opts) {
// For fast lookup of conversion functions
var toC = {
'string': 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;
},
'array': function(arr) {
var ret = stackAlloc(arr.length);
writeArrayToMemory(arr, ret);
return ret;
}
};
function convertReturnValue(ret) {
if (returnType === 'string') return UTF8ToString(ret);
if (returnType === 'boolean') return Boolean(ret);
return ret;
}
var func = getCFunc(ident);
var cArgs = [];
var stack = 0;
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) {
argTypes = argTypes || [];
// When the function takes numbers and returns a number, we can just return
// the original function
var numericArgs = argTypes.every(function(type){ return type === 'number'});
var numericRet = returnType !== 'string';
if (numericRet && numericArgs && !opts) {
return getCFunc(ident);
}
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);
}
}
var ALLOC_NORMAL = 0; // Tries to use _malloc()
var ALLOC_STACK = 1; // Lives for the duration of the current function call
var ALLOC_DYNAMIC = 2; // Cannot be freed except through sbrk
var ALLOC_NONE = 3; // 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 = [_malloc,
stackAlloc,
dynamicAlloc][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;
}
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 (!runtimeInitialized) return dynamicAlloc(size);
return _malloc(size);
}
/** @type {function(number, number=)} */
function Pointer_stringify(ptr, length) {
abort("this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!");
}
// 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 = HEAPU8[((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;
/**
* @param {number} idx
* @param {number=} maxBytesToRead
* @return {string}
*/
function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {
var endIdx = idx + maxBytesToRead;
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.
// (As a tiny code save trick, compare endPtr against endIdx using a negation, so that undefined means Infinity)
while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr;
if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {
return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));
} else {
var str = '';
// If building with TextDecoder, we have already computed the string length above, so test loop end condition against that
while (idx < endPtr) {
// For UTF8 byte structure, see:
// http://en.wikipedia.org/wiki/UTF-8#Description
// https://www.ietf.org/rfc/rfc2279.txt
// https://tools.ietf.org/html/rfc3629
var u0 = u8Array[idx++];
if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
var u1 = u8Array[idx++] & 63;
if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
var u2 = u8Array[idx++] & 63;
if ((u0 & 0xF0) == 0xE0) {
u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
} else {
u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (u8Array[idx++] & 63);
}
if (u0 < 0x10000) {
str += String.fromCharCode(u0);
} else {
var ch = u0 - 0x10000;
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
}
}
}
return str;
}
// 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.
// maxBytesToRead: an optional length that specifies the maximum number of bytes to read. You can omit
// this parameter to scan the string until the first \0 byte. If maxBytesToRead is
// passed, and the string at [ptr, ptr+maxBytesToReadr[ contains a null byte in the
// middle, then the string will cut short at that byte index (i.e. maxBytesToRead will
// not produce a string of exact length [ptr, ptr+maxBytesToRead[)
// N.B. mixing frequent uses of UTF8ToString() with and without maxBytesToRead may
// throw JS JIT optimizations off, so it is worth to consider consistently using one
// style or the other.
/**
* @param {number} ptr
* @param {number=} maxBytesToRead
* @return {string}
*/
function UTF8ToString(ptr, maxBytesToRead) {
return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';
}
// 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) {
var u1 = str.charCodeAt(++i);
u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 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 (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);
}
}
// 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) {
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 len += 4;
}
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) {
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) {
// 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) {
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) {
// 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;
}
// 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) {
HEAP8.set(array, buffer);
}
function writeAsciiToMemory(str, buffer, dontAddNull) {
for (var i = 0; i < str.length; ++i) {
HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
}
// Null-terminate the pointer to the HEAP.
if (!dontAddNull) HEAP8[((buffer)>>0)]=0;
}
function demangle(func) {
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 : (y + ' [' + x + ']');
});
}
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;
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 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 = 8,
STACK_BASE = 1408592,
STACKTOP = STACK_BASE,
STACK_MAX = 6651472,
DYNAMIC_BASE = 6651472,
DYNAMICTOP_PTR = 1408320;
var TOTAL_STACK = 5242880;
var INITIAL_TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
if (INITIAL_TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');
// Initialize the runtime's memory
// Use a provided buffer, if there is one, or else allocate a new one
if (Module['buffer']) {
buffer = Module['buffer'];
} else {
// Use a WebAssembly memory where available
{
buffer = new ArrayBuffer(INITIAL_TOTAL_MEMORY);
}
}
updateGlobalBufferViews();
HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;
// Endianness check (note: assumes compiler arch was 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() {
if (runtimeInitialized) return;
runtimeInitialized = true;
if (!Module["noFSInit"] && !FS.init.initialized) FS.init();
TTY.init();
SOCKFS.root = FS.mount(SOCKFS, {}, null);
callRuntimeCallbacks(__ATINIT__);
}
function preMain() {
FS.ignorePermissions = false;
callRuntimeCallbacks(__ATMAIN__);
}
function exitRuntime() {
runtimeExited = true;
}
function postRun() {
// 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) {
}
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb);
}
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;
}
// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 )
if (!Math.imul || Math.imul(0xffffffff, 5) !== -5) Math.imul = function imul(a, b) {
var ah = a >>> 16;
var al = a & 0xffff;
var bh = b >>> 16;
var bl = b & 0xffff;
return (al*bl + ((ah*bl + al*bh) << 16))|0;
};
if (!Math.clz32) Math.clz32 = function(x) {
var n = 32;
var y = x >> 16; if (y) { n -= 16; x = y; }
y = x >> 8; if (y) { n -= 8; x = y; }
y = x >> 4; if (y) { n -= 4; x = y; }
y = x >> 2; if (y) { n -= 2; x = y; }
y = x >> 1; if (y) return n - 2;
return n - x;
};
if (!Math.trunc) Math.trunc = function(x) {
return x < 0 ? Math.ceil(x) : Math.floor(x);
};
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
// Module.preRun (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
function getUniqueRunDependency(id) {
return id;
}
function addRunDependency(id) {
runDependencies++;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
}
function removeRunDependency(id) {
runDependencies--;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
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;
// Copyright 2017 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
// University of Illinois/NCSA Open Source License. Both these licenses can be
// found in the LICENSE file.
// 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;
}
// === Body ===
var ASM_CONSTS = [function($0, $1, $2) { var data = HEAPU8.subarray($1, $1 + $2); var blob = new Blob([data], { type: 'application/octet-stream' }); var name = UTF8ToString($0); if (window.navigator.msSaveBlob) { window.navigator.msSaveBlob(blob, name); return; } var url = window.URL.createObjectURL(blob); var elem = document.createElement('a'); elem.href = url; elem.download = name; elem.style.display = 'none'; document.body.appendChild(elem); elem.click(); document.body.removeChild(elem); window.URL.revokeObjectURL(url); },
function() { FS.syncfs(false, function(err) { if (err) console.log(err); }); },
function($0) { window.open(UTF8ToString($0)); },
function() { Module['websocket']['subprotocol'] = 'ClassiCube'; },
function() { Module['canvas'].style['cursor'] = 'default'; },
function() { Module['canvas'].style['cursor'] = 'none'; },
function($0, $1) { alert(UTF8ToString($0) + "\n\n" + UTF8ToString($1)); },
function() { return screen.width; },
function() { return screen.height; },
function() { window.addEventListener('copy', function(e) { if (window.getSelection && window.getSelection().toString()) return; if (window.cc_copyText) { if (e.clipboardData) { e.clipboardData.setData('text/plain', window.cc_copyText); } else { window.clipboardData.setData('Text', window.cc_copyText); } e.preventDefault(); window.cc_copyText = null; } }); },
function() { window.addEventListener('paste', function(e) { var contents = e.clipboardData ? e.clipboardData.getData('text/plain') : window.clipboardData.getData('Text'); ccall('Window_GotClipboardText', 'void', ['string'], [contents]); }); },
function() { return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); },
function($0) { document.title = UTF8ToString($0); },
function($0) { window.cc_copyText = UTF8ToString($0); },
function() { var elem = window.cc_inputElem; if (!elem) { elem = document.createElement('textarea'); elem.setAttribute('style', 'position:absolute; left:0; top:0; width:100%; height:100%; opacity:0.3; resize:none; pointer-events:none;'); elem.addEventListener("input", function(ev) { ccall('Window_OnTextChanged', 'void', ['string'], [ev.target.value]); }, false); window.cc_inputElem = elem; document.body.appendChild(elem); } elem.focus(); elem.click(); },
function($0) { if (!window.cc_inputElem) return; var str = UTF8ToString($0); if (str == window.cc_inputElem.value) return; window.cc_inputElem.value = str; },
function() { if (!window.cc_inputElem) return; document.body.removeChild(window.cc_inputElem); window.cc_inputElem = null; }];
function _emscripten_asm_const_i(code) {
return ASM_CONSTS[code]();
}
function _emscripten_asm_const_iii(code, a0, a1) {
return ASM_CONSTS[code](a0, a1);
}
function _emscripten_asm_const_ii(code, a0) {
return ASM_CONSTS[code](a0);
}
function _emscripten_asm_const_iiii(code, a0, a1, a2) {
return ASM_CONSTS[code](a0, a1, a2);
}
// STATICTOP = STATIC_BASE + 1408584;
/* global initializers */ __ATINIT__.push({ func: function() { ___emscripten_environ_constructor() } });
memoryInitializer = "data:application/octet-stream;base64,AAAAAAAAAAACAgECAgMEAgMEAgEBAgIBAgQDAgQDAgIBAgMBBAMDBAEDAgEAAAAAAAAAAAAAAAABAAAAAAAAAAMAAAABAAAAAgAAAAAAAAAEAAAAAAAAAAABAAIQBA8RDg4eHhITICEiFRYwMUBBQkNERUZHSElKS0xNTk8NDB0cGBcGBgcJBCQlEAsZMiZQUVJTVDM2Vho1NAAAAAAAAAAAAAAAAAAAAAECAhAEDxEODh4eEhMgISIVFjAxQEFCQ0RFRkdISUpLTE1OTw0MHRw4NwYGBwoEJCUQCzkyJlBRUlNUMzZWOjU0AAAAAAAAAAAAAAAAAAAAAQMCEAQPEQ4OHh4SEyAhIhQWMDFAQUJDREVGR0hJSktMTU5PDQwdHCgnBQUHCCMkJRALKTImUFFSU1QzNlYqNTQAAAAAAAAAAAAAAAAAAAABAAABAAABAQEBAQAAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEAAAEBAQABAAAAAAAAAAABAQEBAQAAAAAAAAAAAAAAAAAA/////wEAAADu////EgAAALz+//9EAQAAAAAAAAAAAAAHDhwAwIEDB/8BAAAAAPwHSZIkASRJkgQAAAAAAAAAABBQAgAAAEAAUFACAAAAQACQUAIAAABAANBQAgAAAEAAEFECAAAAQABQUQIAAABAAJBRAgAAAEAAAAAAAAAAAADQUQIAAABAABBSAgAAAEAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQERIACAcJBgoFCwQMAw0CDgEPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQICAgIDAwMDBAQEBAUFBQUAAAAAAwAEAAUABgAHAAgACQAKAAsADQAPABEAEwAXABsAHwAjACsAMwA7AEMAUwBjAHMAgwCjAMMA4wACAQAAAAAAAAAAAAABAQICAwMEBAUFBgYHBwgICQkKCgsLDAwNDQAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAAAMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgH//wAAAAABAAIAAwAEAAUABwAJAA0AEQAZACEAMQBBAGEAgQDBAAEBgQEBAgEDAQQBBgEIAQwBEAEYASABMAFAAWD//wAAJX0VAAAAAAA5VwAABQAFAD9XAAAaABoAWlcAAAsACwBmVwAADwAPAHZXAAARABEAiFcAAAkACQCSVwAAEAAQAKNXAAAGAAYAAAAAAAAAAAC4ZQAAqlcAALJXAAC2VwAAwVcAAAAAAAAAAAAAAAAAALhlAADNVwAA2VcAAOBXAAAAAIC/AACAvwAAgL8AAAAAAACAPgAAgD8AAIA/AACAvwAAgL8AAAAAAAAAPwAAgD8AAIA/AACAPwAAgL8AAAAAAAAAPwAAAD8AAIC/AACAPwAAgL8AAAAAAACAPgAAAD8AAIC/AACAvwAAgD8AAAAAAAAAAAAAgD8AAIC/AACAvwAAgL8AAAAAAACAPgAAgD8AAIC/AACAPwAAgL8AAAAAAACAPgAAAD8AAIC/AACAPwAAgD8AAAAAAAAAAAAAAD8AAIA/AACAvwAAgD8AAAAAAABAPwAAgD8AAIC/AACAvwAAgD8AAAAAAACAPwAAgD8AAIC/AACAPwAAgD8AAAAAAACAPwAAAD8AAIA/AACAPwAAgD8AAAAAAABAPwAAAD8AAIA/AACAvwAAgL8AAAAAAAAAPwAAgD8AAIA/AACAvwAAgD8AAAAAAABAPwAAgD8AAIA/AACAPwAAgD8AAAAAAABAPwAAAD8AAIA/AACAPwAAgL8AAAAAAAAAPwAAAD8AAIA/AACAPwAAgL8AAAAAAAAAPwAAAD8AAIA/AACAPwAAgD8AAAAAAAAAPwAAAAAAAIC/AACAPwAAgD8AAAAAAACAPgAAAAAAAIC/AACAPwAAgL8AAAAAAACAPgAAAD8AAIA/AACAvwAAgL8AAAAAAABAPwAAAD8AAIA/AACAvwAAgD8AAAAAAABAPwAAAAAAAIC/AACAvwAAgD8AAAAAAAAAPwAAAAAAAIC/AACAvwAAgL8AAAAAAAAAPwAAAD8KAAxDbGFzc2ljV29ybGQBAA1Gb3JtYXRWZXJzaW9uAQcABFVVSUQAAAAQAAAAAAAAAAAAAAAAAAAAAAIAAVgAAAIAAVkAAAIAAVoAAAoABVNwYXduAgABWAAAAgABWQAAAgABWgAAAQABSAABAAFQAAAHAApCbG9ja0FycmF5AAAAAAAAAAAAAAAAAAAAAAAHAAtCbG9ja0FycmF5MgAAAAAAAAAAAAAAAAAAAAAAAAoACE1ldGFkYXRhCgADQ1BFCgANQ2xpY2tEaXN0YW5jZQIACERpc3RhbmNlAAAACgAORW52V2VhdGhlclR5cGUBAAtXZWF0aGVyVHlwZQAACgAJRW52Q29sb3JzCgADU2t5AgABUgAAAgABRwAAAgABQgAAAAoABUNsb3VkAgABUgAAAgABRwAAAgABQgAAAAoAA0ZvZwIAAVIAAAIAAUcAAAIAAUIAAAAKAAdBbWJpZW50AgABUgAAAgABRwAAAgABQgAAAAoACFN1bmxpZ2h0AgABUgAAAgABRwAAAgABQgAAAAAKABBFbnZNYXBBcHBlYXJhbmNlAQAJU2lkZUJsb2NrAAEACUVkZ2VCbG9jawACAAlTaWRlTGV2ZWwAAAgAClRleHR1cmVVUkwAAAAKABBCbG9ja0RlZmluaXRpb25zAAAAAAAAAAAAAAAAAAoACUJsb2NrAAAAAAEAAklEAAIAA0lEMgAAAQALQ29sbGlkZVR5cGUABQAFU3BlZWQAAAAABwAIVGV4dHVyZXMAAAAMAAAAAAAAAAAAAAAAAQAOVHJhbnNtaXRzTGlnaHQAAQAJV2Fsa1NvdW5kAAEACkZ1bGxCcmlnaHQAAQAFU2hhcGUAAQAJQmxvY2tEcmF3AAcAA0ZvZwAAAAQAAAAABwAGQ29vcmRzAAAABgAAAAAAAAgABE5hbWUAAAAAADhcAABDXAAATlwAAFlcAABlXAAAcVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMWUAABYAFgBIZQAAIgAiAGtlAAAXABcASGUAACIAIgC4ZQAAvWUAAMBlAADDZQAAxmUAAMllAADMZQAAz2UAANJlAADVZQAA2GUAANxlAADgZQAA5GUAAOhlAADsZQAA8GUAAPRlAAD4ZQAA/GUAAABmAAAEZgAACGYAAAxmAAAQZgAAFGYAABhmAAAcZgAAIGYAACRmAAAoZgAALGYAADBmAAA0ZgAAOGYAADxmAABAZgAASmYAAFVmAABhZgAAbmYAAHZmAAB/ZgAAh2YAAJBmAACTZgAA73sAAPR7AACYZgAAoGYAAKhmAACwZgAAuGYAAMBmAADIZgAA0GYAANhmAADgZgAA6GYAAC6OAADvZgAA9GYAAPhmAAD/ZgAAy4UAAAhnAAAKZwAADGcAAA5nAAAQZwAAEmcAABRnAAAWZwAAGGcAABpnAAAcZwAAHmcAACBnAAAiZwAAJGcAACZnAAAoZwAAKmcAACxnAAAuZwAAMGcAADJnAAA0ZwAANmcAADhnAAA6ZwAAPGcAAEJnAABJZwAAT2cAAFlnAABdZwAAZmcAAHFnAAB9ZwAAg2cAAItnAACTZwAAm2cAAKNnAACrZwAAs2cAALtnAADDZwAAy2cAANNnAADbZwAA6GcAAPdnAAAGaAAAEGgAAB5oAAAqaAAAMGgAADZoAAA7aAAAR2gAAFRoAABaaAAAZGgAAGpoAABwaAAAd2gAAIFoAACKaAAAk2gAAJ1oAACoaAAAAAAAAAAAAAAAAAAAV1NBRF1SW1RCRltfJFhaUUUoAwwLBQEHQyaChIMGKAhHCgAAAAAAAAAAAAAAAAAAAFwxMjM0NTY3ODkwdndeX1FXRVJUWVVJT1B4eVsmQVNERkdISktMe3x1JH9aWENWQk5NfX56JQAoXWABAgMEBQYHCAkKZGFsbW5xaWprcmZnaGVzAAAACwwAAAAAAAAAAAAAAA0ODxAREgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAAAAAAAAAAAAAAAAdCcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8AACkAAAAAAAAAAAAAAABjADwsPgAuAC8APS0/OjsAAAAAAAAAKisAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANR7AADcewAA73sAAPR7AABEjgAAHH4AALtoAADhewAAEn4AAMRoAADOaAAA12gAAKh7AADiaAAAwHsAAOloAADvaAAA92gAAABpAACYfQAAo30AAAhpAAAUaQAAHGkAACZpAAA0aQAAPmkAAEppAABUaQAAX2kAAGppAAB6aQAAh2kAAJFpAACbaQAAAAAAAAgAEAAgAEAAgAAAAQACAAQACAAQAAAAAAAAAAAAAAAAAQQtAwUREhQsMAYlJicoDA0TFRYXGBkaGxwdHh8gISIjJBAPDiopLy4xAAAAAAAAAQIELQMFBwgJCgsREhQsMAYlJicoDA0TFRYXGBkaGxwdHh8gISIjJBAPDisqKS8uMQAAAAAAAAAAAAAAAAAAAARbEwBUWxMApFsTAPRbEwBEXBMAlFwTAORcEwCsXRMA8F0TADRdEwAAAAAAAAAAAAAAAACc////EnAAAAoAAAAAAAAAzv///x1wAAALAAAAAAAAAAAAAAAzcAAADAAAAAAAAAAyAAAAQXAAAA0AAAAAAAAAlgAAAAt2AAAOAAAAYP///87///8ScAAADwAAAKAAAADO////HXAAABAAAACgAAAAAAAAADNwAAAMAAAAoAAAADIAAABBcAAADQAAAGD///8AAAAAT3AAABEAAABg////MgAAAGZwAAASAAAAYP///5z///+qdQAAEwAAAGD////O////unUAABQAAABg////AAAAAMl1AAAVAAAAYP///zIAAADddQAAFgAAAKAAAADO////6XUAABcAAACgAAAAAAAAAPt1AAAYAAAAoAAAADIAAAALdgAADgAAAGV0AACLdAAAvnQAAO90AAAkdQAATXUAAHt1AAAAAAAA//9q/zR2AAAZAAAALQAAAC4AAAD//5z/R3YAABkAAAAvAAAAMAAAAP//zv9ZdgAAGQAAADEAAAAyAAAA//8AAG52AAAZAAAAMwAAADQAAAD//zIAgnYAABkAAAA1AAAANgAAAAEAav+SdgAAGQAAADcAAAA4AAAAAQCc/6Z2AAAZAAAAOQAAADoAAAABAM7/rnYAABkAAAA7AAAAPAAAAP//av+OdwAAGgAAAD0AAAA+AAAA//+c/5l3AAAaAAAAPwAAAEAAAAD//87/oXcAABoAAABBAAAAQgAAAP//AACpdwAAGgAAAEMAAABEAAAA//8yALZ3AAAaAAAARQAAAEYAAAABAGr/xHcAABoAAABHAAAASAAAAAEAnP/RdwAAGgAAAEkAAABKAAAAAQDO/9x3AAAbAAAASwAAAEwAAAABAAAA5HcAABoAAABNAAAATgAAAAEAMgD0dwAAGgAAAE8AAABQAAAAAAAAAAAAAAD//2r/83kAABkAAABRAAAAUgAAAP//nP8BegAAGgAAAFMAAABUAAAA///O/xJ6AAAZAAAAVQAAAFYAAAD//wAAInoAABoAAABXAAAAWAAAAP//MgAuegAAGQAAAFkAAABaAAAAAQBq/z56AAAZAAAAWwAAAFwAAAABAJz/UnoAABkAAABdAAAAXgAAAAEAzv9kegAAGQAAAF8AAABgAAAAAQAAAHV6AAAZAAAAYQAAAGIAAAABADIAgnoAABoAAABjAAAAZAAAAAAAAAAAAAAA1HsAANx7AABEjgAA4XsAAPx9AAAGfgAA73sAAPR7AAASfgAAAHwAABx+AAAkfgAAvXwAALd8AACwfAAArHwAAP//av8UfAAAGQAAAGoAAABrAAAA//+c/xp8AAAZAAAAbAAAAG0AAAD//87/J3wAABsAAABuAAAAbwAAAP//AAA3fAAAGQAAAHAAAABxAAAAAQBq/0V8AAAZAAAAcgAAAHMAAAABAJz/S3wAABkAAAB0AAAAdQAAAAEAzv9UfAAAGQAAAHYAAAB3AAAAAQAAAGF8AAAbAAAAeAAAAHkAAAAAADwA83kAABkAAAB6AAAAewAAAAAAAAAAAAAAAAAAANR7AADcewAARI4AAOF7AADmewAA73sAAPR7AAD6ewAAAHwAAAt8AAAAAAAAAAAAAKh7AACuewAAtXsAAMB7AADEewAAy3sAAAAAAAAAAAAAqHsAAK57AAC1ewAA430AAMB7AADEewAAy3sAAO99AABbfQAAan0AAHN9AAB8fQAAjX0AAJh9AACjfQAArn0AAL59AADKfQAA2H0AAFJ6AAD//87/YXwAABsAAAB4AAAAeQAAAP//AACfgQAAGgAAAHwAAAB9AAAA//8yAK2BAAAZAAAAfgAAAH8AAAABAM7/v4EAABsAAACAAAAAgQAAAAEAAADFgQAAGwAAAIIAAACDAAAAAQAyAM2BAAAZAAAAhAAAAIUAAAAAAAAAAAAAAP//av8LggAAGQAAAIYAAACHAAAA//+c/0t8AAAZAAAAiAAAAIkAAAD//87/HoIAABoAAACKAAAAiwAAAP//AAArggAAGgAAAIwAAACNAAAA//8yADuCAAAZAAAAjgAAAI8AAAABAGr/TYIAABkAAACQAAAAkQAAAAEAnP9cggAAGgAAAJIAAACTAAAAAQDO/2eCAAAaAAAAlAAAAJUAAAABAAAAcoIAABkAAACWAAAAlwAAAAEAMgCCggAAHAAAAAAAAAAAAAAAAAAAAAAAAAD//5z/SYMAABoAAACYAAAAmQAAAP//zv9YgwAAGgAAAJoAAACbAAAA//8AAGWDAAAaAAAAnAAAAJ0AAAD//zIAVHwAABkAAACeAAAAnwAAAAEAnP83fAAAGQAAAKAAAAChAAAAAQDO/3ODAAAZAAAAogAAAKMAAAABAAAAGnwAABkAAACkAAAApQAAAAEAMgCHgwAAGgAAAKYAAACnAAAACHUTAFh1EwCodRMA+HUTAEh2EwCYdhMA6HYTADh3EwB8dxMAAAAAAAAAAAAAAAAAoH0TAPB9EwBAfhMAkH4TAHSAEwC4gBMA/IATAECBEwDUfxMAJIATAAAAAAAAAAAA/IMTAECEEwCEhBMAyIQTALyCEwAMgxMAXIMTAKyDEwBg////zv///+F7AAAdAAAAYP///wAAAACoewAAHgAAAGD///8yAAAAwHsAAB8AAABg////ZAAAAMuFAAAgAAAAoAAAAM7///8SfgAAIQAAAKAAAAAAAAAAo30AACIAAACgAAAAMgAAAK57AAAjAAAAoAAAAGQAAADQhQAAJAAAAAAAAQAAAgEAAgEAAQMAAQMAAgIAAgIAAQAAAAAAAQMAAQMAAAAAAwAAAgMAAgMAAwADAQADAgEDAgEDAQMDAQMDAgIDAgIDAQADAAADAQMDAQMDAAADAwADAgMDAgMDAwABAAACAAACAQABAQABAwACAwACAgABAgAAAAABAAABAwAAAwADAAACAAACAwADAwMBAAMCAAMCAQMBAQMBAwMCAwMCAgMBAgMAAAMBAAMBAwMAAwMDAAMCAAMCAwMDAwABAAACAAECAAEBAAMBAAMCAAICAAIBAAAAAAABAAMBAAMAAAADAAACAAMCAAMDAAABAwACAwECAwEBAwMBAwMCAwICAwIBAwAAAwABAwMBAwMAAwADAwACAwMCAwMDAzeKAABFigAAYIkAAFKKAABbigAAd4kAAGaKAABwigAAhYkAAICKAACiiQAAjIoAAGqJAACbigAAlokAAMKJAACziQAAJooAAMyJAACnigAAt4oAAMKKAADPigAA4IkAAPOJAADeigAA7YoAAP6JAAD5igAAA4sAABGLAAAGigAAF4oAAAAAAAAAAAAAAAAAADuOAAACKAoAWgAAAD2OAAADKJYAWgAAAD+OAAAAKFAAMgAAAEGOAAABKFAAggAAAESOAAAEZDIAMgAAACV9FQAjZDIAWgAAAEmOAAAjZDIAggAAAAAAAAAAAAAAAAAAABQeFQBkHhUAtB4VAAQfFQBUHxUApB8VAPQfFQAAAAAAAAAAAAABAQABAQAAAAEAAAEBAQEBAQEAAAAAAAEAAQEAAQAAAAABAAEBAQEBAQABAAAAAAEAAAEBAAABAQAAAQEAAQEBAQABAAAAAAAAAAAAAAABAAABAAABAAEBAAEAAAEAAAEAAAAAAQABAQABAQABAQEBAQEAAQEAAQEAAQAAAAAAAQABAAABAQABAAEBAQEAAAEAAQEAAAAAAAAAAAAAOiY7JmUmZiZjJmAmIiDYJcsl2SVCJkAmaiZrJjwmuiXEJZUhPCC2AKcArCWoIZEhkyGSIZAhHyKUIbIlvCUCI8cA/ADpAOIA5ADgAOUA5wDqAOsA6ADvAO4A7ADEAMUAyQDmAMYA9AD2APIA+wD5AP8A1gDcAKIAowClAKcgkgHhAO0A8wD6APEA0QCqALoAvwAQI6wAvQC8AKEAqwC7AJElkiWTJQIlJCVhJWIlViVVJWMlUSVXJV0lXCVbJRAlFCU0JSwlHCUAJTwlXiVfJVolVCVpJWYlYCVQJWwlZyVoJWQlZSVZJVglUiVTJWslaiUYJQwliCWEJYwlkCWAJbED3wCTA8ADowPDA7UAxAOmA5gDqQO0Ax4ixgO1AykiYSKxAGUiZCIgIyEj9wBIIrAAGSK3ABoifyCyAKAloAAAAAAAAAAAAAAAAAAAAAAAAACWMAd3LGEO7rpRCZkZxG0Hj/RqcDWlY+mjlWSeMojbDqS43Hke6dXgiNnSlytMtgm9fLF+By2455Edv5BkELcd8iCwakhxufPeQb6EfdTaGuvk3W1RtdT0x4XTg1aYbBPAqGtkevli/ezJZYpPXAEU2WwGY2M9D/r1DQiNyCBuO14QaUzkQWDVcnFnotHkAzxH1ARL/YUN0mu1CqX6qLU1bJiyQtbJu9tA+bys42zYMnVc30XPDdbcWT3Rq6ww2SY6AN5RgFHXyBZh0L+19LQhI8SzVpmVus8Ppb24nrgCKAiIBV+y2QzGJOkLsYd8by8RTGhYqx1hwT0tZraQQdx2BnHbAbwg0pgqENXviYWxcR+1tgal5L+fM9S46KLJB3g0+QAPjqgJlhiYDuG7DWp/LT1tCJdsZJEBXGPm9FFra2JhbBzYMGWFTgBi8u2VBmx7pQEbwfQIglfED/XG2bBlUOm3Euq4vot8iLn83x3dYkkt2hXzfNOMZUzU+1hhsk3OUbU6dAC8o+Iwu9RBpd9K15XYPW3E0aT79NbTaulpQ/zZbjRGiGet0Lhg2nMtBETlHQMzX0wKqsl8Dd08cQVQqkECJxAQC76GIAzJJbVoV7OFbyAJ1Ga5n+Rhzg753l6YydkpIpjQsLSo18cXPbNZgQ20LjtcvbetbLrAIIO47bazv5oM4rYDmtKxdDlH1eqvd9KdFSbbBIMW3HMSC2PjhDtklD5qbQ2oWmp6C88O5J3/CZMnrgAKsZ4HfUSTD/DSowiHaPIBHv7CBmldV2L3y2dlgHE2bBnnBmtudhvU/uAr04laetoQzErdZ2/fufn5776OQ763F9WOsGDoo9bWfpPRocTC2DhS8t9P8We70WdXvKbdBrU/SzaySNorDdhMGwqv9koDNmB6BEHD72DfVd9nqO+ObjF5vmlGjLNhyxqDZryg0m8lNuJoUpV3DMwDRwu7uRYCIi8mBVW+O7rFKAu9spJatCsEarNcp//XwjHP0LWLntksHa7eW7DCZJsm8mPsnKNqdQqTbQKpBgmcPzYO64VnB3ITVwAFgkq/lRR6uOKuK7F7OBu2DJuO0pINvtXlt+/cfCHf2wvU0tOGQuLU8fiz3Whug9ofzRa+gVsmufbhd7Bvd0e3GOZaCIhwag//yjsGZlwLARH/nmWPaa5i+NP/a2FFz2wWeOIKoO7SDddUgwROwrMDOWEmZ6f3FmDQTUdpSdt3bj5KatGu3FrW2WYL30DwO9g3U668qcWeu95/z7JH6f+1MBzyvb2KwrrKMJOzU6ajtCQFNtC6kwbXzSlX3lS/Z9kjLnpms7hKYcQCG2hdlCtvKje+C7ShjgzDG98FWo3vAi1UISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAN9MAAAHAAcA9W8AAAUABQBQyQUAAABAANGTAAALAAsAAAAAAAAA0D8BAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAABAAAAAAAAAAAAAAAAAAAAAAAAAD/AAD/AAD//wD/AP8FAAAABgAAAAcAAAAAAAAAAAAAAAAAAAAAAAA/AAAAAAAAAD/wSgAA7gHuAQgAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAQEAAAEBAAAAAAAEAAAACAAAAAwAAAAEAAAABAAAAAQAAAAoAAAALAAAABAAAAAEAAAAAAAAAAQAAAAEAAAACAAAABQAAAAIAAAABAAAAAQAAAAoAAAALAAAABAAAAAIAAAAAAAAAAQAAAAEAAAACAAAABQAAAAIAAAABAAAAAQAAAAoAAAALAAAABAAAAAIAAAAAAAAAUFICAAAAQACQUgIADAAAAA0AAAAOAAAAAAAAAAAAAAAAAAAAAAEAAKlVAAACAAAAAAAAALFVAADDVQAAAAAAAAAAAAAAAAAAAAAAADBUAAADAAAAAAAAADVUAABTVAAAAAAAAAAAAAAAAAAAAAAAACtSAAAEAAAAAAAAADZSAABmUgAArFIAAAlTAABZUwAAAAAAADZRAAAFAAAAAAAAAEFRAABnUQAAAAAAAAAAAAAAAAAAAAAAAHJQAAAGAAAAAQAAAHhQAACPUAAAxVAAAAAAAAAAAAAAAAAAAJ1OAAAHAAAAAQAAAKROAADHTgAAAU8AADlPAABwTwAAAAAAAOtNAAAIAAAAAQAAAO5NAAADTgAAAAAAAAAAAAAAAAAAAAAAAGlNAAAJAAAAAAAAAHVNAACLTQAAAAAAAAAAAAAAAAAAAAAAAP////+2TwAAJAAkAPdVAAAIAAgA71UAAAcABwD3VQAACAAIAO9VAAAHAAcAkFoCAAAAQAAPAAAAEAAAABEAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA/AACAPwAAAAASAAAAEwAAAAAAAAAAAAAAAAAAAAMAAAAGAAAAAQAAAAEAAAABAAAABwAAABQAAAAVAAAAFgAAABcAAAAAAAAAAAAAAAQAAAAGAAAAAgAAAAEAAAACAAAACAAAAEKGAAAIAAgA/4UAAAUABQAAAIA8AAAAAAAAgDwPWQAABAAEAM3MTD/NzEw/zcxMPwAAAD8AAAA/AAAAPwAAAD+amVk/AAAAP1FZBOlRWQTpUVkE6RgAAAAZAAAAGgAAABoAAAAbAAAAAAAAALZxAAADAAMA51sAAAUABQBwxwUAAAAEAYDIBQAAAEAA5V0AAAsACwD/////EAAAABgAAAD/////AACAvwAAgL8kZAAAFgAWABwAAAAdAAAAHgAAAAAAAAAAAAAAAAAAAB8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAP+FAAAFAAUAH4XrPrgeBb/sUTi/KVwPP+xROL/sUTi/IQAAACIAAAAjAAAAAAAAAAAAAAAAAAAAoGUAAK5lAAAAAAAA/f/////////laQAABwAHAAAAgL8kAAAAAAAAACUAAAAAAAAAAAAAAAAAAAAAAAAAJgAAACYAAAAmAAAAJwAAAAAAAACvawAACQAAACgAAAApAAAAKgAAACoAAAArAAAAAAAAAFFZBGlRWQRpUVkEaf///3////9/////fwwAAAAKAAAABQAAAAsAAAAGAAAADAAAAAEAAAACAAAAAwAAAAQAAAABAAAAAgAAAAMAAAABAAAADQAAAA4AAAAPAAAAEAAAAAUAAAARAAAABwAAABIAAAAFAAAAAgAAAAMAAAAEAAAAAQAAAAIAAAADAAAAAgAAAA0AAAATAAAAFAAAAIpwAAAEAAQAhHAAAAUABQCAcAAAAwADABUAAAAFAAAAFgAAAAgAAAAXAAAABgAAAAIAAAAHAAAACAAAAAEAAAACAAAAAwAAAAIAAAANAAAAGAAAABkAAAB+iAAACAAIANqVAAAEAAQAGgAAAAUAAAAWAAAACQAAABsAAAAJAAAAAgAAAAoAAAALAAAAAQAAAAIAAAADAAAAAgAAAA0AAAAcAAAAHQAAALZxAAADAAMAeYgAAAQABAAeAAAABQAAABYAAAAHAAAAHwAAAAwAAAACAAAADQAAAA4AAAAEAAAAAgAAAAMAAAACAAAADQAAACAAAAAhAAAAIgAAAAUAAAAjAAAACgAAACQAAAAFAAAAAgAAAAMAAAAEAAAAAQAAAAIAAAAFAAAAAgAAAA0AAAAlAAAAJgAAACcAAAAFAAAAKAAAAAsAAAApAAAADwAAAAIAAAAQAAAAEQAAAAEAAAACAAAABgAAAAIAAAAqAAAAKwAAACwAAABlAAAABQAAAGYAAAAHAAAAZwAAABIAAAACAAAAAwAAAAQAAAABAAAAAgAAAAMAAAACAAAADQAAAGgAAABpAAAAN30AAER9AABPfQAAqAAAAAUAAABmAAAACgAAAKkAAAAFAAAAAgAAAAMAAAAEAAAAAQAAAAIAAAADAAAAAgAAAA0AAAATAAAAqgAAAKsAAAAFAAAAZgAAAAwAAACsAAAAEwAAABQAAAAVAAAAFgAAAAEAAAACAAAAAwAAAAIAAAANAAAArQAAAK4AAADrgwAACgAKAOmDAAABAAEArwAAAAUAAABmAAAACgAAALAAAAAFAAAAAgAAAAMAAAAEAAAAAQAAAAIAAAADAAAAAgAAAA0AAAATAAAAsQAAALIAAAANAAAAZgAAAAoAAACzAAAABQAAAAIAAAADAAAABAAAAAEAAAACAAAAAwAAAAIAAAANAAAAtAAAALUAAADflQAACAAIAOiVAAAHAAcAtgAAAAUAAABmAAAABwAAALcAAAAFAAAAAgAAAAMAAAAEAAAAAQAAAAIAAAADAAAAAgAAAA0AAAATAAAAuAAAACwAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAKaGAAAAAAAAAAAAAAAAAACahgAAAAAAAAAAAAAAAAAAjoYAAAAAAAAAAAAAAAAAAIaGAAAAAAAAAAAAAAAAAAB8hgAAAAAAAAAAAAAAAAAAboYAAAAAAAAAAAAAAAAAAGGGAAAAAAAAAAAAAAAAAABWhgAAAAAAAAAAAAAAAAAAS4YAAAAAAAAAAAAAAAAAAEKGAADQDgYA4DEAAC4AAAC5AAAAAQAAAAIAAAC6AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6hgAAUHkGAPAxAAAvAAAAvAAAAAMAAAAEAAAAvQAAAL4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMoYAAFBwBgAAMgAAMAAAAL8AAAAFAAAABgAAAMAAAADBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6GAABQZwYAEDIAADEAAADCAAAABwAAAAgAAADDAAAAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAohgAAUFUGACAyAAAyAAAAxQAAAAkAAAAKAAAAxgAAAMcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIYAAFBVBgAgMgAAMgAAAMgAAAAJAAAACgAAAMYAAADHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOGAABQTAYAQDIAADMAAADJAAAAAQAAAAIAAADKAAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMhgAA0EQGAFAyAAA0AAAAzAAAAAsAAAAMAAAAzQAAAM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYYAANAOBgBgMgAANQAAAM8AAAABAAAAAgAAALoAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+FAAAAAAAA4DEAADUAAADRAAAADQAAAA4AAADSAAAA0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5hQAA0CkGAOAxAAA2AAAA1AAAAA8AAAAQAAAA1QAAANYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9IUAANAOBgDgMQAANQAAANcAAAABAAAAEQAAANgAAADZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPCFAADQDgYA4DEAADUAAADaAAAAAQAAABIAAADbAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAAAAAAgL4AAAA/AACwPwAAgD6amQk/zcyQP5qZCT8AAIC+AAAAAAAAgL4AAIA+AAAAPwAAgD7NzPw+zcz8Ps3M/D4AAIC+AAAAAAAAgL4AAIA+AACAPwAAgD4zM5M+zcygPzMzkz4AAAAACAgIAAAAgL4AAEA/AACAvgAAgD4AAKA/AACAPgAAAAAAAFA/AAAAACAAAAAICAgAAACIvgAAPD8AAIi+AACIPgAAoj8AAIg+AAAAAAAAUD8AAAAAAABAPQAAQD0AAEA9/////5qZCT/NzOA/mpkJPwAAoL4AAAAAAAAwvwAAoD4AAEA/AABwPwAAcD8AAEA/AABwPyAABAAICAgAAACAvgAAgD4AADC/AACAPgAAQD8AAEC+AAAAAAAAAD8AAEC+AAAAAAYGBgAAAEC+AACgPgAAQD4AAEA+AAAwPwAAQL4AAAAAAACgPgAAAAAAAAwACggMAAAAoL4AAIA+AABAPgAAoD4AAEA/AABwPwAAAAAAAIA+AAAQPxIAAAAQAgIAAACYvwAA4D4AAIC9AABAvgAAED8AAIA9AABAvgAAAD8AAAAAEgAAABACAgAAAEA+AADgPgAAgL0AAJg/AAAQPwAAgD0AAEA+AAAAPwAAAAAAAIC+AAAAAAAAgL4AAIA+AAAAQAAAgD4AAAA/zczgPwAAAD8AAAAACAgIAAAAgL4AAMA/AACAvgAAgD4AAABAAACAPgAAAAAAAMA/AAAAABAAEAAIDAQAAACAvgAAQD8AAAC+AACAPgAAwD8AAAA+AAAAAAAAQD8AAAAAAAAQAAIMAgAAAIC9AAAAAAAAgL0AAEC+AABAPwAAgD0AAAAAAABAPwAAAAAAABAAAgwCAAAAgD0AAAAAAACAvQAAQD4AAEA/AACAPQAAAAAAAEA/AAAAACgAEAACDAIAAACAvgAAQD8AAIC9AADAvgAAwD8AAIA9AACgvgAAuD8AAAAAKAAQAAIMAgAAAIA+AABAPwAAgL0AAMA+AADAPwAAgD0AAKA+AAC4PwAAAAAAAMC+AAAAAAAAUL8AAMA+AAC4PwAAID8AACA/AACgPwAAID8AAAAABgYIAAAAQL4AAIA/AABgvwAAQD4AALA/AADAvgAAAAAAAJA/AAAAvxwACAAIBhAAAACAvgAAQD8AAAC/AACAPgAAkD8AAAA/AAAAAAAAQD8AAAAAAAAQAAQMBAAAAKC+AAAAAAAA4L4AAIC9AABAPwAAQL4AAAAAAABAPwAAoL4AABAABAwEAAAAgD0AAAAAAADgvgAAoD4AAEA/AABAvgAAAAAAAEA/AACgvgAAEAAEDAQAAACgvgAAAAAAAKA+AACAvQAAQD8AABA/AAAAAAAAQD8AAOA+AAAQAAQMBAAAAIA9AAAAAAAAoD4AAKA+AABAPwAAED8AAAAAAABAPwAA4D4AAAAABgYGAAAAYL4AAHg/AABIvwAAYD4AALQ/AACwvgAAAAAAAJA/AAAAvxwACAAIBhAAAADAvgAAKD8AACC/AADAPgAAnD8AACA/AAAAAAAAQD8AAAAAAAAQAAQGBAAAALC+AACwPgAA8L4AAAC9AABIPwAAIL4AAAAAAABAPwAAoL4AABAABAYEAAAAAD0AALA+AADwvgAAsD4AAEg/AAAgvgAAAAAAAEA/AACgvgAAEAAEBgQAAACwvgAAsD4AAJA+AAAAvQAASD8AABg/AAAAAAAAQD8AAOA+AAAQAAQGBAAAAAA9AACwPgAAkD4AALA+AABIPwAAGD8AAAAAAABAPwAA4D4AAKC+AAAAAAAAYL8AAKA+AACAPwAAED8AAGA/AABgPwAAYD8AAAAACAgIAAAAgL4AAAA/AABgvwAAgD4AAIA/AADAvgAAAAAAAEA/AADAvhwACAAKCBAAAACgvgAAwD4AAAC/AACgPgAAYD8AAAA/AAAAAAAAwD4AAAAAAAAQAAQGBAAAAKC+AAAAAAAA4L4AAIC9AADAPgAAQL4AAAAAAADAPgAAoL4AABAABAYEAAAAgD0AAAAAAADgvgAAoD4AAMA+AABAvgAAAAAAAMA+AACgvgAAEAAEBgQAAACgvgAAAAAAAKA+AACAvQAAwD4AABA/AAAAAAAAwD4AAOA+AAAQAAQGBAAAAIA9AAAAAAAAoD4AAKA+AADAPgAAED8AAAAAAADAPgAA4D4AAIC+AAAAAAAAwL4AAIA+AADQPwAAwD4AAAA/AADQPwAAAD8AAAAACAgIAAAAgL4AAJA/AACAvgAAgD4AANA/AACAPgAAAAAAAJA/AAAAABAAEAAIDAQAAACAvgAAwD4AAAC+AACAPgAAkD8AAAA+AAAAAAAAwD4AAAAAAAAQAAQGBAAAAIC+AAAAAAAAwL4AAAAAAADAPgAAAL4AAAAAAADAPgAAAL4AABAABAYEAAAAAAAAAAAAAADAvgAAgD4AAMA+AAAAvgAAAAAAAMA+AAAAvgAAEAAEBgQAAACAvgAAAAAAAAA+AAAAAAAAwD4AAMA+AAAAAAAAwD4AAAA+AAAQAAQGBAAAAAAAAAAAAAAAAD4AAIA+AADAPgAAwD4AAAAAAADAPgAAAD4AAIC+AAAAAAAAAL8AAIA+AABwPwAAgD4AAAA/AABAPwAAAD8AAAAABAYDAAAAAL4AABA/AADAvgAAAD4AAHA/AABAvgAAAAAAABA/AACAvg4ABAACAgIAAACAvQAAED8AAOC+AACAPQAAMD8AAKC+AAAAAAAAED8AAIC+DgAAAAQCAgAAAAC+AAAwPwAAAL8AAAA+AABQPwAAwL4AAAAAAAAQPwAAgL4AAAkABgYHAAAAQL4AAKA+AACAvgAAQD4AADA/AABAPgAAAAAAAKA+AAAAABgADQABBAYAAACAvgAA4D4AAEC+AABAvgAAMD8AAEA+AABAvgAAMD8AAAAAGAANAAEEBgAAAEA+AADgPgAAQL4AAIA+AAAwPwAAQD4AAEA+AAAwPwAAAAAAAAC/AAAAAAAAgL4AAAA/AAAAQAAAgD4AAAAACAgIAAAAgL4AAMA/AACAvgAAgD4AAABAAACAPgAAAAAAAMA/AAAAABAAEAAIDAQAAACAvgAAQD8AAAC+AACAPgAAwD8AAAA+AAAAAAAAQD8AAAAAIAAAAAgICAAAAJC+AAC8PwAAkL4AAJA+AAACQAAAkD4AAAAAAADAPwAAAAAQACAACAwEAAAAkL4AADg/AAAgvgAAkD4AAMQ/AAAgPgAAAAAAAEA/AAAAAAAAEAAEDAQAAAAAAAAAAAAAAAC+AACAvgAAQD8AAAA+AAAAAAAAQD8AAAAAAAAQAAQMBAAAAAAAAAAAAAAAAL4AAIA+AABAPwAAAD4AAAAAAABAPwAAAAAoABAABAwEAAAAgL4AAEA/AAAAvgAAAL8AAMA/AAAAPgAAoL4AALA/AAAAACgAEAAEDAQAAACAPgAAQD8AAAC+AAAAPwAAwD8AAAA+AACgPgAAsD8AAAAAEAAwAAQMBAAAAIC+AAAAAAAAAL4AAAAAAABAPwAAAD4AAAAAAABAPwAAAAAgADAABAwEAAAAAL8AAEA/AAAAvgAAgL4AAMA/AAAAPgAAoL4AALA/AAAAAAAAMAAEDAQAAACQvgAAAL0AACC+AAAAPQAASD8AACA+AAAAAAAAQD8AAAAAAAAgAAQMBAAAAAC9AAAAvQAAIL4AAJA+AABIPwAAID4AAAAAAABAPwAAAAAwADAABAwEAAAACL8AADg/AAAgvgAAYL4AAMQ/AAAgPgAAoL4AALA/AAAAACgAIAAEDAQAAABgPgAAOD8AACC+AAAIPwAAxD8AACA+AACgPgAAsD8AAAAA0pAAAAUABQDYkAAABAAEADcAAAA4AAAAOQAAADkAAAAAAAAAAAAAAAAAgDwAAOA9AAAgPQAAAD5wiAcAQAAAADoAAAA7AAAAAAAAAAAAAAAAAAAAAAAAAP///////////////83MzD3NzMw9zczMPQIAAABzAAAACwAAAPCTBwAAACAAAgAAAAIAAAA1iwAACQAJAEuPAAAfAB8AT4sAAA0ADQBCiwAADAAMAF2LAAAHAAcAqYsAABYAFgAhjAAABAAEAGYAAAAFAAAAZgAAAA4AAADdAAAAFAAAABQAAAAVAAAAFgAAAAcAAAAHAAAABwAAAAMAAABmAAAA3gAAAN8AAAC3jAAADwAPAKyMAAAKAAoA4AAAAAUAAADhAAAADwAAAOIAAAAXAAAAGAAAABkAAAAaAAAACAAAAAcAAAAHAAAABAAAAOMAAADkAAAA5QAAAK6VAAABAAEA5gAAAAUAAADnAAAAEAAAAOgAAAAbAAAAHAAAAAMAAAAEAAAACQAAAAoAAAALAAAABQAAAOkAAADqAAAA6wAAAO2eAAALAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHA9AABwPewAAAAFAAAA7QAAABEAAADuAAAAAgAAAAIAAAADAAAABAAAAAIAAAACAAAAAgAAAAIAAADvAAAA8AAAAPEAAADyAAAABQAAAO0AAAASAAAA7gAAAAIAAAACAAAAAwAAAAQAAAACAAAAAgAAAAcAAAACAAAA7wAAAPAAAADxAAAAfo0AABAAEABxjQAADAAMACaOAAAHAAcAHo4AAAcABwDzAAAAEwAAAPQAAAAUAAAA9QAAAAUAAAACAAAAAwAAAAQAAAAMAAAAAgAAAA0AAAACAAAADQAAAPYAAAD3AAAA2K8IABywCABwrwgA+AAAAAUAAABmAAAAFQAAAPkAAAAUAAAAFAAAABUAAAAWAAAADgAAAA8AAAAHAAAAAwAAAA0AAAD6AAAA+wAAADwAAAA9AAAAPgAAAD4AAAAAAAAAAAAAAD8AAABAAAAAQQAAAEIAAAAAAAAAAAAAAEuPAAAfAB8ALI8AAB4AHgAfjwAADAAMAAOPAAAbABsA7Z4AAAsACwCQjwAADQANAGuPAAAkACQA2I8AADgAOAAnkAAADAAMAEMAAABEAAAAAAAAAAAAAAAAAAAAAAAAANqVAAAEAAQA6JUAAAcABwDflQAACAAIAAAAgD8AAAAAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8lAAAAHQAAAB4AAAAfAAAAJgAAACcAAAAgAAAAIQAAACIAAAAoAAAAKQAAACAAAAAhAAAAIgAAACoAAAArAAAAIwAAACQAAAAlAAAALAAAAC0AAAAmAAAAJwAAACcAAAAqAAAALgAAACgAAAApAAAAKQAAACoAAAAWAAAA/AAAAP0AAAAqAAAAKgAAAAYAAAAQAAAAEAAAABEAAAAvAAAAKwAAABcAAAD+AAAA/wAAACoAAAAqAAAABgAAABAAAAAQAAAAEQAAADAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAArD4AAEg/AADUPgAAAAAAAAAAAAAAAAAAAAAAAIQ+AABIPwAArD4AAAAAAAAAAAAAAAAAAAAAAAA4PgAASD8AAIQ+GAAAAAABAAABAQAAKgAAACoAAAAHAAAAEgAAABMAAAAUAAAAAAAAAAAAAAAZAAAAAAEAAAIBAAAtAAAALgAAAAgAAAAVAAAAEAAAABEAAAAAAAAAAAAAABoAAAADAQAABAEAAC8AAAAqAAAACQAAABYAAAAXAAAAGAAAAAAAAAAAAAAALJcAAAEAAQAbAAAABQEAAAYBAAAwAAAAMQAAAAYAAAAZAAAAEAAAABEAAAAAAAAAAAAAABwAAAAFAQAABgEAADIAAAAxAAAABgAAABkAAAAQAAAAEQAAAAAAAAAAAAAALpcAAAIAAgAdAAAABwEAAAgBAAAqAAAAKgAAAAYAAAAQAAAAEAAAABEAAAAAAAAAAAAAAB4AAAAJAQAACgEAACoAAAAqAAAABgAAABAAAAAQAAAAEQAAAAAAAAAAAAAAHwAAAAsBAAAMAQAAKgAAACoAAAAGAAAAGgAAABAAAAARAAAAAAAAAAAAAAAZmAAABwAHABSYAAAEAAQA9JcAAB8AHwDrlwAACAAIALmXAAAxADEAsZcAAAcABwCPlwAAIQAhAImXAAAFAAUAWpcAAC4ALgAAAIA/AACAP8qeAADQngAA1p4AAFArCAAAAEAA7Z4AAAsACwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMfBUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAIACAAAACJmNNdXNpYyBpcyBub3Qgc3VwcG9ydGVkIGN1cnJlbnRseQAmY1NvdW5kcyBhcmUgbm90IHN1cHBvcnRlZCBjdXJyZW50bHkAYml0bWFwIGRhdGEAQWlyX1N0b25lX0dyYXNzX0RpcnRfQ29iYmxlc3RvbmVfV29vZF9TYXBsaW5nX0JlZHJvY2tfV2F0ZXJfU3RpbGwgd2F0ZXJfTGF2YV9TdGlsbCBsYXZhX1NhbmRfR3JhdmVsX0dvbGQgb3JlX0lyb24gb3JlX0NvYWwgb3JlX0xvZ19MZWF2ZXNfU3BvbmdlX0dsYXNzX1JlZF9PcmFuZ2VfWWVsbG93X0xpbWVfR3JlZW5fVGVhbF9BcXVhX0N5YW5fQmx1ZV9JbmRpZ29fVmlvbGV0X01hZ2VudGFfUGlua19CbGFja19HcmF5X1doaXRlX0RhbmRlbGlvbl9Sb3NlX0Jyb3duIG11c2hyb29tX1JlZCBtdXNocm9vbV9Hb2xkX0lyb25fRG91YmxlIHNsYWJfU2xhYl9Ccmlja19UTlRfQm9va3NoZWxmX01vc3N5IHJvY2tzX09ic2lkaWFuX0NvYmJsZXN0b25lIHNsYWJfUm9wZV9TYW5kc3RvbmVfU25vd19GaXJlX0xpZ2h0IHBpbmtfRm9yZXN0IGdyZWVuX0Jyb3duX0RlZXAgYmx1ZV9UdXJxdW9pc2VfSWNlX0NlcmFtaWMgdGlsZV9NYWdtYV9QaWxsYXJfQ3JhdGVfU3RvbmUgYnJpY2sASW52YWxpZAAtVUQALVdFAC1OUwAtRQAtUwAtVwAtTgAtVQAtRAAtTlcALU5FAC1TVwAtU0UAJmNUb28gbWFueSBwaHlzaWNzIGVudHJpZXMsIGNsZWFyaW5nAHBoeXNpY3MgdGljayBxdWV1ZQBjaHVuayB2ZXJ0aWNlcwBjaGF0LWxvZ2dpbmcAQ2xlYXJEZW5pZWQAJmEvY2xpZW50IGNsZWFyZGVuaWVkACZlQ2xlYXJzIHRoZSBsaXN0IG9mIHRleHR1cmUgcGFjayBVUkxzIHlvdSBoYXZlIGRlbmllZABSZW1vdmVkICZlJWkgJmZkZW5pZWQgdGV4dHVyZSBwYWNrIFVSTHMuAFRQACZhL2NsaWVudCB0cCBbeCB5IHpdACZlTW92ZXMgeW91IHRvIHRoZSBnaXZlbiBjb29yZGluYXRlcy4AJmUvY2xpZW50IHRlbGVwb3J0OiAmY1lvdSBkaWRuJ3Qgc3BlY2lmeSBYLCBZIGFuZCBaIGNvb3JkaW5hdGVzLgAmZS9jbGllbnQgdGVsZXBvcnQ6ICZjQ29vcmRpbmF0ZXMgbXVzdCBiZSBkZWNpbWFscwBDdWJvaWQAJmEvY2xpZW50IGN1Ym9pZCBbYmxvY2tdIFtwZXJzaXN0XQAmZUZpbGxzIHRoZSAzRCByZWN0YW5nbGUgYmV0d2VlbiB0d28gcG9pbnRzIHdpdGggW2Jsb2NrXS4AJmVJZiBubyBibG9jayBpcyBnaXZlbiwgdXNlcyB5b3VyIGN1cnJlbnRseSBoZWxkIGJsb2NrLgAmZSAgSWYgcGVyc2lzdCBpcyBnaXZlbiBhbmQgaXMgInllcyIsIHRoZW4gdGhlIGNvbW1hbmQAJmUgIHdpbGwgcmVwZWF0ZWRseSBjdWJvaWQsIHdpdGhvdXQgbmVlZGluZyB0byBiZSB0eXBlZCBpbiBhZ2Fpbi4AeWVzACZlQ3Vib2lkOiAmZlBsYWNlIG9yIGRlbGV0ZSBhIGJsb2NrLgAmZUN1Ym9pZDogJmMiJXMiIGlzIG5vdCBhIHZhbGlkIGJsb2NrIG5hbWUgb3IgaWQuACZlQ3Vib2lkOiAmY1RoZXJlIGlzIG5vIGJsb2NrIHdpdGggaWQgIiVzIi4AJmVDdWJvaWQ6ICZmTWFyayAxIHBsYWNlZCBhdCAoJWksICVpLCAlaSksIHBsYWNlIG1hcmsgMi4ATW9kZWwAJmEvY2xpZW50IG1vZGVsIFtuYW1lXQAmYm5hbWVzOiAmZWNoaWJpLCBjaGlja2VuLCBjcmVlcGVyLCBodW1hbiwgcGlnLCBzaGVlcAAmZSAgICAgICBza2VsZXRvbiwgc3BpZGVyLCB6b21iaWUsIHNpdCwgPG51bWVyaWNhbCBibG9jayBpZD4AJmUvY2xpZW50IG1vZGVsOiAmY1lvdSBkaWRuJ3Qgc3BlY2lmeSBhIG1vZGVsIG5hbWUuAFJlc29sdXRpb24AJmEvY2xpZW50IHJlc29sdXRpb24gW3dpZHRoXSBbaGVpZ2h0XQAmZVByZWNpc2VseSBzZXRzIHRoZSBzaXplIG9mIHRoZSByZW5kZXJlZCB3aW5kb3cuACZlL2NsaWVudDogJmZDdXJyZW50IHJlc29sdXRpb24gaXMgJWlAJWYyIHggJWlAJWYyACZlL2NsaWVudDogJmNXaWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgaW50ZWdlcnMuACZlL2NsaWVudDogJmNXaWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgYWJvdmUgMC4AUmVuZGVyVHlwZQAmYS9jbGllbnQgcmVuZGVydHlwZSBbbm9ybWFsL2xlZ2FjeS9sZWdhY3lmYXN0XQAmYm5vcm1hbDogJmVEZWZhdWx0IHJlbmRlcmVyLCB3aXRoIGFsbCBlbnZpcm9ubWVudGFsIGVmZmVjdHMgZW5hYmxlZC4AJmJsZWdhY3k6ICZlTWF5IGJlIHNsaWdodGx5IHNsb3dlciB0aGFuIG5vcm1hbCwgYnV0IHByb2R1Y2VzIHRoZSBzYW1lIGVudmlyb25tZW50YWwgZWZmZWN0cy4AJmJsZWdhY3lmYXN0OiAmZVNhY3JpZmljZXMgY2xvdWRzLCBmb2cgYW5kIG92ZXJoZWFkIHNreSBmb3IgZmFzdGVyIHBlcmZvcm1hbmNlLgAmYm5vcm1hbGZhc3Q6ICZlU2FjcmlmaWNlcyBjbG91ZHMsIGZvZyBhbmQgb3ZlcmhlYWQgc2t5IGZvciBmYXN0ZXIgcGVyZm9ybWFuY2UuACZlL2NsaWVudDogJmNZb3UgZGlkbid0IHNwZWNpZnkgYSBuZXcgcmVuZGVyIHR5cGUuACZlL2NsaWVudDogJmZSZW5kZXIgdHlwZSBpcyBub3cgJXMuACZlL2NsaWVudDogJmNVbnJlY29nbmlzZWQgcmVuZGVyIHR5cGUgJmYiJXMiJmMuAEhlbHAAJmEvY2xpZW50IGhlbHAgW2NvbW1hbmQgbmFtZV0AJmVEaXNwbGF5cyB0aGUgaGVscCBmb3IgdGhlIGdpdmVuIGNvbW1hbmQuACZlL2NsaWVudDogTXVsdGlwbGUgY29tbWFuZHMgZm91bmQgdGhhdCBzdGFydCB3aXRoOiAiJmYlcyZlIi4AJmUvY2xpZW50OiBVbnJlY29nbmlzZWQgY29tbWFuZDogIiZmJXMmZSIuACZlL2NsaWVudDogVHlwZSAmYS9jbGllbnQgJmVmb3IgYSBsaXN0IG9mIGNvbW1hbmRzLgAmZS9jbGllbnQ6ICImZiVzJmUiIGNhbiBvbmx5IGJlIHVzZWQgaW4gc2luZ2xlcGxheWVyLgAmZUxpc3Qgb2YgY2xpZW50IGNvbW1hbmRzOgAsIAAmZVRvIHNlZSBoZWxwIGZvciBhIGNvbW1hbmQsIHR5cGUgL2NsaWVudCBoZWxwIFtjbWQgbmFtZV0AR3B1SW5mbwAmYS9jbGllbnQgZ3B1aW5mbwAmZURpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgR1BVLgAmYSVzAC9jbGllbnQAL2NsaWVudCAAREVGTEFURSAtIEludmFsaWQgYmxvY2sgdHlwZQBERUZMQVRFIC0gVW5jb21wcmVzc2VkIGJsb2NrIExFTiBjaGVjayBmYWlsZWQAREVGTEFURSAtIFRyaWVkIHRvIHJlcGVhdCBpbnZhbGlkIGJ5dGUAREVGTEFURSAtIFRyaWVkIHRvIHJlcGVhdCBwYXN0IGVuZABERUZMQVRFIC0gSW52YWxpZCBodWZmbWFuIGNvZGUAVG9vIG1hbnkgaHVmZm1hbiBjb2RlcyBmb3IgYml0IGxlbmd0aAAfiwgAAAAAAAAAVW5zdXBwb3J0ZWQuemlwIGVudHJ5IGNvbXByZXNzaW9uIG1ldGhvZDogJWkAZGVmYXVsdC5wbmcAVW5hYmxlIHRvIGluaXQgZGVmYXVsdCBmb250AEFyaWFsAENlbnR1cnkgU2Nob29sYm9vayBMIFJvbWFuAE5pbWJ1cyBTYW5zAExpYmVyYXRpb24gU2FucwBCaXRzdHJlYW0gQ2hhcnRlcgBDYW50YXJlbGwARGVqYVZ1IFNhbnMgQm9vawBSb2JvdG8ASG92ZXJlZABBbGwAQWxsSG92ZXJlZABBbGxVbnNjYWxlZABTbmFwVG9CbG9jawBDaXJjbGUAQ2lyY2xlQWxsACZjU2tpbiAlcyBpcyB0b28gbGFyZ2UAaGFja3MtcGVybS1tc2dzAGdpYW50ACZjTm9jbGlwIGlzIGN1cnJlbnRseSBkaXNhYmxlZAAmY0ZseWluZyBpcyBjdXJyZW50bHkgZGlzYWJsZWQAJmNDYW5ub3Qgc2V0IHNwYXduIG1pZGFpciB3aGVuIG5vY2xpcCBpcyBkaXNhYmxlZAAmY1Jlc3Bhd25pbmcgaXMgY3VycmVudGx5IGRpc2FibGVkACtmbHkALWZseQArbm9jbGlwAC1ub2NsaXAAK3NwZWVkAC1zcGVlZAArcmVzcGF3bgAtcmVzcGF3bgArcHVzaAAtcHVzaABqdW1wcz0AaG9yc3BlZWQ9ACtvcGhheAAtb3BoYXgALWhheAB0ID4gMSBpbiBwaHlzaWNzIGNhbGN1bGF0aW9uLi4gdGhpcyBzaG91bGRuJ3QgaGF2ZSBoYXBwZW5lZC4Ac2t5IHZlcnRpY2VzAGNsb3VkcyB2ZXJ0aWNlcwBlZGdlIHZlcnRpY2VzAHNpZGVzIHZlcnRpY2VzAGNsb3Vkcy5wbmcAc2t5Ym94LnBuZwBzbm93LnBuZwByYWluLnBuZwBub3JtYWwAbGVnYWN5ZmFzdABsZWdhY3kAbm9ybWFsZmFzdAB3ZWF0aGVyIGhlaWdodG1hcABBdHRlbXB0IHRvIHJlZ2lzdGVyIGV2ZW50IGhhbmRsZXIgdGhhdCB3YXMgYWxyZWFkeSByZWdpc3RlcmVkAFVuYWJsZSB0byByZWdpc3RlciBhbm90aGVyIGV2ZW50IGhhbmRsZXIAQXR0ZW1wdCB0byB1bnJlZ2lzdGVyIGV2ZW50IGhhbmRsZXIgdGhhdCB3YXMgbm90IHJlZ2lzdGVyZWQgdG8gYmVnaW4gd2l0aABDUEUATWV0YWRhdGEASUQASUQyAENvbGxpZGVUeXBlAFRyYW5zbWl0c0xpZ2h0AEZ1bGxCcmlnaHQAQmxvY2tEcmF3AFNoYXBlAE5hbWUAVGV4dHVyZXMAV2Fsa1NvdW5kAENvb3JkcwBFeHBlY3RlZCBJOF9BcnJheSBOQlQgdGFnAEk4X0FycmF5IE5CVCB0YWcgdG9vIHNtYWxsAEV4cGVjdGVkIFN0cmluZyBOQlQgdGFnAEV4cGVjdGVkIEYzMiBOQlQgdGFnAEV4cGVjdGVkIEk4IE5CVCB0YWcARXhwZWN0ZWQgSTE2IE5CVCB0YWcARGlzdGFuY2UAV2VhdGhlclR5cGUAU2lkZUJsb2NrAEVkZ2VCbG9jawBTaWRlTGV2ZWwAVGV4dHVyZVVSTABTa3kAQ2xvdWQAU3VubGlnaHQAQW1iaWVudABCbG9jawBTcGF3bgBVVUlEAE1hcCBVVUlEIG11c3QgYmUgMTYgYnl0ZXMAQmxvY2tBcnJheQBCbG9ja0FycmF5MgAuY3cgbWFwIGJsb2NrcwBMaW1pdFZTeW5jAExpbWl0MzBGUFMATGltaXQ2MEZQUwBMaW1pdDEyMEZQUwBMaW1pdDE0NEZQUwBMaW1pdE5vbmUAU2NoZWR1bGVkVGFza19BZGQgLSBoaXQgbWF4IGNvdW50ACZjVW5hYmxlIHRvIHVzZSB0ZXJyYWluLnBuZyBmcm9tIHRoZSB0ZXh0dXJlIHBhY2suACZjIEl0cyBoZWlnaHQgaXMgbGVzcyB0aGFuIGl0cyB3aWR0aC4AJmMgSXQgbXVzdCBiZSAxNiBvciBtb3JlIHBpeGVscyB3aWRlLgAmY0Vycm9yIGxvYWRpbmcgJXMgZnJvbSB0aGUgdGV4dHVyZSBwYWNrLgAmY1VuYWJsZSB0byB1c2UgJXMgZnJvbSB0aGUgdGV4dHVyZSBwYWNrLgAmYyBJdHMgc2l6ZSBpcyAoJWksJWkpLCB5b3VyIEdQVSBzdXBwb3J0cyAoJWksJWkpIGF0IG1vc3QuACZjIEl0cyBzaXplIGlzICglaSwlaSksIHdoaWNoIGlzIG5vdCBhIHBvd2VyIG9mIHR3byBzaXplLgB0ZXJyYWluLnBuZwB2aWV3ZGlzdABPdXQgb2YgdmlkZW8gbWVtb3J5IQAmY091dCBvZiBWUkFNISBIYWx2aW5nIHZpZXcgZGlzdGFuY2UuLgBtb2RlLWNsYXNzaWMAbm9zdGFsZ2lhLWhhY2tzACZjJXMAU2V0dGluZyBhaXIgYmxvY2tzAFNldHRpbmcgZGlydCBibG9ja3MAU2V0dGluZyBncmFzcyBibG9ja3MAZ2VuIGhlaWdodG1hcABDYXJ2aW5nIGNvYWwgb3JlAENhcnZpbmcgaXJvbiBvcmUAQ2FydmluZyBnb2xkIG9yZQBQbGFudGluZyB0cmVlcwBQbGFudGluZyBtdXNocm9vbXMAUGxhbnRpbmcgZmxvd2VycwBDcmVhdGluZyBzdXJmYWNlAEZsb29kaW5nIGxhdmEARmxvb2Rpbmcgd2F0ZXIARmxvb2RpbmcgZWRnZSB3YXRlcgBDYXJ2aW5nIGNhdmVzAENyZWF0aW5nIHN0cmF0YQBGaWxsaW5nIG1hcABCdWlsZGluZyBoZWlnaHRtYXAATG9zdCBncmFwaGljcyBjb250ZXh0OiAlYwBGYWlsZWQgdG8gY3JlYXRlIHByb2dyYW0AaW5fcG9zAGluX2NvbABpbl91dgBtdnAAdGV4TWF0cml4AGZvZ0NvbABmb2dFbmQAZm9nRGVuc2l0eQBGYWlsZWQgdG8gY29tcGlsZSBwcm9ncmFtAHByZWNpc2lvbiBoaWdocCBmbG9hdDsKAHZhcnlpbmcgdmVjNCBvdXRfY29sOwoAdmFyeWluZyB2ZWMyIG91dF91djsKAHVuaWZvcm0gc2FtcGxlcjJEIHRleEltYWdlOwoAdW5pZm9ybSB2ZWMzIGZvZ0NvbDsKAHVuaWZvcm0gZmxvYXQgZm9nRW5kOwoAdW5pZm9ybSBmbG9hdCBmb2dEZW5zaXR5OwoAdm9pZCBtYWluKCkgewoAICB2ZWM0IGNvbCA9IHRleHR1cmUyRCh0ZXhJbWFnZSwgb3V0X3V2KSAqIG91dF9jb2w7CgAgIHZlYzQgY29sID0gb3V0X2NvbDsKACAgaWYgKGNvbC5hIDwgMC41KSBkaXNjYXJkOwoAICBmbG9hdCBkZXB0aCA9IGdsX0ZyYWdDb29yZC56IC8gZ2xfRnJhZ0Nvb3JkLnc7CgAgIGZsb2F0IGYgPSBjbGFtcCgoZm9nRW5kIC0gZGVwdGgpIC8gZm9nRW5kLCAwLjAsIDEuMCk7CgAgIGZsb2F0IGYgPSBjbGFtcChleHAoZm9nRGVuc2l0eSAqIGRlcHRoKSwgMC4wLCAxLjApOwoAICBjb2wucmdiID0gbWl4KGZvZ0NvbCwgY29sLnJnYiwgZik7CgAgIGdsX0ZyYWdDb2xvciA9IGNvbDsKAH0ARmFpbGVkIHRvIGNyZWF0ZSBzaGFkZXIARmFpbGVkIHRvIGNvbXBpbGUgc2hhZGVyAGF0dHJpYnV0ZSB2ZWMzIGluX3BvczsKAGF0dHJpYnV0ZSB2ZWM0IGluX2NvbDsKAGF0dHJpYnV0ZSB2ZWMyIGluX3V2OwoAdW5pZm9ybSBtYXQ0IG12cDsKAHVuaWZvcm0gbWF0NCB0ZXhNYXRyaXg7CgAgIGdsX1Bvc2l0aW9uID0gbXZwICogdmVjNChpbl9wb3MsIDEuMCk7CgAgIG91dF9jb2wgPSBpbl9jb2w7CgAgIG91dF91diAgPSBpbl91djsKACAgb3V0X3V2ID0gKHRleE1hdHJpeCAqIHZlYzQob3V0X3V2LDAuMCwxLjApKS54eTsKAFJlY3JlYXRpbmcgZ3JhcGhpY3MgY29udGV4dABUZXh0dXJlcyBtdXN0IGhhdmUgcG93ZXIgb2YgdHdvIGRpbWVuc2lvbnMAbWlwbWFwcwAtLSBVc2luZyBPcGVuR0wgKCVpIGJpdCkgLS0AVmVuZG9yOiAlYwBSZW5kZXJlcjogJWMAR0wgdmVyc2lvbjogJWMATWF4IHRleHR1cmUgc2l6ZTogKCVpLCAlaSkARGVwdGggYnVmZmVyIGJpdHM6ICVpAFZpZGVvIG1lbW9yeTogJWYyIE1CIHRvdGFsLCAlZjIgZnJlZQBHTF9OVlhfZ3B1X21lbW9yeV9pbmZvAEdMQ29udGV4dCBsb3N0AGd1aS5wbmcAZ3VpX2NsYXNzaWMucG5nAGljb25zLnBuZwBIaXQgbWF4IHNjcmVlbnMAZ3VpLWJsb2NraW5oYW5kAFRyaWVkIHRvIHJlbW92ZSBlbGVtZW50IGF0IGxpc3QgZW5kAGh0dHA6Ly9jbGFzc2ljdWJlLnMzLmFtYXpvbmF3cy5jb20vc2tpbi8ALnBuZwBBZGRpbmcgJXMgKHR5cGUgJWIpAEh0dHBfUG9zdERhdGEAR0VUAEhFQUQAUE9TVABEb3dubG9hZGluZyBmcm9tICVzICh0eXBlICViKQAlcyVzAGh0dHA6Ly9kbC5kcm9wYm94LmNvbS8AaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tLwBodHRwczovL2RsLmRyb3Bib3guY29tLwBIVFRQIHJldHVybmVkIGRhdGE6ICVpIGJ5dGVzAGNhY2hlLWNvbnRyb2wAbWF4LWFnZT0wAE5vbmUARjEARjIARjMARjQARjUARjYARjcARjgARjkARjEwAEYxMQBGMTIARjEzAEYxNABGMTUARjE2AEYxNwBGMTgARjE5AEYyMABGMjEARjIyAEYyMwBGMjQARjI1AEYyNgBGMjcARjI4AEYyOQBGMzAARjMxAEYzMgBGMzMARjM0AEYzNQBTaGlmdExlZnQAU2hpZnRSaWdodABDb250cm9sTGVmdABDb250cm9sUmlnaHQAQWx0TGVmdABBbHRSaWdodABXaW5MZWZ0AFdpblJpZ2h0AFVwAERvd24ATnVtYmVyMABOdW1iZXIxAE51bWJlcjIATnVtYmVyMwBOdW1iZXI0AE51bWJlcjUATnVtYmVyNgBOdW1iZXI3AE51bWJlcjgATnVtYmVyOQBJbnNlcnQASG9tZQBFbmQAUGFnZVVwAFBhZ2VEb3duAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBFbnRlcgBFc2NhcGUAU3BhY2UAQmFja1NwYWNlAFRhYgBDYXBzTG9jawBTY3JvbGxMb2NrAFByaW50U2NyZWVuAFBhdXNlAE51bUxvY2sAS2V5cGFkMABLZXlwYWQxAEtleXBhZDIAS2V5cGFkMwBLZXlwYWQ0AEtleXBhZDUAS2V5cGFkNgBLZXlwYWQ3AEtleXBhZDgAS2V5cGFkOQBLZXlwYWREaXZpZGUAS2V5cGFkTXVsdGlwbHkAS2V5cGFkU3VidHJhY3QAS2V5cGFkQWRkAEtleXBhZERlY2ltYWwAS2V5cGFkRW50ZXIAVGlsZGUATWludXMAUGx1cwBCcmFja2V0TGVmdABCcmFja2V0UmlnaHQAU2xhc2gAU2VtaWNvbG9uAFF1b3RlAENvbW1hAFBlcmlvZABCYWNrU2xhc2gAWEJ1dHRvbjEAWEJ1dHRvbjIATGVmdE1vdXNlAFJpZ2h0TW91c2UATWlkZGxlTW91c2UAa2V5LSVjAFNldFNwYXduAFRvZ2dsZUZvZwBTZW5kQ2hhdABQbGF5ZXJMaXN0AE5vQ2xpcABGbHlVcABGbHlEb3duAEV4dElucHV0AEhpZGVGUFMAVGhpcmRQZXJzb24ASGlkZUdVSQBBeGlzTGluZXMAWm9vbVNjcm9sbGluZwBIYWxmU3BlZWQARGVsZXRlQmxvY2sAUGlja0Jsb2NrAFBsYWNlQmxvY2sAQXV0b1JvdGF0ZQBIb3RiYXJTd2l0Y2hpbmcAU21vb3RoQ2FtZXJhAERyb3BCbG9jawBJRE92ZXJsYXkAQnJlYWthYmxlTGlxdWlkcwAmY0Nhbm5vdCBkZWZpbmUgbW9yZSB0aGFuIDI1NiBob3RrZXlzAGhvdGtleS0lYyYlYgAldCYlcwBob3RrZXktAGxlYXZpbmcgZnVsbHNjcmVlbgBnb2luZyBmdWxsc2NyZWVuACAgJmVTbW9vdGggY2FtZXJhIGlzICZhZW5hYmxlZAAgICZlU21vb3RoIGNhbWVyYSBpcyAmY2Rpc2FibGVkACAgJmVBeGlzIGxpbmVzICgmNFgmZSwgJjJZJmUsICYxWiZlKSBub3cgc2hvdwAgICZlQXhpcyBsaW5lcyBubyBsb25nZXIgc2hvdwAgICZlQXV0byByb3RhdGUgaXMgJmFlbmFibGVkACAgJmVBdXRvIHJvdGF0ZSBpcyAmY2Rpc2FibGVkACAgJmVCcmVha2FibGUgbGlxdWlkcyBpcyAmYWVuYWJsZWQAICAmZUJyZWFrYWJsZSBsaXF1aWRzIGlzICZjZGlzYWJsZWQAJWMuICZlUHJlc3MgJmElYyAmZXRvIGRpc2FibGUuACVjLiAmZVByZXNzICZhJWMgJmV0byByZS1lbmFibGUuACZjVGhlIHNlcnZlciBoYXMgZm9yYmlkZGVuIHlvdSBmcm9tIGNoYW5naW5nIHlvdXIgaGVsZCBibG9jay4AbGlnaHRpbmcgaGVpZ2h0bWFwAEVycm9yAEVycm9yICVoIHdoZW4gJWMARXJyb3IgJWggd2hlbiAlYyAnJXMnAAogIEVycm9yIG1lYW5pbmc6ICVjAAogIEVycm9yIG1lYW5pbmc6ICVzAE5CVCBzdHJpbmcgdG9vIGxvbmcASW52YWxpZCByb290IE5CVCB0YWcAVW5rbm93biBOQlQgdGFnIHR5cGUASTMyX0FycmF5IE5CVCB0YWcgdW5zdXBwb3J0ZWQASW52YWxpZCBQTkcgc2NhbmxpbmUgdHlwZQBObyBpbWFnZSBpbiBQTkcATm9uLWVtcHR5IElFTkQgY2h1bmsAVHJhbnNwYXJlbmN5IGludmFsaWQgZm9yIGNvbG9yIHR5cGUASW52YWxpZCBudW1iZXIgb2YgdHJhbnNwYXJlbmN5IGVudHJpZXMASW52YWxpZCBzaXplIG9mIHBhbGV0dGUgZGF0YQBJbnRlcmxhY2VkIFBOR3MgdW5zdXBwb3J0ZWQASW52YWxpZCBmaWx0ZXIgaW4gUE5HAEludmFsaWQgY29tcHJlc3Npb24gaW4gUE5HAEludmFsaWQgY29sb3IgdHlwZSBpbiBQTkcAUE5HIGltYWdlIHRvbyB0YWxsAFBORyBpbWFnZSB0b28gd2lkZQBJbnZhbGlkIFBORyBoZWFkZXIgc2l6ZQBJbnZhbGlkIFBORyBzaWduYXR1cmUATm8gYXVkaW8gaW4gV0FWAFVuc3VwcG9ydGVkIFdBViBhdWRpbyBmb3JtYXQASW52YWxpZCBXQVYgdHlwZQBJbnZhbGlkIFdBViBoZWFkZXIASW52YWxpZCBPR0cgZm9ybWF0IHZlcnNpb24ASW52YWxpZCBPR0cgc2lnbmF0dXJlAEludmFsaWQgYXJndW1lbnQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5kIG9mIHN0cmVhbQBDbGFzc2lDdWJlIGNyYXNoZWQuClJlYXNvbjogJWMKACVoCgBGdWxsIGRldGFpbHMgb2YgdGhlIGNyYXNoIGhhdmUgYmVlbiBsb2dnZWQgdG8gJ2NsaWVudC5sb2cnLgoAUGxlYXNlIHJlcG9ydCB0aGlzIG9uIHRoZSBDbGFzc2lDdWJlIGZvcnVtcyBvciB0byBVbmtub3duU2hhZG93MjAwLgoKAFdlJ3JlIHNvcnJ5AAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgBDcmFzaCB0aW1lOiAlcDIvJXAyLyVwNCAAJXAyOiVwMjolcDIKAGNodW5rIHBhcnRzAGNodW5rIGluZm8Ac29ydGVkIGNodW5rIGluZm8AcmVuZGVyIGNodW5rIGluZm8AY2h1bmsgZGlzdGFuY2VzAGdmeC1tYXhjaHVua3VwZGF0ZXMARG9uZQAmN1BhZ2UgJWkgb2YgJWkALS0tLS0AUXVpdCBnYW1lAEJhY2sgdG8gZ2FtZQBPcHRpb25zLi4uAEdlbmVyYXRlIG5ldyBsZXZlbC4uLgBMb2FkIGxldmVsLi4uAFNhdmUgbGV2ZWwuLi4AQ2hhbmdlIHRleHR1cmUgcGFjay4uLgBIb3RrZXlzLi4uAE1vZGlmeSBob3RrZXlzAEFsdABTaGlmdABDdHJsAFNhdmUgY2hhbmdlcwBBZGQgaG90a2V5AFJlbW92ZSBob3RrZXkASW5wdXQgc3RheXMgb3BlbjogAE9GRgBPTgBNb2RpZmllcnM6IHByZXNzIGEga2V5Li4ATW9kaWZpZXJzOgAgTm9uZQAgQ3RybAAgU2hpZnQAIEFsdABLZXk6IHByZXNzIGEga2V5Li4AS2V5OiAAICsAU2VsZWN0IGEgdGV4dHVyZSBwYWNrIHppcABEb3dubG9hZCAoV0lQKQBTYXZlACZjT3ZlcndyaXRlIGV4aXN0aW5nPwAuc2NoZW1hdGljACZlUGxlYXNlIGVudGVyIGEgZmlsZW5hbWUAbWFwcy8lcyVjAGVuY29kaW5nACZlU2F2ZWQgbWFwIHRvOiAlcwAuY3cAeyB2YXIgZGF0YSA9IEhFQVBVOC5zdWJhcnJheSgkMSwgJDEgKyAkMik7IHZhciBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIH0pOyB2YXIgbmFtZSA9IFVURjhUb1N0cmluZygkMCk7IGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IpIHsgd2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKGJsb2IsIG5hbWUpOyByZXR1cm47IH0gdmFyIHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOyB2YXIgZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsgZWxlbS5ocmVmID0gdXJsOyBlbGVtLmRvd25sb2FkID0gbmFtZTsgZWxlbS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW0pOyBlbGVtLmNsaWNrKCk7IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbSk7IHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7IH0AJmVEb3dubG9hZGVkIG1hcDogJXMAU2VsZWN0IGEgbGV2ZWwAbWFwcy8lcwBXaWR0aDoASGVpZ2h0OgBMZW5ndGg6AFNlZWQ6AEdlbmVyYXRlIG5ldyBsZXZlbABGbGF0Z3Jhc3MAVmFuaWxsYQAmY1RoZSBnZW5lcmF0ZWQgbWFwJ3Mgdm9sdW1lIGlzIHRvbyBiaWcuACZjT25lIG9mIHRoZSBtYXAgZGltZW5zaW9ucyBpcyBpbnZhbGlkLgAmZU11c2ljL1NvdW5kLCB2aWV3IGJvYmJpbmcsIGFuZCBtb3JlACZlQ2hhdCBvcHRpb25zLCBndWkgc2NhbGUsIGZvbnQgc2V0dGluZ3MsIGFuZCBtb3JlACZlRlBTIGxpbWl0LCB2aWV3IGRpc3RhbmNlLCBlbnRpdHkgbmFtZXMvc2hhZG93cwAmZVNldCBrZXkgYmluZGluZ3MsIGJpbmQga2V5cyB0byBhY3QgYXMgbW91c2UgY2xpY2tzACZlSGFja3MgYWxsb3dlZCwganVtcCBzZXR0aW5ncywgYW5kIG1vcmUAJmVFbnYgY29sb3Vycywgd2F0ZXIgbGV2ZWwsIHdlYXRoZXIsIGFuZCBtb3JlACZlU2V0dGluZ3MgZm9yIHJlc2VtYmxpbmcgdGhlIG9yaWdpbmFsIGNsYXNzaWMATWlzYyBvcHRpb25zLi4uAEd1aSBvcHRpb25zLi4uAEdyYXBoaWNzIG9wdGlvbnMuLi4AQ29udHJvbHMuLi4ASGFja3Mgc2V0dGluZ3MuLi4ARW52IHNldHRpbmdzLi4uAE5vc3RhbGdpYSBvcHRpb25zLi4uAE9LAERlZmF1bHQgdmFsdWUAOiAAQ2xhc3NpYyBoYW5kIG1vZGVsAENsYXNzaWMgd2FsayBhbmltAENsYXNzaWMgZ3VpIHRleHR1cmVzAENsYXNzaWMgcGxheWVyIGxpc3QAQ2xhc3NpYyBvcHRpb25zAEFsbG93IGN1c3RvbSBibG9ja3MAVXNlIENQRQBVc2Ugc2VydmVyIHRleHR1cmVzAG5vc3RhbGdpYS1zZXJ2ZXJ0ZXh0dXJlcwBub3N0YWxnaWEtdXNlY3BlAG5vc3RhbGdpYS1jdXN0b21ibG9ja3MAbm9zdGFsZ2lhLWNsYXNzaWNvcHRpb25zAG5vc3RhbGdpYS1jbGFzc2ljdGFibGlzdABub3N0YWxnaWEtY2xhc3NpY2d1aQBub3N0YWxnaWEtc2ltcGxlYXJtcwAmZUJ1dHRvbnMgb24gdGhlIHJpZ2h0IHJlcXVpcmUgcmVzdGFydGluZyBnYW1lAENsb3VkcyBjb2wAU2t5IGNvbABGb2cgY29sAENsb3VkcyBzcGVlZABDbG91ZHMgaGVpZ2h0AFN1bmxpZ2h0IGNvbABTaGFkb3cgY29sAFdlYXRoZXIAUmFpbi9Tbm93IHNwZWVkAFdhdGVyIGxldmVsACZlSWYgJmZPTiZlLCB0aGVuIHRoZSB0aGlyZCBwZXJzb24gY2FtZXJhcyB3aWxsIGxpbWl0CiZldGhlaXIgem9vbSBkaXN0YW5jZSBpZiB0aGV5IGhpdCBhIHNvbGlkIGJsb2NrLgAmZVNldHMgaG93IG1hbnkgYmxvY2tzIGhpZ2ggeW91IGNhbiBqdW1wIHVwLgomZU5vdGU6IFlvdSBqdW1wIG11Y2ggaGlnaGVyIHdoZW4gaG9sZGluZyBkb3duIHRoZSBTcGVlZCBrZXkgYmluZGluZy4AJmVJZiAmZk9OJmUsIHBsYWNpbmcgYmxvY2tzIHRoYXQgaW50ZXJzZWN0IHlvdXIgb3duIHBvc2l0aW9uIGNhdXNlCiZldGhlIGJsb2NrIHRvIGJlIHBsYWNlZCwgYW5kIHlvdSB0byBiZSBtb3ZlZCBvdXQgb2YgdGhlIHdheS4KJmZUaGlzIGlzIG1haW5seSB1c2VmdWwgZm9yIHF1aWNrIHBpbGxhcmluZy90b3dlcmluZy4AJmVJZiAmZk9GRiZlLCB5b3Ugd2lsbCBpbW1lZGlhdGVseSBzdG9wIHdoZW4gaW4gbm9jbGlwCiZlbW9kZSBhbmQgbm8gbW92ZW1lbnQga2V5cyBhcmUgaGVsZCBkb3duLgBIYWNrcyBlbmFibGVkAFNwZWVkIG11bHRpcGxpZXIAQ2FtZXJhIGNsaXBwaW5nAEp1bXAgaGVpZ2h0AFdPTSBzdHlsZSBoYWNrcwBGdWxsIGJsb2NrIHN0ZXBwaW5nAEJyZWFrYWJsZSBsaXF1aWRzAFB1c2hiYWNrIHBsYWNpbmcATm9jbGlwIHNsaWRlAEZpZWxkIG9mIHZpZXcAaGFja3MtZm92AGhhY2tzLW5vY2xpcHNsaWRlAGhhY2tzLXB1c2hiYWNrcGxhY2luZwBoYWNrcy1saXF1aWRzYnJlYWthYmxlAGhhY2tzLWZ1bGxibG9ja3N0ZXAAaGFja3Mtd29tc3R5bGVoYWNrcwBoYWNrcy1qdW1wdmVsb2NpdHkAaGFja3MtY2FtZXJhY2xpcHBpbmcAaGFja3Mtc3BlZWRtdWx0aXBsaWVyAGhhY2tzLWhhY2tzZW5hYmxlZAAAAQQHBgsCAwgJBQo+ICVjOiAlYyA8ACVjOiAlYwBOb3JtYWwgY29udHJvbHMAAAEEBwYCAwgJBUNvbnRyb2xzAAwNGQ4PEEhhY2tzIGNvbnRyb2xzAFNwZWVkAE5vY2xpcABIYWxmIHNwZWVkAEZseQBGbHkgdXAARmx5IGRvd24ARm9yd2FyZABCYWNrAENoYXQAU2F2ZSBsb2MATGVmdABSaWdodABCdWlsZABUb2dnbGUgZm9nAExvYWQgbG9jAE11c2ljAEludmVydCBtb3VzZQBSZW5kZXIgZGlzdGFuY2UAQmxvY2sgcGh5c2ljcwBTb3VuZABTaG93IEZQUwBWaWV3IGJvYmJpbmcARlBTIG1vZGUAZnBzbGltaXQAdmlld2JvYmJpbmcAZ3VpLXNob3dmcHMAc291bmRzdm9sdW1lAHNpbmdsZXBsYXllcnBoeXNpY3MARkFSAE5PUk1BTABTSE9SVABUSU5ZAGludmVydG1vdXNlAG11c2ljdm9sdW1lAAwNGRgODxAVERIWHiATFBcdHyEiT3RoZXIgY29udHJvbHMAGhscJmVQcmVzcyBlc2NhcGUgdG8gcmVzZXQgdGhlIGJpbmRpbmcATW91c2Uga2V5IGJpbmRpbmdzAERlbGV0ZSBibG9jawBQaWNrIGJsb2NrAFBsYWNlIGJsb2NrAFNob3cgZXh0IGlucHV0AEhpZGUgRlBTAEhpZGUgZ3VpAEhvdGJhciBzd2l0Y2hpbmcARHJvcCBibG9jawBTY3JlZW5zaG90AEZ1bGxzY3JlZW4AU2hvdyBheGlzIGxpbmVzAEF1dG8tcm90YXRlAFNtb290aCBjYW1lcmEASUQgb3ZlcmxheQBTY3JvbGwgem9vbQBUaGlyZCBwZXJzb24AU2V0IHNwYXduAFBsYXllciBsaXN0AEludmVudG9yeQBSZXNwYXduAFNlbmQgY2hhdAAmZVZTeW5jOiAmZk51bWJlciBvZiBmcmFtZXMgcmVuZGVyZWQgaXMgYXQgbW9zdCB0aGUgbW9uaXRvcidzIHJlZnJlc2ggcmF0ZS4KJmUzMC82MC8xMjAvMTQ0IEZQUzogJmZSZW5kZXJzIDMwLzYwLzEyMC8xNDQgZnJhbWVzIGF0IG1vc3QgZWFjaCBzZWNvbmQuCiZlTm9MaW1pdDogJmZSZW5kZXJzIGFzIG1hbnkgZnJhbWVzIGFzIHBvc3NpYmxlIGVhY2ggc2Vjb25kLgomY1VzaW5nIE5vTGltaXQgbW9kZSBpcyBkaXNjb3VyYWdlZC4AJmNOb3RlOiAmZVNtb290aCBsaWdodGluZyBpcyBzdGlsbCBleHBlcmltZW50YWwgYW5kIGNhbiBoZWF2aWx5IHJlZHVjZSBwZXJmb3JtYW5jZS4AJmVOb25lOiAmZk5vIG5hbWVzIG9mIHBsYXllcnMgYXJlIGRyYXduLgomZUhvdmVyZWQ6ICZmTmFtZSBvZiB0aGUgdGFyZ2V0ZWQgcGxheWVyIGlzIGRyYXduIHNlZS10aHJvdWdoLgomZUFsbDogJmZOYW1lcyBvZiBhbGwgb3RoZXIgcGxheWVycyBhcmUgZHJhd24gbm9ybWFsbHkuCiZlQWxsSG92ZXJlZDogJmZBbGwgbmFtZXMgb2YgcGxheWVycyBhcmUgZHJhd24gc2VlLXRocm91Z2guCiZlQWxsVW5zY2FsZWQ6ICZmQWxsIG5hbWVzIG9mIHBsYXllcnMgYXJlIGRyYXduIHNlZS10aHJvdWdoIHdpdGhvdXQgc2NhbGluZy4AJmVOb25lOiAmZk5vIGVudGl0eSBzaGFkb3dzIGFyZSBkcmF3bi4KJmVTbmFwVG9CbG9jazogJmZBIHNxdWFyZSBzaGFkb3cgaXMgc2hvd24gb24gYmxvY2sgeW91IGFyZSBkaXJlY3RseSBhYm92ZS4KJmVDaXJjbGU6ICZmQSBjaXJjdWxhciBzaGFkb3cgaXMgc2hvd24gYWNyb3NzIHRoZSBibG9ja3MgeW91IGFyZSBhYm92ZS4KJmVDaXJjbGVBbGw6ICZmQSBjaXJjdWxhciBzaGFkb3cgaXMgc2hvd24gdW5kZXJuZWF0aCBhbGwgZW50aXRpZXMuAFZpZXcgZGlzdGFuY2UAQWR2YW5jZWQgbGlnaHRpbmcATmFtZXMAU2hhZG93cwBNaXBtYXBzAGdmeC1taXBtYXBzAGVudGl0eXNoYWRvdwBuYW1lc21vZGUAZ2Z4LXNtb290aGxpZ2h0aW5nAEJsYWNrIHRleHQgc2hhZG93cwBIb3RiYXIgc2NhbGUASW52ZW50b3J5IHNjYWxlAFRhYiBhdXRvLWNvbXBsZXRlAENsaWNrYWJsZSBjaGF0AENoYXQgc2NhbGUAQ2hhdCBsaW5lcwBVc2Ugc3lzdGVtIGZvbnQAU2VsZWN0IHN5c3RlbSBmb250AFNlbGVjdCBhIGZvbnQAbWFraW5nIGZvbnQAZ3VpLWZvbnRuYW1lAGd1aS1hcmlhbGNoYXRmb250AGd1aS1jaGF0bGluZXMAZ3VpLWNoYXRzY2FsZQBndWktY2hhdGNsaWNrYWJsZQBndWktdGFiLWF1dG9jb21wbGV0ZQBndWktaW52ZW50b3J5c2NhbGUAZ3VpLWhvdGJhcnNjYWxlAGd1aS1ibGFja3RleHRzaGFkb3dzAFJlYWNoIGRpc3RhbmNlAE11c2ljIHZvbHVtZQBTb3VuZHMgdm9sdW1lAEF1dG8gY2xvc2UgbGF1bmNoZXIATW91c2Ugc2Vuc2l0aXZpdHkAbW91c2VzZW5zaXRpdml0eQBhdXRvY2xvc2VsYXVuY2hlcgBTbWFsbABOb3JtYWwASHVnZQBUZXh0dXJlIElEIHJlZmVyZW5jZSBzaGVldABmADAxMjM0NTY3ODkAJmVBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3BlbiB0aGlzIGxpbms/AEJlIGNhcmVmdWwgLSBsaW5rcyBmcm9tIHN0cmFuZ2VycyBtYXkgYmUgd2Vic2l0ZXMgdGhhdAAgaGF2ZSB2aXJ1c2VzLCBvciB0aGluZ3MgeW91IG1heSBub3Qgd2FudCB0byBvcGVuL3NlZS4AWWVzAE5vAENMXyVzAERvIHlvdSB3YW50IHRvIGRvd25sb2FkIHRoZSBzZXJ2ZXIncyB0ZXh0dXJlIHBhY2s/ACZlWW91IG1pZ2h0IGJlIG1pc3Npbmcgb3V0LgBUZXh0dXJlIHBhY2sgdXJsOgBUZXh0dXJlIHBhY2tzIGNhbiBwbGF5IGEgdml0YWwgcm9sZSBpbiB0aGUgbG9vayBhbmQgZmVlbCBvZiBtYXBzLgBJJ20gc3VyZQBHbyBiYWNrAEFsd2F5cyB5ZXMAQWx3YXlzIG5vAFN1cmUgeW91IGRvbid0IHdhbnQgdG8gZG93bmxvYWQgdGhlIHRleHR1cmUgcGFjaz8ARG93bmxvYWQgc2l6ZTogJWYzIE1CAERvd25sb2FkIHNpemU6IERldGVybWluaW5nLi4uAE1lbnUARm9nAG5vc3RhbGdpYS1jbGFzc2ljYXJtAGNvcnBzZQBzaXQAaGVhZABjaGliaQBibG9jawB6b21iaWUAc3BpZGVyAHNrZWxldG9uAHNoZWVwX25vZnVyAHNoZWVwAHBpZwBjcmVlcGVyAGNoaWNrZW4AaHVtYW5vaWQAem9tYmllLnBuZwBzcGlkZXIucG5nAHNrZWxldG9uLnBuZwBzaGVlcF9mdXIucG5nAHNoZWVwLnBuZwBwaWcucG5nAGNyZWVwZXIucG5nAGNoaWNrZW4ucG5nAGNoYXIucG5nAG9wdGlvbnMtZGVmYXVsdC50eHQAb3B0aW9ucy50eHQAcGFydGljbGVzLnBuZwBjb2xsaXNpb24gc2VhcmNoIHN0YXRlcwBTb21ldGhpbmcgd2VudCB3cm9uZywgZGlkIG92ZXIgMjUsMDAwIGl0ZXJhdGlvbnMgaW4gUGlja2luZ19SYXlUcmFjZSgpAE91dCBvZiBtZW1vcnkhICh3aGVuIGFsbG9jYXRpbmcgJWMpAAoAU3RyaW5nIHRvbyBsb25nIHRvIGV4cGFuZAAlcy8ARlMuc3luY2ZzKGZhbHNlLCBmdW5jdGlvbihlcnIpIHsgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTsgfSk7AAABAkZhaWxlZCB0byBjcmVhdGUgc29ja2V0AHsgd2luZG93Lm9wZW4oVVRGOFRvU3RyaW5nKCQwKSk7IH0ATW9kdWxlWyd3ZWJzb2NrZXQnXVsnc3VicHJvdG9jb2wnXSA9ICdDbGFzc2lDdWJlJzsAL2NsYXNzaWN1YmUAc2V0dGluZyBjdXJyZW50IGRpcmVjdG9yeQBTdGFydGluZyBDbGFzc2lDdWJlIHdlYiBjbGllbnQgLi4AbWFwcwB0ZXhwYWNrcwB0ZXh0dXJlY2FjaGUAcGx1Z2lucwBXZWJUZXN0IQBJbnZhbGlkIElQAEludmFsaWQgcG9ydAAlYyAnJXMnAEZhaWxlZCB0byBzdGFydABNaXNzaW5nIElQIGFuZC9vciBwb3J0IC0gAHdpbmRvdy13aWR0aAB3aW5kb3ctaGVpZ2h0ACVjICglcykAQ2xhc3NpQ3ViZQB3b21lbnZfJWkAVGV4IHVybDogJXMAQ1BFIGhvdGtleSBhZGRlZDogJWMsICViOiAlcwBjcGUgZXh0OiAlcywgJWkASGVsZEJsb2NrAE1lc3NhZ2VUeXBlcwBFeHRQbGF5ZXJMaXN0AEJsb2NrUGVybWlzc2lvbnMAUGxheWVyQ2xpY2sARW52TWFwQXBwZWFyYW5jZQBMb25nZXJNZXNzYWdlcwBGdWxsQ1A0MzcAQmxvY2tEZWZpbml0aW9uc0V4dABFeHRFbnRpdHlQb3NpdGlvbnMAVHdvV2F5UGluZwBGYXN0TWFwAEV4dGVuZGVkVGV4dHVyZXMARXh0ZW5kZWRCbG9ja3MAQmxvY2tEZWZpbml0aW9ucwBDbGlja0Rpc3RhbmNlAEN1c3RvbUJsb2NrcwBFbW90ZUZpeABUZXh0SG90S2V5AEVudkNvbG9ycwBTZWxlY3Rpb25DdWJvaWQAQ2hhbmdlTW9kZWwARW52V2VhdGhlclR5cGUASGFja0NvbnRyb2wAQnVsa0Jsb2NrVXBkYXRlAFRleHRDb2xvcnMARW52TWFwQXNwZWN0AEVudGl0eVByb3BlcnR5AEludmVudG9yeU9yZGVyAEluc3RhbnRNT1REAFNldEhvdGJhcgBTZXRTcGF3bnBvaW50AFZlbG9jaXR5Q29udHJvbABTZXJ2ZXIgc29mdHdhcmU6ICVzAEQzIHNlcnZlcgAmZQBeZGV0YWlsLnVzZXIAXmRldGFpbC51c2VyPQBQbGF5ZXJzAG1hcCBsb2FkaW5nIHRvb2s6ICVpAEJsb2NrcyBhcnJheSBzaXplIGRvZXMgbm90IG1hdGNoIHZvbHVtZSBvZiBtYXAAL3dvbWlkIFdvTUNsaWVudC0yLjAuNwByZWFkaW5nIG1hcCBkYXRhAE5vdCBlbm91Z2ggZnJlZSBtZW1vcnkgdG8gam9pbiB0aGF0IG1hcC4KVHJ5IGpvaW5pbmcgYSBkaWZmZXJlbnQgbWFwLgBodHRwOi8vJXMAY2ZnPQBlbnZpcm9ubWVudC5jbG91ZABlbnZpcm9ubWVudC5za3kAZW52aXJvbm1lbnQuZm9nAGVudmlyb25tZW50LmxldmVsAHVzZXIuZGV0YWlsADAuMzAAWm9vbSBmb3YgJWkgIABGbHkgT04gICAAU3BlZWQgT04gICAATm9jbGlwIE9OICAgAFBvc2l0aW9uOiAAMDEyMzQ1Njc4OS0sICgpACVpIGZwcywgACVpIGNodW5rIHVwZGF0ZXMAJWkgY2h1bmtzL3MsIAAlaSB2ZXJ0aWNlcwAsIHBpbmcgJWkgbXMAU2VuZABDYW5jZWwAJmVSZXRyaWV2aW5nIHRleHR1cmUgcGFjay4uACZlRG93bmxvYWRpbmcgdGV4dHVyZSBwYWNrACZlRG93bmxvYWRpbmcgdGV4dHVyZSBwYWNrICgmNyVpJmUlJSkAR2VuZXJhdGluZy4uAEdlbmVyYXRpbmcgbGV2ZWwAJmNGYWlsZWQgdG8gZ2VuZXJhdGUgdGhlIG1hcC4AT3V0IG9mIG1lbW9yeQBOb3QgZW5vdWdoIGZyZWUgbWVtb3J5IHRvIGdlbmVyYXRlIGEgbWFwIHRoYXQgbGFyZ2UuClRyeSBhIHNtYWxsZXIgc2l6ZS4AUmVjb25uZWN0IGluICVpAFJlY29ubmVjdABCYW5uZWQgAEtpY2tlZCAARGVsZXRlAFBsYWNlADwAPgBeAFwvAEp1bXAATW9yZQBDbGFzc2lDdWJlIHdlYiBjbGllbnQARXJyb3IgcmVhZGluZyBmcm9tICVzOiVpOiAlaQoAU2tpcHBpbmcgaW52YWxpZCBIYWNrQ29udHJvbCBieXRlIGZyb20gRDMgc2VydmVyAHRyeWluZyB0byBkb3dubG9hZCB0ZXh0dXJlIHBhY2sAJmMlaSBlcnJvciB3aGVuIHRyeWluZyB0byBkb3dubG9hZCB0ZXh0dXJlIHBhY2sAU2VydmVyIHNlbnQgaW52YWxpZCBwYWNrZXQhAERpc2Nvbm5lY3RlZABJL08gZXJyb3Igd2hlbiByZWFkaW5nIHBhY2tldHMAJmVMb3N0IGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlcgBZb3UndmUgbG9zdCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIARGlzY29ubmVjdGVkIQBFcnJvciBjb25uZWN0aW5nIHRvICVzOiVpOiAlaQoARmFpbGVkIHRvIGNvbm5lY3QgdG8gJXM6JWkAWW91IGZhaWxlZCB0byBjb25uZWN0IHRvIHRoZSBzZXJ2ZXIuIEl0J3MgcHJvYmFibHkgZG93biEAQ29ubmVjdGluZyB0byAlczolaS4uAFNpbmdsZXBsYXllcgBPZmZzZXQgZm9yIERlbGV0ZUF0IG91dCBvZiByYW5nZQBPZmZzZXQgZm9yIHN1YnN0cmluZyBvdXQgb2YgcmFuZ2UATGVuZ3RoIGZvciBzdWJzdHJpbmcgb3V0IG9mIHJhbmdlAFJlc3VsdCBzdWJzdHJpbmcgaXMgb3V0IG9mIHJhbmdlAFN1YiBvZmZzZXQgb3V0IG9mIHJhbmdlAEZhbHNlAFRydWUAT2Zmc2V0IGZvciBJbnNlcnRBdCBvdXQgb2YgcmFuZ2UAQ2Fubm90IGluc2VydCBjaGFyYWN0ZXIgaW50byBmdWxsIHN0cmluZwBJbnZhbGlkIHR5cGUgZm9yIHN0cmluZyBmb3JtYXQAMjE0NzQ4MzY0OAAyMTQ3NDgzNjQ3ADE4NDQ2NzQ0MDczNzA5NTUxNjE1AFRyaWVkIHRvIGdldCBTdHJpbmcgcGFzdCBTdHJpbmdzQnVmZmVyIGVuZABTdHJpbmcgdG9vIGJpZyB0byBpbnNlcnQgaW50byBTdHJpbmdzQnVmZmVyAFRyaWVkIHRvIHJlbW92ZSBTdHJpbmcgcGFzdCBTdHJpbmdzQnVmZmVyIGVuZABXb3JkV3JhcF9HZXRCYWNrTGVuZ3RoIC0gaW5kZXggcGFzdCBlbmQgb2Ygc3RyaW5nAFdvcmRXcmFwX0dldEZvcndhcmRMZW5ndGggLSBpbmRleCBwYXN0IGVuZCBvZiBzdHJpbmcAYW5pbWF0aW9ucy5wbmcAZGVjb2RpbmcAYW5pbWF0aW9ucy50eHQAdXNlbGF2YWFuaW0AdXNld2F0ZXJhbmltACZjTm90IGVub3VnaCBhcmd1bWVudHMgZm9yIGFuaW06ICVzACZjSW52YWxpZCBhbmltIHRpbGUgWCBjb29yZDogJXMAJmNJbnZhbGlkIGFuaW0gdGlsZSBZIGNvb3JkOiAlcwAmY0ludmFsaWQgYW5pbSBmcmFtZSBYIGNvb3JkOiAlcwAmY0ludmFsaWQgYW5pbSBmcmFtZSBZIGNvb3JkOiAlcwAmY0ludmFsaWQgYW5pbSBmcmFtZSBzaXplOiAlcwAmY0ludmFsaWQgYW5pbSBzdGF0ZXMgY291bnQ6ICVzACZjSW52YWxpZCBhbmltIGZyYW1lIGRlbGF5OiAlcwAmY0Nhbm5vdCBzaG93IG92ZXIgNTEyIGFuaW1hdGlvbnMAZGVmYXVsdHRleHBhY2sAZGVmYXVsdC56aXAAJmNDdXJyZW50IHRleHR1cmUgcGFjayBzcGVjaWZpZXMgaXQgdXNlcyBhbmltYXRpb25zLAAmY2J1dCBpcyBtaXNzaW5nIGFuaW1hdGlvbnMucG5nAGFuaW0gZnJhbWUAJmNBbmltYXRpb24gZnJhbWVzIGZvciB0aWxlICglaSwgJWkpIGFyZSBiaWdnZXIgdGhhbiB0aGUgc2l6ZSBvZiBhIHRpbGUgaW4gdGVycmFpbi5wbmcAJmNTb21lIG9mIHRoZSBhbmltYXRpb24gZnJhbWVzIGZvciB0aWxlICglaSwgJWkpIGFyZSBhdCBjb29yZGluYXRlcyBvdXRzaWRlIGFuaW1hdGlvbnMucG5nAExvYWRlZCBuZXcgYXRsYXM6ICVpIGJtcHMsICVpIHBlciBibXAAdGV4dHVyZWNhY2hlL2FjY2VwdGVkdXJscy50eHQAdGV4dHVyZWNhY2hlL2RlbmllZHVybHMudHh0AHRleHR1cmVjYWNoZS9ldGFncy50eHQAdGV4dHVyZWNhY2hlL2xhc3Rtb2RpZmllZC50eHQAdGV4dHVyZWNhY2hlLyVzAG9wZW5pbmcgY2FjaGUgZm9yAGNhY2hpbmcALwB0ZXhwYWNrcy8lcwBleHRyYWN0aW5nAAFjbG9zaW5nIGNhY2hlIGZvcgAuemlwAGh0dHBzOi8vAGh0dHA6Ly8AY3JlYXRpbmcgZGlyZWN0b3J5AGluaXRpbmcgYXJyYXkAcmVzaXppbmcgYXJyYXkAb3BlbmluZwByZWFkaW5nIGZyb20AU2tpcHBpbmcgZXh0cmVtZWx5IGxvbmcgbGluZSBpbiAlYywgZmlsZSBtYXkgaGF2ZSBiZWVuIGNvcnJ1cHRlZABjbG9zaW5nACVzJXIlcwBjcmVhdGluZwB3cml0aW5nIHRvACY3KCMwMDAwMDAgLSAjRkZGRkZGKQAmNyglaSAtICVpKQAmNyhhbiBpbnRlZ2VyKQAmNyglZjIgLSAlZjIpACY3KEVudGVyIG5hbWUpACY3KEVudGVyIHRleHQpAFNlbGVjdCBibG9jawAgKElEICVpJmYALCBwbGFjZSAmY05vJmYALCBkZWxldGUgJmNObyZmAF8APiAAJmUlaSBtYXRjaGluZyBuYW1lczogAENvbm5lY3RlZCBwbGF5ZXJzOgABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4ff5ucnZ6mp6ipqq2ur/n6AE90aGVyAICBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmqChoqOkpQBMZXR0ZXJzALCxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3/4ATGluZS9Cb3gAn6us4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pv8/QBNYXRoAENvbG91cnMAAU1vZHVsZVsnY2FudmFzJ10uc3R5bGVbJ2N1cnNvciddID0gJ2RlZmF1bHQnOwBNb2R1bGVbJ2NhbnZhcyddLnN0eWxlWydjdXJzb3InXSA9ICdub25lJzsAeyBhbGVydChVVEY4VG9TdHJpbmcoJDApICsgIlxuXG4iICsgVVRGOFRvU3RyaW5nKCQxKSk7IH0AVW5zdXBwb3J0ZWQgYml0cyBwZXIgcGl4ZWwAInsgcmV0dXJuIHNjcmVlbi53aWR0aDsgfSIAInsgcmV0dXJuIHNjcmVlbi5oZWlnaHQ7IH0iAHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjb3B5JywgZnVuY3Rpb24oZSkgeyBpZiAod2luZG93LmdldFNlbGVjdGlvbiAmJiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSkgcmV0dXJuOyBpZiAod2luZG93LmNjX2NvcHlUZXh0KSB7IGlmIChlLmNsaXBib2FyZERhdGEpIHsgZS5jbGlwYm9hcmREYXRhLnNldERhdGEoJ3RleHQvcGxhaW4nLCB3aW5kb3cuY2NfY29weVRleHQpOyB9IGVsc2UgeyB3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCdUZXh0Jywgd2luZG93LmNjX2NvcHlUZXh0KTsgfSBlLnByZXZlbnREZWZhdWx0KCk7IHdpbmRvdy5jY19jb3B5VGV4dCA9IG51bGw7IH0gfSk7AHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIGZ1bmN0aW9uKGUpIHsgdmFyIGNvbnRlbnRzID0gZS5jbGlwYm9hcmREYXRhID8gZS5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKSA6IHdpbmRvdy5jbGlwYm9hcmREYXRhLmdldERhdGEoJ1RleHQnKTsgY2NhbGwoJ1dpbmRvd19Hb3RDbGlwYm9hcmRUZXh0JywgJ3ZvaWQnLCBbJ3N0cmluZyddLCBbY29udGVudHNdKTsgfSk7ACJ7IHJldHVybiAvaVBob25lfGlQYWR8aVBvZHxBbmRyb2lkL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTsgfSIAI3dpbmRvdwAjY2FudmFzAHsgZG9jdW1lbnQudGl0bGUgPSBVVEY4VG9TdHJpbmcoJDApOyB9AHsgd2luZG93LmNjX2NvcHlUZXh0ID0gVVRGOFRvU3RyaW5nKCQwKTsgfQBPUEVOIFNFU0FNRQB7IHZhciBlbGVtID0gd2luZG93LmNjX2lucHV0RWxlbTsgaWYgKCFlbGVtKSB7IGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOyBlbGVtLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAncG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvcGFjaXR5OjAuMzsgcmVzaXplOm5vbmU7IHBvaW50ZXItZXZlbnRzOm5vbmU7Jyk7IGVsZW0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBmdW5jdGlvbihldikgeyBjY2FsbCgnV2luZG93X09uVGV4dENoYW5nZWQnLCAndm9pZCcsIFsnc3RyaW5nJ10sIFtldi50YXJnZXQudmFsdWVdKTsgfSwgZmFsc2UpOyB3aW5kb3cuY2NfaW5wdXRFbGVtID0gZWxlbTsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtKTsgfSBlbGVtLmZvY3VzKCk7IGVsZW0uY2xpY2soKTsgfQB7IGlmICghd2luZG93LmNjX2lucHV0RWxlbSkgcmV0dXJuOyB2YXIgc3RyID0gVVRGOFRvU3RyaW5nKCQwKTsgaWYgKHN0ciA9PSB3aW5kb3cuY2NfaW5wdXRFbGVtLnZhbHVlKSByZXR1cm47IHdpbmRvdy5jY19pbnB1dEVsZW0udmFsdWUgPSBzdHI7IH0AeyBpZiAoIXdpbmRvdy5jY19pbnB1dEVsZW0pIHJldHVybjsgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh3aW5kb3cuY2NfaW5wdXRFbGVtKTsgd2luZG93LmNjX2lucHV0RWxlbSA9IG51bGw7IH0AV2ViR0wgY29udGV4dCBsb3N0AFN1bm55AFJhaW55AFNub3d5AG1hcCBibG9ja3MgdXBwZXIAdGV4dHVyZVBhY2sAYWJvcnRlZCB3aXRoIGVtc2NyaXB0ZW5fZmV0Y2hfY2xvc2UoKQAvcHJvYy9zZWxmL2ZkLw==";
/* no memory initializer */
var tempDoublePtr = 1408576
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}}
var ENV={};function ___buildEnvironment(environ) {
// WARNING: Arbitrary limit!
var MAX_ENV_VALUES = 64;
var TOTAL_ENV_SIZE = 1024;
// Statically allocate memory for the environment.
var poolPtr;
var envPtr;
if (!___buildEnvironment.called) {
___buildEnvironment.called = true;
// Set default values. Use string keys for Closure Compiler compatibility.
ENV['USER'] = ENV['LOGNAME'] = 'web_user';
ENV['PATH'] = '/';
ENV['PWD'] = '/';
ENV['HOME'] = '/home/web_user';
ENV['LANG'] = 'C.UTF-8';
ENV['_'] = Module['thisProgram'];
// Allocate memory.
poolPtr = getMemory(TOTAL_ENV_SIZE);
envPtr = getMemory(MAX_ENV_VALUES * 4);
HEAP32[((envPtr)>>2)]=poolPtr;
HEAP32[((environ)>>2)]=envPtr;
} else {
envPtr = HEAP32[((environ)>>2)];
poolPtr = HEAP32[((envPtr)>>2)];
}
// Collect key=value lines.
var strings = [];
var totalSize = 0;
for (var key in ENV) {
if (typeof ENV[key] === 'string') {
var line = key + '=' + ENV[key];
strings.push(line);
totalSize += line.length;
}
}
if (totalSize > TOTAL_ENV_SIZE) {
throw new Error('Environment size exceeded TOTAL_ENV_SIZE!');
}
// Make new.
var ptrSize = 4;
for (var i = 0; i < strings.length; i++) {
var line = strings[i];
writeAsciiToMemory(line, poolPtr);
HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr;
poolPtr += line.length + 1;
}
HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0;
}
function ___setErrNo(value) {
if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
return value;
}
var PATH={splitPath:function (filename) {
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
return splitPathRe.exec(filename).slice(1);
},normalizeArray:function (parts, allowAboveRoot) {
// if the path tries to go above the root, `up` ends up > 0
var up = 0;
for (var i = parts.length - 1; i >= 0; i--) {
var last = parts[i];
if (last === '.') {
parts.splice(i, 1);
} else if (last === '..') {
parts.splice(i, 1);
up++;
} else if (up) {
parts.splice(i, 1);
up--;
}
}
// if the path is allowed to go above the root, restore leading ..s
if (allowAboveRoot) {
for (; up; up--) {
parts.unshift('..');
}
}
return parts;
},normalize:function (path) {
var isAbsolute = path.charAt(0) === '/',
trailingSlash = path.substr(-1) === '/';
// Normalize the path
path = PATH.normalizeArray(path.split('/').filter(function(p) {
return !!p;
}), !isAbsolute).join('/');
if (!path && !isAbsolute) {
path = '.';
}
if (path && trailingSlash) {
path += '/';
}
return (isAbsolute ? '/' : '') + path;
},dirname:function (path) {
var result = PATH.splitPath(path),
root = result[0],
dir = result[1];
if (!root && !dir) {
// No dirname whatsoever
return '.';
}
if (dir) {
// It has a dirname, strip trailing slash
dir = dir.substr(0, dir.length - 1);
}
return root + dir;
},basename:function (path) {
// EMSCRIPTEN return '/'' for '/', not an empty string
if (path === '/') return '/';
var lastSlash = path.lastIndexOf('/');
if (lastSlash === -1) return path;
return path.substr(lastSlash+1);
},extname:function (path) {
return PATH.splitPath(path)[3];
},join:function () {
var paths = Array.prototype.slice.call(arguments, 0);
return PATH.normalize(paths.join('/'));
},join2:function (l, r) {
return PATH.normalize(l + '/' + r);
},resolve:function () {
var resolvedPath = '',
resolvedAbsolute = false;
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
var path = (i >= 0) ? arguments[i] : FS.cwd();
// Skip empty and invalid entries
if (typeof path !== 'string') {
throw new TypeError('Arguments to path.resolve must be strings');
} else if (!path) {
return ''; // an invalid portion invalidates the whole thing
}
resolvedPath = path + '/' + resolvedPath;
resolvedAbsolute = path.charAt(0) === '/';
}
// At this point the path should be resolved to a full absolute path, but
// handle relative paths to be safe (might happen when process.cwd() fails)
resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
return !!p;
}), !resolvedAbsolute).join('/');
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
},relative:function (from, to) {
from = PATH.resolve(from).substr(1);
to = PATH.resolve(to).substr(1);
function trim(arr) {
var start = 0;
for (; start < arr.length; start++) {
if (arr[start] !== '') break;
}
var end = arr.length - 1;
for (; end >= 0; end--) {
if (arr[end] !== '') break;
}
if (start > end) return [];
return arr.slice(start, end - start + 1);
}
var fromParts = trim(from.split('/'));
var toParts = trim(to.split('/'));
var length = Math.min(fromParts.length, toParts.length);
var samePartsLength = length;
for (var i = 0; i < length; i++) {
if (fromParts[i] !== toParts[i]) {
samePartsLength = i;
break;
}
}
var outputParts = [];
for (var i = samePartsLength; i < fromParts.length; i++) {
outputParts.push('..');
}
outputParts = outputParts.concat(toParts.slice(samePartsLength));
return outputParts.join('/');
}};
var TTY={ttys:[],init:function () {
// https://github.com/emscripten-core/emscripten/pull/1555
// if (ENVIRONMENT_IS_NODE) {
// // currently, FS.init does not distinguish if process.stdin is a file or TTY
// // device, it always assumes it's a TTY device. because of this, we're forcing
// // process.stdin to UTF8 encoding to at least make stdin reading compatible
// // with text files until FS.init can be refactored.
// process['stdin']['setEncoding']('utf8');
// }
},shutdown:function () {
// https://github.com/emscripten-core/emscripten/pull/1555
// if (ENVIRONMENT_IS_NODE) {
// // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
// // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
// // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
// // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
// // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
// process['stdin']['pause']();
// }
},register:function (dev, ops) {
TTY.ttys[dev] = { input: [], output: [], ops: ops };
FS.registerDevice(dev, TTY.stream_ops);
},stream_ops:{open:function (stream) {
var tty = TTY.ttys[stream.node.rdev];
if (!tty) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
stream.tty = tty;
stream.seekable = false;
},close:function (stream) {
// flush any pending line data
stream.tty.ops.flush(stream.tty);
},flush:function (stream) {
stream.tty.ops.flush(stream.tty);
},read:function (stream, buffer, offset, length, pos /* ignored */) {
if (!stream.tty || !stream.tty.ops.get_char) {
throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
}
var bytesRead = 0;
for (var i = 0; i < length; i++) {
var result;
try {
result = stream.tty.ops.get_char(stream.tty);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (result === undefined && bytesRead === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
}
if (result === null || result === undefined) break;
bytesRead++;
buffer[offset+i] = result;
}
if (bytesRead) {
stream.node.timestamp = Date.now();
}
return bytesRead;
},write:function (stream, buffer, offset, length, pos) {
if (!stream.tty || !stream.tty.ops.put_char) {
throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
}
try {
for (var i = 0; i < length; i++) {
stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
}
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (length) {
stream.node.timestamp = Date.now();
}
return i;
}},default_tty_ops:{get_char:function (tty) {
if (!tty.input.length) {
var result = null;
if (ENVIRONMENT_IS_NODE) {
// we will read data by chunks of BUFSIZE
var BUFSIZE = 256;
var buf = new Buffer(BUFSIZE);
var bytesRead = 0;
var isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion
var fd = process.stdin.fd;
if (isPosixPlatform) {
// Linux and Mac cannot use process.stdin.fd (which isn't set up as sync)
var usingDevice = false;
try {
fd = fs.openSync('/dev/stdin', 'r');
usingDevice = true;
} catch (e) {}
}
try {
bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null);
} catch(e) {
// Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes,
// reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0.
if (e.toString().indexOf('EOF') != -1) bytesRead = 0;
else throw e;
}
if (usingDevice) { fs.closeSync(fd); }
if (bytesRead > 0) {
result = buf.slice(0, bytesRead).toString('utf-8');
} else {
result = null;
}
} else
if (typeof window != 'undefined' &&
typeof window.prompt == 'function') {
// Browser.
result = window.prompt('Input: '); // returns null on cancel
if (result !== null) {
result += '\n';
}
} else if (typeof readline == 'function') {
// Command line.
result = readline();
if (result !== null) {
result += '\n';
}
}
if (!result) {
return null;
}
tty.input = intArrayFromString(result, true);
}
return tty.input.shift();
},put_char:function (tty, val) {
if (val === null || val === 10) {
out(UTF8ArrayToString(tty.output, 0));
tty.output = [];
} else {
if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle.
}
},flush:function (tty) {
if (tty.output && tty.output.length > 0) {
out(UTF8ArrayToString(tty.output, 0));
tty.output = [];
}
}},default_tty1_ops:{put_char:function (tty, val) {
if (val === null || val === 10) {
err(UTF8ArrayToString(tty.output, 0));
tty.output = [];
} else {
if (val != 0) tty.output.push(val);
}
},flush:function (tty) {
if (tty.output && tty.output.length > 0) {
err(UTF8ArrayToString(tty.output, 0));
tty.output = [];
}
}}};
var MEMFS={ops_table:null,mount:function (mount) {
return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
},createNode:function (parent, name, mode, dev) {
if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
// no supported
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (!MEMFS.ops_table) {
MEMFS.ops_table = {
dir: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr,
lookup: MEMFS.node_ops.lookup,
mknod: MEMFS.node_ops.mknod,
rename: MEMFS.node_ops.rename,
unlink: MEMFS.node_ops.unlink,
rmdir: MEMFS.node_ops.rmdir,
readdir: MEMFS.node_ops.readdir,
symlink: MEMFS.node_ops.symlink
},
stream: {
llseek: MEMFS.stream_ops.llseek
}
},
file: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr
},
stream: {
llseek: MEMFS.stream_ops.llseek,
read: MEMFS.stream_ops.read,
write: MEMFS.stream_ops.write,
allocate: MEMFS.stream_ops.allocate,
mmap: MEMFS.stream_ops.mmap,
msync: MEMFS.stream_ops.msync
}
},
link: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr,
readlink: MEMFS.node_ops.readlink
},
stream: {}
},
chrdev: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr
},
stream: FS.chrdev_stream_ops
}
};
}
var node = FS.createNode(parent, name, mode, dev);
if (FS.isDir(node.mode)) {
node.node_ops = MEMFS.ops_table.dir.node;
node.stream_ops = MEMFS.ops_table.dir.stream;
node.contents = {};
} else if (FS.isFile(node.mode)) {
node.node_ops = MEMFS.ops_table.file.node;
node.stream_ops = MEMFS.ops_table.file.stream;
node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity.
// When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred
// for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size
// penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme.
node.contents = null;
} else if (FS.isLink(node.mode)) {
node.node_ops = MEMFS.ops_table.link.node;
node.stream_ops = MEMFS.ops_table.link.stream;
} else if (FS.isChrdev(node.mode)) {
node.node_ops = MEMFS.ops_table.chrdev.node;
node.stream_ops = MEMFS.ops_table.chrdev.stream;
}
node.timestamp = Date.now();
// add the new node to the parent
if (parent) {
parent.contents[name] = node;
}
return node;
},getFileDataAsRegularArray:function (node) {
if (node.contents && node.contents.subarray) {
var arr = [];
for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);
return arr; // Returns a copy of the original data.
}
return node.contents; // No-op, the file contents are already in a JS array. Return as-is.
},getFileDataAsTypedArray:function (node) {
if (!node.contents) return new Uint8Array;
if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes.
return new Uint8Array(node.contents);
},expandFileStorage:function (node, newCapacity) {
var prevCapacity = node.contents ? node.contents.length : 0;
if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough.
// Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity.
// For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to
// avoid overshooting the allocation cap by a very large margin.
var CAPACITY_DOUBLING_MAX = 1024 * 1024;
newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0);
if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding.
var oldContents = node.contents;
node.contents = new Uint8Array(newCapacity); // Allocate new storage.
if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage.
return;
},resizeFileStorage:function (node, newSize) {
if (node.usedBytes == newSize) return;
if (newSize == 0) {
node.contents = null; // Fully decommit when requesting a resize to zero.
node.usedBytes = 0;
return;
}
if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store.
var oldContents = node.contents;
node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage.
if (oldContents) {
node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage.
}
node.usedBytes = newSize;
return;
}
// Backing with a JS array.
if (!node.contents) node.contents = [];
if (node.contents.length > newSize) node.contents.length = newSize;
else while (node.contents.length < newSize) node.contents.push(0);
node.usedBytes = newSize;
},node_ops:{getattr:function (node) {
var attr = {};
// device numbers reuse inode numbers.
attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
attr.ino = node.id;
attr.mode = node.mode;
attr.nlink = 1;
attr.uid = 0;
attr.gid = 0;
attr.rdev = node.rdev;
if (FS.isDir(node.mode)) {
attr.size = 4096;
} else if (FS.isFile(node.mode)) {
attr.size = node.usedBytes;
} else if (FS.isLink(node.mode)) {
attr.size = node.link.length;
} else {
attr.size = 0;
}
attr.atime = new Date(node.timestamp);
attr.mtime = new Date(node.timestamp);
attr.ctime = new Date(node.timestamp);
// NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
// but this is not required by the standard.
attr.blksize = 4096;
attr.blocks = Math.ceil(attr.size / attr.blksize);
return attr;
},setattr:function (node, attr) {
if (attr.mode !== undefined) {
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
node.timestamp = attr.timestamp;
}
if (attr.size !== undefined) {
MEMFS.resizeFileStorage(node, attr.size);
}
},lookup:function (parent, name) {
throw FS.genericErrors[ERRNO_CODES.ENOENT];
},mknod:function (parent, name, mode, dev) {
return MEMFS.createNode(parent, name, mode, dev);
},rename:function (old_node, new_dir, new_name) {
// if we're overwriting a directory at new_name, make sure it's empty.
if (FS.isDir(old_node.mode)) {
var new_node;
try {
new_node = FS.lookupNode(new_dir, new_name);
} catch (e) {
}
if (new_node) {
for (var i in new_node.contents) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
}
}
// do the internal rewiring
delete old_node.parent.contents[old_node.name];
old_node.name = new_name;
new_dir.contents[new_name] = old_node;
old_node.parent = new_dir;
},unlink:function (parent, name) {
delete parent.contents[name];
},rmdir:function (parent, name) {
var node = FS.lookupNode(parent, name);
for (var i in node.contents) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
delete parent.contents[name];
},readdir:function (node) {
var entries = ['.', '..']
for (var key in node.contents) {
if (!node.contents.hasOwnProperty(key)) {
continue;
}
entries.push(key);
}
return entries;
},symlink:function (parent, newname, oldpath) {
var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);
node.link = oldpath;
return node;
},readlink:function (node) {
if (!FS.isLink(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return node.link;
}},stream_ops:{read:function (stream, buffer, offset, length, position) {
var contents = stream.node.contents;
if (position >= stream.node.usedBytes) return 0;
var size = Math.min(stream.node.usedBytes - position, length);
if (size > 8 && contents.subarray) { // non-trivial, and typed array
buffer.set(contents.subarray(position, position + size), offset);
} else {
for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i];
}
return size;
},write:function (stream, buffer, offset, length, position, canOwn) {
// If memory can grow, we don't want to hold on to references of
// the memory Buffer, as they may get invalidated. That means
// we need to do a copy here.
canOwn = false;
if (!length) return 0;
var node = stream.node;
node.timestamp = Date.now();
if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array?
if (canOwn) {
node.contents = buffer.subarray(offset, offset + length);
node.usedBytes = length;
return length;
} else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data.
node.contents = new Uint8Array(buffer.subarray(offset, offset + length));
node.usedBytes = length;
return length;
} else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file?
node.contents.set(buffer.subarray(offset, offset + length), position);
return length;
}
}
// Appending to an existing file and we need to reallocate, or source data did not come as a typed array.
MEMFS.expandFileStorage(node, position+length);
if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available.
else {
for (var i = 0; i < length; i++) {
node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not.
}
}
node.usedBytes = Math.max(node.usedBytes, position+length);
return length;
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
position += stream.node.usedBytes;
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
},allocate:function (stream, offset, length) {
MEMFS.expandFileStorage(stream.node, offset + length);
stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
},mmap:function (stream, buffer, offset, length, position, prot, flags) {
if (!FS.isFile(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
var ptr;
var allocated;
var contents = stream.node.contents;
// Only make a new copy when MAP_PRIVATE is specified.
if ( !(flags & 2) &&
(contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
// We can't emulate MAP_SHARED when the file is not backed by the buffer
// we're mapping to (e.g. the HEAP buffer).
allocated = false;
ptr = contents.byteOffset;
} else {
// Try to avoid unnecessary slices.
if (position > 0 || position + length < stream.node.usedBytes) {
if (contents.subarray) {
contents = contents.subarray(position, position + length);
} else {
contents = Array.prototype.slice.call(contents, position, position + length);
}
}
allocated = true;
ptr = _malloc(length);
if (!ptr) {
throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
}
buffer.set(contents, ptr);
}
return { ptr: ptr, allocated: allocated };
},msync:function (stream, buffer, offset, length, mmapFlags) {
if (!FS.isFile(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
if (mmapFlags & 2) {
// MAP_PRIVATE calls need not to be synced back to underlying fs
return 0;
}
var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
// should we check if bytesWritten and length are the same?
return 0;
}}};
var IDBFS={dbs:{},indexedDB:function () {
if (typeof indexedDB !== 'undefined') return indexedDB;
var ret = null;
if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
assert(ret, 'IDBFS used, but indexedDB not supported');
return ret;
},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) {
// reuse all of the core MEMFS functionality
return MEMFS.mount.apply(null, arguments);
},syncfs:function (mount, populate, callback) {
IDBFS.getLocalSet(mount, function(err, local) {
if (err) return callback(err);
IDBFS.getRemoteSet(mount, function(err, remote) {
if (err) return callback(err);
var src = populate ? remote : local;
var dst = populate ? local : remote;
IDBFS.reconcile(src, dst, callback);
});
});
},getDB:function (name, callback) {
// check the cache first
var db = IDBFS.dbs[name];
if (db) {
return callback(null, db);
}
var req;
try {
req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);
} catch (e) {
return callback(e);
}
if (!req) {
return callback("Unable to connect to IndexedDB");
}
req.onupgradeneeded = function(e) {
var db = e.target.result;
var transaction = e.target.transaction;
var fileStore;
if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
} else {
fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
}
if (!fileStore.indexNames.contains('timestamp')) {
fileStore.createIndex('timestamp', 'timestamp', { unique: false });
}
};
req.onsuccess = function() {
db = req.result;
// add to the cache
IDBFS.dbs[name] = db;
callback(null, db);
};
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},getLocalSet:function (mount, callback) {
var entries = {};
function isRealDir(p) {
return p !== '.' && p !== '..';
};
function toAbsolute(root) {
return function(p) {
return PATH.join2(root, p);
}
};
var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));
while (check.length) {
var path = check.pop();
var stat;
try {
stat = FS.stat(path);
} catch (e) {
return callback(e);
}
if (FS.isDir(stat.mode)) {
check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));
}
entries[path] = { timestamp: stat.mtime };
}
return callback(null, { type: 'local', entries: entries });
},getRemoteSet:function (mount, callback) {
var entries = {};
IDBFS.getDB(mount.mountpoint, function(err, db) {
if (err) return callback(err);
try {
var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly');
transaction.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
var index = store.index('timestamp');
index.openKeyCursor().onsuccess = function(event) {
var cursor = event.target.result;
if (!cursor) {
return callback(null, { type: 'remote', db: db, entries: entries });
}
entries[cursor.primaryKey] = { timestamp: cursor.key };
cursor.continue();
};
} catch (e) {
return callback(e);
}
});
},loadLocalEntry:function (path, callback) {
var stat, node;
try {
var lookup = FS.lookupPath(path);
node = lookup.node;
stat = FS.stat(path);
} catch (e) {
return callback(e);
}
if (FS.isDir(stat.mode)) {
return callback(null, { timestamp: stat.mtime, mode: stat.mode });
} else if (FS.isFile(stat.mode)) {
// Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array.
// Therefore always convert the file contents to a typed array first before writing the data to IndexedDB.
node.contents = MEMFS.getFileDataAsTypedArray(node);
return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents });
} else {
return callback(new Error('node type not supported'));
}
},storeLocalEntry:function (path, entry, callback) {
try {
if (FS.isDir(entry.mode)) {
FS.mkdir(path, entry.mode);
} else if (FS.isFile(entry.mode)) {
FS.writeFile(path, entry.contents, { canOwn: true });
} else {
return callback(new Error('node type not supported'));
}
FS.chmod(path, entry.mode);
FS.utime(path, entry.timestamp, entry.timestamp);
} catch (e) {
return callback(e);
}
callback(null);
},removeLocalEntry:function (path, callback) {
try {
var lookup = FS.lookupPath(path);
var stat = FS.stat(path);
if (FS.isDir(stat.mode)) {
FS.rmdir(path);
} else if (FS.isFile(stat.mode)) {
FS.unlink(path);
}
} catch (e) {
return callback(e);
}
callback(null);
},loadRemoteEntry:function (store, path, callback) {
var req = store.get(path);
req.onsuccess = function(event) { callback(null, event.target.result); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},storeRemoteEntry:function (store, path, entry, callback) {
var req = store.put(entry, path);
req.onsuccess = function() { callback(null); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},removeRemoteEntry:function (store, path, callback) {
var req = store.delete(path);
req.onsuccess = function() { callback(null); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},reconcile:function (src, dst, callback) {
var total = 0;
var create = [];
Object.keys(src.entries).forEach(function (key) {
var e = src.entries[key];
var e2 = dst.entries[key];
if (!e2 || e.timestamp > e2.timestamp) {
create.push(key);
total++;
}
});
var remove = [];
Object.keys(dst.entries).forEach(function (key) {
var e = dst.entries[key];
var e2 = src.entries[key];
if (!e2) {
remove.push(key);
total++;
}
});
if (!total) {
return callback(null);
}
var errored = false;
var completed = 0;
var db = src.type === 'remote' ? src.db : dst.db;
var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite');
var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
function done(err) {
if (err) {
if (!done.errored) {
done.errored = true;
return callback(err);
}
return;
}
if (++completed >= total) {
return callback(null);
}
};
transaction.onerror = function(e) {
done(this.error);
e.preventDefault();
};
// sort paths in ascending order so directory entries are created
// before the files inside them
create.sort().forEach(function (path) {
if (dst.type === 'local') {
IDBFS.loadRemoteEntry(store, path, function (err, entry) {
if (err) return done(err);
IDBFS.storeLocalEntry(path, entry, done);
});
} else {
IDBFS.loadLocalEntry(path, function (err, entry) {
if (err) return done(err);
IDBFS.storeRemoteEntry(store, path, entry, done);
});
}
});
// sort paths in descending order so files are deleted before their
// parent directories
remove.sort().reverse().forEach(function(path) {
if (dst.type === 'local') {
IDBFS.removeLocalEntry(path, done);
} else {
IDBFS.removeRemoteEntry(store, path, done);
}
});
}};
var NODEFS={isWindows:false,staticInit:function () {
NODEFS.isWindows = !!process.platform.match(/^win/);
var flags = process["binding"]("constants");
// Node.js 4 compatibility: it has no namespaces for constants
if (flags["fs"]) {
flags = flags["fs"];
}
NODEFS.flagsForNodeMap = {
"1024": flags["O_APPEND"],
"64": flags["O_CREAT"],
"128": flags["O_EXCL"],
"0": flags["O_RDONLY"],
"2": flags["O_RDWR"],
"4096": flags["O_SYNC"],
"512": flags["O_TRUNC"],
"1": flags["O_WRONLY"]
};
},bufferFrom:function (arrayBuffer) {
// Node.js < 4.5 compatibility: Buffer.from does not support ArrayBuffer
// Buffer.from before 4.5 was just a method inherited from Uint8Array
// Buffer.alloc has been added with Buffer.from together, so check it instead
return Buffer.alloc ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer);
},mount:function (mount) {
assert(ENVIRONMENT_IS_NODE);
return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0);
},createNode:function (parent, name, mode, dev) {
if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var node = FS.createNode(parent, name, mode);
node.node_ops = NODEFS.node_ops;
node.stream_ops = NODEFS.stream_ops;
return node;
},getMode:function (path) {
var stat;
try {
stat = fs.lstatSync(path);
if (NODEFS.isWindows) {
// Node.js on Windows never represents permission bit 'x', so
// propagate read bits to execute bits
stat.mode = stat.mode | ((stat.mode & 292) >> 2);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return stat.mode;
},realPath:function (node) {
var parts = [];
while (node.parent !== node) {
parts.push(node.name);
node = node.parent;
}
parts.push(node.mount.opts.root);
parts.reverse();
return PATH.join.apply(null, parts);
},flagsForNode:function (flags) {
flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process.
var newFlags = 0;
for (var k in NODEFS.flagsForNodeMap) {
if (flags & k) {
newFlags |= NODEFS.flagsForNodeMap[k];
flags ^= k;
}
}
if (!flags) {
return newFlags;
} else {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
},node_ops:{getattr:function (node) {
var path = NODEFS.realPath(node);
var stat;
try {
stat = fs.lstatSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
// node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096.
// See http://support.microsoft.com/kb/140365
if (NODEFS.isWindows && !stat.blksize) {
stat.blksize = 4096;
}
if (NODEFS.isWindows && !stat.blocks) {
stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0;
}
return {
dev: stat.dev,
ino: stat.ino,
mode: stat.mode,
nlink: stat.nlink,
uid: stat.uid,
gid: stat.gid,
rdev: stat.rdev,
size: stat.size,
atime: stat.atime,
mtime: stat.mtime,
ctime: stat.ctime,
blksize: stat.blksize,
blocks: stat.blocks
};
},setattr:function (node, attr) {
var path = NODEFS.realPath(node);
try {
if (attr.mode !== undefined) {
fs.chmodSync(path, attr.mode);
// update the common node structure mode as well
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
var date = new Date(attr.timestamp);
fs.utimesSync(path, date, date);
}
if (attr.size !== undefined) {
fs.truncateSync(path, attr.size);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},lookup:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
var mode = NODEFS.getMode(path);
return NODEFS.createNode(parent, name, mode);
},mknod:function (parent, name, mode, dev) {
var node = NODEFS.createNode(parent, name, mode, dev);
// create the backing node for this in the fs root as well
var path = NODEFS.realPath(node);
try {
if (FS.isDir(node.mode)) {
fs.mkdirSync(path, node.mode);
} else {
fs.writeFileSync(path, '', { mode: node.mode });
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return node;
},rename:function (oldNode, newDir, newName) {
var oldPath = NODEFS.realPath(oldNode);
var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
try {
fs.renameSync(oldPath, newPath);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},unlink:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
try {
fs.unlinkSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},rmdir:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
try {
fs.rmdirSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},readdir:function (node) {
var path = NODEFS.realPath(node);
try {
return fs.readdirSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},symlink:function (parent, newName, oldPath) {
var newPath = PATH.join2(NODEFS.realPath(parent), newName);
try {
fs.symlinkSync(oldPath, newPath);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},readlink:function (node) {
var path = NODEFS.realPath(node);
try {
path = fs.readlinkSync(path);
path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path);
return path;
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
}},stream_ops:{open:function (stream) {
var path = NODEFS.realPath(stream.node);
try {
if (FS.isFile(stream.node.mode)) {
stream.nfd = fs.openSync(path, NODEFS.flagsForNode(stream.flags));
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},close:function (stream) {
try {
if (FS.isFile(stream.node.mode) && stream.nfd) {
fs.closeSync(stream.nfd);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},read:function (stream, buffer, offset, length, position) {
// Node.js < 6 compatibility: node errors on 0 length reads
if (length === 0) return 0;
try {
return fs.readSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},write:function (stream, buffer, offset, length, position) {
try {
return fs.writeSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
try {
var stat = fs.fstatSync(stream.nfd);
position += stat.size;
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
}}};
var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) {
assert(ENVIRONMENT_IS_WORKER);
if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync();
var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0);
var createdParents = {};
function ensureParent(path) {
// return the parent node, creating subdirs as necessary
var parts = path.split('/');
var parent = root;
for (var i = 0; i < parts.length-1; i++) {
var curr = parts.slice(0, i+1).join('/');
// Issue 4254: Using curr as a node name will prevent the node
// from being found in FS.nameTable when FS.open is called on
// a path which holds a child of this node,
// given that all FS functions assume node names
// are just their corresponding parts within their given path,
// rather than incremental aggregates which include their parent's
// directories.
if (!createdParents[curr]) {
createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0);
}
parent = createdParents[curr];
}
return parent;
}
function base(path) {
var parts = path.split('/');
return parts[parts.length-1];
}
// We also accept FileList here, by using Array.prototype
Array.prototype.forEach.call(mount.opts["files"] || [], function(file) {
WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate);
});
(mount.opts["blobs"] || []).forEach(function(obj) {
WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]);
});
(mount.opts["packages"] || []).forEach(function(pack) {
pack['metadata'].files.forEach(function(file) {
var name = file.filename.substr(1); // remove initial slash
WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end));
});
});
return root;
},createNode:function (parent, name, mode, dev, contents, mtime) {
var node = FS.createNode(parent, name, mode);
node.mode = mode;
node.node_ops = WORKERFS.node_ops;
node.stream_ops = WORKERFS.stream_ops;
node.timestamp = (mtime || new Date).getTime();
assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE);
if (mode === WORKERFS.FILE_MODE) {
node.size = contents.size;
node.contents = contents;
} else {
node.size = 4096;
node.contents = {};
}
if (parent) {
parent.contents[name] = node;
}
return node;
},node_ops:{getattr:function (node) {
return {
dev: 1,
ino: undefined,
mode: node.mode,
nlink: 1,
uid: 0,
gid: 0,
rdev: undefined,
size: node.size,
atime: new Date(node.timestamp),
mtime: new Date(node.timestamp),
ctime: new Date(node.timestamp),
blksize: 4096,
blocks: Math.ceil(node.size / 4096),
};
},setattr:function (node, attr) {
if (attr.mode !== undefined) {
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
node.timestamp = attr.timestamp;
}
},lookup:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
},mknod:function (parent, name, mode, dev) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},rename:function (oldNode, newDir, newName) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},unlink:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},rmdir:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},readdir:function (node) {
var entries = ['.', '..'];
for (var key in node.contents) {
if (!node.contents.hasOwnProperty(key)) {
continue;
}
entries.push(key);
}
return entries;
},symlink:function (parent, newName, oldPath) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},readlink:function (node) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}},stream_ops:{read:function (stream, buffer, offset, length, position) {
if (position >= stream.node.size) return 0;
var chunk = stream.node.contents.slice(position, position + length);
var ab = WORKERFS.reader.readAsArrayBuffer(chunk);
buffer.set(new Uint8Array(ab), offset);
return chunk.size;
},write:function (stream, buffer, offset, length, position) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
position += stream.node.size;
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
}}};
var _stdin=1408336;
var _stdout=1408352;
var _stderr=1408368;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) {
if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();
return ___setErrNo(e.errno);
},lookupPath:function (path, opts) {
path = PATH.resolve(FS.cwd(), path);
opts = opts || {};
if (!path) return { path: '', node: null };
var defaults = {
follow_mount: true,
recurse_count: 0
};
for (var key in defaults) {
if (opts[key] === undefined) {
opts[key] = defaults[key];
}
}
if (opts.recurse_count > 8) { // max recursive lookup of 8
throw new FS.ErrnoError(40);
}
// split the path
var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
return !!p;
}), false);
// start at the root
var current = FS.root;
var current_path = '/';
for (var i = 0; i < parts.length; i++) {
var islast = (i === parts.length-1);
if (islast && opts.parent) {
// stop resolving
break;
}
current = FS.lookupNode(current, parts[i]);
current_path = PATH.join2(current_path, parts[i]);
// jump to the mount's root node if this is a mountpoint
if (FS.isMountpoint(current)) {
if (!islast || (islast && opts.follow_mount)) {
current = current.mounted.root;
}
}
// by default, lookupPath will not follow a symlink if it is the final path component.
// setting opts.follow = true will override this behavior.
if (!islast || opts.follow) {
var count = 0;
while (FS.isLink(current.mode)) {
var link = FS.readlink(current_path);
current_path = PATH.resolve(PATH.dirname(current_path), link);
var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
current = lookup.node;
if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
throw new FS.ErrnoError(40);
}
}
}
}
return { path: current_path, node: current };
},getPath:function (node) {
var path;
while (true) {
if (FS.isRoot(node)) {
var mount = node.mount.mountpoint;
if (!path) return mount;
return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path;
}
path = path ? node.name + '/' + path : node.name;
node = node.parent;
}
},hashName:function (parentid, name) {
var hash = 0;
for (var i = 0; i < name.length; i++) {
hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
}
return ((parentid + hash) >>> 0) % FS.nameTable.length;
},hashAddNode:function (node) {
var hash = FS.hashName(node.parent.id, node.name);
node.name_next = FS.nameTable[hash];
FS.nameTable[hash] = node;
},hashRemoveNode:function (node) {
var hash = FS.hashName(node.parent.id, node.name);
if (FS.nameTable[hash] === node) {
FS.nameTable[hash] = node.name_next;
} else {
var current = FS.nameTable[hash];
while (current) {
if (current.name_next === node) {
current.name_next = node.name_next;
break;
}
current = current.name_next;
}
}
},lookupNode:function (parent, name) {
var err = FS.mayLookup(parent);
if (err) {
throw new FS.ErrnoError(err, parent);
}
var hash = FS.hashName(parent.id, name);
for (var node = FS.nameTable[hash]; node; node = node.name_next) {
var nodeName = node.name;
if (node.parent.id === parent.id && nodeName === name) {
return node;
}
}
// if we failed to find it in the cache, call into the VFS
return FS.lookup(parent, name);
},createNode:function (parent, name, mode, rdev) {
if (!FS.FSNode) {
FS.FSNode = function(parent, name, mode, rdev) {
if (!parent) {
parent = this; // root node sets parent to itself
}
this.parent = parent;
this.mount = parent.mount;
this.mounted = null;
this.id = FS.nextInode++;
this.name = name;
this.mode = mode;
this.node_ops = {};
this.stream_ops = {};
this.rdev = rdev;
};
FS.FSNode.prototype = {};
// compatibility
var readMode = 292 | 73;
var writeMode = 146;
// NOTE we must use Object.defineProperties instead of individual calls to
// Object.defineProperty in order to make closure compiler happy
Object.defineProperties(FS.FSNode.prototype, {
read: {
get: function() { return (this.mode & readMode) === readMode; },
set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; }
},
write: {
get: function() { return (this.mode & writeMode) === writeMode; },
set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }
},
isFolder: {
get: function() { return FS.isDir(this.mode); }
},
isDevice: {
get: function() { return FS.isChrdev(this.mode); }
}
});
}
var node = new FS.FSNode(parent, name, mode, rdev);
FS.hashAddNode(node);
return node;
},destroyNode:function (node) {
FS.hashRemoveNode(node);
},isRoot:function (node) {
return node === node.parent;
},isMountpoint:function (node) {
return !!node.mounted;
},isFile:function (mode) {
return (mode & 61440) === 32768;
},isDir:function (mode) {
return (mode & 61440) === 16384;
},isLink:function (mode) {
return (mode & 61440) === 40960;
},isChrdev:function (mode) {
return (mode & 61440) === 8192;
},isBlkdev:function (mode) {
return (mode & 61440) === 24576;
},isFIFO:function (mode) {
return (mode & 61440) === 4096;
},isSocket:function (mode) {
return (mode & 49152) === 49152;
},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) {
var flags = FS.flagModes[str];
if (typeof flags === 'undefined') {
throw new Error('Unknown file open mode: ' + str);
}
return flags;
},flagsToPermissionString:function (flag) {
var perms = ['r', 'w', 'rw'][flag & 3];
if ((flag & 512)) {
perms += 'w';
}
return perms;
},nodePermissions:function (node, perms) {
if (FS.ignorePermissions) {
return 0;
}
// return 0 if any user, group or owner bits are set.
if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
return 13;
} else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
return 13;
} else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
return 13;
}
return 0;
},mayLookup:function (dir) {
var err = FS.nodePermissions(dir, 'x');
if (err) return err;
if (!dir.node_ops.lookup) return 13;
return 0;
},mayCreate:function (dir, name) {
try {
var node = FS.lookupNode(dir, name);
return 17;
} catch (e) {
}
return FS.nodePermissions(dir, 'wx');
},mayDelete:function (dir, name, isdir) {
var node;
try {
node = FS.lookupNode(dir, name);
} catch (e) {
return e.errno;
}
var err = FS.nodePermissions(dir, 'wx');
if (err) {
return err;
}
if (isdir) {
if (!FS.isDir(node.mode)) {
return 20;
}
if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
return 16;
}
} else {
if (FS.isDir(node.mode)) {
return 21;
}
}
return 0;
},mayOpen:function (node, flags) {
if (!node) {
return 2;
}
if (FS.isLink(node.mode)) {
return 40;
} else if (FS.isDir(node.mode)) {
if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write
(flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only)
return 21;
}
}
return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
},MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {
fd_start = fd_start || 0;
fd_end = fd_end || FS.MAX_OPEN_FDS;
for (var fd = fd_start; fd <= fd_end; fd++) {
if (!FS.streams[fd]) {
return fd;
}
}
throw new FS.ErrnoError(24);
},getStream:function (fd) {
return FS.streams[fd];
},createStream:function (stream, fd_start, fd_end) {
if (!FS.FSStream) {
FS.FSStream = function(){};
FS.FSStream.prototype = {};
// compatibility
Object.defineProperties(FS.FSStream.prototype, {
object: {
get: function() { return this.node; },
set: function(val) { this.node = val; }
},
isRead: {
get: function() { return (this.flags & 2097155) !== 1; }
},
isWrite: {
get: function() { return (this.flags & 2097155) !== 0; }
},
isAppend: {
get: function() { return (this.flags & 1024); }
}
});
}
// clone it, so we can return an instance of FSStream
var newStream = new FS.FSStream();
for (var p in stream) {
newStream[p] = stream[p];
}
stream = newStream;
var fd = FS.nextfd(fd_start, fd_end);
stream.fd = fd;
FS.streams[fd] = stream;
return stream;
},closeStream:function (fd) {
FS.streams[fd] = null;
},chrdev_stream_ops:{open:function (stream) {
var device = FS.getDevice(stream.node.rdev);
// override node's stream ops with the device's
stream.stream_ops = device.stream_ops;
// forward the open call
if (stream.stream_ops.open) {
stream.stream_ops.open(stream);
}
},llseek:function () {
throw new FS.ErrnoError(29);
}},major:function (dev) {
return ((dev) >> 8);
},minor:function (dev) {
return ((dev) & 0xff);
},makedev:function (ma, mi) {
return ((ma) << 8 | (mi));
},registerDevice:function (dev, ops) {
FS.devices[dev] = { stream_ops: ops };
},getDevice:function (dev) {
return FS.devices[dev];
},getMounts:function (mount) {
var mounts = [];
var check = [mount];
while (check.length) {
var m = check.pop();
mounts.push(m);
check.push.apply(check, m.mounts);
}
return mounts;
},syncfs:function (populate, callback) {
if (typeof(populate) === 'function') {
callback = populate;
populate = false;
}
FS.syncFSRequests++;
if (FS.syncFSRequests > 1) {
console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work');
}
var mounts = FS.getMounts(FS.root.mount);
var completed = 0;
function doCallback(err) {
FS.syncFSRequests--;
return callback(err);
}
function done(err) {
if (err) {
if (!done.errored) {
done.errored = true;
return doCallback(err);
}
return;
}
if (++completed >= mounts.length) {
doCallback(null);
}
};
// sync all mounts
mounts.forEach(function (mount) {
if (!mount.type.syncfs) {
return done(null);
}
mount.type.syncfs(mount, populate, done);
});
},mount:function (type, opts, mountpoint) {
var root = mountpoint === '/';
var pseudo = !mountpoint;
var node;
if (root && FS.root) {
throw new FS.ErrnoError(16);
} else if (!root && !pseudo) {
var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
mountpoint = lookup.path; // use the absolute path
node = lookup.node;
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(16);
}
if (!FS.isDir(node.mode)) {
throw new FS.ErrnoError(20);
}
}
var mount = {
type: type,
opts: opts,
mountpoint: mountpoint,
mounts: []
};
// create a root node for the fs
var mountRoot = type.mount(mount);
mountRoot.mount = mount;
mount.root = mountRoot;
if (root) {
FS.root = mountRoot;
} else if (node) {
// set as a mountpoint
node.mounted = mount;
// add the new mount to the current mount's children
if (node.mount) {
node.mount.mounts.push(mount);
}
}
return mountRoot;
},unmount:function (mountpoint) {
var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
if (!FS.isMountpoint(lookup.node)) {
throw new FS.ErrnoError(22);
}
// destroy the nodes for this mount, and all its child mounts
var node = lookup.node;
var mount = node.mounted;
var mounts = FS.getMounts(mount);
Object.keys(FS.nameTable).forEach(function (hash) {
var current = FS.nameTable[hash];
while (current) {
var next = current.name_next;
if (mounts.indexOf(current.mount) !== -1) {
FS.destroyNode(current);
}
current = next;
}
});
// no longer a mountpoint
node.mounted = null;
// remove this mount from the child mounts
var idx = node.mount.mounts.indexOf(mount);
node.mount.mounts.splice(idx, 1);
},lookup:function (parent, name) {
return parent.node_ops.lookup(parent, name);
},mknod:function (path, mode, dev) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
if (!name || name === '.' || name === '..') {
throw new FS.ErrnoError(22);
}
var err = FS.mayCreate(parent, name);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.mknod) {
throw new FS.ErrnoError(1);
}
return parent.node_ops.mknod(parent, name, mode, dev);
},create:function (path, mode) {
mode = mode !== undefined ? mode : 438 /* 0666 */;
mode &= 4095;
mode |= 32768;
return FS.mknod(path, mode, 0);
},mkdir:function (path, mode) {
mode = mode !== undefined ? mode : 511 /* 0777 */;
mode &= 511 | 512;
mode |= 16384;
return FS.mknod(path, mode, 0);
},mkdirTree:function (path, mode) {
var dirs = path.split('/');
var d = '';
for (var i = 0; i < dirs.length; ++i) {
if (!dirs[i]) continue;
d += '/' + dirs[i];
try {
FS.mkdir(d, mode);
} catch(e) {
if (e.errno != 17) throw e;
}
}
},mkdev:function (path, mode, dev) {
if (typeof(dev) === 'undefined') {
dev = mode;
mode = 438 /* 0666 */;
}
mode |= 8192;
return FS.mknod(path, mode, dev);
},symlink:function (oldpath, newpath) {
if (!PATH.resolve(oldpath)) {
throw new FS.ErrnoError(2);
}
var lookup = FS.lookupPath(newpath, { parent: true });
var parent = lookup.node;
if (!parent) {
throw new FS.ErrnoError(2);
}
var newname = PATH.basename(newpath);
var err = FS.mayCreate(parent, newname);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.symlink) {
throw new FS.ErrnoError(1);
}
return parent.node_ops.symlink(parent, newname, oldpath);
},rename:function (old_path, new_path) {
var old_dirname = PATH.dirname(old_path);
var new_dirname = PATH.dirname(new_path);
var old_name = PATH.basename(old_path);
var new_name = PATH.basename(new_path);
// parents must exist
var lookup, old_dir, new_dir;
try {
lookup = FS.lookupPath(old_path, { parent: true });
old_dir = lookup.node;
lookup = FS.lookupPath(new_path, { parent: true });
new_dir = lookup.node;
} catch (e) {
throw new FS.ErrnoError(16);
}
if (!old_dir || !new_dir) throw new FS.ErrnoError(2);
// need to be part of the same mount
if (old_dir.mount !== new_dir.mount) {
throw new FS.ErrnoError(18);
}
// source must exist
var old_node = FS.lookupNode(old_dir, old_name);
// old path should not be an ancestor of the new path
var relative = PATH.relative(old_path, new_dirname);
if (relative.charAt(0) !== '.') {
throw new FS.ErrnoError(22);
}
// new path should not be an ancestor of the old path
relative = PATH.relative(new_path, old_dirname);
if (relative.charAt(0) !== '.') {
throw new FS.ErrnoError(39);
}
// see if the new path already exists
var new_node;
try {
new_node = FS.lookupNode(new_dir, new_name);
} catch (e) {
// not fatal
}
// early out if nothing needs to change
if (old_node === new_node) {
return;
}
// we'll need to delete the old entry
var isdir = FS.isDir(old_node.mode);
var err = FS.mayDelete(old_dir, old_name, isdir);
if (err) {
throw new FS.ErrnoError(err);
}
// need delete permissions if we'll be overwriting.
// need create permissions if new doesn't already exist.
err = new_node ?
FS.mayDelete(new_dir, new_name, isdir) :
FS.mayCreate(new_dir, new_name);
if (err) {
throw new FS.ErrnoError(err);
}
if (!old_dir.node_ops.rename) {
throw new FS.ErrnoError(1);
}
if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
throw new FS.ErrnoError(16);
}
// if we are going to change the parent, check write permissions
if (new_dir !== old_dir) {
err = FS.nodePermissions(old_dir, 'w');
if (err) {
throw new FS.ErrnoError(err);
}
}
try {
if (FS.trackingDelegate['willMovePath']) {
FS.trackingDelegate['willMovePath'](old_path, new_path);
}
} catch(e) {
console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message);
}
// remove the node from the lookup hash
FS.hashRemoveNode(old_node);
// do the underlying fs rename
try {
old_dir.node_ops.rename(old_node, new_dir, new_name);
} catch (e) {
throw e;
} finally {
// add the node back to the hash (in case node_ops.rename
// changed its name)
FS.hashAddNode(old_node);
}
try {
if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path);
} catch(e) {
console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message);
}
},rmdir:function (path) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
var node = FS.lookupNode(parent, name);
var err = FS.mayDelete(parent, name, true);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.rmdir) {
throw new FS.ErrnoError(1);
}
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(16);
}
try {
if (FS.trackingDelegate['willDeletePath']) {
FS.trackingDelegate['willDeletePath'](path);
}
} catch(e) {
console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message);
}
parent.node_ops.rmdir(parent, name);
FS.destroyNode(node);
try {
if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);
} catch(e) {
console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message);
}
},readdir:function (path) {
var lookup = FS.lookupPath(path, { follow: true });
var node = lookup.node;
if (!node.node_ops.readdir) {
throw new FS.ErrnoError(20);
}
return node.node_ops.readdir(node);
},unlink:function (path) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
var node = FS.lookupNode(parent, name);
var err = FS.mayDelete(parent, name, false);
if (err) {
// According to POSIX, we should map EISDIR to EPERM, but
// we instead do what Linux does (and we must, as we use
// the musl linux libc).
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.unlink) {
throw new FS.ErrnoError(1);
}
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(16);
}
try {
if (FS.trackingDelegate['willDeletePath']) {
FS.trackingDelegate['willDeletePath'](path);
}
} catch(e) {
console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message);
}
parent.node_ops.unlink(parent, name);
FS.destroyNode(node);
try {
if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);
} catch(e) {
console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message);
}
},readlink:function (path) {
var lookup = FS.lookupPath(path);
var link = lookup.node;
if (!link) {
throw new FS.ErrnoError(2);
}
if (!link.node_ops.readlink) {
throw new FS.ErrnoError(22);
}
return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
},stat:function (path, dontFollow) {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
var node = lookup.node;
if (!node) {
throw new FS.ErrnoError(2);
}
if (!node.node_ops.getattr) {
throw new FS.ErrnoError(1);
}
return node.node_ops.getattr(node);
},lstat:function (path) {
return FS.stat(path, true);
},chmod:function (path, mode, dontFollow) {
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(1);
}
node.node_ops.setattr(node, {
mode: (mode & 4095) | (node.mode & ~4095),
timestamp: Date.now()
});
},lchmod:function (path, mode) {
FS.chmod(path, mode, true);
},fchmod:function (fd, mode) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(9);
}
FS.chmod(stream.node, mode);
},chown:function (path, uid, gid, dontFollow) {
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(1);
}
node.node_ops.setattr(node, {
timestamp: Date.now()
// we ignore the uid / gid for now
});
},lchown:function (path, uid, gid) {
FS.chown(path, uid, gid, true);
},fchown:function (fd, uid, gid) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(9);
}
FS.chown(stream.node, uid, gid);
},truncate:function (path, len) {
if (len < 0) {
throw new FS.ErrnoError(22);
}
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: true });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(1);
}
if (FS.isDir(node.mode)) {
throw new FS.ErrnoError(21);
}
if (!FS.isFile(node.mode)) {
throw new FS.ErrnoError(22);
}
var err = FS.nodePermissions(node, 'w');
if (err) {
throw new FS.ErrnoError(err);
}
node.node_ops.setattr(node, {
size: len,
timestamp: Date.now()
});
},ftruncate:function (fd, len) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(9);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(22);
}
FS.truncate(stream.node, len);
},utime:function (path, atime, mtime) {
var lookup = FS.lookupPath(path, { follow: true });
var node = lookup.node;
node.node_ops.setattr(node, {
timestamp: Math.max(atime, mtime)
});
},open:function (path, flags, mode, fd_start, fd_end) {
if (path === "") {
throw new FS.ErrnoError(2);
}
flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode;
if ((flags & 64)) {
mode = (mode & 4095) | 32768;
} else {
mode = 0;
}
var node;
if (typeof path === 'object') {
node = path;
} else {
path = PATH.normalize(path);
try {
var lookup = FS.lookupPath(path, {
follow: !(flags & 131072)
});
node = lookup.node;
} catch (e) {
// ignore
}
}
// perhaps we need to create the node
var created = false;
if ((flags & 64)) {
if (node) {
// if O_CREAT and O_EXCL are set, error out if the node already exists
if ((flags & 128)) {
throw new FS.ErrnoError(17);
}
} else {
// node doesn't exist, try to create it
node = FS.mknod(path, mode, 0);
created = true;
}
}
if (!node) {
throw new FS.ErrnoError(2);
}
// can't truncate a device
if (FS.isChrdev(node.mode)) {
flags &= ~512;
}
// if asked only for a directory, then this must be one
if ((flags & 65536) && !FS.isDir(node.mode)) {
throw new FS.ErrnoError(20);
}
// check permissions, if this is not a file we just created now (it is ok to
// create and write to a file with read-only permissions; it is read-only
// for later use)
if (!created) {
var err = FS.mayOpen(node, flags);
if (err) {
throw new FS.ErrnoError(err);
}
}
// do truncation if necessary
if ((flags & 512)) {
FS.truncate(node, 0);
}
// we've already handled these, don't pass down to the underlying vfs
flags &= ~(128 | 512);
// register the stream with the filesystem
var stream = FS.createStream({
node: node,
path: FS.getPath(node), // we want the absolute path to the node
flags: flags,
seekable: true,
position: 0,
stream_ops: node.stream_ops,
// used by the file family libc calls (fopen, fwrite, ferror, etc.)
ungotten: [],
error: false
}, fd_start, fd_end);
// call the new stream's open function
if (stream.stream_ops.open) {
stream.stream_ops.open(stream);
}
if (Module['logReadFiles'] && !(flags & 1)) {
if (!FS.readFiles) FS.readFiles = {};
if (!(path in FS.readFiles)) {
FS.readFiles[path] = 1;
console.log("FS.trackingDelegate error on read file: " + path);
}
}
try {
if (FS.trackingDelegate['onOpenFile']) {
var trackingFlags = 0;
if ((flags & 2097155) !== 1) {
trackingFlags |= FS.tracking.openFlags.READ;
}
if ((flags & 2097155) !== 0) {
trackingFlags |= FS.tracking.openFlags.WRITE;
}
FS.trackingDelegate['onOpenFile'](path, trackingFlags);
}
} catch(e) {
console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message);
}
return stream;
},close:function (stream) {
if (FS.isClosed(stream)) {
throw new FS.ErrnoError(9);
}
if (stream.getdents) stream.getdents = null; // free readdir state
try {
if (stream.stream_ops.close) {
stream.stream_ops.close(stream);
}
} catch (e) {
throw e;
} finally {
FS.closeStream(stream.fd);
}
stream.fd = null;
},isClosed:function (stream) {
return stream.fd === null;
},llseek:function (stream, offset, whence) {
if (FS.isClosed(stream)) {
throw new FS.ErrnoError(9);
}
if (!stream.seekable || !stream.stream_ops.llseek) {
throw new FS.ErrnoError(29);
}
if (whence != 0 /* SEEK_SET */ && whence != 1 /* SEEK_CUR */ && whence != 2 /* SEEK_END */) {
throw new FS.ErrnoError(22);
}
stream.position = stream.stream_ops.llseek(stream, offset, whence);
stream.ungotten = [];
return stream.position;
},read:function (stream, buffer, offset, length, position) {
if (length < 0 || position < 0) {
throw new FS.ErrnoError(22);
}
if (FS.isClosed(stream)) {
throw new FS.ErrnoError(9);
}
if ((stream.flags & 2097155) === 1) {
throw new FS.ErrnoError(9);
}
if (FS.isDir(stream.node.mode)) {
throw new FS.ErrnoError(21);
}
if (!stream.stream_ops.read) {
throw new FS.ErrnoError(22);
}
var seeking = typeof position !== 'undefined';
if (!seeking) {
position = stream.position;
} else if (!stream.seekable) {
throw new FS.ErrnoError(29);
}
var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
if (!seeking) stream.position += bytesRead;
return bytesRead;
},write:function (stream, buffer, offset, length, position, canOwn) {
if (length < 0 || position < 0) {
throw new FS.ErrnoError(22);
}
if (FS.isClosed(stream)) {
throw new FS.ErrnoError(9);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(9);
}
if (FS.isDir(stream.node.mode)) {
throw new FS.ErrnoError(21);
}
if (!stream.stream_ops.write) {
throw new FS.ErrnoError(22);
}
if (stream.flags & 1024) {
// seek to the end before writing in append mode
FS.llseek(stream, 0, 2);
}
var seeking = typeof position !== 'undefined';
if (!seeking) {
position = stream.position;
} else if (!stream.seekable) {
throw new FS.ErrnoError(29);
}
var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
if (!seeking) stream.position += bytesWritten;
try {
if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path);
} catch(e) {
console.log("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: " + e.message);
}
return bytesWritten;
},allocate:function (stream, offset, length) {
if (FS.isClosed(stream)) {
throw new FS.ErrnoError(9);
}
if (offset < 0 || length <= 0) {
throw new FS.ErrnoError(22);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(9);
}
if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
throw new FS.ErrnoError(19);
}
if (!stream.stream_ops.allocate) {
throw new FS.ErrnoError(95);
}
stream.stream_ops.allocate(stream, offset, length);
},mmap:function (stream, buffer, offset, length, position, prot, flags) {
// TODO if PROT is PROT_WRITE, make sure we have write access
if ((stream.flags & 2097155) === 1) {
throw new FS.ErrnoError(13);
}
if (!stream.stream_ops.mmap) {
throw new FS.ErrnoError(19);
}
return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
},msync:function (stream, buffer, offset, length, mmapFlags) {
if (!stream || !stream.stream_ops.msync) {
return 0;
}
return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
},munmap:function (stream) {
return 0;
},ioctl:function (stream, cmd, arg) {
if (!stream.stream_ops.ioctl) {
throw new FS.ErrnoError(25);
}
return stream.stream_ops.ioctl(stream, cmd, arg);
},readFile:function (path, opts) {
opts = opts || {};
opts.flags = opts.flags || 'r';
opts.encoding = opts.encoding || 'binary';
if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
throw new Error('Invalid encoding type "' + opts.encoding + '"');
}
var ret;
var stream = FS.open(path, opts.flags);
var stat = FS.stat(path);
var length = stat.size;
var buf = new Uint8Array(length);
FS.read(stream, buf, 0, length, 0);
if (opts.encoding === 'utf8') {
ret = UTF8ArrayToString(buf, 0);
} else if (opts.encoding === 'binary') {
ret = buf;
}
FS.close(stream);
return ret;
},writeFile:function (path, data, opts) {
opts = opts || {};
opts.flags = opts.flags || 'w';
var stream = FS.open(path, opts.flags, opts.mode);
if (typeof data === 'string') {
var buf = new Uint8Array(lengthBytesUTF8(data)+1);
var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);
} else if (ArrayBuffer.isView(data)) {
FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);
} else {
throw new Error('Unsupported data type');
}
FS.close(stream);
},cwd:function () {
return FS.currentPath;
},chdir:function (path) {
var lookup = FS.lookupPath(path, { follow: true });
if (lookup.node === null) {
throw new FS.ErrnoError(2);
}
if (!FS.isDir(lookup.node.mode)) {
throw new FS.ErrnoError(20);
}
var err = FS.nodePermissions(lookup.node, 'x');
if (err) {
throw new FS.ErrnoError(err);
}
FS.currentPath = lookup.path;
},createDefaultDirectories:function () {
FS.mkdir('/tmp');
FS.mkdir('/home');
FS.mkdir('/home/web_user');
},createDefaultDevices:function () {
// create /dev
FS.mkdir('/dev');
// setup /dev/null
FS.registerDevice(FS.makedev(1, 3), {
read: function() { return 0; },
write: function(stream, buffer, offset, length, pos) { return length; }
});
FS.mkdev('/dev/null', FS.makedev(1, 3));
// setup /dev/tty and /dev/tty1
// stderr needs to print output using Module['printErr']
// so we register a second tty just for it.
TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
FS.mkdev('/dev/tty', FS.makedev(5, 0));
FS.mkdev('/dev/tty1', FS.makedev(6, 0));
// setup /dev/[u]random
var random_device;
if (typeof crypto === 'object' && typeof crypto['getRandomValues'] === 'function') {
// for modern web browsers
var randomBuffer = new Uint8Array(1);
random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; };
} else
if (ENVIRONMENT_IS_NODE) {
// for nodejs with or without crypto support included
try {
var crypto_module = require('crypto');
// nodejs has crypto support
random_device = function() { return crypto_module['randomBytes'](1)[0]; };
} catch (e) {
// nodejs doesn't have crypto support
}
} else
{}
if (!random_device) {
// we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096
random_device = function() { abort("random_device"); };
}
FS.createDevice('/dev', 'random', random_device);
FS.createDevice('/dev', 'urandom', random_device);
// we're not going to emulate the actual shm device,
// just create the tmp dirs that reside in it commonly
FS.mkdir('/dev/shm');
FS.mkdir('/dev/shm/tmp');
},createSpecialDirectories:function () {
// create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname)
FS.mkdir('/proc');
FS.mkdir('/proc/self');
FS.mkdir('/proc/self/fd');
FS.mount({
mount: function() {
var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73);
node.node_ops = {
lookup: function(parent, name) {
var fd = +name;
var stream = FS.getStream(fd);
if (!stream) throw new FS.ErrnoError(9);
var ret = {
parent: null,
mount: { mountpoint: 'fake' },
node_ops: { readlink: function() { return stream.path } }
};
ret.parent = ret; // make it look like a simple root node
return ret;
}
};
return node;
}
}, {}, '/proc/self/fd');
},createStandardStreams:function () {
// TODO deprecate the old functionality of a single
// input / output callback and that utilizes FS.createDevice
// and instead require a unique set of stream ops
// by default, we symlink the standard streams to the
// default tty devices. however, if the standard streams
// have been overwritten we create a unique device for
// them instead.
if (Module['stdin']) {
FS.createDevice('/dev', 'stdin', Module['stdin']);
} else {
FS.symlink('/dev/tty', '/dev/stdin');
}
if (Module['stdout']) {
FS.createDevice('/dev', 'stdout', null, Module['stdout']);
} else {
FS.symlink('/dev/tty', '/dev/stdout');
}
if (Module['stderr']) {
FS.createDevice('/dev', 'stderr', null, Module['stderr']);
} else {
FS.symlink('/dev/tty1', '/dev/stderr');
}
// open default streams for the stdin, stdout and stderr devices
var stdin = FS.open('/dev/stdin', 'r');
var stdout = FS.open('/dev/stdout', 'w');
var stderr = FS.open('/dev/stderr', 'w');
},ensureErrnoError:function () {
if (FS.ErrnoError) return;
FS.ErrnoError = function ErrnoError(errno, node) {
this.node = node;
this.setErrno = function(errno) {
this.errno = errno;
};
this.setErrno(errno);
this.message = 'FS error';
// Node.js compatibility: assigning on this.stack fails on Node 4 (but fixed on Node 8)
if (this.stack) Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true });
};
FS.ErrnoError.prototype = new Error();
FS.ErrnoError.prototype.constructor = FS.ErrnoError;
// Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
[2].forEach(function(code) {
FS.genericErrors[code] = new FS.ErrnoError(code);
FS.genericErrors[code].stack = '<generic error, no stack>';
});
},staticInit:function () {
FS.ensureErrnoError();
FS.nameTable = new Array(4096);
FS.mount(MEMFS, {}, '/');
FS.createDefaultDirectories();
FS.createDefaultDevices();
FS.createSpecialDirectories();
FS.filesystems = {
'MEMFS': MEMFS,
'IDBFS': IDBFS,
'NODEFS': NODEFS,
'WORKERFS': WORKERFS,
};
},init:function (input, output, error) {
FS.init.initialized = true;
FS.ensureErrnoError();
// Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
Module['stdin'] = input || Module['stdin'];
Module['stdout'] = output || Module['stdout'];
Module['stderr'] = error || Module['stderr'];
FS.createStandardStreams();
},quit:function () {
FS.init.initialized = false;
// force-flush all streams, so we get musl std streams printed out
var fflush = Module['_fflush'];
if (fflush) fflush(0);
// close all of our streams
for (var i = 0; i < FS.streams.length; i++) {
var stream = FS.streams[i];
if (!stream) {
continue;
}
FS.close(stream);
}
},getMode:function (canRead, canWrite) {
var mode = 0;
if (canRead) mode |= 292 | 73;
if (canWrite) mode |= 146;
return mode;
},joinPath:function (parts, forceRelative) {
var path = PATH.join.apply(null, parts);
if (forceRelative && path[0] == '/') path = path.substr(1);
return path;
},absolutePath:function (relative, base) {
return PATH.resolve(base, relative);
},standardizePath:function (path) {
return PATH.normalize(path);
},findObject:function (path, dontResolveLastLink) {
var ret = FS.analyzePath(path, dontResolveLastLink);
if (ret.exists) {
return ret.object;
} else {
___setErrNo(ret.error);
return null;
}
},analyzePath:function (path, dontResolveLastLink) {
// operate from within the context of the symlink's target
try {
var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
path = lookup.path;
} catch (e) {
}
var ret = {
isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
parentExists: false, parentPath: null, parentObject: null
};
try {
var lookup = FS.lookupPath(path, { parent: true });
ret.parentExists = true;
ret.parentPath = lookup.path;
ret.parentObject = lookup.node;
ret.name = PATH.basename(path);
lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
ret.exists = true;
ret.path = lookup.path;
ret.object = lookup.node;
ret.name = lookup.node.name;
ret.isRoot = lookup.path === '/';
} catch (e) {
ret.error = e.errno;
};
return ret;
},createFolder:function (parent, name, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(canRead, canWrite);
return FS.mkdir(path, mode);
},createPath:function (parent, path, canRead, canWrite) {
parent = typeof parent === 'string' ? parent : FS.getPath(parent);
var parts = path.split('/').reverse();
while (parts.length) {
var part = parts.pop();
if (!part) continue;
var current = PATH.join2(parent, part);
try {
FS.mkdir(current);
} catch (e) {
// ignore EEXIST
}
parent = current;
}
return current;
},createFile:function (parent, name, properties, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(canRead, canWrite);
return FS.create(path, mode);
},createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {
var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
var mode = FS.getMode(canRead, canWrite);
var node = FS.create(path, mode);
if (data) {
if (typeof data === 'string') {
var arr = new Array(data.length);
for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
data = arr;
}
// make sure we can write to the file
FS.chmod(node, mode | 146);
var stream = FS.open(node, 'w');
FS.write(stream, data, 0, data.length, 0, canOwn);
FS.close(stream);
FS.chmod(node, mode);
}
return node;
},createDevice:function (parent, name, input, output) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(!!input, !!output);
if (!FS.createDevice.major) FS.createDevice.major = 64;
var dev = FS.makedev(FS.createDevice.major++, 0);
// Create a fake device that a set of stream ops to emulate
// the old behavior.
FS.registerDevice(dev, {
open: function(stream) {
stream.seekable = false;
},
close: function(stream) {
// flush any pending line data
if (output && output.buffer && output.buffer.length) {
output(10);
}
},
read: function(stream, buffer, offset, length, pos /* ignored */) {
var bytesRead = 0;
for (var i = 0; i < length; i++) {
var result;
try {
result = input();
} catch (e) {
throw new FS.ErrnoError(5);
}
if (result === undefined && bytesRead === 0) {
throw new FS.ErrnoError(11);
}
if (result === null || result === undefined) break;
bytesRead++;
buffer[offset+i] = result;
}
if (bytesRead) {
stream.node.timestamp = Date.now();
}
return bytesRead;
},
write: function(stream, buffer, offset, length, pos) {
for (var i = 0; i < length; i++) {
try {
output(buffer[offset+i]);
} catch (e) {
throw new FS.ErrnoError(5);
}
}
if (length) {
stream.node.timestamp = Date.now();
}
return i;
}
});
return FS.mkdev(path, mode, dev);
},createLink:function (parent, name, target, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
return FS.symlink(target, path);
},forceLoadFile:function (obj) {
if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
var success = true;
if (typeof XMLHttpRequest !== 'undefined') {
throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
} else if (Module['read']) {
// Command-line.
try {
// WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
// read() will try to parse UTF8.
obj.contents = intArrayFromString(Module['read'](obj.url), true);
obj.usedBytes = obj.contents.length;
} catch (e) {
success = false;
}
} else {
throw new Error('Cannot load without read() or XMLHttpRequest.');
}
if (!success) ___setErrNo(5);
return success;
},createLazyFile:function (parent, name, url, canRead, canWrite) {
// Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
function LazyUint8Array() {
this.lengthKnown = false;
this.chunks = []; // Loaded chunks. Index is the chunk number
}
LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
if (idx > this.length-1 || idx < 0) {
return undefined;
}
var chunkOffset = idx % this.chunkSize;
var chunkNum = (idx / this.chunkSize)|0;
return this.getter(chunkNum)[chunkOffset];
}
LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
this.getter = getter;
}
LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
// Find length
var xhr = new XMLHttpRequest();
xhr.open('HEAD', url, false);
xhr.send(null);
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
var datalength = Number(xhr.getResponseHeader("Content-length"));
var header;
var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
var chunkSize = 1024*1024; // Chunk size in bytes
if (!hasByteServing) chunkSize = datalength;
// Function to get a range from the remote URL.
var doXHR = (function(from, to) {
if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
// TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
// Some hints to the browser that we want binary data.
if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
if (xhr.overrideMimeType) {
xhr.overrideMimeType('text/plain; charset=x-user-defined');
}
xhr.send(null);
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
if (xhr.response !== undefined) {
return new Uint8Array(xhr.response || []);
} else {
return intArrayFromString(xhr.responseText || '', true);
}
});
var lazyArray = this;
lazyArray.setDataGetter(function(chunkNum) {
var start = chunkNum * chunkSize;
var end = (chunkNum+1) * chunkSize - 1; // including this byte
end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
lazyArray.chunks[chunkNum] = doXHR(start, end);
}
if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
return lazyArray.chunks[chunkNum];
});
if (usesGzip || !datalength) {
// if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length
chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file
datalength = this.getter(0).length;
chunkSize = datalength;
console.log("LazyFiles on gzip forces download of the whole file when length is accessed");
}
this._length = datalength;
this._chunkSize = chunkSize;
this.lengthKnown = true;
}
if (typeof XMLHttpRequest !== 'undefined') {
if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
var lazyArray = new LazyUint8Array();
Object.defineProperties(lazyArray, {
length: {
get: function() {
if(!this.lengthKnown) {
this.cacheLength();
}
return this._length;
}
},
chunkSize: {
get: function() {
if(!this.lengthKnown) {
this.cacheLength();
}
return this._chunkSize;
}
}
});
var properties = { isDevice: false, contents: lazyArray };
} else {
var properties = { isDevice: false, url: url };
}
var node = FS.createFile(parent, name, properties, canRead, canWrite);
// This is a total hack, but I want to get this lazy file code out of the
// core of MEMFS. If we want to keep this lazy file concept I feel it should
// be its own thin LAZYFS proxying calls to MEMFS.
if (properties.contents) {
node.contents = properties.contents;
} else if (properties.url) {
node.contents = null;
node.url = properties.url;
}
// Add a function that defers querying the file size until it is asked the first time.
Object.defineProperties(node, {
usedBytes: {
get: function() { return this.contents.length; }
}
});
// override each stream op with one that tries to force load the lazy file first
var stream_ops = {};
var keys = Object.keys(node.stream_ops);
keys.forEach(function(key) {
var fn = node.stream_ops[key];
stream_ops[key] = function forceLoadLazyFile() {
if (!FS.forceLoadFile(node)) {
throw new FS.ErrnoError(5);
}
return fn.apply(null, arguments);
};
});
// use a custom read function
stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
if (!FS.forceLoadFile(node)) {
throw new FS.ErrnoError(5);
}
var contents = stream.node.contents;
if (position >= contents.length)
return 0;
var size = Math.min(contents.length - position, length);
if (contents.slice) { // normal array
for (var i = 0; i < size; i++) {
buffer[offset + i] = contents[position + i];
}
} else {
for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
buffer[offset + i] = contents.get(position + i);
}
}
return size;
};
node.stream_ops = stream_ops;
return node;
},createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
Browser.init(); // XXX perhaps this method should move onto Browser?
// TODO we should allow people to just pass in a complete filename instead
// of parent and name being that we just join them anyways
var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent;
var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname
function processData(byteArray) {
function finish(byteArray) {
if (preFinish) preFinish();
if (!dontCreateFile) {
FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
}
if (onload) onload();
removeRunDependency(dep);
}
var handled = false;
Module['preloadPlugins'].forEach(function(plugin) {
if (handled) return;
if (plugin['canHandle'](fullname)) {
plugin['handle'](byteArray, fullname, finish, function() {
if (onerror) onerror();
removeRunDependency(dep);
});
handled = true;
}
});
if (!handled) finish(byteArray);
}
addRunDependency(dep);
if (typeof url == 'string') {
Browser.asyncLoad(url, function(byteArray) {
processData(byteArray);
}, onerror);
} else {
processData(url);
}
},indexedDB:function () {
return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
},DB_NAME:function () {
return 'EM_FS_' + window.location.pathname;
},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {
onload = onload || function(){};
onerror = onerror || function(){};
var indexedDB = FS.indexedDB();
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
} catch (e) {
return onerror(e);
}
openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
console.log('creating db');
var db = openRequest.result;
db.createObjectStore(FS.DB_STORE_NAME);
};
openRequest.onsuccess = function openRequest_onsuccess() {
var db = openRequest.result;
var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
var files = transaction.objectStore(FS.DB_STORE_NAME);
var ok = 0, fail = 0, total = paths.length;
function finish() {
if (fail == 0) onload(); else onerror();
}
paths.forEach(function(path) {
var putRequest = files.put(FS.analyzePath(path).object.contents, path);
putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() };
putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() };
});
transaction.onerror = onerror;
};
openRequest.onerror = onerror;
},loadFilesFromDB:function (paths, onload, onerror) {
onload = onload || function(){};
onerror = onerror || function(){};
var indexedDB = FS.indexedDB();
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
} catch (e) {
return onerror(e);
}
openRequest.onupgradeneeded = onerror; // no database to load from
openRequest.onsuccess = function openRequest_onsuccess() {
var db = openRequest.result;
try {
var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
} catch(e) {
onerror(e);
return;
}
var files = transaction.objectStore(FS.DB_STORE_NAME);
var ok = 0, fail = 0, total = paths.length;
function finish() {
if (fail == 0) onload(); else onerror();
}
paths.forEach(function(path) {
var getRequest = files.get(path);
getRequest.onsuccess = function getRequest_onsuccess() {
if (FS.analyzePath(path).exists) {
FS.unlink(path);
}
FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
ok++;
if (ok + fail == total) finish();
};
getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() };
});
transaction.onerror = onerror;
};
openRequest.onerror = onerror;
}};
var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) {
if (path[0] !== '/') {
// relative path
var dir;
if (dirfd === -100) {
dir = FS.cwd();
} else {
var dirstream = FS.getStream(dirfd);
if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
dir = dirstream.path;
}
path = PATH.join2(dir, path);
}
return path;
},doStat:function (func, path, buf) {
try {
var stat = func(path);
} catch (e) {
if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
// an error occurred while trying to look up the path; we should just report ENOTDIR
return -ERRNO_CODES.ENOTDIR;
}
throw e;
}
HEAP32[((buf)>>2)]=stat.dev;
HEAP32[(((buf)+(4))>>2)]=0;
HEAP32[(((buf)+(8))>>2)]=stat.ino;
HEAP32[(((buf)+(12))>>2)]=stat.mode;
HEAP32[(((buf)+(16))>>2)]=stat.nlink;
HEAP32[(((buf)+(20))>>2)]=stat.uid;
HEAP32[(((buf)+(24))>>2)]=stat.gid;
HEAP32[(((buf)+(28))>>2)]=stat.rdev;
HEAP32[(((buf)+(32))>>2)]=0;
HEAP32[(((buf)+(36))>>2)]=stat.size;
HEAP32[(((buf)+(40))>>2)]=4096;
HEAP32[(((buf)+(44))>>2)]=stat.blocks;
HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0;
HEAP32[(((buf)+(52))>>2)]=0;
HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0;
HEAP32[(((buf)+(60))>>2)]=0;
HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0;
HEAP32[(((buf)+(68))>>2)]=0;
HEAP32[(((buf)+(72))>>2)]=stat.ino;
return 0;
},doMsync:function (addr, stream, len, flags) {
var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len));
FS.msync(stream, buffer, 0, len, flags);
},doMkdir:function (path, mode) {
// remove a trailing slash, if one - /a/b/ has basename of '', but
// we want to create b in the context of this function
path = PATH.normalize(path);
if (path[path.length-1] === '/') path = path.substr(0, path.length-1);
FS.mkdir(path, mode, 0);
return 0;
},doMknod:function (path, mode, dev) {
// we don't want this in the JS API as it uses mknod to create all nodes.
switch (mode & 61440) {
case 32768:
case 8192:
case 24576:
case 4096:
case 49152:
break;
default: return -ERRNO_CODES.EINVAL;
}
FS.mknod(path, mode, dev);
return 0;
},doReadlink:function (path, buf, bufsize) {
if (bufsize <= 0) return -ERRNO_CODES.EINVAL;
var ret = FS.readlink(path);
var len = Math.min(bufsize, lengthBytesUTF8(ret));
var endChar = HEAP8[buf+len];
stringToUTF8(ret, buf, bufsize+1);
// readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!)
// stringToUTF8() always appends a null byte, so restore the character under the null byte after the write.
HEAP8[buf+len] = endChar;
return len;
},doAccess:function (path, amode) {
if (amode & ~7) {
// need a valid mode
return -ERRNO_CODES.EINVAL;
}
var node;
var lookup = FS.lookupPath(path, { follow: true });
node = lookup.node;
var perms = '';
if (amode & 4) perms += 'r';
if (amode & 2) perms += 'w';
if (amode & 1) perms += 'x';
if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) {
return -ERRNO_CODES.EACCES;
}
return 0;
},doDup:function (path, flags, suggestFD) {
var suggest = FS.getStream(suggestFD);
if (suggest) FS.close(suggest);
return FS.open(path, flags, 0, suggestFD, suggestFD).fd;
},doReadv:function (stream, iov, iovcnt, offset) {
var ret = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
var curr = FS.read(stream, HEAP8,ptr, len, offset);
if (curr < 0) return -1;
ret += curr;
if (curr < len) break; // nothing more to read
}
return ret;
},doWritev:function (stream, iov, iovcnt, offset) {
var ret = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
var curr = FS.write(stream, HEAP8,ptr, len, offset);
if (curr < 0) return -1;
ret += curr;
}
return ret;
},varargs:0,get:function (varargs) {
SYSCALLS.varargs += 4;
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
return ret;
},getStr:function () {
var ret = UTF8ToString(SYSCALLS.get());
return ret;
},getStreamFromFD:function () {
var stream = FS.getStream(SYSCALLS.get());
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return stream;
},getSocketFromFD:function () {
var socket = SOCKFS.getSocket(SYSCALLS.get());
if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return socket;
},getSocketAddress:function (allowNull) {
var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get();
if (allowNull && addrp === 0) return null;
var info = __read_sockaddr(addrp, addrlen);
if (info.errno) throw new FS.ErrnoError(info.errno);
info.addr = DNS.lookup_addr(info.addr) || info.addr;
return info;
},get64:function () {
var low = SYSCALLS.get(), high = SYSCALLS.get();
return low;
},getZero:function () {
SYSCALLS.get();
}};function ___syscall10(which, varargs) {SYSCALLS.varargs = varargs;
try {
// unlink
var path = SYSCALLS.getStr();
FS.unlink(path);
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
var SOCKFS={mount:function (mount) {
// If Module['websocket'] has already been defined (e.g. for configuring
// the subprotocol/url) use that, if not initialise it to a new object.
Module['websocket'] = (Module['websocket'] &&
('object' === typeof Module['websocket'])) ? Module['websocket'] : {};
// Add the Event registration mechanism to the exported websocket configuration
// object so we can register network callbacks from native JavaScript too.
// For more documentation see system/include/emscripten/emscripten.h
Module['websocket']._callbacks = {};
Module['websocket']['on'] = function(event, callback) {
if ('function' === typeof callback) {
this._callbacks[event] = callback;
}
return this;
};
Module['websocket'].emit = function(event, param) {
if ('function' === typeof this._callbacks[event]) {
this._callbacks[event].call(this, param);
}
};
// If debug is enabled register simple default logging callbacks for each Event.
return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
},createSocket:function (family, type, protocol) {
var streaming = type == 1;
if (protocol) {
assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp
}
// create our internal socket structure
var sock = {
family: family,
type: type,
protocol: protocol,
server: null,
error: null, // Used in getsockopt for SOL_SOCKET/SO_ERROR test
peers: {},
pending: [],
recv_queue: [],
sock_ops: SOCKFS.websocket_sock_ops
};
// create the filesystem node to store the socket structure
var name = SOCKFS.nextname();
var node = FS.createNode(SOCKFS.root, name, 49152, 0);
node.sock = sock;
// and the wrapping stream that enables library functions such
// as read and write to indirectly interact with the socket
var stream = FS.createStream({
path: name,
node: node,
flags: FS.modeStringToFlags('r+'),
seekable: false,
stream_ops: SOCKFS.stream_ops
});
// map the new stream to the socket structure (sockets have a 1:1
// relationship with a stream)
sock.stream = stream;
return sock;
},getSocket:function (fd) {
var stream = FS.getStream(fd);
if (!stream || !FS.isSocket(stream.node.mode)) {
return null;
}
return stream.node.sock;
},stream_ops:{poll:function (stream) {
var sock = stream.node.sock;
return sock.sock_ops.poll(sock);
},ioctl:function (stream, request, varargs) {
var sock = stream.node.sock;
return sock.sock_ops.ioctl(sock, request, varargs);
},read:function (stream, buffer, offset, length, position /* ignored */) {
var sock = stream.node.sock;
var msg = sock.sock_ops.recvmsg(sock, length);
if (!msg) {
// socket is closed
return 0;
}
buffer.set(msg.buffer, offset);
return msg.buffer.length;
},write:function (stream, buffer, offset, length, position /* ignored */) {
var sock = stream.node.sock;
return sock.sock_ops.sendmsg(sock, buffer, offset, length);
},close:function (stream) {
var sock = stream.node.sock;
sock.sock_ops.close(sock);
}},nextname:function () {
if (!SOCKFS.nextname.current) {
SOCKFS.nextname.current = 0;
}
return 'socket[' + (SOCKFS.nextname.current++) + ']';
},websocket_sock_ops:{createPeer:function (sock, addr, port) {
var ws;
if (typeof addr === 'object') {
ws = addr;
addr = null;
port = null;
}
if (ws) {
// for sockets that've already connected (e.g. we're the server)
// we can inspect the _socket property for the address
if (ws._socket) {
addr = ws._socket.remoteAddress;
port = ws._socket.remotePort;
}
// if we're just now initializing a connection to the remote,
// inspect the url property
else {
var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);
if (!result) {
throw new Error('WebSocket URL must be in the format ws(s)://address:port');
}
addr = result[1];
port = parseInt(result[2], 10);
}
} else {
// create the actual websocket object and connect
try {
// runtimeConfig gets set to true if WebSocket runtime configuration is available.
var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket']));
// The default value is 'ws://' the replace is needed because the compiler replaces '//' comments with '#'
// comments without checking context, so we'd end up with ws:#, the replace swaps the '#' for '//' again.
var url = 'ws:#'.replace('#', '//');
if (runtimeConfig) {
if ('string' === typeof Module['websocket']['url']) {
url = Module['websocket']['url']; // Fetch runtime WebSocket URL config.
}
}
if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it.
var parts = addr.split('/');
url = url + parts[0] + ":" + port + "/" + parts.slice(1).join('/');
}
// Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set.
var subProtocols = 'binary'; // The default value is 'binary'
if (runtimeConfig) {
if ('string' === typeof Module['websocket']['subprotocol']) {
subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config.
}
}
// The regex trims the string (removes spaces at the beginning and end, then splits the string by
// <any space>,<any space> into an Array. Whitespace removal is important for Websockify and ws.
subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */);
// The node ws library API for specifying optional subprotocol is slightly different than the browser's.
var opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols;
// some webservers (azure) does not support subprotocol header
if (runtimeConfig && null === Module['websocket']['subprotocol']) {
subProtocols = 'null';
opts = undefined;
}
// If node we use the ws library.
var WebSocketConstructor;
if (ENVIRONMENT_IS_NODE) {
WebSocketConstructor = require('ws');
} else
if (ENVIRONMENT_IS_WEB) {
WebSocketConstructor = window['WebSocket'];
} else
{
WebSocketConstructor = WebSocket;
}
ws = new WebSocketConstructor(url, opts);
ws.binaryType = 'arraybuffer';
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH);
}
}
var peer = {
addr: addr,
port: port,
socket: ws,
dgram_send_queue: []
};
SOCKFS.websocket_sock_ops.addPeer(sock, peer);
SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer);
// if this is a bound dgram socket, send the port number first to allow
// us to override the ephemeral port reported to us by remotePort on the
// remote end.
if (sock.type === 2 && typeof sock.sport !== 'undefined') {
peer.dgram_send_queue.push(new Uint8Array([
255, 255, 255, 255,
'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0),
((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff)
]));
}
return peer;
},getPeer:function (sock, addr, port) {
return sock.peers[addr + ':' + port];
},addPeer:function (sock, peer) {
sock.peers[peer.addr + ':' + peer.port] = peer;
},removePeer:function (sock, peer) {
delete sock.peers[peer.addr + ':' + peer.port];
},handlePeerEvents:function (sock, peer) {
var first = true;
var handleOpen = function () {
Module['websocket'].emit('open', sock.stream.fd);
try {
var queued = peer.dgram_send_queue.shift();
while (queued) {
peer.socket.send(queued);
queued = peer.dgram_send_queue.shift();
}
} catch (e) {
// not much we can do here in the way of proper error handling as we've already
// lied and said this data was sent. shut it down.
peer.socket.close();
}
};
function handleMessage(data) {
assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer
// An empty ArrayBuffer will emit a pseudo disconnect event
// as recv/recvmsg will return zero which indicates that a socket
// has performed a shutdown although the connection has not been disconnected yet.
if (data.byteLength == 0) {
return;
}
data = new Uint8Array(data); // make a typed array view on the array buffer
// if this is the port message, override the peer's port with it
var wasfirst = first;
first = false;
if (wasfirst &&
data.length === 10 &&
data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 &&
data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) {
// update the peer's port and it's key in the peer map
var newport = ((data[8] << 8) | data[9]);
SOCKFS.websocket_sock_ops.removePeer(sock, peer);
peer.port = newport;
SOCKFS.websocket_sock_ops.addPeer(sock, peer);
return;
}
sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data });
Module['websocket'].emit('message', sock.stream.fd);
};
if (ENVIRONMENT_IS_NODE) {
peer.socket.on('open', handleOpen);
peer.socket.on('message', function(data, flags) {
if (!flags.binary) {
return;
}
handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer
});
peer.socket.on('close', function() {
Module['websocket'].emit('close', sock.stream.fd);
});
peer.socket.on('error', function(error) {
// Although the ws library may pass errors that may be more descriptive than
// ECONNREFUSED they are not necessarily the expected error code e.g.
// ENOTFOUND on getaddrinfo seems to be node.js specific, so using ECONNREFUSED
// is still probably the most useful thing to do.
sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test.
Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']);
// don't throw
});
} else {
peer.socket.onopen = handleOpen;
peer.socket.onclose = function() {
Module['websocket'].emit('close', sock.stream.fd);
};
peer.socket.onmessage = function peer_socket_onmessage(event) {
handleMessage(event.data);
};
peer.socket.onerror = function(error) {
// The WebSocket spec only allows a 'simple event' to be thrown on error,
// so we only really know as much as ECONNREFUSED.
sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test.
Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']);
};
}
},poll:function (sock) {
if (sock.type === 1 && sock.server) {
// listen sockets should only say they're available for reading
// if there are pending clients.
return sock.pending.length ? (64 | 1) : 0;
}
var mask = 0;
var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets
SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) :
null;
if (sock.recv_queue.length ||
!dest || // connection-less sockets are always ready to read
(dest && dest.socket.readyState === dest.socket.CLOSING) ||
(dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed
mask |= (64 | 1);
}
if (!dest || // connection-less sockets are always ready to write
(dest && dest.socket.readyState === dest.socket.OPEN)) {
mask |= 4;
}
if ((dest && dest.socket.readyState === dest.socket.CLOSING) ||
(dest && dest.socket.readyState === dest.socket.CLOSED)) {
mask |= 16;
}
return mask;
},ioctl:function (sock, request, arg) {
switch (request) {
case 21531:
var bytes = 0;
if (sock.recv_queue.length) {
bytes = sock.recv_queue[0].data.length;
}
HEAP32[((arg)>>2)]=bytes;
return 0;
default:
return ERRNO_CODES.EINVAL;
}
},close:function (sock) {
// if we've spawned a listen server, close it
if (sock.server) {
try {
sock.server.close();
} catch (e) {
}
sock.server = null;
}
// close any peer connections
var peers = Object.keys(sock.peers);
for (var i = 0; i < peers.length; i++) {
var peer = sock.peers[peers[i]];
try {
peer.socket.close();
} catch (e) {
}
SOCKFS.websocket_sock_ops.removePeer(sock, peer);
}
return 0;
},bind:function (sock, addr, port) {
if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound
}
sock.saddr = addr;
sock.sport = port;
// in order to emulate dgram sockets, we need to launch a listen server when
// binding on a connection-less socket
// note: this is only required on the server side
if (sock.type === 2) {
// close the existing server if it exists
if (sock.server) {
sock.server.close();
sock.server = null;
}
// swallow error operation not supported error that occurs when binding in the
// browser where this isn't supported
try {
sock.sock_ops.listen(sock, 0);
} catch (e) {
if (!(e instanceof FS.ErrnoError)) throw e;
if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e;
}
}
},connect:function (sock, addr, port) {
if (sock.server) {
throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
}
// TODO autobind
// if (!sock.addr && sock.type == 2) {
// }
// early out if we're already connected / in the middle of connecting
if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') {
var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
if (dest) {
if (dest.socket.readyState === dest.socket.CONNECTING) {
throw new FS.ErrnoError(ERRNO_CODES.EALREADY);
} else {
throw new FS.ErrnoError(ERRNO_CODES.EISCONN);
}
}
}
// add the socket to our peer list and set our
// destination address / port to match
var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
sock.daddr = peer.addr;
sock.dport = peer.port;
// always "fail" in non-blocking mode
throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS);
},listen:function (sock, backlog) {
if (!ENVIRONMENT_IS_NODE) {
throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
}
if (sock.server) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening
}
var WebSocketServer = require('ws').Server;
var host = sock.saddr;
sock.server = new WebSocketServer({
host: host,
port: sock.sport
// TODO support backlog
});
Module['websocket'].emit('listen', sock.stream.fd); // Send Event with listen fd.
sock.server.on('connection', function(ws) {
if (sock.type === 1) {
var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol);
// create a peer on the new socket
var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws);
newsock.daddr = peer.addr;
newsock.dport = peer.port;
// push to queue for accept to pick up
sock.pending.push(newsock);
Module['websocket'].emit('connection', newsock.stream.fd);
} else {
// create a peer on the listen socket so calling sendto
// with the listen socket and an address will resolve
// to the correct client
SOCKFS.websocket_sock_ops.createPeer(sock, ws);
Module['websocket'].emit('connection', sock.stream.fd);
}
});
sock.server.on('closed', function() {
Module['websocket'].emit('close', sock.stream.fd);
sock.server = null;
});
sock.server.on('error', function(error) {
// Although the ws library may pass errors that may be more descriptive than
// ECONNREFUSED they are not necessarily the expected error code e.g.
// ENOTFOUND on getaddrinfo seems to be node.js specific, so using EHOSTUNREACH
// is still probably the most useful thing to do. This error shouldn't
// occur in a well written app as errors should get trapped in the compiled
// app's own getaddrinfo call.
sock.error = ERRNO_CODES.EHOSTUNREACH; // Used in getsockopt for SOL_SOCKET/SO_ERROR test.
Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'EHOSTUNREACH: Host is unreachable']);
// don't throw
});
},accept:function (listensock) {
if (!listensock.server) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var newsock = listensock.pending.shift();
newsock.stream.flags = listensock.stream.flags;
return newsock;
},getname:function (sock, peer) {
var addr, port;
if (peer) {
if (sock.daddr === undefined || sock.dport === undefined) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
}
addr = sock.daddr;
port = sock.dport;
} else {
// TODO saddr and sport will be set for bind()'d UDP sockets, but what
// should we be returning for TCP sockets that've been connect()'d?
addr = sock.saddr || 0;
port = sock.sport || 0;
}
return { addr: addr, port: port };
},sendmsg:function (sock, buffer, offset, length, addr, port) {
if (sock.type === 2) {
// connection-less sockets will honor the message address,
// and otherwise fall back to the bound destination address
if (addr === undefined || port === undefined) {
addr = sock.daddr;
port = sock.dport;
}
// if there was no address to fall back to, error out
if (addr === undefined || port === undefined) {
throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ);
}
} else {
// connection-based sockets will only use the bound
addr = sock.daddr;
port = sock.dport;
}
// find the peer for the destination address
var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port);
// early out if not connected with a connection-based socket
if (sock.type === 1) {
if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
} else if (dest.socket.readyState === dest.socket.CONNECTING) {
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
}
}
// create a copy of the incoming data to send, as the WebSocket API
// doesn't work entirely with an ArrayBufferView, it'll just send
// the entire underlying buffer
if (ArrayBuffer.isView(buffer)) {
offset += buffer.byteOffset;
buffer = buffer.buffer;
}
var data;
data = buffer.slice(offset, offset + length);
// if we're emulating a connection-less dgram socket and don't have
// a cached connection, queue the buffer to send upon connect and
// lie, saying the data was sent now.
if (sock.type === 2) {
if (!dest || dest.socket.readyState !== dest.socket.OPEN) {
// if we're not connected, open a new connection
if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
}
dest.dgram_send_queue.push(data);
return length;
}
}
try {
// send the actual data
dest.socket.send(data);
return length;
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
},recvmsg:function (sock, length) {
// http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html
if (sock.type === 1 && sock.server) {
// tcp servers should not be recv()'ing on the listen socket
throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
}
var queued = sock.recv_queue.shift();
if (!queued) {
if (sock.type === 1) {
var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
if (!dest) {
// if we have a destination address but are not connected, error out
throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
}
else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
// return null if the socket has closed
return null;
}
else {
// else, our socket is in a valid state but truly has nothing available
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
}
} else {
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
}
}
// queued.data will be an ArrayBuffer if it's unadulterated, but if it's
// requeued TCP data it'll be an ArrayBufferView
var queuedLength = queued.data.byteLength || queued.data.length;
var queuedOffset = queued.data.byteOffset || 0;
var queuedBuffer = queued.data.buffer || queued.data;
var bytesRead = Math.min(length, queuedLength);
var res = {
buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead),
addr: queued.addr,
port: queued.port
};
// push back any unread data for TCP connections
if (sock.type === 1 && bytesRead < queuedLength) {
var bytesRemaining = queuedLength - bytesRead;
queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining);
sock.recv_queue.unshift(queued);
}
return res;
}}};
function __inet_pton4_raw(str) {
var b = str.split('.');
for (var i = 0; i < 4; i++) {
var tmp = Number(b[i]);
if (isNaN(tmp)) return null;
b[i] = tmp;
}
return (b[0] | (b[1] << 8) | (b[2] << 16) | (b[3] << 24)) >>> 0;
}
function __inet_pton6_raw(str) {
var words;
var w, offset, z, i;
/* http://home.deds.nl/~aeron/regex/ */
var valid6regx = /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i
var parts = [];
if (!valid6regx.test(str)) {
return null;
}
if (str === "::") {
return [0, 0, 0, 0, 0, 0, 0, 0];
}
// Z placeholder to keep track of zeros when splitting the string on ":"
if (str.indexOf("::") === 0) {
str = str.replace("::", "Z:"); // leading zeros case
} else {
str = str.replace("::", ":Z:");
}
if (str.indexOf(".") > 0) {
// parse IPv4 embedded stress
str = str.replace(new RegExp('[.]', 'g'), ":");
words = str.split(":");
words[words.length-4] = parseInt(words[words.length-4]) + parseInt(words[words.length-3])*256;
words[words.length-3] = parseInt(words[words.length-2]) + parseInt(words[words.length-1])*256;
words = words.slice(0, words.length-2);
} else {
words = str.split(":");
}
offset = 0; z = 0;
for (w=0; w < words.length; w++) {
if (typeof words[w] === 'string') {
if (words[w] === 'Z') {
// compressed zeros - write appropriate number of zero words
for (z = 0; z < (8 - words.length+1); z++) {
parts[w+z] = 0;
}
offset = z-1;
} else {
// parse hex to field to 16-bit value and write it in network byte-order
parts[w+offset] = _htons(parseInt(words[w],16));
}
} else {
// parsed IPv4 words
parts[w+offset] = words[w];
}
}
return [
(parts[1] << 16) | parts[0],
(parts[3] << 16) | parts[2],
(parts[5] << 16) | parts[4],
(parts[7] << 16) | parts[6]
];
}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function (name) {
// If the name is already a valid ipv4 / ipv6 address, don't generate a fake one.
var res = __inet_pton4_raw(name);
if (res !== null) {
return name;
}
res = __inet_pton6_raw(name);
if (res !== null) {
return name;
}
// See if this name is already mapped.
var addr;
if (DNS.address_map.addrs[name]) {
addr = DNS.address_map.addrs[name];
} else {
var id = DNS.address_map.id++;
assert(id < 65535, 'exceeded max address mappings of 65535');
addr = '172.29.' + (id & 0xff) + '.' + (id & 0xff00);
DNS.address_map.names[addr] = name;
DNS.address_map.addrs[name] = addr;
}
return addr;
},lookup_addr:function (addr) {
if (DNS.address_map.names[addr]) {
return DNS.address_map.names[addr];
}
return null;
}};
var Sockets={BUFFER_SIZE:10240,MAX_BUFFER_SIZE:10485760,nextFd:1,fds:{},nextport:1,maxport:65535,peer:null,connections:{},portmap:{},localAddr:4261412874,addrPool:[33554442,50331658,67108874,83886090,100663306,117440522,134217738,150994954,167772170,184549386,201326602,218103818,234881034]};
function __inet_ntop4_raw(addr) {
return (addr & 0xff) + '.' + ((addr >> 8) & 0xff) + '.' + ((addr >> 16) & 0xff) + '.' + ((addr >> 24) & 0xff)
}
function __inet_ntop6_raw(ints) {
// ref: http://www.ietf.org/rfc/rfc2373.txt - section 2.5.4
// Format for IPv4 compatible and mapped 128-bit IPv6 Addresses
// 128-bits are split into eight 16-bit words
// stored in network byte order (big-endian)
// | 80 bits | 16 | 32 bits |
// +-----------------------------------------------------------------+
// | 10 bytes | 2 | 4 bytes |
// +--------------------------------------+--------------------------+
// + 5 words | 1 | 2 words |
// +--------------------------------------+--------------------------+
// |0000..............................0000|0000| IPv4 ADDRESS | (compatible)
// +--------------------------------------+----+---------------------+
// |0000..............................0000|FFFF| IPv4 ADDRESS | (mapped)
// +--------------------------------------+----+---------------------+
var str = "";
var word = 0;
var longest = 0;
var lastzero = 0;
var zstart = 0;
var len = 0;
var i = 0;
var parts = [
ints[0] & 0xffff,
(ints[0] >> 16),
ints[1] & 0xffff,
(ints[1] >> 16),
ints[2] & 0xffff,
(ints[2] >> 16),
ints[3] & 0xffff,
(ints[3] >> 16)
];
// Handle IPv4-compatible, IPv4-mapped, loopback and any/unspecified addresses
var hasipv4 = true;
var v4part = "";
// check if the 10 high-order bytes are all zeros (first 5 words)
for (i = 0; i < 5; i++) {
if (parts[i] !== 0) { hasipv4 = false; break; }
}
if (hasipv4) {
// low-order 32-bits store an IPv4 address (bytes 13 to 16) (last 2 words)
v4part = __inet_ntop4_raw(parts[6] | (parts[7] << 16));
// IPv4-mapped IPv6 address if 16-bit value (bytes 11 and 12) == 0xFFFF (6th word)
if (parts[5] === -1) {
str = "::ffff:";
str += v4part;
return str;
}
// IPv4-compatible IPv6 address if 16-bit value (bytes 11 and 12) == 0x0000 (6th word)
if (parts[5] === 0) {
str = "::";
//special case IPv6 addresses
if(v4part === "0.0.0.0") v4part = ""; // any/unspecified address
if(v4part === "0.0.0.1") v4part = "1";// loopback address
str += v4part;
return str;
}
}
// Handle all other IPv6 addresses
// first run to find the longest contiguous zero words
for (word = 0; word < 8; word++) {
if (parts[word] === 0) {
if (word - lastzero > 1) {
len = 0;
}
lastzero = word;
len++;
}
if (len > longest) {
longest = len;
zstart = word - longest + 1;
}
}
for (word = 0; word < 8; word++) {
if (longest > 1) {
// compress contiguous zeros - to produce "::"
if (parts[word] === 0 && word >= zstart && word < (zstart + longest) ) {
if (word === zstart) {
str += ":";
if (zstart === 0) str += ":"; //leading zeros case
}
continue;
}
}
// converts 16-bit words from big-endian to little-endian before converting to hex string
str += Number(_ntohs(parts[word] & 0xffff)).toString(16);
str += word < 7 ? ":" : "";
}
return str;
}function __read_sockaddr(sa, salen) {
// family / port offsets are common to both sockaddr_in and sockaddr_in6
var family = HEAP16[((sa)>>1)];
var port = _ntohs(HEAP16[(((sa)+(2))>>1)]);
var addr;
switch (family) {
case 2:
if (salen !== 16) {
return { errno: 22 };
}
addr = HEAP32[(((sa)+(4))>>2)];
addr = __inet_ntop4_raw(addr);
break;
case 10:
if (salen !== 28) {
return { errno: 22 };
}
addr = [
HEAP32[(((sa)+(8))>>2)],
HEAP32[(((sa)+(12))>>2)],
HEAP32[(((sa)+(16))>>2)],
HEAP32[(((sa)+(20))>>2)]
];
addr = __inet_ntop6_raw(addr);
break;
default:
return { errno: 97 };
}
return { family: family, addr: addr, port: port };
}
function __write_sockaddr(sa, family, addr, port) {
switch (family) {
case 2:
addr = __inet_pton4_raw(addr);
HEAP16[((sa)>>1)]=family;
HEAP32[(((sa)+(4))>>2)]=addr;
HEAP16[(((sa)+(2))>>1)]=_htons(port);
break;
case 10:
addr = __inet_pton6_raw(addr);
HEAP32[((sa)>>2)]=family;
HEAP32[(((sa)+(8))>>2)]=addr[0];
HEAP32[(((sa)+(12))>>2)]=addr[1];
HEAP32[(((sa)+(16))>>2)]=addr[2];
HEAP32[(((sa)+(20))>>2)]=addr[3];
HEAP16[(((sa)+(2))>>1)]=_htons(port);
HEAP32[(((sa)+(4))>>2)]=0;
HEAP32[(((sa)+(24))>>2)]=0;
break;
default:
return { errno: 97 };
}
// kind of lame, but let's match _read_sockaddr's interface
return {};
}function ___syscall102(which, varargs) {SYSCALLS.varargs = varargs;
try {
// socketcall
var call = SYSCALLS.get(), socketvararg = SYSCALLS.get();
// socketcalls pass the rest of the arguments in a struct
SYSCALLS.varargs = socketvararg;
switch (call) {
case 1: { // socket
var domain = SYSCALLS.get(), type = SYSCALLS.get(), protocol = SYSCALLS.get();
var sock = SOCKFS.createSocket(domain, type, protocol);
return sock.stream.fd;
}
case 2: { // bind
var sock = SYSCALLS.getSocketFromFD(), info = SYSCALLS.getSocketAddress();
sock.sock_ops.bind(sock, info.addr, info.port);
return 0;
}
case 3: { // connect
var sock = SYSCALLS.getSocketFromFD(), info = SYSCALLS.getSocketAddress();
sock.sock_ops.connect(sock, info.addr, info.port);
return 0;
}
case 4: { // listen
var sock = SYSCALLS.getSocketFromFD(), backlog = SYSCALLS.get();
sock.sock_ops.listen(sock, backlog);
return 0;
}
case 5: { // accept
var sock = SYSCALLS.getSocketFromFD(), addr = SYSCALLS.get(), addrlen = SYSCALLS.get();
var newsock = sock.sock_ops.accept(sock);
if (addr) {
var res = __write_sockaddr(addr, newsock.family, DNS.lookup_name(newsock.daddr), newsock.dport);
}
return newsock.stream.fd;
}
case 6: { // getsockname
var sock = SYSCALLS.getSocketFromFD(), addr = SYSCALLS.get(), addrlen = SYSCALLS.get();
// TODO: sock.saddr should never be undefined, see TODO in websocket_sock_ops.getname
var res = __write_sockaddr(addr, sock.family, DNS.lookup_name(sock.saddr || '0.0.0.0'), sock.sport);
return 0;
}
case 7: { // getpeername
var sock = SYSCALLS.getSocketFromFD(), addr = SYSCALLS.get(), addrlen = SYSCALLS.get();
if (!sock.daddr) {
return -ERRNO_CODES.ENOTCONN; // The socket is not connected.
}
var res = __write_sockaddr(addr, sock.family, DNS.lookup_name(sock.daddr), sock.dport);
return 0;
}
case 11: { // sendto
var sock = SYSCALLS.getSocketFromFD(), message = SYSCALLS.get(), length = SYSCALLS.get(), flags = SYSCALLS.get(), dest = SYSCALLS.getSocketAddress(true);
if (!dest) {
// send, no address provided
return FS.write(sock.stream, HEAP8,message, length);
} else {
// sendto an address
return sock.sock_ops.sendmsg(sock, HEAP8,message, length, dest.addr, dest.port);
}
}
case 12: { // recvfrom
var sock = SYSCALLS.getSocketFromFD(), buf = SYSCALLS.get(), len = SYSCALLS.get(), flags = SYSCALLS.get(), addr = SYSCALLS.get(), addrlen = SYSCALLS.get();
var msg = sock.sock_ops.recvmsg(sock, len);
if (!msg) return 0; // socket is closed
if (addr) {
var res = __write_sockaddr(addr, sock.family, DNS.lookup_name(msg.addr), msg.port);
}
HEAPU8.set(msg.buffer, buf);
return msg.buffer.byteLength;
}
case 14: { // setsockopt
return -ERRNO_CODES.ENOPROTOOPT; // The option is unknown at the level indicated.
}
case 15: { // getsockopt
var sock = SYSCALLS.getSocketFromFD(), level = SYSCALLS.get(), optname = SYSCALLS.get(), optval = SYSCALLS.get(), optlen = SYSCALLS.get();
// Minimal getsockopt aimed at resolving https://github.com/emscripten-core/emscripten/issues/2211
// so only supports SOL_SOCKET with SO_ERROR.
if (level === 1) {
if (optname === 4) {
HEAP32[((optval)>>2)]=sock.error;
HEAP32[((optlen)>>2)]=4;
sock.error = null; // Clear the error (The SO_ERROR option obtains and then clears this field).
return 0;
}
}
return -ERRNO_CODES.ENOPROTOOPT; // The option is unknown at the level indicated.
}
case 16: { // sendmsg
var sock = SYSCALLS.getSocketFromFD(), message = SYSCALLS.get(), flags = SYSCALLS.get();
var iov = HEAP32[(((message)+(8))>>2)];
var num = HEAP32[(((message)+(12))>>2)];
// read the address and port to send to
var addr, port;
var name = HEAP32[((message)>>2)];
var namelen = HEAP32[(((message)+(4))>>2)];
if (name) {
var info = __read_sockaddr(name, namelen);
if (info.errno) return -info.errno;
port = info.port;
addr = DNS.lookup_addr(info.addr) || info.addr;
}
// concatenate scatter-gather arrays into one message buffer
var total = 0;
for (var i = 0; i < num; i++) {
total += HEAP32[(((iov)+((8 * i) + 4))>>2)];
}
var view = new Uint8Array(total);
var offset = 0;
for (var i = 0; i < num; i++) {
var iovbase = HEAP32[(((iov)+((8 * i) + 0))>>2)];
var iovlen = HEAP32[(((iov)+((8 * i) + 4))>>2)];
for (var j = 0; j < iovlen; j++) {
view[offset++] = HEAP8[(((iovbase)+(j))>>0)];
}
}
// write the buffer
return sock.sock_ops.sendmsg(sock, view, 0, total, addr, port);
}
case 17: { // recvmsg
var sock = SYSCALLS.getSocketFromFD(), message = SYSCALLS.get(), flags = SYSCALLS.get();
var iov = HEAP32[(((message)+(8))>>2)];
var num = HEAP32[(((message)+(12))>>2)];
// get the total amount of data we can read across all arrays
var total = 0;
for (var i = 0; i < num; i++) {
total += HEAP32[(((iov)+((8 * i) + 4))>>2)];
}
// try to read total data
var msg = sock.sock_ops.recvmsg(sock, total);
if (!msg) return 0; // socket is closed
// TODO honor flags:
// MSG_OOB
// Requests out-of-band data. The significance and semantics of out-of-band data are protocol-specific.
// MSG_PEEK
// Peeks at the incoming message.
// MSG_WAITALL
// Requests that the function block until the full amount of data requested can be returned. The function may return a smaller amount of data if a signal is caught, if the connection is terminated, if MSG_PEEK was specified, or if an error is pending for the socket.
// write the source address out
var name = HEAP32[((message)>>2)];
if (name) {
var res = __write_sockaddr(name, sock.family, DNS.lookup_name(msg.addr), msg.port);
}
// write the buffer out to the scatter-gather arrays
var bytesRead = 0;
var bytesRemaining = msg.buffer.byteLength;
for (var i = 0; bytesRemaining > 0 && i < num; i++) {
var iovbase = HEAP32[(((iov)+((8 * i) + 0))>>2)];
var iovlen = HEAP32[(((iov)+((8 * i) + 4))>>2)];
if (!iovlen) {
continue;
}
var length = Math.min(iovlen, bytesRemaining);
var buf = msg.buffer.subarray(bytesRead, bytesRead + length);
HEAPU8.set(buf, iovbase + bytesRead);
bytesRead += length;
bytesRemaining -= length;
}
// TODO set msghdr.msg_flags
// MSG_EOR
// End of record was received (if supported by the protocol).
// MSG_OOB
// Out-of-band data was received.
// MSG_TRUNC
// Normal data was truncated.
// MSG_CTRUNC
return bytesRead;
}
default: abort('unsupported socketcall syscall ' + call);
}
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall12(which, varargs) {SYSCALLS.varargs = varargs;
try {
// chdir
var path = SYSCALLS.getStr();
FS.chdir(path);
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
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 ___syscall168(which, varargs) {SYSCALLS.varargs = varargs;
try {
// poll
var fds = SYSCALLS.get(), nfds = SYSCALLS.get(), timeout = SYSCALLS.get();
var nonzero = 0;
for (var i = 0; i < nfds; i++) {
var pollfd = fds + 8 * i;
var fd = HEAP32[((pollfd)>>2)];
var events = HEAP16[(((pollfd)+(4))>>1)];
var mask = 32;
var stream = FS.getStream(fd);
if (stream) {
mask = SYSCALLS.DEFAULT_POLLMASK;
if (stream.stream_ops.poll) {
mask = stream.stream_ops.poll(stream);
}
}
mask &= events | 8 | 16;
if (mask) nonzero++;
HEAP16[(((pollfd)+(6))>>1)]=mask;
}
return nonzero;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall195(which, varargs) {SYSCALLS.varargs = varargs;
try {
// SYS_stat64
var path = SYSCALLS.getStr(), buf = SYSCALLS.get();
return SYSCALLS.doStat(FS.stat, path, buf);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall197(which, varargs) {SYSCALLS.varargs = varargs;
try {
// SYS_fstat64
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get();
return SYSCALLS.doStat(FS.stat, stream.path, buf);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall220(which, varargs) {SYSCALLS.varargs = varargs;
try {
// SYS_getdents64
var stream = SYSCALLS.getStreamFromFD(), dirp = SYSCALLS.get(), count = SYSCALLS.get();
if (!stream.getdents) {
stream.getdents = FS.readdir(stream.path);
}
var pos = 0;
while (stream.getdents.length > 0 && pos + 268 <= count) {
var id;
var type;
var name = stream.getdents.pop();
if (name[0] === '.') {
id = 1;
type = 4; // DT_DIR
} else {
var child = FS.lookupNode(stream.node, name);
id = child.id;
type = FS.isChrdev(child.mode) ? 2 : // DT_CHR, character device.
FS.isDir(child.mode) ? 4 : // DT_DIR, directory.
FS.isLink(child.mode) ? 10 : // DT_LNK, symbolic link.
8; // DT_REG, regular file.
}
HEAP32[((dirp + pos)>>2)]=id;
HEAP32[(((dirp + pos)+(4))>>2)]=stream.position;
HEAP16[(((dirp + pos)+(8))>>1)]=268;
HEAP8[(((dirp + pos)+(10))>>0)]=type;
stringToUTF8(name, dirp + pos + 11, 256);
pos += 268;
}
return pos;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs;
try {
// fcntl64
var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get();
switch (cmd) {
case 0: {
var arg = SYSCALLS.get();
if (arg < 0) {
return -ERRNO_CODES.EINVAL;
}
var newStream;
newStream = FS.open(stream.path, stream.flags, 0, arg);
return newStream.fd;
}
case 1:
case 2:
return 0; // FD_CLOEXEC makes no sense for a single process.
case 3:
return stream.flags;
case 4: {
var arg = SYSCALLS.get();
stream.flags |= arg;
return 0;
}
case 12:
/* case 12: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ {
var arg = SYSCALLS.get();
var offset = 0;
// We're always unlocked.
HEAP16[(((arg)+(offset))>>1)]=2;
return 0;
}
case 13:
case 14:
/* case 13: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */
/* case 14: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */
return 0; // Pretend that the locking is successful.
case 16:
case 8:
return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet.
case 9:
// musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves.
___setErrNo(ERRNO_CODES.EINVAL);
return -1;
default: {
return -ERRNO_CODES.EINVAL;
}
}
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall3(which, varargs) {SYSCALLS.varargs = varargs;
try {
// read
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get(), count = SYSCALLS.get();
return FS.read(stream, HEAP8,buf, count);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall39(which, varargs) {SYSCALLS.varargs = varargs;
try {
// mkdir
var path = SYSCALLS.getStr(), mode = SYSCALLS.get();
return SYSCALLS.doMkdir(path, mode);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall4(which, varargs) {SYSCALLS.varargs = varargs;
try {
// write
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get(), count = SYSCALLS.get();
return FS.write(stream, HEAP8,buf, count);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs;
try {
// open
var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO
var stream = FS.open(pathname, flags, mode);
return stream.fd;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
try {
// ioctl
var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get();
switch (op) {
case 21509:
case 21505: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0;
}
case 21510:
case 21511:
case 21512:
case 21506:
case 21507:
case 21508: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0; // no-op, not actually adjusting terminal settings
}
case 21519: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
var argp = SYSCALLS.get();
HEAP32[((argp)>>2)]=0;
return 0;
}
case 21520: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return -ERRNO_CODES.EINVAL; // not supported
}
case 21531: {
var argp = SYSCALLS.get();
return FS.ioctl(stream, op, argp);
}
case 21523: {
// TODO: in theory we should write to the winsize struct that gets
// passed in, but for now musl doesn't read anything on it
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0;
}
case 21524: {
// TODO: technically, this ioctl call should change the window size.
// but, since emscripten doesn't have any concept of a terminal window
// yet, we'll just silently throw it away as we do TIOCGWINSZ
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0;
}
default: abort('bad ioctl syscall ' + op);
}
} 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;
}
}
var _emscripten_asm_const_int=true;
var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function () {
for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) {
JSEvents._removeHandler(i);
}
JSEvents.eventHandlers = [];
JSEvents.deferredCalls = [];
},registerRemoveEventListeners:function () {
if (!JSEvents.removeEventListenersRegistered) {
__ATEXIT__.push(JSEvents.removeAllEventListeners);
JSEvents.removeEventListenersRegistered = true;
}
},deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) {
function arraysHaveEqualContent(arrA, arrB) {
if (arrA.length != arrB.length) return false;
for(var i in arrA) {
if (arrA[i] != arrB[i]) return false;
}
return true;
}
// Test if the given call was already queued, and if so, don't add it again.
for(var i in JSEvents.deferredCalls) {
var call = JSEvents.deferredCalls[i];
if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) {
return;
}
}
JSEvents.deferredCalls.push({
targetFunction: targetFunction,
precedence: precedence,
argsList: argsList
});
JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; });
},removeDeferredCalls:function (targetFunction) {
for(var i = 0; i < JSEvents.deferredCalls.length; ++i) {
if (JSEvents.deferredCalls[i].targetFunction == targetFunction) {
JSEvents.deferredCalls.splice(i, 1);
--i;
}
}
},canPerformEventHandlerRequests:function () {
return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls;
},runDeferredCalls:function () {
if (!JSEvents.canPerformEventHandlerRequests()) {
return;
}
for(var i = 0; i < JSEvents.deferredCalls.length; ++i) {
var call = JSEvents.deferredCalls[i];
JSEvents.deferredCalls.splice(i, 1);
--i;
call.targetFunction.apply(this, call.argsList);
}
},inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) {
for(var i = 0; i < JSEvents.eventHandlers.length; ++i) {
if (JSEvents.eventHandlers[i].target == target &&
(!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) {
JSEvents._removeHandler(i--);
}
}
},_removeHandler:function (i) {
var h = JSEvents.eventHandlers[i];
h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture);
JSEvents.eventHandlers.splice(i, 1);
},registerOrRemoveHandler:function (eventHandler) {
var jsEventHandler = function jsEventHandler(event) {
// Increment nesting count for the event handler.
++JSEvents.inEventHandler;
JSEvents.currentEventHandler = eventHandler;
// Process any old deferred calls the user has placed.
JSEvents.runDeferredCalls();
// Process the actual event, calls back to user C code handler.
eventHandler.handlerFunc(event);
// Process any new deferred calls that were placed right now from this event handler.
JSEvents.runDeferredCalls();
// Out of event handler - restore nesting count.
--JSEvents.inEventHandler;
}
if (eventHandler.callbackfunc) {
eventHandler.eventListenerFunc = jsEventHandler;
eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, { useCapture: eventHandler.useCapture, passive: false });
JSEvents.eventHandlers.push(eventHandler);
JSEvents.registerRemoveEventListeners();
} else {
for(var i = 0; i < JSEvents.eventHandlers.length; ++i) {
if (JSEvents.eventHandlers[i].target == eventHandler.target
&& JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) {
JSEvents._removeHandler(i--);
}
}
}
},getBoundingClientRectOrZeros:function (target) {
return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 };
},pageScrollPos:function () {
if (window.pageXOffset > 0 || window.pageYOffset > 0) {
return [window.pageXOffset, window.pageYOffset];
}
if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') {
return [document.documentElement.scrollLeft, document.documentElement.scrollTop];
}
return [document.body.scrollLeft|0, document.body.scrollTop|0];
},getNodeNameForTarget:function (target) {
if (!target) return '';
if (target == window) return '#window';
if (target == screen) return '#screen';
return (target && target.nodeName) ? target.nodeName : '';
},tick:function () {
if (window['performance'] && window['performance']['now']) return window['performance']['now']();
else return Date.now();
},fullscreenEnabled:function () {
return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled;
}};
var __currentFullscreenStrategy={};
var __specialEventTargets=[0, typeof document !== 'undefined' ? document : 0, typeof window !== 'undefined' ? window : 0];function __findEventTarget(target) {
try {
// The sensible "default" target varies between events, but use window as the default
// since DOM events mostly can default to that. Specific callback registrations
// override their own defaults.
if (!target) return window;
if (typeof target === "number") target = __specialEventTargets[target] || UTF8ToString(target);
if (target === '#window') return window;
else if (target === '#document') return document;
else if (target === '#screen') return screen;
else if (target === '#canvas') return Module['canvas'];
return (typeof target === 'string') ? document.getElementById(target) : target;
} catch(e) {
// In Web Workers, some objects above, such as '#document' do not exist. Gracefully
// return null for them.
return null;
}
}function __findCanvasEventTarget(target) {
if (typeof target === 'number') target = UTF8ToString(target);
if (!target || target === '#canvas') {
if (typeof GL !== 'undefined' && GL.offscreenCanvases['canvas']) return GL.offscreenCanvases['canvas']; // TODO: Remove this line, target '#canvas' should refer only to Module['canvas'], not to GL.offscreenCanvases['canvas'] - but need stricter tests to be able to remove this line.
return Module['canvas'];
}
if (typeof GL !== 'undefined' && GL.offscreenCanvases[target]) return GL.offscreenCanvases[target];
return __findEventTarget(target);
}function _emscripten_get_canvas_element_size(target, width, height) {
var canvas = __findCanvasEventTarget(target);
if (!canvas) return -4;
HEAP32[((width)>>2)]=canvas.width;
HEAP32[((height)>>2)]=canvas.height;
}function __get_canvas_element_size(target) {
var stackTop = stackSave();
var w = stackAlloc(8);
var h = w + 4;
var targetInt = stackAlloc(target.id.length+1);
stringToUTF8(target.id, targetInt, target.id.length+1);
var ret = _emscripten_get_canvas_element_size(targetInt, w, h);
var size = [HEAP32[((w)>>2)], HEAP32[((h)>>2)]];
stackRestore(stackTop);
return size;
}
function _emscripten_set_canvas_element_size(target, width, height) {
var canvas = __findCanvasEventTarget(target);
if (!canvas) return -4;
canvas.width = width;
canvas.height = height;
return 0;
}function __set_canvas_element_size(target, width, height) {
if (!target.controlTransferredOffscreen) {
target.width = width;
target.height = height;
} else {
// This function is being called from high-level JavaScript code instead of asm.js/Wasm,
// and it needs to synchronously proxy over to another thread, so marshal the string onto the heap to do the call.
var stackTop = stackSave();
var targetInt = stackAlloc(target.id.length+1);
stringToUTF8(target.id, targetInt, target.id.length+1);
_emscripten_set_canvas_element_size(targetInt, width, height);
stackRestore(stackTop);
}
}function __registerRestoreOldStyle(canvas) {
var canvasSize = __get_canvas_element_size(canvas);
var oldWidth = canvasSize[0];
var oldHeight = canvasSize[1];
var oldCssWidth = canvas.style.width;
var oldCssHeight = canvas.style.height;
var oldBackgroundColor = canvas.style.backgroundColor; // Chrome reads color from here.
var oldDocumentBackgroundColor = document.body.style.backgroundColor; // IE11 reads color from here.
// Firefox always has black background color.
var oldPaddingLeft = canvas.style.paddingLeft; // Chrome, FF, Safari
var oldPaddingRight = canvas.style.paddingRight;
var oldPaddingTop = canvas.style.paddingTop;
var oldPaddingBottom = canvas.style.paddingBottom;
var oldMarginLeft = canvas.style.marginLeft; // IE11
var oldMarginRight = canvas.style.marginRight;
var oldMarginTop = canvas.style.marginTop;
var oldMarginBottom = canvas.style.marginBottom;
var oldDocumentBodyMargin = document.body.style.margin;
var oldDocumentOverflow = document.documentElement.style.overflow; // Chrome, Firefox
var oldDocumentScroll = document.body.scroll; // IE
var oldImageRendering = canvas.style.imageRendering;
function restoreOldStyle() {
var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;
if (!fullscreenElement) {
document.removeEventListener('fullscreenchange', restoreOldStyle);
document.removeEventListener('mozfullscreenchange', restoreOldStyle);
document.removeEventListener('webkitfullscreenchange', restoreOldStyle);
document.removeEventListener('MSFullscreenChange', restoreOldStyle);
__set_canvas_element_size(canvas, oldWidth, oldHeight);
canvas.style.width = oldCssWidth;
canvas.style.height = oldCssHeight;
canvas.style.backgroundColor = oldBackgroundColor; // Chrome
// IE11 hack: assigning 'undefined' or an empty string to document.body.style.backgroundColor has no effect, so first assign back the default color
// before setting the undefined value. Setting undefined value is also important, or otherwise we would later treat that as something that the user
// had explicitly set so subsequent fullscreen transitions would not set background color properly.
if (!oldDocumentBackgroundColor) document.body.style.backgroundColor = 'white';
document.body.style.backgroundColor = oldDocumentBackgroundColor; // IE11
canvas.style.paddingLeft = oldPaddingLeft; // Chrome, FF, Safari
canvas.style.paddingRight = oldPaddingRight;
canvas.style.paddingTop = oldPaddingTop;
canvas.style.paddingBottom = oldPaddingBottom;
canvas.style.marginLeft = oldMarginLeft; // IE11
canvas.style.marginRight = oldMarginRight;
canvas.style.marginTop = oldMarginTop;
canvas.style.marginBottom = oldMarginBottom;
document.body.style.margin = oldDocumentBodyMargin;
document.documentElement.style.overflow = oldDocumentOverflow; // Chrome, Firefox
document.body.scroll = oldDocumentScroll; // IE
canvas.style.imageRendering = oldImageRendering;
if (canvas.GLctxObject) canvas.GLctxObject.GLctx.viewport(0, 0, oldWidth, oldHeight);
if (__currentFullscreenStrategy.canvasResizedCallback) {
dynCall_iiii(__currentFullscreenStrategy.canvasResizedCallback, 37, 0, __currentFullscreenStrategy.canvasResizedCallbackUserData);
}
}
}
document.addEventListener('fullscreenchange', restoreOldStyle);
document.addEventListener('mozfullscreenchange', restoreOldStyle);
document.addEventListener('webkitfullscreenchange', restoreOldStyle);
document.addEventListener('MSFullscreenChange', restoreOldStyle);
return restoreOldStyle;
}
function __setLetterbox(element, topBottom, leftRight) {
if (JSEvents.isInternetExplorer()) {
// Cannot use padding on IE11, because IE11 computes padding in addition to the size, unlike
// other browsers, which treat padding to be part of the size.
// e.g.
// FF, Chrome: If CSS size = 1920x1080, padding-leftright = 460, padding-topbottomx40, then content size = (1920 - 2*460) x (1080-2*40) = 1000x1000px, and total element size = 1920x1080px.
// IE11: If CSS size = 1920x1080, padding-leftright = 460, padding-topbottomx40, then content size = 1920x1080px and total element size = (1920+2*460) x (1080+2*40)px.
// IE11 treats margin like Chrome and FF treat padding.
element.style.marginLeft = element.style.marginRight = leftRight + 'px';
element.style.marginTop = element.style.marginBottom = topBottom + 'px';
} else {
// Cannot use margin to specify letterboxes in FF or Chrome, since those ignore margins in fullscreen mode.
element.style.paddingLeft = element.style.paddingRight = leftRight + 'px';
element.style.paddingTop = element.style.paddingBottom = topBottom + 'px';
}
}function _JSEvents_resizeCanvasForFullscreen(target, strategy) {
var restoreOldStyle = __registerRestoreOldStyle(target);
var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width;
var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height;
var rect = target.getBoundingClientRect();
var windowedCssWidth = rect.right - rect.left;
var windowedCssHeight = rect.bottom - rect.top;
var canvasSize = __get_canvas_element_size(target);
var windowedRttWidth = canvasSize[0];
var windowedRttHeight = canvasSize[1];
if (strategy.scaleMode == 3) {
__setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2);
cssWidth = windowedCssWidth;
cssHeight = windowedCssHeight;
} else if (strategy.scaleMode == 2) {
if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) {
var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth;
__setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0);
cssHeight = desiredCssHeight;
} else {
var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight;
__setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2);
cssWidth = desiredCssWidth;
}
}
// If we are adding padding, must choose a background color or otherwise Chrome will give the
// padding a default white color. Do it only if user has not customized their own background color.
if (!target.style.backgroundColor) target.style.backgroundColor = 'black';
// IE11 does the same, but requires the color to be set in the document body.
if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11
// Firefox always shows black letterboxes independent of style color.
target.style.width = cssWidth + 'px';
target.style.height = cssHeight + 'px';
if (strategy.filteringMode == 1) {
target.style.imageRendering = 'optimizeSpeed';
target.style.imageRendering = '-moz-crisp-edges';
target.style.imageRendering = '-o-crisp-edges';
target.style.imageRendering = '-webkit-optimize-contrast';
target.style.imageRendering = 'optimize-contrast';
target.style.imageRendering = 'crisp-edges';
target.style.imageRendering = 'pixelated';
}
var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1;
if (strategy.canvasResolutionScaleMode != 0) {
var newWidth = (cssWidth * dpiScale)|0;
var newHeight = (cssHeight * dpiScale)|0;
__set_canvas_element_size(target, newWidth, newHeight);
if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, newWidth, newHeight);
}
return restoreOldStyle;
}function _JSEvents_requestFullscreen(target, strategy) {
// EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements.
if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) {
_JSEvents_resizeCanvasForFullscreen(target, strategy);
}
if (target.requestFullscreen) {
target.requestFullscreen();
} else if (target.msRequestFullscreen) {
target.msRequestFullscreen();
} else if (target.mozRequestFullScreen) {
target.mozRequestFullScreen();
} else if (target.mozRequestFullscreen) {
target.mozRequestFullscreen();
} else if (target.webkitRequestFullscreen) {
target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
} else {
if (typeof JSEvents.fullscreenEnabled() === 'undefined') {
return -1;
} else {
return -3;
}
}
if (strategy.canvasResizedCallback) {
dynCall_iiii(strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData);
}
return 0;
}function _emscripten_exit_fullscreen() {
if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1;
// Make sure no queued up calls will fire after this.
JSEvents.removeDeferredCalls(_JSEvents_requestFullscreen);
var d = __specialEventTargets[1];
if (d.exitFullscreen) {
d.fullscreenElement && d.exitFullscreen();
} else if (d.msExitFullscreen) {
d.msFullscreenElement && d.msExitFullscreen();
} else if (d.mozCancelFullScreen) {
d.mozFullScreenElement && d.mozCancelFullScreen();
} else if (d.webkitExitFullscreen) {
d.webkitFullscreenElement && d.webkitExitFullscreen();
} else {
return -1;
}
if (__currentFullscreenStrategy.canvasResizedCallback) {
dynCall_iiii(__currentFullscreenStrategy.canvasResizedCallback, 37, 0, __currentFullscreenStrategy.canvasResizedCallbackUserData);
__currentFullscreenStrategy = 0;
}
return 0;
}
function __requestPointerLock(target) {
if (target.requestPointerLock) {
target.requestPointerLock();
} else if (target.mozRequestPointerLock) {
target.mozRequestPointerLock();
} else if (target.webkitRequestPointerLock) {
target.webkitRequestPointerLock();
} else if (target.msRequestPointerLock) {
target.msRequestPointerLock();
} else {
// document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element,
// or if the whole browser just doesn't support the feature.
if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) {
return -3;
} else {
return -1;
}
}
return 0;
}function _emscripten_exit_pointerlock() {
// Make sure no queued up calls will fire after this.
JSEvents.removeDeferredCalls(__requestPointerLock);
if (document.exitPointerLock) {
document.exitPointerLock();
} else if (document.msExitPointerLock) {
document.msExitPointerLock();
} else if (document.mozExitPointerLock) {
document.mozExitPointerLock();
} else if (document.webkitExitPointerLock) {
document.webkitExitPointerLock();
} else {
return -1;
}
return 0;
}
function _emscripten_get_device_pixel_ratio() {
return window.devicePixelRatio || 1.0;
}
function _emscripten_get_element_css_size(target, width, height) {
target = target ? __findEventTarget(target) : Module['canvas'];
if (!target) return -4;
if (target.getBoundingClientRect) {
var rect = target.getBoundingClientRect();
HEAPF64[((width)>>3)]=rect.right - rect.left;
HEAPF64[((height)>>3)]=rect.bottom - rect.top;
} else {
HEAPF64[((width)>>3)]=target.clientWidth;
HEAPF64[((height)>>3)]=target.clientHeight;
}
return 0;
}
function __fillFullscreenChangeEventData(eventStruct, e) {
var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;
var isFullscreen = !!fullscreenElement;
HEAP32[((eventStruct)>>2)]=isFullscreen;
HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled();
// If transitioning to fullscreen, report info about the element that is now fullscreen.
// If transitioning to windowed mode, report info about the element that just was fullscreen.
var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement;
var nodeName = JSEvents.getNodeNameForTarget(reportedElement);
var id = (reportedElement && reportedElement.id) ? reportedElement.id : '';
stringToUTF8(nodeName, eventStruct + 8, 128);
stringToUTF8(id, eventStruct + 136, 128);
HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0;
HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0;
HEAP32[(((eventStruct)+(272))>>2)]=screen.width;
HEAP32[(((eventStruct)+(276))>>2)]=screen.height;
if (isFullscreen) {
JSEvents.previousFullscreenElement = fullscreenElement;
}
}function _emscripten_get_fullscreen_status(fullscreenStatus) {
if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1;
__fillFullscreenChangeEventData(fullscreenStatus);
return 0;
}
function _emscripten_get_heap_size() {
return HEAP8.length;
}
function _emscripten_get_now() { abort() }
function __fillPointerlockChangeEventData(eventStruct, e) {
var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement;
var isPointerlocked = !!pointerLockElement;
HEAP32[((eventStruct)>>2)]=isPointerlocked;
var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement);
var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : '';
stringToUTF8(nodeName, eventStruct + 4, 128);
stringToUTF8(id, eventStruct + 132, 128);
}function _emscripten_get_pointerlock_status(pointerlockStatus) {
if (pointerlockStatus) __fillPointerlockChangeEventData(pointerlockStatus);
if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) {
return -1;
}
return 0;
}
function _emscripten_is_main_browser_thread() {
return !ENVIRONMENT_IS_WORKER;
}
function _emscripten_is_webgl_context_lost(target) {
return !GL.contexts[target] || GL.contexts[target].GLctx.isContextLost(); // No context ~> lost context.
}
function __emscripten_do_request_fullscreen(target, strategy) {
if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1;
if (!JSEvents.fullscreenEnabled()) return -3;
if (!target) target = '#canvas';
target = __findEventTarget(target);
if (!target) return -4;
if (!target.requestFullscreen && !target.msRequestFullscreen && !target.mozRequestFullScreen && !target.mozRequestFullscreen && !target.webkitRequestFullscreen) {
return -3;
}
var canPerformRequests = JSEvents.canPerformEventHandlerRequests();
// Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so.
if (!canPerformRequests) {
if (strategy.deferUntilInEventHandler) {
JSEvents.deferCall(_JSEvents_requestFullscreen, 1 /* priority over pointer lock */, [target, strategy]);
return 1;
} else {
return -2;
}
}
return _JSEvents_requestFullscreen(target, strategy);
}function _emscripten_request_fullscreen_strategy(target, deferUntilInEventHandler, fullscreenStrategy) {
var strategy = {};
strategy.scaleMode = HEAP32[((fullscreenStrategy)>>2)];
strategy.canvasResolutionScaleMode = HEAP32[(((fullscreenStrategy)+(4))>>2)];
strategy.filteringMode = HEAP32[(((fullscreenStrategy)+(8))>>2)];
strategy.deferUntilInEventHandler = deferUntilInEventHandler;
strategy.canvasResizedCallback = HEAP32[(((fullscreenStrategy)+(12))>>2)];
strategy.canvasResizedCallbackUserData = HEAP32[(((fullscreenStrategy)+(16))>>2)];
__currentFullscreenStrategy = strategy;
return __emscripten_do_request_fullscreen(target, strategy);
}
function _emscripten_request_pointerlock(target, deferUntilInEventHandler) {
if (!target) target = '#canvas';
target = __findEventTarget(target);
if (!target) return -4;
if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) {
return -1;
}
var canPerformRequests = JSEvents.canPerformEventHandlerRequests();
// Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so.
if (!canPerformRequests) {
if (deferUntilInEventHandler) {
JSEvents.deferCall(__requestPointerLock, 2 /* priority below fullscreen */, [target]);
return 1;
} else {
return -2;
}
}
return __requestPointerLock(target);
}
function abortOnCannotGrowMemory(requestedSize) {
abort('OOM');
}
function emscripten_realloc_buffer(size) {
try {
var newBuffer = new ArrayBuffer(size);
if (newBuffer.byteLength != size) return false;
new Int8Array(newBuffer).set(HEAP8);
} catch(e) {
return false;
}
Module['_emscripten_replace_memory'](newBuffer);
HEAP8 = new Int8Array(newBuffer);
HEAP16 = new Int16Array(newBuffer);
HEAP32 = new Int32Array(newBuffer);
HEAPU8 = new Uint8Array(newBuffer);
HEAPU16 = new Uint16Array(newBuffer);
HEAPU32 = new Uint32Array(newBuffer);
HEAPF32 = new Float32Array(newBuffer);
HEAPF64 = new Float64Array(newBuffer);
buffer = newBuffer;
return newBuffer;
}function _emscripten_resize_heap(requestedSize) {
var oldSize = _emscripten_get_heap_size();
var PAGE_MULTIPLE = 16777216;
var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.
if (requestedSize > LIMIT) {
return false;
}
var MIN_TOTAL_MEMORY = 16777216;
var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.
while (newSize < requestedSize) { // Keep incrementing the heap size as long as it's less than what is requested.
if (newSize <= 536870912) {
newSize = alignUp(2 * newSize, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...
} else {
// ..., but after that, add smaller increments towards 2GB, which we cannot reach
newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);
}
}
var replacement = emscripten_realloc_buffer(newSize);
if (!replacement || replacement.byteLength != newSize) {
return false;
}
// everything worked
updateGlobalBufferViews();
return true;
}
function __registerBeforeUnloadEventCallback(target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) {
var beforeUnloadEventHandlerFunc = function(event) {
var e = event || window.event;
// Note: This is always called on the main browser thread, since it needs synchronously return a value!
var confirmationMessage = dynCall_iiii(callbackfunc, eventTypeId, 0, userData);
if (confirmationMessage) {
confirmationMessage = UTF8ToString(confirmationMessage);
}
if (confirmationMessage) {
e.preventDefault();
e.returnValue = confirmationMessage;
return confirmationMessage;
}
};
var eventHandler = {
target: __findEventTarget(target),
allowsDeferredCalls: false,
eventTypeString: eventTypeString,
callbackfunc: callbackfunc,
handlerFunc: beforeUnloadEventHandlerFunc,
useCapture: useCapture
};
JSEvents.registerOrRemoveHandler(eventHandler);
}function _emscripten_set_beforeunload_callback_on_thread(userData, callbackfunc, targetThread) {
if (typeof window.onbeforeunload === 'undefined') return -1;
// beforeunload callback can only be registered on the main browser thread, because the page will go away immediately after returning from the handler,
// and there is no time to start proxying it anywhere.
if (targetThread !== 1) return -5;
__registerBeforeUnloadEventCallback(2, userData, true, callbackfunc, 28, "beforeunload");
return 0;
}
function __registerFocusEventCallback(target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) {
if (!JSEvents.focusEvent) JSEvents.focusEvent = _malloc( 256 );
var focusEventHandlerFunc = function(event) {
var e = event || window.event;
var nodeName = JSEvents.getNodeNameForTarget(e.target);
var id = e.target.id ? e.target.id : '';
var focusEvent = JSEvents.focusEvent;
stringToUTF8(nodeName, focusEvent + 0, 128);
stringToUTF8(id, focusEvent + 128, 128);
if (dynCall_iiii(callbackfunc, eventTypeId, focusEvent, userData)) e.preventDefault();
};
var eventHandler = {
target: __findEventTarget(target),
allowsDeferredCalls: false,
eventTypeString: eventTypeString,
callbackfunc: callbackfunc,
handlerFunc: focusEventHandlerFunc,
useCapture: useCapture
};
JSEvents.registerOrRemoveHandler(eventHandler);
}function _emscripten_set_blur_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerFocusEventCallback(target, userData, useCapture, callbackfunc, 12, "blur", targetThread);
return 0;
}
function _emscripten_set_focus_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerFocusEventCallback(target, userData, useCapture, callbackfunc, 13, "focus", targetThread);
return 0;
}
function __registerKeyEventCallback(target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) {
if (!JSEvents.keyEvent) JSEvents.keyEvent = _malloc( 164 );
var keyEventHandlerFunc = function(event) {
var e = event || window.event;
var keyEventData = JSEvents.keyEvent;
stringToUTF8(e.key ? e.key : "", keyEventData + 0, 32);
stringToUTF8(e.code ? e.code : "", keyEventData + 32, 32);
HEAP32[(((keyEventData)+(64))>>2)]=e.location;
HEAP32[(((keyEventData)+(68))>>2)]=e.ctrlKey;
HEAP32[(((keyEventData)+(72))>>2)]=e.shiftKey;
HEAP32[(((keyEventData)+(76))>>2)]=e.altKey;
HEAP32[(((keyEventData)+(80))>>2)]=e.metaKey;
HEAP32[(((keyEventData)+(84))>>2)]=e.repeat;
stringToUTF8(e.locale ? e.locale : "", keyEventData + 88, 32);
stringToUTF8(e.char ? e.char : "", keyEventData + 120, 32);
HEAP32[(((keyEventData)+(152))>>2)]=e.charCode;
HEAP32[(((keyEventData)+(156))>>2)]=e.keyCode;
HEAP32[(((keyEventData)+(160))>>2)]=e.which;
if (dynCall_iiii(callbackfunc, eventTypeId, keyEventData, userData)) e.preventDefault();
};
var eventHandler = {
target: __findEventTarget(target),
allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do.
eventTypeString: eventTypeString,
callbackfunc: callbackfunc,
handlerFunc: keyEventHandlerFunc,
useCapture: useCapture
};
JSEvents.registerOrRemoveHandler(eventHandler);
}function _emscripten_set_keydown_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerKeyEventCallback(target, userData, useCapture, callbackfunc, 2, "keydown", targetThread);
return 0;
}
function _emscripten_set_keypress_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress", targetThread);
return 0;
}
function _emscripten_set_keyup_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerKeyEventCallback(target, userData, useCapture, callbackfunc, 3, "keyup", targetThread);
return 0;
}
var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () {
Browser.mainLoop.scheduler = null;
Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return.
},resume:function () {
Browser.mainLoop.currentlyRunningMainloop++;
var timingMode = Browser.mainLoop.timingMode;
var timingValue = Browser.mainLoop.timingValue;
var func = Browser.mainLoop.func;
Browser.mainLoop.func = null;
_emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */);
_emscripten_set_main_loop_timing(timingMode, timingValue);
Browser.mainLoop.scheduler();
},updateStatus:function () {
if (Module['setStatus']) {
var message = Module['statusMessage'] || 'Please wait...';
var remaining = Browser.mainLoop.remainingBlockers;
var expected = Browser.mainLoop.expectedBlockers;
if (remaining) {
if (remaining < expected) {
Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
} else {
Module['setStatus'](message);
}
} else {
Module['setStatus']('');
}
}
},runIter:function (func) {
if (ABORT) return;
if (Module['preMainLoop']) {
var preRet = Module['preMainLoop']();
if (preRet === false) {
return; // |return false| skips a frame
}
}
try {
func();
} catch (e) {
if (e instanceof ExitStatus) {
return;
} else {
if (e && typeof e === 'object' && e.stack) err('exception thrown: ' + [e, e.stack]);
throw e;
}
}
if (Module['postMainLoop']) Module['postMainLoop']();
}},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () {
if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers
if (Browser.initted) return;
Browser.initted = true;
try {
new Blob();
Browser.hasBlobConstructor = true;
} catch(e) {
Browser.hasBlobConstructor = false;
console.log("warning: no blob constructor, cannot create blobs with mimetypes");
}
Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
Module.noImageDecoding = true;
}
// Support for plugins that can process preloaded files. You can add more of these to
// your app by creating and appending to Module.preloadPlugins.
//
// Each plugin is asked if it can handle a file based on the file's name. If it can,
// it is given the file's raw data. When it is done, it calls a callback with the file's
// (possibly modified) data. For example, a plugin might decompress a file, or it
// might create some side data structure for use later (like an Image element, etc.).
var imagePlugin = {};
imagePlugin['canHandle'] = function imagePlugin_canHandle(name) {
return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name);
};
imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) {
var b = null;
if (Browser.hasBlobConstructor) {
try {
b = new Blob([byteArray], { type: Browser.getMimetype(name) });
if (b.size !== byteArray.length) { // Safari bug #118630
// Safari's Blob can only take an ArrayBuffer
b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) });
}
} catch(e) {
warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
}
}
if (!b) {
var bb = new Browser.BlobBuilder();
bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
b = bb.getBlob();
}
var url = Browser.URLObject.createObjectURL(b);
var img = new Image();
img.onload = function img_onload() {
assert(img.complete, 'Image ' + name + ' could not be decoded');
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
Module["preloadedImages"][name] = canvas;
Browser.URLObject.revokeObjectURL(url);
if (onload) onload(byteArray);
};
img.onerror = function img_onerror(event) {
console.log('Image ' + url + ' could not be decoded');
if (onerror) onerror();
};
img.src = url;
};
Module['preloadPlugins'].push(imagePlugin);
var audioPlugin = {};
audioPlugin['canHandle'] = function audioPlugin_canHandle(name) {
return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
};
audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) {
var done = false;
function finish(audio) {
if (done) return;
done = true;
Module["preloadedAudios"][name] = audio;
if (onload) onload(byteArray);
}
function fail() {
if (done) return;
done = true;
Module["preloadedAudios"][name] = new Audio(); // empty shim
if (onerror) onerror();
}
if (Browser.hasBlobConstructor) {
try {
var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
} catch(e) {
return fail();
}
var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
var audio = new Audio();
audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
audio.onerror = function audio_onerror(event) {
if (done) return;
console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
function encode64(data) {
var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var PAD = '=';
var ret = '';
var leftchar = 0;
var leftbits = 0;
for (var i = 0; i < data.length; i++) {
leftchar = (leftchar << 8) | data[i];
leftbits += 8;
while (leftbits >= 6) {
var curr = (leftchar >> (leftbits-6)) & 0x3f;
leftbits -= 6;
ret += BASE[curr];
}
}
if (leftbits == 2) {
ret += BASE[(leftchar&3) << 4];
ret += PAD + PAD;
} else if (leftbits == 4) {
ret += BASE[(leftchar&0xf) << 2];
ret += PAD;
}
return ret;
}
audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
finish(audio); // we don't wait for confirmation this worked - but it's worth trying
};
audio.src = url;
// workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
Browser.safeSetTimeout(function() {
finish(audio); // try to use it even though it is not necessarily ready to play
}, 10000);
} else {
return fail();
}
};
Module['preloadPlugins'].push(audioPlugin);
// Canvas event setup
function pointerLockChange() {
Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] ||
document['mozPointerLockElement'] === Module['canvas'] ||
document['webkitPointerLockElement'] === Module['canvas'] ||
document['msPointerLockElement'] === Module['canvas'];
}
var canvas = Module['canvas'];
if (canvas) {
// forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module
// Module['forcedAspectRatio'] = 4 / 3;
canvas.requestPointerLock = canvas['requestPointerLock'] ||
canvas['mozRequestPointerLock'] ||
canvas['webkitRequestPointerLock'] ||
canvas['msRequestPointerLock'] ||
function(){};
canvas.exitPointerLock = document['exitPointerLock'] ||
document['mozExitPointerLock'] ||
document['webkitExitPointerLock'] ||
document['msExitPointerLock'] ||
function(){}; // no-op if function does not exist
canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
document.addEventListener('pointerlockchange', pointerLockChange, false);
document.addEventListener('mozpointerlockchange', pointerLockChange, false);
document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
document.addEventListener('mspointerlockchange', pointerLockChange, false);
if (Module['elementPointerLock']) {
canvas.addEventListener("click", function(ev) {
if (!Browser.pointerLock && Module['canvas'].requestPointerLock) {
Module['canvas'].requestPointerLock();
ev.preventDefault();
}
}, false);
}
}
},createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) {
if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas.
var ctx;
var contextHandle;
if (useWebGL) {
// For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults.
var contextAttributes = {
antialias: false,
alpha: false,
majorVersion: 1,
};
if (webGLContextAttributes) {
for (var attribute in webGLContextAttributes) {
contextAttributes[attribute] = webGLContextAttributes[attribute];
}
}
// This check of existence of GL is here to satisfy Closure compiler, which yells if variable GL is referenced below but GL object is not
// actually compiled in because application is not doing any GL operations. TODO: Ideally if GL is not being used, this function
// Browser.createContext() should not even be emitted.
if (typeof GL !== 'undefined') {
contextHandle = GL.createContext(canvas, contextAttributes);
if (contextHandle) {
ctx = GL.getContext(contextHandle).GLctx;
}
}
} else {
ctx = canvas.getContext('2d');
}
if (!ctx) return null;
if (setInModule) {
if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it');
Module.ctx = ctx;
if (useWebGL) GL.makeContextCurrent(contextHandle);
Module.useWebGL = useWebGL;
Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
Browser.init();
}
return ctx;
},destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) {
Browser.lockPointer = lockPointer;
Browser.resizeCanvas = resizeCanvas;
Browser.vrDevice = vrDevice;
if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true;
if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false;
if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null;
var canvas = Module['canvas'];
function fullscreenChange() {
Browser.isFullscreen = false;
var canvasContainer = canvas.parentNode;
if ((document['fullscreenElement'] || document['mozFullScreenElement'] ||
document['msFullscreenElement'] || document['webkitFullscreenElement'] ||
document['webkitCurrentFullScreenElement']) === canvasContainer) {
canvas.exitFullscreen = Browser.exitFullscreen;
if (Browser.lockPointer) canvas.requestPointerLock();
Browser.isFullscreen = true;
if (Browser.resizeCanvas) {
Browser.setFullscreenCanvasSize();
} else {
Browser.updateCanvasDimensions(canvas);
}
} else {
// remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen
canvasContainer.parentNode.insertBefore(canvas, canvasContainer);
canvasContainer.parentNode.removeChild(canvasContainer);
if (Browser.resizeCanvas) {
Browser.setWindowedCanvasSize();
} else {
Browser.updateCanvasDimensions(canvas);
}
}
if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen);
if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen);
}
if (!Browser.fullscreenHandlersInstalled) {
Browser.fullscreenHandlersInstalled = true;
document.addEventListener('fullscreenchange', fullscreenChange, false);
document.addEventListener('mozfullscreenchange', fullscreenChange, false);
document.addEventListener('webkitfullscreenchange', fullscreenChange, false);
document.addEventListener('MSFullscreenChange', fullscreenChange, false);
}
// create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root
var canvasContainer = document.createElement("div");
canvas.parentNode.insertBefore(canvasContainer, canvas);
canvasContainer.appendChild(canvas);
// use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size)
canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] ||
canvasContainer['mozRequestFullScreen'] ||
canvasContainer['msRequestFullscreen'] ||
(canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) ||
(canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
if (vrDevice) {
canvasContainer.requestFullscreen({ vrDisplay: vrDevice });
} else {
canvasContainer.requestFullscreen();
}
},requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) {
err('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.');
Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) {
return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice);
}
return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice);
},exitFullscreen:function () {
// This is workaround for chrome. Trying to exit from fullscreen
// not in fullscreen state will cause "TypeError: Document not active"
// in chrome. See https://github.com/emscripten-core/emscripten/pull/8236
if (!Browser.isFullscreen) {
return false;
}
var CFS = document['exitFullscreen'] ||
document['cancelFullScreen'] ||
document['mozCancelFullScreen'] ||
document['msExitFullscreen'] ||
document['webkitCancelFullScreen'] ||
(function() {});
CFS.apply(document, []);
return true;
},nextRAF:0,fakeRequestAnimationFrame:function (func) {
// try to keep 60fps between calls to here
var now = Date.now();
if (Browser.nextRAF === 0) {
Browser.nextRAF = now + 1000/60;
} else {
while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0
Browser.nextRAF += 1000/60;
}
}
var delay = Math.max(Browser.nextRAF - now, 0);
setTimeout(func, delay);
},requestAnimationFrame:function requestAnimationFrame(func) {
if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js)
Browser.fakeRequestAnimationFrame(func);
} else {
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = window['requestAnimationFrame'] ||
window['mozRequestAnimationFrame'] ||
window['webkitRequestAnimationFrame'] ||
window['msRequestAnimationFrame'] ||
window['oRequestAnimationFrame'] ||
Browser.fakeRequestAnimationFrame;
}
window.requestAnimationFrame(func);
}
},safeCallback:function (func) {
return function() {
if (!ABORT) return func.apply(null, arguments);
};
},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () {
Browser.allowAsyncCallbacks = false;
},resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now
Browser.allowAsyncCallbacks = true;
if (Browser.queuedAsyncCallbacks.length > 0) {
var callbacks = Browser.queuedAsyncCallbacks;
Browser.queuedAsyncCallbacks = [];
callbacks.forEach(function(func) {
func();
});
}
},safeRequestAnimationFrame:function (func) {
return Browser.requestAnimationFrame(function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func();
} else {
Browser.queuedAsyncCallbacks.push(func);
}
});
},safeSetTimeout:function (func, timeout) {
Module['noExitRuntime'] = true;
return setTimeout(function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func();
} else {
Browser.queuedAsyncCallbacks.push(func);
}
}, timeout);
},safeSetInterval:function (func, timeout) {
Module['noExitRuntime'] = true;
return setInterval(function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func();
} // drop it on the floor otherwise, next interval will kick in
}, timeout);
},getMimetype:function (name) {
return {
'jpg': 'image/jpeg',
'jpeg': 'image/jpeg',
'png': 'image/png',
'bmp': 'image/bmp',
'ogg': 'audio/ogg',
'wav': 'audio/wav',
'mp3': 'audio/mpeg'
}[name.substr(name.lastIndexOf('.')+1)];
},getUserMedia:function (func) {
if(!window.getUserMedia) {
window.getUserMedia = navigator['getUserMedia'] ||
navigator['mozGetUserMedia'];
}
window.getUserMedia(func);
},getMovementX:function (event) {
return event['movementX'] ||
event['mozMovementX'] ||
event['webkitMovementX'] ||
0;
},getMovementY:function (event) {
return event['movementY'] ||
event['mozMovementY'] ||
event['webkitMovementY'] ||
0;
},getMouseWheelDelta:function (event) {
var delta = 0;
switch (event.type) {
case 'DOMMouseScroll':
// 3 lines make up a step
delta = event.detail / 3;
break;
case 'mousewheel':
// 120 units make up a step
delta = event.wheelDelta / 120;
break;
case 'wheel':
delta = event.deltaY
switch(event.deltaMode) {
case 0:
// DOM_DELTA_PIXEL: 100 pixels make up a step
delta /= 100;
break;
case 1:
// DOM_DELTA_LINE: 3 lines make up a step
delta /= 3;
break;
case 2:
// DOM_DELTA_PAGE: A page makes up 80 steps
delta *= 80;
break;
default:
throw 'unrecognized mouse wheel delta mode: ' + event.deltaMode;
}
break;
default:
throw 'unrecognized mouse wheel event: ' + event.type;
}
return delta;
},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup
if (Browser.pointerLock) {
// When the pointer is locked, calculate the coordinates
// based on the movement of the mouse.
// Workaround for Firefox bug 764498
if (event.type != 'mousemove' &&
('mozMovementX' in event)) {
Browser.mouseMovementX = Browser.mouseMovementY = 0;
} else {
Browser.mouseMovementX = Browser.getMovementX(event);
Browser.mouseMovementY = Browser.getMovementY(event);
}
// check if SDL is available
if (typeof SDL != "undefined") {
Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
} else {
// just add the mouse delta to the current absolut mouse position
// FIXME: ideally this should be clamped against the canvas size and zero
Browser.mouseX += Browser.mouseMovementX;
Browser.mouseY += Browser.mouseMovementY;
}
} else {
// Otherwise, calculate the movement based on the changes
// in the coordinates.
var rect = Module["canvas"].getBoundingClientRect();
var cw = Module["canvas"].width;
var ch = Module["canvas"].height;
// Neither .scrollX or .pageXOffset are defined in a spec, but
// we prefer .scrollX because it is currently in a spec draft.
// (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/)
var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset);
var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset);
if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') {
var touch = event.touch;
if (touch === undefined) {
return; // the "touch" property is only defined in SDL
}
var adjustedX = touch.pageX - (scrollX + rect.left);
var adjustedY = touch.pageY - (scrollY + rect.top);
adjustedX = adjustedX * (cw / rect.width);
adjustedY = adjustedY * (ch / rect.height);
var coords = { x: adjustedX, y: adjustedY };
if (event.type === 'touchstart') {
Browser.lastTouches[touch.identifier] = coords;
Browser.touches[touch.identifier] = coords;
} else if (event.type === 'touchend' || event.type === 'touchmove') {
var last = Browser.touches[touch.identifier];
if (!last) last = coords;
Browser.lastTouches[touch.identifier] = last;
Browser.touches[touch.identifier] = coords;
}
return;
}
var x = event.pageX - (scrollX + rect.left);
var y = event.pageY - (scrollY + rect.top);
// the canvas might be CSS-scaled compared to its backbuffer;
// SDL-using content will want mouse coordinates in terms
// of backbuffer units.
x = x * (cw / rect.width);
y = y * (ch / rect.height);
Browser.mouseMovementX = x - Browser.mouseX;
Browser.mouseMovementY = y - Browser.mouseY;
Browser.mouseX = x;
Browser.mouseY = y;
}
},asyncLoad:function (url, onload, onerror, noRunDep) {
var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : '';
Module['readAsync'](url, function(arrayBuffer) {
assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
onload(new Uint8Array(arrayBuffer));
if (dep) removeRunDependency(dep);
}, function(event) {
if (onerror) {
onerror();
} else {
throw 'Loading data file "' + url + '" failed.';
}
});
if (dep) addRunDependency(dep);
},resizeListeners:[],updateResizeListeners:function () {
var canvas = Module['canvas'];
Browser.resizeListeners.forEach(function(listener) {
listener(canvas.width, canvas.height);
});
},setCanvasSize:function (width, height, noUpdates) {
var canvas = Module['canvas'];
Browser.updateCanvasDimensions(canvas, width, height);
if (!noUpdates) Browser.updateResizeListeners();
},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () {
// check if SDL is available
if (typeof SDL != "undefined") {
var flags = HEAPU32[((SDL.screen)>>2)];
flags = flags | 0x00800000; // set SDL_FULLSCREEN flag
HEAP32[((SDL.screen)>>2)]=flags
}
Browser.updateCanvasDimensions(Module['canvas']);
Browser.updateResizeListeners();
},setWindowedCanvasSize:function () {
// check if SDL is available
if (typeof SDL != "undefined") {
var flags = HEAPU32[((SDL.screen)>>2)];
flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag
HEAP32[((SDL.screen)>>2)]=flags
}
Browser.updateCanvasDimensions(Module['canvas']);
Browser.updateResizeListeners();
},updateCanvasDimensions:function (canvas, wNative, hNative) {
if (wNative && hNative) {
canvas.widthNative = wNative;
canvas.heightNative = hNative;
} else {
wNative = canvas.widthNative;
hNative = canvas.heightNative;
}
var w = wNative;
var h = hNative;
if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) {
if (w/h < Module['forcedAspectRatio']) {
w = Math.round(h * Module['forcedAspectRatio']);
} else {
h = Math.round(w / Module['forcedAspectRatio']);
}
}
if (((document['fullscreenElement'] || document['mozFullScreenElement'] ||
document['msFullscreenElement'] || document['webkitFullscreenElement'] ||
document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) {
var factor = Math.min(screen.width / w, screen.height / h);
w = Math.round(w * factor);
h = Math.round(h * factor);
}
if (Browser.resizeCanvas) {
if (canvas.width != w) canvas.width = w;
if (canvas.height != h) canvas.height = h;
if (typeof canvas.style != 'undefined') {
canvas.style.removeProperty( "width");
canvas.style.removeProperty("height");
}
} else {
if (canvas.width != wNative) canvas.width = wNative;
if (canvas.height != hNative) canvas.height = hNative;
if (typeof canvas.style != 'undefined') {
if (w != wNative || h != hNative) {
canvas.style.setProperty( "width", w + "px", "important");
canvas.style.setProperty("height", h + "px", "important");
} else {
canvas.style.removeProperty( "width");
canvas.style.removeProperty("height");
}
}
}
},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () {
var handle = Browser.nextWgetRequestHandle;
Browser.nextWgetRequestHandle++;
return handle;
}};function _emscripten_set_main_loop_timing(mode, value) {
Browser.mainLoop.timingMode = mode;
Browser.mainLoop.timingValue = value;
if (!Browser.mainLoop.func) {
return 1; // Return non-zero on failure, can't set timing mode when there is no main loop.
}
if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) {
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() {
var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0;
setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop
};
Browser.mainLoop.method = 'timeout';
} else if (mode == 1 /*EM_TIMING_RAF*/) {
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() {
Browser.requestAnimationFrame(Browser.mainLoop.runner);
};
Browser.mainLoop.method = 'rAF';
} else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) {
if (typeof setImmediate === 'undefined') {
// Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed)
var setImmediates = [];
var emscriptenMainLoopMessageId = 'setimmediate';
var Browser_setImmediate_messageHandler = function(event) {
// When called in current thread or Worker, the main loop ID is structured slightly different to accommodate for --proxy-to-worker runtime listening to Worker events,
// so check for both cases.
if (event.data === emscriptenMainLoopMessageId || event.data.target === emscriptenMainLoopMessageId) {
event.stopPropagation();
setImmediates.shift()();
}
}
addEventListener("message", Browser_setImmediate_messageHandler, true);
setImmediate = function Browser_emulated_setImmediate(func) {
setImmediates.push(func);
if (ENVIRONMENT_IS_WORKER) {
if (Module['setImmediates'] === undefined) Module['setImmediates'] = [];
Module['setImmediates'].push(func);
postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js
} else postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself.
}
}
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() {
setImmediate(Browser.mainLoop.runner);
};
Browser.mainLoop.method = 'immediate';
}
return 0;
}function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) {
Module['noExitRuntime'] = true;
assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.');
Browser.mainLoop.func = func;
Browser.mainLoop.arg = arg;
var browserIterationFunc;
if (typeof arg !== 'undefined') {
browserIterationFunc = function() {
Module['dynCall_vi'](func, arg);
};
} else {
browserIterationFunc = function() {
Module['dynCall_v'](func);
};
}
var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop;
Browser.mainLoop.runner = function Browser_mainLoop_runner() {
if (ABORT) return;
if (Browser.mainLoop.queue.length > 0) {
var start = Date.now();
var blocker = Browser.mainLoop.queue.shift();
blocker.func(blocker.arg);
if (Browser.mainLoop.remainingBlockers) {
var remaining = Browser.mainLoop.remainingBlockers;
var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining);
if (blocker.counted) {
Browser.mainLoop.remainingBlockers = next;
} else {
// not counted, but move the progress along a tiny bit
next = next + 0.5; // do not steal all the next one's progress
Browser.mainLoop.remainingBlockers = (8*remaining + next)/9;
}
}
console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers);
Browser.mainLoop.updateStatus();
// catches pause/resume main loop from blocker execution
if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
setTimeout(Browser.mainLoop.runner, 0);
return;
}
// catch pauses from non-main loop sources
if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
// Implement very basic swap interval control
Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0;
if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) {
// Not the scheduled time to render this frame - skip.
Browser.mainLoop.scheduler();
return;
} else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) {
Browser.mainLoop.tickStartTime = _emscripten_get_now();
}
// Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize
// VBO double-buffering and reduce GPU stalls.
if (Browser.mainLoop.method === 'timeout' && Module.ctx) {
err('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!');
Browser.mainLoop.method = ''; // just warn once per call to set main loop
}
Browser.mainLoop.runIter(browserIterationFunc);
// catch pauses from the main loop itself
if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
// Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able
// to queue the newest produced audio samples.
// TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData()
// do not need to be hardcoded into this function, but can be more generic.
if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData();
Browser.mainLoop.scheduler();
}
if (!noSetTiming) {
if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps);
else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating)
Browser.mainLoop.scheduler();
}
if (simulateInfiniteLoop) {
throw 'SimulateInfiniteLoop';
}
}
function __fillMouseEventData(eventStruct, e, target) {
HEAPF64[((eventStruct)>>3)]=JSEvents.tick();
HEAP32[(((eventStruct)+(8))>>2)]=e.screenX;
HEAP32[(((eventStruct)+(12))>>2)]=e.screenY;
HEAP32[(((eventStruct)+(16))>>2)]=e.clientX;
HEAP32[(((eventStruct)+(20))>>2)]=e.clientY;
HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey;
HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey;
HEAP32[(((eventStruct)+(32))>>2)]=e.altKey;
HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey;
HEAP16[(((eventStruct)+(40))>>1)]=e.button;
HEAP16[(((eventStruct)+(42))>>1)]=e.buttons;
HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX);
HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY);
if (Module['canvas']) {
var rect = Module['canvas'].getBoundingClientRect();
HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left;
HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top;
} else { // Canvas is not initialized, return 0.
HEAP32[(((eventStruct)+(60))>>2)]=0;
HEAP32[(((eventStruct)+(64))>>2)]=0;
}
if (target) {
var rect = JSEvents.getBoundingClientRectOrZeros(target);
HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left;
HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top;
} else { // No specific target passed, return 0.
HEAP32[(((eventStruct)+(52))>>2)]=0;
HEAP32[(((eventStruct)+(56))>>2)]=0;
}
// wheel and mousewheel events contain wrong screenX/screenY on chrome/opera
// https://github.com/emscripten-core/emscripten/pull/4997
// https://bugs.chromium.org/p/chromium/issues/detail?id=699956
if (e.type !== 'wheel' && e.type !== 'mousewheel') {
JSEvents.previousScreenX = e.screenX;
JSEvents.previousScreenY = e.screenY;
}
}function __registerMouseEventCallback(target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) {
if (!JSEvents.mouseEvent) JSEvents.mouseEvent = _malloc( 72 );
target = __findEventTarget(target);
var mouseEventHandlerFunc = function(event) {
var e = event || window.event;
// TODO: Make this access thread safe, or this could update live while app is reading it.
__fillMouseEventData(JSEvents.mouseEvent, e, target);
if (dynCall_iiii(callbackfunc, eventTypeId, JSEvents.mouseEvent, userData)) e.preventDefault();
};
var eventHandler = {
target: target,
allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them!
eventTypeString: eventTypeString,
callbackfunc: callbackfunc,
handlerFunc: mouseEventHandlerFunc,
useCapture: useCapture
};
// In IE, mousedown events don't either allow deferred calls to be run!
if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false;
JSEvents.registerOrRemoveHandler(eventHandler);
}function _emscripten_set_mousedown_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerMouseEventCallback(target, userData, useCapture, callbackfunc, 5, "mousedown", targetThread);
return 0;
}
function _emscripten_set_mousemove_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerMouseEventCallback(target, userData, useCapture, callbackfunc, 8, "mousemove", targetThread);
return 0;
}
function _emscripten_set_mouseup_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerMouseEventCallback(target, userData, useCapture, callbackfunc, 6, "mouseup", targetThread);
return 0;
}
function __registerUiEventCallback(target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) {
if (!JSEvents.uiEvent) JSEvents.uiEvent = _malloc( 36 );
if (eventTypeString == "scroll" && !target) {
target = document; // By default read scroll events on document rather than window.
} else {
target = __findEventTarget(target);
}
var uiEventHandlerFunc = function(event) {
var e = event || window.event;
if (e.target != target) {
// Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that
// was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log
// message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print,
// causing a new scroll, etc..
return;
}
var scrollPos = JSEvents.pageScrollPos();
var uiEvent = JSEvents.uiEvent;
HEAP32[((uiEvent)>>2)]=e.detail;
HEAP32[(((uiEvent)+(4))>>2)]=document.body.clientWidth;
HEAP32[(((uiEvent)+(8))>>2)]=document.body.clientHeight;
HEAP32[(((uiEvent)+(12))>>2)]=window.innerWidth;
HEAP32[(((uiEvent)+(16))>>2)]=window.innerHeight;
HEAP32[(((uiEvent)+(20))>>2)]=window.outerWidth;
HEAP32[(((uiEvent)+(24))>>2)]=window.outerHeight;
HEAP32[(((uiEvent)+(28))>>2)]=scrollPos[0];
HEAP32[(((uiEvent)+(32))>>2)]=scrollPos[1];
if (dynCall_iiii(callbackfunc, eventTypeId, uiEvent, userData)) e.preventDefault();
};
var eventHandler = {
target: target,
allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them.
eventTypeString: eventTypeString,
callbackfunc: callbackfunc,
handlerFunc: uiEventHandlerFunc,
useCapture: useCapture
};
JSEvents.registerOrRemoveHandler(eventHandler);
}function _emscripten_set_resize_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerUiEventCallback(target, userData, useCapture, callbackfunc, 10, "resize", targetThread);
return 0;
}
function __registerTouchEventCallback(target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) {
if (!JSEvents.touchEvent) JSEvents.touchEvent = _malloc( 1684 );
target = __findEventTarget(target);
var touchEventHandlerFunc = function(event) {
var e = event || window.event;
var touches = {};
for(var i = 0; i < e.touches.length; ++i) {
var touch = e.touches[i];
touches[touch.identifier] = touch;
}
for(var i = 0; i < e.changedTouches.length; ++i) {
var touch = e.changedTouches[i];
touches[touch.identifier] = touch;
touch.changed = true;
}
for(var i = 0; i < e.targetTouches.length; ++i) {
var touch = e.targetTouches[i];
touches[touch.identifier].onTarget = true;
}
var touchEvent = JSEvents.touchEvent;
var ptr = touchEvent;
HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey;
HEAP32[(((ptr)+(8))>>2)]=e.shiftKey;
HEAP32[(((ptr)+(12))>>2)]=e.altKey;
HEAP32[(((ptr)+(16))>>2)]=e.metaKey;
ptr += 20; // Advance to the start of the touch array.
var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined;
var targetRect = JSEvents.getBoundingClientRectOrZeros(target);
var numTouches = 0;
for(var i in touches) {
var t = touches[i];
HEAP32[((ptr)>>2)]=t.identifier;
HEAP32[(((ptr)+(4))>>2)]=t.screenX;
HEAP32[(((ptr)+(8))>>2)]=t.screenY;
HEAP32[(((ptr)+(12))>>2)]=t.clientX;
HEAP32[(((ptr)+(16))>>2)]=t.clientY;
HEAP32[(((ptr)+(20))>>2)]=t.pageX;
HEAP32[(((ptr)+(24))>>2)]=t.pageY;
HEAP32[(((ptr)+(28))>>2)]=t.changed;
HEAP32[(((ptr)+(32))>>2)]=t.onTarget;
if (canvasRect) {
HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left;
HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top;
} else {
HEAP32[(((ptr)+(44))>>2)]=0;
HEAP32[(((ptr)+(48))>>2)]=0;
}
HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left;
HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top;
ptr += 52;
if (++numTouches >= 32) {
break;
}
}
HEAP32[((touchEvent)>>2)]=numTouches;
if (dynCall_iiii(callbackfunc, eventTypeId, touchEvent, userData)) e.preventDefault();
};
var eventHandler = {
target: target,
allowsDeferredCalls: eventTypeString == 'touchstart' || eventTypeString == 'touchend',
eventTypeString: eventTypeString,
callbackfunc: callbackfunc,
handlerFunc: touchEventHandlerFunc,
useCapture: useCapture
};
JSEvents.registerOrRemoveHandler(eventHandler);
}function _emscripten_set_touchcancel_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel", targetThread);
return 0;
}
function _emscripten_set_touchend_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend", targetThread);
return 0;
}
function _emscripten_set_touchmove_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove", targetThread);
return 0;
}
function _emscripten_set_touchstart_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart", targetThread);
return 0;
}
function __registerWebGlEventCallback(target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) {
if (!target) target = Module['canvas'];
var webGlEventHandlerFunc = function(event) {
var e = event || window.event;
if (dynCall_iiii(callbackfunc, eventTypeId, 0, userData)) e.preventDefault();
};
var eventHandler = {
target: __findEventTarget(target),
allowsDeferredCalls: false,
eventTypeString: eventTypeString,
callbackfunc: callbackfunc,
handlerFunc: webGlEventHandlerFunc,
useCapture: useCapture
};
JSEvents.registerOrRemoveHandler(eventHandler);
}function _emscripten_set_webglcontextlost_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
__registerWebGlEventCallback(target, userData, useCapture, callbackfunc, 31, "webglcontextlost", targetThread);
return 0;
}
function __registerWheelEventCallback(target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) {
if (!JSEvents.wheelEvent) JSEvents.wheelEvent = _malloc( 104 );
// The DOM Level 3 events spec event 'wheel'
var wheelHandlerFunc = function(event) {
var e = event || window.event;
var wheelEvent = JSEvents.wheelEvent;
__fillMouseEventData(wheelEvent, e, target);
HEAPF64[(((wheelEvent)+(72))>>3)]=e["deltaX"];
HEAPF64[(((wheelEvent)+(80))>>3)]=e["deltaY"];
HEAPF64[(((wheelEvent)+(88))>>3)]=e["deltaZ"];
HEAP32[(((wheelEvent)+(96))>>2)]=e["deltaMode"];
if (dynCall_iiii(callbackfunc, eventTypeId, wheelEvent, userData)) e.preventDefault();
};
// The 'mousewheel' event as implemented in Safari 6.0.5
var mouseWheelHandlerFunc = function(event) {
var e = event || window.event;
__fillMouseEventData(JSEvents.wheelEvent, e, target);
HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0;
HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */;
HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */;
HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */;
var shouldCancel = dynCall_iiii(callbackfunc, eventTypeId, JSEvents.wheelEvent, userData);
if (shouldCancel) {
e.preventDefault();
}
};
var eventHandler = {
target: target,
allowsDeferredCalls: true,
eventTypeString: eventTypeString,
callbackfunc: callbackfunc,
handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc,
useCapture: useCapture
};
JSEvents.registerOrRemoveHandler(eventHandler);
}function _emscripten_set_wheel_callback_on_thread(target, userData, useCapture, callbackfunc, targetThread) {
target = __findEventTarget(target);
if (typeof target.onwheel !== 'undefined') {
__registerWheelEventCallback(target, userData, useCapture, callbackfunc, 9, "wheel", targetThread);
return 0;
} else if (typeof target.onmousewheel !== 'undefined') {
__registerWheelEventCallback(target, userData, useCapture, callbackfunc, 9, "mousewheel", targetThread);
return 0;
} else {
return -1;
}
}
var Fetch={xhrs:[],setu64:function (addr, val) {
HEAPU32[addr >> 2] = val;
HEAPU32[addr + 4 >> 2] = (val / 4294967296)|0;
},openDatabase:function (dbname, dbversion, onsuccess, onerror) {
try {
var openRequest = indexedDB.open(dbname, dbversion);
} catch (e) { return onerror(e); }
openRequest.onupgradeneeded = function(event) {
var db = event.target.result;
if (db.objectStoreNames.contains('FILES')) {
db.deleteObjectStore('FILES');
}
db.createObjectStore('FILES');
};
openRequest.onsuccess = function(event) { onsuccess(event.target.result); };
openRequest.onerror = function(error) { onerror(error); };
},staticInit:function () {
var isMainThread = (typeof ENVIRONMENT_IS_FETCH_WORKER === 'undefined');
var onsuccess = function(db) {
Fetch.dbInstance = db;
if (isMainThread) {
removeRunDependency('library_fetch_init');
}
};
var onerror = function() {
Fetch.dbInstance = false;
if (isMainThread) {
removeRunDependency('library_fetch_init');
}
};
Fetch.openDatabase('emscripten_filesystem', 1, onsuccess, onerror);
if (typeof ENVIRONMENT_IS_FETCH_WORKER === 'undefined' || !ENVIRONMENT_IS_FETCH_WORKER) addRunDependency('library_fetch_init');
}};
function __emscripten_fetch_xhr(fetch, onsuccess, onerror, onprogress) {
var url = HEAPU32[fetch + 8 >> 2];
if (!url) {
onerror(fetch, 0, 'no url specified!');
return;
}
var url_ = UTF8ToString(url);
var fetch_attr = fetch + 112;
var requestMethod = UTF8ToString(fetch_attr);
if (!requestMethod) requestMethod = 'GET';
var userData = HEAPU32[fetch_attr + 32 >> 2];
var fetchAttributes = HEAPU32[fetch_attr + 48 >> 2];
var timeoutMsecs = HEAPU32[fetch_attr + 52 >> 2];
var withCredentials = !!HEAPU32[fetch_attr + 56 >> 2];
var destinationPath = HEAPU32[fetch_attr + 60 >> 2];
var userName = HEAPU32[fetch_attr + 64 >> 2];
var password = HEAPU32[fetch_attr + 68 >> 2];
var requestHeaders = HEAPU32[fetch_attr + 72 >> 2];
var overriddenMimeType = HEAPU32[fetch_attr + 76 >> 2];
var dataPtr = HEAPU32[fetch_attr + 80 >> 2];
var dataLength = HEAPU32[fetch_attr + 84 >> 2];
var fetchAttrLoadToMemory = !!(fetchAttributes & 1);
var fetchAttrStreamData = !!(fetchAttributes & 2);
var fetchAttrPersistFile = !!(fetchAttributes & 4);
var fetchAttrAppend = !!(fetchAttributes & 8);
var fetchAttrReplace = !!(fetchAttributes & 16);
var fetchAttrSynchronous = !!(fetchAttributes & 64);
var fetchAttrWaitable = !!(fetchAttributes & 128);
var userNameStr = userName ? UTF8ToString(userName) : undefined;
var passwordStr = password ? UTF8ToString(password) : undefined;
var overriddenMimeTypeStr = overriddenMimeType ? UTF8ToString(overriddenMimeType) : undefined;
var xhr = new XMLHttpRequest();
xhr.withCredentials = withCredentials;
xhr.open(requestMethod, url_, !fetchAttrSynchronous, userNameStr, passwordStr);
if (!fetchAttrSynchronous) xhr.timeout = timeoutMsecs; // XHR timeout field is only accessible in async XHRs, and must be set after .open() but before .send().
xhr.url_ = url_; // Save the url for debugging purposes (and for comparing to the responseURL that server side advertised)
xhr.responseType = fetchAttrStreamData ? 'moz-chunked-arraybuffer' : 'arraybuffer';
if (overriddenMimeType) {
xhr.overrideMimeType(overriddenMimeTypeStr);
}
if (requestHeaders) {
for(;;) {
var key = HEAPU32[requestHeaders >> 2];
if (!key) break;
var value = HEAPU32[requestHeaders + 4 >> 2];
if (!value) break;
requestHeaders += 8;
var keyStr = UTF8ToString(key);
var valueStr = UTF8ToString(value);
xhr.setRequestHeader(keyStr, valueStr);
}
}
Fetch.xhrs.push(xhr);
var id = Fetch.xhrs.length;
HEAPU32[fetch + 0 >> 2] = id;
var data = (dataPtr && dataLength) ? HEAPU8.slice(dataPtr, dataPtr + dataLength) : null;
// TODO: Support specifying custom headers to the request.
xhr.onload = function(e) { Fetch.setu64(fetch + 32, e.total);
var len = xhr.response ? xhr.response.byteLength : 0;
var ptr = 0;
var ptrLen = 0;
if (fetchAttrLoadToMemory && !fetchAttrStreamData) {
ptrLen = len;
// The data pointer malloc()ed here has the same lifetime as the emscripten_fetch_t structure itself has, and is
// freed when emscripten_fetch_close() is called.
ptr = _malloc(ptrLen);
HEAPU8.set(new Uint8Array(xhr.response), ptr);
}
HEAPU32[fetch + 12 >> 2] = ptr;
Fetch.setu64(fetch + 16, ptrLen);
Fetch.setu64(fetch + 24, 0);
if (len) {
// If the final XHR.onload handler receives the bytedata to compute total length, report that,
// otherwise don't write anything out here, which will retain the latest byte size reported in
// the most recent XHR.onprogress handler.
Fetch.setu64(fetch + 32, len);
}
HEAPU16[fetch + 40 >> 1] = xhr.readyState;
if (xhr.readyState === 4 && xhr.status === 0) {
if (len > 0) xhr.status = 200; // If loading files from a source that does not give HTTP status code, assume success if we got data bytes.
else xhr.status = 404; // Conversely, no data bytes is 404.
}
HEAPU16[fetch + 42 >> 1] = xhr.status;
if (xhr.statusText) stringToUTF8(xhr.statusText, fetch + 44, 64);
if (xhr.status >= 200 && xhr.status < 300) {
if (onsuccess) onsuccess(fetch, xhr, e);
} else {
if (onerror) onerror(fetch, xhr, e);
}
}
xhr.onerror = function(e) {
var status = xhr.status; // XXX TODO: Overwriting xhr.status doesn't work here, so don't override anywhere else either.
if (xhr.readyState == 4 && status == 0) status = 404; // If no error recorded, pretend it was 404 Not Found.
HEAPU32[fetch + 12 >> 2] = 0;
Fetch.setu64(fetch + 16, 0);
Fetch.setu64(fetch + 24, 0);
Fetch.setu64(fetch + 32, 0);
HEAPU16[fetch + 40 >> 1] = xhr.readyState;
HEAPU16[fetch + 42 >> 1] = status;
if (onerror) onerror(fetch, xhr, e);
}
xhr.ontimeout = function(e) {
if (onerror) onerror(fetch, xhr, e);
}
xhr.onprogress = function(e) {
var ptrLen = (fetchAttrLoadToMemory && fetchAttrStreamData && xhr.response) ? xhr.response.byteLength : 0;
var ptr = 0;
if (fetchAttrLoadToMemory && fetchAttrStreamData) {
// The data pointer malloc()ed here has the same lifetime as the emscripten_fetch_t structure itself has, and is
// freed when emscripten_fetch_close() is called.
ptr = _malloc(ptrLen);
HEAPU8.set(new Uint8Array(xhr.response), ptr);
}
HEAPU32[fetch + 12 >> 2] = ptr;
Fetch.setu64(fetch + 16, ptrLen);
Fetch.setu64(fetch + 24, e.loaded - ptrLen);
Fetch.setu64(fetch + 32, e.total);
HEAPU16[fetch + 40 >> 1] = xhr.readyState;
if (xhr.readyState >= 3 && xhr.status === 0 && e.loaded > 0) xhr.status = 200; // If loading files from a source that does not give HTTP status code, assume success if we get data bytes
HEAPU16[fetch + 42 >> 1] = xhr.status;
if (xhr.statusText) stringToUTF8(xhr.statusText, fetch + 44, 64);
if (onprogress) onprogress(fetch, xhr, e);
}
try {
xhr.send(data);
} catch(e) {
if (onerror) onerror(fetch, xhr, e);
}
}
function __emscripten_fetch_cache_data(db, fetch, data, onsuccess, onerror) {
if (!db) {
onerror(fetch, 0, 'IndexedDB not available!');
return;
}
var fetch_attr = fetch + 112;
var destinationPath = HEAPU32[fetch_attr + 60 >> 2];
if (!destinationPath) destinationPath = HEAPU32[fetch + 8 >> 2];
var destinationPathStr = UTF8ToString(destinationPath);
try {
var transaction = db.transaction(['FILES'], 'readwrite');
var packages = transaction.objectStore('FILES');
var putRequest = packages.put(data, destinationPathStr);
putRequest.onsuccess = function(event) {
HEAPU16[fetch + 40 >> 1] = 4; // Mimic XHR readyState 4 === 'DONE: The operation is complete'
HEAPU16[fetch + 42 >> 1] = 200; // Mimic XHR HTTP status code 200 "OK"
stringToUTF8("OK", fetch + 44, 64);
onsuccess(fetch, 0, destinationPathStr);
};
putRequest.onerror = function(error) {
// Most likely we got an error if IndexedDB is unwilling to store any more data for this page.
// TODO: Can we identify and break down different IndexedDB-provided errors and convert those
// to more HTTP status codes for more information?
HEAPU16[fetch + 40 >> 1] = 4; // Mimic XHR readyState 4 === 'DONE: The operation is complete'
HEAPU16[fetch + 42 >> 1] = 413; // Mimic XHR HTTP status code 413 "Payload Too Large"
stringToUTF8("Payload Too Large", fetch + 44, 64);
onerror(fetch, 0, error);
};
} catch(e) {
onerror(fetch, 0, e);
}
}
function __emscripten_fetch_load_cached_data(db, fetch, onsuccess, onerror) {
if (!db) {
onerror(fetch, 0, 'IndexedDB not available!');
return;
}
var fetch_attr = fetch + 112;
var path = HEAPU32[fetch_attr + 60 >> 2];
if (!path) path = HEAPU32[fetch + 8 >> 2];
var pathStr = UTF8ToString(path);
try {
var transaction = db.transaction(['FILES'], 'readonly');
var packages = transaction.objectStore('FILES');
var getRequest = packages.get(pathStr);
getRequest.onsuccess = function(event) {
if (event.target.result) {
var value = event.target.result;
var len = value.byteLength || value.length;
// The data pointer malloc()ed here has the same lifetime as the emscripten_fetch_t structure itself has, and is
// freed when emscripten_fetch_close() is called.
var ptr = _malloc(len);
HEAPU8.set(new Uint8Array(value), ptr);
HEAPU32[fetch + 12 >> 2] = ptr;
Fetch.setu64(fetch + 16, len);
Fetch.setu64(fetch + 24, 0);
Fetch.setu64(fetch + 32, len);
HEAPU16[fetch + 40 >> 1] = 4; // Mimic XHR readyState 4 === 'DONE: The operation is complete'
HEAPU16[fetch + 42 >> 1] = 200; // Mimic XHR HTTP status code 200 "OK"
stringToUTF8("OK", fetch + 44, 64);
onsuccess(fetch, 0, value);
} else {
// Succeeded to load, but the load came back with the value of undefined, treat that as an error since we never store undefined in db.
HEAPU16[fetch + 40 >> 1] = 4; // Mimic XHR readyState 4 === 'DONE: The operation is complete'
HEAPU16[fetch + 42 >> 1] = 404; // Mimic XHR HTTP status code 404 "Not Found"
stringToUTF8("Not Found", fetch + 44, 64);
onerror(fetch, 0, 'no data');
}
};
getRequest.onerror = function(error) {
HEAPU16[fetch + 40 >> 1] = 4; // Mimic XHR readyState 4 === 'DONE: The operation is complete'
HEAPU16[fetch + 42 >> 1] = 404; // Mimic XHR HTTP status code 404 "Not Found"
stringToUTF8("Not Found", fetch + 44, 64);
onerror(fetch, 0, error);
};
} catch(e) {
onerror(fetch, 0, e);
}
}
function __emscripten_fetch_delete_cached_data(db, fetch, onsuccess, onerror) {
if (!db) {
onerror(fetch, 0, 'IndexedDB not available!');
return;
}
var fetch_attr = fetch + 112;
var path = HEAPU32[fetch_attr + 60 >> 2];
if (!path) path = HEAPU32[fetch + 8 >> 2];
var pathStr = UTF8ToString(path);
try {
var transaction = db.transaction(['FILES'], 'readwrite');
var packages = transaction.objectStore('FILES');
var request = packages.delete(pathStr);
request.onsuccess = function(event) {
var value = event.target.result;
HEAPU32[fetch + 12 >> 2] = 0;
Fetch.setu64(fetch + 16, 0);
Fetch.setu64(fetch + 24, 0);
Fetch.setu64(fetch + 32, 0);
HEAPU16[fetch + 40 >> 1] = 4; // Mimic XHR readyState 4 === 'DONE: The operation is complete'
HEAPU16[fetch + 42 >> 1] = 200; // Mimic XHR HTTP status code 200 "OK"
stringToUTF8("OK", fetch + 44, 64);
onsuccess(fetch, 0, value);
};
request.onerror = function(error) {
HEAPU16[fetch + 40 >> 1] = 4; // Mimic XHR readyState 4 === 'DONE: The operation is complete'
HEAPU16[fetch + 42 >> 1] = 404; // Mimic XHR HTTP status code 404 "Not Found"
stringToUTF8("Not Found", fetch + 44, 64);
onerror(fetch, 0, error);
};
} catch(e) {
onerror(fetch, 0, e);
}
}
var _fetch_work_queue=1408560;function __emscripten_get_fetch_work_queue() {
return _fetch_work_queue;
}
function _emscripten_is_main_runtime_thread() {
err('missing function: emscripten_is_main_runtime_thread'); abort(-1);
}function _emscripten_start_fetch(fetch, successcb, errorcb, progresscb) {
if (typeof Module !== 'undefined') Module['noExitRuntime'] = true; // If we are the main Emscripten runtime, we should not be closing down.
var fetch_attr = fetch + 112;
var requestMethod = UTF8ToString(fetch_attr);
var onsuccess = HEAPU32[fetch_attr + 36 >> 2];
var onerror = HEAPU32[fetch_attr + 40 >> 2];
var onprogress = HEAPU32[fetch_attr + 44 >> 2];
var fetchAttributes = HEAPU32[fetch_attr + 48 >> 2];
var fetchAttrLoadToMemory = !!(fetchAttributes & 1);
var fetchAttrStreamData = !!(fetchAttributes & 2);
var fetchAttrPersistFile = !!(fetchAttributes & 4);
var fetchAttrNoDownload = !!(fetchAttributes & 32);
var fetchAttrAppend = !!(fetchAttributes & 8);
var fetchAttrReplace = !!(fetchAttributes & 16);
var reportSuccess = function(fetch, xhr, e) {
if (onsuccess) dynCall_vi(onsuccess, fetch);
else if (successcb) successcb(fetch);
};
var reportProgress = function(fetch, xhr, e) {
if (onprogress) dynCall_vi(onprogress, fetch);
else if (progresscb) progresscb(fetch);
};
var reportError = function(fetch, xhr, e) {
if (onerror) dynCall_vi(onerror, fetch);
else if (errorcb) errorcb(fetch);
};
var performUncachedXhr = function(fetch, xhr, e) {
__emscripten_fetch_xhr(fetch, reportSuccess, reportError, reportProgress);
};
var cacheResultAndReportSuccess = function(fetch, xhr, e) {
var storeSuccess = function(fetch, xhr, e) {
if (onsuccess) dynCall_vi(onsuccess, fetch);
else if (successcb) successcb(fetch);
};
var storeError = function(fetch, xhr, e) {
if (onsuccess) dynCall_vi(onsuccess, fetch);
else if (successcb) successcb(fetch);
};
__emscripten_fetch_cache_data(Fetch.dbInstance, fetch, xhr.response, storeSuccess, storeError);
};
var performCachedXhr = function(fetch, xhr, e) {
__emscripten_fetch_xhr(fetch, cacheResultAndReportSuccess, reportError, reportProgress);
};
// Should we try IndexedDB first?
var needsIndexedDbConnection = !fetchAttrReplace || requestMethod === 'EM_IDB_STORE' || requestMethod === 'EM_IDB_DELETE';
if (needsIndexedDbConnection && !Fetch.dbInstance) {
reportError(fetch, 0, 'IndexedDB is not open');
return 0; // todo: free
}
if (requestMethod === 'EM_IDB_STORE') {
// TODO(?): Here we perform a clone of the data, because storing shared typed arrays to IndexedDB does not seem to be allowed.
var ptr = HEAPU32[fetch_attr + 80 >> 2];
__emscripten_fetch_cache_data(Fetch.dbInstance, fetch, HEAPU8.slice(ptr, ptr + HEAPU32[fetch_attr + 84 >> 2]), reportSuccess, reportError);
} else if (requestMethod === 'EM_IDB_DELETE') {
__emscripten_fetch_delete_cached_data(Fetch.dbInstance, fetch, reportSuccess, reportError);
} else if (!fetchAttrReplace) {
__emscripten_fetch_load_cached_data(Fetch.dbInstance, fetch, reportSuccess, fetchAttrNoDownload ? reportError : (fetchAttrPersistFile ? performCachedXhr : performUncachedXhr));
} else if (!fetchAttrNoDownload) {
__emscripten_fetch_xhr(fetch, fetchAttrPersistFile ? cacheResultAndReportSuccess : reportSuccess, reportError, reportProgress);
} else {
return 0; // todo: free
}
return fetch;
}
var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function () {
GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);
for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) {
GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1);
}
},recordError:function recordError(errorCode) {
if (!GL.lastError) {
GL.lastError = errorCode;
}
},getNewId:function (table) {
var ret = GL.counter++;
for (var i = table.length; i < ret; i++) {
table[i] = null;
}
return ret;
},MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) {
var source = '';
for (var i = 0; i < count; ++i) {
var len = length ? HEAP32[(((length)+(i*4))>>2)] : -1;
source += UTF8ToString(HEAP32[(((string)+(i*4))>>2)], len < 0 ? undefined : len);
}
return source;
},createContext:function (canvas, webGLContextAttributes) {
var ctx =
(canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes));
return ctx && GL.registerContext(ctx, webGLContextAttributes);
},registerContext:function (ctx, webGLContextAttributes) {
var handle = _malloc(8); // Make space on the heap to store GL context attributes that need to be accessible as shared between threads.
var context = {
handle: handle,
attributes: webGLContextAttributes,
version: webGLContextAttributes.majorVersion,
GLctx: ctx
};
context.cannotHandleOffsetsInUniformArrayViews = (function(g) {
function b(c, t) {
var s = g.createShader(t);
g.shaderSource(s, c);
g.compileShader(s);
return s;
}
try {
var p = g.createProgram(); // Note: we do not delete this program so it stays part of the context we created, but that is ok - it does not do anything and we want to keep this detection size minimal.
g.attachShader(p, b("attribute vec4 p;void main(){gl_Position=p;}", g.VERTEX_SHADER));
g.attachShader(p, b("precision lowp float;uniform vec4 u;void main(){gl_FragColor=u;}", g.FRAGMENT_SHADER));
g.linkProgram(p);
var h = new Float32Array(8);
h[4] = 1;
g.useProgram(p);
var l = g.getUniformLocation(p, "u");
g.uniform4fv(l, h.subarray(4, 8)); // Uploading a 4-vector GL uniform from last four elements of array [0,0,0,0,1,0,0,0], i.e. uploading vec4=(1,0,0,0) at offset=4.
return !g.getUniform(p, l)[0]; // in proper WebGL we expect to read back the vector we just uploaded: (1,0,0,0). On buggy browser would instead have uploaded offset=0 of above array, i.e. vec4=(0,0,0,0)
} catch(e) { return false; } // If we get an exception, we assume we got some other error, and do not trigger this workaround.
})();
// Store the created context object so that we can access the context given a canvas without having to pass the parameters again.
if (ctx.canvas) ctx.canvas.GLctxObject = context;
GL.contexts[handle] = context;
if (typeof webGLContextAttributes.enableExtensionsByDefault === 'undefined' || webGLContextAttributes.enableExtensionsByDefault) {
GL.initExtensions(context);
}
return handle;
},makeContextCurrent:function (contextHandle) {
GL.currentContext = GL.contexts[contextHandle]; // Active Emscripten GL layer context object.
Module.ctx = GLctx = GL.currentContext && GL.currentContext.GLctx; // Active WebGL context object.
return !(contextHandle && !GLctx);
},getContext:function (contextHandle) {
return GL.contexts[contextHandle];
},deleteContext:function (contextHandle) {
if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null;
if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted.
if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises.
_free(GL.contexts[contextHandle]);
GL.contexts[contextHandle] = null;
},initExtensions:function (context) {
// If this function is called without a specific context object, init the extensions of the currently active context.
if (!context) context = GL.currentContext;
if (context.initExtensionsDone) return;
context.initExtensionsDone = true;
var GLctx = context.GLctx;
// Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist.
if (context.version < 2) {
// Extension available from Firefox 26 and Google Chrome 30
var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays');
if (instancedArraysExt) {
GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); };
GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); };
GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); };
}
// Extension available from Firefox 25 and WebKit
var vaoExt = GLctx.getExtension('OES_vertex_array_object');
if (vaoExt) {
GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); };
GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); };
GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); };
GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); };
}
var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers');
if (drawBuffersExt) {
GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); };
}
}
GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query");
// These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and
// should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working.
// As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions
// here, as long as they don't produce a performance impact for users that might not be using those extensions.
// E.g. debugging-related extensions should probably be off by default.
var automaticallyEnabledExtensions = [ // Khronos ratified WebGL extensions ordered by number (no debug extensions):
"OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives",
"OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture",
"OES_element_index_uint", "EXT_texture_filter_anisotropic", "EXT_frag_depth",
"WEBGL_draw_buffers", "ANGLE_instanced_arrays", "OES_texture_float_linear",
"OES_texture_half_float_linear", "EXT_blend_minmax", "EXT_shader_texture_lod",
// Community approved WebGL extensions ordered by number:
"WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float",
"EXT_sRGB", "WEBGL_compressed_texture_etc1", "EXT_disjoint_timer_query",
"WEBGL_compressed_texture_etc", "WEBGL_compressed_texture_astc", "EXT_color_buffer_float",
"WEBGL_compressed_texture_s3tc_srgb", "EXT_disjoint_timer_query_webgl2"];
function shouldEnableAutomatically(extension) {
var ret = false;
automaticallyEnabledExtensions.forEach(function(include) {
if (extension.indexOf(include) != -1) {
ret = true;
}
});
return ret;
}
var exts = GLctx.getSupportedExtensions();
if (exts && exts.length > 0) {
GLctx.getSupportedExtensions().forEach(function(ext) {
if (automaticallyEnabledExtensions.indexOf(ext) != -1) {
GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled.
}
});
}
},populateUniformTable:function (program) {
var p = GL.programs[program];
var ptable = GL.programInfos[program] = {
uniforms: {},
maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway.
maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet.
maxUniformBlockNameLength: -1 // Lazily computed as well
};
var utable = ptable.uniforms;
// A program's uniform table maps the string name of an uniform to an integer location of that uniform.
// The global GL.uniforms map maps integer locations to WebGLUniformLocations.
var numUniforms = GLctx.getProgramParameter(p, 0x8B86/*GL_ACTIVE_UNIFORMS*/);
for (var i = 0; i < numUniforms; ++i) {
var u = GLctx.getActiveUniform(p, i);
var name = u.name;
ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1);
// If we are dealing with an array, e.g. vec4 foo[3], strip off the array index part to canonicalize that "foo", "foo[]",
// and "foo[0]" will mean the same. Loop below will populate foo[1] and foo[2].
if (name.slice(-1) == ']') {
name = name.slice(0, name.lastIndexOf('['));
}
// Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then
// only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i.
// Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices.
var loc = GLctx.getUniformLocation(p, name);
if (loc) {
var id = GL.getNewId(GL.uniforms);
utable[name] = [u.size, id];
GL.uniforms[id] = loc;
for (var j = 1; j < u.size; ++j) {
var n = name + '['+j+']';
loc = GLctx.getUniformLocation(p, n);
id = GL.getNewId(GL.uniforms);
GL.uniforms[id] = loc;
}
}
}
}};
var __emscripten_webgl_power_preferences=['default', 'low-power', 'high-performance'];function _emscripten_webgl_do_create_context(target, attributes) {
var contextAttributes = {};
var a = attributes >> 2;
contextAttributes['alpha'] = !!HEAP32[a + (0>>2)];
contextAttributes['depth'] = !!HEAP32[a + (4>>2)];
contextAttributes['stencil'] = !!HEAP32[a + (8>>2)];
contextAttributes['antialias'] = !!HEAP32[a + (12>>2)];
contextAttributes['premultipliedAlpha'] = !!HEAP32[a + (16>>2)];
contextAttributes['preserveDrawingBuffer'] = !!HEAP32[a + (20>>2)];
var powerPreference = HEAP32[a + (24>>2)];
contextAttributes['powerPreference'] = __emscripten_webgl_power_preferences[powerPreference];
contextAttributes['failIfMajorPerformanceCaveat'] = !!HEAP32[a + (28>>2)];
contextAttributes.majorVersion = HEAP32[a + (32>>2)];
contextAttributes.minorVersion = HEAP32[a + (36>>2)];
contextAttributes.enableExtensionsByDefault = HEAP32[a + (40>>2)];
contextAttributes.explicitSwapControl = HEAP32[a + (44>>2)];
contextAttributes.proxyContextToMainThread = HEAP32[a + (48>>2)];
contextAttributes.renderViaOffscreenBackBuffer = HEAP32[a + (52>>2)];
var canvas = __findCanvasEventTarget(target);
if (!canvas) {
return 0;
}
if (contextAttributes.explicitSwapControl) {
return 0;
}
var contextHandle = GL.createContext(canvas, contextAttributes);
return contextHandle;
}function _emscripten_webgl_create_context(a0,a1
/**/) {
return _emscripten_webgl_do_create_context(a0,a1);
}
function _emscripten_webgl_destroy_context_calling_thread(contextHandle) {
if (GL.currentContext == contextHandle) GL.currentContext = 0;
GL.deleteContext(contextHandle);
}function _emscripten_webgl_destroy_context(a0
/**/) {
return _emscripten_webgl_destroy_context_calling_thread(a0);
}
function _emscripten_webgl_init_context_attributes(attributes) {
var a = attributes >> 2;
for(var i = 0; i < (56>>2); ++i) {
HEAP32[a+i] = 0;
}
HEAP32[a + (0>>2)] =
HEAP32[a + (4>>2)] =
HEAP32[a + (12>>2)] =
HEAP32[a + (16>>2)] =
HEAP32[a + (32>>2)] =
HEAP32[a + (40>>2)] = 1;
}
function _emscripten_webgl_make_context_current(contextHandle) {
var success = GL.makeContextCurrent(contextHandle);
return success ? 0 : -5;
}
Module["_emscripten_webgl_make_context_current"] = _emscripten_webgl_make_context_current;
function _exit(status) {
// void _exit(int status);
// http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html
exit(status);
}
function _gettimeofday(ptr) {
var now = Date.now();
HEAP32[((ptr)>>2)]=(now/1000)|0; // seconds
HEAP32[(((ptr)+(4))>>2)]=((now % 1000)*1000)|0; // microseconds
return 0;
}
function _glAttachShader(program, shader) {
GLctx.attachShader(GL.programs[program],
GL.shaders[shader]);
}
function _glBindAttribLocation(program, index, name) {
GLctx.bindAttribLocation(GL.programs[program], index, UTF8ToString(name));
}
function _glBindBuffer(target, buffer) {
GLctx.bindBuffer(target, GL.buffers[buffer]);
}
function _glBindTexture(target, texture) {
GLctx.bindTexture(target, GL.textures[texture]);
}
function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) }
function _glBufferData(target, size, data, usage) {
// N.b. here first form specifies a heap subarray, second form an integer size, so the ?: code here is polymorphic. It is advised to avoid
// randomly mixing both uses in calling code, to avoid any potential JS engine JIT issues.
GLctx.bufferData(target, data ? HEAPU8.subarray(data, data+size) : size, usage);
}
function _glBufferSubData(target, offset, size, data) {
GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size));
}
function _glClear(x0) { GLctx['clear'](x0) }
function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) }
function _glColorMask(red, green, blue, alpha) {
GLctx.colorMask(!!red, !!green, !!blue, !!alpha);
}
function _glCompileShader(shader) {
GLctx.compileShader(GL.shaders[shader]);
}
function _glCreateProgram() {
var id = GL.getNewId(GL.programs);
var program = GLctx.createProgram();
program.name = id;
GL.programs[id] = program;
return id;
}
function _glCreateShader(shaderType) {
var id = GL.getNewId(GL.shaders);
GL.shaders[id] = GLctx.createShader(shaderType);
return id;
}
function _glDeleteBuffers(n, buffers) {
for (var i = 0; i < n; i++) {
var id = HEAP32[(((buffers)+(i*4))>>2)];
var buffer = GL.buffers[id];
// From spec: "glDeleteBuffers silently ignores 0's and names that do not
// correspond to existing buffer objects."
if (!buffer) continue;
GLctx.deleteBuffer(buffer);
buffer.name = 0;
GL.buffers[id] = null;
if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0;
if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0;
}
}
function _glDeleteProgram(id) {
if (!id) return;
var program = GL.programs[id];
if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions.
GL.recordError(0x0501 /* GL_INVALID_VALUE */);
return;
}
GLctx.deleteProgram(program);
program.name = 0;
GL.programs[id] = null;
GL.programInfos[id] = null;
}
function _glDeleteShader(id) {
if (!id) return;
var shader = GL.shaders[id];
if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions.
GL.recordError(0x0501 /* GL_INVALID_VALUE */);
return;
}
GLctx.deleteShader(shader);
GL.shaders[id] = null;
}
function _glDeleteTextures(n, textures) {
for (var i = 0; i < n; i++) {
var id = HEAP32[(((textures)+(i*4))>>2)];
var texture = GL.textures[id];
if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures".
GLctx.deleteTexture(texture);
texture.name = 0;
GL.textures[id] = null;
}
}
function _glDepthFunc(x0) { GLctx['depthFunc'](x0) }
function _glDepthMask(flag) {
GLctx.depthMask(!!flag);
}
function _glDetachShader(program, shader) {
GLctx.detachShader(GL.programs[program],
GL.shaders[shader]);
}
function _glDisable(x0) { GLctx['disable'](x0) }
function _glDisableVertexAttribArray(index) {
GLctx.disableVertexAttribArray(index);
}
function _glDrawArrays(mode, first, count) {
GLctx.drawArrays(mode, first, count);
}
function _glDrawElements(mode, count, type, indices) {
GLctx.drawElements(mode, count, type, indices);
}
function _glEnable(x0) { GLctx['enable'](x0) }
function _glEnableVertexAttribArray(index) {
GLctx.enableVertexAttribArray(index);
}
function __glGenObject(n, buffers, createFunction, objectTable
) {
for (var i = 0; i < n; i++) {
var buffer = GLctx[createFunction]();
var id = buffer && GL.getNewId(objectTable);
if (buffer) {
buffer.name = id;
objectTable[id] = buffer;
} else {
GL.recordError(0x0502 /* GL_INVALID_OPERATION */);
}
HEAP32[(((buffers)+(i*4))>>2)]=id;
}
}function _glGenBuffers(n, buffers) {
__glGenObject(n, buffers, 'createBuffer', GL.buffers
);
}
function _glGenTextures(n, textures) {
__glGenObject(n, textures, 'createTexture', GL.textures
);
}
function emscriptenWebGLGet(name_, p, type) {
// Guard against user passing a null pointer.
// Note that GLES2 spec does not say anything about how passing a null pointer should be treated.
// Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but
// better to report an error instead of doing anything random.
if (!p) {
GL.recordError(0x0501 /* GL_INVALID_VALUE */);
return;
}
var ret = undefined;
switch(name_) { // Handle a few trivial GLES values
case 0x8DFA: // GL_SHADER_COMPILER
ret = 1;
break;
case 0x8DF8: // GL_SHADER_BINARY_FORMATS
if (type !== 'Integer' && type !== 'Integer64') {
GL.recordError(0x0500); // GL_INVALID_ENUM
}
return; // Do not write anything to the out pointer, since no binary formats are supported.
case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS
ret = 0;
break;
case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS
// WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length),
// so implement it ourselves to allow C++ GLES2 code get the length.
var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/);
ret = formats ? formats.length : 0;
break;
}
if (ret === undefined) {
var result = GLctx.getParameter(name_);
switch (typeof(result)) {
case "number":
ret = result;
break;
case "boolean":
ret = result ? 1 : 0;
break;
case "string":
GL.recordError(0x0500); // GL_INVALID_ENUM
return;
case "object":
if (result === null) {
// null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise
// can mean an invalid name_, which we need to report as an error
switch(name_) {
case 0x8894: // ARRAY_BUFFER_BINDING
case 0x8B8D: // CURRENT_PROGRAM
case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING
case 0x8CA6: // FRAMEBUFFER_BINDING
case 0x8CA7: // RENDERBUFFER_BINDING
case 0x8069: // TEXTURE_BINDING_2D
case 0x85B5: // WebGL 2 GL_VERTEX_ARRAY_BINDING, or WebGL 1 extension OES_vertex_array_object GL_VERTEX_ARRAY_BINDING_OES
case 0x8514: { // TEXTURE_BINDING_CUBE_MAP
ret = 0;
break;
}
default: {
GL.recordError(0x0500); // GL_INVALID_ENUM
return;
}
}
} else if (result instanceof Float32Array ||
result instanceof Uint32Array ||
result instanceof Int32Array ||
result instanceof Array) {
for (var i = 0; i < result.length; ++i) {
switch (type) {
case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break;
case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break;
case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break;
default: throw 'internal glGet error, bad type: ' + type;
}
}
return;
} else {
try {
ret = result.name | 0;
} catch(e) {
GL.recordError(0x0500); // GL_INVALID_ENUM
err('GL_INVALID_ENUM in glGet' + type + 'v: Unknown object returned from WebGL getParameter(' + name_ + ')! (error: ' + e + ')');
return;
}
}
break;
default:
GL.recordError(0x0500); // GL_INVALID_ENUM
return;
}
}
switch (type) {
case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(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[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break;
case 'Integer': HEAP32[((p)>>2)]=ret; break;
case 'Float': HEAPF32[((p)>>2)]=ret; break;
case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break;
default: throw 'internal glGet error, bad type: ' + type;
}
}function _glGetIntegerv(name_, p) {
emscriptenWebGLGet(name_, p, 'Integer');
}
function _glGetProgramInfoLog(program, maxLength, length, infoLog) {
var log = GLctx.getProgramInfoLog(GL.programs[program]);
if (log === null) log = '(unknown error)';
if (maxLength > 0 && infoLog) {
var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength);
if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull;
} else {
if (length) HEAP32[((length)>>2)]=0;
}
}
function _glGetProgramiv(program, pname, p) {
if (!p) {
// GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense
// if p == null, issue a GL error to notify user about it.
GL.recordError(0x0501 /* GL_INVALID_VALUE */);
return;
}
if (program >= GL.counter) {
GL.recordError(0x0501 /* GL_INVALID_VALUE */);
return;
}
var ptable = GL.programInfos[program];
if (!ptable) {
GL.recordError(0x0502 /* GL_INVALID_OPERATION */);
return;
}
if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH
var log = GLctx.getProgramInfoLog(GL.programs[program]);
if (log === null) log = '(unknown error)';
HEAP32[((p)>>2)]=log.length + 1;
} else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) {
HEAP32[((p)>>2)]=ptable.maxUniformLength;
} else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) {
if (ptable.maxAttributeLength == -1) {
program = GL.programs[program];
var numAttribs = GLctx.getProgramParameter(program, 0x8B89/*GL_ACTIVE_ATTRIBUTES*/);
ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned.
for (var i = 0; i < numAttribs; ++i) {
var activeAttrib = GLctx.getActiveAttrib(program, i);
ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1);
}
}
HEAP32[((p)>>2)]=ptable.maxAttributeLength;
} else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) {
if (ptable.maxUniformBlockNameLength == -1) {
program = GL.programs[program];
var numBlocks = GLctx.getProgramParameter(program, 0x8A36/*GL_ACTIVE_UNIFORM_BLOCKS*/);
ptable.maxUniformBlockNameLength = 0;
for (var i = 0; i < numBlocks; ++i) {
var activeBlockName = GLctx.getActiveUniformBlockName(program, i);
ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1);
}
}
HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength;
} else {
HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname);
}
}
function _glGetShaderInfoLog(shader, maxLength, length, infoLog) {
var log = GLctx.getShaderInfoLog(GL.shaders[shader]);
if (log === null) log = '(unknown error)';
if (maxLength > 0 && infoLog) {
var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength);
if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull;
} else {
if (length) HEAP32[((length)>>2)]=0;
}
}
function _glGetShaderiv(shader, pname, p) {
if (!p) {
// GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense
// if p == null, issue a GL error to notify user about it.
GL.recordError(0x0501 /* GL_INVALID_VALUE */);
return;
}
if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH
var log = GLctx.getShaderInfoLog(GL.shaders[shader]);
if (log === null) log = '(unknown error)';
HEAP32[((p)>>2)]=log.length + 1;
} else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH
var source = GLctx.getShaderSource(GL.shaders[shader]);
var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1;
HEAP32[((p)>>2)]=sourceLength;
} else {
HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname);
}
}
function stringToNewUTF8(jsString) {
var length = lengthBytesUTF8(jsString)+1;
var cString = _malloc(length);
stringToUTF8(jsString, cString, length);
return cString;
}function _glGetString(name_) {
if (GL.stringCache[name_]) return GL.stringCache[name_];
var ret;
switch(name_) {
case 0x1F03 /* GL_EXTENSIONS */:
var exts = GLctx.getSupportedExtensions();
var gl_exts = [];
for (var i = 0; i < exts.length; ++i) {
gl_exts.push(exts[i]);
gl_exts.push("GL_" + exts[i]);
}
ret = stringToNewUTF8(gl_exts.join(' '));
break;
case 0x1F00 /* GL_VENDOR */:
case 0x1F01 /* GL_RENDERER */:
case 0x9245 /* UNMASKED_VENDOR_WEBGL */:
case 0x9246 /* UNMASKED_RENDERER_WEBGL */:
var s = GLctx.getParameter(name_);
if (!s) {
GL.recordError(0x0500/*GL_INVALID_ENUM*/);
}
ret = stringToNewUTF8(s);
break;
case 0x1F02 /* GL_VERSION */:
var glVersion = GLctx.getParameter(GLctx.VERSION);
// return GLES version string corresponding to the version of the WebGL context
{
glVersion = 'OpenGL ES 2.0 (' + glVersion + ')';
}
ret = stringToNewUTF8(glVersion);
break;
case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */:
var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION);
// extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...'
var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;
var ver_num = glslVersion.match(ver_re);
if (ver_num !== null) {
if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits
glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')';
}
ret = stringToNewUTF8(glslVersion);
break;
default:
GL.recordError(0x0500/*GL_INVALID_ENUM*/);
return 0;
}
GL.stringCache[name_] = ret;
return ret;
}
function _glGetUniformLocation(program, name) {
name = UTF8ToString(name);
var arrayIndex = 0;
// If user passed an array accessor "[index]", parse the array index off the accessor.
if (name[name.length - 1] == ']') {
var leftBrace = name.lastIndexOf('[');
arrayIndex = name[leftBrace+1] != ']' ? parseInt(name.slice(leftBrace + 1)) : 0; // "index]", parseInt will ignore the ']' at the end; but treat "foo[]" as "foo[0]"
name = name.slice(0, leftBrace);
}
var uniformInfo = GL.programInfos[program] && GL.programInfos[program].uniforms[name]; // returns pair [ dimension_of_uniform_array, uniform_location ]
if (uniformInfo && arrayIndex >= 0 && arrayIndex < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1.
return uniformInfo[1] + arrayIndex;
} else {
return -1;
}
}
function _glLinkProgram(program) {
GLctx.linkProgram(GL.programs[program]);
GL.populateUniformTable(program);
}
function _glShaderSource(shader, count, string, length) {
var source = GL.getSource(shader, count, string, length);
GLctx.shaderSource(GL.shaders[shader], source);
}
function __computeUnpackAlignedImageSize(width, height, sizePerPixel, alignment) {
function roundedToNextMultipleOf(x, y) {
return (x + y - 1) & -y;
}
var plainRowSize = width * sizePerPixel;
var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment);
return height * alignedRowSize;
}
var __colorChannelsInGlTextureFormat={6402:1,6406:1,6407:3,6408:4,6409:1,6410:2,35904:3,35906:4};
var __sizeOfGlTextureElementType={5121:1,5123:2,5125:4,5126:4,32819:2,32820:2,33635:2,34042:4,36193:2};function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) {
var sizePerPixel = __colorChannelsInGlTextureFormat[format] * __sizeOfGlTextureElementType[type];
if (!sizePerPixel) {
GL.recordError(0x0500); // GL_INVALID_ENUM
return;
}
var bytes = __computeUnpackAlignedImageSize(width, height, sizePerPixel, GL.unpackAlignment);
var end = pixels + bytes;
switch(type) {
case 0x1401 /* GL_UNSIGNED_BYTE */:
return HEAPU8.subarray(pixels, end);
case 0x1406 /* GL_FLOAT */:
return HEAPF32.subarray(pixels>>2, end>>2);
case 0x1405 /* GL_UNSIGNED_INT */:
case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */:
return HEAPU32.subarray(pixels>>2, end>>2);
case 0x1403 /* GL_UNSIGNED_SHORT */:
case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */:
case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */:
case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */:
case 0x8D61 /* GL_HALF_FLOAT_OES */:
return HEAPU16.subarray(pixels>>1, end>>1);
default:
GL.recordError(0x0500); // GL_INVALID_ENUM
}
}function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) {
GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) : null);
}
function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) }
function _glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) {
var pixelData = null;
if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0);
GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData);
}
function _glUniform1f(location, v0) {
GLctx.uniform1f(GL.uniforms[location], v0);
}
function _glUniform3f(location, v0, v1, v2) {
GLctx.uniform3f(GL.uniforms[location], v0, v1, v2);
}
function _glUniformMatrix4fv(location, count, transpose, value) {
if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) {
// avoid allocation when uploading few enough uniforms
var view = GL.miniTempBufferViews[16*count-1];
for (var i = 0; i < 16*count; i += 16) {
view[i] = HEAPF32[(((value)+(4*i))>>2)];
view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)];
view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)];
view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)];
view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)];
view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)];
view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)];
view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)];
view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)];
view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)];
view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)];
view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)];
view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)];
view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)];
view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)];
view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)];
}
} else
{
var view = HEAPF32.subarray((value)>>2,(value+count*64)>>2);
if (GL.currentContext.cannotHandleOffsetsInUniformArrayViews) view = new Float32Array(view);
}
GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view);
}
function _glUseProgram(program) {
GLctx.useProgram(GL.programs[program]);
}
function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) {
GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr);
}
function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) }
var ___tm_timezone=(stringToUTF8("GMT", 1408464, 4), 1408464);
function _tzset() {
// TODO: Use (malleable) environment variables instead of system settings.
if (_tzset.called) return;
_tzset.called = true;
// timezone is specified as seconds west of UTC ("The external variable
// `timezone` shall be set to the difference, in seconds, between
// Coordinated Universal Time (UTC) and local standard time."), the same
// as returned by getTimezoneOffset().
// See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html
HEAP32[((__get_timezone())>>2)]=(new Date()).getTimezoneOffset() * 60;
var winter = new Date(2000, 0, 1);
var summer = new Date(2000, 6, 1);
HEAP32[((__get_daylight())>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset());
function extractZone(date) {
var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/);
return match ? match[1] : "GMT";
};
var winterName = extractZone(winter);
var summerName = extractZone(summer);
var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL);
var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL);
if (summer.getTimezoneOffset() < winter.getTimezoneOffset()) {
// Northern hemisphere
HEAP32[((__get_tzname())>>2)]=winterNamePtr;
HEAP32[(((__get_tzname())+(4))>>2)]=summerNamePtr;
} else {
HEAP32[((__get_tzname())>>2)]=summerNamePtr;
HEAP32[(((__get_tzname())+(4))>>2)]=winterNamePtr;
}
}function _localtime_r(time, tmPtr) {
_tzset();
var date = new Date(HEAP32[((time)>>2)]*1000);
HEAP32[((tmPtr)>>2)]=date.getSeconds();
HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes();
HEAP32[(((tmPtr)+(8))>>2)]=date.getHours();
HEAP32[(((tmPtr)+(12))>>2)]=date.getDate();
HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth();
HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900;
HEAP32[(((tmPtr)+(24))>>2)]=date.getDay();
var start = new Date(date.getFullYear(), 0, 1);
var yday = ((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24))|0;
HEAP32[(((tmPtr)+(28))>>2)]=yday;
HEAP32[(((tmPtr)+(36))>>2)]=-(date.getTimezoneOffset() * 60);
// Attention: DST is in December in South, and some regions don't have DST at all.
var summerOffset = new Date(2000, 6, 1).getTimezoneOffset();
var winterOffset = start.getTimezoneOffset();
var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset))|0;
HEAP32[(((tmPtr)+(32))>>2)]=dst;
var zonePtr = HEAP32[(((__get_tzname())+(dst ? 4 : 0))>>2)];
HEAP32[(((tmPtr)+(40))>>2)]=zonePtr;
return tmPtr;
}
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
}
FS.staticInit();Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;Module["FS_unlink"] = FS.unlink;;
if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); };
if (ENVIRONMENT_IS_NODE) {
_emscripten_get_now = function _emscripten_get_now_actual() {
var t = process['hrtime']();
return t[0] * 1e3 + t[1] / 1e6;
};
} else if (typeof dateNow !== 'undefined') {
_emscripten_get_now = dateNow;
} else if (typeof performance === 'object' && performance && typeof performance['now'] === 'function') {
_emscripten_get_now = function() { return performance['now'](); };
} else {
_emscripten_get_now = Date.now;
};
Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { err("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) };
Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) };
Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) };
Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) };
Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() };
Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() };
Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() }
Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) };
Fetch.staticInit();;
var GLctx; GL.init();
var ASSERTIONS = false;
// Copyright 2017 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
// University of Illinois/NCSA Open Source License. Both these licenses can be
// found in the LICENSE file.
/** @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('');
}
// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149
// This code was written by Tyler Akins and has been placed in the
// public domain. It would be nice if you left this header intact.
// Base64 code from Tyler Akins -- http://rumkin.com
/**
* Decodes a base64 string.
* @param {String} input The string to decode.
*/
var decodeBase64 = typeof atob === 'function' ? atob : function (input) {
var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var output = '';
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
do {
enc1 = keyStr.indexOf(input.charAt(i++));
enc2 = keyStr.indexOf(input.charAt(i++));
enc3 = keyStr.indexOf(input.charAt(i++));
enc4 = keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 !== 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 !== 64) {
output = output + String.fromCharCode(chr3);
}
} while (i < input.length);
return output;
};
// Converts a string of base64 into a byte array.
// Throws error on invalid input.
function intArrayFromBase64(s) {
if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) {
var buf;
try {
buf = Buffer.from(s, 'base64');
} catch (_) {
buf = new Buffer(s, 'base64');
}
return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
}
try {
var decoded = decodeBase64(s);
var bytes = new Uint8Array(decoded.length);
for (var i = 0 ; i < decoded.length ; ++i) {
bytes[i] = decoded.charCodeAt(i);
}
return bytes;
} catch (_) {
throw new Error('Converting base64 string to bytes failed.');
}
}
// If filename is a base64 data URI, parses and returns data (Buffer on node,
// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined.
function tryParseAsDataURI(filename) {
if (!isDataURI(filename)) {
return;
}
return intArrayFromBase64(filename.slice(dataURIPrefix.length));
}
// ASM_LIBRARY EXTERN PRIMITIVES: Math_imul,Int8Array,Int32Array
var asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "Infinity": Infinity }
var asmLibraryArg = {
"a": abort,
"b": setTempRet0,
"c": getTempRet0,
"d": _JSEvents_requestFullscreen,
"e": _JSEvents_resizeCanvasForFullscreen,
"f": ___buildEnvironment,
"g": ___setErrNo,
"h": ___syscall10,
"i": ___syscall102,
"j": ___syscall12,
"k": ___syscall140,
"l": ___syscall168,
"m": ___syscall195,
"n": ___syscall197,
"o": ___syscall220,
"p": ___syscall221,
"q": ___syscall3,
"r": ___syscall39,
"s": ___syscall4,
"t": ___syscall5,
"u": ___syscall54,
"v": ___syscall6,
"w": __computeUnpackAlignedImageSize,
"x": __emscripten_do_request_fullscreen,
"y": __emscripten_fetch_cache_data,
"z": __emscripten_fetch_delete_cached_data,
"A": __emscripten_fetch_load_cached_data,
"B": __emscripten_fetch_xhr,
"C": __emscripten_get_fetch_work_queue,
"D": __fillFullscreenChangeEventData,
"E": __fillMouseEventData,
"F": __fillPointerlockChangeEventData,
"G": __findCanvasEventTarget,
"H": __findEventTarget,
"I": __get_canvas_element_size,
"J": __glGenObject,
"K": __inet_ntop4_raw,
"L": __inet_ntop6_raw,
"M": __inet_pton4_raw,
"N": __inet_pton6_raw,
"O": __read_sockaddr,
"P": __registerBeforeUnloadEventCallback,
"Q": __registerFocusEventCallback,
"R": __registerKeyEventCallback,
"S": __registerMouseEventCallback,
"T": __registerRestoreOldStyle,
"U": __registerTouchEventCallback,
"V": __registerUiEventCallback,
"W": __registerWebGlEventCallback,
"X": __registerWheelEventCallback,
"Y": __requestPointerLock,
"Z": __setLetterbox,
"_": __set_canvas_element_size,
"$": __write_sockaddr,
"aa": _emscripten_asm_const_i,
"ab": _emscripten_asm_const_ii,
"ac": _emscripten_asm_const_iii,
"ad": _emscripten_asm_const_iiii,
"ae": _emscripten_exit_fullscreen,
"af": _emscripten_exit_pointerlock,
"ag": _emscripten_get_canvas_element_size,
"ah": _emscripten_get_device_pixel_ratio,
"ai": _emscripten_get_element_css_size,
"aj": _emscripten_get_fullscreen_status,
"ak": _emscripten_get_heap_size,
"al": _emscripten_get_now,
"am": _emscripten_get_pointerlock_status,
"an": _emscripten_is_main_browser_thread,
"ao": _emscripten_is_main_runtime_thread,
"ap": _emscripten_is_webgl_context_lost,
"aq": _emscripten_memcpy_big,
"ar": _emscripten_request_fullscreen_strategy,
"as": _emscripten_request_pointerlock,
"at": _emscripten_resize_heap,
"au": _emscripten_set_beforeunload_callback_on_thread,
"av": _emscripten_set_blur_callback_on_thread,
"aw": _emscripten_set_canvas_element_size,
"ax": _emscripten_set_focus_callback_on_thread,
"ay": _emscripten_set_keydown_callback_on_thread,
"az": _emscripten_set_keypress_callback_on_thread,
"aA": _emscripten_set_keyup_callback_on_thread,
"aB": _emscripten_set_main_loop,
"aC": _emscripten_set_main_loop_timing,
"aD": _emscripten_set_mousedown_callback_on_thread,
"aE": _emscripten_set_mousemove_callback_on_thread,
"aF": _emscripten_set_mouseup_callback_on_thread,
"aG": _emscripten_set_resize_callback_on_thread,
"aH": _emscripten_set_touchcancel_callback_on_thread,
"aI": _emscripten_set_touchend_callback_on_thread,
"aJ": _emscripten_set_touchmove_callback_on_thread,
"aK": _emscripten_set_touchstart_callback_on_thread,
"aL": _emscripten_set_webglcontextlost_callback_on_thread,
"aM": _emscripten_set_wheel_callback_on_thread,
"aN": _emscripten_start_fetch,
"aO": _emscripten_webgl_create_context,
"aP": _emscripten_webgl_destroy_context,
"aQ": _emscripten_webgl_destroy_context_calling_thread,
"aR": _emscripten_webgl_do_create_context,
"aS": _emscripten_webgl_init_context_attributes,
"aT": _emscripten_webgl_make_context_current,
"aU": _exit,
"aV": _gettimeofday,
"aW": _glAttachShader,
"aX": _glBindAttribLocation,
"aY": _glBindBuffer,
"aZ": _glBindTexture,
"a_": _glBlendFunc,
"a$": _glBufferData,
"ba": _glBufferSubData,
"bb": _glClear,
"bc": _glClearColor,
"bd": _glColorMask,
"be": _glCompileShader,
"bf": _glCreateProgram,
"bg": _glCreateShader,
"bh": _glDeleteBuffers,
"bi": _glDeleteProgram,
"bj": _glDeleteShader,
"bk": _glDeleteTextures,
"bl": _glDepthFunc,
"bm": _glDepthMask,
"bn": _glDetachShader,
"bo": _glDisable,
"bp": _glDisableVertexAttribArray,
"bq": _glDrawArrays,
"br": _glDrawElements,
"bs": _glEnable,
"bt": _glEnableVertexAttribArray,
"bu": _glGenBuffers,
"bv": _glGenTextures,
"bw": _glGetIntegerv,
"bx": _glGetProgramInfoLog,
"by": _glGetProgramiv,
"bz": _glGetShaderInfoLog,
"bA": _glGetShaderiv,
"bB": _glGetString,
"bC": _glGetUniformLocation,
"bD": _glLinkProgram,
"bE": _glShaderSource,
"bF": _glTexImage2D,
"bG": _glTexParameteri,
"bH": _glTexSubImage2D,
"bI": _glUniform1f,
"bJ": _glUniform3f,
"bK": _glUniformMatrix4fv,
"bL": _glUseProgram,
"bM": _glVertexAttribPointer,
"bN": _glViewport,
"bO": _localtime_r,
"bP": _tzset,
"bQ": abortOnCannotGrowMemory,
"bR": emscriptenWebGLGet,
"bS": emscriptenWebGLGetTexPixelData,
"bT": emscripten_realloc_buffer,
"bU": stringToNewUTF8,
"bV": tempDoublePtr,
"bW": DYNAMICTOP_PTR
}
// EMSCRIPTEN_START_ASM
var asm = (/** @suppress {uselessCode} */ function(global, env, buffer) {
'almost asm';
var HEAP8 = new global.Int8Array(buffer),
HEAP16 = new global.Int16Array(buffer),
HEAP32 = new global.Int32Array(buffer),
HEAPU8 = new global.Uint8Array(buffer),
HEAPU16 = new global.Uint16Array(buffer),
HEAPF32 = new global.Float32Array(buffer),
HEAPF64 = new global.Float64Array(buffer),
tempDoublePtr=env.bV|0,
DYNAMICTOP_PTR=env.bW|0,
__THREW__ = 0,
threwValue = 0,
setjmpId = 0,
tempInt = 0,
tempBigInt = 0,
tempBigIntS = 0,
tempValue = 0,
tempDouble = 0.0,
inf = global.Infinity,
Math_floor=global.Math.floor,
Math_abs=global.Math.abs,
Math_sqrt=global.Math.sqrt,
Math_cos=global.Math.cos,
Math_sin=global.Math.sin,
Math_exp=global.Math.exp,
Math_log=global.Math.log,
Math_ceil=global.Math.ceil,
Math_imul=global.Math.imul,
Math_min=global.Math.min,
abort=env.a,
setTempRet0=env.b,
getTempRet0=env.c,
_JSEvents_requestFullscreen=env.d,
_JSEvents_resizeCanvasForFullscreen=env.e,
___buildEnvironment=env.f,
___setErrNo=env.g,
___syscall10=env.h,
___syscall102=env.i,
___syscall12=env.j,
___syscall140=env.k,
___syscall168=env.l,
___syscall195=env.m,
___syscall197=env.n,
___syscall220=env.o,
___syscall221=env.p,
___syscall3=env.q,
___syscall39=env.r,
___syscall4=env.s,
___syscall5=env.t,
___syscall54=env.u,
___syscall6=env.v,
__computeUnpackAlignedImageSize=env.w,
__emscripten_do_request_fullscreen=env.x,
__emscripten_fetch_cache_data=env.y,
__emscripten_fetch_delete_cached_data=env.z,
__emscripten_fetch_load_cached_data=env.A,
__emscripten_fetch_xhr=env.B,
__emscripten_get_fetch_work_queue=env.C,
__fillFullscreenChangeEventData=env.D,
__fillMouseEventData=env.E,
__fillPointerlockChangeEventData=env.F,
__findCanvasEventTarget=env.G,
__findEventTarget=env.H,
__get_canvas_element_size=env.I,
__glGenObject=env.J,
__inet_ntop4_raw=env.K,
__inet_ntop6_raw=env.L,
__inet_pton4_raw=env.M,
__inet_pton6_raw=env.N,
__read_sockaddr=env.O,
__registerBeforeUnloadEventCallback=env.P,
__registerFocusEventCallback=env.Q,
__registerKeyEventCallback=env.R,
__registerMouseEventCallback=env.S,
__registerRestoreOldStyle=env.T,
__registerTouchEventCallback=env.U,
__registerUiEventCallback=env.V,
__registerWebGlEventCallback=env.W,
__registerWheelEventCallback=env.X,
__requestPointerLock=env.Y,
__setLetterbox=env.Z,
__set_canvas_element_size=env._,
__write_sockaddr=env.$,
_emscripten_asm_const_i=env.aa,
_emscripten_asm_const_ii=env.ab,
_emscripten_asm_const_iii=env.ac,
_emscripten_asm_const_iiii=env.ad,
_emscripten_exit_fullscreen=env.ae,
_emscripten_exit_pointerlock=env.af,
_emscripten_get_canvas_element_size=env.ag,
_emscripten_get_device_pixel_ratio=env.ah,
_emscripten_get_element_css_size=env.ai,
_emscripten_get_fullscreen_status=env.aj,
_emscripten_get_heap_size=env.ak,
_emscripten_get_now=env.al,
_emscripten_get_pointerlock_status=env.am,
_emscripten_is_main_browser_thread=env.an,
_emscripten_is_main_runtime_thread=env.ao,
_emscripten_is_webgl_context_lost=env.ap,
_emscripten_memcpy_big=env.aq,
_emscripten_request_fullscreen_strategy=env.ar,
_emscripten_request_pointerlock=env.as,
_emscripten_resize_heap=env.at,
_emscripten_set_beforeunload_callback_on_thread=env.au,
_emscripten_set_blur_callback_on_thread=env.av,
_emscripten_set_canvas_element_size=env.aw,
_emscripten_set_focus_callback_on_thread=env.ax,
_emscripten_set_keydown_callback_on_thread=env.ay,
_emscripten_set_keypress_callback_on_thread=env.az,
_emscripten_set_keyup_callback_on_thread=env.aA,
_emscripten_set_main_loop=env.aB,
_emscripten_set_main_loop_timing=env.aC,
_emscripten_set_mousedown_callback_on_thread=env.aD,
_emscripten_set_mousemove_callback_on_thread=env.aE,
_emscripten_set_mouseup_callback_on_thread=env.aF,
_emscripten_set_resize_callback_on_thread=env.aG,
_emscripten_set_touchcancel_callback_on_thread=env.aH,
_emscripten_set_touchend_callback_on_thread=env.aI,
_emscripten_set_touchmove_callback_on_thread=env.aJ,
_emscripten_set_touchstart_callback_on_thread=env.aK,
_emscripten_set_webglcontextlost_callback_on_thread=env.aL,
_emscripten_set_wheel_callback_on_thread=env.aM,
_emscripten_start_fetch=env.aN,
_emscripten_webgl_create_context=env.aO,
_emscripten_webgl_destroy_context=env.aP,
_emscripten_webgl_destroy_context_calling_thread=env.aQ,
_emscripten_webgl_do_create_context=env.aR,
_emscripten_webgl_init_context_attributes=env.aS,
_emscripten_webgl_make_context_current=env.aT,
_exit=env.aU,
_gettimeofday=env.aV,
_glAttachShader=env.aW,
_glBindAttribLocation=env.aX,
_glBindBuffer=env.aY,
_glBindTexture=env.aZ,
_glBlendFunc=env.a_,
_glBufferData=env.a$,
_glBufferSubData=env.ba,
_glClear=env.bb,
_glClearColor=env.bc,
_glColorMask=env.bd,
_glCompileShader=env.be,
_glCreateProgram=env.bf,
_glCreateShader=env.bg,
_glDeleteBuffers=env.bh,
_glDeleteProgram=env.bi,
_glDeleteShader=env.bj,
_glDeleteTextures=env.bk,
_glDepthFunc=env.bl,
_glDepthMask=env.bm,
_glDetachShader=env.bn,
_glDisable=env.bo,
_glDisableVertexAttribArray=env.bp,
_glDrawArrays=env.bq,
_glDrawElements=env.br,
_glEnable=env.bs,
_glEnableVertexAttribArray=env.bt,
_glGenBuffers=env.bu,
_glGenTextures=env.bv,
_glGetIntegerv=env.bw,
_glGetProgramInfoLog=env.bx,
_glGetProgramiv=env.by,
_glGetShaderInfoLog=env.bz,
_glGetShaderiv=env.bA,
_glGetString=env.bB,
_glGetUniformLocation=env.bC,
_glLinkProgram=env.bD,
_glShaderSource=env.bE,
_glTexImage2D=env.bF,
_glTexParameteri=env.bG,
_glTexSubImage2D=env.bH,
_glUniform1f=env.bI,
_glUniform3f=env.bJ,
_glUniformMatrix4fv=env.bK,
_glUseProgram=env.bL,
_glVertexAttribPointer=env.bM,
_glViewport=env.bN,
_localtime_r=env.bO,
_tzset=env.bP,
abortOnCannotGrowMemory=env.bQ,
emscriptenWebGLGet=env.bR,
emscriptenWebGLGetTexPixelData=env.bS,
emscripten_realloc_buffer=env.bT,
stringToNewUTF8=env.bU,
STACKTOP = 1408592,
STACK_MAX = 6651472,
tempFloat = 0.0;
function _emscripten_replace_memory(newBuffer) {
HEAP8 = new Int8Array(newBuffer);
HEAPU8 = new Uint8Array(newBuffer);
HEAP16 = new Int16Array(newBuffer);
HEAPU16 = new Uint16Array(newBuffer);
HEAP32 = new Int32Array(newBuffer);
HEAPF32 = new Float32Array(newBuffer);
HEAPF64 = new Float64Array(newBuffer);
buffer = newBuffer;
return true;
}
// EMSCRIPTEN_START_FUNCS
function stackAlloc(size) {
size = size|0;
var ret = 0;
ret = STACKTOP;
STACKTOP = (STACKTOP + size)|0;
STACKTOP = (STACKTOP + 15)&-16;
return ret|0;
}
function stackSave() {
return STACKTOP|0;
}
function stackRestore(top) {
top = top|0;
STACKTOP = top;
}
function establishStackSpace(stackBase, stackMax) {
stackBase = stackBase|0;
stackMax = stackMax|0;
STACKTOP = stackBase;
STACK_MAX = stackMax;
}
function _Audio_SetMusic($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0|0)==(0);
if ($1) {
return;
}
_Chat_AddRaw(19100);
return;
}
function _Audio_SetSounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0|0)==(0);
if ($1) {
return;
}
_Chat_AddRaw(19135);
return;
}
function _Audio_PlayStepSound($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Audio_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Audio_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _AxisLinesRenderer_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Register((1251856),0,269);
return;
}
function _AxisLinesRenderer_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_OnContextLost(0);
_Event_Unregister((1251856),0,269);
return;
}
function _OnContextLost($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteVb(569600);
return;
}
function _AxisLinesRenderer_Render() {
var $$01719 = 0, $$020 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$0 = sp + 192|0;
$1 = sp + 252|0;
$2 = sp;
$3 = HEAP8[1408206]|0;
$4 = ($3<<24>>24)!=(0);
$5 = HEAP8[(1260360)>>0]|0;
$6 = ($5<<24>>24)==(0);
$or$cond = $4 & $6;
if (!($or$cond)) {
STACKTOP = sp;return;
}
$7 = HEAP32[142400]|0;
$8 = ($7|0)==(0);
if ($8) {
$9 = (_Gfx_CreateDynamicVb(0,12)|0);
HEAP32[142400] = $9;
}
;HEAP32[$1>>2]=HEAP32[(1242156)>>2]|0;HEAP32[$1+4>>2]=HEAP32[(1242156)+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[(1242156)+8>>2]|0;
$10 = ((($1)) + 4|0);
$11 = +HEAPF32[$10>>2];
$12 = $11 + 0.05000000074505806;
HEAPF32[$10>>2] = $12;
$13 = HEAP32[(1230632)>>2]|0;
$14 = HEAP8[$13>>0]|0;
$15 = ($14<<24>>24)==(0);
$16 = $15 ? 8 : 12;
_Vec3_Add1($0,$1,-3.0);
$17 = ((($0)) + 12|0);
_Vec3_Add1($17,$1,-0.03125);
$18 = ((($0)) + 24|0);
;HEAP32[$18>>2]=HEAP32[$1>>2]|0;HEAP32[$18+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$18+8>>2]=HEAP32[$1+8>>2]|0;
$19 = ((($0)) + 36|0);
_Vec3_Add1($19,$1,0.03125);
$20 = ((($0)) + 48|0);
_Vec3_Add1($20,$1,3.0);
$$01719 = 0;$$020 = $2;
while(1) {
$21 = ($$01719*3)|0;
$22 = (16 + ($21)|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$25 = (($0) + (($24*12)|0)|0);
$26 = HEAP32[$25>>2]|0;
HEAP32[$$020>>2] = $26;
$27 = (($21) + 1)|0;
$28 = (16 + ($27)|0);
$29 = HEAP8[$28>>0]|0;
$30 = $29&255;
$31 = (((($0) + (($30*12)|0)|0)) + 4|0);
$32 = HEAP32[$31>>2]|0;
$33 = ((($$020)) + 4|0);
HEAP32[$33>>2] = $32;
$34 = (($21) + 2)|0;
$35 = (16 + ($34)|0);
$36 = HEAP8[$35>>0]|0;
$37 = $36&255;
$38 = (((($0) + (($37*12)|0)|0)) + 8|0);
$39 = HEAP32[$38>>2]|0;
$40 = ((($$020)) + 8|0);
HEAP32[$40>>2] = $39;
$41 = (2)?($$01719 >>> 2):($$01719);
$42 = (10600 + ($41<<2)|0);
$43 = HEAP32[$42>>2]|0;
$44 = ((($$020)) + 12|0);
HEAP32[$44>>2] = $43;
$45 = (($$01719) + 1)|0;
$46 = ((($$020)) + 16|0);
$exitcond = ($45|0)==($16|0);
if ($exitcond) {
break;
} else {
$$01719 = $45;$$020 = $46;
}
}
_Gfx_SetVertexFormat(0);
$47 = HEAP32[142400]|0;
_Gfx_UpdateDynamicVb_IndexedTris($47,$2,$16);
STACKTOP = sp;return;
}
function _Vec3_Add1($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0.0, $11 = 0.0, $12 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = $3 + $2;
HEAPF32[$0>>2] = $4;
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 + $2;
$8 = ((($0)) + 4|0);
HEAPF32[$8>>2] = $7;
$9 = ((($1)) + 8|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 + $2;
$12 = ((($0)) + 8|0);
HEAPF32[$12>>2] = $11;
return;
}
function _Bitmap_UNSAFE_CopyBlock($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $$02628 = 0, $$027 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $7 = 0;
var $8 = 0, $9 = 0, $exitcond = 0, $exitcond32 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = ($6|0)>(0);
if (!($7)) {
return;
}
$8 = HEAP32[$4>>2]|0;
$9 = ((($4)) + 4|0);
$10 = HEAP32[$5>>2]|0;
$11 = ((($5)) + 4|0);
$$02628 = 0;
while(1) {
$12 = (($$02628) + ($1))|0;
$13 = HEAP32[$9>>2]|0;
$14 = Math_imul($13, $12)|0;
$15 = (($8) + ($14<<2)|0);
$16 = (($15) + ($0<<2)|0);
$17 = (($$02628) + ($3))|0;
$18 = HEAP32[$11>>2]|0;
$19 = Math_imul($18, $17)|0;
$20 = (($10) + ($19<<2)|0);
$21 = (($20) + ($2<<2)|0);
$$027 = 0;
while(1) {
$22 = (($16) + ($$027<<2)|0);
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + ($$027<<2)|0);
HEAP32[$24>>2] = $23;
$25 = (($$027) + 1)|0;
$exitcond = ($25|0)==($6|0);
if ($exitcond) {
break;
} else {
$$027 = $25;
}
}
$26 = (($$02628) + 1)|0;
$exitcond32 = ($26|0)==($6|0);
if ($exitcond32) {
break;
} else {
$$02628 = $26;
}
}
return;
}
function _Bitmap_Allocate($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4|0);
HEAP32[$3>>2] = $1;
$4 = ((($0)) + 8|0);
HEAP32[$4>>2] = $2;
$5 = Math_imul($2, $1)|0;
$6 = (_Mem_Alloc($5,4,19172)|0);
HEAP32[$0>>2] = $6;
return;
}
function _Bitmap_AllocateClearedPow2($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_Math_NextPowOf2($1)|0);
$4 = (_Math_NextPowOf2($2)|0);
$5 = ((($0)) + 4|0);
HEAP32[$5>>2] = $3;
$6 = ((($0)) + 8|0);
HEAP32[$6>>2] = $4;
$7 = Math_imul($4, $3)|0;
$8 = (_Mem_AllocCleared($7,4,19172)|0);
HEAP32[$0>>2] = $8;
return;
}
function _Png_Detect($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1>>>0)<(8);
if ($2) {
return 0;
}
$6 = HEAP8[$0>>0]|0;
$7 = ($6<<24>>24)==(-119);
if (!($7)) {
return 0;
}
$3 = ((($0)) + 1|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(80);
if (!($5)) {
return 0;
}
$8 = ((($0)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(78);
if (!($10)) {
return 0;
}
$11 = ((($0)) + 3|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(71);
if (!($13)) {
return 0;
}
$14 = ((($0)) + 4|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(13);
if (!($16)) {
return 0;
}
$17 = ((($0)) + 5|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18<<24>>24)==(10);
if (!($19)) {
return 0;
}
$20 = ((($0)) + 6|0);
$21 = HEAP8[$20>>0]|0;
$22 = ($21<<24>>24)==(26);
if ($22) {
$23 = ((($0)) + 7|0);
$24 = HEAP8[$23>>0]|0;
$25 = ($24<<24>>24)==(10);
$spec$select = $25&1;
return ($spec$select|0);
} else {
return 0;
}
return (0)|0;
}
function _Png_Decode($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0180266 = 0, $$0184265 = 0, $$0188264 = 0, $$0190263 = 0, $$0192262 = 0, $$0194237 = 0, $$0195261 = 0, $$0197260 = 0, $$0201312 = 0, $$0204259 = 0, $$0206258 = 0, $$0206258$op = 0, $$0208257 = 0, $$1181 = 0, $$1185243 = 0, $$1189 = 0, $$1191 = 0, $$1193 = 0, $$1196 = 0, $$1198242 = 0;
var $$1202254 = 0, $$1205 = 0, $$1207 = 0, $$1209 = 0, $$2199$lcssa = 0, $$2199236 = 0, $$2203251 = 0, $$3187 = 0, $$3200 = 0, $$5 = 0, $$neg = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0;
var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0;
var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0;
var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0;
var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0;
var $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0;
var $exitcond331 = 0, $or$cond214 = 0, $spec$select = 0, $spec$select211 = 0, $switch$split112D = 0, $switch$split142D = 0, $switch$split2D = 0, $switch$split82D = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 570960|0;
$2 = sp + 525328|0;
$3 = sp + 524304|0;
$4 = sp;
$5 = sp + 570944|0;
$6 = sp + 526208|0;
$7 = sp + 526152|0;
$8 = sp + 526096|0;
$9 = sp + 570948|0;
$10 = ((($0)) + 4|0);
HEAP32[$10>>2] = 0;
$11 = ((($0)) + 8|0);
HEAP32[$11>>2] = 0;
HEAP32[$0>>2] = 0;
$12 = (_Stream_Read($1,$2,8)|0);
$13 = ($12|0)==(0);
if (!($13)) {
$$5 = $12;
STACKTOP = sp;return ($$5|0);
}
$14 = (_Png_Detect($2,8)|0);
$15 = ($14<<24>>24)==(0);
if ($15) {
$$5 = -857812962;
STACKTOP = sp;return ($$5|0);
}
$$0201312 = 0;
while(1) {
$16 = (($3) + ($$0201312<<2)|0);
HEAP32[$16>>2] = -16777216;
$17 = (($$0201312) + 1)|0;
$exitcond331 = ($17|0)==(256);
if ($exitcond331) {
break;
} else {
$$0201312 = $17;
}
}
_Inflate_MakeStream($7,$6,$1);
_ZLibHeader_Init($9);
$18 = (_Stream_Read($1,$2,8)|0);
$19 = ($18|0)==(0);
if (!($19)) {
$$5 = $18;
STACKTOP = sp;return ($$5|0);
}
$20 = ((($2)) + 4|0);
$21 = ((($1)) + 12|0);
$22 = ((($1)) + 12|0);
$23 = ((($6)) + 28|0);
$24 = ((($9)) + 1|0);
$25 = ((($2)) + 2|0);
$26 = ((($2)) + 8|0);
$27 = ((($2)) + 9|0);
$28 = ((($2)) + 10|0);
$29 = ((($2)) + 11|0);
$30 = ((($2)) + 12|0);
$$0180266 = 0;$$0184265 = 0;$$0188264 = 0;$$0190263 = 0;$$0192262 = 0;$$0195261 = 0;$$0197260 = 0;$$0204259 = -16777216;$$0206258 = 0;$$0208257 = 0;
L13: while(1) {
$33 = (_Stream_GetU32_BE($2)|0);
$34 = (_Stream_GetU32_BE($20)|0);
$switch$split2D = ($34|0)<(1229472850);
L15: do {
if ($switch$split2D) {
$switch$split82D = ($34|0)<(1229278788);
if (!($switch$split82D)) {
switch ($34|0) {
case 1229278788: {
label = 51;
break L13;
break;
}
default: {
label = 55;
break L15;
}
}
}
switch ($34|0) {
case 1229209940: {
break;
}
default: {
label = 55;
break L15;
}
}
_Stream_ReadonlyPortion($8,$1,$33);
HEAP32[$23>>2] = $8;
$134 = HEAP8[$24>>0]|0;
$135 = ($134<<24>>24)==(0);
if ($135) {
while(1) {
$138 = (_ZLibHeader_Read($8,$9)|0);
$139 = ($138|0)==(0);
if (!($139)) {
$$5 = $138;
label = 57;
break L13;
}
$136 = HEAP8[$24>>0]|0;
$137 = ($136<<24>>24)==(0);
if (!($137)) {
break;
}
}
}
$140 = HEAP32[$0>>2]|0;
$141 = ($140|0)==(0|0);
if ($141) {
$$5 = -857812950;
label = 57;
break L13;
}
$142 = HEAP32[$11>>2]|0;
$143 = ($$0197260>>>0)<($142>>>0);
if ($143) {
$$0206258$op = (0 - ($$0206258))|0;
$$1185243 = $$0184265;$$1198242 = $$0197260;
while(1) {
$144 = (($$1185243>>>0) / ($$0206258>>>0))&-1;
$145 = (($$0188264) - ($$1185243))|0;
$146 = ($$0206258>>>0)>($$1185243>>>0);
$$neg = $146 ? $$0206258$op : 0;
$spec$select = (($145) + ($$neg))|0;
$147 = HEAP32[$7>>2]|0;
$148 = (($4) + ($$1185243)|0);
$149 = (FUNCTION_TABLE_iiiii[$147 & 63]($7,$148,$spec$select,$5)|0);
$150 = ($149|0)==(0);
if (!($150)) {
$$5 = $149;
label = 57;
break L13;
}
$151 = HEAP32[$5>>2]|0;
$152 = ($151|0)==(0);
if ($152) {
$$1181 = $$0180266;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $$0204259;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$1185243;$$3200 = $$1198242;
break L15;
}
$153 = (($151) + ($$1185243))|0;
$154 = (($153>>>0) / ($$0206258>>>0))&-1;
$155 = ($153|0)==($$0188264|0);
$spec$select211 = $155 ? 0 : $153;
$156 = ($144>>>0)<($154>>>0);
L33: do {
if ($156) {
$$0194237 = $144;$$2199236 = $$1198242;
while(1) {
$157 = HEAP32[$11>>2]|0;
$158 = ($$2199236>>>0)<($157>>>0);
if (!($158)) {
$$2199$lcssa = $$2199236;
break L33;
}
$159 = Math_imul($$0194237, $$0206258)|0;
$160 = (($4) + ($159)|0);
$161 = HEAP8[$160>>0]|0;
$162 = ($161&255)>(4);
if ($162) {
$$5 = -857812949;
label = 57;
break L13;
}
$163 = ($$0194237|0)==(0);
$164 = $163 ? $$0190263 : $$0194237;
$165 = (($164) + -1)|0;
$166 = Math_imul($165, $$0206258)|0;
$167 = (($4) + ($166)|0);
$168 = ((($160)) + 1|0);
$169 = ((($167)) + 1|0);
_Png_Reconstruct($161,$$0192262,$168,$169,$$0208257);
$170 = HEAP32[$10>>2]|0;
$171 = HEAP32[$0>>2]|0;
$172 = Math_imul($170, $$2199236)|0;
$173 = (($171) + ($172<<2)|0);
FUNCTION_TABLE_viiii[$$0195261 & 31]($170,$3,$168,$173);
$174 = (($$0194237) + 1)|0;
$175 = (($$2199236) + 1)|0;
$176 = ($174>>>0)<($154>>>0);
if ($176) {
$$0194237 = $174;$$2199236 = $175;
} else {
$$2199$lcssa = $175;
break;
}
}
} else {
$$2199$lcssa = $$1198242;
}
} while(0);
$177 = HEAP32[$11>>2]|0;
$178 = ($$2199$lcssa>>>0)<($177>>>0);
if ($178) {
$$1185243 = $spec$select211;$$1198242 = $$2199$lcssa;
} else {
$$1181 = $$0180266;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $$0204259;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $spec$select211;$$3200 = $$2199$lcssa;
break;
}
}
} else {
$$1181 = $$0180266;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $$0204259;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$0184265;$$3200 = $$0197260;
}
} else {
$switch$split112D = ($34|0)<(1347179589);
if ($switch$split112D) {
switch ($34|0) {
case 1229472850: {
break;
}
default: {
label = 55;
break L15;
}
}
$35 = ($33|0)==(13);
if (!($35)) {
$$5 = -857812961;
label = 57;
break L13;
}
$36 = (_Stream_Read($1,$2,13)|0);
$37 = ($36|0)==(0);
if (!($37)) {
$$5 = $36;
label = 57;
break L13;
}
$38 = (_Stream_GetU32_BE($2)|0);
HEAP32[$10>>2] = $38;
$39 = (_Stream_GetU32_BE($20)|0);
HEAP32[$11>>2] = $39;
$40 = HEAP32[$10>>2]|0;
$41 = ($40>>>0)>(32768);
if ($41) {
$$5 = -857812960;
label = 57;
break L13;
}
$42 = ($39>>>0)>(32768);
if ($42) {
$$5 = -857812959;
label = 57;
break L13;
}
$43 = Math_imul($40, $39)|0;
$44 = (_Mem_TryAlloc($43,4)|0);
HEAP32[$0>>2] = $44;
$45 = ($44|0)==(0|0);
if ($45) {
$$5 = -857812988;
label = 57;
break L13;
}
$46 = HEAP8[$26>>0]|0;
$47 = HEAP8[$27>>0]|0;
$48 = (_Png_GetExpander($47,$46)|0);
$49 = ($48|0)==(0|0);
if ($49) {
$$5 = -857812958;
label = 57;
break L13;
}
$50 = HEAP8[$28>>0]|0;
$51 = ($50<<24>>24)==(0);
if (!($51)) {
$$5 = -857812957;
label = 57;
break L13;
}
$52 = HEAP8[$29>>0]|0;
$53 = ($52<<24>>24)==(0);
if (!($53)) {
$$5 = -857812956;
label = 57;
break L13;
}
$54 = HEAP8[$30>>0]|0;
$55 = ($54<<24>>24)==(0);
if (!($55)) {
$$5 = -857812955;
label = 57;
break L13;
}
$56 = $47&255;
$57 = (64 + ($56<<2)|0);
$58 = HEAP32[$57>>2]|0;
$59 = $46&255;
$60 = Math_imul($58, $59)|0;
$61 = (($60) + 7)|0;
$62 = (3)?($61 >>> 3):($61);
$63 = $62&255;
$64 = HEAP32[$10>>2]|0;
$65 = Math_imul($60, $64)|0;
$66 = (($65) + 7)|0;
$67 = (3)?($66 >>> 3):($66);
$68 = (($67) + 1)|0;
_Mem_Set($4,0,$68);
$69 = (524290 / ($68>>>0))&-1;
$70 = Math_imul($68, $69)|0;
$$1181 = $47;$$1189 = $70;$$1191 = $69;$$1193 = $63;$$1196 = $48;$$1205 = $$0204259;$$1207 = $68;$$1209 = $67;$$3187 = $68;$$3200 = $$0197260;
break;
}
$switch$split142D = ($34|0)<(1951551059);
if ($switch$split142D) {
switch ($34|0) {
case 1347179589: {
break;
}
default: {
label = 55;
break L15;
}
}
$71 = ($33>>>0)<(769);
$72 = (($33>>>0) % 3)&-1;
$73 = ($72|0)==(0);
$or$cond214 = $71 & $73;
if (!($or$cond214)) {
$$5 = -857812954;
label = 57;
break L13;
}
$74 = (_Stream_Read($1,$2,$33)|0);
$75 = ($74|0)==(0);
if (!($75)) {
$$5 = $74;
label = 57;
break L13;
}
$76 = ($33|0)==(0);
if ($76) {
$$1181 = $$0180266;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $$0204259;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$0184265;$$3200 = $$0197260;
break;
}
$$1202254 = 0;
while(1) {
$77 = (($$1202254>>>0) / 3)&-1;
$78 = (($3) + ($77<<2)|0);
$79 = HEAP32[$78>>2]|0;
$80 = $79 & -16777216;
$81 = (($2) + ($$1202254)|0);
$82 = HEAP8[$81>>0]|0;
$83 = $82&255;
$84 = $80 | $83;
$85 = (($$1202254) + 1)|0;
$86 = (($2) + ($85)|0);
$87 = HEAP8[$86>>0]|0;
$88 = $87&255;
$89 = $88 << 8;
$90 = $89 | $84;
$91 = (($$1202254) + 2)|0;
$92 = (($2) + ($91)|0);
$93 = HEAP8[$92>>0]|0;
$94 = $93&255;
$95 = $94 << 16;
$96 = $95 | $90;
HEAP32[$78>>2] = $96;
$97 = (($$1202254) + 3)|0;
$98 = ($97>>>0)<($33>>>0);
if ($98) {
$$1202254 = $97;
} else {
$$1181 = $$0180266;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $$0204259;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$0184265;$$3200 = $$0197260;
break L15;
}
}
}
switch ($34|0) {
case 1951551059: {
break;
}
default: {
label = 55;
break L15;
}
}
switch ($$0180266<<24>>24) {
case 0: {
$99 = ($33|0)==(2);
if (!($99)) {
$$5 = -857812953;
label = 57;
break L13;
}
$100 = (_Stream_Read($1,$2,$33)|0);
$101 = ($100|0)==(0);
if (!($101)) {
$$5 = $100;
label = 57;
break L13;
}
$102 = HEAP8[$2>>0]|0;
$103 = $102&255;
$104 = $103 << 8;
$105 = $104 | $103;
$106 = $103 << 16;
$107 = $105 | $106;
$$1181 = 0;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $107;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$0184265;$$3200 = $$0197260;
break L15;
break;
}
case 3: {
$108 = ($33>>>0)>(256);
if ($108) {
$$5 = -857812953;
label = 57;
break L13;
}
$109 = (_Stream_Read($1,$2,$33)|0);
$110 = ($109|0)==(0);
if (!($110)) {
$$5 = $109;
label = 57;
break L13;
}
$111 = ($33|0)==(0);
if ($111) {
$$1181 = 3;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $$0204259;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$0184265;$$3200 = $$0197260;
break L15;
}
$$2203251 = 0;
while(1) {
$112 = (($3) + ($$2203251<<2)|0);
$113 = HEAP32[$112>>2]|0;
$114 = $113 & 16777215;
$115 = (($2) + ($$2203251)|0);
$116 = HEAP8[$115>>0]|0;
$117 = $116&255;
$118 = $117 << 24;
$119 = $118 | $114;
HEAP32[$112>>2] = $119;
$120 = (($$2203251) + 1)|0;
$exitcond = ($120|0)==($33|0);
if ($exitcond) {
$$1181 = $$0180266;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $$0204259;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$0184265;$$3200 = $$0197260;
break;
} else {
$$2203251 = $120;
}
}
break;
}
case 2: {
$121 = ($33|0)==(6);
if (!($121)) {
$$5 = -857812953;
label = 57;
break L13;
}
$122 = (_Stream_Read($1,$2,$33)|0);
$123 = ($122|0)==(0);
if (!($123)) {
$$5 = $122;
label = 57;
break L13;
}
$124 = HEAP8[$2>>0]|0;
$125 = $124&255;
$126 = HEAP8[$25>>0]|0;
$127 = $126&255;
$128 = $127 << 8;
$129 = $128 | $125;
$130 = HEAP8[$20>>0]|0;
$131 = $130&255;
$132 = $131 << 16;
$133 = $129 | $132;
$$1181 = 2;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $133;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$0184265;$$3200 = $$0197260;
break L15;
break;
}
default: {
$$5 = -857812952;
label = 57;
break L13;
}
}
}
} while(0);
if ((label|0) == 55) {
label = 0;
$184 = HEAP32[$21>>2]|0;
$185 = (FUNCTION_TABLE_iii[$184 & 127]($1,$33)|0);
$186 = ($185|0)==(0);
if ($186) {
$$1181 = $$0180266;$$1189 = $$0188264;$$1191 = $$0190263;$$1193 = $$0192262;$$1196 = $$0195261;$$1205 = $$0204259;$$1207 = $$0206258;$$1209 = $$0208257;$$3187 = $$0184265;$$3200 = $$0197260;
} else {
$$5 = $185;
label = 57;
break;
}
}
$187 = HEAP32[$22>>2]|0;
$188 = (FUNCTION_TABLE_iii[$187 & 127]($1,4)|0);
$189 = ($188|0)==(0);
if (!($189)) {
$$5 = $188;
label = 57;
break;
}
$31 = (_Stream_Read($1,$2,8)|0);
$32 = ($31|0)==(0);
if ($32) {
$$0180266 = $$1181;$$0184265 = $$3187;$$0188264 = $$1189;$$0190263 = $$1191;$$0192262 = $$1193;$$0195261 = $$1196;$$0197260 = $$3200;$$0204259 = $$1205;$$0206258 = $$1207;$$0208257 = $$1209;
} else {
$$5 = $31;
label = 57;
break;
}
}
if ((label|0) == 51) {
$179 = ($33|0)==(0);
if (!($179)) {
$$5 = -857812951;
STACKTOP = sp;return ($$5|0);
}
$180 = ($$0204259>>>0)>(16777215);
if (!($180)) {
_ComputeTransparency($0,$$0204259);
}
$181 = HEAP32[$0>>2]|0;
$182 = ($181|0)==(0|0);
$183 = $182 ? -857812950 : 0;
$$5 = $183;
STACKTOP = sp;return ($$5|0);
}
else if ((label|0) == 57) {
STACKTOP = sp;return ($$5|0);
}
return (0)|0;
}
function _Png_GetExpander($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $switch$select = 0, $switch$select11 = 0, $switch$select13 = 0, $switch$select15 = 0, $switch$select7 = 0, $switch$select9 = 0, $switch$selectcmp = 0, $switch$selectcmp10 = 0, $switch$selectcmp12 = 0, $switch$selectcmp14 = 0, $switch$selectcmp6 = 0, $switch$selectcmp8 = 0, label = 0, sp = 0;
sp = STACKTOP;
L1: do {
switch ($0<<24>>24) {
case 0: {
switch ($1<<24>>24) {
case 1: {
$$0 = 7;
break L1;
break;
}
case 2: {
$$0 = 8;
break L1;
break;
}
case 4: {
$$0 = 9;
break L1;
break;
}
case 8: {
$$0 = 10;
break L1;
break;
}
case 16: {
$$0 = 11;
break L1;
break;
}
default: {
$$0 = 0;
break L1;
}
}
break;
}
case 2: {
$switch$selectcmp = ($1<<24>>24)==(16);
$switch$select = $switch$selectcmp ? 1 : 0;
$switch$selectcmp6 = ($1<<24>>24)==(8);
$switch$select7 = $switch$selectcmp6 ? 2 : $switch$select;
$$0 = $switch$select7;
break;
}
case 3: {
switch ($1<<24>>24) {
case 1: {
$$0 = 12;
break L1;
break;
}
case 2: {
$$0 = 13;
break L1;
break;
}
case 4: {
$$0 = 14;
break L1;
break;
}
case 8: {
$$0 = 15;
break L1;
break;
}
default: {
$$0 = 0;
break L1;
}
}
break;
}
case 4: {
$switch$selectcmp8 = ($1<<24>>24)==(16);
$switch$select9 = $switch$selectcmp8 ? 3 : 0;
$switch$selectcmp10 = ($1<<24>>24)==(8);
$switch$select11 = $switch$selectcmp10 ? 4 : $switch$select9;
$$0 = $switch$select11;
break;
}
case 6: {
$switch$selectcmp12 = ($1<<24>>24)==(16);
$switch$select13 = $switch$selectcmp12 ? 5 : 0;
$switch$selectcmp14 = ($1<<24>>24)==(8);
$switch$select15 = $switch$selectcmp14 ? 6 : $switch$select13;
$$0 = $switch$select15;
break;
}
default: {
$$0 = 0;
}
}
} while(0);
return ($$0|0);
}
function _Png_Reconstruct($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$08595 = 0, $$096 = 0, $$186102 = 0, $$199 = 0, $$2$lcssa = 0, $$2106 = 0, $$28791 = 0, $$3103 = 0, $$4$lcssa = 0, $$493 = 0, $$592 = 0, $$sink126 = 0, $$sink127 = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0;
var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0;
var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0;
var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond115 = 0, $exitcond116 = 0, $exitcond117 = 0, $exitcond118 = 0, $exitcond119 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<24>>24) {
case 4: {
$57 = $1&255;
$58 = ($1<<24>>24)==(0);
if ($58) {
$$4$lcssa = 0;
} else {
$$493 = 0;
while(1) {
$59 = (($3) + ($$493)|0);
$60 = HEAP8[$59>>0]|0;
$61 = $60&255;
$62 = (($2) + ($$493)|0);
$63 = HEAP8[$62>>0]|0;
$64 = $63&255;
$65 = (($64) + ($61))|0;
$66 = $65&255;
HEAP8[$62>>0] = $66;
$67 = (($$493) + 1)|0;
$exitcond115 = ($67|0)==($57|0);
if ($exitcond115) {
$$4$lcssa = $57;
break;
} else {
$$493 = $67;
}
}
}
$68 = ($$4$lcssa>>>0)<($4>>>0);
if (!($68)) {
return;
}
$69 = (($4) - ($$4$lcssa))|0;
$$28791 = 0;$$592 = $$4$lcssa;
while(1) {
$70 = (($2) + ($$28791)|0);
$71 = HEAP8[$70>>0]|0;
$72 = (($3) + ($$592)|0);
$73 = HEAP8[$72>>0]|0;
$74 = (($3) + ($$28791)|0);
$75 = HEAP8[$74>>0]|0;
$76 = $71&255;
$77 = $73&255;
$78 = (($77) + ($76))|0;
$79 = $75&255;
$80 = (($78) - ($79))|0;
$81 = (($80) - ($76))|0;
$82 = (_Math_AbsI($81)|0);
$83 = (($80) - ($77))|0;
$84 = (_Math_AbsI($83)|0);
$85 = (($80) - ($79))|0;
$86 = (_Math_AbsI($85)|0);
$87 = ($82|0)>($84|0);
$88 = ($82|0)>($86|0);
$or$cond = $87 | $88;
do {
if ($or$cond) {
$93 = ($84|0)>($86|0);
$94 = (($2) + ($$592)|0);
$95 = HEAP8[$94>>0]|0;
$96 = $95&255;
if ($93) {
$98 = (($96) + ($79))|0;
$$sink126 = $94;$$sink127 = $98;
break;
} else {
$97 = (($96) + ($77))|0;
$$sink126 = $94;$$sink127 = $97;
break;
}
} else {
$89 = (($2) + ($$592)|0);
$90 = HEAP8[$89>>0]|0;
$91 = $90&255;
$92 = (($91) + ($76))|0;
$$sink126 = $89;$$sink127 = $92;
}
} while(0);
$99 = $$sink127&255;
HEAP8[$$sink126>>0] = $99;
$100 = (($$592) + 1)|0;
$101 = (($$28791) + 1)|0;
$exitcond = ($101|0)==($69|0);
if ($exitcond) {
break;
} else {
$$28791 = $101;$$592 = $100;
}
}
return;
break;
}
case 1: {
$5 = $1&255;
$6 = ($5>>>0)<($4>>>0);
if (!($6)) {
return;
}
$7 = (($4) - ($5))|0;
$$08595 = 0;$$096 = $5;
while(1) {
$8 = (($2) + ($$08595)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = (($2) + ($$096)|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = (($13) + ($10))|0;
$15 = $14&255;
HEAP8[$11>>0] = $15;
$16 = (($$096) + 1)|0;
$17 = (($$08595) + 1)|0;
$exitcond116 = ($17|0)==($7|0);
if ($exitcond116) {
break;
} else {
$$08595 = $17;$$096 = $16;
}
}
return;
break;
}
case 2: {
$18 = ($4|0)==(0);
if ($18) {
return;
}
$$199 = 0;
while(1) {
$19 = (($3) + ($$199)|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = (($2) + ($$199)|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$25 = (($24) + ($21))|0;
$26 = $25&255;
HEAP8[$22>>0] = $26;
$27 = (($$199) + 1)|0;
$exitcond117 = ($27|0)==($4|0);
if ($exitcond117) {
break;
} else {
$$199 = $27;
}
}
return;
break;
}
case 3: {
$28 = $1&255;
$29 = ($1<<24>>24)==(0);
if ($29) {
$$2$lcssa = 0;
} else {
$$2106 = 0;
while(1) {
$30 = (($3) + ($$2106)|0);
$31 = HEAP8[$30>>0]|0;
$32 = $31&255;
$33 = (1)?($32 >>> 1):($32);
$34 = (($2) + ($$2106)|0);
$35 = HEAP8[$34>>0]|0;
$36 = $35&255;
$37 = (($33) + ($36))|0;
$38 = $37&255;
HEAP8[$34>>0] = $38;
$39 = (($$2106) + 1)|0;
$exitcond119 = ($39|0)==($28|0);
if ($exitcond119) {
$$2$lcssa = $28;
break;
} else {
$$2106 = $39;
}
}
}
$40 = ($$2$lcssa>>>0)<($4>>>0);
if (!($40)) {
return;
}
$41 = (($4) - ($$2$lcssa))|0;
$$186102 = 0;$$3103 = $$2$lcssa;
while(1) {
$42 = (($3) + ($$3103)|0);
$43 = HEAP8[$42>>0]|0;
$44 = $43&255;
$45 = (($2) + ($$186102)|0);
$46 = HEAP8[$45>>0]|0;
$47 = $46&255;
$48 = (($47) + ($44))|0;
$49 = (1)?($48 >>> 1):($48);
$50 = (($2) + ($$3103)|0);
$51 = HEAP8[$50>>0]|0;
$52 = $51&255;
$53 = (($49) + ($52))|0;
$54 = $53&255;
HEAP8[$50>>0] = $54;
$55 = (($$3103) + 1)|0;
$56 = (($$186102) + 1)|0;
$exitcond118 = ($56|0)==($41|0);
if ($exitcond118) {
break;
} else {
$$186102 = $56;$$3103 = $55;
}
}
return;
break;
}
default: {
return;
}
}
}
function _ComputeTransparency($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$ = 0, $$03335 = 0, $$034 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $exitcond = 0, $exitcond39 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1 & 16777215;
$3 = ((($0)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)>(0);
if (!($7)) {
return;
}
$8 = HEAP32[$0>>2]|0;
$9 = ($4|0)>(0);
$$03335 = 0;
while(1) {
$10 = HEAP32[$3>>2]|0;
$11 = Math_imul($10, $$03335)|0;
$12 = (($8) + ($11<<2)|0);
if ($9) {
$$034 = 0;
while(1) {
$13 = (($12) + ($$034<<2)|0);
$14 = HEAP32[$13>>2]|0;
$15 = $14 & 16777215;
$16 = ($15|0)==($2|0);
$$ = $16 ? $2 : $14;
HEAP32[$13>>2] = $$;
$17 = (($$034) + 1)|0;
$exitcond = ($17|0)==($4|0);
if ($exitcond) {
break;
} else {
$$034 = $17;
}
}
}
$18 = (($$03335) + 1)|0;
$exitcond39 = ($18|0)==($6|0);
if ($exitcond39) {
break;
} else {
$$03335 = $18;
}
}
return;
}
function _Png_Expand_RGB_16($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$01415 = 0, $$016 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if (!($4)) {
return;
}
$$01415 = 0;$$016 = 0;
while(1) {
$5 = (($2) + ($$016)|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = (($$016) + 2)|0;
$9 = (($2) + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $11 << 8;
$13 = (($$016) + 4)|0;
$14 = (($2) + ($13)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 16;
$18 = $12 | $7;
$19 = $18 | $17;
$20 = $19 | -16777216;
$21 = (($3) + ($$01415<<2)|0);
HEAP32[$21>>2] = $20;
$22 = (($$01415) + 1)|0;
$23 = (($$016) + 6)|0;
$exitcond = ($22|0)==($0|0);
if ($exitcond) {
break;
} else {
$$01415 = $22;$$016 = $23;
}
}
return;
}
function _Png_Expand_RGB_8($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$050$lcssa = 0, $$05054 = 0, $$055 = 0, $$15152 = 0, $$153 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0;
var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0;
var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0;
var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $0 & -4;
$5 = ($4|0)>(0);
if ($5) {
$6 = (($4) + -1)|0;
$7 = (2)?($6 >>> 2):($6);
$8 = ($7*12)|0;
$$05054 = 0;$$055 = 0;
while(1) {
$9 = (($2) + ($$055)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $$055 | 1;
$13 = (($2) + ($12)|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = $15 << 8;
$17 = $$055 | 2;
$18 = (($2) + ($17)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
$21 = $20 << 16;
$22 = $16 | $11;
$23 = $22 | $21;
$24 = $23 | -16777216;
$25 = (($3) + ($$05054<<2)|0);
HEAP32[$25>>2] = $24;
$26 = $$055 | 3;
$27 = (($2) + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = $28&255;
$30 = (($26) + 1)|0;
$31 = (($2) + ($30)|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32&255;
$34 = $33 << 8;
$35 = (($26) + 2)|0;
$36 = (($2) + ($35)|0);
$37 = HEAP8[$36>>0]|0;
$38 = $37&255;
$39 = $38 << 16;
$40 = $34 | $29;
$41 = $40 | $39;
$42 = $41 | -16777216;
$43 = $$05054 | 1;
$44 = (($3) + ($43<<2)|0);
HEAP32[$44>>2] = $42;
$45 = (($$055) + 6)|0;
$46 = (($2) + ($45)|0);
$47 = HEAP8[$46>>0]|0;
$48 = $47&255;
$49 = (($$055) + 7)|0;
$50 = (($2) + ($49)|0);
$51 = HEAP8[$50>>0]|0;
$52 = $51&255;
$53 = $52 << 8;
$54 = (($$055) + 8)|0;
$55 = (($2) + ($54)|0);
$56 = HEAP8[$55>>0]|0;
$57 = $56&255;
$58 = $57 << 16;
$59 = $53 | $48;
$60 = $59 | $58;
$61 = $60 | -16777216;
$62 = $$05054 | 2;
$63 = (($3) + ($62<<2)|0);
HEAP32[$63>>2] = $61;
$64 = (($$055) + 9)|0;
$65 = (($2) + ($64)|0);
$66 = HEAP8[$65>>0]|0;
$67 = $66&255;
$68 = (($$055) + 10)|0;
$69 = (($2) + ($68)|0);
$70 = HEAP8[$69>>0]|0;
$71 = $70&255;
$72 = $71 << 8;
$73 = (($$055) + 11)|0;
$74 = (($2) + ($73)|0);
$75 = HEAP8[$74>>0]|0;
$76 = $75&255;
$77 = $76 << 16;
$78 = $72 | $67;
$79 = $78 | $77;
$80 = $79 | -16777216;
$81 = $$05054 | 3;
$82 = (($3) + ($81<<2)|0);
HEAP32[$82>>2] = $80;
$83 = (($$05054) + 4)|0;
$84 = (($$055) + 12)|0;
$85 = ($83|0)<($4|0);
if ($85) {
$$05054 = $83;$$055 = $84;
} else {
break;
}
}
$86 = $0 & -4;
$87 = (($8) + 12)|0;
$$0$lcssa = $87;$$050$lcssa = $86;
} else {
$$0$lcssa = 0;$$050$lcssa = 0;
}
$88 = ($$050$lcssa|0)<($0|0);
if (!($88)) {
return;
}
$$15152 = $$050$lcssa;$$153 = $$0$lcssa;
while(1) {
$89 = (($2) + ($$153)|0);
$90 = HEAP8[$89>>0]|0;
$91 = $90&255;
$92 = (($$153) + 1)|0;
$93 = (($2) + ($92)|0);
$94 = HEAP8[$93>>0]|0;
$95 = $94&255;
$96 = $95 << 8;
$97 = (($$153) + 2)|0;
$98 = (($2) + ($97)|0);
$99 = HEAP8[$98>>0]|0;
$100 = $99&255;
$101 = $100 << 16;
$102 = $96 | $91;
$103 = $102 | $101;
$104 = $103 | -16777216;
$105 = (($3) + ($$15152<<2)|0);
HEAP32[$105>>2] = $104;
$106 = (($$15152) + 1)|0;
$107 = (($$153) + 3)|0;
$exitcond = ($106|0)==($0|0);
if ($exitcond) {
break;
} else {
$$15152 = $106;$$153 = $107;
}
}
return;
}
function _Png_Expand_GRAYSCALE_A_16($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$012 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if (!($4)) {
return;
}
$$012 = 0;
while(1) {
$5 = $$012 << 2;
$6 = (($2) + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $8 << 8;
$10 = $9 | $8;
$11 = $8 << 16;
$12 = $10 | $11;
$13 = $5 | 2;
$14 = (($2) + ($13)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 24;
$18 = $12 | $17;
$19 = (($3) + ($$012<<2)|0);
HEAP32[$19>>2] = $18;
$20 = (($$012) + 1)|0;
$exitcond = ($20|0)==($0|0);
if ($exitcond) {
break;
} else {
$$012 = $20;
}
}
return;
}
function _Png_Expand_GRAYSCALE_A_8($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$055$lcssa = 0, $$05559 = 0, $$060 = 0, $$15657 = 0, $$158 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $0 & -4;
$5 = ($4|0)>(0);
if ($5) {
$6 = (($4) + 2147483647)|0;
$7 = (2)?($6 >>> 2):($6);
$8 = $7 << 3;
$$05559 = 0;$$060 = 0;
while(1) {
$9 = (($2) + ($$060)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $11 << 8;
$13 = $12 | $11;
$14 = $11 << 16;
$15 = $13 | $14;
$16 = $$060 | 1;
$17 = (($2) + ($16)|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18&255;
$20 = $19 << 24;
$21 = $15 | $20;
$22 = (($3) + ($$05559<<2)|0);
HEAP32[$22>>2] = $21;
$23 = $$060 | 2;
$24 = (($2) + ($23)|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25&255;
$27 = $26 << 8;
$28 = $27 | $26;
$29 = $26 << 16;
$30 = $28 | $29;
$31 = $$060 | 3;
$32 = (($2) + ($31)|0);
$33 = HEAP8[$32>>0]|0;
$34 = $33&255;
$35 = $34 << 24;
$36 = $30 | $35;
$37 = $$05559 | 1;
$38 = (($3) + ($37<<2)|0);
HEAP32[$38>>2] = $36;
$39 = $$060 | 4;
$40 = (($2) + ($39)|0);
$41 = HEAP8[$40>>0]|0;
$42 = $41&255;
$43 = $42 << 8;
$44 = $43 | $42;
$45 = $42 << 16;
$46 = $44 | $45;
$47 = $$060 | 5;
$48 = (($2) + ($47)|0);
$49 = HEAP8[$48>>0]|0;
$50 = $49&255;
$51 = $50 << 24;
$52 = $46 | $51;
$53 = $$05559 | 2;
$54 = (($3) + ($53<<2)|0);
HEAP32[$54>>2] = $52;
$55 = $$060 | 6;
$56 = (($2) + ($55)|0);
$57 = HEAP8[$56>>0]|0;
$58 = $57&255;
$59 = $58 << 8;
$60 = $59 | $58;
$61 = $58 << 16;
$62 = $60 | $61;
$63 = $$060 | 7;
$64 = (($2) + ($63)|0);
$65 = HEAP8[$64>>0]|0;
$66 = $65&255;
$67 = $66 << 24;
$68 = $62 | $67;
$69 = $$05559 | 3;
$70 = (($3) + ($69<<2)|0);
HEAP32[$70>>2] = $68;
$71 = (($$05559) + 4)|0;
$72 = (($$060) + 8)|0;
$73 = ($71|0)<($4|0);
if ($73) {
$$05559 = $71;$$060 = $72;
} else {
break;
}
}
$74 = $0 & -4;
$75 = (($8) + 8)|0;
$$0$lcssa = $75;$$055$lcssa = $74;
} else {
$$0$lcssa = 0;$$055$lcssa = 0;
}
$76 = ($$055$lcssa|0)<($0|0);
if (!($76)) {
return;
}
$$15657 = $$055$lcssa;$$158 = $$0$lcssa;
while(1) {
$77 = (($2) + ($$158)|0);
$78 = HEAP8[$77>>0]|0;
$79 = $78&255;
$80 = $79 << 8;
$81 = $80 | $79;
$82 = $79 << 16;
$83 = $81 | $82;
$84 = $$158 | 1;
$85 = (($2) + ($84)|0);
$86 = HEAP8[$85>>0]|0;
$87 = $86&255;
$88 = $87 << 24;
$89 = $83 | $88;
$90 = (($3) + ($$15657<<2)|0);
HEAP32[$90>>2] = $89;
$91 = (($$15657) + 1)|0;
$92 = (($$158) + 2)|0;
$exitcond = ($91|0)==($0|0);
if ($exitcond) {
break;
} else {
$$15657 = $91;$$158 = $92;
}
}
return;
}
function _Png_Expand_RGB_A_16($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$01617 = 0, $$018 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if (!($4)) {
return;
}
$$01617 = 0;$$018 = 0;
while(1) {
$5 = (($2) + ($$018)|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = $$018 | 2;
$9 = (($2) + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $11 << 8;
$13 = $12 | $7;
$14 = $$018 | 4;
$15 = (($2) + ($14)|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = $17 << 16;
$19 = $13 | $18;
$20 = $$018 | 6;
$21 = (($2) + ($20)|0);
$22 = HEAP8[$21>>0]|0;
$23 = $22&255;
$24 = $23 << 24;
$25 = $19 | $24;
$26 = (($3) + ($$01617<<2)|0);
HEAP32[$26>>2] = $25;
$27 = (($$01617) + 1)|0;
$28 = (($$018) + 8)|0;
$exitcond = ($27|0)==($0|0);
if ($exitcond) {
break;
} else {
$$01617 = $27;$$018 = $28;
}
}
return;
}
function _Png_Expand_RGB_A_8($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$060$lcssa = 0, $$06064 = 0, $$065 = 0, $$16162 = 0, $$163 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0;
var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0;
var $130 = 0, $131 = 0, $132 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $0 & -4;
$5 = ($4|0)>(0);
if ($5) {
$6 = (($4) + 1073741823)|0;
$7 = (2)?($6 >>> 2):($6);
$8 = $7 << 4;
$$06064 = 0;$$065 = 0;
while(1) {
$9 = (($2) + ($$065)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $$065 | 1;
$13 = (($2) + ($12)|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = $15 << 8;
$17 = $16 | $11;
$18 = $$065 | 2;
$19 = (($2) + ($18)|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $21 << 16;
$23 = $17 | $22;
$24 = $$065 | 3;
$25 = (($2) + ($24)|0);
$26 = HEAP8[$25>>0]|0;
$27 = $26&255;
$28 = $27 << 24;
$29 = $23 | $28;
$30 = (($3) + ($$06064<<2)|0);
HEAP32[$30>>2] = $29;
$31 = $$065 | 4;
$32 = (($2) + ($31)|0);
$33 = HEAP8[$32>>0]|0;
$34 = $33&255;
$35 = $$065 | 5;
$36 = (($2) + ($35)|0);
$37 = HEAP8[$36>>0]|0;
$38 = $37&255;
$39 = $38 << 8;
$40 = $39 | $34;
$41 = $$065 | 6;
$42 = (($2) + ($41)|0);
$43 = HEAP8[$42>>0]|0;
$44 = $43&255;
$45 = $44 << 16;
$46 = $40 | $45;
$47 = $$065 | 7;
$48 = (($2) + ($47)|0);
$49 = HEAP8[$48>>0]|0;
$50 = $49&255;
$51 = $50 << 24;
$52 = $46 | $51;
$53 = $$06064 | 1;
$54 = (($3) + ($53<<2)|0);
HEAP32[$54>>2] = $52;
$55 = $$065 | 8;
$56 = (($2) + ($55)|0);
$57 = HEAP8[$56>>0]|0;
$58 = $57&255;
$59 = $$065 | 9;
$60 = (($2) + ($59)|0);
$61 = HEAP8[$60>>0]|0;
$62 = $61&255;
$63 = $62 << 8;
$64 = $63 | $58;
$65 = $$065 | 10;
$66 = (($2) + ($65)|0);
$67 = HEAP8[$66>>0]|0;
$68 = $67&255;
$69 = $68 << 16;
$70 = $64 | $69;
$71 = $$065 | 11;
$72 = (($2) + ($71)|0);
$73 = HEAP8[$72>>0]|0;
$74 = $73&255;
$75 = $74 << 24;
$76 = $70 | $75;
$77 = $$06064 | 2;
$78 = (($3) + ($77<<2)|0);
HEAP32[$78>>2] = $76;
$79 = $$065 | 12;
$80 = (($2) + ($79)|0);
$81 = HEAP8[$80>>0]|0;
$82 = $81&255;
$83 = $$065 | 13;
$84 = (($2) + ($83)|0);
$85 = HEAP8[$84>>0]|0;
$86 = $85&255;
$87 = $86 << 8;
$88 = $87 | $82;
$89 = $$065 | 14;
$90 = (($2) + ($89)|0);
$91 = HEAP8[$90>>0]|0;
$92 = $91&255;
$93 = $92 << 16;
$94 = $88 | $93;
$95 = $$065 | 15;
$96 = (($2) + ($95)|0);
$97 = HEAP8[$96>>0]|0;
$98 = $97&255;
$99 = $98 << 24;
$100 = $94 | $99;
$101 = $$06064 | 3;
$102 = (($3) + ($101<<2)|0);
HEAP32[$102>>2] = $100;
$103 = (($$06064) + 4)|0;
$104 = (($$065) + 16)|0;
$105 = ($103|0)<($4|0);
if ($105) {
$$06064 = $103;$$065 = $104;
} else {
break;
}
}
$106 = $0 & -4;
$107 = (($8) + 16)|0;
$$0$lcssa = $107;$$060$lcssa = $106;
} else {
$$0$lcssa = 0;$$060$lcssa = 0;
}
$108 = ($$060$lcssa|0)<($0|0);
if (!($108)) {
return;
}
$$16162 = $$060$lcssa;$$163 = $$0$lcssa;
while(1) {
$109 = (($2) + ($$163)|0);
$110 = HEAP8[$109>>0]|0;
$111 = $110&255;
$112 = $$163 | 1;
$113 = (($2) + ($112)|0);
$114 = HEAP8[$113>>0]|0;
$115 = $114&255;
$116 = $115 << 8;
$117 = $116 | $111;
$118 = $$163 | 2;
$119 = (($2) + ($118)|0);
$120 = HEAP8[$119>>0]|0;
$121 = $120&255;
$122 = $121 << 16;
$123 = $117 | $122;
$124 = $$163 | 3;
$125 = (($2) + ($124)|0);
$126 = HEAP8[$125>>0]|0;
$127 = $126&255;
$128 = $127 << 24;
$129 = $123 | $128;
$130 = (($3) + ($$16162<<2)|0);
HEAP32[$130>>2] = $129;
$131 = (($$16162) + 1)|0;
$132 = (($$163) + 4)|0;
$exitcond = ($131|0)==($0|0);
if ($exitcond) {
break;
} else {
$$16162 = $131;$$163 = $132;
}
}
return;
}
function _Png_Expand_INDEXED_8($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$032 = 0, $$131 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $0 & -4;
$5 = ($4|0)>(0);
if ($5) {
$$032 = 0;
while(1) {
$6 = (($2) + ($$032)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = (($1) + ($8<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($3) + ($$032<<2)|0);
HEAP32[$11>>2] = $10;
$12 = $$032 | 1;
$13 = (($2) + ($12)|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = (($1) + ($15<<2)|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($3) + ($12<<2)|0);
HEAP32[$18>>2] = $17;
$19 = $$032 | 2;
$20 = (($2) + ($19)|0);
$21 = HEAP8[$20>>0]|0;
$22 = $21&255;
$23 = (($1) + ($22<<2)|0);
$24 = HEAP32[$23>>2]|0;
$25 = (($3) + ($19<<2)|0);
HEAP32[$25>>2] = $24;
$26 = $$032 | 3;
$27 = (($2) + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = $28&255;
$30 = (($1) + ($29<<2)|0);
$31 = HEAP32[$30>>2]|0;
$32 = (($3) + ($26<<2)|0);
HEAP32[$32>>2] = $31;
$33 = (($$032) + 4)|0;
$34 = ($33|0)<($4|0);
if ($34) {
$$032 = $33;
} else {
break;
}
}
$35 = $0 & -4;
$$0$lcssa = $35;
} else {
$$0$lcssa = 0;
}
$36 = ($$0$lcssa|0)<($0|0);
if (!($36)) {
return;
}
$$131 = $$0$lcssa;
while(1) {
$37 = (($2) + ($$131)|0);
$38 = HEAP8[$37>>0]|0;
$39 = $38&255;
$40 = (($1) + ($39<<2)|0);
$41 = HEAP32[$40>>2]|0;
$42 = (($3) + ($$131<<2)|0);
HEAP32[$42>>2] = $41;
$43 = (($$131) + 1)|0;
$exitcond = ($43|0)==($0|0);
if ($exitcond) {
break;
} else {
$$131 = $43;
}
}
return;
}
function _Png_Expand_INDEXED_4($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$025$lcssa = 0, $$02527 = 0, $$028 = 0, $$126 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond34 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$4 = $0 & -2;
$5 = ($4|0)>(0);
if ($5) {
$6 = (($4) + -1)|0;
$7 = (1)?($6 >>> 1):($6);
$8 = (($7) + 1)|0;
$$02527 = 0;$$028 = 0;
while(1) {
$9 = (($2) + ($$02527)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = (4)?($11 >>> 4):($11);
$13 = (($1) + ($12<<2)|0);
$14 = HEAP32[$13>>2]|0;
$15 = (($3) + ($$028<<2)|0);
HEAP32[$15>>2] = $14;
$16 = $11 & 15;
$17 = (($1) + ($16<<2)|0);
$18 = HEAP32[$17>>2]|0;
$19 = $$028 | 1;
$20 = (($3) + ($19<<2)|0);
HEAP32[$20>>2] = $18;
$21 = (($$028) + 2)|0;
$22 = (($$02527) + 1)|0;
$exitcond34 = ($22|0)==($8|0);
if ($exitcond34) {
break;
} else {
$$02527 = $22;$$028 = $21;
}
}
$23 = $0 & -2;
$$0$lcssa = $23;$$025$lcssa = $8;
} else {
$$0$lcssa = 0;$$025$lcssa = 0;
}
$24 = ($$0$lcssa|0)<($0|0);
if (!($24)) {
return;
}
$25 = (($2) + ($$025$lcssa)|0);
$$126 = $$0$lcssa;
while(1) {
$26 = HEAP8[$25>>0]|0;
$27 = $26&255;
$28 = $$126 << 2;
$29 = $28 & 4;
$30 = $29 ^ 4;
$31 = ($30)?($27 >>> $30):($27);
$32 = $31 & 15;
$33 = (($1) + ($32<<2)|0);
$34 = HEAP32[$33>>2]|0;
$35 = (($3) + ($$126<<2)|0);
HEAP32[$35>>2] = $34;
$36 = (($$126) + 1)|0;
$exitcond = ($36|0)==($0|0);
if ($exitcond) {
break;
} else {
$$126 = $36;
}
}
return;
}
function _Png_Expand_INDEXED_2($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if (!($4)) {
return;
}
$$09 = 0;
while(1) {
$5 = (2)?($$09 >>> 2):($$09);
$6 = (($2) + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $$09 << 1;
$10 = $9 & 6;
$11 = $10 ^ 6;
$12 = ($11)?($8 >>> $11):($8);
$13 = $12 & 3;
$14 = (($1) + ($13<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($3) + ($$09<<2)|0);
HEAP32[$16>>2] = $15;
$17 = (($$09) + 1)|0;
$exitcond = ($17|0)==($0|0);
if ($exitcond) {
break;
} else {
$$09 = $17;
}
}
return;
}
function _Png_Expand_GRAYSCALE_16($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if (!($4)) {
return;
}
$$010 = 0;
while(1) {
$5 = $$010 << 1;
$6 = (($2) + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $8 << 8;
$10 = $8 << 16;
$11 = $9 | $8;
$12 = $11 | $10;
$13 = $12 | -16777216;
$14 = (($3) + ($$010<<2)|0);
HEAP32[$14>>2] = $13;
$15 = (($$010) + 1)|0;
$exitcond = ($15|0)==($0|0);
if ($exitcond) {
break;
} else {
$$010 = $15;
}
}
return;
}
function _Png_Expand_GRAYSCALE_8($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$042 = 0, $$141 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$4 = $0 & -4;
$5 = ($4|0)>(0);
if ($5) {
$$042 = 0;
while(1) {
$6 = (($2) + ($$042)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $8 << 8;
$10 = $8 << 16;
$11 = $9 | $8;
$12 = $11 | $10;
$13 = $12 | -16777216;
$14 = (($3) + ($$042<<2)|0);
HEAP32[$14>>2] = $13;
$15 = $$042 | 1;
$16 = (($2) + ($15)|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = $18 << 8;
$20 = $18 << 16;
$21 = $19 | $18;
$22 = $21 | $20;
$23 = $22 | -16777216;
$24 = (($3) + ($15<<2)|0);
HEAP32[$24>>2] = $23;
$25 = $$042 | 2;
$26 = (($2) + ($25)|0);
$27 = HEAP8[$26>>0]|0;
$28 = $27&255;
$29 = $28 << 8;
$30 = $28 << 16;
$31 = $29 | $28;
$32 = $31 | $30;
$33 = $32 | -16777216;
$34 = (($3) + ($25<<2)|0);
HEAP32[$34>>2] = $33;
$35 = $$042 | 3;
$36 = (($2) + ($35)|0);
$37 = HEAP8[$36>>0]|0;
$38 = $37&255;
$39 = $38 << 8;
$40 = $38 << 16;
$41 = $39 | $38;
$42 = $41 | $40;
$43 = $42 | -16777216;
$44 = (($3) + ($35<<2)|0);
HEAP32[$44>>2] = $43;
$45 = (($$042) + 4)|0;
$46 = ($45|0)<($4|0);
if ($46) {
$$042 = $45;
} else {
break;
}
}
$47 = $0 & -4;
$$0$lcssa = $47;
} else {
$$0$lcssa = 0;
}
$48 = ($$0$lcssa|0)<($0|0);
if (!($48)) {
return;
}
$$141 = $$0$lcssa;
while(1) {
$49 = (($2) + ($$141)|0);
$50 = HEAP8[$49>>0]|0;
$51 = $50&255;
$52 = $51 << 8;
$53 = $51 << 16;
$54 = $52 | $51;
$55 = $54 | $53;
$56 = $55 | -16777216;
$57 = (($3) + ($$141<<2)|0);
HEAP32[$57>>2] = $56;
$58 = (($$141) + 1)|0;
$exitcond = ($58|0)==($0|0);
if ($exitcond) {
break;
} else {
$$141 = $58;
}
}
return;
}
function _Png_Expand_GRAYSCALE_4($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$031$lcssa = 0, $$03133 = 0, $$034 = 0, $$132 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond40 = 0, $mulconv = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $0 & -2;
$5 = ($4|0)>(0);
if ($5) {
$6 = (($4) + -1)|0;
$7 = (1)?($6 >>> 1):($6);
$8 = (($7) + 1)|0;
$$03133 = 0;$$034 = 0;
while(1) {
$9 = (($2) + ($$034)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = (4)?($11 >>> 4):($11);
$13 = ($12*17)|0;
$14 = $13 & 255;
$15 = $14 << 8;
$16 = $14 << 16;
$17 = $14 | $15;
$18 = $17 | $16;
$19 = $18 | -16777216;
$20 = (($3) + ($$03133<<2)|0);
HEAP32[$20>>2] = $19;
$21 = HEAP8[$9>>0]|0;
$22 = $21 & 15;
$mulconv = ($22*17)|0;
$23 = $mulconv&255;
$24 = $23 << 8;
$25 = $23 << 16;
$26 = $24 | $23;
$27 = $26 | $25;
$28 = $27 | -16777216;
$29 = $$03133 | 1;
$30 = (($3) + ($29<<2)|0);
HEAP32[$30>>2] = $28;
$31 = (($$03133) + 2)|0;
$32 = (($$034) + 1)|0;
$exitcond40 = ($32|0)==($8|0);
if ($exitcond40) {
break;
} else {
$$03133 = $31;$$034 = $32;
}
}
$33 = $0 & -2;
$$0$lcssa = $8;$$031$lcssa = $33;
} else {
$$0$lcssa = 0;$$031$lcssa = 0;
}
$34 = ($$031$lcssa|0)<($0|0);
if (!($34)) {
return;
}
$35 = (($2) + ($$0$lcssa)|0);
$$132 = $$031$lcssa;
while(1) {
$36 = HEAP8[$35>>0]|0;
$37 = $36&255;
$38 = $$132 << 2;
$39 = $38 & 4;
$40 = $39 ^ 4;
$41 = ($40)?($37 >>> $40):($37);
$42 = $41 & 15;
$43 = ($42*17)|0;
$44 = $43 & 255;
$45 = $44 << 8;
$46 = Math_imul($42, 1114112)|0;
$47 = $46 | $44;
$48 = $47 | $45;
$49 = $48 | -16777216;
$50 = (($3) + ($$132<<2)|0);
HEAP32[$50>>2] = $49;
$51 = (($$132) + 1)|0;
$exitcond = ($51|0)==($0|0);
if ($exitcond) {
break;
} else {
$$132 = $51;
}
}
return;
}
function _Png_Expand_GRAYSCALE_2($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if (!($4)) {
return;
}
$$011 = 0;
while(1) {
$5 = (2)?($$011 >>> 2):($$011);
$6 = (($2) + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $$011 << 1;
$10 = $9 & 6;
$11 = $10 ^ 6;
$12 = ($11)?($8 >>> $11):($8);
$13 = $12 & 3;
$14 = ($13*85)|0;
$15 = $14 & 255;
$16 = $15 << 8;
$17 = Math_imul($13, 5570560)|0;
$18 = $17 | $15;
$19 = $18 | $16;
$20 = $19 | -16777216;
$21 = (($3) + ($$011<<2)|0);
HEAP32[$21>>2] = $20;
$22 = (($$011) + 1)|0;
$exitcond = ($22|0)==($0|0);
if ($exitcond) {
break;
} else {
$$011 = $22;
}
}
return;
}
function _Png_Expand_GRAYSCALE_1($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if (!($4)) {
return;
}
$$011 = 0;
while(1) {
$5 = (3)?($$011 >>> 3):($$011);
$6 = (($2) + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $$011 & 7;
$10 = $9 ^ 7;
$11 = ($10)?($8 >>> $10):($8);
$12 = $11 & 1;
$13 = (0 - ($12))|0;
$14 = $13 & 255;
$15 = $14 << 8;
$16 = $14 << 16;
$17 = $14 | $15;
$18 = $17 | $16;
$19 = $18 | -16777216;
$20 = (($3) + ($$011<<2)|0);
HEAP32[$20>>2] = $19;
$21 = (($$011) + 1)|0;
$exitcond = ($21|0)==($0|0);
if ($exitcond) {
break;
} else {
$$011 = $21;
}
}
return;
}
function _Png_Expand_INDEXED_1($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if (!($4)) {
return;
}
$$09 = 0;
while(1) {
$5 = (3)?($$09 >>> 3):($$09);
$6 = (($2) + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $$09 & 7;
$10 = $9 ^ 7;
$11 = ($10)?($8 >>> $10):($8);
$12 = $11 & 1;
$13 = (($1) + ($12<<2)|0);
$14 = HEAP32[$13>>2]|0;
$15 = (($3) + ($$09<<2)|0);
HEAP32[$15>>2] = $14;
$16 = (($$09) + 1)|0;
$exitcond = ($16|0)==($0|0);
if ($exitcond) {
break;
} else {
$$09 = $16;
}
}
return;
}
function _Blocks_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_memset(((634116)|0),1,1536)|0;
HEAP8[1408207] = 1;
_Blocks_Reset();
_Event_Register(1250296,0,270);
HEAP8[(634116)>>0] = 0;
HEAP8[(634884)>>0] = 0;
;HEAP8[(634123)>>0]=0|0;HEAP8[(634123)+1>>0]=0|0;HEAP8[(634123)+2>>0]=0|0;HEAP8[(634123)+3>>0]=0|0;HEAP8[(634123)+4>>0]=0|0;
;HEAP8[(634891)>>0]=0|0;HEAP8[(634891)+1>>0]=0|0;HEAP8[(634891)+2>>0]=0|0;HEAP8[(634891)+3>>0]=0|0;HEAP8[(634891)+4>>0]=0|0;
return;
}
function _Blocks_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister(1250296,0,270);
return;
}
function _Blocks_Reset() {
var $$010 = 0, $0 = 0, $1 = 0, $exitcond = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
dest=40752; stop=dest+96|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$$010 = 0;
while(1) {
$0 = $$010&65535;
_Block_ResetProps($0);
$1 = (($$010) + 1)|0;
$exitcond = ($1|0)==(768);
if ($exitcond) {
break;
} else {
$$010 = $1;
}
}
_Block_UpdateAllCulling();
_Block_RecalculateAllSpriteBB();
return;
}
function _Block_ResetProps($0) {
$0 = $0|0;
var $$sink = 0.0, $$sink48 = 0.0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Block_DefaultName($1,$0);
$2 = (_DefaultSet_BlocksLight($0)|0);
$3 = $0&65535;
$4 = (570372 + ($3)|0);
HEAP8[$4>>0] = $2;
$5 = (_DefaultSet_FullBright($0)|0);
$6 = (571140 + ($3)|0);
HEAP8[$6>>0] = $5;
$7 = (_DefaultSet_FogColour($0)|0);
$8 = (571908 + ($3<<2)|0);
HEAP32[$8>>2] = $7;
$9 = (+_DefaultSet_FogDensity($0));
$10 = (574980 + ($3<<2)|0);
HEAPF32[$10>>2] = $9;
$11 = (_DefaultSet_Collide($0)|0);
_Block_SetCollide($0,$11);
$12 = (_DefaultSet_DigSound($0)|0);
$13 = (584196 + ($3)|0);
HEAP8[$13>>0] = $12;
$14 = (_DefaultSet_StepSound($0)|0);
$15 = (584964 + ($3)|0);
HEAP8[$15>>0] = $14;
$16 = (579588 + ($3<<2)|0);
HEAPF32[$16>>2] = 1.0;
_Block_SetName($0,$1);
$17 = (585732 + ($3)|0);
HEAP8[$17>>0] = 0;
$18 = (587268 + ($3)|0);
HEAP8[$18>>0] = 0;
$19 = (_DefaultSet_Draw($0)|0);
$20 = (583428 + ($3)|0);
HEAP8[$20>>0] = $19;
$21 = ($19<<24>>24)==(5);
$22 = (588036 + (($3*12)|0)|0);
if ($21) {
HEAPF32[$22>>2] = 0.15625;
$23 = (((588036 + (($3*12)|0)|0)) + 4|0);
HEAPF32[$23>>2] = 0.0;
$24 = (((588036 + (($3*12)|0)|0)) + 8|0);
HEAPF32[$24>>2] = 0.15625;
$25 = (597252 + (($3*12)|0)|0);
HEAPF32[$25>>2] = 0.84375;
$$sink = 0.84375;$$sink48 = 1.0;
} else {
HEAPF32[$22>>2] = 0.0;
$26 = (((588036 + (($3*12)|0)|0)) + 4|0);
HEAPF32[$26>>2] = 0.0;
$27 = (((588036 + (($3*12)|0)|0)) + 8|0);
HEAPF32[$27>>2] = 0.0;
$28 = (597252 + (($3*12)|0)|0);
HEAPF32[$28>>2] = 1.0;
$29 = (+_DefaultSet_Height($0));
$$sink = 1.0;$$sink48 = $29;
}
$30 = (((597252 + (($3*12)|0)|0)) + 4|0);
HEAPF32[$30>>2] = $$sink48;
$31 = (((597252 + (($3*12)|0)|0)) + 8|0);
HEAPF32[$31>>2] = $$sink;
_Block_SetDrawType($0,$19);
_Block_CalcRenderBounds($0);
_Block_CalcLightOffset($0);
$32 = ($0&65535)>(65);
if ($32) {
$33 = ($3*6)|0;
$34 = (($33) + 5)|0;
$35 = (624900 + ($34<<1)|0);
HEAP16[$35>>1] = 0;
$36 = (($33) + 4)|0;
$37 = (624900 + ($36<<1)|0);
HEAP16[$37>>1] = 0;
_Block_SetSide(0,$0);
STACKTOP = sp;return;
} else {
$38 = (96 + ($3)|0);
$39 = HEAP8[$38>>0]|0;
$40 = $39&255;
$41 = ($3*6)|0;
$42 = (($41) + 5)|0;
$43 = (624900 + ($42<<1)|0);
HEAP16[$43>>1] = $40;
$44 = (176 + ($3)|0);
$45 = HEAP8[$44>>0]|0;
$46 = $45&255;
$47 = (($41) + 4)|0;
$48 = (624900 + ($47<<1)|0);
HEAP16[$48>>1] = $46;
$49 = (256 + ($3)|0);
$50 = HEAP8[$49>>0]|0;
$51 = $50&255;
_Block_SetSide($51,$0);
STACKTOP = sp;return;
}
}
function _Block_UpdateAllCulling() {
var $$010 = 0, $$0911 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $exitcond = 0, $exitcond12 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$0911 = 0;
while(1) {
$0 = $$0911&65535;
_Block_CalcStretch($0);
$$010 = 0;
while(1) {
$1 = $$010&65535;
_Block_CalcCulling($0,$1);
$2 = (($$010) + 1)|0;
$exitcond = ($2|0)==(768);
if ($exitcond) {
break;
} else {
$$010 = $2;
}
}
$3 = (($$0911) + 1)|0;
$exitcond12 = ($3|0)==(768);
if ($exitcond12) {
break;
} else {
$$0911 = $3;
}
}
return;
}
function _Block_RecalculateAllSpriteBB() {
var $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$05 = 0;
while(1) {
$0 = (583428 + ($$05)|0);
$1 = HEAP8[$0>>0]|0;
$2 = ($1<<24>>24)==(5);
if ($2) {
$3 = $$05&65535;
_Block_RecalculateBB($3);
}
$4 = (($$05) + 1)|0;
$exitcond = ($4|0)==(768);
if ($exitcond) {
break;
} else {
$$05 = $4;
}
}
return;
}
function _Block_RecalculateBB($0) {
$0 = $0|0;
var $$0 = 0.0, $$043 = 0.0, $$044 = 0.0, $$045 = 0.0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0.0, $phitmp46 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp + 48|0;
$2 = sp + 36|0;
$3 = sp + 24|0;
$4 = sp + 12|0;
$5 = sp;
$6 = HEAP32[(1386720)>>2]|0;
$7 = $0&65535;
$8 = ($7*6)|0;
$9 = $8 | 1;
$10 = (624900 + ($9<<1)|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
$13 = $12 & 15;
$14 = (4)?($12 >>> 4):($12);
;HEAP32[$1>>2]=HEAP32[10636>>2]|0;HEAP32[$1+4>>2]=HEAP32[10636+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[10636+8>>2]|0;
$15 = HEAP32[(1386724)>>2]|0;
$16 = ($14|0)<($15|0);
if ($16) {
$17 = (+_Block_GetSpriteBB_MinX($6,$13,$14));
$18 = (+_Block_GetSpriteBB_MinY($6,$13,$14));
$19 = (+_Block_GetSpriteBB_MaxX($6,$13,$14));
$20 = (+_Block_GetSpriteBB_MaxY($6,$13,$14));
$phitmp = $17 + -0.5;
$phitmp46 = $19 + -0.5;
$$0 = $20;$$043 = $phitmp46;$$044 = $18;$$045 = $phitmp;
} else {
$$0 = 1.0;$$043 = 0.5;$$044 = 0.0;$$045 = -0.5;
}
_Vec3_RotateY3($4,$$045,$$044,0.0,0.78539818525314331);
;HEAP32[$2>>2]=HEAP32[$4>>2]|0;HEAP32[$2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$4+8>>2]|0;
_Vec3_RotateY3($5,$$043,$$0,0.0,0.78539818525314331);
;HEAP32[$3>>2]=HEAP32[$5>>2]|0;HEAP32[$3+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$5+8>>2]|0;
$21 = (588036 + (($7*12)|0)|0);
_Vec3_Add($21,$2,$1);
$22 = (597252 + (($7*12)|0)|0);
_Vec3_Add($22,$3,$1);
_Block_CalcRenderBounds($0);
STACKTOP = sp;return;
}
function _Block_GetSpriteBB_MinX($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$02 = 0, $$0223 = 0, $$023 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($0|0)>(0);
if (!($3)) {
$$023 = 1.0;
return (+$$023);
}
$4 = HEAP32[346677]|0;
$5 = Math_imul($2, $0)|0;
$6 = HEAP32[(1386712)>>2]|0;
$7 = Math_imul($1, $0)|0;
$$0223 = 0;
L4: while(1) {
$$02 = 0;
while(1) {
$10 = (($$02) + ($5))|0;
$11 = Math_imul($6, $10)|0;
$12 = (($4) + ($11<<2)|0);
$13 = (($12) + ($7<<2)|0);
$14 = (($13) + ($$0223<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15>>>0)>(16777215);
$8 = (($$02) + 1)|0;
if ($16) {
break L4;
}
$9 = ($8|0)<($0|0);
if ($9) {
$$02 = $8;
} else {
break;
}
}
$20 = (($$0223) + 1)|0;
$21 = ($20|0)<($0|0);
if ($21) {
$$0223 = $20;
} else {
$$023 = 1.0;
label = 8;
break;
}
}
if ((label|0) == 8) {
return (+$$023);
}
$17 = (+($$0223|0));
$18 = (+($0|0));
$19 = $17 / $18;
$$023 = $19;
return (+$$023);
}
function _Block_GetSpriteBB_MinY($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0222 = 0, $$023 = 0.0, $$05 = 0, $$05$in = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($0|0)>(0);
if (!($3)) {
$$023 = 1.0;
return (+$$023);
}
$4 = HEAP32[346677]|0;
$5 = Math_imul($2, $0)|0;
$6 = HEAP32[(1386712)>>2]|0;
$7 = Math_imul($1, $0)|0;
$$05$in = $0;
L4: while(1) {
$$05 = (($$05$in) + -1)|0;
$8 = (($$05) + ($5))|0;
$9 = Math_imul($6, $8)|0;
$10 = (($4) + ($9<<2)|0);
$11 = (($10) + ($7<<2)|0);
$$0222 = 0;
while(1) {
$14 = (($11) + ($$0222<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15>>>0)>(16777215);
$12 = (($$0222) + 1)|0;
if ($16) {
break L4;
}
$13 = ($12|0)<($0|0);
if ($13) {
$$0222 = $12;
} else {
break;
}
}
$21 = ($$05$in|0)>(1);
if ($21) {
$$05$in = $$05;
} else {
$$023 = 1.0;
label = 8;
break;
}
}
if ((label|0) == 8) {
return (+$$023);
}
$17 = (+($$05$in|0));
$18 = (+($0|0));
$19 = $17 / $18;
$20 = 1.0 - $19;
$$023 = $20;
return (+$$023);
}
function _Block_GetSpriteBB_MaxX($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$02 = 0, $$0225 = 0, $$0225$in = 0, $$023 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($0|0)>(0);
if (!($3)) {
$$023 = 0.0;
return (+$$023);
}
$4 = HEAP32[346677]|0;
$5 = Math_imul($2, $0)|0;
$6 = HEAP32[(1386712)>>2]|0;
$7 = Math_imul($1, $0)|0;
$$0225$in = $0;
L4: while(1) {
$$0225 = (($$0225$in) + -1)|0;
$$02 = 0;
while(1) {
$10 = (($$02) + ($5))|0;
$11 = Math_imul($6, $10)|0;
$12 = (($4) + ($11<<2)|0);
$13 = (($12) + ($7<<2)|0);
$14 = (($13) + ($$0225<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15>>>0)>(16777215);
$8 = (($$02) + 1)|0;
if ($16) {
break L4;
}
$9 = ($8|0)<($0|0);
if ($9) {
$$02 = $8;
} else {
break;
}
}
$20 = ($$0225$in|0)>(1);
if ($20) {
$$0225$in = $$0225;
} else {
$$023 = 0.0;
label = 8;
break;
}
}
if ((label|0) == 8) {
return (+$$023);
}
$17 = (+($$0225$in|0));
$18 = (+($0|0));
$19 = $17 / $18;
$$023 = $19;
return (+$$023);
}
function _Block_GetSpriteBB_MaxY($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0222 = 0, $$023 = 0.0, $$03 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($0|0)>(0);
if (!($3)) {
$$023 = 0.0;
return (+$$023);
}
$4 = HEAP32[346677]|0;
$5 = Math_imul($2, $0)|0;
$6 = HEAP32[(1386712)>>2]|0;
$7 = Math_imul($1, $0)|0;
$$03 = 0;
L4: while(1) {
$8 = (($$03) + ($5))|0;
$9 = Math_imul($6, $8)|0;
$10 = (($4) + ($9<<2)|0);
$11 = (($10) + ($7<<2)|0);
$$0222 = 0;
while(1) {
$14 = (($11) + ($$0222<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15>>>0)>(16777215);
$12 = (($$0222) + 1)|0;
if ($16) {
break L4;
}
$13 = ($12|0)<($0|0);
if ($13) {
$$0222 = $12;
} else {
break;
}
}
$21 = (($$03) + 1)|0;
$22 = ($21|0)<($0|0);
if ($22) {
$$03 = $21;
} else {
$$023 = 0.0;
label = 8;
break;
}
}
if ((label|0) == 8) {
return (+$$023);
}
$17 = (+($$03|0));
$18 = (+($0|0));
$19 = $17 / $18;
$20 = 1.0 - $19;
$$023 = $20;
return (+$$023);
}
function _Vec3_Add($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _Block_CalcRenderBounds($0) {
$0 = $0|0;
var $$sroa$0$0 = 0.0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$$sroa_idx2 = 0, $$sroa$0$0$copyload = 0.0, $$sroa$015$0 = 0.0, $$sroa$015$0$$sroa_idx = 0, $$sroa$015$0$$sroa_idx17 = 0, $$sroa$015$0$copyload = 0.0, $$sroa$12$0 = 0.0, $$sroa$12$0$$sroa_idx10 = 0, $$sroa$12$0$$sroa_idx11 = 0, $$sroa$12$0$copyload = 0.0, $$sroa$1226$0 = 0.0, $$sroa$1226$0$$sroa_idx27 = 0, $$sroa$1226$0$$sroa_idx28 = 0, $$sroa$1226$0$copyload = 0.0, $$sroa$8$0 = 0.0, $$sroa$8$0$$sroa_idx5 = 0, $$sroa$8$0$$sroa_idx6 = 0, $$sroa$8$0$copyload = 0.0;
var $$sroa$820$0 = 0.0, $$sroa$820$0$$sroa_idx21 = 0, $$sroa$820$0$$sroa_idx22 = 0, $$sroa$820$0$copyload = 0.0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $3 = 0;
var $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, $spec$select = 0.0, $spec$select38 = 0.0, $spec$select39 = 0.0, $spec$select40 = 0.0, $spec$select41 = 0.0, $spec$select42 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$$sroa$015$0$$sroa_idx = (588036 + (($1*12)|0)|0);
$$sroa$015$0$copyload = +HEAPF32[$$sroa$015$0$$sroa_idx>>2];
$$sroa$820$0$$sroa_idx21 = (((588036 + (($1*12)|0)|0)) + 4|0);
$$sroa$820$0$copyload = +HEAPF32[$$sroa$820$0$$sroa_idx21>>2];
$$sroa$1226$0$$sroa_idx27 = (((588036 + (($1*12)|0)|0)) + 8|0);
$$sroa$1226$0$copyload = +HEAPF32[$$sroa$1226$0$$sroa_idx27>>2];
$$sroa$0$0$$sroa_idx = (597252 + (($1*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$8$0$$sroa_idx5 = (((597252 + (($1*12)|0)|0)) + 4|0);
$$sroa$8$0$copyload = +HEAPF32[$$sroa$8$0$$sroa_idx5>>2];
$$sroa$12$0$$sroa_idx10 = (((597252 + (($1*12)|0)|0)) + 8|0);
$$sroa$12$0$copyload = +HEAPF32[$$sroa$12$0$$sroa_idx10>>2];
$2 = (569604 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$11 = (583428 + ($1)|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(3);
if ($13) {
$14 = (578052 + ($1)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(2);
$17 = $$sroa$015$0$copyload + 0.0062500000931322575;
$18 = $$sroa$0$0$copyload + 0.0062500000931322575;
$19 = $$sroa$1226$0$copyload + 0.0062500000931322575;
$20 = $$sroa$12$0$copyload + 0.0062500000931322575;
$21 = $$sroa$820$0$copyload + -0.0062500000931322575;
$22 = $$sroa$8$0$copyload + -0.0062500000931322575;
$spec$select = $16 ? $$sroa$1226$0$copyload : $19;
$spec$select38 = $16 ? $$sroa$820$0$copyload : $21;
$spec$select39 = $16 ? $$sroa$015$0$copyload : $17;
$spec$select40 = $16 ? $$sroa$12$0$copyload : $20;
$spec$select41 = $16 ? $$sroa$8$0$copyload : $22;
$spec$select42 = $16 ? $$sroa$0$0$copyload : $18;
$$sroa$0$0 = $spec$select42;$$sroa$015$0 = $spec$select39;$$sroa$12$0 = $spec$select40;$$sroa$1226$0 = $spec$select;$$sroa$8$0 = $spec$select41;$$sroa$820$0 = $spec$select38;
} else {
$$sroa$0$0 = $$sroa$0$0$copyload;$$sroa$015$0 = $$sroa$015$0$copyload;$$sroa$12$0 = $$sroa$12$0$copyload;$$sroa$1226$0 = $$sroa$1226$0$copyload;$$sroa$8$0 = $$sroa$8$0$copyload;$$sroa$820$0 = $$sroa$820$0$copyload;
}
} else {
$5 = $$sroa$015$0$copyload + -0.0062500000931322575;
$6 = $$sroa$0$0$copyload + -0.0062500000931322575;
$7 = $$sroa$1226$0$copyload + -0.0062500000931322575;
$8 = $$sroa$12$0$copyload + -0.0062500000931322575;
$9 = $$sroa$820$0$copyload + -0.09375;
$10 = $$sroa$8$0$copyload + -0.09375;
$$sroa$0$0 = $6;$$sroa$015$0 = $5;$$sroa$12$0 = $8;$$sroa$1226$0 = $7;$$sroa$8$0 = $10;$$sroa$820$0 = $9;
}
$$sroa$015$0$$sroa_idx17 = (606468 + (($1*12)|0)|0);
HEAPF32[$$sroa$015$0$$sroa_idx17>>2] = $$sroa$015$0;
$$sroa$820$0$$sroa_idx22 = (((606468 + (($1*12)|0)|0)) + 4|0);
HEAPF32[$$sroa$820$0$$sroa_idx22>>2] = $$sroa$820$0;
$$sroa$1226$0$$sroa_idx28 = (((606468 + (($1*12)|0)|0)) + 8|0);
HEAPF32[$$sroa$1226$0$$sroa_idx28>>2] = $$sroa$1226$0;
$$sroa$0$0$$sroa_idx2 = (615684 + (($1*12)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx2>>2] = $$sroa$0$0;
$$sroa$8$0$$sroa_idx6 = (((615684 + (($1*12)|0)|0)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx6>>2] = $$sroa$8$0;
$$sroa$12$0$$sroa_idx11 = (((615684 + (($1*12)|0)|0)) + 8|0);
HEAPF32[$$sroa$12$0$$sroa_idx11>>2] = $$sroa$12$0;
return;
}
function _Block_CalcStretch($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0.0, $4 = 0;
var $5 = 0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (588036 + (($1*12)|0)|0);
$3 = +HEAPF32[$2>>2];
$4 = $3 == 0.0;
if ($4) {
$5 = (597252 + (($1*12)|0)|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 == 1.0;
if ($7) {
$8 = (1225476 + ($1)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9 | 60;
HEAP8[$8>>0] = $10;
} else {
label = 4;
}
} else {
label = 4;
}
if ((label|0) == 4) {
$11 = (1225476 + ($1)|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 & -61;
HEAP8[$11>>0] = $13;
}
$14 = (((588036 + (($1*12)|0)|0)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $15 == 0.0;
if ($16) {
$17 = (((597252 + (($1*12)|0)|0)) + 8|0);
$18 = +HEAPF32[$17>>2];
$19 = $18 == 1.0;
if ($19) {
$20 = (1225476 + ($1)|0);
$21 = HEAP8[$20>>0]|0;
$22 = $21 | 3;
HEAP8[$20>>0] = $22;
return;
}
}
$23 = (1225476 + ($1)|0);
$24 = HEAP8[$23>>0]|0;
$25 = $24 & -4;
HEAP8[$23>>0] = $25;
return;
}
function _Block_CalcCulling($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$mux = 0, $$mux106107 = 0, $$not102 = 0, $$sink = 0, $$sink114 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$028$0$$sroa_idx = 0, $$sroa$028$0$copyload = 0.0, $$sroa$041$0$$sroa_idx = 0, $$sroa$041$0$copyload = 0.0, $$sroa$056$0$$sroa_idx = 0, $$sroa$056$0$copyload = 0.0, $$sroa$11$0$$sroa_idx24 = 0, $$sroa$11$0$copyload = 0.0, $$sroa$1151$0$$sroa_idx52 = 0, $$sroa$1151$0$copyload = 0.0, $$sroa$6$0 = 0.0, $$sroa$6$0$$sroa_idx19 = 0, $$sroa$6$0$copyload = 0.0;
var $$sroa$632$0$$sroa_idx33 = 0, $$sroa$632$0$copyload = 0.0, $$sroa$645$0$$sroa_idx46 = 0, $$sroa$645$0$copyload = 0.0, $$sroa$660$0$$sroa_idx61 = 0, $$sroa$660$0$copyload = 0.0, $$sroa$9$0$$sroa_idx37 = 0, $$sroa$9$0$copyload = 0.0, $$sroa$965$0$$sroa_idx66 = 0, $$sroa$965$0$copyload = 0.0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $brmerge = 0, $brmerge103 = 0, $narrow = 0, $narrow111 = 0, $narrow112 = 0, $not$ = 0, $not$or$cond91 = 0, $not$or$cond97 = 0, $or$cond = 0, $or$cond100 = 0, $or$cond101 = 0, $or$cond91 = 0, $or$cond93 = 0, $or$cond97 = 0, $or$cond98 = 0, $or$cond99 = 0;
var $phitmp89 = 0, $phitmp89$pn = 0, $phitmp90 = 0, $spec$select = 0.0, $spec$select109 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Block_MightCull($0,$1)|0);
$3 = ($2<<24>>24)==(0);
$4 = $0&65535;
if ($3) {
$5 = ($4*768)|0;
$6 = $1&65535;
$7 = (($5) + ($6))|0;
$$sink = 0;$$sink114 = $7;
$55 = (635652 + ($$sink114)|0);
HEAP8[$55>>0] = $$sink;
return;
}
$$sroa$056$0$$sroa_idx = (588036 + (($4*12)|0)|0);
$$sroa$056$0$copyload = +HEAPF32[$$sroa$056$0$$sroa_idx>>2];
$$sroa$660$0$$sroa_idx61 = (((588036 + (($4*12)|0)|0)) + 4|0);
$$sroa$660$0$copyload = +HEAPF32[$$sroa$660$0$$sroa_idx61>>2];
$$sroa$965$0$$sroa_idx66 = (((588036 + (($4*12)|0)|0)) + 8|0);
$$sroa$965$0$copyload = +HEAPF32[$$sroa$965$0$$sroa_idx66>>2];
$$sroa$041$0$$sroa_idx = (597252 + (($4*12)|0)|0);
$$sroa$041$0$copyload = +HEAPF32[$$sroa$041$0$$sroa_idx>>2];
$$sroa$645$0$$sroa_idx46 = (((597252 + (($4*12)|0)|0)) + 4|0);
$$sroa$645$0$copyload = +HEAPF32[$$sroa$645$0$$sroa_idx46>>2];
$$sroa$1151$0$$sroa_idx52 = (((597252 + (($4*12)|0)|0)) + 8|0);
$$sroa$1151$0$copyload = +HEAPF32[$$sroa$1151$0$$sroa_idx52>>2];
$8 = $1&65535;
$$sroa$028$0$$sroa_idx = (588036 + (($8*12)|0)|0);
$$sroa$028$0$copyload = +HEAPF32[$$sroa$028$0$$sroa_idx>>2];
$$sroa$632$0$$sroa_idx33 = (((588036 + (($8*12)|0)|0)) + 4|0);
$$sroa$632$0$copyload = +HEAPF32[$$sroa$632$0$$sroa_idx33>>2];
$$sroa$9$0$$sroa_idx37 = (((588036 + (($8*12)|0)|0)) + 8|0);
$$sroa$9$0$copyload = +HEAPF32[$$sroa$9$0$$sroa_idx37>>2];
$$sroa$0$0$$sroa_idx = (597252 + (($8*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$6$0$$sroa_idx19 = (((597252 + (($8*12)|0)|0)) + 4|0);
$$sroa$6$0$copyload = +HEAPF32[$$sroa$6$0$$sroa_idx19>>2];
$$sroa$11$0$$sroa_idx24 = (((597252 + (($8*12)|0)|0)) + 8|0);
$$sroa$11$0$copyload = +HEAPF32[$$sroa$11$0$$sroa_idx24>>2];
$9 = (569604 + ($4)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(0);
$12 = $$sroa$645$0$copyload + -0.09375;
$spec$select = $11 ? $$sroa$645$0$copyload : $12;
$13 = (569604 + ($8)|0);
$14 = HEAP8[$13>>0]|0;
$15 = ($14<<24>>24)==(0);
$16 = $$sroa$6$0$copyload + -0.09375;
$$sroa$6$0 = $15 ? $$sroa$6$0$copyload : $16;
$17 = ($14<<24>>24)!=(0);
$not$ = $11 ^ 1;
$spec$select109 = $17 & $not$;
$18 = !($$sroa$965$0$copyload >= $$sroa$9$0$copyload);
$19 = !($$sroa$1151$0$copyload <= $$sroa$11$0$copyload);
$or$cond = $18 | $19;
$20 = !($$sroa$660$0$copyload >= $$sroa$632$0$copyload);
$or$cond91 = $20 | $or$cond;
$21 = $spec$select <= $$sroa$6$0;
$not$or$cond91 = $or$cond91 ^ 1;
$narrow = $21 & $not$or$cond91;
$22 = !($$sroa$056$0$copyload >= $$sroa$028$0$copyload);
$23 = !($$sroa$041$0$copyload <= $$sroa$0$0$copyload);
$or$cond93 = $22 | $23;
$brmerge = $18 | $or$cond93;
$24 = !($$sroa$1151$0$copyload <= $$sroa$11$0$copyload);
$or$cond97 = $20 | $or$cond93;
$not$or$cond97 = $or$cond97 ^ 1;
$narrow111 = $21 & $not$or$cond97;
$25 = $$sroa$0$0$copyload == 1.0;
$or$cond98 = $25 & $narrow;
$26 = $$sroa$056$0$copyload == 0.0;
$narrow112 = $26 & $or$cond98;
$27 = $narrow112&1;
$28 = $$sroa$028$0$copyload == 0.0;
$or$cond99 = $28 & $narrow;
$29 = $$sroa$041$0$copyload == 1.0;
$30 = $29 & $or$cond99;
$31 = $30 ? 2 : 0;
$32 = $31 | $27;
$33 = $$sroa$11$0$copyload == 1.0;
$or$cond100 = $33 & $narrow111;
$34 = $$sroa$965$0$copyload == 0.0;
$35 = $34 & $or$cond100;
$36 = $35 ? 4 : 0;
$37 = $32 | $36;
$38 = $$sroa$9$0$copyload == 0.0;
$or$cond101 = $38 & $narrow111;
$39 = $$sroa$1151$0$copyload == 1.0;
$40 = $39 & $or$cond101;
$41 = $40 ? 8 : 0;
$42 = $37 | $41;
$$not102 = $brmerge | $24;
$brmerge103 = $$not102 | $spec$select109;
if ($brmerge103) {
$$mux = $$not102 ? 0 : 16;
$$mux106107 = $$not102 ? 0 : 32;
$51 = $$mux106107;$phitmp89$pn = $$mux;
} else {
$43 = $$sroa$6$0 == 1.0;
$44 = $$sroa$660$0$copyload == 0.0;
$45 = $44 & $43;
$phitmp89 = $45 ? 16 : 0;
$46 = $$sroa$632$0$copyload == 0.0;
$47 = $spec$select == 1.0;
$48 = $46 & $47;
$phitmp90 = $48 ? 32 : 0;
$51 = $phitmp90;$phitmp89$pn = $phitmp89;
}
$49 = $42 | $phitmp89$pn;
$50 = $49 | $51;
$52 = $50&255;
$53 = ($4*768)|0;
$54 = (($53) + ($8))|0;
$$sink = $52;$$sink114 = $54;
$55 = (635652 + ($$sink114)|0);
HEAP8[$55>>0] = $$sink;
return;
}
function _Block_MightCull($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$0$shrunk = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond20 = 0, $switch = 0, $switch19 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0&65535;
$3 = (583428 + ($2)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(5);
do {
if ($5) {
$$0$shrunk = 0;
} else {
$6 = $0 & -2;
$switch = ($6<<16>>16)==(8);
$7 = $1 & -2;
$switch19 = ($7<<16>>16)==(10);
$or$cond = $switch & $switch19;
if ($or$cond) {
$$0$shrunk = 1;
} else {
$8 = $1&65535;
$9 = ($0<<16>>16)==($1<<16>>16);
if ($9) {
$10 = ($4<<24>>24)!=(2);
$$0$shrunk = $10;
break;
}
$11 = (583428 + ($8)|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(0);
if ($13) {
$14 = (569604 + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(0);
$$0$shrunk = $16;
break;
}
$17 = ($4<<24>>24)==(3);
$18 = ($12<<24>>24)==(3);
$or$cond20 = $17 & $18;
if ($or$cond20) {
$19 = (578052 + ($2)|0);
$20 = HEAP8[$19>>0]|0;
$21 = ($20<<24>>24)==(2);
if ($21) {
$22 = (578052 + ($8)|0);
$23 = HEAP8[$22>>0]|0;
$24 = ($23<<24>>24)==(2);
if ($24) {
$$0$shrunk = 1;
break;
}
}
$25 = ($20<<24>>24)!=(2);
$$0$shrunk = $25;
} else {
$$0$shrunk = 0;
}
}
}
} while(0);
$$0 = $$0$shrunk&1;
return ($$0|0);
}
function _Block_DefaultName($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$014$lcssa = 0, $$01516 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1&65535;
$3 = ($1&65535)>(65);
if ($3) {
$4 = 10512;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $0;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
return;
}
$14 = ($1<<16>>16)==(0);
$15 = (_String_IndexOfAt(10648,0,95)|0);
if ($14) {
$$014$lcssa = 0;$$lcssa = $15;
} else {
$$01516 = 0;$17 = $15;
while(1) {
$16 = (($17) + 1)|0;
$18 = (($$01516) + 1)|0;
$19 = (_String_IndexOfAt(10648,$16,95)|0);
$exitcond = ($18|0)==($2|0);
if ($exitcond) {
$$014$lcssa = $16;$$lcssa = $19;
break;
} else {
$$01516 = $18;$17 = $19;
}
}
}
$20 = ($$lcssa|0)==(-1);
$spec$select = $20 ? 494 : $$lcssa;
$21 = (($spec$select) - ($$014$lcssa))|0;
_String_UNSAFE_Substring($0,10648,$$014$lcssa,$21);
return;
}
function _DefaultSet_BlocksLight($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<16>>16) {
case 0: case 18: case 20: {
$3 = 0;
return ($3|0);
break;
}
default: {
}
}
$1 = (_DefaultSet_Draw($0)|0);
$2 = ($1<<24>>24)!=(5);
$phitmp = $2&1;
$3 = $phitmp;
return ($3|0);
}
function _DefaultSet_FullBright($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<16>>16) {
case 62: case 11: case 10: {
$2 = 1;
break;
}
default: {
$1 = ($0<<16>>16)==(54);
$phitmp = $1&1;
$2 = $phitmp;
}
}
return ($2|0);
}
function _DefaultSet_FogColour($0) {
$0 = $0|0;
var $$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<16>>16) {
case 9: case 8: {
$$0 = -13433595;
break;
}
case 11: case 10: {
$$0 = -16770663;
break;
}
default: {
$$0 = 0;
}
}
return ($$0|0);
}
function _DefaultSet_FogDensity($0) {
$0 = $0|0;
var $$0 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<16>>16) {
case 9: case 8: {
$$0 = 0.10000000149011612;
break;
}
case 11: case 10: {
$$0 = 1.7999999523162842;
break;
}
default: {
$$0 = 0.0;
}
}
return (+$$0);
}
function _DefaultSet_Collide($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<16>>16) {
case 60: {
$$0 = 3;
break;
}
case 9: case 8: {
$$0 = 5;
break;
}
case 11: case 10: {
$$0 = 6;
break;
}
case 0: case 53: {
label = 5;
break;
}
default: {
$1 = (_DefaultSet_Draw($0)|0);
$2 = ($1<<24>>24)==(5);
if ($2) {
label = 5;
} else {
$$0 = 2;
}
}
}
if ((label|0) == 5) {
$$0 = 0;
}
return ($$0|0);
}
function _Block_SetCollide($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$1 = 0, $$3 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, $spec$select11 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_DefaultSet_MapOldCollide($0,$1)|0);
$3 = $0&65535;
$4 = (578820 + ($3)|0);
HEAP8[$4>>0] = $2;
_Block_RecalcIsLiquid($0);
$5 = ($2<<24>>24)==(3);
$spec$select = $5 ? 2 : $2;
$6 = ($spec$select<<24>>24)==(4);
$$1 = $6 ? 2 : $spec$select;
$7 = ($$1<<24>>24)==(5);
$spec$select11 = $7 ? 1 : $$1;
$8 = ($spec$select11<<24>>24)==(6);
$$3 = $8 ? 1 : $spec$select11;
$9 = (578052 + ($3)|0);
HEAP8[$9>>0] = $$3;
return;
}
function _DefaultSet_DigSound($0) {
$0 = $0|0;
var $$0 = 0, $$off = 0, $$off33 = 0, $$off34 = 0, $$off36 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$$off = (($0) + -21)<<16>>16;
$1 = ($$off&65535)<(16);
$$off33 = (($0) + -55)<<16>>16;
$2 = ($$off33&65535)<(5);
$or$cond = $1 | $2;
L1: do {
if ($or$cond) {
$$0 = 7;
} else {
switch ($0<<16>>16) {
case 41: case 42: {
$$0 = 5;
break L1;
break;
}
case 54: case 64: case 17: case 5: case 47: {
$$0 = 1;
break L1;
break;
}
case 51: {
$$0 = 7;
break L1;
break;
}
case 12: {
$$0 = 8;
break L1;
break;
}
case 53: {
$$0 = 9;
break L1;
break;
}
case 20: {
$$0 = 6;
break L1;
break;
}
case 13: case 3: {
$$0 = 2;
break L1;
break;
}
case 19: case 18: case 46: case 6: case 2: {
$$0 = 3;
break L1;
break;
}
default: {
$$off34 = (($0) + -37)<<16>>16;
$3 = ($$off34&65535)<(4);
if ($3) {
$$0 = 3;
break L1;
}
$4 = $0 & -4;
$5 = ($4<<16>>16)==(8);
if ($5) {
$$0 = 0;
break L1;
}
$$off36 = (($0) + -1)<<16>>16;
$6 = ($$off36&65535)<(65);
$spec$select = $6 ? 4 : 0;
return ($spec$select|0);
}
}
}
} while(0);
return ($$0|0);
}
function _DefaultSet_StepSound($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<16>>16) {
case 20: {
$$0 = 4;
break;
}
case 51: {
$$0 = 7;
break;
}
default: {
$1 = (_DefaultSet_Draw($0)|0);
$2 = ($1<<24>>24)==(5);
if ($2) {
$$0 = 0;
} else {
$3 = (_DefaultSet_DigSound($0)|0);
$$0 = $3;
}
}
}
return ($$0|0);
}
function _Block_SetName($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0&65535;
$3 = $2 << 6;
$4 = (40848 + ($3)|0);
_String_CopyToRaw($4,64,$1);
return;
}
function _DefaultSet_Draw($0) {
$0 = $0|0;
var $$0 = 0, $$off = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
L1: do {
switch ($0<<16>>16) {
case 0: {
$$0 = 4;
break;
}
case 18: {
$$0 = 2;
break;
}
case 9: case 8: case 60: {
$$0 = 3;
break;
}
case 20: {
$$0 = 1;
break;
}
default: {
$$off = (($0) + -37)<<16>>16;
$1 = ($$off&65535)<(4);
if ($1) {
$$0 = 5;
} else {
switch ($0<<16>>16) {
case 54: case 51: case 6: {
$$0 = 5;
break L1;
break;
}
default: {
}
}
$$0 = 0;
}
}
}
} while(0);
return ($$0|0);
}
function _DefaultSet_Height($0) {
$0 = $0|0;
var $$0 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<16>>16) {
case 50: case 44: {
$$0 = 0.5;
break;
}
case 53: {
$$0 = 0.25;
break;
}
default: {
$$0 = 1.0;
}
}
return (+$$0);
}
function _Block_SetDrawType($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)==(0);
if ($2) {
$3 = $0&65535;
$4 = (578052 + ($3)|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)!=(2);
$spec$select = $6&1;
$$0 = $spec$select;
} else {
$$0 = $1;
}
$7 = $0&65535;
$8 = (583428 + ($7)|0);
HEAP8[$8>>0] = $$0;
_Block_RecalcIsLiquid($0);
$9 = ($$0<<24>>24)==(0);
if ($9) {
$10 = (588036 + (($7*12)|0)|0);
$11 = +HEAPF32[$10>>2];
$12 = $11 == 0.0;
if ($12) {
$13 = (((588036 + (($7*12)|0)|0)) + 4|0);
$14 = +HEAPF32[$13>>2];
$15 = $14 == 0.0;
if ($15) {
$16 = (((588036 + (($7*12)|0)|0)) + 8|0);
$17 = +HEAPF32[$16>>2];
$18 = $17 == 0.0;
if ($18) {
$19 = (597252 + (($7*12)|0)|0);
$20 = +HEAPF32[$19>>2];
$21 = $20 == 1.0;
if ($21) {
$22 = (((597252 + (($7*12)|0)|0)) + 4|0);
$23 = +HEAPF32[$22>>2];
$24 = $23 == 1.0;
if ($24) {
$25 = (((597252 + (($7*12)|0)|0)) + 8|0);
$26 = +HEAPF32[$25>>2];
$27 = $26 == 1.0;
$phitmp = $27&1;
$29 = $phitmp;
} else {
$29 = 0;
}
} else {
$29 = 0;
}
} else {
$29 = 0;
}
} else {
$29 = 0;
}
} else {
$29 = 0;
}
} else {
$29 = 0;
}
$28 = (586500 + ($7)|0);
HEAP8[$28>>0] = $29;
return;
}
function _Block_CalcLightOffset($0) {
$0 = $0|0;
var $$0 = 0, $$1 = 0, $$2 = 0, $$3 = 0, $$4 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$06$0$$sroa_idx = 0, $$sroa$06$0$copyload = 0.0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$48$0$$sroa_idx9 = 0, $$sroa$48$0$copyload = 0.0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$5$0$copyload = 0.0, $$sroa$511$0$$sroa_idx12 = 0, $$sroa$511$0$copyload = 0.0, $1 = 0, $10 = 0, $11 = 0;
var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$$sroa$06$0$$sroa_idx = (588036 + (($1*12)|0)|0);
$$sroa$06$0$copyload = +HEAPF32[$$sroa$06$0$$sroa_idx>>2];
$$sroa$48$0$$sroa_idx9 = (((588036 + (($1*12)|0)|0)) + 4|0);
$$sroa$48$0$copyload = +HEAPF32[$$sroa$48$0$$sroa_idx9>>2];
$$sroa$511$0$$sroa_idx12 = (((588036 + (($1*12)|0)|0)) + 8|0);
$$sroa$511$0$copyload = +HEAPF32[$$sroa$511$0$$sroa_idx12>>2];
$$sroa$0$0$$sroa_idx = (597252 + (($1*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$4$0$$sroa_idx2 = (((597252 + (($1*12)|0)|0)) + 4|0);
$$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx2>>2];
$$sroa$5$0$$sroa_idx4 = (((597252 + (($1*12)|0)|0)) + 8|0);
$$sroa$5$0$copyload = +HEAPF32[$$sroa$5$0$$sroa_idx4>>2];
$2 = $$sroa$06$0$copyload != 0.0;
$$0 = $2 ? 254 : 255;
$3 = $$sroa$0$0$copyload != 1.0;
$4 = $$0 & 253;
$$1 = $3 ? $4 : $$0;
$5 = $$sroa$511$0$copyload != 0.0;
$6 = $$1 & 251;
$$2 = $5 ? $6 : $$1;
$7 = $$sroa$5$0$copyload != 1.0;
$8 = $$2 & 247;
$$3 = $7 ? $8 : $$2;
$9 = $$sroa$48$0$copyload != 0.0;
$10 = $$sroa$4$0$copyload == 1.0;
$or$cond = $9 & $10;
if (!($or$cond)) {
$$4 = $$3;
$15 = $$4&255;
$16 = (582660 + ($1)|0);
HEAP8[$16>>0] = $15;
return;
}
$11 = $$3 & 207;
$12 = (583428 + ($1)|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(4);
$spec$select = $14 ? $$3 : $11;
$$4 = $spec$select;
$15 = $$4&255;
$16 = (582660 + ($1)|0);
HEAP8[$16>>0] = $15;
return;
}
function _Block_SetSide($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1&65535;
$3 = ($2*6)|0;
$4 = (624900 + ($3<<1)|0);
HEAP16[$4>>1] = $0;
$5 = $3 | 1;
$6 = (624900 + ($5<<1)|0);
HEAP16[$6>>1] = $0;
$7 = (($3) + 2)|0;
$8 = (624900 + ($7<<1)|0);
HEAP16[$8>>1] = $0;
$9 = (($3) + 3)|0;
$10 = (624900 + ($9<<1)|0);
HEAP16[$10>>1] = $0;
return;
}
function _Block_RecalcIsLiquid($0) {
$0 = $0|0;
var $$shrunk = 0, $$sink6 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (578820 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
switch ($3<<24>>24) {
case 5: {
$$sink6 = 3;
label = 3;
break;
}
case 6: {
$$sink6 = 1;
label = 3;
break;
}
default: {
$$shrunk = 0;
}
}
if ((label|0) == 3) {
$4 = (583428 + ($1)|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==($$sink6<<24>>24);
$phitmp = $6&1;
$$shrunk = $phitmp;
}
$7 = (569604 + ($1)|0);
HEAP8[$7>>0] = $$shrunk;
return;
}
function _DefaultSet_MapOldCollide($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$old = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, $or$cond12 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($0<<16>>16)==(51);
$3 = ($1<<24>>24)==(0);
$or$cond = $2 & $3;
L1: do {
if ($or$cond) {
$$0 = 7;
} else {
$4 = ($0<<16>>16)==(60);
$5 = ($1<<24>>24)==(2);
$or$cond12 = $4 & $5;
if ($or$cond12) {
$$0 = 3;
} else {
switch ($0<<16>>16) {
case 9: case 8: {
$6 = ($1<<24>>24)==(1);
if ($6) {
$$0 = 5;
break L1;
}
break;
}
case 11: case 10: {
$$old = ($1<<24>>24)==(1);
if ($$old) {
$$0 = 6;
break L1;
}
break;
}
default: {
}
}
$$0 = $1;
}
}
} while(0);
return ($$0|0);
}
function _Blocks_AtlasChanged($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Block_RecalculateAllSpriteBB();
return;
}
function _Block_IsCustomDefined($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (5)?($1 >>> 5):($1);
$3 = (40752 + ($2<<2)|0);
$4 = HEAP32[$3>>2]|0;
$5 = $1 & 31;
$6 = 1 << $5;
$7 = $4 & $6;
$8 = ($7|0)!=(0);
$9 = $8&1;
return ($9|0);
}
function _Block_SetCustomDefined($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)==(0);
$3 = $0&65535;
$4 = $3 & 31;
$5 = 1 << $4;
if ($2) {
$10 = $5 ^ -1;
$11 = (5)?($3 >>> 5):($3);
$12 = (40752 + ($11<<2)|0);
$13 = HEAP32[$12>>2]|0;
$14 = $13 & $10;
HEAP32[$12>>2] = $14;
return;
} else {
$6 = (5)?($3 >>> 5):($3);
$7 = (40752 + ($6<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8 | $5;
HEAP32[$7>>2] = $9;
return;
}
}
function _Block_DefineCustom($0) {
$0 = $0|0;
var $$lobit = 0, $$not = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Block_UNSAFE_GetName($1,$0);
$2 = $0&65535;
$3 = (571908 + ($2<<2)|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==(-16777216);
if ($5) {
$9 = 0;
} else {
$6 = (_String_IndexOfAt($1,0,35)|0);
$$lobit = (31)?($6 >>> 31):($6);
$7 = $$lobit&255;
$$not = $7 ^ 1;
$9 = $$not;
}
$8 = (585732 + ($2)|0);
HEAP8[$8>>0] = $9;
$10 = (583428 + ($2)|0);
$11 = HEAP8[$10>>0]|0;
_Block_SetDrawType($0,$11);
_Block_CalcRenderBounds($0);
_Block_UpdateCulling($0);
_Block_CalcLightOffset($0);
_Inventory_AddDefault($0);
_Block_SetCustomDefined($0,1);
_Event_RaiseVoid((1253416));
STACKTOP = sp;return;
}
function _Block_UNSAFE_GetName($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1&65535;
$3 = $2 << 6;
$4 = (40848 + ($3)|0);
_String_FromRaw($0,$4,64);
return;
}
function _Block_UpdateCulling($0) {
$0 = $0|0;
var $$08 = 0, $1 = 0, $2 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
_Block_CalcStretch($0);
$$08 = 0;
while(1) {
$1 = $$08&65535;
_Block_CalcCulling($0,$1);
_Block_CalcCulling($1,$0);
$2 = (($$08) + 1)|0;
$exitcond = ($2|0)==(768);
if ($exitcond) {
break;
} else {
$$08 = $2;
}
}
return;
}
function _Block_FindID($0) {
$0 = $0|0;
var $$05 = 0, $$07 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
$$07 = 0;
while(1) {
$3 = $$07&65535;
_Block_UNSAFE_GetName($2,$3);
$4 = $2;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $1;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = (_String_CaselessEquals($1,$0)|0);
$15 = ($14|0)==(0);
if (!($15)) {
$$05 = $$07;
label = 4;
break;
}
$16 = (($$07) + 1)|0;
$17 = ($16>>>0)<(768);
if ($17) {
$$07 = $16;
} else {
$$05 = -1;
label = 4;
break;
}
}
if ((label|0) == 4) {
STACKTOP = sp;return ($$05|0);
}
return (0)|0;
}
function _Block_Parse($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = (_Convert_ParseInt($0,$1)|0);
$3 = ($2<<24>>24)!=(0);
$4 = HEAP32[$1>>2]|0;
$5 = ($4|0)<(768);
$or$cond = $3 & $5;
if ($or$cond) {
$$0 = $4;
STACKTOP = sp;return ($$0|0);
}
$6 = (_Block_FindID($0)|0);
$$0 = $6;
STACKTOP = sp;return ($$0|0);
}
function _Block_IsFaceHidden($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $0&65535;
$4 = ($3*768)|0;
$5 = $1&65535;
$6 = (($4) + ($5))|0;
$7 = (635652 + ($6)|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = $2&255;
$11 = 1 << $10;
$12 = $11 & $9;
$13 = ($12|0)!=(0);
$14 = $13&1;
return ($14|0);
}
function _AutoRotate_RotateBlock($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$1 = sp + 136|0;
$2 = sp;
$3 = sp + 128|0;
_Block_UNSAFE_GetName($3,$0);
HEAP32[$1>>2] = $2;
$4 = ((($1)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($1)) + 6|0);
HEAP16[$5>>1] = 128;
_String_AppendString($1,$3);
$6 = (_FindRotated($1,0)|0);
$7 = ($6|0)==(-1);
$8 = $0&65535;
$9 = $7 ? $8 : $6;
$10 = $9&65535;
STACKTOP = sp;return ($10|0);
}
function _FindRotated($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$061 = 0, $$061$v = 0, $$062 = 0, $$06284 = 0, $$off = 0, $$off92 = 0, $$sroa$0$0$copyload = 0, $$sroa$5$0$$sroa_idx37 = 0, $$sroa$5$0$copyload = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond6587 = 0, $or$cond6788 = 0, $or$cond6889 = 0, $or$cond70 = 0, $or$cond74 = 0, $or$cond75 = 0, $or$cond76 = 0, $or$cond77 = 0, $or$cond78 = 0;
var $or$cond7991 = 0, $or$cond80 = 0, $or$cond81 = 0, $or$cond85 = 0, $or$cond86 = 0, $sext = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_String_LastIndexOfAt($0,$1,45)|0);
$4 = ($3|0)==(-1);
if ($4) {
$$0 = -1;
STACKTOP = sp;return ($$0|0);
}
_String_UNSAFE_SubstringAt($2,$0,$3);
$$sroa$0$0$copyload = HEAP32[$2>>2]|0;
$$sroa$5$0$$sroa_idx37 = ((($2)) + 4|0);
$$sroa$5$0$copyload = HEAP16[$$sroa$5$0$$sroa_idx37>>1]|0;
$5 = $$sroa$5$0$copyload&65535;
$6 = (($5) - ($1))|0;
$7 = $6 & 65535;
$8 = ($7>>>0)>(3);
if ($8) {
$$0 = -1;
STACKTOP = sp;return ($$0|0);
}
$9 = (($7) + ($1))|0;
$10 = ($7>>>0)>(1);
if ($10) {
$11 = ((($$sroa$0$0$copyload)) + 1|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 << 24 >> 24;
$$off92 = (($12) + -65)<<24>>24;
$14 = ($$off92&255)<(26);
$15 = (($13) + 32)|0;
$$062 = $14 ? $15 : $13;
$16 = ($7|0)==(2);
if ($16) {
$$06284 = $$062;$20 = 0;
} else {
$17 = ((($$sroa$0$0$copyload)) + 2|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18 << 24 >> 24;
$$06284 = $$062;$20 = $19;
}
} else {
$$06284 = 0;$20 = 0;
}
$$off = (($20) + -65)|0;
$21 = ($$off>>>0)<(26);
$22 = (($20) + 32)|0;
$$061$v = $21 ? $22 : $20;
$$061 = $$061$v&255;
$sext = $$06284 << 24;
$23 = ($sext|0)==(1845493760);
$24 = ($$061<<24>>24)==(119);
$25 = ($$061<<24>>24)==(101);
$or$cond6587 = $24 | $25;
$or$cond77 = $23 & $or$cond6587;
if (!($or$cond77)) {
$26 = ($sext|0)==(1929379840);
$or$cond6788 = $24 | $25;
$or$cond78 = $26 & $or$cond6788;
if (!($or$cond78)) {
$28 = ($sext|0)==(1962934272);
$29 = ($$061<<24>>24)==(0);
$30 = ($sext|0)==(1677721600);
$or$cond6889 = $28 | $30;
$or$cond85 = $or$cond6889 & $29;
if ($or$cond85) {
$31 = (_RotateVertical($0,$9)|0);
$$0 = $31;
STACKTOP = sp;return ($$0|0);
}
$or$cond70 = $23 & $29;
if (!($or$cond70)) {
$32 = $sext | 67108864;
$33 = ($32|0)==(1996488704);
$34 = ($sext|0)==(1694498816);
$or$cond7991 = $34 | $33;
$or$cond86 = $or$cond7991 & $29;
if (!($or$cond86)) {
$36 = ($sext|0)==(1996488704);
$37 = ($$061<<24>>24)==(100);
$or$cond74 = $28 & $37;
$or$cond75 = $36 & $25;
$or$cond80 = $or$cond74 | $or$cond75;
$38 = ($$061<<24>>24)==(115);
$or$cond76 = $23 & $38;
$or$cond81 = $or$cond76 | $or$cond80;
if (!($or$cond81)) {
$$0 = -1;
STACKTOP = sp;return ($$0|0);
}
_AutoRotate_Insert($0,$9,19687);
$39 = (_Block_FindID($0)|0);
$40 = ($39|0)==(-1);
if ($40) {
$41 = (_RotateFence($0,$9)|0);
$$0 = $41;
STACKTOP = sp;return ($$0|0);
} else {
$42 = (_RotatePillar($0,$9)|0);
$$0 = $42;
STACKTOP = sp;return ($$0|0);
}
}
}
$35 = (_RotateDirection($0,$9)|0);
$$0 = $35;
STACKTOP = sp;return ($$0|0);
}
}
$27 = (_RotateCorner($0,$9)|0);
$$0 = $27;
STACKTOP = sp;return ($$0|0);
}
function _RotateCorner($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[(1260244)>>2];
$3 = HEAP32[(1260268)>>2]|0;
$4 = (+($3|0));
$5 = $2 - $4;
$6 = +HEAPF32[(1260252)>>2];
$7 = HEAP32[(1260276)>>2]|0;
$8 = (+($7|0));
$9 = $6 - $8;
$10 = $5 < 0.5;
$11 = $9 < 0.5;
$or$cond = $10 & $11;
do {
if ($or$cond) {
_AutoRotate_Insert($0,$1,19717);
} else {
$12 = $5 >= 0.5;
$or$cond3 = $12 & $11;
if ($or$cond3) {
_AutoRotate_Insert($0,$1,19721);
break;
}
$13 = $9 >= 0.5;
$or$cond5 = $10 & $13;
if ($or$cond5) {
_AutoRotate_Insert($0,$1,19725);
break;
}
$or$cond7 = $12 & $13;
if ($or$cond7) {
_AutoRotate_Insert($0,$1,19729);
}
}
} while(0);
$14 = (_GetRotated($0,$1)|0);
return ($14|0);
}
function _RotateVertical($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[(1260248)>>2];
$3 = HEAP32[(1260272)>>2]|0;
$4 = (+($3|0));
$5 = $2 - $4;
$6 = !($5 >= 0.5);
if ($6) {
_AutoRotate_Insert($0,$1,19714);
} else {
_AutoRotate_Insert($0,$1,19711);
}
$7 = (_GetRotated($0,$1)|0);
return ($7|0);
}
function _RotateDirection($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[(1242172)>>2];
$3 = (+_LocationUpdate_Clamp($2));
$4 = $3 >= 45.0;
$5 = $3 < 135.0;
$or$cond = $4 & $5;
do {
if ($or$cond) {
_AutoRotate_Insert($0,$1,19699);
} else {
$6 = $3 >= 135.0;
$7 = $3 < 225.0;
$or$cond3 = $6 & $7;
if ($or$cond3) {
_AutoRotate_Insert($0,$1,19702);
break;
}
$8 = $3 >= 225.0;
$9 = $3 < 315.0;
$or$cond5 = $8 & $9;
if ($or$cond5) {
_AutoRotate_Insert($0,$1,19705);
break;
} else {
_AutoRotate_Insert($0,$1,19708);
break;
}
}
} while(0);
$10 = (_GetRotated($0,$1)|0);
return ($10|0);
}
function _AutoRotate_Insert($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$01213 = 0, $$014 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4|0);
$4 = HEAP8[$2>>0]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
return;
}
$6 = HEAP16[$3>>1]|0;
$7 = $6&65535;
$8 = (($7) - ($1))|0;
$$01213 = $2;$$014 = $8;$14 = $4;
while(1) {
$9 = HEAP16[$3>>1]|0;
$10 = $9&65535;
$11 = ($$014|0)<($10|0);
if ($11) {
$12 = HEAP32[$0>>2]|0;
$13 = (($12) + ($$014)|0);
HEAP8[$13>>0] = $14;
} else {
_String_Append($0,$14);
}
$15 = ((($$01213)) + 1|0);
$16 = (($$014) + 1)|0;
$17 = HEAP8[$15>>0]|0;
$18 = ($17<<24>>24)==(0);
if ($18) {
break;
} else {
$$01213 = $15;$$014 = $16;$14 = $17;
}
}
return;
}
function _RotateFence($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[(1242172)>>2];
$3 = (+_LocationUpdate_Clamp($2));
$4 = $3 < 45.0;
if (!($4)) {
$5 = $3 >= 135.0;
$6 = $3 < 225.0;
$or$cond = $5 & $6;
$7 = $3 > 315.0;
$or$cond3 = $7 | $or$cond;
if (!($or$cond3)) {
_AutoRotate_Insert($0,$1,19695);
$8 = (_GetRotated($0,$1)|0);
return ($8|0);
}
}
_AutoRotate_Insert($0,$1,19691);
$8 = (_GetRotated($0,$1)|0);
return ($8|0);
}
function _RotatePillar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(1260281)>>0]|0;
switch ($2<<24>>24) {
case 4: case 5: {
_AutoRotate_Insert($0,$1,19687);
break;
}
case 0: case 1: {
_AutoRotate_Insert($0,$1,19691);
break;
}
case 2: case 3: {
_AutoRotate_Insert($0,$1,19695);
break;
}
default: {
}
}
$3 = (_GetRotated($0,$1)|0);
return ($3|0);
}
function _GetRotated($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_FindRotated($0,$1)|0);
$3 = ($2|0)==(-1);
if (!($3)) {
$5 = $2;
return ($5|0);
}
$4 = (_Block_FindID($0)|0);
$5 = $4;
return ($5|0);
}
function _Physics_SetEnabled($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1226244] = $0;
_Physics_OnNewMapLoaded(0);
return;
}
function _Physics_OnNewMapLoaded($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
_TickQueue_Clear(1230344);
_TickQueue_Clear(1230368);
$1 = HEAP32[(1407476)>>2]|0;
$2 = (($1) + -2)|0;
HEAP32[307598] = $2;
$3 = HEAP32[(1407480)>>2]|0;
$4 = (($3) + -2)|0;
HEAP32[307599] = $4;
$5 = HEAP32[(1407484)>>2]|0;
$6 = (($5) + -2)|0;
HEAP32[307600] = $6;
$7 = HEAP32[351863]|0;
HEAP32[315080] = $7;
_Random_SeedFromCurrentTime(535440);
HEAP32[315081] = 535440;
return;
}
function _TickQueue_Clear($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0|0);
if ($2) {
return;
}
_Mem_Free($1);
_TickQueue_Init($0);
return;
}
function _TickQueue_Init($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;
return;
}
function _Physics_OnBlockChanged($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = HEAP8[1226244]|0;
$6 = ($5<<24>>24)==(0);
if ($6) {
return;
}
$7 = ($4<<16>>16)==(0);
if ($7) {
$8 = (_Physics_IsEdgeWater($0,$1,$2)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
$$0 = 0;
} else {
_Game_UpdateBlock($0,$1,$2,9);
$$0 = 9;
}
} else {
$$0 = $4;
}
$10 = HEAP32[(1407472)>>2]|0;
$11 = Math_imul($10, $1)|0;
$12 = (($11) + ($2))|0;
$13 = HEAP32[(1407464)>>2]|0;
$14 = Math_imul($12, $13)|0;
$15 = (($14) + ($0))|0;
$16 = ($$0<<16>>16)==(0);
if ($16) {
$17 = $3&65535;
$18 = (1229320 + ($17<<2)|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($19|0)==(0|0);
if (!($20)) {
FUNCTION_TABLE_vii[$19 & 127]($15,$3);
}
} else {
$21 = $$0&65535;
$22 = (1228296 + ($21<<2)|0);
$23 = HEAP32[$22>>2]|0;
$24 = ($23|0)==(0|0);
if (!($24)) {
FUNCTION_TABLE_vii[$23 & 127]($15,$$0);
}
}
_Physics_ActivateNeighbours($0,$1,$2,$15);
return;
}
function _Physics_IsEdgeWater($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond7 = 0, $or$cond9 = 0, $phitmp = 0, $switch = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP16[703756]|0;
$4 = $3 & -2;
$switch = ($4<<16>>16)==(8);
if (!($switch)) {
$16 = 0;
return ($16|0);
}
$5 = HEAP32[(1407516)>>2]|0;
$6 = HEAP32[(1407520)>>2]|0;
$7 = (($6) + ($5))|0;
$8 = ($7|0)<=($1|0);
$9 = ($5|0)>($1|0);
$or$cond7 = $9 & $8;
if (!($or$cond7)) {
$16 = 0;
return ($16|0);
}
$10 = ($0|0)==(0);
$11 = ($2|0)==(0);
$or$cond = $10 | $11;
$12 = HEAP32[(1407476)>>2]|0;
$13 = ($12|0)==($0|0);
$or$cond9 = $or$cond | $13;
if ($or$cond9) {
$16 = 1;
return ($16|0);
}
$14 = HEAP32[(1407484)>>2]|0;
$15 = ($14|0)==($2|0);
$phitmp = $15&1;
$16 = $phitmp;
return ($16|0);
}
function _Physics_ActivateNeighbours($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$4 = ($0|0)>(0);
if ($4) {
$5 = (($3) + -1)|0;
_Physics_Activate($5);
}
$6 = HEAP32[(1407476)>>2]|0;
$7 = ($6|0)>($0|0);
if ($7) {
$8 = (($3) + 1)|0;
_Physics_Activate($8);
}
$9 = ($2|0)>(0);
if ($9) {
$10 = HEAP32[(1407464)>>2]|0;
$11 = (($3) - ($10))|0;
_Physics_Activate($11);
}
$12 = HEAP32[(1407484)>>2]|0;
$13 = ($12|0)>($2|0);
if ($13) {
$14 = HEAP32[(1407464)>>2]|0;
$15 = (($14) + ($3))|0;
_Physics_Activate($15);
}
$16 = ($1|0)>(0);
if ($16) {
$17 = HEAP32[(1407488)>>2]|0;
$18 = (($3) - ($17))|0;
_Physics_Activate($18);
}
$19 = HEAP32[(1407480)>>2]|0;
$20 = ($19|0)>($1|0);
if (!($20)) {
return;
}
$21 = HEAP32[(1407488)>>2]|0;
$22 = (($21) + ($3))|0;
_Physics_Activate($22);
return;
}
function _Physics_Activate($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[351863]|0;
$2 = (($1) + ($0)|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = (1226248 + ($4<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0|0);
if ($7) {
return;
}
$8 = $3&255;
FUNCTION_TABLE_vii[$6 & 127]($0,$8);
return;
}
function _Physics_Init() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Event_Register((1254196),0,271);
$0 = (_Options_GetBool(31896,1)|0);
HEAP8[1226244] = $0;
_TickQueue_Init(1230344);
_TickQueue_Init(1230368);
HEAP32[(1228344)>>2] = 49;
HEAP32[(1228348)>>2] = 49;
HEAP32[(1226296)>>2] = 49;
HEAP32[(1226300)>>2] = 49;
HEAP32[(1227320)>>2] = 49;
HEAP32[(1227324)>>2] = 49;
HEAP32[(1228320)>>2] = 50;
HEAP32[(1227296)>>2] = 50;
HEAP32[(1227284)>>2] = 51;
HEAP32[(1227280)>>2] = 52;
HEAP32[(1227420)>>2] = 53;
HEAP32[(1227424)>>2] = 53;
HEAP32[(1227432)>>2] = 54;
HEAP32[(1227428)>>2] = 54;
HEAP32[(1228336)>>2] = 55;
HEAP32[(1228328)>>2] = 56;
HEAP32[(1228372)>>2] = 57;
HEAP32[(1229396)>>2] = 58;
HEAP32[(1226280)>>2] = (56);
HEAP32[(1226284)>>2] = (56);
HEAP32[(1226288)>>2] = (55);
$1 = HEAP32[(1228336)>>2]|0;
HEAP32[(1226292)>>2] = $1;
HEAP32[(1227304)>>2] = 59;
HEAP32[(1227308)>>2] = 59;
HEAP32[(1227312)>>2] = 60;
HEAP32[(1227316)>>2] = 60;
HEAP32[(1228472)>>2] = 61;
HEAP32[(1228496)>>2] = 62;
HEAP32[(1228480)>>2] = 63;
return;
}
function _Physics_DoFalling($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$037$lcssa = 0, $$03739 = 0, $$040 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407488)>>2]|0;
$3 = ($2|0)>($0|0);
if ($3) {
return;
}
$4 = HEAP32[351863]|0;
$5 = HEAP32[(1407488)>>2]|0;
$$03739 = -1;$$040 = $0;$8 = $2;
while(1) {
$6 = (($$040) - ($8))|0;
$9 = (($4) + ($6)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(0);
$12 = $10 & -4;
$13 = ($12<<24>>24)==(8);
$or$cond = $11 | $13;
if (!($or$cond)) {
$$037$lcssa = $$03739;
break;
}
$7 = ($6|0)<($5|0);
if ($7) {
$$037$lcssa = $6;
break;
} else {
$$03739 = $6;$$040 = $6;$8 = $5;
}
}
$14 = ($$037$lcssa|0)==(-1);
if ($14) {
return;
}
$15 = HEAP32[(1407464)>>2]|0;
$16 = (($$037$lcssa|0) / ($15|0))&-1;
$17 = Math_imul($16, $15)|0;
$18 = (($$037$lcssa) - ($17))|0;
$19 = HEAP32[(1407472)>>2]|0;
$20 = (($16|0) / ($19|0))&-1;
$21 = Math_imul($20, $19)|0;
$22 = (($16) - ($21))|0;
_Game_UpdateBlock($18,$20,$22,$1);
$23 = HEAP32[(1407464)>>2]|0;
$24 = (($0|0) / ($23|0))&-1;
$25 = Math_imul($24, $23)|0;
$26 = (($0) - ($25))|0;
$27 = HEAP32[(1407472)>>2]|0;
$28 = (($24|0) / ($27|0))&-1;
$29 = Math_imul($28, $27)|0;
$30 = (($24) - ($29))|0;
_Game_UpdateBlock($26,$28,$30,0);
_Physics_ActivateNeighbours($26,$28,$30,$0);
return;
}
function _Physics_HandleSapling($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$038 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1248|0;
$2 = sp + 96|0;
$3 = sp;
$4 = HEAP32[(1407464)>>2]|0;
$5 = (($0|0) / ($4|0))&-1;
$6 = Math_imul($5, $4)|0;
$7 = (($0) - ($6))|0;
$8 = HEAP32[(1407472)>>2]|0;
$9 = (($5|0) / ($8|0))&-1;
$10 = Math_imul($9, $8)|0;
$11 = (($5) - ($10))|0;
$12 = ($9|0)>(0);
if (!($12)) {
STACKTOP = sp;return;
}
$13 = HEAP32[351863]|0;
$14 = HEAP32[(1407488)>>2]|0;
$15 = (($0) - ($14))|0;
$16 = (($13) + ($15)|0);
$17 = HEAP8[$16>>0]|0;
$phitmp = ($17<<24>>24)==(2);
if (!($phitmp)) {
STACKTOP = sp;return;
}
$18 = (_Random_Next(535440,3)|0);
$19 = (($18) + 5)|0;
_Game_UpdateBlock($7,$9,$11,0);
$20 = (_TreeGen_CanGrow($7,$9,$11,$19)|0);
$21 = ($20<<24>>24)==(0);
if ($21) {
_Game_UpdateBlock($7,$9,$11,6);
STACKTOP = sp;return;
}
$22 = (_TreeGen_Grow($7,$9,$11,$19,$2,$3)|0);
$23 = ($22|0)>(0);
if (!($23)) {
STACKTOP = sp;return;
}
$$038 = 0;
while(1) {
$24 = (($2) + (($$038*12)|0)|0);
$25 = HEAP32[$24>>2]|0;
$26 = (((($2) + (($$038*12)|0)|0)) + 4|0);
$27 = HEAP32[$26>>2]|0;
$28 = (((($2) + (($$038*12)|0)|0)) + 8|0);
$29 = HEAP32[$28>>2]|0;
$30 = (($3) + ($$038)|0);
$31 = HEAP8[$30>>0]|0;
$32 = $31&255;
_Game_UpdateBlock($25,$27,$29,$32);
$33 = (($$038) + 1)|0;
$exitcond = ($33|0)==($22|0);
if ($exitcond) {
break;
} else {
$$038 = $33;
}
}
STACKTOP = sp;return;
}
function _Physics_HandleDirt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = (_Lighting_IsLit($5,$7,$9)|0);
$11 = ($10<<24>>24)==(0);
if ($11) {
return;
}
_Game_UpdateBlock($5,$7,$9,2);
return;
}
function _Physics_HandleGrass($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = (_Lighting_IsLit($5,$7,$9)|0);
$11 = ($10<<24>>24)==(0);
if (!($11)) {
return;
}
_Game_UpdateBlock($5,$7,$9,3);
return;
}
function _Physics_HandleFlower($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = (_Lighting_IsLit($5,$7,$9)|0);
$11 = ($10<<24>>24)==(0);
if ($11) {
_Game_UpdateBlock($5,$7,$9,0);
_Physics_ActivateNeighbours($5,$7,$9,$0);
return;
}
$12 = ($7|0)>(0);
if (!($12)) {
return;
}
$13 = HEAP32[351863]|0;
$14 = HEAP32[(1407488)>>2]|0;
$15 = (($0) - ($14))|0;
$16 = (($13) + ($15)|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17 & -2;
$switch = ($18<<24>>24)==(2);
if ($switch) {
return;
}
_Game_UpdateBlock($5,$7,$9,0);
_Physics_ActivateNeighbours($5,$7,$9,$0);
return;
}
function _Physics_HandleMushroom($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = (_Lighting_IsLit($5,$7,$9)|0);
$11 = ($10<<24>>24)==(0);
if (!($11)) {
_Game_UpdateBlock($5,$7,$9,0);
_Physics_ActivateNeighbours($5,$7,$9,$0);
return;
}
$12 = ($7|0)>(0);
if (!($12)) {
return;
}
$13 = HEAP32[351863]|0;
$14 = HEAP32[(1407488)>>2]|0;
$15 = (($0) - ($14))|0;
$16 = (($13) + ($15)|0);
$17 = HEAP8[$16>>0]|0;
switch ($17<<24>>24) {
case 4: case 1: {
return;
break;
}
default: {
}
}
_Game_UpdateBlock($5,$7,$9,0);
_Physics_ActivateNeighbours($5,$7,$9,$0);
return;
}
function _Physics_PlaceLava($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0 | -268435456;
_TickQueue_Enqueue(1230344,$2);
return;
}
function _Physics_PlaceWater($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0 | 671088640;
_TickQueue_Enqueue(1230368,$2);
return;
}
function _Physics_PlaceSponge($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$03741 = 0, $$040 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $switch = 0, $switch$1 = 0, $switch$2 = 0, $switch$3 = 0, $switch$4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = (($7) + -2)|0;
$11 = (($7) + 2)|0;
$12 = (($9) + -2)|0;
$13 = (($9) + 2)|0;
$14 = (($5) + -2)|0;
$15 = (($5) + -1)|0;
$16 = (($5) + 1)|0;
$17 = (($5) + 2)|0;
$$03741 = $10;
while(1) {
$$040 = $12;
while(1) {
$18 = (_World_Contains($14,$$03741,$$040)|0);
$19 = ($18<<24>>24)==(0);
if (!($19)) {
$20 = (_World_GetBlock($14,$$03741,$$040)|0);
$21 = $20 & -2;
$switch = ($21<<16>>16)==(8);
if ($switch) {
_Game_UpdateBlock($14,$$03741,$$040,0);
}
}
$26 = (_World_Contains($15,$$03741,$$040)|0);
$27 = ($26<<24>>24)==(0);
if (!($27)) {
$28 = (_World_GetBlock($15,$$03741,$$040)|0);
$29 = $28 & -2;
$switch$1 = ($29<<16>>16)==(8);
if ($switch$1) {
_Game_UpdateBlock($15,$$03741,$$040,0);
}
}
$30 = (_World_Contains($5,$$03741,$$040)|0);
$31 = ($30<<24>>24)==(0);
if (!($31)) {
$32 = (_World_GetBlock($5,$$03741,$$040)|0);
$33 = $32 & -2;
$switch$2 = ($33<<16>>16)==(8);
if ($switch$2) {
_Game_UpdateBlock($5,$$03741,$$040,0);
}
}
$34 = (_World_Contains($16,$$03741,$$040)|0);
$35 = ($34<<24>>24)==(0);
if (!($35)) {
$36 = (_World_GetBlock($16,$$03741,$$040)|0);
$37 = $36 & -2;
$switch$3 = ($37<<16>>16)==(8);
if ($switch$3) {
_Game_UpdateBlock($16,$$03741,$$040,0);
}
}
$38 = (_World_Contains($17,$$03741,$$040)|0);
$39 = ($38<<24>>24)==(0);
if (!($39)) {
$40 = (_World_GetBlock($17,$$03741,$$040)|0);
$41 = $40 & -2;
$switch$4 = ($41<<16>>16)==(8);
if ($switch$4) {
_Game_UpdateBlock($17,$$03741,$$040,0);
}
}
$22 = (($$040) + 1)|0;
$23 = ($$040|0)<($13|0);
if ($23) {
$$040 = $22;
} else {
break;
}
}
$24 = (($$03741) + 1)|0;
$25 = ($$03741|0)<($11|0);
if ($25) {
$$03741 = $24;
} else {
break;
}
}
return;
}
function _Physics_DeleteSponge($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$04247 = 0, $$04344 = 0, $$046 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = (($7) + -3)|0;
$11 = (($7) + 3)|0;
$12 = (($9) + -3)|0;
$13 = (($9) + 3)|0;
$14 = (($5) + -3)|0;
$15 = (($5) + 3)|0;
$$04247 = $10;
while(1) {
$16 = (($$04247) - ($7))|0;
$$046 = $12;
while(1) {
$17 = (($$046) - ($9))|0;
$$04344 = $14;
while(1) {
$18 = (_Math_AbsI($16)|0);
$19 = ($18|0)==(3);
if ($19) {
label = 7;
} else {
$20 = (_Math_AbsI($17)|0);
$21 = ($20|0)==(3);
if ($21) {
label = 7;
} else {
$22 = (($$04344) - ($5))|0;
$23 = (_Math_AbsI($22)|0);
$24 = ($23|0)==(3);
if ($24) {
label = 7;
}
}
}
if ((label|0) == 7) {
label = 0;
$25 = (_World_Contains($$04344,$$04247,$$046)|0);
$26 = ($25<<24>>24)==(0);
if (!($26)) {
$27 = HEAP32[(1407472)>>2]|0;
$28 = Math_imul($27, $$04247)|0;
$29 = (($28) + ($$046))|0;
$30 = HEAP32[(1407464)>>2]|0;
$31 = Math_imul($29, $30)|0;
$32 = (($31) + ($$04344))|0;
$33 = HEAP32[351863]|0;
$34 = (($33) + ($32)|0);
$35 = HEAP8[$34>>0]|0;
$36 = $35 & -2;
$switch = ($36<<24>>24)==(8);
if ($switch) {
$37 = $32 | 134217728;
_TickQueue_Enqueue(1230368,$37);
}
}
}
$38 = (($$04344) + 1)|0;
$39 = ($$04344|0)<($15|0);
if ($39) {
$$04344 = $38;
} else {
break;
}
}
$40 = (($$046) + 1)|0;
$41 = ($$046|0)<($13|0);
if ($41) {
$$046 = $40;
} else {
break;
}
}
$42 = (($$04247) + 1)|0;
$43 = ($$04247|0)<($11|0);
if ($43) {
$$04247 = $42;
} else {
break;
}
}
return;
}
function _Physics_ActivateWater($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = ($5|0)>(0);
if ($10) {
$11 = (($5) + -1)|0;
$12 = (($0) + -1)|0;
_Physics_PropagateWater($12,$11,$7,$9);
}
$13 = HEAP32[(1407476)>>2]|0;
$14 = ($5|0)<($13|0);
if ($14) {
$15 = (($5) + 1)|0;
$16 = (($0) + 1)|0;
_Physics_PropagateWater($16,$15,$7,$9);
}
$17 = ($9|0)>(0);
if ($17) {
$18 = (($9) + -1)|0;
$19 = HEAP32[(1407464)>>2]|0;
$20 = (($0) - ($19))|0;
_Physics_PropagateWater($20,$5,$7,$18);
}
$21 = HEAP32[(1407484)>>2]|0;
$22 = ($9|0)<($21|0);
if ($22) {
$23 = (($9) + 1)|0;
$24 = HEAP32[(1407464)>>2]|0;
$25 = (($24) + ($0))|0;
_Physics_PropagateWater($25,$5,$7,$23);
}
$26 = ($7|0)>(0);
if (!($26)) {
return;
}
$27 = (($7) + -1)|0;
$28 = HEAP32[(1407488)>>2]|0;
$29 = (($0) - ($28))|0;
_Physics_PropagateWater($29,$5,$27,$9);
return;
}
function _Physics_ActivateLava($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = ($5|0)>(0);
if ($10) {
$11 = (($5) + -1)|0;
$12 = (($0) + -1)|0;
_Physics_PropagateLava($12,$11,$7,$9);
}
$13 = HEAP32[(1407476)>>2]|0;
$14 = ($5|0)<($13|0);
if ($14) {
$15 = (($5) + 1)|0;
$16 = (($0) + 1)|0;
_Physics_PropagateLava($16,$15,$7,$9);
}
$17 = ($9|0)>(0);
if ($17) {
$18 = (($9) + -1)|0;
$19 = HEAP32[(1407464)>>2]|0;
$20 = (($0) - ($19))|0;
_Physics_PropagateLava($20,$5,$7,$18);
}
$21 = HEAP32[(1407484)>>2]|0;
$22 = ($9|0)<($21|0);
if ($22) {
$23 = (($9) + 1)|0;
$24 = HEAP32[(1407464)>>2]|0;
$25 = (($24) + ($0))|0;
_Physics_PropagateLava($25,$5,$7,$23);
}
$26 = ($7|0)>(0);
if (!($26)) {
return;
}
$27 = (($7) + -1)|0;
$28 = HEAP32[(1407488)>>2]|0;
$29 = (($0) - ($28))|0;
_Physics_PropagateLava($29,$5,$27,$9);
return;
}
function _Physics_HandleSlab($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = HEAP32[(1407488)>>2]|0;
$11 = ($10|0)>($0|0);
if ($11) {
return;
}
$12 = HEAP32[351863]|0;
$13 = (($0) - ($10))|0;
$14 = (($12) + ($13)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(44);
if (!($16)) {
return;
}
$17 = (($7) + -1)|0;
_Game_UpdateBlock($5,$7,$9,0);
_Game_UpdateBlock($5,$17,$9,43);
return;
}
function _Physics_HandleCobblestoneSlab($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
$10 = HEAP32[(1407488)>>2]|0;
$11 = ($10|0)>($0|0);
if ($11) {
return;
}
$12 = HEAP32[351863]|0;
$13 = (($0) - ($10))|0;
$14 = (($12) + ($13)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(50);
if (!($16)) {
return;
}
$17 = (($7) + -1)|0;
_Game_UpdateBlock($5,$7,$9,0);
_Game_UpdateBlock($5,$17,$9,4);
return;
}
function _Physics_HandleTnt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = (($0|0) / ($2|0))&-1;
$4 = Math_imul($3, $2)|0;
$5 = (($0) - ($4))|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = (($3|0) / ($6|0))&-1;
$8 = Math_imul($7, $6)|0;
$9 = (($3) - ($8))|0;
_Physics_Explode($5,$7,$9);
return;
}
function _Physics_Explode($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$01 = 0, $$0703 = 0, $$0712 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond4 = 0, $exitcond5 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
_Game_UpdateBlock($0,$1,$2,0);
_Physics_ActivateNeighbours($0,$1,$2,$8);
$$0703 = -4;
while(1) {
$9 = Math_imul($$0703, $$0703)|0;
$10 = (($$0703) + ($1))|0;
$$0712 = -4;
while(1) {
$11 = Math_imul($$0712, $$0712)|0;
$12 = (($11) + ($9))|0;
$13 = (($$0712) + ($2))|0;
$$01 = -4;
while(1) {
$14 = Math_imul($$01, $$01)|0;
$15 = (($12) + ($14))|0;
$16 = ($15>>>0)>(16);
do {
if (!($16)) {
$17 = (($$01) + ($0))|0;
$18 = (_World_Contains($17,$10,$13)|0);
$19 = ($18<<24>>24)==(0);
if (!($19)) {
$20 = HEAP32[(1407472)>>2]|0;
$21 = Math_imul($20, $10)|0;
$22 = (($21) + ($13))|0;
$23 = HEAP32[(1407464)>>2]|0;
$24 = Math_imul($22, $23)|0;
$25 = (($24) + ($17))|0;
$26 = HEAP32[351863]|0;
$27 = (($26) + ($25)|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28&255)<(66);
if ($29) {
$30 = $28&255;
$31 = (336 + ($30)|0);
$32 = HEAP8[$31>>0]|0;
$33 = ($32<<24>>24)==(0);
if (!($33)) {
break;
}
}
_Game_UpdateBlock($17,$10,$13,0);
_Physics_ActivateNeighbours($17,$10,$13,$25);
}
}
} while(0);
$34 = (($$01) + 1)|0;
$exitcond = ($34|0)==(5);
if ($exitcond) {
break;
} else {
$$01 = $34;
}
}
$35 = (($$0712) + 1)|0;
$exitcond4 = ($35|0)==(5);
if ($exitcond4) {
break;
} else {
$$0712 = $35;
}
}
$36 = (($$0703) + 1)|0;
$exitcond5 = ($36|0)==(5);
if ($exitcond5) {
break;
} else {
$$0703 = $36;
}
}
return;
}
function _World_Contains($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _Physics_PropagateLava($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[351863]|0;
$5 = (($4) + ($0)|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6 & -2;
$switch = ($7<<24>>24)==(8);
if ($switch) {
_Game_UpdateBlock($1,$2,$3,1);
return;
}
$8 = $6&255;
$9 = (578052 + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(0);
if (!($11)) {
return;
}
$12 = $0 | -268435456;
_TickQueue_Enqueue(1230344,$12);
_Game_UpdateBlock($1,$2,$3,10);
return;
}
function _TickQueue_Enqueue($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($3|0)==($5|0);
if ($6) {
_TickQueue_Resize($0);
}
$7 = HEAP32[$0>>2]|0;
$8 = ((($0)) + 20|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + ($9<<2)|0);
HEAP32[$10>>2] = $1;
$11 = HEAP32[$8>>2]|0;
$12 = (($11) + 1)|0;
$13 = ((($0)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = $12 & $14;
HEAP32[$8>>2] = $15;
$16 = HEAP32[$2>>2]|0;
$17 = (($16) + 1)|0;
HEAP32[$2>>2] = $17;
return;
}
function _TickQueue_Resize($0) {
$0 = $0|0;
var $$030 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)>(536870910);
if ($3) {
_Chat_AddRaw(19733);
_TickQueue_Clear($0);
return;
}
$4 = $2 << 1;
$5 = ($4|0)>(32);
$spec$store$select = $5 ? $4 : 32;
$6 = (_Mem_Alloc($spec$store$select,4,19770)|0);
$7 = ((($0)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)>(0);
if ($9) {
$10 = ((($0)) + 16|0);
$11 = ((($0)) + 8|0);
$12 = HEAP32[$0>>2]|0;
$$030 = 0;
while(1) {
$13 = HEAP32[$10>>2]|0;
$14 = (($13) + ($$030))|0;
$15 = HEAP32[$11>>2]|0;
$16 = $14 & $15;
$17 = (($12) + ($16<<2)|0);
$18 = HEAP32[$17>>2]|0;
$19 = (($6) + ($$030<<2)|0);
HEAP32[$19>>2] = $18;
$20 = (($$030) + 1)|0;
$21 = HEAP32[$7>>2]|0;
$22 = ($20|0)<($21|0);
if ($22) {
$$030 = $20;
} else {
break;
}
}
}
$23 = HEAP32[$0>>2]|0;
_Mem_Free($23);
HEAP32[$0>>2] = $6;
HEAP32[$1>>2] = $spec$store$select;
$24 = (($spec$store$select) + -1)|0;
$25 = ((($0)) + 8|0);
HEAP32[$25>>2] = $24;
$26 = ((($0)) + 16|0);
HEAP32[$26>>2] = 0;
$27 = HEAP32[$7>>2]|0;
$28 = ((($0)) + 20|0);
HEAP32[$28>>2] = $27;
return;
}
function _Physics_PropagateWater($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$04148 = 0, $$04243 = 0, $$044 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $7 = 0, $8 = 0, $9 = 0;
var $or$cond = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[351863]|0;
$5 = (($4) + ($0)|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6 & -2;
$switch = ($7<<24>>24)==(10);
if ($switch) {
_Game_UpdateBlock($1,$2,$3,1);
return;
}
$8 = $6&255;
$9 = (578052 + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)!=(0);
$12 = ($6<<24>>24)==(51);
$or$cond = $12 | $11;
if ($or$cond) {
return;
}
$13 = ($2|0)<(2);
$14 = (($2) + -2)|0;
$15 = $13 ? 0 : $14;
$16 = HEAP32[307599]|0;
$17 = ($16|0)<($2|0);
$18 = HEAP32[(1407480)>>2]|0;
$19 = (($2) + 2)|0;
$20 = $17 ? $18 : $19;
$21 = ($15|0)>($20|0);
L8: do {
if (!($21)) {
$22 = ($3|0)<(2);
$23 = (($3) + -2)|0;
$24 = $22 ? 0 : $23;
$25 = HEAP32[307600]|0;
$26 = ($25|0)<($3|0);
$27 = HEAP32[(1407484)>>2]|0;
$28 = (($3) + 2)|0;
$29 = $26 ? $27 : $28;
$30 = ($24|0)>($29|0);
$31 = HEAP32[307599]|0;
$32 = ($31|0)<($2|0);
$33 = HEAP32[(1407480)>>2]|0;
$34 = $32 ? $33 : $19;
$35 = ($1|0)<(2);
$36 = (($1) + -2)|0;
$37 = $35 ? 0 : $36;
$38 = HEAP32[307598]|0;
$39 = ($38|0)<($1|0);
$40 = HEAP32[(1407476)>>2]|0;
$41 = (($1) + 2)|0;
$42 = $39 ? $40 : $41;
$43 = ($37|0)>($42|0);
$44 = HEAP32[307600]|0;
$45 = ($44|0)<($3|0);
$46 = HEAP32[(1407484)>>2]|0;
$47 = $45 ? $46 : $28;
$48 = HEAP32[307598]|0;
$49 = ($48|0)<($1|0);
$50 = HEAP32[(1407476)>>2]|0;
$51 = $49 ? $50 : $41;
$$04148 = $15;
L10: while(1) {
if (!($30)) {
$$044 = $24;
while(1) {
if (!($43)) {
$$04243 = $37;
while(1) {
$54 = (_World_GetBlock($$04243,$$04148,$$044)|0);
$55 = ($54<<16>>16)==(19);
if ($55) {
break L10;
}
$52 = (($$04243) + 1)|0;
$53 = ($$04243|0)<($51|0);
if ($53) {
$$04243 = $52;
} else {
break;
}
}
}
$56 = (($$044) + 1)|0;
$57 = ($$044|0)<($47|0);
if ($57) {
$$044 = $56;
} else {
break;
}
}
}
$58 = (($$04148) + 1)|0;
$59 = ($$04148|0)<($34|0);
if ($59) {
$$04148 = $58;
} else {
break L8;
}
}
return;
}
} while(0);
$60 = $0 | 671088640;
_TickQueue_Enqueue(1230368,$60);
_Game_UpdateBlock($1,$2,$3,8);
return;
}
function _World_GetBlock($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _Physics_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister((1254196),0,271);
return;
}
function _Physics_Tick() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1226244]|0;
$1 = ($0<<24>>24)!=(0);
$2 = HEAP32[351863]|0;
$3 = ($2|0)!=(0|0);
$or$cond = $1 & $3;
if (!($or$cond)) {
return;
}
_Physics_TickLava();
_Physics_TickWater();
$4 = HEAP32[307601]|0;
$5 = (($4) + 1)|0;
HEAP32[307601] = $5;
_Physics_TickRandomBlocks();
return;
}
function _Physics_TickLava() {
var $$01314 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
$1 = HEAP32[(1230356)>>2]|0;
$2 = ($1|0)>(0);
if (!($2)) {
STACKTOP = sp;return;
}
$$01314 = 0;
while(1) {
$3 = (_Physics_CheckItem(1230344,$0)|0);
$4 = ($3<<24>>24)==(0);
if (!($4)) {
$5 = HEAP32[351863]|0;
$6 = HEAP32[$0>>2]|0;
$7 = (($5) + ($6)|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8 & -2;
$switch = ($9<<24>>24)==(10);
if ($switch) {
$10 = $8&255;
_Physics_ActivateLava($6,$10);
}
}
$11 = (($$01314) + 1)|0;
$exitcond = ($11|0)==($1|0);
if ($exitcond) {
break;
} else {
$$01314 = $11;
}
}
STACKTOP = sp;return;
}
function _Physics_TickWater() {
var $$01314 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
$1 = HEAP32[(1230380)>>2]|0;
$2 = ($1|0)>(0);
if (!($2)) {
STACKTOP = sp;return;
}
$$01314 = 0;
while(1) {
$3 = (_Physics_CheckItem(1230368,$0)|0);
$4 = ($3<<24>>24)==(0);
if (!($4)) {
$5 = HEAP32[351863]|0;
$6 = HEAP32[$0>>2]|0;
$7 = (($5) + ($6)|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8 & -2;
$switch = ($9<<24>>24)==(8);
if ($switch) {
$10 = $8&255;
_Physics_ActivateWater($6,$10);
}
}
$11 = (($$01314) + 1)|0;
$exitcond = ($11|0)==($1|0);
if ($exitcond) {
break;
} else {
$$01314 = $11;
}
}
STACKTOP = sp;return;
}
function _Physics_TickRandomBlocks() {
var $$06270 = 0, $$06364 = 0, $$065 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407468)>>2]|0;
$1 = ($0|0)>(0);
if (!($1)) {
return;
}
$$06270 = 0;
while(1) {
$2 = $$06270 | 15;
$3 = HEAP32[(1407480)>>2]|0;
$4 = ($2|0)<($3|0);
$5 = $4 ? $2 : $3;
$6 = HEAP32[(1407472)>>2]|0;
$7 = ($6|0)>(0);
if ($7) {
$$065 = 0;
while(1) {
$8 = $$065 | 15;
$9 = HEAP32[(1407484)>>2]|0;
$10 = ($8|0)<($9|0);
$11 = $10 ? $8 : $9;
$12 = HEAP32[(1407464)>>2]|0;
$13 = ($12|0)>(0);
if ($13) {
$$06364 = 0;$22 = $12;
while(1) {
$14 = $$06364 | 15;
$15 = HEAP32[(1407476)>>2]|0;
$16 = ($14|0)<($15|0);
$17 = $16 ? $14 : $15;
$18 = HEAP32[(1407472)>>2]|0;
$19 = Math_imul($18, $$06270)|0;
$20 = (($19) + ($$065))|0;
$21 = Math_imul($20, $22)|0;
$23 = (($21) + ($$06364))|0;
$24 = Math_imul($18, $5)|0;
$25 = (($24) + ($11))|0;
$26 = Math_imul($25, $22)|0;
$27 = (($26) + ($17))|0;
$28 = (_Random_Range($23,$27)|0);
$29 = HEAP32[351863]|0;
$30 = (($29) + ($28)|0);
$31 = HEAP8[$30>>0]|0;
$32 = $31&255;
$33 = (1227272 + ($32<<2)|0);
$34 = HEAP32[$33>>2]|0;
$35 = ($34|0)==(0|0);
if (!($35)) {
$36 = $31&255;
FUNCTION_TABLE_vii[$34 & 127]($28,$36);
}
$37 = (_Random_Range($23,$27)|0);
$38 = HEAP32[351863]|0;
$39 = (($38) + ($37)|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40&255;
$42 = (1227272 + ($41<<2)|0);
$43 = HEAP32[$42>>2]|0;
$44 = ($43|0)==(0|0);
if (!($44)) {
$45 = $40&255;
FUNCTION_TABLE_vii[$43 & 127]($37,$45);
}
$46 = (_Random_Range($23,$27)|0);
$47 = HEAP32[351863]|0;
$48 = (($47) + ($46)|0);
$49 = HEAP8[$48>>0]|0;
$50 = $49&255;
$51 = (1227272 + ($50<<2)|0);
$52 = HEAP32[$51>>2]|0;
$53 = ($52|0)==(0|0);
if (!($53)) {
$54 = $49&255;
FUNCTION_TABLE_vii[$52 & 127]($46,$54);
}
$55 = (($$06364) + 16)|0;
$56 = HEAP32[(1407464)>>2]|0;
$57 = ($55|0)<($56|0);
if ($57) {
$$06364 = $55;$22 = $56;
} else {
break;
}
}
}
$58 = (($$065) + 16)|0;
$59 = HEAP32[(1407472)>>2]|0;
$60 = ($58|0)<($59|0);
if ($60) {
$$065 = $58;
} else {
break;
}
}
}
$61 = (($$06270) + 16)|0;
$62 = HEAP32[(1407468)>>2]|0;
$63 = ($61|0)<($62|0);
if ($63) {
$$06270 = $61;
} else {
break;
}
}
return;
}
function _Random_Range($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (($1) - ($0))|0;
$3 = (_Random_Next(535440,$2)|0);
$4 = (($3) + ($0))|0;
return ($4|0);
}
function _Physics_CheckItem($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_TickQueue_Dequeue($0)|0);
$3 = $2 & 134217727;
HEAP32[$1>>2] = $3;
$4 = ($2>>>0)>(134217727);
if (!($4)) {
$$0 = 1;
return ($$0|0);
}
$5 = (($2) + -134217728)|0;
_TickQueue_Enqueue($0,$5);
$$0 = 0;
return ($$0|0);
}
function _TickQueue_Dequeue($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = ((($0)) + 16|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($1) + ($3<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 1)|0;
$7 = ((($0)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8 & $6;
HEAP32[$2>>2] = $9;
$10 = ((($0)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($11) + -1)|0;
HEAP32[$10>>2] = $12;
return ($5|0);
}
function _Builder_Init() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[104] = -1;
HEAP32[(420)>>2] = 1;
HEAP32[(424)>>2] = -18;
HEAP32[(428)>>2] = 18;
HEAP32[(432)>>2] = -324;
HEAP32[(436)>>2] = 324;
$0 = HEAP8[1408229]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
_Builder_ApplyActive();
return;
}
$2 = (_Options_GetBool(33272,0)|0);
HEAP8[1408208] = $2;
_Builder_ApplyActive();
return;
}
function _Builder_OnNewMapLoaded() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407516)>>2]|0;
$1 = HEAP32[(1407520)>>2]|0;
$2 = (($1) + ($0))|0;
$3 = ($2|0)>(0);
$spec$select = $3 ? $2 : 0;
HEAP32[307602] = $spec$select;
$4 = ($0|0)>(0);
$5 = $4 ? $0 : 0;
HEAP32[307603] = $5;
return;
}
function _Builder_ApplyActive() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408208]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
_NormalBuilder_SetActive();
return;
} else {
_AdvBuilder_SetActive();
return;
}
}
function _AdvBuilder_SetActive() {
var label = 0, sp = 0;
sp = STACKTOP;
_Builder_SetDefault();
HEAP32[307604] = 1;
HEAP32[307605] = 1;
HEAP32[307606] = 2;
HEAP32[307607] = 272;
HEAP32[307616] = 3;
return;
}
function _NormalBuilder_SetActive() {
var label = 0, sp = 0;
sp = STACKTOP;
_Builder_SetDefault();
HEAP32[307604] = 2;
HEAP32[307605] = 3;
HEAP32[307606] = 4;
HEAP32[307607] = 273;
return;
}
function _Builder_SetDefault() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[307604] = 0;
HEAP32[307605] = 0;
HEAP32[307606] = 0;
HEAP32[307607] = 0;
HEAP32[307616] = 4;
return;
}
function _NormalBuilder_StretchXLiquid($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0 = 0, $$02331 = 0, $$02432 = 0, $$02432$in = 0, $$02533 = 0, $$02533$in = 0, $$026 = 0, $$02629 = 0, $$02634 = 0, $$lobit = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $20 = 0, $21 = 0, $22 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond30 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = (_Builder_OccludedLiquid($4)|0);
$7 = ($6<<24>>24)==(0);
if (!($7)) {
$$0 = 0;
return ($$0|0);
}
$8 = $5&65535;
$9 = (1225476 + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$$lobit = $10 & 32;
$$02629 = (($1) + 1)|0;
$11 = HEAP32[307615]|0;
$12 = ($$02629|0)>=($11|0);
$13 = ($$lobit<<24>>24)==(0);
$or$cond30 = $13 | $12;
if ($or$cond30) {
$$0 = 1;
return ($$0|0);
}
$$02331 = 1;$$02432$in = $0;$$02533$in = $4;$$02634 = $$02629;
while(1) {
$$02432 = (($$02432$in) + 6)|0;
$$02533 = (($$02533$in) + 1)|0;
$14 = (_Normal_CanStretch($5,$$02533,$$02634,$2,$3,5)|0);
$15 = ($14<<24>>24)==(0);
if ($15) {
$$0 = $$02331;
label = 7;
break;
}
$16 = (_Builder_OccludedLiquid($$02533)|0);
$17 = ($16<<24>>24)==(0);
if (!($17)) {
$$0 = $$02331;
label = 7;
break;
}
$18 = HEAP32[307608]|0;
$19 = (($18) + ($$02432)|0);
HEAP8[$19>>0] = 0;
$20 = (($$02331) + 1)|0;
$$026 = (($$02634) + 1)|0;
$21 = HEAP32[307615]|0;
$22 = ($$026|0)>=($21|0);
$or$cond = $13 | $22;
if ($or$cond) {
$$0 = $20;
label = 7;
break;
} else {
$$02331 = $20;$$02432$in = $$02432;$$02533$in = $$02533;$$02634 = $$026;
}
}
if ((label|0) == 7) {
return ($$0|0);
}
return (0)|0;
}
function _NormalBuilder_StretchX($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $$021$lcssa = 0, $$02128 = 0, $$022 = 0, $$02225 = 0, $$02230 = 0, $$02331 = 0, $$02331$in = 0, $$029 = 0, $$029$in = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $7 = 0, $8 = 0, $9 = 0, $brmerge = 0, $brmerge27 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = $5&65535;
$8 = (1225476 + ($7)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $6&255;
$12 = 1 << $11;
$13 = $12 & $10;
$14 = ($13|0)==(0);
$$02225 = (($1) + 1)|0;
$15 = HEAP32[307615]|0;
$16 = ($$02225|0)>=($15|0);
$brmerge27 = $14 | $16;
if ($brmerge27) {
$$021$lcssa = 1;
return ($$021$lcssa|0);
}
$$02128 = 1;$$02230 = $$02225;$$02331$in = $4;$$029$in = $0;
while(1) {
$$029 = (($$029$in) + 6)|0;
$$02331 = (($$02331$in) + 1)|0;
$17 = (_Normal_CanStretch($5,$$02331,$$02230,$2,$3,$6)|0);
$18 = ($17<<24>>24)==(0);
if ($18) {
$$021$lcssa = $$02128;
label = 5;
break;
}
$19 = HEAP32[307608]|0;
$20 = (($19) + ($$029)|0);
HEAP8[$20>>0] = 0;
$21 = (($$02128) + 1)|0;
$$022 = (($$02230) + 1)|0;
$22 = HEAP32[307615]|0;
$23 = ($$022|0)>=($22|0);
$brmerge = $14 | $23;
if ($brmerge) {
$$021$lcssa = $21;
label = 5;
break;
} else {
$$02128 = $21;$$02230 = $$022;$$02331$in = $$02331;$$029$in = $$029;
}
}
if ((label|0) == 5) {
return ($$021$lcssa|0);
}
return (0)|0;
}
function _NormalBuilder_StretchZ($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $$021$lcssa = 0, $$02128 = 0, $$022 = 0, $$02225 = 0, $$02230 = 0, $$02331 = 0, $$02331$in = 0, $$029 = 0, $$029$in = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $7 = 0, $8 = 0, $9 = 0, $brmerge = 0, $brmerge27 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = $5&65535;
$8 = (1225476 + ($7)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $6&255;
$12 = 1 << $11;
$13 = $12 & $10;
$14 = ($13|0)==(0);
$$02225 = (($3) + 1)|0;
$15 = HEAP32[307613]|0;
$16 = ($$02225|0)>=($15|0);
$brmerge27 = $14 | $16;
if ($brmerge27) {
$$021$lcssa = 1;
return ($$021$lcssa|0);
}
$$02128 = 1;$$02230 = $$02225;$$02331$in = $4;$$029$in = $0;
while(1) {
$$029 = (($$029$in) + 96)|0;
$$02331 = (($$02331$in) + 18)|0;
$17 = (_Normal_CanStretch($5,$$02331,$1,$2,$$02230,$6)|0);
$18 = ($17<<24>>24)==(0);
if ($18) {
$$021$lcssa = $$02128;
label = 5;
break;
}
$19 = HEAP32[307608]|0;
$20 = (($19) + ($$029)|0);
HEAP8[$20>>0] = 0;
$21 = (($$02128) + 1)|0;
$$022 = (($$02230) + 1)|0;
$22 = HEAP32[307613]|0;
$23 = ($$022|0)>=($22|0);
$brmerge = $14 | $23;
if ($brmerge) {
$$021$lcssa = $21;
label = 5;
break;
} else {
$$02128 = $21;$$02230 = $$022;$$02331$in = $$02331;$$029$in = $$029;
}
}
if ((label|0) == 5) {
return ($$021$lcssa|0);
}
return (0)|0;
}
function _NormalBuilder_RenderBlock($0) {
$0 = $0|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$076$0$$sroa_idx = 0, $$sroa$076$0$copyload = 0.0, $$sroa$4$0$$sroa_idx72 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$478$0$$sroa_idx79 = 0, $$sroa$478$0$copyload = 0.0, $$sroa$5$0$$sroa_idx74 = 0, $$sroa$5$0$copyload = 0.0, $$sroa$581$0$$sroa_idx82 = 0, $$sroa$581$0$copyload = 0.0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0;
var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0;
var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0;
var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0;
var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0;
var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0;
var $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0;
var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0;
var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0.0, $68 = 0.0, $69 = 0.0;
var $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[704098]|0;
$2 = $1&65535;
$3 = (583428 + ($2)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(5);
if ($5) {
$6 = (571140 + ($2)|0);
$7 = HEAP8[$6>>0]|0;
HEAP8[1408209] = $7;
$8 = (585732 + ($2)|0);
$9 = HEAP8[$8>>0]|0;
HEAP8[1408210] = $9;
_Builder_DrawSprite();
return;
}
$10 = HEAP32[307608]|0;
$11 = (($10) + ($0)|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = (($0) + 1)|0;
$15 = (($10) + ($14)|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = (($0) + 2)|0;
$19 = (($10) + ($18)|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = (($0) + 3)|0;
$23 = (($10) + ($22)|0);
$24 = HEAP8[$23>>0]|0;
$25 = $24&255;
$26 = (($0) + 4)|0;
$27 = (($10) + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = $28&255;
$30 = (($0) + 5)|0;
$31 = (($10) + ($30)|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32&255;
$34 = ($16<<24>>24)==(0);
$35 = $16 | $12;
$36 = ($20<<24>>24)==(0);
$37 = $35 | $20;
$38 = ($24<<24>>24)==(0);
$39 = $37 | $24;
$40 = ($28<<24>>24)==(0);
$41 = $39 | $28;
$42 = ($32<<24>>24)==(0);
$43 = $41 | $32;
$44 = ($43<<24>>24)==(0);
if ($44) {
return;
}
$45 = ($12<<24>>24)==(0);
$46 = (571140 + ($2)|0);
$47 = HEAP8[$46>>0]|0;
$48 = ($4<<24>>24)==(3);
$49 = $48&1;
$50 = $49 << 9;
$51 = (582660 + ($2)|0);
$52 = HEAP8[$51>>0]|0;
$53 = $52&255;
$54 = (588036 + (($2*12)|0)|0);
;HEAP32[(1241064)>>2]=HEAP32[$54>>2]|0;HEAP32[(1241064)+4>>2]=HEAP32[$54+4>>2]|0;HEAP32[(1241064)+8>>2]=HEAP32[$54+8>>2]|0;
$55 = +HEAPF32[(1241068)>>2];
$56 = 1.0 - $55;
HEAPF32[(1241068)>>2] = $56;
$57 = (597252 + (($2*12)|0)|0);
;HEAP32[(1241076)>>2]=HEAP32[$57>>2]|0;HEAP32[(1241076)+4>>2]=HEAP32[$57+4>>2]|0;HEAP32[(1241076)+8>>2]=HEAP32[$57+8>>2]|0;
$58 = +HEAPF32[(1241080)>>2];
$59 = 1.0 - $58;
HEAPF32[(1241080)>>2] = $59;
$$sroa$076$0$$sroa_idx = (606468 + (($2*12)|0)|0);
$$sroa$076$0$copyload = +HEAPF32[$$sroa$076$0$$sroa_idx>>2];
$$sroa$478$0$$sroa_idx79 = (((606468 + (($2*12)|0)|0)) + 4|0);
$$sroa$478$0$copyload = +HEAPF32[$$sroa$478$0$$sroa_idx79>>2];
$$sroa$581$0$$sroa_idx82 = (((606468 + (($2*12)|0)|0)) + 8|0);
$$sroa$581$0$copyload = +HEAPF32[$$sroa$581$0$$sroa_idx82>>2];
$$sroa$0$0$$sroa_idx = (615684 + (($2*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$4$0$$sroa_idx72 = (((615684 + (($2*12)|0)|0)) + 4|0);
$$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx72>>2];
$$sroa$5$0$$sroa_idx74 = (((615684 + (($2*12)|0)|0)) + 8|0);
$$sroa$5$0$copyload = +HEAPF32[$$sroa$5$0$$sroa_idx74>>2];
$60 = HEAP32[307609]|0;
$61 = (+($60|0));
$62 = $$sroa$076$0$copyload + $61;
HEAPF32[(1241088)>>2] = $62;
$63 = HEAP32[307610]|0;
$64 = (+($63|0));
$65 = $$sroa$478$0$copyload + $64;
HEAPF32[(1241092)>>2] = $65;
$66 = HEAP32[307611]|0;
$67 = (+($66|0));
$68 = $$sroa$581$0$copyload + $67;
HEAPF32[(1241096)>>2] = $68;
$69 = $$sroa$0$0$copyload + $61;
HEAPF32[(1241100)>>2] = $69;
$70 = $$sroa$4$0$copyload + $64;
HEAPF32[(1241104)>>2] = $70;
$71 = $$sroa$5$0$copyload + $67;
HEAPF32[(1241108)>>2] = $71;
$72 = (585732 + ($2)|0);
$73 = HEAP8[$72>>0]|0;
HEAP8[1241056] = $73;
$74 = (571908 + ($2<<2)|0);
$75 = HEAP32[$74>>2]|0;
HEAP32[(1241060)>>2] = $75;
if (!($45)) {
$76 = ($2*6)|0;
$77 = (624900 + ($76<<1)|0);
$78 = HEAP16[$77>>1]|0;
$79 = $53 & 1;
$80 = $78&65535;
$81 = HEAP32[(1384652)>>2]|0;
$82 = ($81)?($80 >>> $81):($80);
$83 = (($82) + ($50))|0;
$84 = ($47<<24>>24)==(0);
do {
if ($84) {
$85 = ($60|0)<($79|0);
if ($85) {
$88 = HEAP32[(1407576)>>2]|0;
$90 = $88;
break;
} else {
$86 = (($60) - ($79))|0;
$87 = (_Lighting_Col_XSide_Fast($86,$63,$66)|0);
$90 = $87;
break;
}
} else {
$90 = -1;
}
} while(0);
$89 = (90000 + (($83*60)|0)|0);
_Drawer_XMin($13,$90,$78,$89);
}
if (!($34)) {
$91 = HEAP16[704098]|0;
$92 = $91&65535;
$93 = ($92*6)|0;
$94 = $93 | 1;
$95 = (624900 + ($94<<1)|0);
$96 = HEAP16[$95>>1]|0;
$97 = (1)?($53 >>> 1):($53);
$98 = $97 & 1;
$99 = $96&65535;
$100 = HEAP32[(1384652)>>2]|0;
$101 = ($100)?($99 >>> $100):($99);
$102 = (($101) + ($50))|0;
$103 = ($47<<24>>24)==(0);
do {
if ($103) {
$104 = HEAP32[307609]|0;
$105 = HEAP32[(1407476)>>2]|0;
$106 = (($105) - ($98))|0;
$107 = ($104|0)>($106|0);
if ($107) {
$112 = HEAP32[(1407576)>>2]|0;
$114 = $112;
break;
} else {
$108 = (($104) + ($98))|0;
$109 = HEAP32[307610]|0;
$110 = HEAP32[307611]|0;
$111 = (_Lighting_Col_XSide_Fast($108,$109,$110)|0);
$114 = $111;
break;
}
} else {
$114 = -1;
}
} while(0);
$113 = (((90000 + (($102*60)|0)|0)) + 4|0);
_Drawer_XMax($17,$114,$96,$113);
}
if (!($36)) {
$115 = HEAP16[704098]|0;
$116 = $115&65535;
$117 = ($116*6)|0;
$118 = (($117) + 2)|0;
$119 = (624900 + ($118<<1)|0);
$120 = HEAP16[$119>>1]|0;
$121 = (2)?($53 >>> 2):($53);
$122 = $121 & 1;
$123 = $120&65535;
$124 = HEAP32[(1384652)>>2]|0;
$125 = ($124)?($123 >>> $124):($123);
$126 = (($125) + ($50))|0;
$127 = ($47<<24>>24)==(0);
do {
if ($127) {
$128 = HEAP32[307611]|0;
$129 = ($128|0)<($122|0);
if ($129) {
$134 = HEAP32[(1407580)>>2]|0;
$136 = $134;
break;
} else {
$130 = HEAP32[307609]|0;
$131 = HEAP32[307610]|0;
$132 = (($128) - ($122))|0;
$133 = (_Lighting_Col_ZSide_Fast($130,$131,$132)|0);
$136 = $133;
break;
}
} else {
$136 = -1;
}
} while(0);
$135 = (((90000 + (($126*60)|0)|0)) + 8|0);
_Drawer_ZMin($21,$136,$120,$135);
}
if (!($38)) {
$137 = HEAP16[704098]|0;
$138 = $137&65535;
$139 = ($138*6)|0;
$140 = (($139) + 3)|0;
$141 = (624900 + ($140<<1)|0);
$142 = HEAP16[$141>>1]|0;
$143 = (3)?($53 >>> 3):($53);
$144 = $143 & 1;
$145 = $142&65535;
$146 = HEAP32[(1384652)>>2]|0;
$147 = ($146)?($145 >>> $146):($145);
$148 = (($147) + ($50))|0;
$149 = ($47<<24>>24)==(0);
do {
if ($149) {
$150 = HEAP32[307611]|0;
$151 = HEAP32[(1407484)>>2]|0;
$152 = (($151) - ($144))|0;
$153 = ($150|0)>($152|0);
if ($153) {
$158 = HEAP32[(1407580)>>2]|0;
$160 = $158;
break;
} else {
$154 = HEAP32[307609]|0;
$155 = HEAP32[307610]|0;
$156 = (($150) + ($144))|0;
$157 = (_Lighting_Col_ZSide_Fast($154,$155,$156)|0);
$160 = $157;
break;
}
} else {
$160 = -1;
}
} while(0);
$159 = (((90000 + (($148*60)|0)|0)) + 12|0);
_Drawer_ZMax($25,$160,$142,$159);
}
if (!($40)) {
$161 = HEAP16[704098]|0;
$162 = $161&65535;
$163 = ($162*6)|0;
$164 = (($163) + 4)|0;
$165 = (624900 + ($164<<1)|0);
$166 = HEAP16[$165>>1]|0;
$167 = $166&65535;
$168 = HEAP32[(1384652)>>2]|0;
$169 = ($168)?($167 >>> $168):($167);
$170 = (($169) + ($50))|0;
$171 = ($47<<24>>24)==(0);
if ($171) {
$172 = (4)?($53 >>> 4):($53);
$173 = $172 & 1;
$174 = HEAP32[307609]|0;
$175 = HEAP32[307610]|0;
$176 = (($175) - ($173))|0;
$177 = HEAP32[307611]|0;
$178 = (_Lighting_Col_YMin_Fast($174,$176,$177)|0);
$180 = $178;
} else {
$180 = -1;
}
$179 = (((90000 + (($170*60)|0)|0)) + 16|0);
_Drawer_YMin($29,$180,$166,$179);
}
if ($42) {
return;
}
$181 = HEAP16[704098]|0;
$182 = $181&65535;
$183 = ($182*6)|0;
$184 = (($183) + 5)|0;
$185 = (624900 + ($184<<1)|0);
$186 = HEAP16[$185>>1]|0;
$187 = $186&65535;
$188 = HEAP32[(1384652)>>2]|0;
$189 = ($188)?($187 >>> $188):($187);
$190 = (($189) + ($50))|0;
$191 = ($47<<24>>24)==(0);
if ($191) {
$192 = (5)?($53 >>> 5):($53);
$193 = $192 & 1;
$194 = HEAP32[307609]|0;
$195 = HEAP32[307610]|0;
$196 = $193 ^ 1;
$197 = (($196) + ($195))|0;
$198 = HEAP32[307611]|0;
$199 = (_Lighting_Col_YMax_Fast($194,$197,$198)|0);
$201 = $199;
} else {
$201 = -1;
}
$200 = (((90000 + (($190*60)|0)|0)) + 20|0);
_Drawer_YMax($33,$201,$186,$200);
return;
}
function _Builder_DrawSprite() {
var $$0 = 0.0, $$0311 = 0.0, $$0312 = 0.0, $$0313 = 0.0, $$0314 = 0.0, $$0315 = 0.0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$$sroa_idx113 = 0, $$sroa$0$0$$sroa_idx115 = 0, $$sroa$0$0$$sroa_idx117 = 0, $$sroa$0$0$$sroa_idx119 = 0, $$sroa$0$0$$sroa_idx121 = 0, $$sroa$0$0$$sroa_idx123 = 0, $$sroa$0$0$$sroa_idx125 = 0, $$sroa$0$0$$sroa_idx127 = 0, $$sroa$0$0$$sroa_idx129 = 0, $$sroa$0$0$$sroa_idx132 = 0, $$sroa$0$0$$sroa_idx134 = 0, $$sroa$0$0$$sroa_idx136 = 0, $$sroa$0$0$$sroa_idx138 = 0;
var $$sroa$0$0$$sroa_idx140 = 0, $$sroa$0$0$$sroa_idx142 = 0, $$sroa$26$0$$sroa_idx144 = 0, $$sroa$26$0$$sroa_idx145 = 0, $$sroa$26$0$$sroa_idx147 = 0, $$sroa$26$0$$sroa_idx149 = 0, $$sroa$26$0$$sroa_idx151 = 0, $$sroa$26$0$$sroa_idx153 = 0, $$sroa$26$0$$sroa_idx155 = 0, $$sroa$26$0$$sroa_idx157 = 0, $$sroa$26$0$$sroa_idx159 = 0, $$sroa$26$0$$sroa_idx161 = 0, $$sroa$26$0$$sroa_idx164 = 0, $$sroa$26$0$$sroa_idx166 = 0, $$sroa$26$0$$sroa_idx168 = 0, $$sroa$26$0$$sroa_idx170 = 0, $$sroa$26$0$$sroa_idx172 = 0, $$sroa$26$0$$sroa_idx174 = 0, $$sroa$38$0$$sroa_idx176 = 0, $$sroa$38$0$$sroa_idx177 = 0;
var $$sroa$38$0$$sroa_idx179 = 0, $$sroa$38$0$$sroa_idx181 = 0, $$sroa$38$0$$sroa_idx183 = 0, $$sroa$38$0$$sroa_idx185 = 0, $$sroa$38$0$$sroa_idx187 = 0, $$sroa$38$0$$sroa_idx189 = 0, $$sroa$38$0$$sroa_idx191 = 0, $$sroa$38$0$$sroa_idx193 = 0, $$sroa$38$0$$sroa_idx196 = 0, $$sroa$38$0$$sroa_idx198 = 0, $$sroa$38$0$$sroa_idx200 = 0, $$sroa$38$0$$sroa_idx202 = 0, $$sroa$38$0$$sroa_idx204 = 0, $$sroa$38$0$$sroa_idx206 = 0, $$sroa$46$0 = 0, $$sroa$46$0$$sroa_idx208 = 0, $$sroa$46$0$$sroa_idx209 = 0, $$sroa$46$0$$sroa_idx211 = 0, $$sroa$46$0$$sroa_idx213 = 0, $$sroa$46$0$$sroa_idx215 = 0;
var $$sroa$46$0$$sroa_idx217 = 0, $$sroa$46$0$$sroa_idx219 = 0, $$sroa$46$0$$sroa_idx221 = 0, $$sroa$46$0$$sroa_idx223 = 0, $$sroa$46$0$$sroa_idx225 = 0, $$sroa$46$0$$sroa_idx228 = 0, $$sroa$46$0$$sroa_idx230 = 0, $$sroa$46$0$$sroa_idx232 = 0, $$sroa$46$0$$sroa_idx234 = 0, $$sroa$46$0$$sroa_idx236 = 0, $$sroa$46$0$$sroa_idx238 = 0, $$sroa$49$0$$sroa_idx240 = 0, $$sroa$49$0$$sroa_idx241 = 0, $$sroa$49$0$$sroa_idx243 = 0, $$sroa$49$0$$sroa_idx245 = 0, $$sroa$49$0$$sroa_idx247 = 0, $$sroa$49$0$$sroa_idx249 = 0, $$sroa$49$0$$sroa_idx251 = 0, $$sroa$49$0$$sroa_idx253 = 0, $$sroa$49$0$$sroa_idx255 = 0;
var $$sroa$49$0$$sroa_idx257 = 0, $$sroa$49$0$$sroa_idx260 = 0, $$sroa$49$0$$sroa_idx262 = 0, $$sroa$49$0$$sroa_idx264 = 0, $$sroa$49$0$$sroa_idx266 = 0, $$sroa$49$0$$sroa_idx268 = 0, $$sroa$49$0$$sroa_idx270 = 0, $$sroa$57$0$$sroa_idx272 = 0, $$sroa$57$0$$sroa_idx273 = 0, $$sroa$57$0$$sroa_idx275 = 0, $$sroa$57$0$$sroa_idx277 = 0, $$sroa$57$0$$sroa_idx279 = 0, $$sroa$57$0$$sroa_idx281 = 0, $$sroa$57$0$$sroa_idx283 = 0, $$sroa$57$0$$sroa_idx285 = 0, $$sroa$57$0$$sroa_idx287 = 0, $$sroa$57$0$$sroa_idx289 = 0, $$sroa$57$0$$sroa_idx292 = 0, $$sroa$57$0$$sroa_idx294 = 0, $$sroa$57$0$$sroa_idx296 = 0;
var $$sroa$57$0$$sroa_idx298 = 0, $$sroa$57$0$$sroa_idx300 = 0, $$sroa$57$0$$sroa_idx302 = 0, $0 = 0, $1 = 0.0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0;
var $24 = 0.0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0;
var $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0.0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0.0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0.0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0.0, $90 = 0, $91 = 0, $92 = 0, $spec$select = 0.0, $spec$select316 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[307609]|0;
$1 = (+($0|0));
$2 = HEAP32[307610]|0;
$3 = (+($2|0));
$4 = HEAP32[307611]|0;
$5 = (+($4|0));
$6 = $1 + 0.15625;
$7 = $5 + 0.15625;
$8 = $1 + 0.84375;
$9 = $3 + 1.0;
$10 = $5 + 0.84375;
$11 = HEAP16[704098]|0;
$12 = $11&65535;
$13 = ($12*6)|0;
$14 = $13 | 1;
$15 = (624900 + ($14<<1)|0);
$16 = HEAP16[$15>>1]|0;
$17 = $16&65535;
$18 = HEAP32[(1384648)>>2]|0;
$19 = $18 & $17;
$20 = (+($19|0));
$21 = +HEAPF32[(1384656)>>2];
$22 = $21 * $20;
$23 = $21 * 0.99937498569488525;
$24 = $23 + $22;
$25 = (587268 + ($12)|0);
$26 = HEAP8[$25>>0]|0;
$27 = $26 & -2;
$28 = ($27<<24>>24)==(6);
if ($28) {
$29 = ($4*1217)|0;
$30 = (($29) + ($0))|0;
$31 = $30 & 2147483647;
_Random_Seed(535448,$31);
$32 = (_Random_Range_29(-3)|0);
$33 = (+($32|0));
$34 = $33 * 0.0625;
$35 = (_Random_Range_29(0)|0);
$36 = (+($35|0));
$37 = $36 * 0.0625;
$38 = (_Random_Range_29(-3)|0);
$39 = (+($38|0));
$40 = $39 * 0.0625;
$41 = $34 + -0.10625000298023224;
$42 = $6 + $41;
$43 = $34 + 0.10625000298023224;
$44 = $8 + $43;
$45 = $40 + -0.10625000298023224;
$46 = $7 + $45;
$47 = $40 + 0.10625000298023224;
$48 = $10 + $47;
$49 = ($26<<24>>24)==(7);
$50 = $3 - $37;
$51 = $9 - $37;
$spec$select = $49 ? $50 : $3;
$spec$select316 = $49 ? $51 : $9;
$$0 = $48;$$0311 = $spec$select316;$$0312 = $44;$$0313 = $46;$$0314 = $spec$select;$$0315 = $42;
} else {
$$0 = $10;$$0311 = $9;$$0312 = $8;$$0313 = $7;$$0314 = $3;$$0315 = $6;
}
$52 = HEAP32[(1384652)>>2]|0;
$53 = ($52)?($17 >>> $52):($17);
$54 = HEAP8[1408209]|0;
$55 = ($54<<24>>24)==(0);
if ($55) {
$56 = HEAP32[307609]|0;
$57 = HEAP32[307610]|0;
$58 = HEAP32[307611]|0;
$59 = (_Lighting_Col_Sprite_Fast($56,$57,$58)|0);
$67 = $59;
} else {
$67 = -1;
}
$60 = HEAP16[704098]|0;
$61 = $60&65535;
$62 = (585732 + ($61)|0);
$63 = HEAP8[$62>>0]|0;
$64 = ($63<<24>>24)==(0);
if ($64) {
$$sroa$46$0 = $67;
} else {
$65 = (571908 + ($61<<2)|0);
$66 = HEAP32[$65>>2]|0;
$68 = (_PackedCol_Tint($67,$66)|0);
$$sroa$46$0 = $68;
}
$69 = (((90000 + (($53*60)|0)|0)) + 52|0);
$70 = HEAP32[$69>>2]|0;
$71 = HEAP32[307612]|0;
$$sroa$0$0$$sroa_idx113 = (($71) + (($70*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx113>>2] = $$0315;
$$sroa$26$0$$sroa_idx145 = (((($71) + (($70*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx145>>2] = $$0314;
$$sroa$38$0$$sroa_idx177 = (((($71) + (($70*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx177>>2] = $$0313;
$$sroa$46$0$$sroa_idx209 = (((($71) + (($70*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx209>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx241 = (((($71) + (($70*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx241>>2] = 0.99937498569488525;
$$sroa$57$0$$sroa_idx273 = (((($71) + (($70*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx273>>2] = $24;
$72 = (($70) + 1)|0;
$$sroa$0$0$$sroa_idx117 = (($71) + (($72*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx117>>2] = $$0315;
$$sroa$26$0$$sroa_idx149 = (((($71) + (($72*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx149>>2] = $$0311;
$$sroa$38$0$$sroa_idx181 = (((($71) + (($72*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx181>>2] = $$0313;
$$sroa$46$0$$sroa_idx213 = (((($71) + (($72*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx213>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx245 = (((($71) + (($72*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx245>>2] = 0.99937498569488525;
$$sroa$57$0$$sroa_idx277 = (((($71) + (($72*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx277>>2] = $22;
$73 = (($70) + 2)|0;
$$sroa$0$0$$sroa_idx119 = (($71) + (($73*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx119>>2] = $$0312;
$$sroa$26$0$$sroa_idx151 = (((($71) + (($73*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx151>>2] = $$0311;
$$sroa$38$0$$sroa_idx183 = (((($71) + (($73*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx183>>2] = $$0;
$$sroa$46$0$$sroa_idx215 = (((($71) + (($73*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx215>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx247 = (((($71) + (($73*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx247>>2] = 0.0;
$$sroa$57$0$$sroa_idx279 = (((($71) + (($73*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx279>>2] = $22;
$74 = (($70) + 3)|0;
$$sroa$0$0$$sroa_idx140 = (($71) + (($74*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx140>>2] = $$0312;
$$sroa$26$0$$sroa_idx172 = (((($71) + (($74*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx172>>2] = $$0314;
$$sroa$38$0$$sroa_idx204 = (((($71) + (($74*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx204>>2] = $$0;
$$sroa$46$0$$sroa_idx236 = (((($71) + (($74*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx236>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx268 = (((($71) + (($74*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx268>>2] = 0.0;
$$sroa$57$0$$sroa_idx300 = (((($71) + (($74*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx300>>2] = $24;
$75 = (((90000 + (($53*60)|0)|0)) + 56|0);
$76 = HEAP32[$75>>2]|0;
$77 = (($76) + ($70))|0;
$$sroa$0$0$$sroa_idx138 = (($71) + (($77*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx138>>2] = $$0312;
$$sroa$26$0$$sroa_idx170 = (((($71) + (($77*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx170>>2] = $$0314;
$$sroa$38$0$$sroa_idx202 = (((($71) + (($77*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx202>>2] = $$0;
$$sroa$46$0$$sroa_idx234 = (((($71) + (($77*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx234>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx266 = (((($71) + (($77*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx266>>2] = 0.99937498569488525;
$$sroa$57$0$$sroa_idx298 = (((($71) + (($77*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx298>>2] = $24;
$78 = (($77) + 1)|0;
$$sroa$0$0$$sroa_idx134 = (($71) + (($78*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx134>>2] = $$0312;
$$sroa$26$0$$sroa_idx166 = (((($71) + (($78*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx166>>2] = $$0311;
$$sroa$38$0$$sroa_idx198 = (((($71) + (($78*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx198>>2] = $$0;
$$sroa$46$0$$sroa_idx230 = (((($71) + (($78*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx230>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx262 = (((($71) + (($78*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx262>>2] = 0.99937498569488525;
$$sroa$57$0$$sroa_idx294 = (((($71) + (($78*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx294>>2] = $22;
$79 = (($77) + 2)|0;
$$sroa$0$0$$sroa_idx132 = (($71) + (($79*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx132>>2] = $$0315;
$$sroa$26$0$$sroa_idx164 = (((($71) + (($79*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx164>>2] = $$0311;
$$sroa$38$0$$sroa_idx196 = (((($71) + (($79*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx196>>2] = $$0313;
$$sroa$46$0$$sroa_idx228 = (((($71) + (($79*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx228>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx260 = (((($71) + (($79*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx260>>2] = 0.0;
$$sroa$57$0$$sroa_idx292 = (((($71) + (($79*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx292>>2] = $22;
$80 = (($77) + 3)|0;
$$sroa$0$0$$sroa_idx142 = (($71) + (($80*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx142>>2] = $$0315;
$$sroa$26$0$$sroa_idx174 = (((($71) + (($80*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx174>>2] = $$0314;
$$sroa$38$0$$sroa_idx206 = (((($71) + (($80*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx206>>2] = $$0313;
$$sroa$46$0$$sroa_idx238 = (((($71) + (($80*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx238>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx270 = (((($71) + (($80*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx270>>2] = 0.0;
$$sroa$57$0$$sroa_idx302 = (((($71) + (($80*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx302>>2] = $24;
$81 = HEAP32[$75>>2]|0;
$82 = (($81) + ($77))|0;
$$sroa$0$0$$sroa_idx129 = (($71) + (($82*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx129>>2] = $$0315;
$$sroa$26$0$$sroa_idx161 = (((($71) + (($82*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx161>>2] = $$0314;
$$sroa$38$0$$sroa_idx193 = (((($71) + (($82*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx193>>2] = $$0;
$$sroa$46$0$$sroa_idx225 = (((($71) + (($82*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx225>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx257 = (((($71) + (($82*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx257>>2] = 0.99937498569488525;
$$sroa$57$0$$sroa_idx289 = (((($71) + (($82*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx289>>2] = $24;
$83 = (($82) + 1)|0;
$$sroa$0$0$$sroa_idx127 = (($71) + (($83*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx127>>2] = $$0315;
$$sroa$26$0$$sroa_idx159 = (((($71) + (($83*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx159>>2] = $$0311;
$$sroa$38$0$$sroa_idx191 = (((($71) + (($83*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx191>>2] = $$0;
$$sroa$46$0$$sroa_idx223 = (((($71) + (($83*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx223>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx255 = (((($71) + (($83*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx255>>2] = 0.99937498569488525;
$$sroa$57$0$$sroa_idx287 = (((($71) + (($83*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx287>>2] = $22;
$84 = (($82) + 2)|0;
$$sroa$0$0$$sroa_idx125 = (($71) + (($84*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx125>>2] = $$0312;
$$sroa$26$0$$sroa_idx157 = (((($71) + (($84*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx157>>2] = $$0311;
$$sroa$38$0$$sroa_idx189 = (((($71) + (($84*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx189>>2] = $$0313;
$$sroa$46$0$$sroa_idx221 = (((($71) + (($84*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx221>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx253 = (((($71) + (($84*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx253>>2] = 0.0;
$$sroa$57$0$$sroa_idx285 = (((($71) + (($84*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx285>>2] = $22;
$85 = (($82) + 3)|0;
$$sroa$0$0$$sroa_idx = (($71) + (($85*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $$0312;
$$sroa$26$0$$sroa_idx144 = (((($71) + (($85*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx144>>2] = $$0314;
$$sroa$38$0$$sroa_idx176 = (((($71) + (($85*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx176>>2] = $$0313;
$$sroa$46$0$$sroa_idx208 = (((($71) + (($85*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx208>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx240 = (((($71) + (($85*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx240>>2] = 0.0;
$$sroa$57$0$$sroa_idx272 = (((($71) + (($85*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx272>>2] = $24;
$86 = HEAP32[$75>>2]|0;
$87 = (($86) + ($82))|0;
$$sroa$0$0$$sroa_idx136 = (($71) + (($87*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx136>>2] = $$0312;
$$sroa$26$0$$sroa_idx168 = (((($71) + (($87*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx168>>2] = $$0314;
$$sroa$38$0$$sroa_idx200 = (((($71) + (($87*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx200>>2] = $$0313;
$$sroa$46$0$$sroa_idx232 = (((($71) + (($87*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx232>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx264 = (((($71) + (($87*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx264>>2] = 0.99937498569488525;
$$sroa$57$0$$sroa_idx296 = (((($71) + (($87*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx296>>2] = $24;
$88 = (($87) + 1)|0;
$$sroa$0$0$$sroa_idx123 = (($71) + (($88*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx123>>2] = $$0312;
$$sroa$26$0$$sroa_idx155 = (((($71) + (($88*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx155>>2] = $$0311;
$$sroa$38$0$$sroa_idx187 = (((($71) + (($88*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx187>>2] = $$0313;
$$sroa$46$0$$sroa_idx219 = (((($71) + (($88*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx219>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx251 = (((($71) + (($88*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx251>>2] = 0.99937498569488525;
$$sroa$57$0$$sroa_idx283 = (((($71) + (($88*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx283>>2] = $22;
$89 = (($87) + 2)|0;
$$sroa$0$0$$sroa_idx115 = (($71) + (($89*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx115>>2] = $$0315;
$$sroa$26$0$$sroa_idx147 = (((($71) + (($89*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx147>>2] = $$0311;
$$sroa$38$0$$sroa_idx179 = (((($71) + (($89*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx179>>2] = $$0;
$$sroa$46$0$$sroa_idx211 = (((($71) + (($89*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx211>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx243 = (((($71) + (($89*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx243>>2] = 0.0;
$$sroa$57$0$$sroa_idx275 = (((($71) + (($89*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx275>>2] = $22;
$90 = (($87) + 3)|0;
$$sroa$0$0$$sroa_idx121 = (($71) + (($90*24)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx121>>2] = $$0315;
$$sroa$26$0$$sroa_idx153 = (((($71) + (($90*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$26$0$$sroa_idx153>>2] = $$0314;
$$sroa$38$0$$sroa_idx185 = (((($71) + (($90*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$38$0$$sroa_idx185>>2] = $$0;
$$sroa$46$0$$sroa_idx217 = (((($71) + (($90*24)|0)|0)) + 12|0);
HEAP32[$$sroa$46$0$$sroa_idx217>>2] = $$sroa$46$0;
$$sroa$49$0$$sroa_idx249 = (((($71) + (($90*24)|0)|0)) + 16|0);
HEAPF32[$$sroa$49$0$$sroa_idx249>>2] = 0.0;
$$sroa$57$0$$sroa_idx281 = (((($71) + (($90*24)|0)|0)) + 20|0);
HEAPF32[$$sroa$57$0$$sroa_idx281>>2] = $24;
$91 = HEAP32[$69>>2]|0;
$92 = (($91) + 4)|0;
HEAP32[$69>>2] = $92;
return;
}
function _Random_Range_29($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (4 - ($0))|0;
$2 = (_Random_Next(535448,$1)|0);
$3 = (($2) + ($0))|0;
return ($3|0);
}
function _Normal_CanStretch($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = HEAP32[307614]|0;
$7 = (($6) + ($1<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = ($8<<16>>16)==($0<<16>>16);
if (!($9)) {
$$0 = 0;
return ($$0|0);
}
$10 = $5&255;
$11 = (416 + ($10<<2)|0);
$12 = HEAP32[$11>>2]|0;
$13 = (($12) + ($1))|0;
$14 = (($6) + ($13<<1)|0);
$15 = HEAP16[$14>>1]|0;
$16 = (_Block_IsFaceHidden($8,$15,$5)|0);
$17 = ($16<<24>>24)==(0);
if (!($17)) {
$$0 = 0;
return ($$0|0);
}
$18 = HEAP8[1408209]|0;
$19 = ($18<<24>>24)==(0);
if (!($19)) {
$$0 = 1;
return ($$0|0);
}
$20 = HEAP32[307609]|0;
$21 = HEAP32[307610]|0;
$22 = HEAP32[307611]|0;
$23 = (_Normal_LightCol($20,$21,$22,$5,$0)|0);
$24 = (_Normal_LightCol($2,$3,$4,$5,$8)|0);
$25 = ($23|0)==($24|0);
$26 = $25&1;
$$0 = $26;
return ($$0|0);
}
function _Normal_LightCol($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = $4&65535;
$6 = (582660 + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $3&255;
$10 = ($9)?($8 >>> $9):($8);
$11 = $10 & 1;
switch ($3<<24>>24) {
case 0: {
$12 = ($11|0)>($0|0);
if ($12) {
$13 = HEAP32[(1407576)>>2]|0;
$$0 = $13;
return ($$0|0);
} else {
$14 = (($0) - ($11))|0;
$15 = (_Lighting_Col_XSide_Fast($14,$1,$2)|0);
$$0 = $15;
return ($$0|0);
}
break;
}
case 1: {
$16 = HEAP32[(1407476)>>2]|0;
$17 = (($16) - ($11))|0;
$18 = ($17|0)<($0|0);
if ($18) {
$19 = HEAP32[(1407576)>>2]|0;
$$0 = $19;
return ($$0|0);
} else {
$20 = (($11) + ($0))|0;
$21 = (_Lighting_Col_XSide_Fast($20,$1,$2)|0);
$$0 = $21;
return ($$0|0);
}
break;
}
case 2: {
$22 = ($11|0)>($2|0);
if ($22) {
$23 = HEAP32[(1407580)>>2]|0;
$$0 = $23;
return ($$0|0);
} else {
$24 = (($2) - ($11))|0;
$25 = (_Lighting_Col_ZSide_Fast($0,$1,$24)|0);
$$0 = $25;
return ($$0|0);
}
break;
}
case 3: {
$26 = HEAP32[(1407484)>>2]|0;
$27 = (($26) - ($11))|0;
$28 = ($27|0)<($2|0);
if ($28) {
$29 = HEAP32[(1407580)>>2]|0;
$$0 = $29;
return ($$0|0);
} else {
$30 = (($11) + ($2))|0;
$31 = (_Lighting_Col_ZSide_Fast($0,$1,$30)|0);
$$0 = $31;
return ($$0|0);
}
break;
}
case 4: {
$32 = ($1|0)<(1);
if ($32) {
$33 = HEAP32[(1407584)>>2]|0;
$$0 = $33;
return ($$0|0);
} else {
$34 = (($1) - ($11))|0;
$35 = (_Lighting_Col_YMin_Fast($0,$34,$2)|0);
$$0 = $35;
return ($$0|0);
}
break;
}
case 5: {
$36 = HEAP32[(1407480)>>2]|0;
$37 = ($36|0)>($1|0);
if ($37) {
$39 = (($1) + 1)|0;
$40 = (($39) - ($11))|0;
$41 = (_Lighting_Col_YMax_Fast($0,$40,$2)|0);
$$0 = $41;
return ($$0|0);
} else {
$38 = HEAP32[(1407572)>>2]|0;
$$0 = $38;
return ($$0|0);
}
break;
}
default: {
$$0 = 0;
return ($$0|0);
}
}
return (0)|0;
}
function _Builder_OccludedLiquid($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (($0) + 324)|0;
$2 = HEAP32[307614]|0;
$3 = (($2) + ($1<<1)|0);
$4 = HEAP16[$3>>1]|0;
$5 = $4&65535;
$6 = (586500 + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if ($8) {
$37 = 0;
return ($37|0);
}
$9 = (($0) + 306)|0;
$10 = (($2) + ($9<<1)|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
$13 = (583428 + ($12)|0);
$14 = HEAP8[$13>>0]|0;
$15 = ($14<<24>>24)==(4);
if ($15) {
$37 = 0;
return ($37|0);
}
$16 = (($0) + 323)|0;
$17 = (($2) + ($16<<1)|0);
$18 = HEAP16[$17>>1]|0;
$19 = $18&65535;
$20 = (583428 + ($19)|0);
$21 = HEAP8[$20>>0]|0;
$22 = ($21<<24>>24)==(4);
if ($22) {
$37 = 0;
return ($37|0);
}
$23 = (($0) + 325)|0;
$24 = (($2) + ($23<<1)|0);
$25 = HEAP16[$24>>1]|0;
$26 = $25&65535;
$27 = (583428 + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28<<24>>24)==(4);
if ($29) {
$37 = 0;
return ($37|0);
}
$30 = (($0) + 342)|0;
$31 = (($2) + ($30<<1)|0);
$32 = HEAP16[$31>>1]|0;
$33 = $32&65535;
$34 = (583428 + ($33)|0);
$35 = HEAP8[$34>>0]|0;
$36 = ($35<<24>>24)!=(4);
$phitmp = $36&1;
$37 = $phitmp;
return ($37|0);
}
function _Builder_DefaultPreStretchTiles($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Mem_Set(90000,0,61440);
return;
}
function _Adv_StretchXLiquid($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0 = 0, $$02836 = 0, $$02937 = 0, $$02937$in = 0, $$03038 = 0, $$03038$in = 0, $$031 = 0, $$03134 = 0, $$03139 = 0, $$lobit = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond35 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = (_Builder_OccludedLiquid($4)|0);
$7 = ($6<<24>>24)==(0);
if (!($7)) {
$$0 = 0;
return ($$0|0);
}
$8 = (_Adv_ComputeLightFlags($1,$2,$3,$4)|0);
HEAP32[307633] = $8;
$9 = HEAP32[307618]|0;
$10 = (($9) + ($4<<2)|0);
HEAP32[$10>>2] = $8;
$11 = $5&65535;
$12 = (1225476 + ($11)|0);
$13 = HEAP8[$12>>0]|0;
$$lobit = $13 & 32;
$$03134 = (($1) + 1)|0;
$14 = HEAP32[307615]|0;
$15 = ($$03134|0)>=($14|0);
$16 = ($$lobit<<24>>24)==(0);
$or$cond35 = $16 | $15;
if ($or$cond35) {
$$0 = 1;
return ($$0|0);
}
$$02836 = 1;$$02937$in = $0;$$03038$in = $4;$$03139 = $$03134;
while(1) {
$$02937 = (($$02937$in) + 6)|0;
$$03038 = (($$03038$in) + 1)|0;
$17 = (_Adv_CanStretch($5,$$03038,$$03139,$2,$3,5)|0);
$18 = ($17<<24>>24)==(0);
if ($18) {
$$0 = $$02836;
label = 7;
break;
}
$19 = (_Builder_OccludedLiquid($$03038)|0);
$20 = ($19<<24>>24)==(0);
if (!($20)) {
$$0 = $$02836;
label = 7;
break;
}
$21 = HEAP32[307608]|0;
$22 = (($21) + ($$02937)|0);
HEAP8[$22>>0] = 0;
$23 = (($$02836) + 1)|0;
$$031 = (($$03139) + 1)|0;
$24 = HEAP32[307615]|0;
$25 = ($$031|0)>=($24|0);
$or$cond = $16 | $25;
if ($or$cond) {
$$0 = $23;
label = 7;
break;
} else {
$$02836 = $23;$$02937$in = $$02937;$$03038$in = $$03038;$$03139 = $$031;
}
}
if ((label|0) == 7) {
return ($$0|0);
}
return (0)|0;
}
function _Adv_StretchX($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $$026$lcssa = 0, $$02633 = 0, $$027 = 0, $$02730 = 0, $$02735 = 0, $$02836 = 0, $$02836$in = 0, $$034 = 0, $$034$in = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $7 = 0, $8 = 0, $9 = 0, $brmerge = 0, $brmerge32 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = (_Adv_ComputeLightFlags($1,$2,$3,$4)|0);
HEAP32[307633] = $7;
$8 = HEAP32[307618]|0;
$9 = (($8) + ($4<<2)|0);
HEAP32[$9>>2] = $7;
$10 = $5&65535;
$11 = (1225476 + ($10)|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = $6&255;
$15 = 1 << $14;
$16 = $15 & $13;
$17 = ($16|0)==(0);
$$02730 = (($1) + 1)|0;
$18 = HEAP32[307615]|0;
$19 = ($$02730|0)>=($18|0);
$brmerge32 = $17 | $19;
if ($brmerge32) {
$$026$lcssa = 1;
return ($$026$lcssa|0);
}
$$02633 = 1;$$02735 = $$02730;$$02836$in = $4;$$034$in = $0;
while(1) {
$$034 = (($$034$in) + 6)|0;
$$02836 = (($$02836$in) + 1)|0;
$20 = (_Adv_CanStretch($5,$$02836,$$02735,$2,$3,$6)|0);
$21 = ($20<<24>>24)==(0);
if ($21) {
$$026$lcssa = $$02633;
label = 5;
break;
}
$22 = HEAP32[307608]|0;
$23 = (($22) + ($$034)|0);
HEAP8[$23>>0] = 0;
$24 = (($$02633) + 1)|0;
$$027 = (($$02735) + 1)|0;
$25 = HEAP32[307615]|0;
$26 = ($$027|0)>=($25|0);
$brmerge = $17 | $26;
if ($brmerge) {
$$026$lcssa = $24;
label = 5;
break;
} else {
$$02633 = $24;$$02735 = $$027;$$02836$in = $$02836;$$034$in = $$034;
}
}
if ((label|0) == 5) {
return ($$026$lcssa|0);
}
return (0)|0;
}
function _Adv_StretchZ($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $$026$lcssa = 0, $$02633 = 0, $$027 = 0, $$02730 = 0, $$02735 = 0, $$02836 = 0, $$02836$in = 0, $$034 = 0, $$034$in = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $7 = 0, $8 = 0, $9 = 0, $brmerge = 0, $brmerge32 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = (_Adv_ComputeLightFlags($1,$2,$3,$4)|0);
HEAP32[307633] = $7;
$8 = HEAP32[307618]|0;
$9 = (($8) + ($4<<2)|0);
HEAP32[$9>>2] = $7;
$10 = $5&65535;
$11 = (1225476 + ($10)|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = $6&255;
$15 = 1 << $14;
$16 = $15 & $13;
$17 = ($16|0)==(0);
$$02730 = (($3) + 1)|0;
$18 = HEAP32[307613]|0;
$19 = ($$02730|0)>=($18|0);
$brmerge32 = $17 | $19;
if ($brmerge32) {
$$026$lcssa = 1;
return ($$026$lcssa|0);
}
$$02633 = 1;$$02735 = $$02730;$$02836$in = $4;$$034$in = $0;
while(1) {
$$034 = (($$034$in) + 96)|0;
$$02836 = (($$02836$in) + 18)|0;
$20 = (_Adv_CanStretch($5,$$02836,$1,$2,$$02735,$6)|0);
$21 = ($20<<24>>24)==(0);
if ($21) {
$$026$lcssa = $$02633;
label = 5;
break;
}
$22 = HEAP32[307608]|0;
$23 = (($22) + ($$034)|0);
HEAP8[$23>>0] = 0;
$24 = (($$02633) + 1)|0;
$$027 = (($$02735) + 1)|0;
$25 = HEAP32[307613]|0;
$26 = ($$027|0)>=($25|0);
$brmerge = $17 | $26;
if ($brmerge) {
$$026$lcssa = $24;
label = 5;
break;
} else {
$$02633 = $24;$$02735 = $$027;$$02836$in = $$02836;$$034$in = $$034;
}
}
if ((label|0) == 5) {
return ($$026$lcssa|0);
}
return (0)|0;
}
function _Adv_RenderBlock($0) {
$0 = $0|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$043$0$$sroa_idx = 0, $$sroa$043$0$copyload = 0.0, $$sroa$4$0$$sroa_idx39 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$445$0$$sroa_idx46 = 0, $$sroa$445$0$copyload = 0.0, $$sroa$5$0$$sroa_idx41 = 0, $$sroa$5$0$copyload = 0.0, $$sroa$548$0$$sroa_idx49 = 0, $$sroa$548$0$copyload = 0.0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[704098]|0;
$2 = $1&65535;
$3 = (583428 + ($2)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(5);
if ($5) {
$6 = (571140 + ($2)|0);
$7 = HEAP8[$6>>0]|0;
HEAP8[1408209] = $7;
$8 = (585732 + ($2)|0);
$9 = HEAP8[$8>>0]|0;
HEAP8[1408210] = $9;
_Builder_DrawSprite();
return;
}
$10 = HEAP32[307608]|0;
$11 = (($10) + ($0)|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = (($0) + 1)|0;
$15 = (($10) + ($14)|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = (($0) + 2)|0;
$19 = (($10) + ($18)|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = (($0) + 3)|0;
$23 = (($10) + ($22)|0);
$24 = HEAP8[$23>>0]|0;
$25 = $24&255;
$26 = (($0) + 4)|0;
$27 = (($10) + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = $28&255;
$30 = (($0) + 5)|0;
$31 = (($10) + ($30)|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32&255;
$34 = ($16<<24>>24)==(0);
$35 = $16 | $12;
$36 = ($20<<24>>24)==(0);
$37 = $35 | $20;
$38 = ($24<<24>>24)==(0);
$39 = $37 | $24;
$40 = ($28<<24>>24)==(0);
$41 = $39 | $28;
$42 = ($32<<24>>24)==(0);
$43 = $41 | $32;
$44 = ($43<<24>>24)==(0);
if ($44) {
return;
}
$45 = ($12<<24>>24)==(0);
$46 = (571140 + ($2)|0);
$47 = HEAP8[$46>>0]|0;
HEAP8[1408209] = $47;
$48 = ($4<<24>>24)==(3);
$49 = $48&1;
$50 = $49 << 9;
HEAP32[307619] = $50;
$51 = (585732 + ($2)|0);
$52 = HEAP8[$51>>0]|0;
HEAP8[1408210] = $52;
$$sroa$043$0$$sroa_idx = (606468 + (($2*12)|0)|0);
$$sroa$043$0$copyload = +HEAPF32[$$sroa$043$0$$sroa_idx>>2];
$$sroa$445$0$$sroa_idx46 = (((606468 + (($2*12)|0)|0)) + 4|0);
$$sroa$445$0$copyload = +HEAPF32[$$sroa$445$0$$sroa_idx46>>2];
$$sroa$548$0$$sroa_idx49 = (((606468 + (($2*12)|0)|0)) + 8|0);
$$sroa$548$0$copyload = +HEAPF32[$$sroa$548$0$$sroa_idx49>>2];
$$sroa$0$0$$sroa_idx = (615684 + (($2*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$4$0$$sroa_idx39 = (((615684 + (($2*12)|0)|0)) + 4|0);
$$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx39>>2];
$$sroa$5$0$$sroa_idx41 = (((615684 + (($2*12)|0)|0)) + 8|0);
$$sroa$5$0$copyload = +HEAPF32[$$sroa$5$0$$sroa_idx41>>2];
$53 = HEAP32[307609]|0;
$54 = (+($53|0));
$55 = $$sroa$043$0$copyload + $54;
HEAPF32[307620] = $55;
$56 = HEAP32[307610]|0;
$57 = (+($56|0));
$58 = $$sroa$445$0$copyload + $57;
HEAPF32[307621] = $58;
$59 = HEAP32[307611]|0;
$60 = (+($59|0));
$61 = $$sroa$548$0$copyload + $60;
HEAPF32[307622] = $61;
$62 = $$sroa$0$0$copyload + $54;
HEAPF32[307623] = $62;
$63 = $$sroa$4$0$copyload + $57;
HEAPF32[307624] = $63;
$64 = $$sroa$5$0$copyload + $60;
HEAPF32[307625] = $64;
$65 = (588036 + (($2*12)|0)|0);
;HEAP32[1230504>>2]=HEAP32[$65>>2]|0;HEAP32[1230504+4>>2]=HEAP32[$65+4>>2]|0;HEAP32[1230504+8>>2]=HEAP32[$65+8>>2]|0;
$66 = (597252 + (($2*12)|0)|0);
;HEAP32[1230516>>2]=HEAP32[$66>>2]|0;HEAP32[1230516+4>>2]=HEAP32[$66+4>>2]|0;HEAP32[1230516+8>>2]=HEAP32[$66+8>>2]|0;
$67 = +HEAPF32[(1230508)>>2];
$68 = 1.0 - $67;
HEAPF32[(1230508)>>2] = $68;
$69 = +HEAPF32[(1230520)>>2];
$70 = 1.0 - $69;
HEAPF32[(1230520)>>2] = $70;
if (!($45)) {
_Adv_DrawXMin($13);
}
if (!($34)) {
_Adv_DrawXMax($17);
}
if (!($36)) {
_Adv_DrawZMin($21);
}
if (!($38)) {
_Adv_DrawZMax($25);
}
if (!($40)) {
_Adv_DrawYMin($29);
}
if ($42) {
return;
}
_Adv_DrawYMax($33);
return;
}
function _Adv_PreStretchTiles($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$014 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0;
var $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
_Builder_DefaultPreStretchTiles($0,$1,$2);
$3 = HEAP32[307617]|0;
HEAP32[307618] = $3;
$$014 = 0;
while(1) {
$4 = HEAP32[(1407588)>>2]|0;
$5 = HEAP32[(1407572)>>2]|0;
$6 = (+($$014|0));
$7 = $6 * 0.25;
$8 = (_PackedCol_Lerp($4,$5,$7)|0);
$9 = (151440 + ($$014<<2)|0);
HEAP32[$9>>2] = $8;
$10 = HEAP32[(1407592)>>2]|0;
$11 = HEAP32[(1407576)>>2]|0;
$12 = (_PackedCol_Lerp($10,$11,$7)|0);
$13 = (151472 + ($$014<<2)|0);
HEAP32[$13>>2] = $12;
$14 = HEAP32[(1407596)>>2]|0;
$15 = HEAP32[(1407580)>>2]|0;
$16 = (_PackedCol_Lerp($14,$15,$7)|0);
$17 = (151504 + ($$014<<2)|0);
HEAP32[$17>>2] = $16;
$18 = HEAP32[(1407600)>>2]|0;
$19 = HEAP32[(1407584)>>2]|0;
$20 = (_PackedCol_Lerp($18,$19,$7)|0);
$21 = (151536 + ($$014<<2)|0);
HEAP32[$21>>2] = $20;
$22 = (($$014) + 1)|0;
$exitcond = ($22|0)==(5);
if ($exitcond) {
break;
} else {
$$014 = $22;
}
}
return;
}
function _Adv_DrawXMin($0) {
$0 = $0|0;
var $$0 = 0, $$0204 = 0, $$0205 = 0, $$0205$sink = 0, $$0206 = 0, $$0207 = 0, $$sink = 0.0, $$sink208 = 0.0, $$sink209 = 0, $$sink212 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$11$0$$sroa_idx17 = 0, $$sroa$11$0$$sroa_idx19 = 0, $$sroa$11$0$$sroa_idx23 = 0, $$sroa$11$0$$sroa_idx25 = 0, $$sroa$11$0$$sroa_idx27 = 0, $$sroa$11$0$$sroa_idx29 = 0, $$sroa$15$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx33 = 0, $$sroa$15$0$$sroa_idx35 = 0;
var $$sroa$15$0$$sroa_idx39 = 0, $$sroa$15$0$$sroa_idx41 = 0, $$sroa$15$0$$sroa_idx43 = 0, $$sroa$15$0$$sroa_idx45 = 0, $$sroa$20$0$$sroa_idx48 = 0, $$sroa$20$0$$sroa_idx49 = 0, $$sroa$20$0$$sroa_idx51 = 0, $$sroa$20$0$$sroa_idx55 = 0, $$sroa$20$0$$sroa_idx57 = 0, $$sroa$20$0$$sroa_idx59 = 0, $$sroa$20$0$$sroa_idx61 = 0, $$sroa$28$0$$sroa_idx64 = 0, $$sroa$28$0$$sroa_idx65 = 0, $$sroa$28$0$$sroa_idx67 = 0, $$sroa$28$0$$sroa_idx71 = 0, $$sroa$28$0$$sroa_idx73 = 0, $$sroa$28$0$$sroa_idx75 = 0, $$sroa$28$0$$sroa_idx77 = 0, $$sroa$33$0$$sroa_idx80 = 0, $$sroa$33$0$$sroa_idx81 = 0;
var $$sroa$33$0$$sroa_idx87 = 0, $$sroa$33$0$$sroa_idx89 = 0, $$sroa$33$0$$sroa_idx91 = 0, $$sroa$33$0$$sroa_idx93 = 0, $1 = 0, $10 = 0.0, $100 = 0, $101 = 0, $102 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0;
var $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0.0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[704098]|0;
$2 = $1&65535;
$3 = ($2*6)|0;
$4 = (624900 + ($3<<1)|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = HEAP32[(1384648)>>2]|0;
$8 = $7 & $6;
$9 = (+($8|0));
$10 = +HEAPF32[(1384656)>>2];
$11 = $10 * $9;
$12 = HEAP32[(1230512)>>2]|0;
$13 = (($0) + -1)|0;
$14 = (+($13|0));
$15 = +HEAPF32[(1230524)>>2];
$16 = $15 * 0.99937498569488525;
$17 = $16 + $14;
$18 = +HEAPF32[(1230520)>>2];
$19 = $10 * $18;
$20 = $11 + $19;
$21 = +HEAPF32[(1230508)>>2];
$22 = $10 * $21;
$23 = $22 * 0.99937498569488525;
$24 = $11 + $23;
$25 = HEAP32[307619]|0;
$26 = HEAP32[(1384652)>>2]|0;
$27 = ($26)?($6 >>> $26):($6);
$28 = (($27) + ($25))|0;
$29 = HEAP32[307618]|0;
$30 = HEAP32[307632]|0;
$31 = (($29) + ($30<<2)|0);
$32 = HEAP32[$31>>2]|0;
$33 = $32 & 1;
$34 = (1)?($32 >>> 1):($32);
$35 = $34 & 1;
$36 = (9)?($32 >>> 9):($32);
$37 = $36 & 1;
$38 = (10)?($32 >>> 10):($32);
$39 = $38 & 1;
$40 = (($37) + ($39))|0;
$41 = (($40) + ($33))|0;
$42 = (($41) + ($35))|0;
$43 = (18)?($32 >>> 18):($32);
$44 = $43 & 1;
$45 = (19)?($32 >>> 19):($32);
$46 = $45 & 1;
$47 = (($37) + ($39))|0;
$48 = (($47) + ($46))|0;
$49 = (($48) + ($44))|0;
$50 = (2)?($32 >>> 2):($32);
$51 = $50 & 1;
$52 = (11)?($32 >>> 11):($32);
$53 = $52 & 1;
$54 = (($53) + ($39))|0;
$55 = (($54) + ($35))|0;
$56 = (($55) + ($51))|0;
$57 = (20)?($32 >>> 20):($32);
$58 = $57 & 1;
$59 = (($53) + ($39))|0;
$60 = (($59) + ($46))|0;
$61 = (($60) + ($58))|0;
$62 = HEAP8[1408209]|0;
$63 = ($62<<24>>24)==(0);
if ($63) {
$64 = (151472 + ($42<<2)|0);
$65 = HEAP32[$64>>2]|0;
$66 = (151472 + ($56<<2)|0);
$67 = HEAP32[$66>>2]|0;
$68 = (151472 + ($61<<2)|0);
$69 = HEAP32[$68>>2]|0;
$70 = (151472 + ($49<<2)|0);
$71 = HEAP32[$70>>2]|0;
$76 = $65;$78 = $67;$80 = $69;$82 = $71;
} else {
$76 = -1;$78 = -1;$80 = -1;$82 = -1;
}
$72 = HEAP8[1408210]|0;
$73 = ($72<<24>>24)==(0);
if ($73) {
$$0 = $76;$$0205 = $82;$$0206 = $80;$$0207 = $78;
} else {
$74 = (571908 + ($2<<2)|0);
$75 = HEAP32[$74>>2]|0;
$77 = (_PackedCol_Tint($76,$75)|0);
$79 = (_PackedCol_Tint($78,$75)|0);
$81 = (_PackedCol_Tint($80,$75)|0);
$83 = (_PackedCol_Tint($82,$75)|0);
$$0 = $77;$$0205 = $83;$$0206 = $81;$$0207 = $79;
}
$84 = (90000 + (($28*60)|0)|0);
$85 = HEAP32[$84>>2]|0;
$86 = HEAP32[307620]|0;
$87 = (($42) + ($61))|0;
$88 = (($49) + ($56))|0;
$89 = ($87>>>0)>($88>>>0);
$90 = HEAP32[307624]|0;
if ($89) {
$91 = HEAP32[307622]|0;
$92 = ((($85)) + 24|0);
HEAP32[$85>>2] = $86;
$$sroa$11$0$$sroa_idx16 = ((($85)) + 4|0);
HEAP32[$$sroa$11$0$$sroa_idx16>>2] = $90;
$$sroa$15$0$$sroa_idx32 = ((($85)) + 8|0);
HEAP32[$$sroa$15$0$$sroa_idx32>>2] = $91;
$$sroa$20$0$$sroa_idx48 = ((($85)) + 12|0);
HEAP32[$$sroa$20$0$$sroa_idx48>>2] = $$0207;
$$sroa$28$0$$sroa_idx64 = ((($85)) + 16|0);
HEAP32[$$sroa$28$0$$sroa_idx64>>2] = $12;
$$sroa$33$0$$sroa_idx80 = ((($85)) + 20|0);
HEAPF32[$$sroa$33$0$$sroa_idx80>>2] = $20;
$93 = HEAP32[307621]|0;
$94 = ((($85)) + 48|0);
HEAP32[$92>>2] = $86;
$$sroa$11$0$$sroa_idx17 = ((($85)) + 28|0);
HEAP32[$$sroa$11$0$$sroa_idx17>>2] = $93;
$$sroa$15$0$$sroa_idx33 = ((($85)) + 32|0);
HEAP32[$$sroa$15$0$$sroa_idx33>>2] = $91;
$$sroa$20$0$$sroa_idx49 = ((($85)) + 36|0);
HEAP32[$$sroa$20$0$$sroa_idx49>>2] = $$0;
$$sroa$28$0$$sroa_idx65 = ((($85)) + 40|0);
HEAP32[$$sroa$28$0$$sroa_idx65>>2] = $12;
$$sroa$33$0$$sroa_idx81 = ((($85)) + 44|0);
HEAPF32[$$sroa$33$0$$sroa_idx81>>2] = $24;
$95 = +HEAPF32[307625];
$96 = $95 + $14;
HEAP32[$94>>2] = $86;
$$sroa$11$0$$sroa_idx19 = ((($85)) + 52|0);
HEAP32[$$sroa$11$0$$sroa_idx19>>2] = $93;
$$sroa$15$0$$sroa_idx35 = ((($85)) + 56|0);
HEAPF32[$$sroa$15$0$$sroa_idx35>>2] = $96;
$$sroa$20$0$$sroa_idx51 = ((($85)) + 60|0);
HEAP32[$$sroa$20$0$$sroa_idx51>>2] = $$0205;
$$sroa$28$0$$sroa_idx67 = ((($85)) + 64|0);
HEAPF32[$$sroa$28$0$$sroa_idx67>>2] = $17;
$$0205$sink = $$0206;$$sink = $20;$$sink208 = $96;$$sink209 = $90;
$$sink212 = ((($85)) + 72|0);
$$sroa$33$0$$sroa_idx91 = ((($85)) + 68|0);
HEAPF32[$$sroa$33$0$$sroa_idx91>>2] = $24;
HEAP32[$$sink212>>2] = $86;
$$sroa$11$0$$sroa_idx29 = ((($85)) + 76|0);
HEAP32[$$sroa$11$0$$sroa_idx29>>2] = $$sink209;
$$sroa$15$0$$sroa_idx45 = ((($85)) + 80|0);
HEAPF32[$$sroa$15$0$$sroa_idx45>>2] = $$sink208;
$$sroa$20$0$$sroa_idx61 = ((($85)) + 84|0);
HEAP32[$$sroa$20$0$$sroa_idx61>>2] = $$0205$sink;
$$sroa$28$0$$sroa_idx77 = ((($85)) + 88|0);
HEAPF32[$$sroa$28$0$$sroa_idx77>>2] = $17;
$$sroa$33$0$$sroa_idx93 = ((($85)) + 92|0);
HEAPF32[$$sroa$33$0$$sroa_idx93>>2] = $$sink;
$$0204 = ((($85)) + 96|0);
HEAP32[$84>>2] = $$0204;
return;
} else {
$97 = +HEAPF32[307625];
$98 = $97 + $14;
$99 = ((($85)) + 24|0);
HEAP32[$85>>2] = $86;
$$sroa$11$0$$sroa_idx23 = ((($85)) + 4|0);
HEAP32[$$sroa$11$0$$sroa_idx23>>2] = $90;
$$sroa$15$0$$sroa_idx39 = ((($85)) + 8|0);
HEAPF32[$$sroa$15$0$$sroa_idx39>>2] = $98;
$$sroa$20$0$$sroa_idx55 = ((($85)) + 12|0);
HEAP32[$$sroa$20$0$$sroa_idx55>>2] = $$0206;
$$sroa$28$0$$sroa_idx71 = ((($85)) + 16|0);
HEAPF32[$$sroa$28$0$$sroa_idx71>>2] = $17;
$$sroa$33$0$$sroa_idx87 = ((($85)) + 20|0);
HEAPF32[$$sroa$33$0$$sroa_idx87>>2] = $20;
$100 = HEAP32[307622]|0;
$101 = ((($85)) + 48|0);
HEAP32[$99>>2] = $86;
$$sroa$11$0$$sroa_idx25 = ((($85)) + 28|0);
HEAP32[$$sroa$11$0$$sroa_idx25>>2] = $90;
$$sroa$15$0$$sroa_idx41 = ((($85)) + 32|0);
HEAP32[$$sroa$15$0$$sroa_idx41>>2] = $100;
$$sroa$20$0$$sroa_idx57 = ((($85)) + 36|0);
HEAP32[$$sroa$20$0$$sroa_idx57>>2] = $$0207;
$$sroa$28$0$$sroa_idx73 = ((($85)) + 40|0);
HEAP32[$$sroa$28$0$$sroa_idx73>>2] = $12;
$$sroa$33$0$$sroa_idx89 = ((($85)) + 44|0);
HEAPF32[$$sroa$33$0$$sroa_idx89>>2] = $20;
$102 = HEAP32[307621]|0;
HEAP32[$101>>2] = $86;
$$sroa$11$0$$sroa_idx27 = ((($85)) + 52|0);
HEAP32[$$sroa$11$0$$sroa_idx27>>2] = $102;
$$sroa$15$0$$sroa_idx43 = ((($85)) + 56|0);
HEAP32[$$sroa$15$0$$sroa_idx43>>2] = $100;
$$sroa$20$0$$sroa_idx59 = ((($85)) + 60|0);
HEAP32[$$sroa$20$0$$sroa_idx59>>2] = $$0;
$$sroa$28$0$$sroa_idx75 = ((($85)) + 64|0);
HEAP32[$$sroa$28$0$$sroa_idx75>>2] = $12;
$$0205$sink = $$0205;$$sink = $24;$$sink208 = $98;$$sink209 = $102;
$$sink212 = ((($85)) + 72|0);
$$sroa$33$0$$sroa_idx91 = ((($85)) + 68|0);
HEAPF32[$$sroa$33$0$$sroa_idx91>>2] = $24;
HEAP32[$$sink212>>2] = $86;
$$sroa$11$0$$sroa_idx29 = ((($85)) + 76|0);
HEAP32[$$sroa$11$0$$sroa_idx29>>2] = $$sink209;
$$sroa$15$0$$sroa_idx45 = ((($85)) + 80|0);
HEAPF32[$$sroa$15$0$$sroa_idx45>>2] = $$sink208;
$$sroa$20$0$$sroa_idx61 = ((($85)) + 84|0);
HEAP32[$$sroa$20$0$$sroa_idx61>>2] = $$0205$sink;
$$sroa$28$0$$sroa_idx77 = ((($85)) + 88|0);
HEAPF32[$$sroa$28$0$$sroa_idx77>>2] = $17;
$$sroa$33$0$$sroa_idx93 = ((($85)) + 92|0);
HEAPF32[$$sroa$33$0$$sroa_idx93>>2] = $$sink;
$$0204 = ((($85)) + 96|0);
HEAP32[$84>>2] = $$0204;
return;
}
}
function _Adv_DrawXMax($0) {
$0 = $0|0;
var $$0 = 0, $$0$sink = 0, $$0203 = 0, $$0204 = 0, $$0205 = 0, $$0206 = 0, $$0206$sink = 0, $$sink = 0.0, $$sink207 = 0, $$sink209 = 0, $$sink212 = 0, $$sink213 = 0.0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$11$0$$sroa_idx17 = 0, $$sroa$11$0$$sroa_idx19 = 0, $$sroa$11$0$$sroa_idx23 = 0, $$sroa$11$0$$sroa_idx25 = 0, $$sroa$11$0$$sroa_idx27 = 0, $$sroa$11$0$$sroa_idx29 = 0, $$sroa$15$0$$sroa_idx32 = 0;
var $$sroa$15$0$$sroa_idx33 = 0, $$sroa$15$0$$sroa_idx35 = 0, $$sroa$15$0$$sroa_idx39 = 0, $$sroa$15$0$$sroa_idx41 = 0, $$sroa$15$0$$sroa_idx43 = 0, $$sroa$15$0$$sroa_idx45 = 0, $$sroa$20$0$$sroa_idx48 = 0, $$sroa$20$0$$sroa_idx49 = 0, $$sroa$20$0$$sroa_idx55 = 0, $$sroa$20$0$$sroa_idx57 = 0, $$sroa$20$0$$sroa_idx59 = 0, $$sroa$20$0$$sroa_idx61 = 0, $$sroa$28$0$$sroa_idx64 = 0, $$sroa$28$0$$sroa_idx65 = 0, $$sroa$28$0$$sroa_idx71 = 0, $$sroa$28$0$$sroa_idx73 = 0, $$sroa$28$0$$sroa_idx75 = 0, $$sroa$28$0$$sroa_idx77 = 0, $$sroa$33$0$$sroa_idx80 = 0, $$sroa$33$0$$sroa_idx81 = 0;
var $$sroa$33$0$$sroa_idx87 = 0, $$sroa$33$0$$sroa_idx89 = 0, $$sroa$33$0$$sroa_idx91 = 0, $$sroa$33$0$$sroa_idx93 = 0, $1 = 0, $10 = 0.0, $100 = 0, $101 = 0.0, $102 = 0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0;
var $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0.0, $96 = 0, $97 = 0.0, $98 = 0.0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[704098]|0;
$2 = $1&65535;
$3 = ($2*6)|0;
$4 = $3 | 1;
$5 = (624900 + ($4<<1)|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = HEAP32[(1384648)>>2]|0;
$9 = $8 & $7;
$10 = (+($9|0));
$11 = +HEAPF32[(1384656)>>2];
$12 = $11 * $10;
$13 = (+($0|0));
$14 = +HEAPF32[(1230512)>>2];
$15 = $13 - $14;
$16 = +HEAPF32[(1230524)>>2];
$17 = 1.0 - $16;
$18 = $17 * 0.99937498569488525;
$19 = +HEAPF32[(1230520)>>2];
$20 = $11 * $19;
$21 = $12 + $20;
$22 = +HEAPF32[(1230508)>>2];
$23 = $11 * $22;
$24 = $23 * 0.99937498569488525;
$25 = $12 + $24;
$26 = HEAP32[307619]|0;
$27 = HEAP32[(1384652)>>2]|0;
$28 = ($27)?($7 >>> $27):($7);
$29 = (($28) + ($26))|0;
$30 = HEAP32[307618]|0;
$31 = HEAP32[307632]|0;
$32 = (($30) + ($31<<2)|0);
$33 = HEAP32[$32>>2]|0;
$34 = (6)?($33 >>> 6):($33);
$35 = $34 & 1;
$36 = (7)?($33 >>> 7):($33);
$37 = $36 & 1;
$38 = (15)?($33 >>> 15):($33);
$39 = $38 & 1;
$40 = (16)?($33 >>> 16):($33);
$41 = $40 & 1;
$42 = (($39) + ($41))|0;
$43 = (($42) + ($37))|0;
$44 = (($43) + ($35))|0;
$45 = (24)?($33 >>> 24):($33);
$46 = $45 & 1;
$47 = (25)?($33 >>> 25):($33);
$48 = $47 & 1;
$49 = (($39) + ($41))|0;
$50 = (($49) + ($48))|0;
$51 = (($50) + ($46))|0;
$52 = (8)?($33 >>> 8):($33);
$53 = $52 & 1;
$54 = (17)?($33 >>> 17):($33);
$55 = $54 & 1;
$56 = (($55) + ($41))|0;
$57 = (($56) + ($37))|0;
$58 = (($57) + ($53))|0;
$59 = (26)?($33 >>> 26):($33);
$60 = $59 & 1;
$61 = (($55) + ($41))|0;
$62 = (($61) + ($48))|0;
$63 = (($62) + ($60))|0;
$64 = HEAP8[1408209]|0;
$65 = ($64<<24>>24)==(0);
if ($65) {
$66 = (151472 + ($44<<2)|0);
$67 = HEAP32[$66>>2]|0;
$68 = (151472 + ($58<<2)|0);
$69 = HEAP32[$68>>2]|0;
$70 = (151472 + ($63<<2)|0);
$71 = HEAP32[$70>>2]|0;
$72 = (151472 + ($51<<2)|0);
$73 = HEAP32[$72>>2]|0;
$78 = $67;$80 = $69;$82 = $71;$84 = $73;
} else {
$78 = -1;$80 = -1;$82 = -1;$84 = -1;
}
$74 = HEAP8[1408210]|0;
$75 = ($74<<24>>24)==(0);
if ($75) {
$$0 = $78;$$0204 = $84;$$0205 = $82;$$0206 = $80;
} else {
$76 = (571908 + ($2<<2)|0);
$77 = HEAP32[$76>>2]|0;
$79 = (_PackedCol_Tint($78,$77)|0);
$81 = (_PackedCol_Tint($80,$77)|0);
$83 = (_PackedCol_Tint($82,$77)|0);
$85 = (_PackedCol_Tint($84,$77)|0);
$$0 = $79;$$0204 = $85;$$0205 = $83;$$0206 = $81;
}
$86 = (((90000 + (($29*60)|0)|0)) + 4|0);
$87 = HEAP32[$86>>2]|0;
$88 = HEAP32[307623]|0;
$89 = (($44) + ($63))|0;
$90 = (($51) + ($58))|0;
$91 = ($89>>>0)>($90>>>0);
$92 = HEAP32[307624]|0;
if ($91) {
$93 = HEAP32[307622]|0;
$94 = ((($87)) + 24|0);
HEAP32[$87>>2] = $88;
$$sroa$11$0$$sroa_idx16 = ((($87)) + 4|0);
HEAP32[$$sroa$11$0$$sroa_idx16>>2] = $92;
$$sroa$15$0$$sroa_idx32 = ((($87)) + 8|0);
HEAP32[$$sroa$15$0$$sroa_idx32>>2] = $93;
$$sroa$20$0$$sroa_idx48 = ((($87)) + 12|0);
HEAP32[$$sroa$20$0$$sroa_idx48>>2] = $$0206;
$$sroa$28$0$$sroa_idx64 = ((($87)) + 16|0);
HEAPF32[$$sroa$28$0$$sroa_idx64>>2] = $15;
$$sroa$33$0$$sroa_idx80 = ((($87)) + 20|0);
HEAPF32[$$sroa$33$0$$sroa_idx80>>2] = $21;
$95 = +HEAPF32[307625];
$96 = (($0) + -1)|0;
$97 = (+($96|0));
$98 = $95 + $97;
$99 = ((($87)) + 48|0);
HEAP32[$94>>2] = $88;
$$sroa$11$0$$sroa_idx17 = ((($87)) + 28|0);
HEAP32[$$sroa$11$0$$sroa_idx17>>2] = $92;
$$sroa$15$0$$sroa_idx33 = ((($87)) + 32|0);
HEAPF32[$$sroa$15$0$$sroa_idx33>>2] = $98;
$$sroa$20$0$$sroa_idx49 = ((($87)) + 36|0);
HEAP32[$$sroa$20$0$$sroa_idx49>>2] = $$0205;
$$sroa$28$0$$sroa_idx65 = ((($87)) + 40|0);
HEAPF32[$$sroa$28$0$$sroa_idx65>>2] = $18;
$$sroa$33$0$$sroa_idx81 = ((($87)) + 44|0);
HEAPF32[$$sroa$33$0$$sroa_idx81>>2] = $21;
$100 = HEAP32[307621]|0;
HEAP32[$99>>2] = $88;
$$sroa$11$0$$sroa_idx19 = ((($87)) + 52|0);
HEAP32[$$sroa$11$0$$sroa_idx19>>2] = $100;
$$sroa$15$0$$sroa_idx35 = ((($87)) + 56|0);
HEAPF32[$$sroa$15$0$$sroa_idx35>>2] = $98;
$$0$sink = $$0204;$$0206$sink = $$0;$$sink = $25;$$sink207 = $93;$$sink209 = $100;$$sink213 = $18;
$$sink212 = ((($87)) + 72|0);
$$sroa$20$0$$sroa_idx59 = ((($87)) + 60|0);
HEAP32[$$sroa$20$0$$sroa_idx59>>2] = $$0$sink;
$$sroa$28$0$$sroa_idx75 = ((($87)) + 64|0);
HEAPF32[$$sroa$28$0$$sroa_idx75>>2] = $$sink213;
$$sroa$33$0$$sroa_idx91 = ((($87)) + 68|0);
HEAPF32[$$sroa$33$0$$sroa_idx91>>2] = $25;
HEAP32[$$sink212>>2] = $88;
$$sroa$11$0$$sroa_idx29 = ((($87)) + 76|0);
HEAP32[$$sroa$11$0$$sroa_idx29>>2] = $$sink209;
$$sroa$15$0$$sroa_idx45 = ((($87)) + 80|0);
HEAP32[$$sroa$15$0$$sroa_idx45>>2] = $$sink207;
$$sroa$20$0$$sroa_idx61 = ((($87)) + 84|0);
HEAP32[$$sroa$20$0$$sroa_idx61>>2] = $$0206$sink;
$$sroa$28$0$$sroa_idx77 = ((($87)) + 88|0);
HEAPF32[$$sroa$28$0$$sroa_idx77>>2] = $15;
$$sroa$33$0$$sroa_idx93 = ((($87)) + 92|0);
HEAPF32[$$sroa$33$0$$sroa_idx93>>2] = $$sink;
$$0203 = ((($87)) + 96|0);
HEAP32[$86>>2] = $$0203;
return;
} else {
$101 = +HEAPF32[307625];
$102 = (($0) + -1)|0;
$103 = (+($102|0));
$104 = $101 + $103;
$105 = ((($87)) + 24|0);
HEAP32[$87>>2] = $88;
$$sroa$11$0$$sroa_idx23 = ((($87)) + 4|0);
HEAP32[$$sroa$11$0$$sroa_idx23>>2] = $92;
$$sroa$15$0$$sroa_idx39 = ((($87)) + 8|0);
HEAPF32[$$sroa$15$0$$sroa_idx39>>2] = $104;
$$sroa$20$0$$sroa_idx55 = ((($87)) + 12|0);
HEAP32[$$sroa$20$0$$sroa_idx55>>2] = $$0205;
$$sroa$28$0$$sroa_idx71 = ((($87)) + 16|0);
HEAPF32[$$sroa$28$0$$sroa_idx71>>2] = $18;
$$sroa$33$0$$sroa_idx87 = ((($87)) + 20|0);
HEAPF32[$$sroa$33$0$$sroa_idx87>>2] = $21;
$106 = HEAP32[307621]|0;
$107 = ((($87)) + 48|0);
HEAP32[$105>>2] = $88;
$$sroa$11$0$$sroa_idx25 = ((($87)) + 28|0);
HEAP32[$$sroa$11$0$$sroa_idx25>>2] = $106;
$$sroa$15$0$$sroa_idx41 = ((($87)) + 32|0);
HEAPF32[$$sroa$15$0$$sroa_idx41>>2] = $104;
$$sroa$20$0$$sroa_idx57 = ((($87)) + 36|0);
HEAP32[$$sroa$20$0$$sroa_idx57>>2] = $$0204;
$$sroa$28$0$$sroa_idx73 = ((($87)) + 40|0);
HEAPF32[$$sroa$28$0$$sroa_idx73>>2] = $18;
$$sroa$33$0$$sroa_idx89 = ((($87)) + 44|0);
HEAPF32[$$sroa$33$0$$sroa_idx89>>2] = $25;
$108 = HEAP32[307622]|0;
HEAP32[$107>>2] = $88;
$$sroa$11$0$$sroa_idx27 = ((($87)) + 52|0);
HEAP32[$$sroa$11$0$$sroa_idx27>>2] = $106;
$$sroa$15$0$$sroa_idx43 = ((($87)) + 56|0);
HEAP32[$$sroa$15$0$$sroa_idx43>>2] = $108;
$$0$sink = $$0;$$0206$sink = $$0206;$$sink = $21;$$sink207 = $108;$$sink209 = $92;$$sink213 = $15;
$$sink212 = ((($87)) + 72|0);
$$sroa$20$0$$sroa_idx59 = ((($87)) + 60|0);
HEAP32[$$sroa$20$0$$sroa_idx59>>2] = $$0$sink;
$$sroa$28$0$$sroa_idx75 = ((($87)) + 64|0);
HEAPF32[$$sroa$28$0$$sroa_idx75>>2] = $$sink213;
$$sroa$33$0$$sroa_idx91 = ((($87)) + 68|0);
HEAPF32[$$sroa$33$0$$sroa_idx91>>2] = $25;
HEAP32[$$sink212>>2] = $88;
$$sroa$11$0$$sroa_idx29 = ((($87)) + 76|0);
HEAP32[$$sroa$11$0$$sroa_idx29>>2] = $$sink209;
$$sroa$15$0$$sroa_idx45 = ((($87)) + 80|0);
HEAP32[$$sroa$15$0$$sroa_idx45>>2] = $$sink207;
$$sroa$20$0$$sroa_idx61 = ((($87)) + 84|0);
HEAP32[$$sroa$20$0$$sroa_idx61>>2] = $$0206$sink;
$$sroa$28$0$$sroa_idx77 = ((($87)) + 88|0);
HEAPF32[$$sroa$28$0$$sroa_idx77>>2] = $15;
$$sroa$33$0$$sroa_idx93 = ((($87)) + 92|0);
HEAPF32[$$sroa$33$0$$sroa_idx93>>2] = $$sink;
$$0203 = ((($87)) + 96|0);
HEAP32[$86>>2] = $$0203;
return;
}
}
function _Adv_DrawZMin($0) {
$0 = $0|0;
var $$0 = 0, $$0204 = 0, $$0205 = 0, $$0206 = 0, $$0206$sink = 0, $$0207 = 0, $$0207$sink = 0, $$sink = 0.0, $$sink209 = 0, $$sink211 = 0.0, $$sink212 = 0.0, $$sink214 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$$sroa_idx11 = 0, $$sroa$15$0$$sroa_idx16 = 0, $$sroa$15$0$$sroa_idx17 = 0, $$sroa$15$0$$sroa_idx19 = 0, $$sroa$15$0$$sroa_idx23 = 0, $$sroa$15$0$$sroa_idx25 = 0, $$sroa$15$0$$sroa_idx27 = 0;
var $$sroa$20$0$$sroa_idx32 = 0, $$sroa$20$0$$sroa_idx33 = 0, $$sroa$20$0$$sroa_idx35 = 0, $$sroa$20$0$$sroa_idx39 = 0, $$sroa$20$0$$sroa_idx41 = 0, $$sroa$20$0$$sroa_idx43 = 0, $$sroa$21$0$$sroa_idx48 = 0, $$sroa$21$0$$sroa_idx49 = 0, $$sroa$21$0$$sroa_idx51 = 0, $$sroa$21$0$$sroa_idx55 = 0, $$sroa$21$0$$sroa_idx57 = 0, $$sroa$21$0$$sroa_idx59 = 0, $$sroa$29$0$$sroa_idx64 = 0, $$sroa$29$0$$sroa_idx65 = 0, $$sroa$29$0$$sroa_idx67 = 0, $$sroa$29$0$$sroa_idx71 = 0, $$sroa$29$0$$sroa_idx73 = 0, $$sroa$29$0$$sroa_idx75 = 0, $$sroa$34$0$$sroa_idx80 = 0, $$sroa$34$0$$sroa_idx81 = 0;
var $$sroa$34$0$$sroa_idx83 = 0, $$sroa$34$0$$sroa_idx87 = 0, $$sroa$34$0$$sroa_idx89 = 0, $$sroa$34$0$$sroa_idx91 = 0, $1 = 0, $10 = 0.0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0;
var $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0.0, $92 = 0, $93 = 0.0, $94 = 0.0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[704098]|0;
$2 = $1&65535;
$3 = ($2*6)|0;
$4 = (($3) + 2)|0;
$5 = (624900 + ($4<<1)|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = HEAP32[(1384648)>>2]|0;
$9 = $8 & $7;
$10 = (+($9|0));
$11 = +HEAPF32[(1384656)>>2];
$12 = $11 * $10;
$13 = (+($0|0));
$14 = +HEAPF32[307626];
$15 = $13 - $14;
$16 = +HEAPF32[307629];
$17 = 1.0 - $16;
$18 = $17 * 0.99937498569488525;
$19 = +HEAPF32[(1230520)>>2];
$20 = $11 * $19;
$21 = $12 + $20;
$22 = +HEAPF32[(1230508)>>2];
$23 = $11 * $22;
$24 = $23 * 0.99937498569488525;
$25 = $12 + $24;
$26 = HEAP32[307619]|0;
$27 = HEAP32[(1384652)>>2]|0;
$28 = ($27)?($7 >>> $27):($7);
$29 = (($28) + ($26))|0;
$30 = HEAP32[307618]|0;
$31 = HEAP32[307632]|0;
$32 = (($30) + ($31<<2)|0);
$33 = HEAP32[$32>>2]|0;
$34 = $33 & 1;
$35 = (1)?($33 >>> 1):($33);
$36 = $35 & 1;
$37 = (3)?($33 >>> 3):($33);
$38 = $37 & 1;
$39 = (4)?($33 >>> 4):($33);
$40 = $39 & 1;
$41 = (($38) + ($40))|0;
$42 = (($41) + ($34))|0;
$43 = (($42) + ($36))|0;
$44 = (2)?($33 >>> 2):($33);
$45 = $44 & 1;
$46 = (5)?($33 >>> 5):($33);
$47 = $46 & 1;
$48 = (($47) + ($40))|0;
$49 = (($48) + ($36))|0;
$50 = (($49) + ($45))|0;
$51 = (6)?($33 >>> 6):($33);
$52 = $51 & 1;
$53 = (7)?($33 >>> 7):($33);
$54 = $53 & 1;
$55 = (($38) + ($40))|0;
$56 = (($55) + ($54))|0;
$57 = (($56) + ($52))|0;
$58 = (8)?($33 >>> 8):($33);
$59 = $58 & 1;
$60 = (($47) + ($40))|0;
$61 = (($60) + ($54))|0;
$62 = (($61) + ($59))|0;
$63 = HEAP8[1408209]|0;
$64 = ($63<<24>>24)==(0);
if ($64) {
$65 = (151504 + ($43<<2)|0);
$66 = HEAP32[$65>>2]|0;
$67 = (151504 + ($57<<2)|0);
$68 = HEAP32[$67>>2]|0;
$69 = (151504 + ($62<<2)|0);
$70 = HEAP32[$69>>2]|0;
$71 = (151504 + ($50<<2)|0);
$72 = HEAP32[$71>>2]|0;
$77 = $66;$79 = $68;$81 = $70;$83 = $72;
} else {
$77 = -1;$79 = -1;$81 = -1;$83 = -1;
}
$73 = HEAP8[1408210]|0;
$74 = ($73<<24>>24)==(0);
if ($74) {
$$0 = $77;$$0205 = $83;$$0206 = $81;$$0207 = $79;
} else {
$75 = (571908 + ($2<<2)|0);
$76 = HEAP32[$75>>2]|0;
$78 = (_PackedCol_Tint($77,$76)|0);
$80 = (_PackedCol_Tint($79,$76)|0);
$82 = (_PackedCol_Tint($81,$76)|0);
$84 = (_PackedCol_Tint($83,$76)|0);
$$0 = $78;$$0205 = $84;$$0206 = $82;$$0207 = $80;
}
$85 = (((90000 + (($29*60)|0)|0)) + 8|0);
$86 = HEAP32[$85>>2]|0;
$87 = HEAP32[307622]|0;
$88 = (($62) + ($43))|0;
$89 = (($50) + ($57))|0;
$90 = ($88>>>0)>($89>>>0);
if ($90) {
$91 = +HEAPF32[307623];
$92 = (($0) + -1)|0;
$93 = (+($92|0));
$94 = $91 + $93;
$95 = HEAP32[307621]|0;
$96 = ((($86)) + 24|0);
HEAPF32[$86>>2] = $94;
$$sroa$15$0$$sroa_idx17 = ((($86)) + 4|0);
HEAP32[$$sroa$15$0$$sroa_idx17>>2] = $95;
$$sroa$20$0$$sroa_idx33 = ((($86)) + 8|0);
HEAP32[$$sroa$20$0$$sroa_idx33>>2] = $87;
$$sroa$21$0$$sroa_idx49 = ((($86)) + 12|0);
HEAP32[$$sroa$21$0$$sroa_idx49>>2] = $$0207;
$$sroa$29$0$$sroa_idx65 = ((($86)) + 16|0);
HEAPF32[$$sroa$29$0$$sroa_idx65>>2] = $18;
$$sroa$34$0$$sroa_idx81 = ((($86)) + 20|0);
HEAPF32[$$sroa$34$0$$sroa_idx81>>2] = $25;
$97 = HEAP32[307620]|0;
$98 = ((($86)) + 48|0);
HEAP32[$96>>2] = $97;
$$sroa$15$0$$sroa_idx19 = ((($86)) + 28|0);
HEAP32[$$sroa$15$0$$sroa_idx19>>2] = $95;
$$sroa$20$0$$sroa_idx35 = ((($86)) + 32|0);
HEAP32[$$sroa$20$0$$sroa_idx35>>2] = $87;
$$sroa$21$0$$sroa_idx51 = ((($86)) + 36|0);
HEAP32[$$sroa$21$0$$sroa_idx51>>2] = $$0;
$$sroa$29$0$$sroa_idx67 = ((($86)) + 40|0);
HEAPF32[$$sroa$29$0$$sroa_idx67>>2] = $15;
$$sroa$34$0$$sroa_idx83 = ((($86)) + 44|0);
HEAPF32[$$sroa$34$0$$sroa_idx83>>2] = $25;
$99 = HEAP32[307624]|0;
HEAP32[$98>>2] = $97;
$$0206$sink = $$0205;$$0207$sink = $$0206;$$sink = $21;$$sink209 = $99;$$sink211 = $94;$$sink212 = $15;$$sink214 = $99;
$$sroa$15$0$$sroa_idx16 = ((($86)) + 52|0);
HEAP32[$$sroa$15$0$$sroa_idx16>>2] = $$sink214;
$$sroa$20$0$$sroa_idx32 = ((($86)) + 56|0);
HEAP32[$$sroa$20$0$$sroa_idx32>>2] = $87;
$$sroa$21$0$$sroa_idx48 = ((($86)) + 60|0);
HEAP32[$$sroa$21$0$$sroa_idx48>>2] = $$0206$sink;
$$sroa$29$0$$sroa_idx64 = ((($86)) + 64|0);
HEAPF32[$$sroa$29$0$$sroa_idx64>>2] = $$sink212;
$$sroa$34$0$$sroa_idx80 = ((($86)) + 68|0);
HEAPF32[$$sroa$34$0$$sroa_idx80>>2] = $21;
$$sroa$0$0$$sroa_idx11 = ((($86)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx11>>2] = $$sink211;
$$sroa$15$0$$sroa_idx27 = ((($86)) + 76|0);
HEAP32[$$sroa$15$0$$sroa_idx27>>2] = $$sink209;
$$sroa$20$0$$sroa_idx43 = ((($86)) + 80|0);
HEAP32[$$sroa$20$0$$sroa_idx43>>2] = $87;
$$sroa$21$0$$sroa_idx59 = ((($86)) + 84|0);
HEAP32[$$sroa$21$0$$sroa_idx59>>2] = $$0207$sink;
$$sroa$29$0$$sroa_idx75 = ((($86)) + 88|0);
HEAPF32[$$sroa$29$0$$sroa_idx75>>2] = $18;
$$sroa$34$0$$sroa_idx91 = ((($86)) + 92|0);
HEAPF32[$$sroa$34$0$$sroa_idx91>>2] = $$sink;
$$0204 = ((($86)) + 96|0);
HEAP32[$85>>2] = $$0204;
return;
} else {
$100 = HEAP32[307620]|0;
$101 = HEAP32[307621]|0;
$102 = ((($86)) + 24|0);
HEAP32[$86>>2] = $100;
$$sroa$15$0$$sroa_idx23 = ((($86)) + 4|0);
HEAP32[$$sroa$15$0$$sroa_idx23>>2] = $101;
$$sroa$20$0$$sroa_idx39 = ((($86)) + 8|0);
HEAP32[$$sroa$20$0$$sroa_idx39>>2] = $87;
$$sroa$21$0$$sroa_idx55 = ((($86)) + 12|0);
HEAP32[$$sroa$21$0$$sroa_idx55>>2] = $$0;
$$sroa$29$0$$sroa_idx71 = ((($86)) + 16|0);
HEAPF32[$$sroa$29$0$$sroa_idx71>>2] = $15;
$$sroa$34$0$$sroa_idx87 = ((($86)) + 20|0);
HEAPF32[$$sroa$34$0$$sroa_idx87>>2] = $25;
$103 = HEAP32[307624]|0;
HEAP32[$102>>2] = $100;
$$sroa$15$0$$sroa_idx25 = ((($86)) + 28|0);
HEAP32[$$sroa$15$0$$sroa_idx25>>2] = $103;
$$sroa$20$0$$sroa_idx41 = ((($86)) + 32|0);
HEAP32[$$sroa$20$0$$sroa_idx41>>2] = $87;
$$sroa$21$0$$sroa_idx57 = ((($86)) + 36|0);
HEAP32[$$sroa$21$0$$sroa_idx57>>2] = $$0205;
$$sroa$29$0$$sroa_idx73 = ((($86)) + 40|0);
HEAPF32[$$sroa$29$0$$sroa_idx73>>2] = $15;
$$sroa$34$0$$sroa_idx89 = ((($86)) + 44|0);
HEAPF32[$$sroa$34$0$$sroa_idx89>>2] = $21;
$104 = +HEAPF32[307623];
$105 = (($0) + -1)|0;
$106 = (+($105|0));
$107 = $104 + $106;
$$sroa$0$0$$sroa_idx = ((($86)) + 48|0);
HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $107;
$$0206$sink = $$0206;$$0207$sink = $$0207;$$sink = $25;$$sink209 = $101;$$sink211 = $107;$$sink212 = $18;$$sink214 = $103;
$$sroa$15$0$$sroa_idx16 = ((($86)) + 52|0);
HEAP32[$$sroa$15$0$$sroa_idx16>>2] = $$sink214;
$$sroa$20$0$$sroa_idx32 = ((($86)) + 56|0);
HEAP32[$$sroa$20$0$$sroa_idx32>>2] = $87;
$$sroa$21$0$$sroa_idx48 = ((($86)) + 60|0);
HEAP32[$$sroa$21$0$$sroa_idx48>>2] = $$0206$sink;
$$sroa$29$0$$sroa_idx64 = ((($86)) + 64|0);
HEAPF32[$$sroa$29$0$$sroa_idx64>>2] = $$sink212;
$$sroa$34$0$$sroa_idx80 = ((($86)) + 68|0);
HEAPF32[$$sroa$34$0$$sroa_idx80>>2] = $21;
$$sroa$0$0$$sroa_idx11 = ((($86)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx11>>2] = $$sink211;
$$sroa$15$0$$sroa_idx27 = ((($86)) + 76|0);
HEAP32[$$sroa$15$0$$sroa_idx27>>2] = $$sink209;
$$sroa$20$0$$sroa_idx43 = ((($86)) + 80|0);
HEAP32[$$sroa$20$0$$sroa_idx43>>2] = $87;
$$sroa$21$0$$sroa_idx59 = ((($86)) + 84|0);
HEAP32[$$sroa$21$0$$sroa_idx59>>2] = $$0207$sink;
$$sroa$29$0$$sroa_idx75 = ((($86)) + 88|0);
HEAPF32[$$sroa$29$0$$sroa_idx75>>2] = $18;
$$sroa$34$0$$sroa_idx91 = ((($86)) + 92|0);
HEAPF32[$$sroa$34$0$$sroa_idx91>>2] = $$sink;
$$0204 = ((($86)) + 96|0);
HEAP32[$85>>2] = $$0204;
return;
}
}
function _Adv_DrawZMax($0) {
$0 = $0|0;
var $$0 = 0, $$0204 = 0, $$0205 = 0, $$0206 = 0, $$0207 = 0, $$0207$sink = 0, $$sink = 0.0, $$sink209 = 0, $$sink211 = 0.0, $$sroa$0$0$$sroa_idx11 = 0, $$sroa$0$0$$sroa_idx5 = 0, $$sroa$15$0$$sroa_idx16 = 0, $$sroa$15$0$$sroa_idx17 = 0, $$sroa$15$0$$sroa_idx19 = 0, $$sroa$15$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx23 = 0, $$sroa$15$0$$sroa_idx25 = 0, $$sroa$15$0$$sroa_idx27 = 0, $$sroa$20$0$$sroa_idx32 = 0, $$sroa$20$0$$sroa_idx33 = 0;
var $$sroa$20$0$$sroa_idx35 = 0, $$sroa$20$0$$sroa_idx37 = 0, $$sroa$20$0$$sroa_idx39 = 0, $$sroa$20$0$$sroa_idx41 = 0, $$sroa$20$0$$sroa_idx43 = 0, $$sroa$21$0$$sroa_idx48 = 0, $$sroa$21$0$$sroa_idx49 = 0, $$sroa$21$0$$sroa_idx51 = 0, $$sroa$21$0$$sroa_idx53 = 0, $$sroa$21$0$$sroa_idx55 = 0, $$sroa$21$0$$sroa_idx57 = 0, $$sroa$21$0$$sroa_idx59 = 0, $$sroa$29$0$$sroa_idx64 = 0, $$sroa$29$0$$sroa_idx65 = 0, $$sroa$29$0$$sroa_idx67 = 0, $$sroa$29$0$$sroa_idx69 = 0, $$sroa$29$0$$sroa_idx71 = 0, $$sroa$29$0$$sroa_idx73 = 0, $$sroa$29$0$$sroa_idx75 = 0, $$sroa$34$0$$sroa_idx80 = 0;
var $$sroa$34$0$$sroa_idx81 = 0, $$sroa$34$0$$sroa_idx83 = 0, $$sroa$34$0$$sroa_idx87 = 0, $$sroa$34$0$$sroa_idx89 = 0, $$sroa$34$0$$sroa_idx91 = 0, $1 = 0, $10 = 0.0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0;
var $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[704098]|0;
$2 = $1&65535;
$3 = ($2*6)|0;
$4 = (($3) + 3)|0;
$5 = (624900 + ($4<<1)|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = HEAP32[(1384648)>>2]|0;
$9 = $8 & $7;
$10 = (+($9|0));
$11 = +HEAPF32[(1384656)>>2];
$12 = $11 * $10;
$13 = HEAP32[307626]|0;
$14 = (($0) + -1)|0;
$15 = (+($14|0));
$16 = +HEAPF32[307629];
$17 = $16 * 0.99937498569488525;
$18 = $17 + $15;
$19 = +HEAPF32[(1230520)>>2];
$20 = $11 * $19;
$21 = $12 + $20;
$22 = +HEAPF32[(1230508)>>2];
$23 = $11 * $22;
$24 = $23 * 0.99937498569488525;
$25 = $12 + $24;
$26 = HEAP32[307619]|0;
$27 = HEAP32[(1384652)>>2]|0;
$28 = ($27)?($7 >>> $27):($7);
$29 = (($28) + ($26))|0;
$30 = HEAP32[307618]|0;
$31 = HEAP32[307632]|0;
$32 = (($30) + ($31<<2)|0);
$33 = HEAP32[$32>>2]|0;
$34 = (18)?($33 >>> 18):($33);
$35 = $34 & 1;
$36 = (19)?($33 >>> 19):($33);
$37 = $36 & 1;
$38 = (21)?($33 >>> 21):($33);
$39 = $38 & 1;
$40 = (22)?($33 >>> 22):($33);
$41 = $40 & 1;
$42 = (($39) + ($41))|0;
$43 = (($42) + ($37))|0;
$44 = (($43) + ($35))|0;
$45 = (24)?($33 >>> 24):($33);
$46 = $45 & 1;
$47 = (25)?($33 >>> 25):($33);
$48 = $47 & 1;
$49 = (($39) + ($41))|0;
$50 = (($49) + ($48))|0;
$51 = (($50) + ($46))|0;
$52 = (20)?($33 >>> 20):($33);
$53 = $52 & 1;
$54 = (23)?($33 >>> 23):($33);
$55 = $54 & 1;
$56 = (($55) + ($41))|0;
$57 = (($56) + ($37))|0;
$58 = (($57) + ($53))|0;
$59 = (26)?($33 >>> 26):($33);
$60 = $59 & 1;
$61 = (($55) + ($41))|0;
$62 = (($61) + ($48))|0;
$63 = (($62) + ($60))|0;
$64 = HEAP8[1408209]|0;
$65 = ($64<<24>>24)==(0);
if ($65) {
$66 = (151504 + ($63<<2)|0);
$67 = HEAP32[$66>>2]|0;
$68 = (151504 + ($51<<2)|0);
$69 = HEAP32[$68>>2]|0;
$70 = (151504 + ($44<<2)|0);
$71 = HEAP32[$70>>2]|0;
$72 = (151504 + ($58<<2)|0);
$73 = HEAP32[$72>>2]|0;
$78 = $71;$80 = $69;$82 = $67;$84 = $73;
} else {
$78 = -1;$80 = -1;$82 = -1;$84 = -1;
}
$74 = HEAP8[1408210]|0;
$75 = ($74<<24>>24)==(0);
if ($75) {
$$0 = $82;$$0205 = $84;$$0206 = $78;$$0207 = $80;
} else {
$76 = (571908 + ($2<<2)|0);
$77 = HEAP32[$76>>2]|0;
$79 = (_PackedCol_Tint($78,$77)|0);
$81 = (_PackedCol_Tint($80,$77)|0);
$83 = (_PackedCol_Tint($82,$77)|0);
$85 = (_PackedCol_Tint($84,$77)|0);
$$0 = $83;$$0205 = $85;$$0206 = $79;$$0207 = $81;
}
$86 = (((90000 + (($29*60)|0)|0)) + 12|0);
$87 = HEAP32[$86>>2]|0;
$88 = HEAP32[307625]|0;
$89 = (($63) + ($44))|0;
$90 = (($58) + ($51))|0;
$91 = ($89>>>0)>($90>>>0);
if ($91) {
$92 = HEAP32[307620]|0;
$93 = HEAP32[307624]|0;
$94 = ((($87)) + 24|0);
HEAP32[$87>>2] = $92;
$$sroa$15$0$$sroa_idx17 = ((($87)) + 4|0);
HEAP32[$$sroa$15$0$$sroa_idx17>>2] = $93;
$$sroa$20$0$$sroa_idx33 = ((($87)) + 8|0);
HEAP32[$$sroa$20$0$$sroa_idx33>>2] = $88;
$$sroa$21$0$$sroa_idx49 = ((($87)) + 12|0);
HEAP32[$$sroa$21$0$$sroa_idx49>>2] = $$0205;
$$sroa$29$0$$sroa_idx65 = ((($87)) + 16|0);
HEAP32[$$sroa$29$0$$sroa_idx65>>2] = $13;
$$sroa$34$0$$sroa_idx81 = ((($87)) + 20|0);
HEAPF32[$$sroa$34$0$$sroa_idx81>>2] = $21;
$95 = HEAP32[307621]|0;
HEAP32[$94>>2] = $92;
$$sroa$15$0$$sroa_idx19 = ((($87)) + 28|0);
HEAP32[$$sroa$15$0$$sroa_idx19>>2] = $95;
$$sroa$20$0$$sroa_idx35 = ((($87)) + 32|0);
HEAP32[$$sroa$20$0$$sroa_idx35>>2] = $88;
$$sroa$21$0$$sroa_idx51 = ((($87)) + 36|0);
HEAP32[$$sroa$21$0$$sroa_idx51>>2] = $$0206;
$$sroa$29$0$$sroa_idx67 = ((($87)) + 40|0);
HEAP32[$$sroa$29$0$$sroa_idx67>>2] = $13;
$$sroa$34$0$$sroa_idx83 = ((($87)) + 44|0);
HEAPF32[$$sroa$34$0$$sroa_idx83>>2] = $25;
$96 = +HEAPF32[307623];
$97 = $96 + $15;
$$sroa$0$0$$sroa_idx5 = ((($87)) + 48|0);
HEAPF32[$$sroa$0$0$$sroa_idx5>>2] = $97;
$$sroa$15$0$$sroa_idx21 = ((($87)) + 52|0);
HEAP32[$$sroa$15$0$$sroa_idx21>>2] = $95;
$$sroa$20$0$$sroa_idx37 = ((($87)) + 56|0);
HEAP32[$$sroa$20$0$$sroa_idx37>>2] = $88;
$$sroa$21$0$$sroa_idx53 = ((($87)) + 60|0);
HEAP32[$$sroa$21$0$$sroa_idx53>>2] = $$0207;
$$sroa$29$0$$sroa_idx69 = ((($87)) + 64|0);
HEAPF32[$$sroa$29$0$$sroa_idx69>>2] = $18;
$$0207$sink = $$0;$$sink = $21;$$sink209 = $93;$$sink211 = $97;
$$sroa$34$0$$sroa_idx80 = ((($87)) + 68|0);
HEAPF32[$$sroa$34$0$$sroa_idx80>>2] = $25;
$$sroa$0$0$$sroa_idx11 = ((($87)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx11>>2] = $$sink211;
$$sroa$15$0$$sroa_idx27 = ((($87)) + 76|0);
HEAP32[$$sroa$15$0$$sroa_idx27>>2] = $$sink209;
$$sroa$20$0$$sroa_idx43 = ((($87)) + 80|0);
HEAP32[$$sroa$20$0$$sroa_idx43>>2] = $88;
$$sroa$21$0$$sroa_idx59 = ((($87)) + 84|0);
HEAP32[$$sroa$21$0$$sroa_idx59>>2] = $$0207$sink;
$$sroa$29$0$$sroa_idx75 = ((($87)) + 88|0);
HEAPF32[$$sroa$29$0$$sroa_idx75>>2] = $18;
$$sroa$34$0$$sroa_idx91 = ((($87)) + 92|0);
HEAPF32[$$sroa$34$0$$sroa_idx91>>2] = $$sink;
$$0204 = ((($87)) + 96|0);
HEAP32[$86>>2] = $$0204;
return;
} else {
$98 = +HEAPF32[307623];
$99 = $98 + $15;
$100 = HEAP32[307624]|0;
$101 = ((($87)) + 24|0);
HEAPF32[$87>>2] = $99;
$$sroa$15$0$$sroa_idx23 = ((($87)) + 4|0);
HEAP32[$$sroa$15$0$$sroa_idx23>>2] = $100;
$$sroa$20$0$$sroa_idx39 = ((($87)) + 8|0);
HEAP32[$$sroa$20$0$$sroa_idx39>>2] = $88;
$$sroa$21$0$$sroa_idx55 = ((($87)) + 12|0);
HEAP32[$$sroa$21$0$$sroa_idx55>>2] = $$0;
$$sroa$29$0$$sroa_idx71 = ((($87)) + 16|0);
HEAPF32[$$sroa$29$0$$sroa_idx71>>2] = $18;
$$sroa$34$0$$sroa_idx87 = ((($87)) + 20|0);
HEAPF32[$$sroa$34$0$$sroa_idx87>>2] = $21;
$102 = HEAP32[307620]|0;
$103 = ((($87)) + 48|0);
HEAP32[$101>>2] = $102;
$$sroa$15$0$$sroa_idx25 = ((($87)) + 28|0);
HEAP32[$$sroa$15$0$$sroa_idx25>>2] = $100;
$$sroa$20$0$$sroa_idx41 = ((($87)) + 32|0);
HEAP32[$$sroa$20$0$$sroa_idx41>>2] = $88;
$$sroa$21$0$$sroa_idx57 = ((($87)) + 36|0);
HEAP32[$$sroa$21$0$$sroa_idx57>>2] = $$0205;
$$sroa$29$0$$sroa_idx73 = ((($87)) + 40|0);
HEAP32[$$sroa$29$0$$sroa_idx73>>2] = $13;
$$sroa$34$0$$sroa_idx89 = ((($87)) + 44|0);
HEAPF32[$$sroa$34$0$$sroa_idx89>>2] = $21;
$104 = HEAP32[307621]|0;
HEAP32[$103>>2] = $102;
$$sroa$15$0$$sroa_idx16 = ((($87)) + 52|0);
HEAP32[$$sroa$15$0$$sroa_idx16>>2] = $104;
$$sroa$20$0$$sroa_idx32 = ((($87)) + 56|0);
HEAP32[$$sroa$20$0$$sroa_idx32>>2] = $88;
$$sroa$21$0$$sroa_idx48 = ((($87)) + 60|0);
HEAP32[$$sroa$21$0$$sroa_idx48>>2] = $$0206;
$$sroa$29$0$$sroa_idx64 = ((($87)) + 64|0);
HEAP32[$$sroa$29$0$$sroa_idx64>>2] = $13;
$$0207$sink = $$0207;$$sink = $25;$$sink209 = $104;$$sink211 = $99;
$$sroa$34$0$$sroa_idx80 = ((($87)) + 68|0);
HEAPF32[$$sroa$34$0$$sroa_idx80>>2] = $25;
$$sroa$0$0$$sroa_idx11 = ((($87)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx11>>2] = $$sink211;
$$sroa$15$0$$sroa_idx27 = ((($87)) + 76|0);
HEAP32[$$sroa$15$0$$sroa_idx27>>2] = $$sink209;
$$sroa$20$0$$sroa_idx43 = ((($87)) + 80|0);
HEAP32[$$sroa$20$0$$sroa_idx43>>2] = $88;
$$sroa$21$0$$sroa_idx59 = ((($87)) + 84|0);
HEAP32[$$sroa$21$0$$sroa_idx59>>2] = $$0207$sink;
$$sroa$29$0$$sroa_idx75 = ((($87)) + 88|0);
HEAPF32[$$sroa$29$0$$sroa_idx75>>2] = $18;
$$sroa$34$0$$sroa_idx91 = ((($87)) + 92|0);
HEAPF32[$$sroa$34$0$$sroa_idx91>>2] = $$sink;
$$0204 = ((($87)) + 96|0);
HEAP32[$86>>2] = $$0204;
return;
}
}
function _Adv_DrawYMin($0) {
$0 = $0|0;
var $$0 = 0, $$0204 = 0, $$0205 = 0, $$0206 = 0, $$0207 = 0, $$0207$sink = 0, $$sink = 0.0, $$sink208 = 0, $$sink211 = 0.0, $$sroa$0$0$$sroa_idx1 = 0, $$sroa$0$0$$sroa_idx3 = 0, $$sroa$15$0$$sroa_idx17 = 0, $$sroa$15$0$$sroa_idx19 = 0, $$sroa$15$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx23 = 0, $$sroa$15$0$$sroa_idx26 = 0, $$sroa$15$0$$sroa_idx28 = 0, $$sroa$15$0$$sroa_idx30 = 0, $$sroa$16$0$$sroa_idx33 = 0, $$sroa$16$0$$sroa_idx35 = 0;
var $$sroa$16$0$$sroa_idx37 = 0, $$sroa$16$0$$sroa_idx39 = 0, $$sroa$16$0$$sroa_idx42 = 0, $$sroa$16$0$$sroa_idx44 = 0, $$sroa$16$0$$sroa_idx46 = 0, $$sroa$21$0$$sroa_idx49 = 0, $$sroa$21$0$$sroa_idx51 = 0, $$sroa$21$0$$sroa_idx53 = 0, $$sroa$21$0$$sroa_idx55 = 0, $$sroa$21$0$$sroa_idx58 = 0, $$sroa$21$0$$sroa_idx60 = 0, $$sroa$21$0$$sroa_idx62 = 0, $$sroa$29$0$$sroa_idx65 = 0, $$sroa$29$0$$sroa_idx67 = 0, $$sroa$29$0$$sroa_idx69 = 0, $$sroa$29$0$$sroa_idx71 = 0, $$sroa$29$0$$sroa_idx74 = 0, $$sroa$29$0$$sroa_idx76 = 0, $$sroa$29$0$$sroa_idx78 = 0, $$sroa$34$0$$sroa_idx81 = 0;
var $$sroa$34$0$$sroa_idx83 = 0, $$sroa$34$0$$sroa_idx85 = 0, $$sroa$34$0$$sroa_idx87 = 0, $$sroa$34$0$$sroa_idx92 = 0, $$sroa$34$0$$sroa_idx94 = 0, $1 = 0, $10 = 0.0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0;
var $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0;
var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0;
var $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[704098]|0;
$2 = $1&65535;
$3 = ($2*6)|0;
$4 = (($3) + 4)|0;
$5 = (624900 + ($4<<1)|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = HEAP32[(1384648)>>2]|0;
$9 = $8 & $7;
$10 = (+($9|0));
$11 = +HEAPF32[(1384656)>>2];
$12 = $11 * $10;
$13 = HEAP32[307626]|0;
$14 = (($0) + -1)|0;
$15 = (+($14|0));
$16 = +HEAPF32[307629];
$17 = $16 * 0.99937498569488525;
$18 = $17 + $15;
$19 = +HEAPF32[(1230512)>>2];
$20 = $11 * $19;
$21 = $12 + $20;
$22 = +HEAPF32[(1230524)>>2];
$23 = $11 * $22;
$24 = $23 * 0.99937498569488525;
$25 = $12 + $24;
$26 = HEAP32[307619]|0;
$27 = HEAP32[(1384652)>>2]|0;
$28 = ($27)?($7 >>> $27):($7);
$29 = (($28) + ($26))|0;
$30 = HEAP32[307618]|0;
$31 = HEAP32[307632]|0;
$32 = (($30) + ($31<<2)|0);
$33 = HEAP32[$32>>2]|0;
$34 = $33 & 1;
$35 = (9)?($33 >>> 9):($33);
$36 = $35 & 1;
$37 = (3)?($33 >>> 3):($33);
$38 = $37 & 1;
$39 = (12)?($33 >>> 12):($33);
$40 = $39 & 1;
$41 = (($38) + ($40))|0;
$42 = (($41) + ($34))|0;
$43 = (($42) + ($36))|0;
$44 = (6)?($33 >>> 6):($33);
$45 = $44 & 1;
$46 = (15)?($33 >>> 15):($33);
$47 = $46 & 1;
$48 = (($38) + ($40))|0;
$49 = (($48) + ($47))|0;
$50 = (($49) + ($45))|0;
$51 = (18)?($33 >>> 18):($33);
$52 = $51 & 1;
$53 = (21)?($33 >>> 21):($33);
$54 = $53 & 1;
$55 = (($54) + ($40))|0;
$56 = (($55) + ($36))|0;
$57 = (($56) + ($52))|0;
$58 = (24)?($33 >>> 24):($33);
$59 = $58 & 1;
$60 = (($54) + ($40))|0;
$61 = (($60) + ($47))|0;
$62 = (($61) + ($59))|0;
$63 = HEAP8[1408209]|0;
$64 = ($63<<24>>24)==(0);
if ($64) {
$65 = (151536 + ($57<<2)|0);
$66 = HEAP32[$65>>2]|0;
$67 = (151536 + ($62<<2)|0);
$68 = HEAP32[$67>>2]|0;
$69 = (151536 + ($50<<2)|0);
$70 = HEAP32[$69>>2]|0;
$71 = (151536 + ($43<<2)|0);
$72 = HEAP32[$71>>2]|0;
$77 = $72;$79 = $70;$81 = $68;$83 = $66;
} else {
$77 = -1;$79 = -1;$81 = -1;$83 = -1;
}
$73 = HEAP8[1408210]|0;
$74 = ($73<<24>>24)==(0);
if ($74) {
$$0 = $83;$$0205 = $77;$$0206 = $79;$$0207 = $81;
} else {
$75 = (571908 + ($2<<2)|0);
$76 = HEAP32[$75>>2]|0;
$78 = (_PackedCol_Tint($77,$76)|0);
$80 = (_PackedCol_Tint($79,$76)|0);
$82 = (_PackedCol_Tint($81,$76)|0);
$84 = (_PackedCol_Tint($83,$76)|0);
$$0 = $84;$$0205 = $78;$$0206 = $80;$$0207 = $82;
}
$85 = (((90000 + (($29*60)|0)|0)) + 16|0);
$86 = HEAP32[$85>>2]|0;
$87 = HEAP32[307621]|0;
$88 = (($57) + ($50))|0;
$89 = (($43) + ($62))|0;
$90 = ($88>>>0)>($89>>>0);
if ($90) {
$91 = +HEAPF32[307623];
$92 = $91 + $15;
$93 = HEAP32[307625]|0;
$94 = ((($86)) + 24|0);
HEAPF32[$86>>2] = $92;
$$sroa$15$0$$sroa_idx30 = ((($86)) + 4|0);
HEAP32[$$sroa$15$0$$sroa_idx30>>2] = $87;
$$sroa$16$0$$sroa_idx46 = ((($86)) + 8|0);
HEAP32[$$sroa$16$0$$sroa_idx46>>2] = $93;
$$sroa$21$0$$sroa_idx62 = ((($86)) + 12|0);
HEAP32[$$sroa$21$0$$sroa_idx62>>2] = $$0207;
$$sroa$29$0$$sroa_idx78 = ((($86)) + 16|0);
HEAPF32[$$sroa$29$0$$sroa_idx78>>2] = $18;
$$sroa$34$0$$sroa_idx94 = ((($86)) + 20|0);
HEAPF32[$$sroa$34$0$$sroa_idx94>>2] = $25;
$95 = HEAP32[307620]|0;
$96 = ((($86)) + 48|0);
HEAP32[$94>>2] = $95;
$$sroa$15$0$$sroa_idx28 = ((($86)) + 28|0);
HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $87;
$$sroa$16$0$$sroa_idx44 = ((($86)) + 32|0);
HEAP32[$$sroa$16$0$$sroa_idx44>>2] = $93;
$$sroa$21$0$$sroa_idx60 = ((($86)) + 36|0);
HEAP32[$$sroa$21$0$$sroa_idx60>>2] = $$0;
$$sroa$29$0$$sroa_idx76 = ((($86)) + 40|0);
HEAP32[$$sroa$29$0$$sroa_idx76>>2] = $13;
$$sroa$34$0$$sroa_idx92 = ((($86)) + 44|0);
HEAPF32[$$sroa$34$0$$sroa_idx92>>2] = $25;
$97 = HEAP32[307622]|0;
HEAP32[$96>>2] = $95;
$$sroa$15$0$$sroa_idx26 = ((($86)) + 52|0);
HEAP32[$$sroa$15$0$$sroa_idx26>>2] = $87;
$$sroa$16$0$$sroa_idx42 = ((($86)) + 56|0);
HEAP32[$$sroa$16$0$$sroa_idx42>>2] = $97;
$$sroa$21$0$$sroa_idx58 = ((($86)) + 60|0);
HEAP32[$$sroa$21$0$$sroa_idx58>>2] = $$0205;
$$sroa$29$0$$sroa_idx74 = ((($86)) + 64|0);
HEAP32[$$sroa$29$0$$sroa_idx74>>2] = $13;
$$0207$sink = $$0206;$$sink = $21;$$sink208 = $97;$$sink211 = $92;
$$sroa$34$0$$sroa_idx83 = ((($86)) + 68|0);
HEAPF32[$$sroa$34$0$$sroa_idx83>>2] = $21;
$$sroa$0$0$$sroa_idx1 = ((($86)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx1>>2] = $$sink211;
$$sroa$15$0$$sroa_idx17 = ((($86)) + 76|0);
HEAP32[$$sroa$15$0$$sroa_idx17>>2] = $87;
$$sroa$16$0$$sroa_idx33 = ((($86)) + 80|0);
HEAP32[$$sroa$16$0$$sroa_idx33>>2] = $$sink208;
$$sroa$21$0$$sroa_idx49 = ((($86)) + 84|0);
HEAP32[$$sroa$21$0$$sroa_idx49>>2] = $$0207$sink;
$$sroa$29$0$$sroa_idx65 = ((($86)) + 88|0);
HEAPF32[$$sroa$29$0$$sroa_idx65>>2] = $18;
$$sroa$34$0$$sroa_idx81 = ((($86)) + 92|0);
HEAPF32[$$sroa$34$0$$sroa_idx81>>2] = $$sink;
$$0204 = ((($86)) + 96|0);
HEAP32[$85>>2] = $$0204;
return;
} else {
$98 = HEAP32[307620]|0;
$99 = HEAP32[307625]|0;
$100 = ((($86)) + 24|0);
HEAP32[$86>>2] = $98;
$$sroa$15$0$$sroa_idx23 = ((($86)) + 4|0);
HEAP32[$$sroa$15$0$$sroa_idx23>>2] = $87;
$$sroa$16$0$$sroa_idx39 = ((($86)) + 8|0);
HEAP32[$$sroa$16$0$$sroa_idx39>>2] = $99;
$$sroa$21$0$$sroa_idx55 = ((($86)) + 12|0);
HEAP32[$$sroa$21$0$$sroa_idx55>>2] = $$0;
$$sroa$29$0$$sroa_idx71 = ((($86)) + 16|0);
HEAP32[$$sroa$29$0$$sroa_idx71>>2] = $13;
$$sroa$34$0$$sroa_idx87 = ((($86)) + 20|0);
HEAPF32[$$sroa$34$0$$sroa_idx87>>2] = $25;
$101 = HEAP32[307622]|0;
HEAP32[$100>>2] = $98;
$$sroa$15$0$$sroa_idx21 = ((($86)) + 28|0);
HEAP32[$$sroa$15$0$$sroa_idx21>>2] = $87;
$$sroa$16$0$$sroa_idx37 = ((($86)) + 32|0);
HEAP32[$$sroa$16$0$$sroa_idx37>>2] = $101;
$$sroa$21$0$$sroa_idx53 = ((($86)) + 36|0);
HEAP32[$$sroa$21$0$$sroa_idx53>>2] = $$0205;
$$sroa$29$0$$sroa_idx69 = ((($86)) + 40|0);
HEAP32[$$sroa$29$0$$sroa_idx69>>2] = $13;
$$sroa$34$0$$sroa_idx85 = ((($86)) + 44|0);
HEAPF32[$$sroa$34$0$$sroa_idx85>>2] = $21;
$102 = +HEAPF32[307623];
$103 = $102 + $15;
$$sroa$0$0$$sroa_idx3 = ((($86)) + 48|0);
HEAPF32[$$sroa$0$0$$sroa_idx3>>2] = $103;
$$sroa$15$0$$sroa_idx19 = ((($86)) + 52|0);
HEAP32[$$sroa$15$0$$sroa_idx19>>2] = $87;
$$sroa$16$0$$sroa_idx35 = ((($86)) + 56|0);
HEAP32[$$sroa$16$0$$sroa_idx35>>2] = $101;
$$sroa$21$0$$sroa_idx51 = ((($86)) + 60|0);
HEAP32[$$sroa$21$0$$sroa_idx51>>2] = $$0206;
$$sroa$29$0$$sroa_idx67 = ((($86)) + 64|0);
HEAPF32[$$sroa$29$0$$sroa_idx67>>2] = $18;
$$0207$sink = $$0207;$$sink = $25;$$sink208 = $99;$$sink211 = $103;
$$sroa$34$0$$sroa_idx83 = ((($86)) + 68|0);
HEAPF32[$$sroa$34$0$$sroa_idx83>>2] = $21;
$$sroa$0$0$$sroa_idx1 = ((($86)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx1>>2] = $$sink211;
$$sroa$15$0$$sroa_idx17 = ((($86)) + 76|0);
HEAP32[$$sroa$15$0$$sroa_idx17>>2] = $87;
$$sroa$16$0$$sroa_idx33 = ((($86)) + 80|0);
HEAP32[$$sroa$16$0$$sroa_idx33>>2] = $$sink208;
$$sroa$21$0$$sroa_idx49 = ((($86)) + 84|0);
HEAP32[$$sroa$21$0$$sroa_idx49>>2] = $$0207$sink;
$$sroa$29$0$$sroa_idx65 = ((($86)) + 88|0);
HEAPF32[$$sroa$29$0$$sroa_idx65>>2] = $18;
$$sroa$34$0$$sroa_idx81 = ((($86)) + 92|0);
HEAPF32[$$sroa$34$0$$sroa_idx81>>2] = $$sink;
$$0204 = ((($86)) + 96|0);
HEAP32[$85>>2] = $$0204;
return;
}
}
function _Adv_DrawYMax($0) {
$0 = $0|0;
var $$0 = 0, $$0204 = 0, $$0205 = 0, $$0206 = 0, $$0207 = 0, $$0207$sink = 0, $$sink = 0.0, $$sink208 = 0, $$sink211 = 0.0, $$sroa$0$0$$sroa_idx1 = 0, $$sroa$0$0$$sroa_idx3 = 0, $$sroa$15$0$$sroa_idx17 = 0, $$sroa$15$0$$sroa_idx19 = 0, $$sroa$15$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx23 = 0, $$sroa$15$0$$sroa_idx26 = 0, $$sroa$15$0$$sroa_idx28 = 0, $$sroa$15$0$$sroa_idx30 = 0, $$sroa$16$0$$sroa_idx33 = 0, $$sroa$16$0$$sroa_idx35 = 0;
var $$sroa$16$0$$sroa_idx37 = 0, $$sroa$16$0$$sroa_idx39 = 0, $$sroa$16$0$$sroa_idx42 = 0, $$sroa$16$0$$sroa_idx44 = 0, $$sroa$16$0$$sroa_idx46 = 0, $$sroa$21$0$$sroa_idx49 = 0, $$sroa$21$0$$sroa_idx51 = 0, $$sroa$21$0$$sroa_idx53 = 0, $$sroa$21$0$$sroa_idx55 = 0, $$sroa$21$0$$sroa_idx58 = 0, $$sroa$21$0$$sroa_idx60 = 0, $$sroa$21$0$$sroa_idx62 = 0, $$sroa$29$0$$sroa_idx65 = 0, $$sroa$29$0$$sroa_idx67 = 0, $$sroa$29$0$$sroa_idx69 = 0, $$sroa$29$0$$sroa_idx71 = 0, $$sroa$29$0$$sroa_idx74 = 0, $$sroa$29$0$$sroa_idx76 = 0, $$sroa$29$0$$sroa_idx78 = 0, $$sroa$34$0$$sroa_idx81 = 0;
var $$sroa$34$0$$sroa_idx83 = 0, $$sroa$34$0$$sroa_idx85 = 0, $$sroa$34$0$$sroa_idx87 = 0, $$sroa$34$0$$sroa_idx92 = 0, $$sroa$34$0$$sroa_idx94 = 0, $1 = 0, $10 = 0.0, $100 = 0, $101 = 0, $102 = 0, $103 = 0.0, $104 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0;
var $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0.0, $93 = 0.0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[704098]|0;
$2 = $1&65535;
$3 = ($2*6)|0;
$4 = (($3) + 5)|0;
$5 = (624900 + ($4<<1)|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = HEAP32[(1384648)>>2]|0;
$9 = $8 & $7;
$10 = (+($9|0));
$11 = +HEAPF32[(1384656)>>2];
$12 = $11 * $10;
$13 = HEAP32[307626]|0;
$14 = (($0) + -1)|0;
$15 = (+($14|0));
$16 = +HEAPF32[307629];
$17 = $16 * 0.99937498569488525;
$18 = $17 + $15;
$19 = +HEAPF32[(1230512)>>2];
$20 = $11 * $19;
$21 = $12 + $20;
$22 = +HEAPF32[(1230524)>>2];
$23 = $11 * $22;
$24 = $23 * 0.99937498569488525;
$25 = $12 + $24;
$26 = HEAP32[307619]|0;
$27 = HEAP32[(1384652)>>2]|0;
$28 = ($27)?($7 >>> $27):($7);
$29 = (($28) + ($26))|0;
$30 = HEAP32[307618]|0;
$31 = HEAP32[307632]|0;
$32 = (($30) + ($31<<2)|0);
$33 = HEAP32[$32>>2]|0;
$34 = (2)?($33 >>> 2):($33);
$35 = $34 & 1;
$36 = (11)?($33 >>> 11):($33);
$37 = $36 & 1;
$38 = (5)?($33 >>> 5):($33);
$39 = $38 & 1;
$40 = (14)?($33 >>> 14):($33);
$41 = $40 & 1;
$42 = (($39) + ($41))|0;
$43 = (($42) + ($37))|0;
$44 = (($43) + ($35))|0;
$45 = (8)?($33 >>> 8):($33);
$46 = $45 & 1;
$47 = (17)?($33 >>> 17):($33);
$48 = $47 & 1;
$49 = (($39) + ($41))|0;
$50 = (($49) + ($48))|0;
$51 = (($50) + ($46))|0;
$52 = (20)?($33 >>> 20):($33);
$53 = $52 & 1;
$54 = (23)?($33 >>> 23):($33);
$55 = $54 & 1;
$56 = (($55) + ($41))|0;
$57 = (($56) + ($37))|0;
$58 = (($57) + ($53))|0;
$59 = (26)?($33 >>> 26):($33);
$60 = $59 & 1;
$61 = (($55) + ($41))|0;
$62 = (($61) + ($48))|0;
$63 = (($62) + ($60))|0;
$64 = HEAP8[1408209]|0;
$65 = ($64<<24>>24)==(0);
if ($65) {
$66 = (151440 + ($44<<2)|0);
$67 = HEAP32[$66>>2]|0;
$68 = (151440 + ($51<<2)|0);
$69 = HEAP32[$68>>2]|0;
$70 = (151440 + ($63<<2)|0);
$71 = HEAP32[$70>>2]|0;
$72 = (151440 + ($58<<2)|0);
$73 = HEAP32[$72>>2]|0;
$78 = $67;$80 = $69;$82 = $71;$84 = $73;
} else {
$78 = -1;$80 = -1;$82 = -1;$84 = -1;
}
$74 = HEAP8[1408210]|0;
$75 = ($74<<24>>24)==(0);
if ($75) {
$$0 = $78;$$0205 = $84;$$0206 = $82;$$0207 = $80;
} else {
$76 = (571908 + ($2<<2)|0);
$77 = HEAP32[$76>>2]|0;
$79 = (_PackedCol_Tint($78,$77)|0);
$81 = (_PackedCol_Tint($80,$77)|0);
$83 = (_PackedCol_Tint($82,$77)|0);
$85 = (_PackedCol_Tint($84,$77)|0);
$$0 = $79;$$0205 = $85;$$0206 = $83;$$0207 = $81;
}
$86 = (((90000 + (($29*60)|0)|0)) + 20|0);
$87 = HEAP32[$86>>2]|0;
$88 = HEAP32[307624]|0;
$89 = (($44) + ($63))|0;
$90 = (($58) + ($51))|0;
$91 = ($89>>>0)>($90>>>0);
if ($91) {
$92 = +HEAPF32[307623];
$93 = $92 + $15;
$94 = HEAP32[307622]|0;
$95 = ((($87)) + 24|0);
HEAPF32[$87>>2] = $93;
$$sroa$15$0$$sroa_idx30 = ((($87)) + 4|0);
HEAP32[$$sroa$15$0$$sroa_idx30>>2] = $88;
$$sroa$16$0$$sroa_idx46 = ((($87)) + 8|0);
HEAP32[$$sroa$16$0$$sroa_idx46>>2] = $94;
$$sroa$21$0$$sroa_idx62 = ((($87)) + 12|0);
HEAP32[$$sroa$21$0$$sroa_idx62>>2] = $$0207;
$$sroa$29$0$$sroa_idx78 = ((($87)) + 16|0);
HEAPF32[$$sroa$29$0$$sroa_idx78>>2] = $18;
$$sroa$34$0$$sroa_idx94 = ((($87)) + 20|0);
HEAPF32[$$sroa$34$0$$sroa_idx94>>2] = $21;
$96 = HEAP32[307620]|0;
$97 = ((($87)) + 48|0);
HEAP32[$95>>2] = $96;
$$sroa$15$0$$sroa_idx28 = ((($87)) + 28|0);
HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $88;
$$sroa$16$0$$sroa_idx44 = ((($87)) + 32|0);
HEAP32[$$sroa$16$0$$sroa_idx44>>2] = $94;
$$sroa$21$0$$sroa_idx60 = ((($87)) + 36|0);
HEAP32[$$sroa$21$0$$sroa_idx60>>2] = $$0;
$$sroa$29$0$$sroa_idx76 = ((($87)) + 40|0);
HEAP32[$$sroa$29$0$$sroa_idx76>>2] = $13;
$$sroa$34$0$$sroa_idx92 = ((($87)) + 44|0);
HEAPF32[$$sroa$34$0$$sroa_idx92>>2] = $21;
$98 = HEAP32[307625]|0;
HEAP32[$97>>2] = $96;
$$sroa$15$0$$sroa_idx26 = ((($87)) + 52|0);
HEAP32[$$sroa$15$0$$sroa_idx26>>2] = $88;
$$sroa$16$0$$sroa_idx42 = ((($87)) + 56|0);
HEAP32[$$sroa$16$0$$sroa_idx42>>2] = $98;
$$sroa$21$0$$sroa_idx58 = ((($87)) + 60|0);
HEAP32[$$sroa$21$0$$sroa_idx58>>2] = $$0205;
$$sroa$29$0$$sroa_idx74 = ((($87)) + 64|0);
HEAP32[$$sroa$29$0$$sroa_idx74>>2] = $13;
$$0207$sink = $$0206;$$sink = $25;$$sink208 = $98;$$sink211 = $93;
$$sroa$34$0$$sroa_idx83 = ((($87)) + 68|0);
HEAPF32[$$sroa$34$0$$sroa_idx83>>2] = $25;
$$sroa$0$0$$sroa_idx1 = ((($87)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx1>>2] = $$sink211;
$$sroa$15$0$$sroa_idx17 = ((($87)) + 76|0);
HEAP32[$$sroa$15$0$$sroa_idx17>>2] = $88;
$$sroa$16$0$$sroa_idx33 = ((($87)) + 80|0);
HEAP32[$$sroa$16$0$$sroa_idx33>>2] = $$sink208;
$$sroa$21$0$$sroa_idx49 = ((($87)) + 84|0);
HEAP32[$$sroa$21$0$$sroa_idx49>>2] = $$0207$sink;
$$sroa$29$0$$sroa_idx65 = ((($87)) + 88|0);
HEAPF32[$$sroa$29$0$$sroa_idx65>>2] = $18;
$$sroa$34$0$$sroa_idx81 = ((($87)) + 92|0);
HEAPF32[$$sroa$34$0$$sroa_idx81>>2] = $$sink;
$$0204 = ((($87)) + 96|0);
HEAP32[$86>>2] = $$0204;
return;
} else {
$99 = HEAP32[307620]|0;
$100 = HEAP32[307622]|0;
$101 = ((($87)) + 24|0);
HEAP32[$87>>2] = $99;
$$sroa$15$0$$sroa_idx23 = ((($87)) + 4|0);
HEAP32[$$sroa$15$0$$sroa_idx23>>2] = $88;
$$sroa$16$0$$sroa_idx39 = ((($87)) + 8|0);
HEAP32[$$sroa$16$0$$sroa_idx39>>2] = $100;
$$sroa$21$0$$sroa_idx55 = ((($87)) + 12|0);
HEAP32[$$sroa$21$0$$sroa_idx55>>2] = $$0;
$$sroa$29$0$$sroa_idx71 = ((($87)) + 16|0);
HEAP32[$$sroa$29$0$$sroa_idx71>>2] = $13;
$$sroa$34$0$$sroa_idx87 = ((($87)) + 20|0);
HEAPF32[$$sroa$34$0$$sroa_idx87>>2] = $21;
$102 = HEAP32[307625]|0;
HEAP32[$101>>2] = $99;
$$sroa$15$0$$sroa_idx21 = ((($87)) + 28|0);
HEAP32[$$sroa$15$0$$sroa_idx21>>2] = $88;
$$sroa$16$0$$sroa_idx37 = ((($87)) + 32|0);
HEAP32[$$sroa$16$0$$sroa_idx37>>2] = $102;
$$sroa$21$0$$sroa_idx53 = ((($87)) + 36|0);
HEAP32[$$sroa$21$0$$sroa_idx53>>2] = $$0205;
$$sroa$29$0$$sroa_idx69 = ((($87)) + 40|0);
HEAP32[$$sroa$29$0$$sroa_idx69>>2] = $13;
$$sroa$34$0$$sroa_idx85 = ((($87)) + 44|0);
HEAPF32[$$sroa$34$0$$sroa_idx85>>2] = $25;
$103 = +HEAPF32[307623];
$104 = $103 + $15;
$$sroa$0$0$$sroa_idx3 = ((($87)) + 48|0);
HEAPF32[$$sroa$0$0$$sroa_idx3>>2] = $104;
$$sroa$15$0$$sroa_idx19 = ((($87)) + 52|0);
HEAP32[$$sroa$15$0$$sroa_idx19>>2] = $88;
$$sroa$16$0$$sroa_idx35 = ((($87)) + 56|0);
HEAP32[$$sroa$16$0$$sroa_idx35>>2] = $102;
$$sroa$21$0$$sroa_idx51 = ((($87)) + 60|0);
HEAP32[$$sroa$21$0$$sroa_idx51>>2] = $$0206;
$$sroa$29$0$$sroa_idx67 = ((($87)) + 64|0);
HEAPF32[$$sroa$29$0$$sroa_idx67>>2] = $18;
$$0207$sink = $$0207;$$sink = $21;$$sink208 = $100;$$sink211 = $104;
$$sroa$34$0$$sroa_idx83 = ((($87)) + 68|0);
HEAPF32[$$sroa$34$0$$sroa_idx83>>2] = $25;
$$sroa$0$0$$sroa_idx1 = ((($87)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx1>>2] = $$sink211;
$$sroa$15$0$$sroa_idx17 = ((($87)) + 76|0);
HEAP32[$$sroa$15$0$$sroa_idx17>>2] = $88;
$$sroa$16$0$$sroa_idx33 = ((($87)) + 80|0);
HEAP32[$$sroa$16$0$$sroa_idx33>>2] = $$sink208;
$$sroa$21$0$$sroa_idx49 = ((($87)) + 84|0);
HEAP32[$$sroa$21$0$$sroa_idx49>>2] = $$0207$sink;
$$sroa$29$0$$sroa_idx65 = ((($87)) + 88|0);
HEAPF32[$$sroa$29$0$$sroa_idx65>>2] = $18;
$$sroa$34$0$$sroa_idx81 = ((($87)) + 92|0);
HEAPF32[$$sroa$34$0$$sroa_idx81>>2] = $$sink;
$$0204 = ((($87)) + 96|0);
HEAP32[$86>>2] = $$0204;
return;
}
}
function _Adv_ComputeLightFlags($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP8[1408209]|0;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$$0 = 67108863;
return ($$0|0);
}
$6 = (($0) + -1)|0;
$7 = (($2) + -1)|0;
$8 = (($3) + -1)|0;
$9 = (($3) + -19)|0;
$10 = (_Adv_Lit($6,$1,$7,$9)|0);
$11 = (_Adv_Lit($6,$1,$2,$8)|0);
$12 = $11 << 9;
$13 = $12 | $10;
$14 = (($2) + 1)|0;
$15 = (($3) + 17)|0;
$16 = (_Adv_Lit($6,$1,$14,$15)|0);
$17 = $16 << 18;
$18 = $13 | $17;
$19 = (($3) + -18)|0;
$20 = (_Adv_Lit($0,$1,$7,$19)|0);
$21 = $20 << 3;
$22 = $18 | $21;
$23 = (_Adv_Lit($0,$1,$2,$3)|0);
$24 = $23 << 12;
$25 = $22 | $24;
$26 = (($3) + 18)|0;
$27 = (_Adv_Lit($0,$1,$14,$26)|0);
$28 = $27 << 21;
$29 = $25 | $28;
$30 = (($0) + 1)|0;
$31 = (($3) + 1)|0;
$32 = (($3) + -17)|0;
$33 = (_Adv_Lit($30,$1,$7,$32)|0);
$34 = $33 << 6;
$35 = $29 | $34;
$36 = (_Adv_Lit($30,$1,$2,$31)|0);
$37 = $36 << 15;
$38 = $35 | $37;
$39 = (($3) + 19)|0;
$40 = (_Adv_Lit($30,$1,$14,$39)|0);
$41 = $40 << 24;
$42 = $38 | $41;
$$0 = $42;
return ($$0|0);
}
function _Adv_CanStretch($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = HEAP32[307614]|0;
$7 = (($6) + ($1<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = (_Adv_ComputeLightFlags($2,$3,$4,$1)|0);
$10 = HEAP32[307618]|0;
$11 = (($10) + ($1<<2)|0);
HEAP32[$11>>2] = $9;
$12 = ($8<<16>>16)==($0<<16>>16);
if (!($12)) {
$31 = 0;
return ($31|0);
}
$13 = $5&255;
$14 = (416 + ($13<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($15) + ($1))|0;
$17 = (($6) + ($16<<1)|0);
$18 = HEAP16[$17>>1]|0;
$19 = (_Block_IsFaceHidden($8,$18,$5)|0);
$20 = ($19<<24>>24)==(0);
if (!($20)) {
$31 = 0;
return ($31|0);
}
$21 = HEAP32[307633]|0;
$22 = HEAP32[307618]|0;
$23 = (($22) + ($1<<2)|0);
$24 = HEAP32[$23>>2]|0;
$25 = ($21|0)==($24|0);
if (!($25)) {
$31 = 0;
return ($31|0);
}
$26 = ($21|0)==(0);
if ($26) {
$31 = 1;
return ($31|0);
}
$27 = (448 + ($13<<2)|0);
$28 = HEAP32[$27>>2]|0;
$29 = $28 & $21;
$30 = ($29|0)==($28|0);
$phitmp = $30&1;
$31 = $phitmp;
return ($31|0);
}
function _Adv_Lit($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $7 = 0, $8 = 0, $9 = 0;
var $or$cond = 0, $spec$select = 0, $spec$select38 = 0, $spec$select39 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($1|0)>(-1);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5|0)>($1|0);
$or$cond = $4 & $6;
if (!($or$cond)) {
$$0 = 7;
return ($$0|0);
}
$7 = (_World_ContainsXZ($0,$2)|0);
$8 = ($7<<24>>24)==(0);
if ($8) {
$9 = HEAP32[307603]|0;
$10 = ($9|0)>($1|0);
$11 = (($9) + -1)|0;
$12 = ($11|0)==($1|0);
$13 = $12 ? 6 : 0;
$spec$select39 = $10 ? $13 : 7;
return ($spec$select39|0);
}
$14 = HEAP32[307614]|0;
$15 = (($14) + ($3<<1)|0);
$16 = HEAP16[$15>>1]|0;
$17 = HEAP32[317076]|0;
$18 = HEAP32[(1407464)>>2]|0;
$19 = Math_imul($18, $2)|0;
$20 = (($19) + ($0))|0;
$21 = (($17) + ($20<<1)|0);
$22 = HEAP16[$21>>1]|0;
$23 = $22 << 16 >> 16;
$24 = $16&65535;
$25 = (582660 + ($24)|0);
$26 = HEAP8[$25>>0]|0;
$27 = $26&255;
$28 = (4)?($27 >>> 4):($27);
$29 = $28 & 1;
$30 = (($1) - ($29))|0;
$31 = ($30|0)>($23|0);
$32 = $31&1;
$33 = ($23|0)<($1|0);
$34 = $33 ? 2 : 0;
$35 = $34 | $32;
$36 = (5)?($27 >>> 5):($27);
$37 = $36 & 1;
$38 = (($1) - ($37))|0;
$39 = ($38|0)<($23|0);
$40 = $39 ? 0 : 4;
$41 = $35 | $40;
$42 = (571140 + ($24)|0);
$43 = HEAP8[$42>>0]|0;
$44 = ($43<<24>>24)==(0);
$45 = $34 | 5;
$spec$select = $44 ? $41 : $45;
$46 = (($3) + 324)|0;
$47 = (($14) + ($46<<1)|0);
$48 = HEAP16[$47>>1]|0;
$49 = $48&65535;
$50 = (571140 + ($49)|0);
$51 = HEAP8[$50>>0]|0;
$52 = ($51<<24>>24)==(0);
$53 = $spec$select | 4;
$$1 = $52 ? $spec$select : $53;
$54 = (($3) + -324)|0;
$55 = (($14) + ($54<<1)|0);
$56 = HEAP16[$55>>1]|0;
$57 = $56&65535;
$58 = (571140 + ($57)|0);
$59 = HEAP8[$58>>0]|0;
$60 = ($59<<24>>24)!=(0);
$61 = $60&1;
$spec$select38 = $$1 | $61;
$$0 = $spec$select38;
return ($$0|0);
}
function _World_ContainsXZ($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = ($2>>>0)>($0>>>0);
$4 = HEAP32[(1407472)>>2]|0;
$5 = ($4>>>0)>($1>>>0);
$narrow = $3 & $5;
$6 = $narrow&1;
return ($6|0);
}
function _Builder_MakeChunk($0) {
$0 = $0|0;
var $$041 = 0, $$pr = 0, $$pr42 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 6|0;
$2 = sp + 5|0;
$3 = sp + 4|0;
$4 = sp;
$5 = HEAP16[$0>>1]|0;
$6 = $5&65535;
$7 = (($6) + -8)|0;
$8 = ((($0)) + 2|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = (($10) + -8)|0;
$12 = ((($0)) + 4|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13&65535;
$15 = (($14) + -8)|0;
HEAP8[$1>>0] = 0;
$16 = (_Builder_BuildChunk($7,$11,$15,$1)|0);
$17 = HEAP8[$1>>0]|0;
$18 = ((($0)) + 6|0);
$19 = HEAP8[$18>>0]|0;
$20 = ($17 << 3)&255;
$21 = $20 & 8;
$22 = $19 & -9;
$23 = $22 | $21;
HEAP8[$18>>0] = $23;
$24 = ($16<<24>>24)==(0);
if ($24) {
STACKTOP = sp;return;
}
$25 = (_Builder_TotalVerticesCount()|0);
$26 = ($25|0)==(0);
if ($26) {
STACKTOP = sp;return;
}
$27 = HEAP32[307612]|0;
$28 = (($25) + 1)|0;
$29 = (_Gfx_CreateVb($27,1,$28)|0);
$30 = ((($0)) + 8|0);
HEAP32[$30>>2] = $29;
$31 = (4)?($15 >> 4):($15);
$32 = HEAP32[317091]|0;
$33 = Math_imul($32, $31)|0;
$34 = (4)?($11 >> 4):($11);
$35 = (($33) + ($34))|0;
$36 = HEAP32[317092]|0;
$37 = Math_imul($35, $36)|0;
$38 = (4)?($7 >> 4):($7);
$39 = (($37) + ($38))|0;
HEAP32[$4>>2] = 0;
HEAP8[$2>>0] = 0;
HEAP8[$3>>0] = 0;
$40 = HEAP32[317093]|0;
$41 = ($40|0)>(0);
if (!($41)) {
STACKTOP = sp;return;
}
$$041 = 0;
while(1) {
$42 = (($$041) + 512)|0;
$43 = HEAP32[317095]|0;
$44 = Math_imul($43, $$041)|0;
$45 = (($44) + ($39))|0;
$46 = (90000 + (($$041*60)|0)|0);
$47 = HEAP32[317104]|0;
$48 = (($47) + (($45*20)|0)|0);
_Builder_SetPartInfo($46,$4,$48,$2);
$49 = (90000 + (($42*60)|0)|0);
$50 = HEAP32[317105]|0;
$51 = (($50) + (($45*20)|0)|0);
_Builder_SetPartInfo($49,$4,$51,$3);
$52 = (($$041) + 1)|0;
$53 = HEAP32[317093]|0;
$54 = ($52|0)<($53|0);
if ($54) {
$$041 = $52;
} else {
break;
}
}
$$pr = HEAP8[$2>>0]|0;
$55 = ($$pr<<24>>24)==(0);
if (!($55)) {
$56 = HEAP32[317104]|0;
$57 = (($56) + (($39*20)|0)|0);
$58 = ((($0)) + 12|0);
HEAP32[$58>>2] = $57;
}
$$pr42 = HEAP8[$3>>0]|0;
$59 = ($$pr42<<24>>24)==(0);
if ($59) {
STACKTOP = sp;return;
}
$60 = HEAP32[317105]|0;
$61 = (($60) + (($39*20)|0)|0);
$62 = ((($0)) + 16|0);
HEAP32[$62>>2] = $61;
STACKTOP = sp;return;
}
function _Builder_BuildChunk($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0103 = 0, $$087108 = 0, $$088101 = 0, $$089102 = 0, $$090107 = 0, $$091100 = 0, $$092 = 0, $$09399 = 0, $$094 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond98 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 59568|0;
$4 = sp + 47904|0;
$5 = sp + 23328|0;
$6 = sp;
HEAP32[307614] = $4;
HEAP32[307608] = $5;
HEAP32[307617] = $6;
$7 = HEAP32[307616]|0;
FUNCTION_TABLE_viii[$7 & 31]($0,$1,$2);
$8 = ($0|0)==(0);
$9 = ($1|0)==(0);
$or$cond = $8 | $9;
$10 = ($2|0)==(0);
$or$cond3 = $or$cond | $10;
if ($or$cond3) {
label = 5;
} else {
$11 = (($0) + 16)|0;
$12 = HEAP32[(1407464)>>2]|0;
$13 = ($11|0)<($12|0);
if ($13) {
$14 = (($1) + 16)|0;
$15 = HEAP32[(1407468)>>2]|0;
$16 = ($14|0)<($15|0);
if ($16) {
$17 = (($2) + 16)|0;
$18 = HEAP32[(1407472)>>2]|0;
$19 = ($17|0)<($18|0);
if ($19) {
$20 = (_ReadChunkData($0,$1,$2,$3)|0);
$phitmp = ($20<<24>>24)==(0);
$$094 = $phitmp;
} else {
label = 5;
}
} else {
label = 5;
}
} else {
label = 5;
}
}
if ((label|0) == 5) {
_Mem_Set($4,0,11664);
_ReadBorderChunkData($0,$1,$2,$3);
$$094 = 1;
}
$21 = HEAP8[$3>>0]|0;
$22 = ($21<<24>>24)==(0);
$or$cond98 = $$094 & $22;
if (!($or$cond98)) {
$$092 = 0;
STACKTOP = sp;return ($$092|0);
}
$23 = (($0) + -1)|0;
$24 = (($2) + -1)|0;
_Lighting_LightHint($23,$24);
_Mem_Set($5,1,24576);
$25 = HEAP32[(1407464)>>2]|0;
$26 = (($0) + 16)|0;
$27 = ($25|0)<($26|0);
$28 = $27 ? $25 : $26;
$29 = HEAP32[(1407468)>>2]|0;
$30 = (($1) + 16)|0;
$31 = ($29|0)<($30|0);
$32 = $31 ? $29 : $30;
$33 = HEAP32[(1407472)>>2]|0;
$34 = (($2) + 16)|0;
$35 = ($33|0)<($34|0);
$36 = $35 ? $33 : $34;
HEAP32[307615] = $28;
HEAP32[307613] = $36;
_Builder_Stretch($0,$1,$2);
_Builder_DefaultPostStretchTiles();
$37 = ($32|0)>($1|0);
if (!($37)) {
$$092 = 1;
STACKTOP = sp;return ($$092|0);
}
$38 = ($36|0)>($2|0);
$39 = ($28|0)>($0|0);
$$087108 = 0;$$090107 = $1;
while(1) {
if ($38) {
$40 = ($$087108*324)|0;
$41 = (($40) + 324)|0;
$42 = $$087108 << 8;
$$0103 = 0;$$089102 = $2;
while(1) {
$43 = (($$0103) + 1)|0;
if ($39) {
$44 = ($43*18)|0;
$45 = (($41) + ($44))|0;
$46 = $45 | 1;
$47 = $$0103 << 4;
$48 = $47 | $42;
$$088101 = 0;$$091100 = $0;$$09399 = $46;
while(1) {
$49 = (($4) + ($$09399<<1)|0);
$50 = HEAP16[$49>>1]|0;
HEAP16[704098] = $50;
$51 = $50&65535;
$52 = (583428 + ($51)|0);
$53 = HEAP8[$52>>0]|0;
$54 = ($53<<24>>24)==(4);
if (!($54)) {
$55 = $48 | $$088101;
$56 = ($55*6)|0;
HEAP32[307609] = $$091100;
HEAP32[307610] = $$090107;
HEAP32[307611] = $$089102;
HEAP32[307632] = $$09399;
$57 = HEAP32[307607]|0;
FUNCTION_TABLE_vi[$57 & 511]($56);
}
$58 = (($$091100) + 1)|0;
$59 = (($$088101) + 1)|0;
$60 = (($$09399) + 1)|0;
$61 = ($58|0)<($28|0);
if ($61) {
$$088101 = $59;$$091100 = $58;$$09399 = $60;
} else {
break;
}
}
}
$62 = (($$089102) + 1)|0;
$63 = ($62|0)<($36|0);
if ($63) {
$$0103 = $43;$$089102 = $62;
} else {
break;
}
}
}
$64 = (($$090107) + 1)|0;
$65 = (($$087108) + 1)|0;
$66 = ($64|0)<($32|0);
if ($66) {
$$087108 = $65;$$090107 = $64;
} else {
$$092 = 1;
break;
}
}
STACKTOP = sp;return ($$092|0);
}
function _Builder_TotalVerticesCount() {
var $$010 = 0, $$089 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$010 = 0;$$089 = 0;
while(1) {
$0 = (90000 + (($$089*60)|0)|0);
$1 = (_Builder1DPart_VerticesCount($0)|0);
$2 = (($1) + ($$010))|0;
$3 = (($$089) + 1)|0;
$exitcond = ($3|0)==(1024);
if ($exitcond) {
break;
} else {
$$010 = $2;$$089 = $3;
}
}
return ($2|0);
}
function _Builder_SetPartInfo($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_Builder1DPart_VerticesCount($0)|0);
HEAP32[$2>>2] = -1;
$5 = ($4|0)==(0);
if ($5) {
return;
}
$6 = HEAP32[$1>>2]|0;
HEAP32[$2>>2] = $6;
$7 = HEAP32[$1>>2]|0;
$8 = (($7) + ($4))|0;
HEAP32[$1>>2] = $8;
HEAP8[$3>>0] = 1;
$9 = ((($0)) + 24|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10&65535;
$12 = ((($2)) + 8|0);
HEAP16[$12>>1] = $11;
$13 = ((($0)) + 28|0);
$14 = HEAP32[$13>>2]|0;
$15 = $14&65535;
$16 = ((($2)) + 10|0);
HEAP16[$16>>1] = $15;
$17 = ((($0)) + 32|0);
$18 = HEAP32[$17>>2]|0;
$19 = $18&65535;
$20 = ((($2)) + 12|0);
HEAP16[$20>>1] = $19;
$21 = ((($0)) + 36|0);
$22 = HEAP32[$21>>2]|0;
$23 = $22&65535;
$24 = ((($2)) + 14|0);
HEAP16[$24>>1] = $23;
$25 = ((($0)) + 40|0);
$26 = HEAP32[$25>>2]|0;
$27 = $26&65535;
$28 = ((($2)) + 16|0);
HEAP16[$28>>1] = $27;
$29 = ((($0)) + 44|0);
$30 = HEAP32[$29>>2]|0;
$31 = $30&65535;
$32 = ((($2)) + 18|0);
HEAP16[$32>>1] = $31;
$33 = ((($0)) + 48|0);
$34 = HEAP32[$33>>2]|0;
$35 = ((($2)) + 4|0);
HEAP32[$35>>2] = $34;
return;
}
function _Builder1DPart_VerticesCount($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 48|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 24|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4) + ($2))|0;
$6 = ((($0)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($7) + ($5))|0;
$9 = ((($0)) + 32|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($10) + ($8))|0;
$12 = ((($0)) + 36|0);
$13 = HEAP32[$12>>2]|0;
$14 = (($13) + ($11))|0;
$15 = ((($0)) + 40|0);
$16 = HEAP32[$15>>2]|0;
$17 = (($16) + ($14))|0;
$18 = ((($0)) + 44|0);
$19 = HEAP32[$18>>2]|0;
$20 = (($19) + ($17))|0;
return ($20|0);
}
function _ReadBorderChunkData($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$012 = 0, $$08614 = 0, $$08810 = 0, $$0908 = 0, $$0927 = 0, $$09413 = 0, $$10 = 0, $$11 = 0, $$12 = 0, $$121 = 0, $$18723 = 0, $$18919 = 0, $$19117 = 0, $$19316 = 0, $$19511 = 0, $$26 = 0, $$3 = 0, $$4 = 0, $$5 = 0, $$622 = 0;
var $$720 = 0, $$815 = 0, $$9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[351863]|0;
$5 = HEAP32[(1407508)>>2]|0;
$6 = ($5|0)<(256);
if ($6) {
$7 = (($0) + -1)|0;
$8 = HEAP32[307614]|0;
$$08614 = -1;$$09413 = 1;
L3: while(1) {
$9 = (($$08614) + ($1))|0;
$10 = ($9|0)<(0);
L5: do {
if ($10) {
$$5 = $$09413;
} else {
$11 = HEAP32[(1407468)>>2]|0;
$12 = ($9|0)<($11|0);
if (!($12)) {
$$12 = $$09413;
label = 32;
break L3;
}
$13 = ($$08614*324)|0;
$14 = (($13) + 342)|0;
$$012 = -1;$$19511 = $$09413;
while(1) {
$15 = (($$012) + ($2))|0;
$16 = ($15|0)<(0);
L10: do {
if ($16) {
$$4 = $$19511;
} else {
$17 = HEAP32[(1407472)>>2]|0;
$18 = ($15|0)<($17|0);
if (!($18)) {
$$5 = $$19511;
break L5;
}
$19 = Math_imul($17, $9)|0;
$20 = (($19) + ($15))|0;
$21 = HEAP32[(1407464)>>2]|0;
$22 = Math_imul($21, $20)|0;
$23 = (($7) + ($22))|0;
$24 = ($$012*18)|0;
$25 = (($14) + ($24))|0;
$$08810 = -1;$$0908 = $25;$$0927 = $23;$$26 = $$19511;
while(1) {
$26 = (($$08810) + ($0))|0;
$27 = ($26|0)<(0);
if ($27) {
$$3 = $$26;
} else {
$28 = ($26|0)<($21|0);
if (!($28)) {
$$4 = $$26;
break L10;
}
$29 = (($4) + ($$0927)|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30&255;
$32 = ($$26<<24>>24)==(0);
if ($32) {
$38 = 0;
} else {
$33 = $30&255;
$34 = (583428 + ($33)|0);
$35 = HEAP8[$34>>0]|0;
$36 = ($35<<24>>24)==(4);
$38 = $36;
}
$37 = $38&1;
$39 = (($8) + ($$0908<<1)|0);
HEAP16[$39>>1] = $31;
$$3 = $37;
}
$40 = (($$08810) + 1)|0;
$41 = (($$0927) + 1)|0;
$42 = (($$0908) + 1)|0;
$43 = ($$08810|0)<(16);
if ($43) {
$$08810 = $40;$$0908 = $42;$$0927 = $41;$$26 = $$3;
} else {
$$4 = $$3;
break;
}
}
}
} while(0);
$44 = (($$012) + 1)|0;
$45 = ($$012|0)<(16);
if ($45) {
$$012 = $44;$$19511 = $$4;
} else {
$$5 = $$4;
break;
}
}
}
} while(0);
$46 = (($$08614) + 1)|0;
$47 = ($$08614|0)<(16);
if ($47) {
$$08614 = $46;$$09413 = $$5;
} else {
$$12 = $$5;
label = 32;
break;
}
}
if ((label|0) == 32) {
HEAP8[$3>>0] = $$12;
return;
}
} else {
$48 = HEAP32[(1407456)>>2]|0;
$49 = (($0) + -1)|0;
$50 = HEAP32[307614]|0;
$$18723 = -1;$$622 = 1;
L28: while(1) {
$51 = (($$18723) + ($1))|0;
$52 = ($51|0)<(0);
L30: do {
if ($52) {
$$11 = $$622;
} else {
$53 = HEAP32[(1407468)>>2]|0;
$54 = ($51|0)<($53|0);
if (!($54)) {
$$12 = $$622;
label = 32;
break L28;
}
$55 = ($$18723*324)|0;
$56 = (($55) + 342)|0;
$$121 = -1;$$720 = $$622;
while(1) {
$57 = (($$121) + ($2))|0;
$58 = ($57|0)<(0);
L35: do {
if ($58) {
$$10 = $$720;
} else {
$59 = HEAP32[(1407472)>>2]|0;
$60 = ($57|0)<($59|0);
if (!($60)) {
$$11 = $$720;
break L30;
}
$61 = Math_imul($59, $51)|0;
$62 = (($61) + ($57))|0;
$63 = HEAP32[(1407464)>>2]|0;
$64 = Math_imul($63, $62)|0;
$65 = (($49) + ($64))|0;
$66 = ($$121*18)|0;
$67 = (($56) + ($66))|0;
$$18919 = -1;$$19117 = $67;$$19316 = $65;$$815 = $$720;
while(1) {
$68 = (($$18919) + ($0))|0;
$69 = ($68|0)<(0);
if ($69) {
$$9 = $$815;
} else {
$70 = ($68|0)<($63|0);
if (!($70)) {
$$10 = $$815;
break L35;
}
$71 = (($4) + ($$19316)|0);
$72 = HEAP8[$71>>0]|0;
$73 = $72&255;
$74 = (($48) + ($$19316)|0);
$75 = HEAP8[$74>>0]|0;
$76 = $75&255;
$77 = $76 << 8;
$78 = $77 | $73;
$79 = $78&65535;
$80 = ($$815<<24>>24)==(0);
if ($80) {
$85 = 0;
} else {
$81 = (583428 + ($78)|0);
$82 = HEAP8[$81>>0]|0;
$83 = ($82<<24>>24)==(4);
$85 = $83;
}
$84 = $85&1;
$86 = (($50) + ($$19117<<1)|0);
HEAP16[$86>>1] = $79;
$$9 = $84;
}
$87 = (($$18919) + 1)|0;
$88 = (($$19316) + 1)|0;
$89 = (($$19117) + 1)|0;
$90 = ($$18919|0)<(16);
if ($90) {
$$18919 = $87;$$19117 = $89;$$19316 = $88;$$815 = $$9;
} else {
$$10 = $$9;
break;
}
}
}
} while(0);
$91 = (($$121) + 1)|0;
$92 = ($$121|0)<(16);
if ($92) {
$$121 = $91;$$720 = $$10;
} else {
$$11 = $$10;
break;
}
}
}
} while(0);
$93 = (($$18723) + 1)|0;
$94 = ($$18723|0)<(16);
if ($94) {
$$18723 = $93;$$622 = $$11;
} else {
$$12 = $$11;
label = 32;
break;
}
}
if ((label|0) == 32) {
HEAP8[$3>>0] = $$12;
return;
}
}
}
function _ReadChunkData($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$06997 = 0, $$07390 = 0, $$07589 = 0, $$07796 = 0, $$07995 = 0, $$094 = 0, $$1105 = 0, $$170108 = 0, $$174101 = 0, $$176100 = 0, $$17893 = 0, $$18092 = 0, $$28187 = 0, $$288 = 0, $$3107 = 0, $$382106 = 0, $$4104 = 0, $$483103 = 0, $$58498 = 0, $$599 = 0;
var $$6 = 0, $$685 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $9 = 0, $exitcond = 0, $exitcond115 = 0, $exitcond116 = 0, $exitcond121 = 0, $exitcond122 = 0, $exitcond123 = 0, $indvars$iv = 0, $indvars$iv$next = 0, $indvars$iv$next114 = 0, $indvars$iv$next118 = 0, $indvars$iv$next120 = 0, $indvars$iv113 = 0, $indvars$iv117 = 0, $indvars$iv119 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[351863]|0;
$5 = HEAP32[(1407508)>>2]|0;
$6 = ($5|0)<(256);
if ($6) {
$7 = (($0) + -1)|0;
$8 = HEAP32[307614]|0;
$$06997 = -1;$$07796 = 1;$$07995 = 1;$indvars$iv = 18;
while(1) {
$9 = (($$06997) + ($1))|0;
$10 = ($$06997*324)|0;
$11 = (($10) + 324)|0;
$$094 = -1;$$17893 = $$07796;$$18092 = $$07995;$indvars$iv113 = $indvars$iv;
while(1) {
$12 = HEAP32[(1407472)>>2]|0;
$13 = Math_imul($12, $9)|0;
$14 = (($$094) + ($2))|0;
$15 = (($14) + ($13))|0;
$16 = HEAP32[(1407464)>>2]|0;
$17 = Math_imul($15, $16)|0;
$18 = (($7) + ($17))|0;
$19 = (($$094) + 1)|0;
$20 = ($19*18)|0;
$21 = (($11) + ($20))|0;
$$07390 = $21;$$07589 = $18;$$28187 = $$18092;$$288 = $$17893;
while(1) {
$22 = (($4) + ($$07589)|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$25 = ($$28187<<24>>24)==(0);
if ($25) {
$31 = 0;
} else {
$26 = $23&255;
$27 = (583428 + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28<<24>>24)==(4);
$31 = $29;
}
$30 = $31&1;
$32 = ($$288<<24>>24)==(0);
if ($32) {
$38 = 0;
} else {
$33 = $23&255;
$34 = (586500 + ($33)|0);
$35 = HEAP8[$34>>0]|0;
$36 = ($35<<24>>24)!=(0);
$38 = $36;
}
$37 = $38&1;
$39 = (($8) + ($$07390<<1)|0);
HEAP16[$39>>1] = $24;
$40 = (($$07589) + 1)|0;
$41 = (($$07390) + 1)|0;
$exitcond = ($41|0)==($indvars$iv113|0);
if ($exitcond) {
break;
} else {
$$07390 = $41;$$07589 = $40;$$28187 = $30;$$288 = $37;
}
}
$indvars$iv$next114 = (($indvars$iv113) + 18)|0;
$exitcond115 = ($19|0)==(17);
if ($exitcond115) {
break;
} else {
$$094 = $19;$$17893 = $37;$$18092 = $30;$indvars$iv113 = $indvars$iv$next114;
}
}
$42 = (($$06997) + 1)|0;
$indvars$iv$next = (($indvars$iv) + 324)|0;
$exitcond116 = ($42|0)==(17);
if ($exitcond116) {
$$6 = $37;$$685 = $30;
break;
} else {
$$06997 = $42;$$07796 = $37;$$07995 = $30;$indvars$iv = $indvars$iv$next;
}
}
HEAP8[$3>>0] = $$685;
return ($$6|0);
} else {
$43 = HEAP32[(1407456)>>2]|0;
$44 = (($0) + -1)|0;
$45 = HEAP32[307614]|0;
$$170108 = -1;$$3107 = 1;$$382106 = 1;$indvars$iv117 = 18;
while(1) {
$46 = (($$170108) + ($1))|0;
$47 = ($$170108*324)|0;
$48 = (($47) + 324)|0;
$$1105 = -1;$$4104 = $$3107;$$483103 = $$382106;$indvars$iv119 = $indvars$iv117;
while(1) {
$49 = HEAP32[(1407472)>>2]|0;
$50 = Math_imul($49, $46)|0;
$51 = (($$1105) + ($2))|0;
$52 = (($51) + ($50))|0;
$53 = HEAP32[(1407464)>>2]|0;
$54 = Math_imul($52, $53)|0;
$55 = (($44) + ($54))|0;
$56 = (($$1105) + 1)|0;
$57 = ($56*18)|0;
$58 = (($48) + ($57))|0;
$$174101 = $58;$$176100 = $55;$$58498 = $$483103;$$599 = $$4104;
while(1) {
$59 = (($4) + ($$176100)|0);
$60 = HEAP8[$59>>0]|0;
$61 = $60&255;
$62 = (($43) + ($$176100)|0);
$63 = HEAP8[$62>>0]|0;
$64 = $63&255;
$65 = $64 << 8;
$66 = $65 | $61;
$67 = $66&65535;
$68 = ($$58498<<24>>24)==(0);
if ($68) {
$73 = 0;
} else {
$69 = (583428 + ($66)|0);
$70 = HEAP8[$69>>0]|0;
$71 = ($70<<24>>24)==(4);
$73 = $71;
}
$72 = $73&1;
$74 = ($$599<<24>>24)==(0);
if ($74) {
$79 = 0;
} else {
$75 = (586500 + ($66)|0);
$76 = HEAP8[$75>>0]|0;
$77 = ($76<<24>>24)!=(0);
$79 = $77;
}
$78 = $79&1;
$80 = (($45) + ($$174101<<1)|0);
HEAP16[$80>>1] = $67;
$81 = (($$176100) + 1)|0;
$82 = (($$174101) + 1)|0;
$exitcond121 = ($82|0)==($indvars$iv119|0);
if ($exitcond121) {
break;
} else {
$$174101 = $82;$$176100 = $81;$$58498 = $72;$$599 = $78;
}
}
$indvars$iv$next120 = (($indvars$iv119) + 18)|0;
$exitcond122 = ($56|0)==(17);
if ($exitcond122) {
break;
} else {
$$1105 = $56;$$4104 = $78;$$483103 = $72;$indvars$iv119 = $indvars$iv$next120;
}
}
$83 = (($$170108) + 1)|0;
$indvars$iv$next118 = (($indvars$iv117) + 324)|0;
$exitcond123 = ($83|0)==(17);
if ($exitcond123) {
$$6 = $78;$$685 = $72;
break;
} else {
$$170108 = $83;$$3107 = $78;$$382106 = $72;$indvars$iv117 = $indvars$iv$next118;
}
}
HEAP8[$3>>0] = $$685;
return ($$6|0);
}
return (0)|0;
}
function _Builder_Stretch($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0181217 = 0, $$0182209 = 0, $$0183210 = 0, $$0184215 = 0, $$0185204 = 0, $$0186202 = 0, $$0211 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0;
var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0;
var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0;
var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0;
var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0;
var $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond200 = 0, $or$cond = 0, $or$cond189 = 0, $or$cond192 = 0, $or$cond195 = 0, $or$cond198 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = (($0) + 16)|0;
$5 = ($3|0)<($4|0);
$6 = $5 ? $3 : $4;
$7 = HEAP32[(1407468)>>2]|0;
$8 = (($1) + 16)|0;
$9 = ($7|0)<($8|0);
$10 = $9 ? $7 : $8;
$11 = HEAP32[(1407472)>>2]|0;
$12 = (($2) + 16)|0;
$13 = ($11|0)<($12|0);
$14 = $13 ? $11 : $12;
$15 = ($10|0)>($1|0);
if (!($15)) {
return;
}
$16 = ($14|0)>($2|0);
$17 = ($6|0)>($0|0);
$$0181217 = 0;$$0184215 = $1;
while(1) {
if ($16) {
$18 = ($$0181217*324)|0;
$19 = (($18) + 324)|0;
$20 = $$0181217 << 8;
$21 = ($$0184215|0)==(0);
$$0183210 = $2;$$0211 = 0;
while(1) {
$22 = (($$0211) + 1)|0;
if ($17) {
$23 = ($22*18)|0;
$24 = (($19) + ($23))|0;
$25 = $24 | 1;
$26 = $$0211 << 4;
$27 = $26 | $20;
$cond200 = ($$0183210|0)==(0);
$$0182209 = 0;$$0185204 = $0;$$0186202 = $25;
while(1) {
$28 = HEAP32[307614]|0;
$29 = (($28) + ($$0186202<<1)|0);
$30 = HEAP16[$29>>1]|0;
$31 = $30&65535;
$32 = (583428 + ($31)|0);
$33 = HEAP8[$32>>0]|0;
$34 = ($33<<24>>24)==(4);
do {
if (!($34)) {
$35 = $27 | $$0182209;
$36 = ($35*6)|0;
$37 = ($33<<24>>24)==(5);
if ($37) {
_Builder_AddSpriteVertices($30);
break;
}
HEAP32[307609] = $$0185204;
HEAP32[307610] = $$0184215;
HEAP32[307611] = $$0183210;
$38 = (571140 + ($31)|0);
$39 = HEAP8[$38>>0]|0;
HEAP8[1408209] = $39;
$40 = ($31*768)|0;
$41 = HEAP32[307608]|0;
$42 = (($41) + ($36)|0);
$43 = HEAP8[$42>>0]|0;
$44 = ($43<<24>>24)==(0);
do {
if ($44) {
label = 15;
} else {
$cond = ($$0185204|0)==(0);
if ($cond) {
$45 = HEAP32[307602]|0;
$46 = ($$0184215|0)<($45|0);
if ($46) {
label = 15;
break;
}
$47 = $30 & -4;
$48 = ($47<<16>>16)==(8);
$49 = HEAP32[307603]|0;
$50 = ($$0184215|0)<($49|0);
$or$cond189 = $48 & $50;
if ($or$cond189) {
label = 15;
break;
}
} else {
$51 = (($$0186202) + -1)|0;
$52 = (($28) + ($51<<1)|0);
$53 = HEAP16[$52>>1]|0;
$54 = $53&65535;
$55 = (($40) + ($54))|0;
$56 = (635652 + ($55)|0);
$57 = HEAP8[$56>>0]|0;
$58 = $57 & 1;
$59 = ($58<<24>>24)==(0);
if (!($59)) {
label = 15;
break;
}
}
$60 = HEAP32[307606]|0;
$61 = (FUNCTION_TABLE_iiiiiiii[$60 & 7]($36,$$0185204,$$0184215,$$0183210,$$0186202,$30,0)|0);
_Builder_AddVertices($30,0);
$62 = $61&255;
$63 = HEAP32[307608]|0;
$64 = (($63) + ($36)|0);
HEAP8[$64>>0] = $62;
}
} while(0);
if ((label|0) == 15) {
label = 0;
HEAP8[$42>>0] = 0;
}
$65 = $36 | 1;
$66 = HEAP32[307608]|0;
$67 = (($66) + ($65)|0);
$68 = HEAP8[$67>>0]|0;
$69 = ($68<<24>>24)==(0);
do {
if ($69) {
label = 22;
} else {
$70 = HEAP32[(1407476)>>2]|0;
$71 = ($$0185204|0)==($70|0);
if ($71) {
$72 = HEAP32[307602]|0;
$73 = ($$0184215|0)<($72|0);
if ($73) {
label = 22;
break;
}
$74 = $30 & -4;
$75 = ($74<<16>>16)==(8);
$76 = HEAP32[307603]|0;
$77 = ($$0184215|0)<($76|0);
$or$cond192 = $75 & $77;
if ($or$cond192) {
label = 22;
break;
}
} else {
$78 = HEAP32[307614]|0;
$79 = (($$0186202) + 1)|0;
$80 = (($78) + ($79<<1)|0);
$81 = HEAP16[$80>>1]|0;
$82 = $81&65535;
$83 = (($40) + ($82))|0;
$84 = (635652 + ($83)|0);
$85 = HEAP8[$84>>0]|0;
$86 = $85 & 2;
$87 = ($86<<24>>24)==(0);
if (!($87)) {
label = 22;
break;
}
}
$88 = HEAP32[307606]|0;
$89 = (FUNCTION_TABLE_iiiiiiii[$88 & 7]($65,$$0185204,$$0184215,$$0183210,$$0186202,$30,1)|0);
_Builder_AddVertices($30,1);
$90 = $89&255;
$91 = HEAP32[307608]|0;
$92 = (($91) + ($65)|0);
HEAP8[$92>>0] = $90;
}
} while(0);
if ((label|0) == 22) {
label = 0;
HEAP8[$67>>0] = 0;
}
$93 = (($65) + 1)|0;
$94 = HEAP32[307608]|0;
$95 = (($94) + ($93)|0);
$96 = HEAP8[$95>>0]|0;
$97 = ($96<<24>>24)==(0);
do {
if ($97) {
label = 29;
} else {
if ($cond200) {
$98 = HEAP32[307602]|0;
$99 = ($$0184215|0)<($98|0);
if ($99) {
label = 29;
break;
}
$100 = $30 & -4;
$101 = ($100<<16>>16)==(8);
$102 = HEAP32[307603]|0;
$103 = ($$0184215|0)<($102|0);
$or$cond195 = $101 & $103;
if ($or$cond195) {
label = 29;
break;
}
} else {
$104 = HEAP32[307614]|0;
$105 = (($$0186202) + -18)|0;
$106 = (($104) + ($105<<1)|0);
$107 = HEAP16[$106>>1]|0;
$108 = $107&65535;
$109 = (($40) + ($108))|0;
$110 = (635652 + ($109)|0);
$111 = HEAP8[$110>>0]|0;
$112 = $111 & 4;
$113 = ($112<<24>>24)==(0);
if (!($113)) {
label = 29;
break;
}
}
$114 = HEAP32[307605]|0;
$115 = HEAP32[307609]|0;
$116 = HEAP32[307610]|0;
$117 = HEAP32[307611]|0;
$118 = (FUNCTION_TABLE_iiiiiiii[$114 & 7]($93,$115,$116,$117,$$0186202,$30,2)|0);
_Builder_AddVertices($30,2);
$119 = $118&255;
$120 = HEAP32[307608]|0;
$121 = (($120) + ($93)|0);
HEAP8[$121>>0] = $119;
}
} while(0);
if ((label|0) == 29) {
label = 0;
HEAP8[$95>>0] = 0;
}
$122 = (($65) + 2)|0;
$123 = HEAP32[307608]|0;
$124 = (($123) + ($122)|0);
$125 = HEAP8[$124>>0]|0;
$126 = ($125<<24>>24)==(0);
do {
if ($126) {
label = 36;
} else {
$127 = HEAP32[(1407484)>>2]|0;
$128 = ($$0183210|0)==($127|0);
if ($128) {
$129 = HEAP32[307602]|0;
$130 = ($$0184215|0)<($129|0);
if ($130) {
label = 36;
break;
}
$131 = $30 & -4;
$132 = ($131<<16>>16)==(8);
$133 = HEAP32[307603]|0;
$134 = ($$0184215|0)<($133|0);
$or$cond198 = $132 & $134;
if ($or$cond198) {
label = 36;
break;
}
} else {
$135 = HEAP32[307614]|0;
$136 = (($$0186202) + 18)|0;
$137 = (($135) + ($136<<1)|0);
$138 = HEAP16[$137>>1]|0;
$139 = $138&65535;
$140 = (($40) + ($139))|0;
$141 = (635652 + ($140)|0);
$142 = HEAP8[$141>>0]|0;
$143 = $142 & 8;
$144 = ($143<<24>>24)==(0);
if (!($144)) {
label = 36;
break;
}
}
$145 = HEAP32[307605]|0;
$146 = (FUNCTION_TABLE_iiiiiiii[$145 & 7]($122,$$0185204,$$0184215,$$0183210,$$0186202,$30,3)|0);
_Builder_AddVertices($30,3);
$147 = $146&255;
$148 = HEAP32[307608]|0;
$149 = (($148) + ($122)|0);
HEAP8[$149>>0] = $147;
}
} while(0);
if ((label|0) == 36) {
label = 0;
HEAP8[$124>>0] = 0;
}
$150 = (($65) + 3)|0;
$151 = HEAP32[307608]|0;
$152 = (($151) + ($150)|0);
$153 = HEAP8[$152>>0]|0;
$154 = ($153<<24>>24)==(0);
$or$cond = $21 | $154;
if ($or$cond) {
label = 40;
} else {
$155 = HEAP32[307614]|0;
$156 = (($$0186202) + -324)|0;
$157 = (($155) + ($156<<1)|0);
$158 = HEAP16[$157>>1]|0;
$159 = $158&65535;
$160 = (($40) + ($159))|0;
$161 = (635652 + ($160)|0);
$162 = HEAP8[$161>>0]|0;
$163 = $162 & 16;
$164 = ($163<<24>>24)==(0);
if ($164) {
$165 = HEAP32[307605]|0;
$166 = (FUNCTION_TABLE_iiiiiiii[$165 & 7]($150,$$0185204,$$0184215,$$0183210,$$0186202,$30,4)|0);
_Builder_AddVertices($30,4);
$167 = $166&255;
$168 = HEAP32[307608]|0;
$169 = (($168) + ($150)|0);
HEAP8[$169>>0] = $167;
} else {
label = 40;
}
}
if ((label|0) == 40) {
label = 0;
HEAP8[$152>>0] = 0;
}
$170 = (($65) + 4)|0;
$171 = HEAP32[307608]|0;
$172 = (($171) + ($170)|0);
$173 = HEAP8[$172>>0]|0;
$174 = ($173<<24>>24)==(0);
if (!($174)) {
$175 = HEAP32[307614]|0;
$176 = (($$0186202) + 324)|0;
$177 = (($175) + ($176<<1)|0);
$178 = HEAP16[$177>>1]|0;
$179 = $178&65535;
$180 = (($40) + ($179))|0;
$181 = (635652 + ($180)|0);
$182 = HEAP8[$181>>0]|0;
$183 = $182 & 32;
$184 = ($183<<24>>24)==(0);
if ($184) {
$185 = $30 & -4;
$186 = ($185<<16>>16)==(8);
if (!($186)) {
$187 = HEAP32[307605]|0;
$188 = (FUNCTION_TABLE_iiiiiiii[$187 & 7]($170,$$0185204,$$0184215,$$0183210,$$0186202,$30,5)|0);
_Builder_AddVertices($30,5);
$189 = $188&255;
$190 = HEAP32[307608]|0;
$191 = (($190) + ($170)|0);
HEAP8[$191>>0] = $189;
break;
}
$192 = HEAP32[307604]|0;
$193 = (FUNCTION_TABLE_iiiiiii[$192 & 3]($170,$$0185204,$$0184215,$$0183210,$$0186202,$30)|0);
$194 = ($193|0)>(0);
if ($194) {
_Builder_AddVertices($30,5);
}
$195 = $193&255;
$196 = HEAP32[307608]|0;
$197 = (($196) + ($170)|0);
HEAP8[$197>>0] = $195;
break;
}
}
HEAP8[$172>>0] = 0;
}
} while(0);
$198 = (($$0185204) + 1)|0;
$199 = (($$0182209) + 1)|0;
$200 = (($$0186202) + 1)|0;
$201 = ($198|0)<($6|0);
if ($201) {
$$0182209 = $199;$$0185204 = $198;$$0186202 = $200;
} else {
break;
}
}
}
$202 = (($$0183210) + 1)|0;
$203 = ($202|0)<($14|0);
if ($203) {
$$0183210 = $202;$$0211 = $22;
} else {
break;
}
}
}
$204 = (($$0184215) + 1)|0;
$205 = (($$0181217) + 1)|0;
$206 = ($204|0)<($10|0);
if ($206) {
$$0181217 = $205;$$0184215 = $204;
} else {
break;
}
}
return;
}
function _Builder_DefaultPostStretchTiles() {
var $$0171 = 0, $$02 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Builder_TotalVerticesCount()|0);
$1 = HEAP32[307634]|0;
$2 = ($0|0)>($1|0);
if ($2) {
$3 = HEAP32[307612]|0;
_Mem_Free($3);
$4 = (($0) + 2)|0;
$5 = (_Mem_Alloc($4,24,19789)|0);
HEAP32[307612] = $5;
HEAP32[307634] = $0;
}
$$0171 = 0;$$02 = 0;
while(1) {
$6 = (($$02) + 512)|0;
$7 = (90000 + (($$02*60)|0)|0);
$8 = (_Builder1DPart_CalcOffsets($7,$$0171)|0);
$9 = (90000 + (($6*60)|0)|0);
$10 = (_Builder1DPart_CalcOffsets($9,$8)|0);
$11 = (($$02) + 1)|0;
$exitcond = ($11|0)==(512);
if ($exitcond) {
break;
} else {
$$0171 = $10;$$02 = $11;
}
}
return;
}
function _Builder1DPart_CalcOffsets($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 52|0);
HEAP32[$2>>2] = $1;
$3 = ((($0)) + 48|0);
$4 = HEAP32[$3>>2]|0;
$5 = (2)?($4 >> 2):($4);
$6 = ((($0)) + 56|0);
HEAP32[$6>>2] = $5;
$7 = (($4) + ($1))|0;
$8 = HEAP32[307612]|0;
$9 = (($8) + (($7*24)|0)|0);
HEAP32[$0>>2] = $9;
$10 = ((($0)) + 24|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($11) + ($7))|0;
$13 = (($8) + (($12*24)|0)|0);
$14 = ((($0)) + 4|0);
HEAP32[$14>>2] = $13;
$15 = ((($0)) + 28|0);
$16 = HEAP32[$15>>2]|0;
$17 = (($16) + ($12))|0;
$18 = (($8) + (($17*24)|0)|0);
$19 = ((($0)) + 8|0);
HEAP32[$19>>2] = $18;
$20 = ((($0)) + 32|0);
$21 = HEAP32[$20>>2]|0;
$22 = (($21) + ($17))|0;
$23 = (($8) + (($22*24)|0)|0);
$24 = ((($0)) + 12|0);
HEAP32[$24>>2] = $23;
$25 = ((($0)) + 36|0);
$26 = HEAP32[$25>>2]|0;
$27 = (($26) + ($22))|0;
$28 = (($8) + (($27*24)|0)|0);
$29 = ((($0)) + 16|0);
HEAP32[$29>>2] = $28;
$30 = ((($0)) + 40|0);
$31 = HEAP32[$30>>2]|0;
$32 = (($31) + ($27))|0;
$33 = (($8) + (($32*24)|0)|0);
$34 = ((($0)) + 20|0);
HEAP32[$34>>2] = $33;
$35 = ((($0)) + 44|0);
$36 = HEAP32[$35>>2]|0;
$37 = (($36) + ($32))|0;
return ($37|0);
}
function _Builder_AddSpriteVertices($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = ($1*6)|0;
$3 = $2 | 1;
$4 = (624900 + ($3<<1)|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = HEAP32[(1384652)>>2]|0;
$8 = ($7)?($6 >>> $7):($6);
$9 = (((90000 + (($8*60)|0)|0)) + 48|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($10) + 16)|0;
HEAP32[$9>>2] = $11;
return;
}
function _Builder_AddVertices($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0&65535;
$3 = (583428 + ($2)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(3);
$6 = $5&1;
$7 = $6 << 9;
$8 = ($2*6)|0;
$9 = $1&255;
$10 = (($8) + ($9))|0;
$11 = (624900 + ($10<<1)|0);
$12 = HEAP16[$11>>1]|0;
$13 = $12&65535;
$14 = HEAP32[(1384652)>>2]|0;
$15 = ($14)?($13 >>> $14):($13);
$16 = (($7) + ($15))|0;
$17 = ((((90000 + (($16*60)|0)|0)) + 24|0) + ($9<<2)|0);
$18 = HEAP32[$17>>2]|0;
$19 = (($18) + 4)|0;
HEAP32[$17>>2] = $19;
return;
}
function _Camera_Init() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Camera_Register(10688);
_Camera_Register(10736);
_Camera_Register(10784);
HEAP32[(1230632)>>2] = 10688;
_Event_Register((1259396),0,16);
_Event_Register((1252636),0,274);
$0 = (_Options_GetInt(33689,1,200,30)|0);
HEAP32[307635] = $0;
$1 = (_Options_GetBool(31508,1)|0);
HEAP8[(1230545)>>0] = $1;
$2 = (_Options_GetBool(31938,0)|0);
HEAP8[(1230546)>>0] = $2;
return;
}
function _Camera_Register($0) {
$0 = $0|0;
var $$sink = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[307681]|0;
$2 = ($1|0)==(0|0);
$3 = HEAP32[307682]|0;
$4 = ((($3)) + 44|0);
$$sink = $2 ? 1230724 : $4;
HEAP32[$$sink>>2] = $0;
HEAP32[307682] = $0;
$5 = ((($0)) + 44|0);
$6 = HEAP32[307681]|0;
HEAP32[$5>>2] = $6;
return;
}
function _HandleRawMouseMoved($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[(1230632)>>2]|0;
$5 = ((($4)) + 24|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vii[$6 & 127]($2,$3);
return;
}
function _Camera_CheckThirdPerson($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242628)>>0]|0;
$2 = ($1<<24>>24)==(0);
$3 = HEAP8[(1242626)>>0]|0;
$4 = ($3<<24>>24)==(0);
$or$cond = $2 | $4;
if (!($or$cond)) {
return;
}
_Camera_CycleActive();
return;
}
function _Camera_CycleActive() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408229]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
return;
}
$2 = HEAP32[(1230632)>>2]|0;
$3 = ((($2)) + 44|0);
$4 = HEAP32[$3>>2]|0;
HEAP32[(1230632)>>2] = $4;
$5 = HEAP8[(1242628)>>0]|0;
$6 = ($5<<24>>24)==(0);
$7 = HEAP8[(1242626)>>0]|0;
$8 = ($7<<24>>24)==(0);
$or$cond = $6 | $8;
if ($or$cond) {
HEAP32[(1230632)>>2] = 10688;
}
$9 = HEAP32[(1230632)>>2]|0;
$10 = ($9|0)==(10784|0);
$11 = $10&1;
HEAP8[1408211] = $11;
HEAPF32[307659] = 0.0;
HEAPF32[307660] = 0.0;
_Game_UpdateProjection();
return;
}
function _PerspectiveCamera_GetProjection($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315053]|0;
$2 = (+($1|0));
$3 = $2 * 0.01745329238474369;
$4 = HEAP32[133868]|0;
$5 = (+($4|0));
$6 = HEAP32[(535476)>>2]|0;
$7 = (+($6|0));
$8 = $5 / $7;
$9 = +HEAPF32[(1260356)>>2];
$10 = HEAP32[315051]|0;
$11 = (+($10|0));
_Matrix_PerspectiveFieldOfView($0,$3,$8,$9,$11);
return;
}
function _PerspectiveCamera_GetView($0) {
$0 = $0|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$$byval_copy1 = sp + 32|0;
$$byval_copy = sp + 20|0;
$1 = sp + 8|0;
$2 = sp;
;HEAP32[$1>>2]=HEAP32[(1230620)>>2]|0;HEAP32[$1+4>>2]=HEAP32[(1230620)+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[(1230620)+8>>2]|0;
$3 = HEAP32[(1230632)>>2]|0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
FUNCTION_TABLE_vi[$5 & 511]($2);
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;
_Matrix_LookRot($0,$$byval_copy,$$byval_copy1);
_Matrix_Mul($0,$0,(1230548));
STACKTOP = sp;return;
}
function _ThirdPersonCamera_GetOrientation($0) {
$0 = $0|0;
var $$sroa$0$0 = 0.0, $$sroa$8$0 = 0.0, $$sroa$8$0$$sroa_idx3 = 0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1242172)>>2];
$2 = $1 * 0.01745329238474369;
$3 = +HEAPF32[(1242168)>>2];
$4 = $3 * 0.01745329238474369;
$5 = HEAP8[1408211]|0;
$6 = ($5<<24>>24)==(0);
$7 = $2 + 3.1415927410125732;
$8 = - $4;
$$sroa$8$0 = $6 ? $4 : $8;
$$sroa$0$0 = $6 ? $2 : $7;
$9 = +HEAPF32[307659];
$10 = $9 * 0.01745329238474369;
$11 = $$sroa$0$0 + $10;
$12 = +HEAPF32[307660];
$13 = $12 * 0.01745329238474369;
$14 = $$sroa$8$0 + $13;
HEAPF32[$0>>2] = $11;
$$sroa$8$0$$sroa_idx3 = ((($0)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx3>>2] = $14;
return;
}
function _ThirdPersonCamera_GetPosition($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$byval_copy = 0, $$byval_copy1 = 0, $$sroa$0$0$copyload = 0.0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$4$0$copyload = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$$byval_copy1 = sp + 72|0;
$$byval_copy = sp + 60|0;
$2 = sp + 48|0;
$3 = sp + 36|0;
$4 = sp + 24|0;
$5 = sp + 16|0;
$6 = sp;
$7 = HEAP8[1408211]|0;
$8 = ($7<<24>>24)==(0);
$9 = +HEAPF32[2671];
$10 = +HEAPF32[2670];
$11 = $8 ? $10 : $9;
_PerspectiveCamera_CalcViewBobbing($1,$11);
_Entity_GetEyePosition($4,1242152);
;HEAP32[$2>>2]=HEAP32[$4>>2]|0;HEAP32[$2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$4+8>>2]|0;
$12 = +HEAPF32[(1230612)>>2];
$13 = ((($2)) + 4|0);
$14 = +HEAPF32[$13>>2];
$15 = $12 + $14;
HEAPF32[$13>>2] = $15;
$16 = HEAP32[(1230632)>>2]|0;
$17 = ((($16)) + 12|0);
$18 = HEAP32[$17>>2]|0;
FUNCTION_TABLE_vi[$18 & 511]($5);
$$sroa$0$0$copyload = +HEAPF32[$5>>2];
$$sroa$4$0$$sroa_idx2 = ((($5)) + 4|0);
$$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx2>>2];
_Vec3_GetDirVector($6,$$sroa$0$0$copyload,$$sroa$4$0$copyload);
;HEAP32[$3>>2]=HEAP32[$6>>2]|0;HEAP32[$3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$6+8>>2]|0;
_Vec3_Negate($3,$3);
;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0;
_Picking_ClipCameraPos($$byval_copy,$$byval_copy1,$11,1230660);
;HEAP32[$0>>2]=HEAP32[(1230684)>>2]|0;HEAP32[$0+4>>2]=HEAP32[(1230684)+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[(1230684)+8>>2]|0;
STACKTOP = sp;return;
}
function _PerspectiveCamera_UpdateMouse($0) {
$0 = +$0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Gui_GetInputGrab()|0);
$2 = ($1|0)!=(0|0);
$3 = HEAP8[1408301]|0;
$4 = ($3<<24>>24)==(0);
$or$cond = $2 | $4;
if (!($or$cond)) {
}
_PerspectiveCamera_UpdateMouseRotation();
HEAP32[307661] = 0;
HEAP32[307662] = 0;
return;
}
function _Camera_OnRawMouseMoved($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[307661]|0;
$3 = (($2) + ($0))|0;
HEAP32[307661] = $3;
$4 = HEAP32[307662]|0;
$5 = (($4) + ($1))|0;
HEAP32[307662] = $5;
return;
}
function _Camera_AcquireFocus() {
var label = 0, sp = 0;
sp = STACKTOP;
_Window_EnableRawMouse();
return;
}
function _Camera_LoseFocus() {
var label = 0, sp = 0;
sp = STACKTOP;
_Window_DisableRawMouse();
return;
}
function _PerspectiveCamera_GetPickedBlock($0) {
$0 = $0|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$$byval_copy1 = sp + 36|0;
$$byval_copy = sp + 24|0;
$1 = sp + 12|0;
$2 = sp;
$3 = +HEAPF32[(1242172)>>2];
$4 = $3 * 0.01745329238474369;
$5 = +HEAPF32[(1242168)>>2];
$6 = $5 * 0.01745329238474369;
_Vec3_GetDirVector($1,$4,$6);
_Entity_GetEyePosition($2,1242152);
$7 = +HEAPF32[(1242612)>>2];
;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;
_Picking_CalculatePickedBlock($$byval_copy,$$byval_copy1,$7,$0);
STACKTOP = sp;return;
}
function _ThirdPersonCamera_Zoom($0) {
$0 = +$0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408211]|0;
$2 = ($1<<24>>24)==(0);
$3 = $2 ? 10680 : 10684;
$4 = +HEAPF32[$3>>2];
$5 = $4 - $0;
$6 = $5 > 2.0;
$7 = $6 ? $5 : 2.0;
HEAPF32[$3>>2] = $7;
return 1;
}
function _PerspectiveCamera_UpdateMouseRotation() {
var $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0, $26 = 0;
var $27 = 0.0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, $or$cond2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$0 = sp + 8|0;
$1 = sp;
_PerspectiveCamera_GetMouseDelta($1);
$2 = HEAP8[(379624)>>0]|0;
$3 = HEAP8[(379625)>>0]|0;
$4 = $3 | $2;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$6 = HEAP32[(1230632)>>2]|0;
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if (!($8)) {
$9 = +HEAPF32[$1>>2];
$10 = +HEAPF32[307659];
$11 = $9 + $10;
HEAPF32[307659] = $11;
$12 = ((($1)) + 4|0);
$13 = +HEAPF32[$12>>2];
$14 = +HEAPF32[307660];
$15 = $13 + $14;
HEAPF32[307660] = $15;
STACKTOP = sp;return;
}
}
$16 = +HEAPF32[(1242860)>>2];
$17 = +HEAPF32[$1>>2];
$18 = $16 + $17;
$19 = +HEAPF32[(1242856)>>2];
$20 = ((($1)) + 4|0);
$21 = +HEAPF32[$20>>2];
$22 = $19 + $21;
_LocationUpdate_MakeOri($0,$18,$22);
$23 = ((($0)) + 12|0);
$24 = +HEAPF32[$23>>2];
$25 = !($24 >= 90.0);
$26 = !($24 <= 270.0);
$or$cond2 = $25 | $26;
if (!($or$cond2)) {
$27 = +HEAPF32[(1242856)>>2];
$28 = $27 < 180.0;
$29 = $28 ? 90.0 : 270.0;
HEAPF32[$23>>2] = $29;
}
$30 = HEAP32[310538]|0;
$31 = ((($30)) + 8|0);
$32 = HEAP32[$31>>2]|0;
FUNCTION_TABLE_viii[$32 & 31](1242152,$0,0);
STACKTOP = sp;return;
}
function _PerspectiveCamera_GetMouseDelta($0) {
$0 = $0|0;
var $$sroa$4$0$$sroa_idx2 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $2 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0.0, $3 = 0.0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, $spec$select = 0.0, $storemerge = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[307635]|0;
$2 = (+($1|0));
$3 = $2 * 0.0038197184912860394;
$4 = HEAP8[(1230544)>>0]|0;
$5 = ($4<<24>>24)==(0);
$6 = HEAP32[307661]|0;
$7 = (+($6|0));
if ($5) {
HEAPF32[307663] = $7;
$18 = HEAP32[307662]|0;
$19 = (+($18|0));
$storemerge = $19;
} else {
$8 = $7 * 0.02500000037252903;
$9 = +HEAPF32[307663];
$10 = $8 + $9;
$11 = $10 * 0.97000002861022949;
HEAPF32[307663] = $11;
$12 = HEAP32[307662]|0;
$13 = (+($12|0));
$14 = $13 * 0.02500000037252903;
$15 = +HEAPF32[307664];
$16 = $15 + $14;
$17 = $16 * 0.97000002861022949;
$storemerge = $17;
}
HEAPF32[307664] = $storemerge;
$20 = +HEAPF32[307663];
$21 = $3 * $20;
$22 = $3 * $storemerge;
$23 = HEAP8[(1230546)>>0]|0;
$24 = ($23<<24>>24)==(0);
$25 = - $22;
$spec$select = $24 ? $22 : $25;
HEAPF32[$0>>2] = $21;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $spec$select;
return;
}
function _PerspectiveCamera_CalcViewBobbing($0,$1) {
$0 = +$0;
$1 = +$1;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0;
var $29 = 0.0, $3 = 0, $30 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0;
$2 = sp + 64|0;
$3 = sp;
$4 = HEAP8[1408237]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
dest=(1230548); src=18012; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
} else {
$6 = +HEAPF32[(1242796)>>2];
$7 = +HEAPF32[(1242364)>>2];
$8 = $6 * $7;
$9 = - $8;
_Matrix_RotateZ((1230548),$9);
$10 = +HEAPF32[(1242800)>>2];
$11 = (+_Math_AbsF($10));
$12 = $11 * 3.0;
$13 = +HEAPF32[(1242364)>>2];
$14 = $12 * $13;
_Matrix_RotateX($2,$14);
_Matrix_Mul((1230548),(1230548),$2);
$15 = +HEAPF32[(1242344)>>2];
$16 = $15 * 0.30000001192092896;
$17 = +HEAPF32[(1242364)>>2];
$18 = $16 * $17;
HEAPF32[(1230616)>>2] = $18;
$19 = +HEAPF32[(1242348)>>2];
$20 = $19 * 0.60000002384185791;
$21 = $17 * $20;
HEAPF32[(1230612)>>2] = $21;
$22 = +HEAPF32[(1242596)>>2];
$23 = $22 + 0.079999998211860657;
$24 = +HEAPF32[(1242192)>>2];
$25 = $24 + 0.079999998211860657;
$26 = (+_Math_Lerp($23,$25,$0));
$27 = $26 * -0.05000000074505806;
$28 = +HEAPF32[(1242804)>>2];
$29 = $27 * $28;
$30 = $29 / $1;
_Matrix_RotateX($3,$30);
_Matrix_Mul((1230548),(1230548),$3);
STACKTOP = sp;return;
}
}
function _Vec3_Negate($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0.0, $11 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[$1>>2];
$3 = - $2;
HEAPF32[$0>>2] = $3;
$4 = ((($1)) + 4|0);
$5 = +HEAPF32[$4>>2];
$6 = - $5;
$7 = ((($0)) + 4|0);
HEAPF32[$7>>2] = $6;
$8 = ((($1)) + 8|0);
$9 = +HEAPF32[$8>>2];
$10 = - $9;
$11 = ((($0)) + 8|0);
HEAPF32[$11>>2] = $10;
return;
}
function _FirstPersonCamera_GetOrientation($0) {
$0 = $0|0;
var $$sroa$4$0$$sroa_idx2 = 0, $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1242172)>>2];
$2 = $1 * 0.01745329238474369;
$3 = +HEAPF32[(1242168)>>2];
$4 = $3 * 0.01745329238474369;
HEAPF32[$0>>2] = $2;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $4;
return;
}
function _FirstPersonCamera_GetPosition($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0;
var $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
_Entity_GetEyePosition($2,1242152);
$3 = +HEAPF32[(1242172)>>2];
$4 = $3 * 0.01745329238474369;
_PerspectiveCamera_CalcViewBobbing($1,1.0);
$5 = +HEAPF32[(1230612)>>2];
$6 = ((($2)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = $5 + $7;
HEAPF32[$6>>2] = $8;
$9 = +HEAPF32[(1230616)>>2];
$10 = $4;
$11 = (+_Math_Cos($10));
$12 = $11;
$13 = $9 * $12;
$14 = +HEAPF32[$2>>2];
$15 = $14 + $13;
HEAPF32[$2>>2] = $15;
$16 = +HEAPF32[(1230616)>>2];
$17 = (+_Math_Sin($10));
$18 = $17;
$19 = $16 * $18;
$20 = ((($2)) + 8|0);
$21 = +HEAPF32[$20>>2];
$22 = $21 + $19;
HEAPF32[$20>>2] = $22;
;HEAP32[$0>>2]=HEAP32[$2>>2]|0;HEAP32[$0+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$2+8>>2]|0;
STACKTOP = sp;return;
}
function _FirstPersonCamera_Zoom($0) {
$0 = +$0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Camera_CheckFocus() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Gui_GetInputGrab()|0);
$1 = ($0|0)==(0|0);
$2 = $1&1;
$3 = HEAP8[1408212]|0;
$4 = $3&255;
$5 = ($2|0)==($4|0);
if ($5) {
return;
}
$6 = $1&1;
HEAP8[1408212] = $6;
$7 = HEAP32[(1230632)>>2]|0;
if ($1) {
$8 = ((($7)) + 28|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_v[$9 & 127]();
return;
} else {
$10 = ((($7)) + 32|0);
$11 = HEAP32[$10>>2]|0;
FUNCTION_TABLE_v[$11 & 127]();
return;
}
}
function _Chat_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_Commands_Register(10872);
_Commands_Register(10908);
_Commands_Register(10944);
_Commands_Register(10980);
_Commands_Register(11016);
_Commands_Register(11052);
_Commands_Register(11088);
_Commands_Register(11124);
(_Options_GetBool(19804,1)|0);
return;
}
function _Chat_Free() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[310256] = 0;
$0 = HEAP32[2710]|0;
$1 = ($0|0)==(152208|0);
if (!($1)) {
_Mem_Free($0);
}
HEAP32[2710] = 152208;
HEAP32[310255] = 0;
_StringsBuffer_Clear(1230732);
_StringsBuffer_Clear(1235876);
return;
}
function _Chat_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
_Chat_AddOf(1384616,100);
_Chat_AddOf(1384616,1);
_Chat_AddOf(1384616,2);
_Chat_AddOf(1384616,3);
_Chat_AddOf(1384616,11);
_Chat_AddOf(1384616,12);
_Chat_AddOf(1384616,13);
return;
}
function _Chat_AddOf($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$off = 0, $$off21 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0);
do {
if ($2) {
_StringsBuffer_Add(1230732,$0);
_AppendChatLogTime();
} else {
$$off = (($1) + -1)|0;
$3 = ($$off>>>0)<(3);
if ($3) {
$4 = (480 + ($1<<3)|0);
_String_Copy($4,$0);
break;
}
$$off21 = (($1) + -11)|0;
$5 = ($$off21>>>0)<(3);
if ($5) {
$6 = (512 + ($$off21<<3)|0);
_String_Copy($6,$0);
break;
}
$7 = ($1|0)==(100);
if ($7) {
_String_Copy(10832,$0);
$8 = (_DateTime_CurrentUTC_MS()|0);
$9 = (getTempRet0() | 0);
$10 = 535456;
$11 = $10;
HEAP32[$11>>2] = $8;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
break;
}
$14 = $1 & -2;
$15 = ($14|0)==(256);
if ($15) {
$16 = (($1) + -256)|0;
$17 = (544 + ($16<<3)|0);
_String_Copy($17,$0);
}
}
} while(0);
_Event_RaiseChat((1254976),$0,$1);
return;
}
function _AppendChatLogTime() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_DateTime_CurrentUTC_MS()|0);
$1 = (getTempRet0() | 0);
$2 = HEAP32[310255]|0;
$3 = HEAP32[2717]|0;
$4 = ($2|0)==($3|0);
if ($4) {
_Utils_Resize(10840,10868,8,256,512);
}
$5 = HEAP32[2710]|0;
$6 = HEAP32[310255]|0;
$7 = (($6) + 1)|0;
HEAP32[310255] = $7;
$8 = (($5) + ($6<<3)|0);
$9 = $8;
$10 = $9;
HEAP32[$10>>2] = $0;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $1;
return;
}
function _Commands_Register($0) {
$0 = $0|0;
var $$sink = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[310256]|0;
$2 = ($1|0)==(0|0);
$3 = HEAP32[310263]|0;
$4 = ((($3)) + 32|0);
$$sink = $2 ? 1241024 : $4;
HEAP32[$$sink>>2] = $0;
HEAP32[310263] = $0;
$5 = ((($0)) + 32|0);
HEAP32[$5>>2] = 0;
return;
}
function _ClearDeniedCommand_Execute($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_TextureCache_ClearDenied()|0);
HEAP32[$2>>2] = $3;
_Chat_Add1(19906,$2);
STACKTOP = sp;return;
}
function _Chat_Add1($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Chat_Add4($0,$1,0,0,0);
return;
}
function _Chat_Add4($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$5 = sp + 128|0;
$6 = sp;
HEAP32[$5>>2] = $6;
$7 = ((($5)) + 4|0);
HEAP16[$7>>1] = 0;
$8 = ((($5)) + 6|0);
HEAP16[$8>>1] = 128;
_String_Format4($5,$0,$1,$2,$3,$4);
_Chat_AddOf($5,0);
STACKTOP = sp;return;
}
function _TeleportCommand_Execute($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$$byval_copy = sp + 48|0;
$2 = sp + 16|0;
$3 = sp;
$4 = ($1|0)==(3);
if (!($4)) {
_Chat_AddRaw(20009);
STACKTOP = sp;return;
}
$5 = (_Convert_ParseFloat($0,$3)|0);
$6 = ($5<<24>>24)==(0);
if (!($6)) {
$7 = ((($0)) + 8|0);
$8 = ((($3)) + 4|0);
$9 = (_Convert_ParseFloat($7,$8)|0);
$10 = ($9<<24>>24)==(0);
if (!($10)) {
$11 = ((($0)) + 16|0);
$12 = ((($3)) + 8|0);
$13 = (_Convert_ParseFloat($11,$12)|0);
$14 = ($13<<24>>24)==(0);
if (!($14)) {
;HEAP32[$$byval_copy>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$3+8>>2]|0;
_LocationUpdate_MakePos($2,$$byval_copy,0);
$15 = HEAP32[310538]|0;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
FUNCTION_TABLE_viii[$17 & 31](1242152,$2,0);
STACKTOP = sp;return;
}
}
}
_Chat_AddRaw(20074);
STACKTOP = sp;return;
}
function _Chat_AddRaw($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_String_FromReadonly($1,$0);
_Chat_AddOf($1,0);
STACKTOP = sp;return;
}
function _CuboidCommand_Execute($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408213]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
_Event_Unregister(1252376,0,17);
HEAP8[1408213] = 0;
}
HEAP32[2790] = -1;
HEAP8[1408214] = 0;
HEAP8[1408215] = 0;
$4 = (_CuboidCommand_ParseBlock($0,$1)|0);
$5 = ($4<<24>>24)==(0);
if ($5) {
return;
}
$6 = ($1|0)>(1);
if ($6) {
$7 = (_String_CaselessEqualsConst($0,20402)|0);
$8 = ($7|0)==(0);
if (!($8)) {
HEAP8[1408215] = 1;
}
}
_Chat_AddOf(11164,256);
_Event_Register(1252376,0,17);
HEAP8[1408213] = 1;
return;
}
function _CuboidCommand_BlockChanged($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$4 = sp + 64|0;
$5 = sp;
HEAP32[$4>>2] = $5;
$6 = ((($4)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($4)) + 6|0);
HEAP16[$7>>1] = 64;
$8 = HEAP8[1408214]|0;
$9 = ($8<<24>>24)==(0);
if ($9) {
;HEAP32[1241028>>2]=HEAP32[$1>>2]|0;HEAP32[1241028+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[1241028+8>>2]=HEAP32[$1+8>>2]|0;
HEAP8[1408214] = 1;
$10 = HEAP32[$1>>2]|0;
$11 = ((($1)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($1)) + 8|0);
$14 = HEAP32[$13>>2]|0;
_Game_UpdateBlock($10,$12,$14,$2);
_String_Format3($4,20537,$1,$11,$13);
_Chat_AddOf($4,256);
STACKTOP = sp;return;
}
;HEAP32[1241040>>2]=HEAP32[$1>>2]|0;HEAP32[1241040+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[1241040+8>>2]=HEAP32[$1+8>>2]|0;
_CuboidCommand_DoCuboid();
$15 = HEAP8[1408215]|0;
$16 = ($15<<24>>24)==(0);
if ($16) {
_Event_Unregister(1252376,0,17);
HEAP8[1408213] = 0;
_Chat_AddOf(1384616,256);
STACKTOP = sp;return;
} else {
HEAP8[1408214] = 0;
_Chat_AddOf(11164,256);
STACKTOP = sp;return;
}
}
function _CuboidCommand_ParseBlock($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0);
if ($2) {
$$0 = 1;
return ($$0|0);
}
$3 = (_String_CaselessEqualsConst($0,20402)|0);
$4 = ($3|0)==(0);
if (!($4)) {
HEAP8[1408215] = 1;
$$0 = 1;
return ($$0|0);
}
$5 = (_Block_Parse($0)|0);
$6 = ($5|0)==(-1);
if ($6) {
_Chat_Add1(20443,$0);
$$0 = 0;
return ($$0|0);
}
$7 = ($5|0)>(65);
if ($7) {
$8 = $5&65535;
$9 = (_Block_IsCustomDefined($8)|0);
$10 = ($9<<24>>24)==(0);
if ($10) {
_Chat_Add1(20493,$0);
$$0 = 0;
return ($$0|0);
}
}
HEAP32[2790] = $5;
$$0 = 1;
return ($$0|0);
}
function _CuboidCommand_DoCuboid() {
var $$01725 = 0, $$01820 = 0, $$019 = 0, $$021 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$0 = sp + 12|0;
$1 = sp;
_IVec3_Min($0,1241028,1241040);
_IVec3_Max($1,1241028,1241040);
$2 = HEAP32[$0>>2]|0;
$3 = ((($0)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = (_World_Contains_39($2,$4,$6)|0);
$8 = ($7<<24>>24)==(0);
if ($8) {
STACKTOP = sp;return;
}
$9 = HEAP32[$1>>2]|0;
$10 = ((($1)) + 4|0);
$11 = HEAP32[$10>>2]|0;
$12 = ((($1)) + 8|0);
$13 = HEAP32[$12>>2]|0;
$14 = (_World_Contains_39($9,$11,$13)|0);
$15 = ($14<<24>>24)==(0);
if ($15) {
STACKTOP = sp;return;
}
$16 = HEAP32[2790]|0;
$17 = $16&65535;
$18 = ($16|0)==(-1);
if ($18) {
$19 = HEAP32[(1268184)>>2]|0;
$20 = HEAP32[(1268180)>>2]|0;
$21 = (($20) + ($19))|0;
$22 = (1266480 + ($21<<1)|0);
$23 = HEAP16[$22>>1]|0;
$$019 = $23;
} else {
$$019 = $17;
}
$24 = HEAP32[$10>>2]|0;
$25 = ($4|0)>($24|0);
if ($25) {
STACKTOP = sp;return;
}
$$01725 = $4;
while(1) {
$26 = HEAP32[$5>>2]|0;
$27 = HEAP32[$12>>2]|0;
$28 = ($26|0)>($27|0);
if (!($28)) {
$$021 = $26;
while(1) {
$29 = HEAP32[$0>>2]|0;
$30 = HEAP32[$1>>2]|0;
$31 = ($29|0)>($30|0);
if (!($31)) {
$$01820 = $29;
while(1) {
_Game_ChangeBlock($$01820,$$01725,$$021,$$019);
$32 = (($$01820) + 1)|0;
$33 = HEAP32[$1>>2]|0;
$34 = ($$01820|0)<($33|0);
if ($34) {
$$01820 = $32;
} else {
break;
}
}
}
$35 = (($$021) + 1)|0;
$36 = HEAP32[$12>>2]|0;
$37 = ($$021|0)<($36|0);
if ($37) {
$$021 = $35;
} else {
break;
}
}
}
$38 = (($$01725) + 1)|0;
$39 = HEAP32[$10>>2]|0;
$40 = ($$01725|0)<($39|0);
if ($40) {
$$01725 = $38;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _World_Contains_39($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _ModelCommand_Execute($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0);
if ($2) {
_Chat_AddRaw(20738);
return;
} else {
_Entity_SetModel(1242152,$0);
return;
}
}
function _ResolutionCommand_Execute($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 4|0;
$3 = sp;
$4 = ($1|0)<(2);
if ($4) {
_Chat_Add4(20889,1407432,18808,1407436,18812);
STACKTOP = sp;return;
}
$5 = (_Convert_ParseInt($0,$2)|0);
$6 = ($5<<24>>24)==(0);
if (!($6)) {
$7 = ((($0)) + 8|0);
$8 = (_Convert_ParseInt($7,$3)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
$10 = HEAP32[$2>>2]|0;
$11 = ($10|0)<(1);
$12 = HEAP32[$3>>2]|0;
$13 = ($12|0)<(1);
$or$cond = $11 | $13;
if ($or$cond) {
_Chat_AddRaw(20988);
STACKTOP = sp;return;
} else {
_Window_SetSize($10,$12);
$14 = HEAP32[$2>>2]|0;
$15 = (+($14|0));
$16 = +HEAPF32[4702];
$17 = $15 / $16;
$18 = (~~(($17)));
_Options_SetInt(35055,$18);
$19 = HEAP32[$3>>2]|0;
$20 = (+($19|0));
$21 = +HEAPF32[4703];
$22 = $20 / $21;
$23 = (~~(($22)));
_Options_SetInt(35068,$23);
STACKTOP = sp;return;
}
}
}
_Chat_AddRaw(20940);
STACKTOP = sp;return;
}
function _RenderTypeCommand_Execute($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0);
if ($2) {
_Chat_AddRaw(21417);
return;
}
$3 = (_EnvRenderer_CalcFlags($0)|0);
$4 = ($3|0)>(-1);
if ($4) {
_EnvRenderer_SetMode($3);
_Options_Set(22963,$0);
_Chat_Add1(21468,$0);
return;
} else {
_Chat_Add1(21504,$0);
return;
}
}
function _HelpCommand_Execute($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0);
if ($2) {
_Commands_PrintDefault();
return;
}
$3 = (_Commands_GetMatch($0)|0);
$4 = ($3|0)==(0|0);
if ($4) {
return;
}
$5 = ((($3)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0|0);
if (!($7)) {
_Chat_AddRaw($6);
}
$8 = ((($3)) + 16|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0|0);
if (!($10)) {
_Chat_AddRaw($9);
}
$11 = ((($3)) + 20|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==(0|0);
if (!($13)) {
_Chat_AddRaw($12);
}
$14 = ((($3)) + 24|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==(0|0);
if (!($16)) {
_Chat_AddRaw($15);
}
$17 = ((($3)) + 28|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($18|0)==(0|0);
if ($19) {
return;
}
_Chat_AddRaw($18);
return;
}
function _Commands_PrintDefault() {
var $$0 = 0, $$05 = 0, $$06 = 0, $$pr = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$0 = sp + 80|0;
$1 = sp;
$2 = sp + 72|0;
$3 = sp + 64|0;
_Chat_AddRaw(21841);
HEAP32[$0>>2] = $1;
$4 = ((($0)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($0)) + 6|0);
HEAP16[$5>>1] = 64;
$$05 = HEAP32[310256]|0;
$6 = ($$05|0)==(0|0);
if ($6) {
_Chat_AddRaw(21871);
STACKTOP = sp;return;
}
$7 = ((($2)) + 4|0);
$$06 = $$05;
while(1) {
$8 = HEAP32[$$06>>2]|0;
_String_FromReadonly($3,$8);
$9 = $3;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = $2;
$16 = $15;
HEAP32[$16>>2] = $11;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $14;
$19 = HEAP16[$4>>1]|0;
$20 = $19&65535;
$21 = HEAP16[$7>>1]|0;
$22 = $21&65535;
$23 = (($20) + 2)|0;
$24 = (($23) + ($22))|0;
$25 = HEAP16[$5>>1]|0;
$26 = $25&65535;
$27 = ($24>>>0)>($26>>>0);
if ($27) {
_Chat_Add($0);
HEAP16[$4>>1] = 0;
}
_String_AppendString($0,$2);
_String_AppendConst($0,21868);
$28 = ((($$06)) + 32|0);
$$0 = HEAP32[$28>>2]|0;
$29 = ($$0|0)==(0|0);
if ($29) {
break;
} else {
$$06 = $$0;
}
}
$$pr = HEAP16[$4>>1]|0;
$30 = ($$pr<<16>>16)==(0);
if ($30) {
_Chat_AddRaw(21871);
STACKTOP = sp;return;
}
_Chat_Add($0);
_Chat_AddRaw(21871);
STACKTOP = sp;return;
}
function _Commands_GetMatch($0) {
$0 = $0|0;
var $$017 = 0, $$01721 = 0, $$01723 = 0, $$018 = 0, $$022 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
$$01721 = HEAP32[310256]|0;
$3 = ($$01721|0)==(0|0);
if (!($3)) {
$$01723 = $$01721;$$022 = 0;
while(1) {
$4 = HEAP32[$$01723>>2]|0;
_String_FromReadonly($2,$4);
$5 = $2;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = $1;
$12 = $11;
HEAP32[$12>>2] = $7;
$13 = (($11) + 4)|0;
$14 = $13;
HEAP32[$14>>2] = $10;
$15 = (_String_CaselessStarts($1,$0)|0);
$16 = ($15|0)==(0);
if ($16) {
$$1 = $$022;
} else {
$17 = ($$022|0)==(0|0);
if ($17) {
$$1 = $$01723;
} else {
label = 5;
break;
}
}
$18 = ((($$01723)) + 32|0);
$$017 = HEAP32[$18>>2]|0;
$19 = ($$017|0)==(0|0);
if ($19) {
break;
} else {
$$01723 = $$017;$$022 = $$1;
}
}
if ((label|0) == 5) {
_Chat_Add1(21630,$0);
$$018 = 0;
STACKTOP = sp;return ($$018|0);
}
$20 = ($$1|0)==(0|0);
if (!($20)) {
$21 = ((($$1)) + 8|0);
$22 = HEAP8[$21>>0]|0;
$23 = ($22<<24>>24)==(0);
$24 = HEAP8[(1384580)>>0]|0;
$25 = ($24<<24>>24)!=(0);
$or$cond = $23 | $25;
if ($or$cond) {
$$018 = $$1;
STACKTOP = sp;return ($$018|0);
}
_Chat_Add1(21787,$0);
$$018 = 0;
STACKTOP = sp;return ($$018|0);
}
}
_Chat_Add1(21692,$0);
_Chat_AddRaw(21735);
$$018 = 0;
STACKTOP = sp;return ($$018|0);
}
function _Chat_Add($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Chat_AddOf($0,0);
return;
}
function _GpuInfoCommand_Execute($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 512|0;
$2 = sp + 64|0;
$3 = sp;
HEAP32[$3>>2] = $2;
$4 = ((($3)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($3)) + 6|0);
HEAP16[$5>>1] = 64;
$6 = ((($2)) + 64|0);
$7 = ((($3)) + 8|0);
HEAP32[$7>>2] = $6;
$8 = ((($3)) + 12|0);
HEAP16[$8>>1] = 0;
$9 = ((($3)) + 14|0);
HEAP16[$9>>1] = 64;
$10 = ((($2)) + 128|0);
$11 = ((($3)) + 16|0);
HEAP32[$11>>2] = $10;
$12 = ((($3)) + 20|0);
HEAP16[$12>>1] = 0;
$13 = ((($3)) + 22|0);
HEAP16[$13>>1] = 64;
$14 = ((($2)) + 192|0);
$15 = ((($3)) + 24|0);
HEAP32[$15>>2] = $14;
$16 = ((($3)) + 28|0);
HEAP16[$16>>1] = 0;
$17 = ((($3)) + 30|0);
HEAP16[$17>>1] = 64;
$18 = ((($2)) + 256|0);
$19 = ((($3)) + 32|0);
HEAP32[$19>>2] = $18;
$20 = ((($3)) + 36|0);
HEAP16[$20>>1] = 0;
$21 = ((($3)) + 38|0);
HEAP16[$21>>1] = 64;
$22 = ((($2)) + 320|0);
$23 = ((($3)) + 40|0);
HEAP32[$23>>2] = $22;
$24 = ((($3)) + 44|0);
HEAP16[$24>>1] = 0;
$25 = ((($3)) + 46|0);
HEAP16[$25>>1] = 64;
$26 = ((($2)) + 384|0);
$27 = ((($3)) + 48|0);
HEAP32[$27>>2] = $26;
$28 = ((($3)) + 52|0);
HEAP16[$28>>1] = 0;
$29 = ((($3)) + 54|0);
HEAP16[$29>>1] = 64;
_Gfx_GetApiInfo($3);
$30 = ((($3)) + 4|0);
$31 = HEAP16[$30>>1]|0;
$32 = ($31<<16>>16)==(0);
if (!($32)) {
_Chat_Add1(21994,$3);
}
$33 = ((($3)) + 12|0);
$34 = HEAP16[$33>>1]|0;
$35 = ($34<<16>>16)==(0);
if (!($35)) {
$36 = ((($3)) + 8|0);
_Chat_Add1(21994,$36);
}
$37 = ((($3)) + 20|0);
$38 = HEAP16[$37>>1]|0;
$39 = ($38<<16>>16)==(0);
if (!($39)) {
$40 = ((($3)) + 16|0);
_Chat_Add1(21994,$40);
}
$41 = ((($3)) + 28|0);
$42 = HEAP16[$41>>1]|0;
$43 = ($42<<16>>16)==(0);
if (!($43)) {
$44 = ((($3)) + 24|0);
_Chat_Add1(21994,$44);
}
$45 = ((($3)) + 36|0);
$46 = HEAP16[$45>>1]|0;
$47 = ($46<<16>>16)==(0);
if (!($47)) {
$48 = ((($3)) + 32|0);
_Chat_Add1(21994,$48);
}
$49 = ((($3)) + 44|0);
$50 = HEAP16[$49>>1]|0;
$51 = ($50<<16>>16)==(0);
if (!($51)) {
$52 = ((($3)) + 40|0);
_Chat_Add1(21994,$52);
}
$53 = ((($3)) + 52|0);
$54 = HEAP16[$53>>1]|0;
$55 = ($54<<16>>16)==(0);
if ($55) {
STACKTOP = sp;return;
}
$56 = ((($3)) + 48|0);
_Chat_Add1(21994,$56);
STACKTOP = sp;return;
}
function _Chat_SetLogName($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Chat_Add2($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Chat_Add4($0,$1,$2,0,0);
return;
}
function _Chat_Send($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
_Event_RaiseChat((1255236),$0,0);
$5 = ($1<<24>>24)==(0);
if (!($5)) {
_StringsBuffer_Add(1235876,$0);
}
$6 = (_Commands_IsCommandPrefix($0)|0);
$7 = ($6<<24>>24)==(0);
if ($7) {
$8 = HEAP32[(1384540)>>2]|0;
FUNCTION_TABLE_vi[$8 & 511]($0);
return;
} else {
_Commands_Execute($0);
return;
}
}
function _Commands_IsCommandPrefix($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if ($3) {
$$0 = 0;
return ($$0|0);
}
$4 = HEAP8[(1384580)>>0]|0;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$6 = HEAP32[$0>>2]|0;
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(47);
if ($8) {
$$0 = 1;
return ($$0|0);
}
}
$9 = (_String_CaselessStarts($0,11188)|0);
$10 = ($9|0)==(0);
if (!($10)) {
$$0 = 1;
return ($$0|0);
}
$11 = (_String_CaselessEquals($0,11196)|0);
$12 = ($11|0)!=(0);
$phitmp = $12&1;
$$0 = $phitmp;
return ($$0|0);
}
function _Commands_Execute($0) {
$0 = $0|0;
var $$ = 0, $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$1 = sp + 88|0;
$2 = sp;
$3 = sp + 80|0;
$4 = $0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $1;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = (_String_CaselessStarts($1,11172)|0);
$15 = ($14|0)==(0);
if ($15) {
$16 = (_String_CaselessStarts($1,11180)|0);
$17 = ($16|0)==(0);
$$ = $17 ? 1 : 7;
$$0 = $$;
} else {
$$0 = 8;
}
_String_UNSAFE_SubstringAt($3,$1,$$0);
$18 = $3;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = (($18) + 4)|0;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = $1;
$25 = $24;
HEAP32[$25>>2] = $20;
$26 = (($24) + 4)|0;
$27 = $26;
HEAP32[$27>>2] = $23;
$28 = ((($1)) + 4|0);
$29 = HEAP16[$28>>1]|0;
$30 = ($29<<16>>16)==(0);
if ($30) {
_Commands_PrintDefault();
STACKTOP = sp;return;
}
$31 = (_String_UNSAFE_Split($1,32,$2,10)|0);
$32 = (_Commands_GetMatch($2)|0);
$33 = ($32|0)==(0|0);
if ($33) {
STACKTOP = sp;return;
}
$34 = (($31) + -1)|0;
$35 = ((($2)) + 8|0);
$36 = ((($32)) + 4|0);
$37 = HEAP32[$36>>2]|0;
FUNCTION_TABLE_vii[$37 & 127]($35,$34);
STACKTOP = sp;return;
}
function _GZipHeader_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP8[$0>>0] = 0;
$1 = ((($0)) + 1|0);
HEAP8[$1>>0] = 0;
$2 = ((($0)) + 4|0);
HEAP32[$2>>2] = 0;
$3 = ((($0)) + 2|0);
HEAP8[$3>>0] = 0;
return;
}
function _GZipHeader_Read($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = HEAP8[$1>>0]|0;
switch ($3<<24>>24) {
case 0: {
label = 2;
break;
}
case 1: {
label = 5;
break;
}
case 2: {
label = 8;
break;
}
case 3: {
label = 11;
break;
}
case 4: {
label = 14;
break;
}
case 5: {
label = 19;
break;
}
case 6: {
label = 21;
break;
}
case 8: {
label = 23;
break;
}
case 9: {
label = 29;
break;
}
case 7: {
break;
}
default: {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
}
do {
if ((label|0) == 2) {
$4 = ((($0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (FUNCTION_TABLE_iii[$5 & 127]($0,$2)|0);
$7 = ($6|0)==(0);
if (!($7)) {
$$0 = $6;
STACKTOP = sp;return ($$0|0);
}
$8 = HEAP8[$2>>0]|0;
$9 = ($8<<24>>24)==(31);
if ($9) {
$10 = HEAP8[$1>>0]|0;
$11 = (($10) + 1)<<24>>24;
HEAP8[$1>>0] = $11;
label = 5;
break;
} else {
$$0 = -857812940;
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
do {
if ((label|0) == 5) {
$12 = ((($0)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = (FUNCTION_TABLE_iii[$13 & 127]($0,$2)|0);
$15 = ($14|0)==(0);
if (!($15)) {
$$0 = $14;
STACKTOP = sp;return ($$0|0);
}
$16 = HEAP8[$2>>0]|0;
$17 = ($16<<24>>24)==(-117);
if ($17) {
$18 = HEAP8[$1>>0]|0;
$19 = (($18) + 1)<<24>>24;
HEAP8[$1>>0] = $19;
label = 8;
break;
} else {
$$0 = -857812939;
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
do {
if ((label|0) == 8) {
$20 = ((($0)) + 4|0);
$21 = HEAP32[$20>>2]|0;
$22 = (FUNCTION_TABLE_iii[$21 & 127]($0,$2)|0);
$23 = ($22|0)==(0);
if (!($23)) {
$$0 = $22;
STACKTOP = sp;return ($$0|0);
}
$24 = HEAP8[$2>>0]|0;
$25 = ($24<<24>>24)==(8);
if ($25) {
$26 = HEAP8[$1>>0]|0;
$27 = (($26) + 1)<<24>>24;
HEAP8[$1>>0] = $27;
label = 11;
break;
} else {
$$0 = -857812938;
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
do {
if ((label|0) == 11) {
$28 = ((($0)) + 4|0);
$29 = HEAP32[$28>>2]|0;
$30 = (FUNCTION_TABLE_iii[$29 & 127]($0,$2)|0);
$31 = ($30|0)==(0);
if (!($31)) {
$$0 = $30;
STACKTOP = sp;return ($$0|0);
}
$32 = ((($1)) + 4|0);
$33 = HEAP32[$32>>2]|0;
$34 = $33 & 4;
$35 = ($34|0)==(0);
if ($35) {
$36 = HEAP8[$1>>0]|0;
$37 = (($36) + 1)<<24>>24;
HEAP8[$1>>0] = $37;
label = 14;
break;
} else {
$$0 = -857812937;
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
if ((label|0) == 14) {
$38 = ((($1)) + 2|0);
$39 = HEAP8[$38>>0]|0;
$40 = ($39&255)<(4);
L37: do {
if ($40) {
$41 = ((($0)) + 4|0);
while(1) {
$42 = HEAP32[$41>>2]|0;
$43 = (FUNCTION_TABLE_iii[$42 & 127]($0,$2)|0);
$44 = ($43|0)==(0);
if (!($44)) {
$$0 = $43;
break;
}
$45 = HEAP8[$38>>0]|0;
$46 = (($45) + 1)<<24>>24;
HEAP8[$38>>0] = $46;
$47 = ($46&255)<(4);
if (!($47)) {
break L37;
}
}
STACKTOP = sp;return ($$0|0);
}
} while(0);
$48 = HEAP8[$1>>0]|0;
$49 = (($48) + 1)<<24>>24;
HEAP8[$1>>0] = $49;
HEAP8[$38>>0] = 0;
label = 19;
}
do {
if ((label|0) == 19) {
$50 = ((($0)) + 4|0);
$51 = HEAP32[$50>>2]|0;
$52 = (FUNCTION_TABLE_iii[$51 & 127]($0,$2)|0);
$53 = ($52|0)==(0);
if ($53) {
$54 = HEAP8[$1>>0]|0;
$55 = (($54) + 1)<<24>>24;
HEAP8[$1>>0] = $55;
label = 21;
break;
} else {
$$0 = $52;
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
do {
if ((label|0) == 21) {
$56 = ((($0)) + 4|0);
$57 = HEAP32[$56>>2]|0;
$58 = (FUNCTION_TABLE_iii[$57 & 127]($0,$2)|0);
$59 = ($58|0)==(0);
if ($59) {
$60 = HEAP8[$1>>0]|0;
$61 = (($60) + 1)<<24>>24;
HEAP8[$1>>0] = $61;
label = 23;
break;
} else {
$$0 = $58;
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
if ((label|0) == 23) {
$62 = ((($1)) + 4|0);
$63 = HEAP32[$62>>2]|0;
$64 = $63 & 8;
$65 = ($64|0)==(0);
L56: do {
if (!($65)) {
$66 = ((($0)) + 4|0);
$67 = HEAP32[$66>>2]|0;
$68 = (FUNCTION_TABLE_iii[$67 & 127]($0,$2)|0);
$69 = ($68|0)==(0);
if (!($69)) {
$$0 = $68;
STACKTOP = sp;return ($$0|0);
}
while(1) {
$73 = HEAP8[$2>>0]|0;
$74 = ($73<<24>>24)==(0);
if ($74) {
break L56;
}
$70 = HEAP32[$66>>2]|0;
$71 = (FUNCTION_TABLE_iii[$70 & 127]($0,$2)|0);
$72 = ($71|0)==(0);
if (!($72)) {
$$0 = $71;
break;
}
}
STACKTOP = sp;return ($$0|0);
}
} while(0);
$75 = HEAP8[$1>>0]|0;
$76 = (($75) + 1)<<24>>24;
HEAP8[$1>>0] = $76;
label = 29;
}
if ((label|0) == 29) {
$77 = ((($1)) + 4|0);
$78 = HEAP32[$77>>2]|0;
$79 = $78 & 16;
$80 = ($79|0)==(0);
L68: do {
if (!($80)) {
$81 = ((($0)) + 4|0);
$82 = HEAP32[$81>>2]|0;
$83 = (FUNCTION_TABLE_iii[$82 & 127]($0,$2)|0);
$84 = ($83|0)==(0);
if (!($84)) {
$$0 = $83;
STACKTOP = sp;return ($$0|0);
}
while(1) {
$88 = HEAP8[$2>>0]|0;
$89 = ($88<<24>>24)==(0);
if ($89) {
break L68;
}
$85 = HEAP32[$81>>2]|0;
$86 = (FUNCTION_TABLE_iii[$85 & 127]($0,$2)|0);
$87 = ($86|0)==(0);
if (!($87)) {
$$0 = $86;
break;
}
}
STACKTOP = sp;return ($$0|0);
}
} while(0);
$90 = HEAP8[$1>>0]|0;
$91 = (($90) + 1)<<24>>24;
HEAP8[$1>>0] = $91;
}
$92 = ((($1)) + 4|0);
$93 = HEAP32[$92>>2]|0;
$94 = $93 & 2;
$95 = ($94|0)==(0);
L79: do {
if (!($95)) {
$96 = ((($1)) + 2|0);
$97 = HEAP8[$96>>0]|0;
$98 = ($97&255)<(2);
if ($98) {
$99 = ((($0)) + 4|0);
while(1) {
$100 = HEAP32[$99>>2]|0;
$101 = (FUNCTION_TABLE_iii[$100 & 127]($0,$2)|0);
$102 = ($101|0)==(0);
if (!($102)) {
$$0 = $101;
break;
}
$103 = HEAP8[$96>>0]|0;
$104 = (($103) + 1)<<24>>24;
HEAP8[$96>>0] = $104;
$105 = ($104&255)<(2);
if (!($105)) {
break L79;
}
}
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
$106 = HEAP8[$1>>0]|0;
$107 = (($106) + 1)<<24>>24;
HEAP8[$1>>0] = $107;
$108 = ((($1)) + 2|0);
HEAP8[$108>>0] = 0;
$109 = ((($1)) + 1|0);
HEAP8[$109>>0] = 1;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _ZLibHeader_Init($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP8[$0>>0] = 0;
$1 = ((($0)) + 1|0);
HEAP8[$1>>0] = 0;
return;
}
function _ZLibHeader_Read($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = HEAP8[$1>>0]|0;
switch ($3<<24>>24) {
case 0: {
$4 = ((($0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (FUNCTION_TABLE_iii[$5 & 127]($0,$2)|0);
$7 = ($6|0)==(0);
if ($7) {
$8 = HEAP8[$2>>0]|0;
$9 = $8 & 15;
$10 = ($9<<24>>24)==(8);
if ($10) {
$11 = ($8<<24>>24)<(0);
if ($11) {
$$0 = -857812935;
} else {
$12 = HEAP8[$1>>0]|0;
$13 = (($12) + 1)<<24>>24;
HEAP8[$1>>0] = $13;
label = 6;
}
} else {
$$0 = -857812936;
}
} else {
$$0 = $6;
}
break;
}
case 1: {
label = 6;
break;
}
default: {
$$0 = 0;
}
}
if ((label|0) == 6) {
$14 = ((($0)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = (FUNCTION_TABLE_iii[$15 & 127]($0,$2)|0);
$17 = ($16|0)==(0);
if ($17) {
$18 = HEAP8[$2>>0]|0;
$19 = $18 & 32;
$20 = ($19<<24>>24)==(0);
if ($20) {
$21 = HEAP8[$1>>0]|0;
$22 = (($21) + 1)<<24>>24;
HEAP8[$1>>0] = $22;
$23 = ((($1)) + 1|0);
HEAP8[$23>>0] = 1;
$$0 = 0;
} else {
$$0 = -857812934;
}
} else {
$$0 = $16;
}
}
STACKTOP = sp;return ($$0|0);
}
function _Inflate_Init($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP8[$0>>0] = 0;
$2 = ((($0)) + 1|0);
HEAP8[$2>>0] = 0;
$3 = ((($0)) + 4|0);
HEAP32[$3>>2] = 0;
$4 = ((($0)) + 8|0);
HEAP32[$4>>2] = 0;
$5 = ((($0)) + 64|0);
$6 = ((($0)) + 12|0);
HEAP32[$6>>2] = $5;
$7 = ((($0)) + 16|0);
HEAP32[$7>>2] = 0;
$8 = ((($0)) + 20|0);
HEAP32[$8>>2] = 0;
$9 = ((($0)) + 24|0);
HEAP32[$9>>2] = 0;
$10 = ((($0)) + 28|0);
HEAP32[$10>>2] = $1;
$11 = ((($0)) + 36|0);
HEAP32[$11>>2] = 0;
return;
}
function _Inflate_Process($0) {
$0 = $0|0;
var $$ = 0, $$0352 = 0, $$0352$be = 0, $$0354 = 0, $$0354$be = 0, $$0460 = 0, $$1353 = 0, $$1355 = 0, $$1426 = 0, $$358 = 0, $$lcssa = 0, $$lcssa379 = 0, $$lcssa383 = 0, $$lcssa387 = 0, $$lcssa391 = 0, $$lcssa395 = 0, $$lcssa399 = 0, $$lcssa403 = 0, $$lcssa412 = 0, $$lcssa416 = 0;
var $$pr = 0, $$pr504 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0;
var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0;
var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0;
var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0;
var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0;
var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0;
var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0;
var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0;
var $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0;
var $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0;
var $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0;
var $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0;
var $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0;
var $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0;
var $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0;
var $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0;
var $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0;
var $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0;
var $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0;
var $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0;
var $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0;
var $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0;
var $494 = 0, $495 = 0, $496 = 0, $497 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0;
var $spec$select = 0, $spec$select363 = 0, $spec$select364 = 0, $spec$select365 = 0, $trunc = 0, $trunc$clear = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
$2 = ((($0)) + 8|0);
$3 = ((($0)) + 24|0);
$4 = ((($0)) + 32|0);
$5 = ((($0)) + 8|0);
$6 = ((($0)) + 8|0);
$7 = ((($0)) + 32|0);
$8 = ((($0)) + 40|0);
$9 = ((($0)) + 44|0);
$10 = ((($0)) + 48|0);
$11 = ((($0)) + 32|0);
$12 = ((($0)) + 52|0);
$13 = ((($0)) + 24|0);
$14 = ((($0)) + 56|0);
$15 = ((($0)) + 8|0);
$16 = ((($0)) + 10272|0);
$17 = ((($0)) + 60|0);
$18 = ((($0)) + 60|0);
$19 = ((($0)) + 8|0);
$20 = ((($0)) + 24|0);
$21 = ((($0)) + 4|0);
$22 = ((($0)) + 1|0);
$23 = ((($0)) + 16|0);
$24 = ((($0)) + 12|0);
$25 = ((($0)) + 4|0);
$26 = ((($0)) + 4|0);
$27 = ((($0)) + 16|0);
$28 = ((($0)) + 12|0);
$29 = ((($0)) + 4|0);
$30 = ((($0)) + 16|0);
$31 = ((($0)) + 4|0);
$32 = ((($0)) + 20|0);
$33 = ((($0)) + 36|0);
$34 = ((($0)) + 4|0);
$35 = ((($0)) + 44|0);
$36 = ((($0)) + 48|0);
$37 = ((($0)) + 40|0);
$38 = ((($0)) + 32|0);
$39 = ((($0)) + 16|0);
$40 = ((($0)) + 12|0);
$41 = ((($0)) + 4|0);
$42 = ((($0)) + 8|0);
$43 = ((($0)) + 4|0);
$44 = ((($0)) + 16|0);
$45 = ((($0)) + 12|0);
$46 = ((($0)) + 4|0);
$47 = ((($0)) + 8576|0);
$48 = ((($0)) + 44|0);
$49 = ((($0)) + 48|0);
$50 = ((($0)) + 32|0);
$51 = ((($0)) + 8|0);
$52 = ((($0)) + 8|0);
$53 = ((($0)) + 8|0);
$54 = ((($0)) + 8576|0);
$55 = ((($0)) + 4|0);
$56 = ((($0)) + 16|0);
$57 = ((($0)) + 12|0);
$58 = ((($0)) + 4|0);
$59 = ((($0)) + 4|0);
$60 = ((($0)) + 16|0);
$61 = ((($0)) + 12|0);
$62 = ((($0)) + 4|0);
$63 = ((($0)) + 56|0);
$64 = ((($0)) + 60|0);
$65 = ((($0)) + 36|0);
$66 = ((($0)) + 16|0);
$67 = ((($0)) + 8576|0);
$68 = ((($0)) + 10272|0);
$69 = ((($0)) + 16|0);
$70 = ((($0)) + 32|0);
$71 = ((($0)) + 24|0);
$72 = ((($0)) + 8576|0);
$73 = ((($0)) + 8256|0);
$74 = ((($0)) + 16|0);
$75 = ((($0)) + 4|0);
$76 = ((($0)) + 32|0);
$77 = ((($0)) + 16|0);
$78 = ((($0)) + 12|0);
$79 = ((($0)) + 4|0);
$80 = ((($0)) + 4|0);
$81 = ((($0)) + 16|0);
$82 = ((($0)) + 12|0);
$83 = ((($0)) + 4|0);
$84 = ((($0)) + 4|0);
$85 = ((($0)) + 16|0);
$86 = ((($0)) + 12|0);
$87 = ((($0)) + 4|0);
$88 = ((($0)) + 20|0);
$89 = ((($0)) + 24|0);
$90 = ((($0)) + 24|0);
$91 = ((($0)) + 32|0);
$92 = ((($0)) + 24|0);
$93 = ((($0)) + 8576|0);
$94 = ((($0)) + 8256|0);
$95 = ((($0)) + 10272|0);
$96 = ((($0)) + 52|0);
$97 = ((($0)) + 20|0);
$98 = ((($0)) + 36|0);
$99 = ((($0)) + 1|0);
$100 = ((($0)) + 56|0);
$101 = ((($0)) + 16|0);
$102 = ((($0)) + 20|0);
$103 = ((($0)) + 12|0);
$104 = ((($0)) + 36|0);
$105 = ((($0)) + 1|0);
$106 = ((($0)) + 11968|0);
$$0352 = 0;$$0354 = 0;
L1: while(1) {
$107 = HEAP8[$0>>0]|0;
L3: do {
switch ($107<<24>>24) {
case 13: {
label = 107;
break L1;
break;
}
case 0: {
$108 = HEAP32[$1>>2]|0;
$109 = ($108>>>0)<(3);
if ($109) {
$110 = HEAP32[$23>>2]|0;
$111 = ($110|0)==(0);
if ($111) {
label = 107;
break L1;
}
$112 = (($110) + -1)|0;
HEAP32[$23>>2] = $112;
$113 = HEAP32[$24>>2]|0;
$114 = ((($113)) + 1|0);
HEAP32[$24>>2] = $114;
$115 = HEAP8[$113>>0]|0;
$116 = $115&255;
$117 = $116 << $108;
$118 = HEAP32[$25>>2]|0;
$119 = $117 | $118;
HEAP32[$25>>2] = $119;
$120 = (($108) + 8)|0;
HEAP32[$1>>2] = $120;
$$lcssa416 = $120;
} else {
$$lcssa416 = $108;
}
$121 = HEAP32[$21>>2]|0;
$122 = (3)?($121 >>> 3):($121);
HEAP32[$21>>2] = $122;
$123 = (($$lcssa416) + -3)|0;
HEAP32[$1>>2] = $123;
$124 = $121 & 1;
$125 = $124&255;
HEAP8[$22>>0] = $125;
$126 = (1)?($121 >>> 1):($121);
$trunc = $126&255;
$trunc$clear = $trunc & 3;
switch ($trunc$clear<<24>>24) {
case 0: {
$127 = $123 & 7;
$128 = ($127)?($122 >>> $127):($122);
HEAP32[$21>>2] = $128;
$129 = (($123) - ($127))|0;
HEAP32[$1>>2] = $129;
HEAP8[$0>>0] = 1;
$$0352$be = $$0352;$$0354$be = $$0354;
break L3;
break;
}
case 1: {
_Huffman_Build($67,560,288);
_Huffman_Build($68,848,32);
$130 = HEAP32[$69>>2]|0;
$131 = ($130>>>0)>(9);
if ($131) {
$132 = HEAP32[$90>>2]|0;
$133 = ($132>>>0)>(257);
$spec$select363 = $133 ? 12 : 7;
$134 = $spec$select363;
} else {
$134 = 7;
}
HEAP8[$0>>0] = $134;
$$0352$be = $$0352;$$0354$be = $$0354;
break L3;
break;
}
case 2: {
HEAP8[$0>>0] = 3;
$$0352$be = $$0352;$$0354$be = $$0354;
break L3;
break;
}
case 3: {
_Logger_Abort(22016);
$$0352$be = $$0352;$$0354$be = $$0354;
break L3;
break;
}
default: {
label = 106;
break L1;
}
}
break;
}
case 1: {
$135 = HEAP32[$2>>2]|0;
$136 = ($135>>>0)<(32);
if ($136) {
$145 = $135;
while(1) {
$137 = HEAP32[$27>>2]|0;
$138 = ($137|0)==(0);
if ($138) {
label = 107;
break L1;
}
$139 = (($137) + -1)|0;
HEAP32[$27>>2] = $139;
$140 = HEAP32[$28>>2]|0;
$141 = ((($140)) + 1|0);
HEAP32[$28>>2] = $141;
$142 = HEAP8[$140>>0]|0;
$143 = $142&255;
$144 = $143 << $145;
$146 = HEAP32[$29>>2]|0;
$147 = $144 | $146;
HEAP32[$29>>2] = $147;
$148 = (($145) + 8)|0;
HEAP32[$2>>2] = $148;
$149 = ($148>>>0)<(32);
if ($149) {
$145 = $148;
} else {
$$lcssa412 = $148;
break;
}
}
} else {
$$lcssa412 = $135;
}
$150 = HEAP32[$26>>2]|0;
$151 = $150 & 65535;
$152 = (16)?($150 >>> 16):($150);
HEAP32[$26>>2] = 0;
$153 = (($$lcssa412) + -32)|0;
HEAP32[$2>>2] = $153;
$154 = $152 ^ 65535;
$155 = ($151|0)==($154|0);
if (!($155)) {
_Logger_Abort(22045);
}
HEAP32[$70>>2] = $151;
HEAP8[$0>>0] = 2;
label = 20;
break;
}
case 2: {
label = 20;
break;
}
case 3: {
$222 = HEAP32[$6>>2]|0;
$223 = ($222>>>0)<(14);
if ($223) {
$232 = $222;
while(1) {
$224 = HEAP32[$39>>2]|0;
$225 = ($224|0)==(0);
if ($225) {
label = 107;
break L1;
}
$226 = (($224) + -1)|0;
HEAP32[$39>>2] = $226;
$227 = HEAP32[$40>>2]|0;
$228 = ((($227)) + 1|0);
HEAP32[$40>>2] = $228;
$229 = HEAP8[$227>>0]|0;
$230 = $229&255;
$231 = $230 << $232;
$233 = HEAP32[$41>>2]|0;
$234 = $231 | $233;
HEAP32[$41>>2] = $234;
$235 = (($232) + 8)|0;
HEAP32[$6>>2] = $235;
$236 = ($235>>>0)<(14);
if ($236) {
$232 = $235;
} else {
$$lcssa395 = $235;
break;
}
}
} else {
$$lcssa395 = $222;
}
$237 = HEAP32[$34>>2]|0;
$238 = $237 & 31;
$239 = (($238) + 257)|0;
HEAP32[$35>>2] = $239;
$240 = (5)?($237 >>> 5):($237);
$241 = $240 & 31;
$242 = (($241) + 1)|0;
HEAP32[$36>>2] = $242;
$243 = (10)?($237 >>> 10):($237);
$244 = $243 & 15;
$245 = (($244) + 4)|0;
HEAP32[$37>>2] = $245;
$246 = (14)?($237 >>> 14):($237);
HEAP32[$34>>2] = $246;
$247 = (($$lcssa395) + -14)|0;
HEAP32[$6>>2] = $247;
HEAP32[$38>>2] = 0;
HEAP8[$0>>0] = 4;
label = 39;
break;
}
case 4: {
label = 39;
break;
}
case 5: {
label = 49;
break;
}
case 6: {
$308 = HEAP32[$12>>2]|0;
switch ($308|0) {
case 16: {
$309 = HEAP32[$51>>2]|0;
$310 = ($309>>>0)<(2);
if ($310) {
$311 = HEAP32[$77>>2]|0;
$312 = ($311|0)==(0);
if ($312) {
label = 107;
break L1;
}
$313 = (($311) + -1)|0;
HEAP32[$77>>2] = $313;
$314 = HEAP32[$78>>2]|0;
$315 = ((($314)) + 1|0);
HEAP32[$78>>2] = $315;
$316 = HEAP8[$314>>0]|0;
$317 = $316&255;
$318 = $317 << $309;
$319 = HEAP32[$79>>2]|0;
$320 = $318 | $319;
HEAP32[$79>>2] = $320;
$321 = (($309) + 8)|0;
HEAP32[$51>>2] = $321;
$$lcssa391 = $321;
} else {
$$lcssa391 = $309;
}
$322 = HEAP32[$75>>2]|0;
$323 = $322 & 3;
$324 = (2)?($322 >>> 2):($322);
HEAP32[$75>>2] = $324;
$325 = (($$lcssa391) + -2)|0;
HEAP32[$51>>2] = $325;
$326 = HEAP32[$76>>2]|0;
$327 = ($326|0)==(0);
if ($327) {
_Logger_Abort(22091);
}
$328 = (($323) + 3)|0;
$329 = HEAP32[$76>>2]|0;
$330 = (($329) + -1)|0;
$331 = (((($0)) + 8256|0) + ($330)|0);
$332 = HEAP8[$331>>0]|0;
$$1353 = $328;$$1355 = $332;
break;
}
case 17: {
$333 = HEAP32[$52>>2]|0;
$334 = ($333>>>0)<(3);
if ($334) {
$335 = HEAP32[$81>>2]|0;
$336 = ($335|0)==(0);
if ($336) {
label = 107;
break L1;
}
$337 = (($335) + -1)|0;
HEAP32[$81>>2] = $337;
$338 = HEAP32[$82>>2]|0;
$339 = ((($338)) + 1|0);
HEAP32[$82>>2] = $339;
$340 = HEAP8[$338>>0]|0;
$341 = $340&255;
$342 = $341 << $333;
$343 = HEAP32[$83>>2]|0;
$344 = $342 | $343;
HEAP32[$83>>2] = $344;
$345 = (($333) + 8)|0;
HEAP32[$52>>2] = $345;
$$lcssa387 = $345;
} else {
$$lcssa387 = $333;
}
$346 = HEAP32[$80>>2]|0;
$347 = $346 & 7;
$348 = (3)?($346 >>> 3):($346);
HEAP32[$80>>2] = $348;
$349 = (($$lcssa387) + -3)|0;
HEAP32[$52>>2] = $349;
$350 = (($347) + 3)|0;
$$1353 = $350;$$1355 = 0;
break;
}
case 18: {
$351 = HEAP32[$53>>2]|0;
$352 = ($351>>>0)<(7);
if ($352) {
$353 = HEAP32[$85>>2]|0;
$354 = ($353|0)==(0);
if ($354) {
label = 107;
break L1;
}
$355 = (($353) + -1)|0;
HEAP32[$85>>2] = $355;
$356 = HEAP32[$86>>2]|0;
$357 = ((($356)) + 1|0);
HEAP32[$86>>2] = $357;
$358 = HEAP8[$356>>0]|0;
$359 = $358&255;
$360 = $359 << $351;
$361 = HEAP32[$87>>2]|0;
$362 = $360 | $361;
HEAP32[$87>>2] = $362;
$363 = (($351) + 8)|0;
HEAP32[$53>>2] = $363;
$$lcssa383 = $363;
} else {
$$lcssa383 = $351;
}
$364 = HEAP32[$84>>2]|0;
$365 = $364 & 127;
$366 = (7)?($364 >>> 7):($364);
HEAP32[$84>>2] = $366;
$367 = (($$lcssa383) + -7)|0;
HEAP32[$53>>2] = $367;
$368 = (($365) + 11)|0;
$$1353 = $368;$$1355 = 0;
break;
}
default: {
$$1353 = $$0352;$$1355 = $$0354;
}
}
$369 = HEAP32[$48>>2]|0;
$370 = HEAP32[$49>>2]|0;
$371 = (($370) + ($369))|0;
$372 = HEAP32[$50>>2]|0;
$373 = (($372) + ($$1353))|0;
$374 = ($373>>>0)>($371>>>0);
if ($374) {
_Logger_Abort(22130);
}
$375 = HEAP32[$50>>2]|0;
$376 = (((($0)) + 8256|0) + ($375)|0);
_Mem_Set($376,$$1355,$$1353);
$377 = HEAP32[$50>>2]|0;
$378 = (($377) + ($$1353))|0;
HEAP32[$50>>2] = $378;
HEAP8[$0>>0] = 5;
$$0352$be = $$1353;$$0354$be = $$1355;
break;
}
case 7: {
$379 = HEAP32[$13>>2]|0;
$380 = ($379|0)==(0);
if ($380) {
label = 107;
break L1;
}
$381 = (_Huffman_Decode($0,$54)|0);
$382 = ($381|0)<(256);
if ($382) {
$383 = ($381|0)==(-1);
if ($383) {
label = 107;
break L1;
}
$384 = $381&255;
$385 = HEAP32[$97>>2]|0;
HEAP8[$385>>0] = $384;
$386 = HEAP32[$98>>2]|0;
$387 = (((($0)) + 11968|0) + ($386)|0);
HEAP8[$387>>0] = $384;
$388 = HEAP32[$97>>2]|0;
$389 = ((($388)) + 1|0);
HEAP32[$97>>2] = $389;
$390 = HEAP32[$13>>2]|0;
$391 = (($390) + -1)|0;
HEAP32[$13>>2] = $391;
$392 = HEAP32[$98>>2]|0;
$393 = (($392) + 1)|0;
$394 = $393 & 32767;
HEAP32[$98>>2] = $394;
$$0352$be = $$0352;$$0354$be = $$0354;
break L3;
}
$395 = ($381|0)==(256);
if ($395) {
$396 = HEAP8[$99>>0]|0;
$397 = ($396<<24>>24)==(0);
$398 = $397 ? 0 : 13;
HEAP8[$0>>0] = $398;
$$0352$be = $$0352;$$0354$be = $$0354;
break L3;
} else {
$399 = (($381) + -257)|0;
HEAP32[$100>>2] = $399;
HEAP8[$0>>0] = 8;
label = 84;
break L3;
}
break;
}
case 8: {
label = 84;
break;
}
case 9: {
label = 89;
break;
}
case 10: {
label = 91;
break;
}
case 11: {
label = 96;
break;
}
case 12: {
_Inflate_InflateFast($0);
$491 = HEAP8[$0>>0]|0;
$492 = ($491<<24>>24)==(12);
if ($492) {
$493 = HEAP32[$66>>2]|0;
$494 = ($493>>>0)>(9);
if ($494) {
$495 = HEAP32[$89>>2]|0;
$496 = ($495>>>0)>(257);
$spec$select365 = $496 ? 12 : 7;
$497 = $spec$select365;
} else {
$497 = 7;
}
HEAP8[$0>>0] = $497;
$$0352$be = $$0352;$$0354$be = $$0354;
} else {
$$0352$be = $$0352;$$0354$be = $$0354;
}
break;
}
default: {
$$0352$be = $$0352;$$0354$be = $$0354;
}
}
} while(0);
if ((label|0) == 20) {
label = 0;
$156 = HEAP32[$5>>2]|0;
$157 = ($156|0)==(0);
L74: do {
if (!($157)) {
while(1) {
$158 = HEAP32[$3>>2]|0;
$159 = ($158|0)==(0);
if ($159) {
break L74;
}
$160 = HEAP32[$4>>2]|0;
$161 = ($160|0)==(0);
if ($161) {
break L74;
}
$162 = HEAP32[$31>>2]|0;
$163 = $162&255;
$164 = HEAP32[$32>>2]|0;
HEAP8[$164>>0] = $163;
$165 = HEAP32[$31>>2]|0;
$166 = (8)?($165 >>> 8):($165);
HEAP32[$31>>2] = $166;
$167 = HEAP32[$5>>2]|0;
$168 = (($167) + -8)|0;
HEAP32[$5>>2] = $168;
$169 = HEAP32[$32>>2]|0;
$170 = HEAP8[$169>>0]|0;
$171 = HEAP32[$33>>2]|0;
$172 = (((($0)) + 11968|0) + ($171)|0);
HEAP8[$172>>0] = $170;
$173 = HEAP32[$33>>2]|0;
$174 = (($173) + 1)|0;
$175 = $174 & 32767;
HEAP32[$33>>2] = $175;
$176 = HEAP32[$32>>2]|0;
$177 = ((($176)) + 1|0);
HEAP32[$32>>2] = $177;
$178 = HEAP32[$3>>2]|0;
$179 = (($178) + -1)|0;
HEAP32[$3>>2] = $179;
$180 = HEAP32[$4>>2]|0;
$181 = (($180) + -1)|0;
HEAP32[$4>>2] = $181;
$182 = HEAP32[$5>>2]|0;
$183 = ($182|0)==(0);
if ($183) {
break;
}
}
}
} while(0);
$184 = HEAP32[$30>>2]|0;
$185 = ($184|0)==(0);
if ($185) {
label = 107;
break;
}
$186 = HEAP32[$71>>2]|0;
$187 = ($186|0)==(0);
if ($187) {
label = 107;
break;
}
$188 = ($184>>>0)<($186>>>0);
$$ = $188 ? $184 : $186;
$189 = HEAP32[$91>>2]|0;
$190 = ($$>>>0)<($189>>>0);
$191 = $190 ? $$ : $189;
$192 = ($191|0)==(0);
if ($192) {
$217 = $189;
} else {
$193 = HEAP32[$102>>2]|0;
$194 = HEAP32[$103>>2]|0;
_Mem_Copy($193,$194,$191);
$195 = HEAP32[$104>>2]|0;
$196 = (32768 - ($195))|0;
$197 = ($196>>>0)<($191>>>0);
$198 = $197 ? $196 : $191;
$199 = (((($0)) + 11968|0) + ($195)|0);
$200 = HEAP32[$102>>2]|0;
_Mem_Copy($199,$200,$198);
if ($197) {
$201 = (($191) - ($198))|0;
$202 = HEAP32[$102>>2]|0;
$203 = (($202) + ($198)|0);
_Mem_Copy($106,$203,$201);
}
$204 = HEAP32[$104>>2]|0;
$205 = (($204) + ($191))|0;
$206 = $205 & 32767;
HEAP32[$104>>2] = $206;
$207 = HEAP32[$102>>2]|0;
$208 = (($207) + ($191)|0);
HEAP32[$102>>2] = $208;
$209 = HEAP32[$71>>2]|0;
$210 = (($209) - ($191))|0;
HEAP32[$71>>2] = $210;
$211 = HEAP32[$91>>2]|0;
$212 = (($211) - ($191))|0;
HEAP32[$91>>2] = $212;
$213 = HEAP32[$103>>2]|0;
$214 = (($213) + ($191)|0);
HEAP32[$103>>2] = $214;
$215 = HEAP32[$30>>2]|0;
$216 = (($215) - ($191))|0;
HEAP32[$30>>2] = $216;
$$pr = HEAP32[$91>>2]|0;
$217 = $$pr;
}
$218 = ($217|0)==(0);
if ($218) {
$219 = HEAP8[$105>>0]|0;
$220 = ($219<<24>>24)==(0);
$221 = $220 ? 0 : 13;
HEAP8[$0>>0] = $221;
$$0352$be = $$0352;$$0354$be = $$0354;
} else {
$$0352$be = $$0352;$$0354$be = $$0354;
}
}
else if ((label|0) == 39) {
label = 0;
$248 = HEAP32[$7>>2]|0;
$249 = HEAP32[$8>>2]|0;
$250 = ($248>>>0)<($249>>>0);
if ($250) {
$$pr504 = HEAP32[$42>>2]|0;
$251 = $$pr504;$265 = $248;
while(1) {
$252 = ($251>>>0)<(3);
if ($252) {
$253 = HEAP32[$44>>2]|0;
$254 = ($253|0)==(0);
if ($254) {
label = 107;
break L1;
}
$255 = (($253) + -1)|0;
HEAP32[$44>>2] = $255;
$256 = HEAP32[$45>>2]|0;
$257 = ((($256)) + 1|0);
HEAP32[$45>>2] = $257;
$258 = HEAP8[$256>>0]|0;
$259 = $258&255;
$260 = $259 << $251;
$261 = HEAP32[$46>>2]|0;
$262 = $260 | $261;
HEAP32[$46>>2] = $262;
$263 = (($251) + 8)|0;
HEAP32[$42>>2] = $263;
$$lcssa399 = $263;
} else {
$$lcssa399 = $251;
}
$264 = (880 + ($265)|0);
$266 = HEAP8[$264>>0]|0;
$267 = $266&255;
$268 = HEAP32[$43>>2]|0;
$269 = $268 & 7;
$270 = $269&255;
$271 = (((($0)) + 8256|0) + ($267)|0);
HEAP8[$271>>0] = $270;
$272 = (3)?($268 >>> 3):($268);
HEAP32[$43>>2] = $272;
$273 = (($$lcssa399) + -3)|0;
HEAP32[$42>>2] = $273;
$274 = (($265) + 1)|0;
HEAP32[$7>>2] = $274;
$275 = HEAP32[$8>>2]|0;
$276 = ($274>>>0)<($275>>>0);
if ($276) {
$251 = $273;$265 = $274;
} else {
$$lcssa403 = $275;
break;
}
}
} else {
$$lcssa403 = $249;
}
$277 = ($$lcssa403>>>0)<(19);
if ($277) {
$$0460 = $$lcssa403;
while(1) {
$278 = (880 + ($$0460)|0);
$279 = HEAP8[$278>>0]|0;
$280 = $279&255;
$281 = (((($0)) + 8256|0) + ($280)|0);
HEAP8[$281>>0] = 0;
$282 = (($$0460) + 1)|0;
$exitcond = ($282|0)==(19);
if ($exitcond) {
break;
} else {
$$0460 = $282;
}
}
}
HEAP32[$7>>2] = 0;
HEAP8[$0>>0] = 5;
_Huffman_Build($72,$73,19);
label = 49;
}
else if ((label|0) == 84) {
label = 0;
$400 = HEAP32[$14>>2]|0;
$401 = (912 + ($400)|0);
$402 = HEAP8[$401>>0]|0;
$403 = $402&255;
$404 = HEAP32[$15>>2]|0;
$405 = ($404>>>0)<($403>>>0);
if ($405) {
$414 = $404;
while(1) {
$406 = HEAP32[$56>>2]|0;
$407 = ($406|0)==(0);
if ($407) {
label = 107;
break L1;
}
$408 = (($406) + -1)|0;
HEAP32[$56>>2] = $408;
$409 = HEAP32[$57>>2]|0;
$410 = ((($409)) + 1|0);
HEAP32[$57>>2] = $410;
$411 = HEAP8[$409>>0]|0;
$412 = $411&255;
$413 = $412 << $414;
$415 = HEAP32[$58>>2]|0;
$416 = $413 | $415;
HEAP32[$58>>2] = $416;
$417 = (($414) + 8)|0;
HEAP32[$15>>2] = $417;
$418 = ($417>>>0)<($403>>>0);
if ($418) {
$414 = $417;
} else {
$$lcssa = $417;
break;
}
}
} else {
$$lcssa = $404;
}
$419 = (944 + ($400<<1)|0);
$420 = HEAP16[$419>>1]|0;
$421 = $420&65535;
$422 = HEAP32[$55>>2]|0;
$423 = 1 << $403;
$424 = (($423) + -1)|0;
$425 = $422 & $424;
$426 = (($425) + ($421))|0;
HEAP32[$14>>2] = $426;
$427 = ($403)?($422 >>> $403):($422);
HEAP32[$55>>2] = $427;
$428 = (($$lcssa) - ($403))|0;
HEAP32[$15>>2] = $428;
HEAP8[$0>>0] = 9;
label = 89;
}
if ((label|0) == 49) {
label = 0;
$283 = HEAP32[$9>>2]|0;
$284 = HEAP32[$10>>2]|0;
$285 = (($284) + ($283))|0;
$286 = HEAP32[$11>>2]|0;
$287 = ($286>>>0)<($285>>>0);
L114: do {
if ($287) {
while(1) {
$288 = (_Huffman_Decode($0,$47)|0);
$289 = ($288|0)<(16);
if (!($289)) {
break;
}
$290 = ($288|0)==(-1);
if ($290) {
label = 107;
break L1;
}
$291 = $288&255;
$292 = HEAP32[$11>>2]|0;
$293 = (((($0)) + 8256|0) + ($292)|0);
HEAP8[$293>>0] = $291;
$294 = HEAP32[$11>>2]|0;
$295 = (($294) + 1)|0;
HEAP32[$11>>2] = $295;
$296 = ($295>>>0)<($285>>>0);
if (!($296)) {
break L114;
}
}
HEAP32[$96>>2] = $288;
HEAP8[$0>>0] = 6;
}
} while(0);
$297 = HEAP32[$11>>2]|0;
$298 = ($297|0)==($285|0);
if ($298) {
HEAP32[$11>>2] = 0;
$299 = HEAP32[$74>>2]|0;
$300 = ($299>>>0)>(9);
if ($300) {
$301 = HEAP32[$92>>2]|0;
$302 = ($301>>>0)>(257);
$spec$select364 = $302 ? 12 : 7;
$303 = $spec$select364;
} else {
$303 = 7;
}
HEAP8[$0>>0] = $303;
$304 = HEAP32[$9>>2]|0;
_Huffman_Build($93,$94,$304);
$305 = HEAP32[$9>>2]|0;
$306 = (((($0)) + 8256|0) + ($305)|0);
$307 = HEAP32[$10>>2]|0;
_Huffman_Build($95,$306,$307);
$$0352$be = $$0352;$$0354$be = $$0354;
} else {
$$0352$be = $$0352;$$0354$be = $$0354;
}
}
else if ((label|0) == 89) {
label = 0;
$429 = (_Huffman_Decode($0,$16)|0);
HEAP32[$17>>2] = $429;
$430 = ($429|0)==(-1);
if ($430) {
label = 107;
break;
}
HEAP8[$0>>0] = 10;
label = 91;
}
if ((label|0) == 91) {
label = 0;
$431 = HEAP32[$18>>2]|0;
$432 = (1008 + ($431)|0);
$433 = HEAP8[$432>>0]|0;
$434 = $433&255;
$435 = HEAP32[$19>>2]|0;
$436 = ($435>>>0)<($434>>>0);
if ($436) {
$445 = $435;
while(1) {
$437 = HEAP32[$60>>2]|0;
$438 = ($437|0)==(0);
if ($438) {
label = 107;
break L1;
}
$439 = (($437) + -1)|0;
HEAP32[$60>>2] = $439;
$440 = HEAP32[$61>>2]|0;
$441 = ((($440)) + 1|0);
HEAP32[$61>>2] = $441;
$442 = HEAP8[$440>>0]|0;
$443 = $442&255;
$444 = $443 << $445;
$446 = HEAP32[$62>>2]|0;
$447 = $444 | $446;
HEAP32[$62>>2] = $447;
$448 = (($445) + 8)|0;
HEAP32[$19>>2] = $448;
$449 = ($448>>>0)<($434>>>0);
if ($449) {
$445 = $448;
} else {
$$lcssa379 = $448;
break;
}
}
} else {
$$lcssa379 = $435;
}
$450 = (1040 + ($431<<1)|0);
$451 = HEAP16[$450>>1]|0;
$452 = $451&65535;
$453 = HEAP32[$59>>2]|0;
$454 = 1 << $434;
$455 = (($454) + -1)|0;
$456 = $453 & $455;
$457 = (($456) + ($452))|0;
HEAP32[$18>>2] = $457;
$458 = ($434)?($453 >>> $434):($453);
HEAP32[$59>>2] = $458;
$459 = (($$lcssa379) - ($434))|0;
HEAP32[$19>>2] = $459;
HEAP8[$0>>0] = 11;
label = 96;
}
if ((label|0) == 96) {
label = 0;
$460 = HEAP32[$20>>2]|0;
$461 = ($460|0)==(0);
if ($461) {
label = 107;
break;
}
$462 = HEAP32[$63>>2]|0;
$463 = HEAP32[$64>>2]|0;
$464 = ($462>>>0)<($460>>>0);
$$358 = $464 ? $462 : $460;
$465 = HEAP32[$65>>2]|0;
$466 = (($465) - ($463))|0;
$467 = ($$358|0)==(0);
if (!($467)) {
$$1426 = 0;
while(1) {
$468 = (($466) + ($$1426))|0;
$469 = $468 & 32767;
$470 = (((($0)) + 11968|0) + ($469)|0);
$471 = HEAP8[$470>>0]|0;
$472 = HEAP32[$88>>2]|0;
HEAP8[$472>>0] = $471;
$473 = (($$1426) + ($465))|0;
$474 = $473 & 32767;
$475 = (((($0)) + 11968|0) + ($474)|0);
HEAP8[$475>>0] = $471;
$476 = HEAP32[$88>>2]|0;
$477 = ((($476)) + 1|0);
HEAP32[$88>>2] = $477;
$478 = (($$1426) + 1)|0;
$479 = ($478>>>0)<($$358>>>0);
if ($479) {
$$1426 = $478;
} else {
break;
}
}
}
$480 = (($465) + ($$358))|0;
$481 = $480 & 32767;
HEAP32[$65>>2] = $481;
$482 = HEAP32[$63>>2]|0;
$483 = (($482) - ($$358))|0;
HEAP32[$63>>2] = $483;
$484 = HEAP32[$20>>2]|0;
$485 = (($484) - ($$358))|0;
HEAP32[$20>>2] = $485;
$486 = ($483|0)==(0);
if ($486) {
$487 = HEAP32[$101>>2]|0;
$488 = ($487>>>0)>(9);
$489 = ($485>>>0)>(257);
$spec$select = $489 & $488;
$490 = $spec$select ? 12 : 7;
HEAP8[$0>>0] = $490;
$$0352$be = $$0352;$$0354$be = $$0354;
} else {
$$0352$be = $$0352;$$0354$be = $$0354;
}
}
$$0352 = $$0352$be;$$0354 = $$0354$be;
}
if ((label|0) == 106) {
// unreachable;
}
else if ((label|0) == 107) {
return;
}
}
function _Huffman_Build($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$08390 = 0, $$08495 = 0, $$08692 = 0, $$08789 = 0, $$096 = 0, $$198 = 0, $$394 = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0;
var $110 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0;
var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0;
var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond103 = 0, $exitcond105 = 0, dest = 0;
var label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0;
$3 = sp + 64|0;
$4 = sp;
$5 = ((($0)) + 1024|0);
HEAP16[$5>>1] = 0;
$6 = ((($0)) + 1088|0);
HEAP16[$6>>1] = 0;
$7 = ((($0)) + 1056|0);
HEAP16[$7>>1] = 0;
dest=$3; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$8 = ($2|0)>(0);
if ($8) {
$$198 = 0;
while(1) {
$9 = (($1) + ($$198)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = (($3) + ($11<<2)|0);
$13 = HEAP32[$12>>2]|0;
$14 = (($13) + 1)|0;
HEAP32[$12>>2] = $14;
$15 = (($$198) + 1)|0;
$exitcond105 = ($15|0)==($2|0);
if ($exitcond105) {
break;
} else {
$$198 = $15;
}
}
}
HEAP32[$3>>2] = 0;
$16 = ((($3)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)>(2);
if ($18) {
_Logger_Abort(22196);
}
$19 = ((($3)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)>(4);
if ($21) {
_Logger_Abort(22196);
}
$72 = ((($3)) + 12|0);
$73 = HEAP32[$72>>2]|0;
$74 = ($73|0)>(8);
if ($74) {
_Logger_Abort(22196);
}
$75 = ((($3)) + 16|0);
$76 = HEAP32[$75>>2]|0;
$77 = ($76|0)>(16);
if ($77) {
_Logger_Abort(22196);
}
$78 = ((($3)) + 20|0);
$79 = HEAP32[$78>>2]|0;
$80 = ($79|0)>(32);
if ($80) {
_Logger_Abort(22196);
}
$81 = ((($3)) + 24|0);
$82 = HEAP32[$81>>2]|0;
$83 = ($82|0)>(64);
if ($83) {
_Logger_Abort(22196);
}
$84 = ((($3)) + 28|0);
$85 = HEAP32[$84>>2]|0;
$86 = ($85|0)>(128);
if ($86) {
_Logger_Abort(22196);
}
$87 = ((($3)) + 32|0);
$88 = HEAP32[$87>>2]|0;
$89 = ($88|0)>(256);
if ($89) {
_Logger_Abort(22196);
}
$90 = ((($3)) + 36|0);
$91 = HEAP32[$90>>2]|0;
$92 = ($91|0)>(512);
if ($92) {
_Logger_Abort(22196);
}
$93 = ((($3)) + 40|0);
$94 = HEAP32[$93>>2]|0;
$95 = ($94|0)>(1024);
if ($95) {
_Logger_Abort(22196);
}
$96 = ((($3)) + 44|0);
$97 = HEAP32[$96>>2]|0;
$98 = ($97|0)>(2048);
if ($98) {
_Logger_Abort(22196);
}
$99 = ((($3)) + 48|0);
$100 = HEAP32[$99>>2]|0;
$101 = ($100|0)>(4096);
if ($101) {
_Logger_Abort(22196);
}
$102 = ((($3)) + 52|0);
$103 = HEAP32[$102>>2]|0;
$104 = ($103|0)>(8192);
if ($104) {
_Logger_Abort(22196);
}
$105 = ((($3)) + 56|0);
$106 = HEAP32[$105>>2]|0;
$107 = ($106|0)>(16384);
if ($107) {
_Logger_Abort(22196);
}
$108 = ((($3)) + 60|0);
$109 = HEAP32[$108>>2]|0;
$110 = ($109|0)>(32768);
if ($110) {
_Logger_Abort(22196);
}
$$08495 = 0;$$096 = 0;$$394 = 1;
while(1) {
$22 = (($$394) + -1)|0;
$23 = (($3) + ($22<<2)|0);
$24 = HEAP32[$23>>2]|0;
$25 = (($24) + ($$096))|0;
$26 = $25 << 1;
$27 = (($4) + ($$394<<2)|0);
HEAP32[$27>>2] = $$08495;
$28 = $26&65535;
$29 = (((($0)) + 1024|0) + ($$394<<1)|0);
HEAP16[$29>>1] = $28;
$30 = $$08495&65535;
$31 = (((($0)) + 1088|0) + ($$394<<1)|0);
HEAP16[$31>>1] = $30;
$32 = (($3) + ($$394<<2)|0);
$33 = HEAP32[$32>>2]|0;
$34 = (($33) + ($$08495))|0;
$35 = ($33|0)==(0);
$36 = (($33) + ($26))|0;
$37 = $36&65535;
$$sink = $35 ? 0 : $37;
$38 = (((($0)) + 1056|0) + ($$394<<1)|0);
HEAP16[$38>>1] = $$sink;
$39 = (($$394) + 1)|0;
$exitcond103 = ($39|0)==(16);
if ($exitcond103) {
break;
} else {
$$08495 = $34;$$096 = $26;$$394 = $39;
}
}
_Mem_Set($0,-1,1024);
$40 = ($2|0)>(0);
if (!($40)) {
STACKTOP = sp;return;
}
$$08692 = 0;
while(1) {
$41 = (($1) + ($$08692)|0);
$42 = HEAP8[$41>>0]|0;
$43 = $42&255;
$44 = ($42<<24>>24)==(0);
if (!($44)) {
$45 = $$08692&65535;
$46 = (($4) + ($43<<2)|0);
$47 = HEAP32[$46>>2]|0;
$48 = (((($0)) + 1120|0) + ($47<<1)|0);
HEAP16[$48>>1] = $45;
$49 = ($42&255)<(10);
do {
if ($49) {
$50 = $43 << 9;
$51 = $50 | $$08692;
$52 = $51&65535;
$53 = (9 - ($43))|0;
$54 = 1 << $53;
$55 = ($53|0)==(31);
if ($55) {
break;
}
$56 = (((($0)) + 1024|0) + ($43<<1)|0);
$57 = HEAP16[$56>>1]|0;
$58 = $57&65535;
$59 = (($47) + ($58))|0;
$60 = (((($0)) + 1088|0) + ($43<<1)|0);
$61 = HEAP16[$60>>1]|0;
$62 = $61&65535;
$63 = (($59) - ($62))|0;
$64 = $63 << $53;
$$08390 = $64;$$08789 = 0;
while(1) {
$65 = (_Huffman_ReverseBits($$08390,9)|0);
$66 = (($0) + ($65<<1)|0);
HEAP16[$66>>1] = $52;
$67 = (($$08789) + 1)|0;
$68 = (($$08390) + 1)|0;
$69 = ($67|0)<($54|0);
if ($69) {
$$08390 = $68;$$08789 = $67;
} else {
break;
}
}
}
} while(0);
$70 = (($47) + 1)|0;
HEAP32[$46>>2] = $70;
}
$71 = (($$08692) + 1)|0;
$exitcond = ($71|0)==($2|0);
if ($exitcond) {
break;
} else {
$$08692 = $71;
}
}
STACKTOP = sp;return;
}
function _Huffman_Decode($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$05063 = 0, $$05162 = 0, $$05261 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3>>>0)<(17);
L1: do {
if ($4) {
$5 = ((($0)) + 16|0);
$6 = ((($0)) + 12|0);
$7 = ((($0)) + 4|0);
$16 = $3;
while(1) {
$8 = HEAP32[$5>>2]|0;
$9 = ($8|0)==(0);
if ($9) {
break;
}
$10 = (($8) + -1)|0;
HEAP32[$5>>2] = $10;
$11 = HEAP32[$6>>2]|0;
$12 = ((($11)) + 1|0);
HEAP32[$6>>2] = $12;
$13 = HEAP8[$11>>0]|0;
$14 = $13&255;
$15 = $14 << $16;
$17 = HEAP32[$7>>2]|0;
$18 = $15 | $17;
HEAP32[$7>>2] = $18;
$19 = (($16) + 8)|0;
HEAP32[$2>>2] = $19;
$20 = ($19>>>0)<(17);
if ($20) {
$16 = $19;
} else {
$32 = $19;
label = 6;
break L1;
}
}
$21 = ($16>>>0)>(8);
if ($21) {
$32 = $16;
label = 6;
} else {
$35 = $16;
}
} else {
$32 = $3;
label = 6;
}
} while(0);
if ((label|0) == 6) {
$22 = ((($0)) + 4|0);
$23 = HEAP32[$22>>2]|0;
$24 = $23 & 511;
$25 = (($1) + ($24<<1)|0);
$26 = HEAP16[$25>>1]|0;
$27 = $26 << 16 >> 16;
$28 = ($26<<16>>16)>(-1);
if ($28) {
$29 = (9)?($27 >> 9):($27);
$30 = ($29)?($23 >>> $29):($23);
HEAP32[$22>>2] = $30;
$31 = (($32) - ($29))|0;
HEAP32[$2>>2] = $31;
$33 = $27 & 511;
$$0 = $33;
return ($$0|0);
} else {
$35 = $32;
}
}
$34 = ((($0)) + 4|0);
$$05063 = 1;$$05162 = 0;$$05261 = 0;
while(1) {
$36 = ($35>>>0)<($$05063>>>0);
if ($36) {
$$0 = -1;
label = 14;
break;
}
$37 = $$05261 << 1;
$38 = HEAP32[$34>>2]|0;
$39 = ($$05162)?($38 >>> $$05162):($38);
$40 = $39 & 1;
$41 = $40 | $37;
$42 = (((($1)) + 1056|0) + ($$05063<<1)|0);
$43 = HEAP16[$42>>1]|0;
$44 = $43&65535;
$45 = ($41>>>0)<($44>>>0);
if ($45) {
label = 11;
break;
}
$60 = (($$05063) + 1)|0;
$61 = (($$05162) + 1)|0;
$62 = ($60>>>0)<(16);
if ($62) {
$$05063 = $60;$$05162 = $61;$$05261 = $41;
} else {
label = 13;
break;
}
}
if ((label|0) == 11) {
$46 = ((($0)) + 4|0);
$47 = (((($1)) + 1088|0) + ($$05063<<1)|0);
$48 = HEAP16[$47>>1]|0;
$49 = $48&65535;
$50 = (((($1)) + 1024|0) + ($$05063<<1)|0);
$51 = HEAP16[$50>>1]|0;
$52 = $51&65535;
$53 = (($41) + ($49))|0;
$54 = (($53) - ($52))|0;
$55 = ($$05063)?($38 >>> $$05063):($38);
HEAP32[$46>>2] = $55;
$56 = (($35) - ($$05063))|0;
HEAP32[$2>>2] = $56;
$57 = (((($1)) + 1120|0) + ($54<<1)|0);
$58 = HEAP16[$57>>1]|0;
$59 = $58&65535;
$$0 = $59;
return ($$0|0);
}
else if ((label|0) == 13) {
_Logger_Abort(22165);
$$0 = -1;
return ($$0|0);
}
else if ((label|0) == 14) {
return ($$0|0);
}
return (0)|0;
}
function _Inflate_InflateFast($0) {
$0 = $0|0;
var $$0$lcssa = 0, $$0178$lcssa = 0, $$0178218 = 0, $$0180 = 0, $$0181197 = 0, $$0181232 = 0, $$0183 = 0, $$0184199 = 0, $$0184231 = 0, $$0186$lcssa = 0, $$0186217 = 0, $$0219 = 0, $$1179227 = 0, $$1182 = 0, $$1185 = 0, $$1185$in = 0, $$1187226 = 0, $$1228 = 0, $$2214 = 0, $$lcssa = 0;
var $$lcssa194 = 0, $$lcssa195 = 0, $$neg191 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0;
var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0;
var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $exitcond = 0, $exitcond253 = 0, $or$cond = 0, $or$cond189 = 0, $scevgep = 0, $scevgep250 = 0, $scevgep251 = 0, $scevgep252 = 0, $storemerge$lcssa = 0, $storemerge205 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 11968|0);
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 24|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5>>>0)>(257);
if (!($6)) {
return;
}
$7 = ((($0)) + 16|0);
$8 = ((($0)) + 8|0);
$9 = ((($0)) + 12|0);
$10 = ((($0)) + 4|0);
$11 = ((($0)) + 4|0);
$12 = ((($0)) + 8576|0);
$13 = ((($0)) + 12|0);
$14 = ((($0)) + 12|0);
$15 = ((($0)) + 10272|0);
$16 = ((($0)) + 12|0);
$scevgep = ((($0)) + 11972|0);
$scevgep251 = ((($0)) + 11972|0);
$$0181232 = 0;$$0184231 = $3;
while(1) {
$17 = HEAP32[$7>>2]|0;
$18 = ($17>>>0)>(9);
$19 = ($$0181232>>>0)<(32510);
$or$cond = $19 & $18;
if (!($or$cond)) {
$$0181197 = $$0181232;$$0184199 = $$0184231;
break;
}
$20 = HEAP32[$8>>2]|0;
$21 = ($20>>>0)<(16);
if ($21) {
$22 = (15 - ($20))|0;
$23 = $22 & -8;
$31 = $20;
while(1) {
$24 = HEAP32[$7>>2]|0;
$25 = (($24) + -1)|0;
HEAP32[$7>>2] = $25;
$26 = HEAP32[$9>>2]|0;
$27 = ((($26)) + 1|0);
HEAP32[$9>>2] = $27;
$28 = HEAP8[$26>>0]|0;
$29 = $28&255;
$30 = $29 << $31;
$32 = HEAP32[$10>>2]|0;
$33 = $30 | $32;
HEAP32[$10>>2] = $33;
$34 = (($31) + 8)|0;
HEAP32[$8>>2] = $34;
$35 = ($34>>>0)<(16);
if ($35) {
$31 = $34;
} else {
break;
}
}
$36 = (($20) + 8)|0;
$37 = (($36) + ($23))|0;
$$lcssa = $37;
} else {
$$lcssa = $20;
}
$38 = HEAP32[$11>>2]|0;
$39 = $38 & 511;
$40 = (((($0)) + 8576|0) + ($39<<1)|0);
$41 = HEAP16[$40>>1]|0;
$42 = $41 << 16 >> 16;
$43 = ($41<<16>>16)>(-1);
if ($43) {
$44 = (9)?($42 >> 9):($42);
$45 = ($44)?($38 >>> $44):($38);
HEAP32[$11>>2] = $45;
$46 = (($$lcssa) - ($44))|0;
HEAP32[$8>>2] = $46;
$47 = $42 & 511;
$$0180 = $47;
} else {
$48 = (_Huffman_Unsafe_Decode_Slow($0,$12)|0);
$$0180 = $48;
}
$49 = ($$0180>>>0)<(257);
if ($49) {
$50 = ($$0180|0)==(256);
if ($50) {
label = 14;
break;
}
$51 = $$0180&255;
$52 = (((($0)) + 11968|0) + ($$0184231)|0);
HEAP8[$52>>0] = $51;
$53 = HEAP32[$4>>2]|0;
$54 = (($53) + -1)|0;
HEAP32[$4>>2] = $54;
$55 = (($$0181232) + 1)|0;
$56 = (($$0184231) + 1)|0;
$$1182 = $55;$$1185$in = $56;$199 = $54;
} else {
$61 = (($$0180) + -257)|0;
$62 = (912 + ($61)|0);
$63 = HEAP8[$62>>0]|0;
$64 = $63&255;
$65 = HEAP32[$8>>2]|0;
$66 = ($65>>>0)<($64>>>0);
if ($66) {
$67 = (($64) + -1)|0;
$68 = (($67) - ($65))|0;
$69 = $68 & -8;
$77 = $65;
while(1) {
$70 = HEAP32[$7>>2]|0;
$71 = (($70) + -1)|0;
HEAP32[$7>>2] = $71;
$72 = HEAP32[$13>>2]|0;
$73 = ((($72)) + 1|0);
HEAP32[$13>>2] = $73;
$74 = HEAP8[$72>>0]|0;
$75 = $74&255;
$76 = $75 << $77;
$78 = HEAP32[$11>>2]|0;
$79 = $76 | $78;
HEAP32[$11>>2] = $79;
$80 = (($77) + 8)|0;
HEAP32[$8>>2] = $80;
$81 = ($80>>>0)<($64>>>0);
if ($81) {
$77 = $80;
} else {
break;
}
}
$82 = (($65) + 8)|0;
$83 = (($82) + ($69))|0;
$$lcssa194 = $83;
} else {
$$lcssa194 = $65;
}
$84 = (944 + ($61<<1)|0);
$85 = HEAP16[$84>>1]|0;
$86 = $85&65535;
$87 = HEAP32[$11>>2]|0;
$88 = 1 << $64;
$89 = (($88) + -1)|0;
$90 = $87 & $89;
$91 = (($90) + ($86))|0;
$92 = ($64)?($87 >>> $64):($87);
HEAP32[$11>>2] = $92;
$93 = (($$lcssa194) - ($64))|0;
HEAP32[$8>>2] = $93;
$94 = ($93>>>0)<(16);
if ($94) {
$95 = (($$lcssa194) + 8)|0;
$96 = (($64) + 15)|0;
$97 = (($96) - ($$lcssa194))|0;
$98 = $97 & -8;
$99 = (($95) + ($98))|0;
$storemerge205 = $93;
while(1) {
$100 = HEAP32[$7>>2]|0;
$101 = (($100) + -1)|0;
HEAP32[$7>>2] = $101;
$102 = HEAP32[$14>>2]|0;
$103 = ((($102)) + 1|0);
HEAP32[$14>>2] = $103;
$104 = HEAP8[$102>>0]|0;
$105 = $104&255;
$106 = $105 << $storemerge205;
$107 = HEAP32[$11>>2]|0;
$108 = $106 | $107;
HEAP32[$11>>2] = $108;
$109 = (($storemerge205) + 8)|0;
HEAP32[$8>>2] = $109;
$110 = ($109>>>0)<(16);
if ($110) {
$storemerge205 = $109;
} else {
break;
}
}
$111 = (($99) - ($64))|0;
$storemerge$lcssa = $111;
} else {
$storemerge$lcssa = $93;
}
$112 = HEAP32[$11>>2]|0;
$113 = $112 & 511;
$114 = (((($0)) + 10272|0) + ($113<<1)|0);
$115 = HEAP16[$114>>1]|0;
$116 = $115 << 16 >> 16;
$117 = ($115<<16>>16)>(-1);
if ($117) {
$118 = (9)?($116 >> 9):($116);
$119 = ($118)?($112 >>> $118):($112);
HEAP32[$11>>2] = $119;
$120 = (($storemerge$lcssa) - ($118))|0;
HEAP32[$8>>2] = $120;
$121 = $116 & 511;
$$0183 = $121;
} else {
$122 = (_Huffman_Unsafe_Decode_Slow($0,$15)|0);
$$0183 = $122;
}
$123 = (1008 + ($$0183)|0);
$124 = HEAP8[$123>>0]|0;
$125 = $124&255;
$126 = HEAP32[$8>>2]|0;
$127 = ($126>>>0)<($125>>>0);
if ($127) {
$128 = (($125) + -1)|0;
$129 = (($128) - ($126))|0;
$130 = $129 & -8;
$138 = $126;
while(1) {
$131 = HEAP32[$7>>2]|0;
$132 = (($131) + -1)|0;
HEAP32[$7>>2] = $132;
$133 = HEAP32[$16>>2]|0;
$134 = ((($133)) + 1|0);
HEAP32[$16>>2] = $134;
$135 = HEAP8[$133>>0]|0;
$136 = $135&255;
$137 = $136 << $138;
$139 = HEAP32[$11>>2]|0;
$140 = $137 | $139;
HEAP32[$11>>2] = $140;
$141 = (($138) + 8)|0;
HEAP32[$8>>2] = $141;
$142 = ($141>>>0)<($125>>>0);
if ($142) {
$138 = $141;
} else {
break;
}
}
$143 = (($126) + 8)|0;
$144 = (($143) + ($130))|0;
$$lcssa195 = $144;
} else {
$$lcssa195 = $126;
}
$145 = (1040 + ($$0183<<1)|0);
$146 = HEAP16[$145>>1]|0;
$147 = $146&65535;
$148 = HEAP32[$11>>2]|0;
$149 = 1 << $125;
$150 = (($149) + 32767)|0;
$151 = $148 & $150;
$152 = ($125)?($148 >>> $125):($148);
HEAP32[$11>>2] = $152;
$153 = (($$lcssa195) - ($125))|0;
HEAP32[$8>>2] = $153;
$$neg191 = (($$0184231) - ($147))|0;
$154 = (($$neg191) - ($151))|0;
$155 = $154 & 32767;
$156 = ($$0184231>>>0)>=($155>>>0);
$157 = (($91) + ($$0184231))|0;
$158 = ($157>>>0)<(32768);
$or$cond189 = $158 & $156;
if ($or$cond189) {
$159 = (((($0)) + 11968|0) + ($155)|0);
$160 = (((($0)) + 11968|0) + ($$0184231)|0);
$161 = $91 & -4;
$162 = ($161|0)==(0);
if ($162) {
$$0$lcssa = $160;$$0178$lcssa = $159;$$0186$lcssa = 0;
} else {
$163 = (($161) + -1)|0;
$164 = $163 & -4;
$165 = (($164) + ($155))|0;
$166 = (($$0184231) + ($164))|0;
$scevgep252 = (($scevgep251) + ($166)|0);
$$0178218 = $159;$$0186217 = 0;$$0219 = $160;
while(1) {
$167 = ((($$0178218)) + 1|0);
$168 = HEAP8[$$0178218>>0]|0;
$169 = ((($$0219)) + 1|0);
HEAP8[$$0219>>0] = $168;
$170 = ((($$0178218)) + 2|0);
$171 = HEAP8[$167>>0]|0;
$172 = ((($$0219)) + 2|0);
HEAP8[$169>>0] = $171;
$173 = ((($$0178218)) + 3|0);
$174 = HEAP8[$170>>0]|0;
$175 = ((($$0219)) + 3|0);
HEAP8[$172>>0] = $174;
$176 = ((($$0178218)) + 4|0);
$177 = HEAP8[$173>>0]|0;
$178 = ((($$0219)) + 4|0);
HEAP8[$175>>0] = $177;
$179 = (($$0186217) + 4)|0;
$180 = ($179>>>0)<($161>>>0);
if ($180) {
$$0178218 = $176;$$0186217 = $179;$$0219 = $178;
} else {
break;
}
}
$scevgep250 = (($scevgep) + ($165)|0);
$181 = (($164) + 4)|0;
$$0$lcssa = $scevgep252;$$0178$lcssa = $scevgep250;$$0186$lcssa = $181;
}
$182 = ($$0186$lcssa>>>0)<($91>>>0);
if ($182) {
$$1179227 = $$0178$lcssa;$$1187226 = $$0186$lcssa;$$1228 = $$0$lcssa;
while(1) {
$183 = ((($$1179227)) + 1|0);
$184 = HEAP8[$$1179227>>0]|0;
$185 = ((($$1228)) + 1|0);
HEAP8[$$1228>>0] = $184;
$186 = (($$1187226) + 1)|0;
$exitcond253 = ($186|0)==($91|0);
if ($exitcond253) {
break;
} else {
$$1179227 = $183;$$1187226 = $186;$$1228 = $185;
}
}
}
} else {
$187 = ($91|0)==(0);
if (!($187)) {
$$2214 = 0;
while(1) {
$188 = (($$2214) + ($154))|0;
$189 = $188 & 32767;
$190 = (((($0)) + 11968|0) + ($189)|0);
$191 = HEAP8[$190>>0]|0;
$192 = (($$2214) + ($$0184231))|0;
$193 = $192 & 32767;
$194 = (((($0)) + 11968|0) + ($193)|0);
HEAP8[$194>>0] = $191;
$195 = (($$2214) + 1)|0;
$exitcond = ($195|0)==($91|0);
if ($exitcond) {
break;
} else {
$$2214 = $195;
}
}
}
}
$196 = HEAP32[$4>>2]|0;
$197 = (($196) - ($91))|0;
HEAP32[$4>>2] = $197;
$198 = (($91) + ($$0181232))|0;
$$1182 = $198;$$1185$in = $157;$199 = $197;
}
$$1185 = $$1185$in & 32767;
$200 = ($199>>>0)>(257);
if ($200) {
$$0181232 = $$1182;$$0184231 = $$1185;
} else {
$$0181197 = $$1182;$$0184199 = $$1185;
break;
}
}
if ((label|0) == 14) {
$57 = ((($0)) + 1|0);
$58 = HEAP8[$57>>0]|0;
$59 = ($58<<24>>24)==(0);
$60 = $59 ? 0 : 13;
HEAP8[$0>>0] = $60;
$$0181197 = $$0181232;$$0184199 = $$0184231;
}
HEAP32[$2>>2] = $$0184199;
$201 = ($$0181197|0)==(0);
if ($201) {
return;
}
$202 = (($$0181197) + ($3))|0;
$203 = ($202>>>0)<(32768);
if ($203) {
$204 = ((($0)) + 20|0);
$205 = HEAP32[$204>>2]|0;
$206 = (((($0)) + 11968|0) + ($3)|0);
_Mem_Copy($205,$206,$$0181197);
$207 = HEAP32[$204>>2]|0;
$208 = (($207) + ($$0181197)|0);
HEAP32[$204>>2] = $208;
return;
} else {
$209 = (32768 - ($3))|0;
$210 = ((($0)) + 20|0);
$211 = HEAP32[$210>>2]|0;
$212 = (((($0)) + 11968|0) + ($3)|0);
_Mem_Copy($211,$212,$209);
$213 = HEAP32[$210>>2]|0;
$214 = (($213) + ($209)|0);
HEAP32[$210>>2] = $214;
$215 = (($$0181197) - ($209))|0;
_Mem_Copy($214,$1,$215);
$216 = HEAP32[$210>>2]|0;
$217 = (($216) + ($215)|0);
HEAP32[$210>>2] = $217;
return;
}
}
function _Huffman_Unsafe_Decode_Slow($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$03133$lcssa = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP32[$2>>2]|0;
$4 = $3 & 511;
$5 = (_Huffman_ReverseBits($4,9)|0);
$6 = $5 << 1;
$7 = (9)?($3 >>> 9):($3);
$8 = $7 & 1;
$9 = $6 | $8;
$10 = ((($1)) + 1076|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
$13 = ($9>>>0)<($12>>>0);
if ($13) {
$$03133$lcssa = 10;$$lcssa = $9;
} else {
$29 = $9 << 1;
$30 = (10)?($3 >>> 10):($3);
$31 = $30 & 1;
$32 = $29 | $31;
$33 = ((($1)) + 1078|0);
$34 = HEAP16[$33>>1]|0;
$35 = $34&65535;
$36 = ($32>>>0)<($35>>>0);
if ($36) {
$$03133$lcssa = 11;$$lcssa = $32;
} else {
$37 = $32 << 1;
$38 = (11)?($3 >>> 11):($3);
$39 = $38 & 1;
$40 = $37 | $39;
$41 = ((($1)) + 1080|0);
$42 = HEAP16[$41>>1]|0;
$43 = $42&65535;
$44 = ($40>>>0)<($43>>>0);
if ($44) {
$$03133$lcssa = 12;$$lcssa = $40;
} else {
$45 = $40 << 1;
$46 = (12)?($3 >>> 12):($3);
$47 = $46 & 1;
$48 = $45 | $47;
$49 = ((($1)) + 1082|0);
$50 = HEAP16[$49>>1]|0;
$51 = $50&65535;
$52 = ($48>>>0)<($51>>>0);
if ($52) {
$$03133$lcssa = 13;$$lcssa = $48;
} else {
$53 = $48 << 1;
$54 = (13)?($3 >>> 13):($3);
$55 = $54 & 1;
$56 = $53 | $55;
$57 = ((($1)) + 1084|0);
$58 = HEAP16[$57>>1]|0;
$59 = $58&65535;
$60 = ($56>>>0)<($59>>>0);
if ($60) {
$$03133$lcssa = 14;$$lcssa = $56;
} else {
$61 = $56 << 1;
$62 = (14)?($3 >>> 14):($3);
$63 = $62 & 1;
$64 = $61 | $63;
$65 = ((($1)) + 1086|0);
$66 = HEAP16[$65>>1]|0;
$67 = $66&65535;
$68 = ($64>>>0)<($67>>>0);
if ($68) {
$$03133$lcssa = 15;$$lcssa = $64;
} else {
_Logger_Abort(22165);
$$0 = -1;
return ($$0|0);
}
}
}
}
}
}
$14 = (((($1)) + 1088|0) + ($$03133$lcssa<<1)|0);
$15 = HEAP16[$14>>1]|0;
$16 = $15&65535;
$17 = (((($1)) + 1024|0) + ($$03133$lcssa<<1)|0);
$18 = HEAP16[$17>>1]|0;
$19 = $18&65535;
$20 = (($$lcssa) + ($16))|0;
$21 = (($20) - ($19))|0;
$22 = ($$03133$lcssa)?($3 >>> $$03133$lcssa):($3);
HEAP32[$2>>2] = $22;
$23 = ((($0)) + 8|0);
$24 = HEAP32[$23>>2]|0;
$25 = (($24) - ($$03133$lcssa))|0;
HEAP32[$23>>2] = $25;
$26 = (((($1)) + 1120|0) + ($21<<1)|0);
$27 = HEAP16[$26>>1]|0;
$28 = $27&65535;
$$0 = $28;
return ($$0|0);
}
function _Huffman_ReverseBits($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (1)?($0 >>> 1):($0);
$3 = $2 & 21845;
$4 = $0 << 1;
$5 = $4 & 43690;
$6 = $3 | $5;
$7 = (2)?($6 >>> 2):($6);
$8 = $7 & 13107;
$9 = $6 << 2;
$10 = $9 & 52428;
$11 = $8 | $10;
$12 = (4)?($11 >>> 4):($11);
$13 = $12 & 3855;
$14 = $11 << 4;
$15 = $14 & 61680;
$16 = $13 | $15;
$17 = (8)?($16 >>> 8):($16);
$18 = $16 << 8;
$19 = $18 & 65280;
$20 = $19 | $17;
$21 = $1&255;
$22 = (16 - ($21))|0;
$23 = ($22)?($20 >>> $22):($20);
return ($23|0);
}
function _Inflate_MakeStream($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Stream_Init($0);
_Inflate_Init($1,$2);
$3 = ((($0)) + 32|0);
HEAP32[$3>>2] = $1;
HEAP32[$0>>2] = 27;
return;
}
function _Inflate_StreamRead($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$03839 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
HEAP32[$3>>2] = 0;
$5 = ((($0)) + 32|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 20|0);
HEAP32[$7>>2] = $1;
$8 = ((($6)) + 24|0);
HEAP32[$8>>2] = $2;
$9 = ($2|0)==(0);
if ($9) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$10 = ((($6)) + 16|0);
$11 = ((($6)) + 8256|0);
$12 = ((($6)) + 12|0);
$13 = ((($6)) + 64|0);
$14 = $11;
$15 = ((($6)) + 28|0);
$$03839 = 1;
while(1) {
$16 = HEAP8[$6>>0]|0;
$17 = ($16<<24>>24)==(13);
if ($17) {
$$0 = 0;
label = 10;
break;
}
$18 = HEAP32[$10>>2]|0;
$19 = ($18|0)==(0);
if ($19) {
$20 = HEAP32[$12>>2]|0;
$21 = ($20|0)==($11|0);
if ($21) {
HEAP32[$12>>2] = $13;
}
$22 = HEAP32[$12>>2]|0;
$23 = $22;
$24 = (($14) - ($23))|0;
$25 = HEAP32[$15>>2]|0;
$26 = HEAP32[$25>>2]|0;
$27 = (FUNCTION_TABLE_iiiii[$26 & 63]($25,$22,$24,$4)|0);
$28 = ($27|0)==(0);
if (!($28)) {
$$0 = $27;
label = 10;
break;
}
$29 = HEAP32[$4>>2]|0;
$30 = ($29|0)!=(0);
$31 = $30&1;
$32 = HEAP32[$10>>2]|0;
$33 = (($32) + ($29))|0;
HEAP32[$10>>2] = $33;
$$1 = $31;
} else {
$$1 = $$03839;
}
$34 = HEAP32[$8>>2]|0;
_Inflate_Process($6);
$35 = HEAP32[$8>>2]|0;
$36 = (($34) - ($35))|0;
$37 = HEAP32[$3>>2]|0;
$38 = (($36) + ($37))|0;
HEAP32[$3>>2] = $38;
$39 = HEAP32[$8>>2]|0;
$40 = ($39|0)!=(0);
$41 = ($$1<<24>>24)!=(0);
$42 = $41 & $40;
if ($42) {
$$03839 = $$1;
} else {
$$0 = 0;
label = 10;
break;
}
}
if ((label|0) == 10) {
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _Deflate_MakeStream($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Stream_Init($0);
$3 = ((($0)) + 32|0);
HEAP32[$3>>2] = $1;
$4 = ((($0)) + 8|0);
HEAP32[$4>>2] = 28;
$5 = ((($0)) + 28|0);
HEAP32[$5>>2] = 3;
$6 = ((($1)) + 8|0);
HEAP32[$6>>2] = 16384;
HEAP32[$1>>2] = 0;
$7 = ((($1)) + 4|0);
HEAP32[$7>>2] = 0;
$8 = ((($1)) + 33656|0);
$9 = ((($1)) + 12|0);
HEAP32[$9>>2] = $8;
$10 = ((($1)) + 16|0);
HEAP32[$10>>2] = 8192;
$11 = ((($1)) + 20|0);
HEAP32[$11>>2] = $2;
$12 = ((($1)) + 189304|0);
HEAP8[$12>>0] = 0;
$13 = ((($1)) + 41848|0);
_Mem_Set($13,0,16384);
$14 = ((($1)) + 58232|0);
_Mem_Set($14,0,131072);
$15 = ((($1)) + 24|0);
$16 = ((($1)) + 600|0);
_Deflate_BuildTable($15,$16);
return;
}
function _Deflate_StreamWrite($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$03438 = 0, $$03537 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = HEAP32[$4>>2]|0;
HEAP32[$3>>2] = 0;
$6 = ($2|0)==(0);
if ($6) {
$$2 = 0;
return ($$2|0);
}
$7 = ((($5)) + 8|0);
$$03438 = $1;$$03537 = $2;
while(1) {
$8 = HEAP32[$7>>2]|0;
$9 = (((($5)) + 888|0) + ($8)|0);
$10 = (($8) + ($$03537))|0;
$11 = ($10>>>0)>(32767);
$12 = (32768 - ($8))|0;
$spec$select = $11 ? $12 : $$03537;
_Mem_Copy($9,$$03438,$spec$select);
$13 = (($$03537) - ($spec$select))|0;
$14 = HEAP32[$7>>2]|0;
$15 = (($spec$select) + ($14))|0;
HEAP32[$7>>2] = $15;
$16 = HEAP32[$3>>2]|0;
$17 = (($16) + ($spec$select))|0;
HEAP32[$3>>2] = $17;
$18 = (($$03438) + ($spec$select)|0);
$19 = HEAP32[$7>>2]|0;
$20 = ($19|0)==(32768);
if ($20) {
$21 = (_Deflate_FlushBlock($5,16384)|0);
$22 = ($21|0)==(0);
if (!($22)) {
$$2 = $21;
label = 6;
break;
}
}
$23 = ($13|0)==(0);
if ($23) {
$$2 = 0;
label = 6;
break;
} else {
$$03438 = $18;$$03537 = $13;
}
}
if ((label|0) == 6) {
return ($$2|0);
}
return (0)|0;
}
function _Deflate_StreamClose($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $storemerge$lcssa = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4) + -16384)|0;
$6 = (_Deflate_FlushBlock($2,$5)|0);
$7 = ($6|0)==(0);
if (!($7)) {
$$0 = $6;
return ($$0|0);
}
$8 = ((($2)) + 536|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = ((($2)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$13 = $10 << $12;
$14 = HEAP32[$2>>2]|0;
$15 = $14 | $13;
HEAP32[$2>>2] = $15;
$16 = ((($2)) + 856|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = (($12) + ($18))|0;
HEAP32[$11>>2] = $19;
$20 = ($19>>>0)>(7);
if ($20) {
$21 = ((($2)) + 12|0);
$22 = ((($2)) + 16|0);
while(1) {
$23 = HEAP32[$2>>2]|0;
$24 = $23&255;
$25 = HEAP32[$21>>2]|0;
$26 = ((($25)) + 1|0);
HEAP32[$21>>2] = $26;
HEAP8[$25>>0] = $24;
$27 = HEAP32[$22>>2]|0;
$28 = (($27) + -1)|0;
HEAP32[$22>>2] = $28;
$29 = HEAP32[$2>>2]|0;
$30 = (8)?($29 >>> 8):($29);
HEAP32[$2>>2] = $30;
$31 = HEAP32[$11>>2]|0;
$32 = (($31) + -8)|0;
HEAP32[$11>>2] = $32;
$33 = ($32>>>0)>(7);
if (!($33)) {
$storemerge$lcssa = $32;
break;
}
}
} else {
$storemerge$lcssa = $19;
}
$34 = ($storemerge$lcssa|0)==(0);
if (!($34)) {
HEAP32[$11>>2] = 8;
$35 = ((($2)) + 12|0);
$36 = ((($2)) + 16|0);
while(1) {
$37 = HEAP32[$2>>2]|0;
$38 = $37&255;
$39 = HEAP32[$35>>2]|0;
$40 = ((($39)) + 1|0);
HEAP32[$35>>2] = $40;
HEAP8[$39>>0] = $38;
$41 = HEAP32[$36>>2]|0;
$42 = (($41) + -1)|0;
HEAP32[$36>>2] = $42;
$43 = HEAP32[$2>>2]|0;
$44 = (8)?($43 >>> 8):($43);
HEAP32[$2>>2] = $44;
$45 = HEAP32[$11>>2]|0;
$46 = (($45) + -8)|0;
HEAP32[$11>>2] = $46;
$47 = ($46>>>0)>(7);
if (!($47)) {
break;
}
}
}
$48 = ((($2)) + 20|0);
$49 = HEAP32[$48>>2]|0;
$50 = ((($2)) + 33656|0);
$51 = ((($2)) + 16|0);
$52 = HEAP32[$51>>2]|0;
$53 = (8192 - ($52))|0;
$54 = (_Stream_Write($49,$50,$53)|0);
$$0 = $54;
return ($$0|0);
}
function _Deflate_BuildTable($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$02 = 0, $$0271 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1696|0;
$2 = sp;
_Huffman_Build($2,560,288);
$$02 = 0;
while(1) {
$3 = (((($2)) + 1056|0) + ($$02<<1)|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)==(0);
if (!($5)) {
$6 = $4&65535;
$7 = (((($2)) + 1024|0) + ($$02<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$10 = (($6) - ($9))|0;
$11 = ($10|0)>(0);
if ($11) {
$12 = (((($2)) + 1088|0) + ($$02<<1)|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13&65535;
$15 = $$02&255;
$$0271 = 0;
while(1) {
$16 = (($$0271) + ($14))|0;
$17 = (((($2)) + 1120|0) + ($16<<1)|0);
$18 = HEAP16[$17>>1]|0;
$19 = $18&65535;
$20 = (($$0271) + ($9))|0;
$21 = (($1) + ($19)|0);
HEAP8[$21>>0] = $15;
$22 = (_Huffman_ReverseBits($20,$15)|0);
$23 = $22&65535;
$24 = (($0) + ($19<<1)|0);
HEAP16[$24>>1] = $23;
$25 = (($$0271) + 1)|0;
$exitcond = ($25|0)==($10|0);
if ($exitcond) {
break;
} else {
$$0271 = $25;
}
}
}
}
$26 = (($$02) + 1)|0;
$exitcond3 = ($26|0)==(16);
if ($exitcond3) {
break;
} else {
$$02 = $26;
}
}
STACKTOP = sp;return;
}
function _Deflate_FlushBlock($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$0111 = 0, $$0112$lcssa = 0, $$0112144 = 0, $$0115 = 0, $$0115138 = 0, $$0115140 = 0, $$0116 = 0, $$0116129 = 0, $$0116133 = 0, $$0117$lcssa = 0, $$0117132 = 0, $$0120131 = 0, $$0122$lcssa = 0, $$0122130 = 0, $$0145 = 0, $$1113 = 0, $$1121139 = 0, $$2114127 = 0, $$2128 = 0;
var $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $9 = 0;
var $spec$select = 0, $spec$select124 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 189304|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
HEAP8[$2>>0] = 1;
$5 = ((($0)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$7 = 3 << $6;
$8 = HEAP32[$0>>2]|0;
$9 = $8 | $7;
HEAP32[$0>>2] = $9;
$10 = (($6) + 3)|0;
HEAP32[$5>>2] = $10;
}
$11 = ((($0)) + 17272|0);
$12 = ($1|0)>(3);
L4: do {
if ($12) {
$13 = ((($0)) + 888|0);
$14 = $13;
$15 = ((($0)) + 16|0);
$16 = ((($0)) + 20|0);
$17 = ((($0)) + 33656|0);
$18 = ((($0)) + 12|0);
$$0112144 = $1;$$0145 = $11;
while(1) {
$19 = (_Deflate_Hash($$0145)|0);
$20 = ($$0112144|0)<(258);
$21 = $20 ? $$0112144 : 258;
$22 = (((($0)) + 41848|0) + ($19<<2)|0);
$$0116129 = HEAP32[$22>>2]|0;
$23 = ($$0116129|0)==(0);
if ($23) {
$$0117$lcssa = 0;$$0122$lcssa = 2;
} else {
$$0116133 = $$0116129;$$0117132 = 0;$$0120131 = 0;$$0122130 = 2;
while(1) {
$24 = (((($0)) + 888|0) + ($$0116133)|0);
$25 = (_Deflate_MatchLen($24,$$0145,$21)|0);
$26 = ($25|0)>($$0122130|0);
$spec$select = $26 ? $25 : $$0122130;
$spec$select124 = $26 ? $$0116133 : $$0117132;
$27 = (((($0)) + 58232|0) + ($$0116133<<2)|0);
$28 = (($$0120131) + 1)|0;
$$0116 = HEAP32[$27>>2]|0;
$29 = ($$0116|0)!=(0);
$30 = ($28>>>0)<(5);
$31 = $30 & $29;
if ($31) {
$$0116133 = $$0116;$$0117132 = $spec$select124;$$0120131 = $28;$$0122130 = $spec$select;
} else {
$$0117$lcssa = $spec$select124;$$0122$lcssa = $spec$select;
break;
}
}
}
$32 = $$0145;
$33 = (($32) - ($14))|0;
$34 = HEAP32[$22>>2]|0;
HEAP32[$22>>2] = $33;
$35 = $34 & 65535;
$36 = (((($0)) + 58232|0) + ($33<<2)|0);
HEAP32[$36>>2] = $35;
$37 = ($$0117$lcssa|0)==(0);
L13: do {
if ($37) {
label = 15;
} else {
$38 = ((($$0145)) + 1|0);
$39 = (_Deflate_Hash($38)|0);
$40 = (((($0)) + 41848|0) + ($39<<2)|0);
$41 = (($$0112144) + -1)|0;
$42 = ($41|0)<(258);
$43 = $42 ? $41 : 258;
$$0115138 = HEAP32[$40>>2]|0;
$44 = ($$0115138|0)==(0);
if (!($44)) {
$$0115140 = $$0115138;$$1121139 = 0;
while(1) {
$45 = (((($0)) + 888|0) + ($$0115140)|0);
$46 = (_Deflate_MatchLen($45,$38,$43)|0);
$47 = ($46|0)>($$0122$lcssa|0);
if ($47) {
label = 15;
break L13;
}
$48 = (((($0)) + 58232|0) + ($$0115140<<2)|0);
$49 = (($$1121139) + 1)|0;
$$0115 = HEAP32[$48>>2]|0;
$50 = ($$0115|0)!=(0);
$51 = ($49>>>0)<(5);
$52 = $51 & $50;
if ($52) {
$$0115140 = $$0115;$$1121139 = $49;
} else {
break;
}
}
$53 = ($$0117$lcssa|0)==(0);
if ($53) {
label = 15;
break;
}
}
$54 = (($33) - ($$0117$lcssa))|0;
_Deflate_LenDist($0,$$0122$lcssa,$54);
$55 = (($$0112144) - ($$0122$lcssa))|0;
$$1113 = $55;$$sink = $$0122$lcssa;
}
} while(0);
if ((label|0) == 15) {
label = 0;
$56 = HEAP8[$$0145>>0]|0;
$57 = $56&255;
_Deflate_Lit($0,$57);
$58 = (($$0112144) + -1)|0;
$$1113 = $58;$$sink = 1;
}
$59 = (($$0145) + ($$sink)|0);
$60 = HEAP32[$15>>2]|0;
$61 = ($60>>>0)>(19);
if (!($61)) {
$63 = HEAP32[$16>>2]|0;
$64 = (8192 - ($60))|0;
$65 = (_Stream_Write($63,$17,$64)|0);
HEAP32[$18>>2] = $17;
HEAP32[$15>>2] = 8192;
$66 = ($65|0)==(0);
if (!($66)) {
$$0111 = $65;
break;
}
}
$62 = ($$1113|0)>(3);
if ($62) {
$$0112144 = $$1113;$$0145 = $59;
} else {
$$0$lcssa = $59;$$0112$lcssa = $$1113;
break L4;
}
}
return ($$0111|0);
} else {
$$0$lcssa = $11;$$0112$lcssa = $1;
}
} while(0);
$67 = ($$0112$lcssa|0)>(0);
if ($67) {
$$2114127 = $$0112$lcssa;$$2128 = $$0$lcssa;
while(1) {
$68 = HEAP8[$$2128>>0]|0;
$69 = $68&255;
_Deflate_Lit($0,$69);
$70 = (($$2114127) + -1)|0;
$71 = ((($$2128)) + 1|0);
$72 = ($$2114127|0)>(1);
if ($72) {
$$2114127 = $70;$$2128 = $71;
} else {
break;
}
}
}
$73 = ((($0)) + 20|0);
$74 = HEAP32[$73>>2]|0;
$75 = ((($0)) + 33656|0);
$76 = ((($0)) + 16|0);
$77 = HEAP32[$76>>2]|0;
$78 = (8192 - ($77))|0;
$79 = (_Stream_Write($74,$75,$78)|0);
$80 = ((($0)) + 12|0);
HEAP32[$80>>2] = $75;
HEAP32[$76>>2] = 8192;
_Deflate_MoveBlock($0);
$$0111 = $79;
return ($$0111|0);
}
function _Deflate_Hash($0) {
$0 = $0|0;
var $$masked = 0, $$masked3 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = $1&255;
$3 = $2 << 8;
$4 = ((($0)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
$7 = $6 << 4;
$8 = ((($0)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$$masked3 = $3 & 3840;
$$masked = $$masked3 ^ $7;
$11 = $$masked ^ $10;
return ($11|0);
}
function _Deflate_MatchLen($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0$lcssa = 0, $$011 = 0, $$0710 = 0, $$089 = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($2|0)>(0);
L1: do {
if ($3) {
$$011 = 0;$$0710 = $0;$$089 = $1;
while(1) {
$4 = HEAP8[$$0710>>0]|0;
$5 = HEAP8[$$089>>0]|0;
$6 = ($4<<24>>24)==($5<<24>>24);
if (!($6)) {
$$0$lcssa = $$011;
break L1;
}
$7 = (($$011) + 1)|0;
$8 = ((($$0710)) + 1|0);
$9 = ((($$089)) + 1|0);
$10 = ($7|0)<($2|0);
if ($10) {
$$011 = $7;$$0710 = $8;$$089 = $9;
} else {
$$0$lcssa = $7;
break;
}
}
} else {
$$0$lcssa = 0;
}
} while(0);
return ($$0$lcssa|0);
}
function _Deflate_LenDist($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $$1 = 0, $$lcssa = 0, $$pr = 0, $$pr42 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$0 = 0;
while(1) {
$3 = (($$0) + 1)|0;
$4 = (1104 + ($3<<1)|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = ($6|0)>($1|0);
if ($7) {
break;
} else {
$$0 = $3;
}
}
$8 = (($$0) + 257)|0;
$9 = (((($0)) + 24|0) + ($8<<1)|0);
$10 = HEAP16[$9>>1]|0;
$11 = $10&65535;
$12 = ((($0)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = $11 << $13;
$15 = HEAP32[$0>>2]|0;
$16 = $15 | $14;
HEAP32[$0>>2] = $16;
$17 = (((($0)) + 600|0) + ($8)|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18&255;
$20 = (($13) + ($19))|0;
HEAP32[$12>>2] = $20;
$21 = (($$0) + -8)|0;
$22 = ($21>>>0)<(20);
if ($22) {
$23 = (912 + ($$0)|0);
$24 = (1104 + ($$0<<1)|0);
$25 = HEAP16[$24>>1]|0;
$26 = $25&65535;
$27 = (($1) - ($26))|0;
$28 = $27 << $20;
$29 = $28 | $16;
HEAP32[$0>>2] = $29;
$30 = HEAP8[$23>>0]|0;
$31 = $30&255;
$32 = (($20) + ($31))|0;
HEAP32[$12>>2] = $32;
$$pr = $32;
} else {
$$pr = $20;
}
$33 = ($$pr>>>0)>(7);
if ($33) {
$34 = ((($0)) + 12|0);
$35 = ((($0)) + 16|0);
while(1) {
$36 = HEAP32[$0>>2]|0;
$37 = $36&255;
$38 = HEAP32[$34>>2]|0;
$39 = ((($38)) + 1|0);
HEAP32[$34>>2] = $39;
HEAP8[$38>>0] = $37;
$40 = HEAP32[$35>>2]|0;
$41 = (($40) + -1)|0;
HEAP32[$35>>2] = $41;
$42 = HEAP32[$0>>2]|0;
$43 = (8)?($42 >>> 8):($42);
HEAP32[$0>>2] = $43;
$44 = HEAP32[$12>>2]|0;
$45 = (($44) + -8)|0;
HEAP32[$12>>2] = $45;
$46 = ($45>>>0)>(7);
if (!($46)) {
$$lcssa = $45;
break;
}
}
} else {
$$lcssa = $$pr;
}
$$1 = 0;
while(1) {
$47 = (($$1) + 1)|0;
$48 = (1168 + ($47<<1)|0);
$49 = HEAP16[$48>>1]|0;
$50 = $49&65535;
$51 = ($50|0)>($2|0);
if ($51) {
break;
} else {
$$1 = $47;
}
}
$52 = (_Huffman_ReverseBits($$1,5)|0);
$53 = $52 << $$lcssa;
$54 = HEAP32[$0>>2]|0;
$55 = $54 | $53;
HEAP32[$0>>2] = $55;
$56 = (($$lcssa) + 5)|0;
HEAP32[$12>>2] = $56;
$57 = (($$1) + -4)|0;
$58 = ($57>>>0)<(26);
if ($58) {
$59 = (1008 + ($$1)|0);
$60 = (1168 + ($$1<<1)|0);
$61 = HEAP16[$60>>1]|0;
$62 = $61&65535;
$63 = (($2) - ($62))|0;
$64 = $63 << $56;
$65 = $64 | $55;
HEAP32[$0>>2] = $65;
$66 = HEAP8[$59>>0]|0;
$67 = $66&255;
$68 = (($56) + ($67))|0;
HEAP32[$12>>2] = $68;
$$pr42 = $68;
} else {
$$pr42 = $56;
}
$69 = ($$pr42>>>0)>(7);
if (!($69)) {
return;
}
$70 = ((($0)) + 12|0);
$71 = ((($0)) + 16|0);
while(1) {
$72 = HEAP32[$0>>2]|0;
$73 = $72&255;
$74 = HEAP32[$70>>2]|0;
$75 = ((($74)) + 1|0);
HEAP32[$70>>2] = $75;
HEAP8[$74>>0] = $73;
$76 = HEAP32[$71>>2]|0;
$77 = (($76) + -1)|0;
HEAP32[$71>>2] = $77;
$78 = HEAP32[$0>>2]|0;
$79 = (8)?($78 >>> 8):($78);
HEAP32[$0>>2] = $79;
$80 = HEAP32[$12>>2]|0;
$81 = (($80) + -8)|0;
HEAP32[$12>>2] = $81;
$82 = ($81>>>0)>(7);
if (!($82)) {
break;
}
}
return;
}
function _Deflate_Lit($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (((($0)) + 24|0) + ($1<<1)|0);
$3 = HEAP16[$2>>1]|0;
$4 = $3&65535;
$5 = ((($0)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$7 = $4 << $6;
$8 = HEAP32[$0>>2]|0;
$9 = $8 | $7;
HEAP32[$0>>2] = $9;
$10 = (((($0)) + 600|0) + ($1)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = (($6) + ($12))|0;
HEAP32[$5>>2] = $13;
$14 = ($13>>>0)>(7);
if (!($14)) {
return;
}
$15 = ((($0)) + 12|0);
$16 = ((($0)) + 16|0);
while(1) {
$17 = HEAP32[$0>>2]|0;
$18 = $17&255;
$19 = HEAP32[$15>>2]|0;
$20 = ((($19)) + 1|0);
HEAP32[$15>>2] = $20;
HEAP8[$19>>0] = $18;
$21 = HEAP32[$16>>2]|0;
$22 = (($21) + -1)|0;
HEAP32[$16>>2] = $22;
$23 = HEAP32[$0>>2]|0;
$24 = (8)?($23 >>> 8):($23);
HEAP32[$0>>2] = $24;
$25 = HEAP32[$5>>2]|0;
$26 = (($25) + -8)|0;
HEAP32[$5>>2] = $26;
$27 = ($26>>>0)>(7);
if (!($27)) {
break;
}
}
return;
}
function _Deflate_MoveBlock($0) {
$0 = $0|0;
var $$021 = 0, $$120 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond22 = 0, $spec$select = 0, $spec$select19 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 888|0);
$2 = ((($0)) + 17272|0);
_Mem_Copy($1,$2,16384);
$3 = ((($0)) + 8|0);
HEAP32[$3>>2] = 16384;
$$021 = 0;
while(1) {
$4 = (((($0)) + 41848|0) + ($$021<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)<(16384);
$7 = (($5) + -16384)|0;
$spec$select = $6 ? 0 : $7;
HEAP32[$4>>2] = $spec$select;
$8 = (($$021) + 1)|0;
$exitcond22 = ($8|0)==(4096);
if ($exitcond22) {
break;
} else {
$$021 = $8;
}
}
$$120 = 0;
while(1) {
$9 = (((($0)) + 58232|0) + ($$120<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)<(16384);
$12 = (($10) + -16384)|0;
$spec$select19 = $11 ? 0 : $12;
HEAP32[$9>>2] = $spec$select19;
$13 = (($$120) + 1)|0;
$exitcond = ($13|0)==(32768);
if ($exitcond) {
break;
} else {
$$120 = $13;
}
}
return;
}
function _GZip_MakeStream($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Deflate_MakeStream($0,$1,$2);
$3 = ((($1)) + 189308|0);
HEAP32[$3>>2] = -1;
$4 = ((($1)) + 189312|0);
HEAP32[$4>>2] = 0;
$5 = ((($0)) + 8|0);
HEAP32[$5>>2] = 29;
$6 = ((($0)) + 28|0);
HEAP32[$6>>2] = 4;
return;
}
function _GZip_StreamWriteFirst($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $10 = 0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 20|0);
$7 = HEAP32[$6>>2]|0;
$8 = (_Stream_Write($7,22234,10)|0);
$9 = ($8|0)==(0);
if (!($9)) {
$$0 = $8;
return ($$0|0);
}
$10 = ((($0)) + 8|0);
HEAP32[$10>>2] = 30;
$11 = (_GZip_StreamWrite($0,$1,$2,$3)|0);
$$0 = $11;
return ($$0|0);
}
function _GZip_StreamClose($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 32|0);
$3 = HEAP32[$2>>2]|0;
$4 = (_Deflate_StreamClose($0)|0);
$5 = ($4|0)==(0);
if (!($5)) {
$$0 = $4;
STACKTOP = sp;return ($$0|0);
}
$6 = ((($3)) + 189308|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7 ^ -1;
_Stream_SetU32_LE($1,$8);
$9 = ((($1)) + 4|0);
$10 = ((($3)) + 189312|0);
$11 = HEAP32[$10>>2]|0;
_Stream_SetU32_LE($9,$11);
$12 = ((($3)) + 20|0);
$13 = HEAP32[$12>>2]|0;
$14 = (_Stream_Write($13,$1,8)|0);
$$0 = $14;
STACKTOP = sp;return ($$0|0);
}
function _GZip_StreamWrite($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$0$masked = 0, $$02021 = 0, $$022 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 189308|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($5)) + 189312|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($9) + ($2))|0;
HEAP32[$8>>2] = $10;
$11 = ($2|0)==(0);
if ($11) {
$$0$lcssa = $7;
HEAP32[$6>>2] = $$0$lcssa;
$21 = (_Deflate_StreamWrite($0,$1,$2,$3)|0);
return ($21|0);
}
$$02021 = 0;$$022 = $7;
while(1) {
$12 = (($1) + ($$02021)|0);
$13 = HEAP8[$12>>0]|0;
$14 = $13&255;
$$0$masked = $$022 & 255;
$15 = $$0$masked ^ $14;
$16 = (7584 + ($15<<2)|0);
$17 = HEAP32[$16>>2]|0;
$18 = (8)?($$022 >>> 8):($$022);
$19 = $17 ^ $18;
$20 = (($$02021) + 1)|0;
$exitcond = ($20|0)==($2|0);
if ($exitcond) {
$$0$lcssa = $19;
break;
} else {
$$02021 = $20;$$022 = $19;
}
}
HEAP32[$6>>2] = $$0$lcssa;
$21 = (_Deflate_StreamWrite($0,$1,$2,$3)|0);
return ($21|0);
}
function _Zip_Init($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[$0>>2] = $1;
$2 = ((($0)) + 12|0);
HEAP32[$2>>2] = 0;
$3 = ((($0)) + 4|0);
HEAP32[$3>>2] = 1;
$4 = ((($0)) + 8|0);
HEAP32[$4>>2] = 5;
return;
}
function _Zip_DefaultProcessor($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Zip_DefaultSelector($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _Zip_Extract($0) {
$0 = $0|0;
var $$05576 = 0, $$15673 = 0, $$2 = 0, $$25763 = 0, $$pr = 0, $$pr$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $7 = 0, $8 = 0, $9 = 0, $switch$split2D = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 4|0;
$2 = sp;
$3 = HEAP32[$0>>2]|0;
HEAP32[$2>>2] = 0;
$4 = ((($3)) + 24|0);
$5 = HEAP32[$4>>2]|0;
$6 = (FUNCTION_TABLE_iii[$5 & 127]($3,$1)|0);
$7 = ($6|0)==(0);
L1: do {
if ($7) {
$8 = HEAP32[$1>>2]|0;
$9 = ($8>>>0)<(257);
$10 = $9 ? $8 : 257;
$11 = ($10|0)>(22);
L3: do {
if ($11) {
$12 = ((($3)) + 16|0);
$$05576 = 22;
while(1) {
$15 = HEAP32[$12>>2]|0;
$16 = HEAP32[$1>>2]|0;
$17 = (($16) - ($$05576))|0;
$18 = (FUNCTION_TABLE_iii[$15 & 127]($3,$17)|0);
$19 = ($18|0)==(0);
if (!($19)) {
$$2 = -857812947;
break L1;
}
$20 = (_Stream_ReadU32_LE($3,$2)|0);
$21 = ($20|0)==(0);
if (!($21)) {
$$2 = $20;
break L1;
}
$22 = HEAP32[$2>>2]|0;
$23 = ($22|0)==(101010256);
$13 = (($$05576) + 1)|0;
if ($23) {
break L3;
}
$14 = ($13>>>0)<($10>>>0);
if ($14) {
$$05576 = $13;
} else {
$$2 = -857812946;
break L1;
}
}
} else {
$$pr$pr = HEAP32[$2>>2]|0;
$24 = ($$pr$pr|0)==(101010256);
if (!($24)) {
$$2 = -857812946;
break L1;
}
}
} while(0);
$25 = (_Zip_ReadEndOfCentralDirectory($0)|0);
$26 = ($25|0)==(0);
if ($26) {
$27 = ((($3)) + 16|0);
$28 = HEAP32[$27>>2]|0;
$29 = ((($0)) + 24|0);
$30 = HEAP32[$29>>2]|0;
$31 = (FUNCTION_TABLE_iii[$28 & 127]($3,$30)|0);
$32 = ($31|0)==(0);
if ($32) {
$33 = ((($0)) + 16|0);
HEAP32[$33>>2] = 0;
$34 = ((($0)) + 20|0);
$35 = HEAP32[$34>>2]|0;
$36 = ($35|0)>(0);
if ($36) {
$$15673 = 0;
while(1) {
$40 = (_Stream_ReadU32_LE($3,$2)|0);
$41 = ($40|0)==(0);
if (!($41)) {
$$2 = $40;
break L1;
}
$42 = HEAP32[$2>>2]|0;
$switch$split2D = ($42|0)<(101010256);
if (!($switch$split2D)) {
label = 26;
break;
}
switch ($42|0) {
case 33639248: {
break;
}
default: {
$$2 = -857812944;
break L1;
}
}
$43 = (_Zip_ReadCentralDirectory($0)|0);
$44 = ($43|0)==(0);
$38 = (($$15673) + 1)|0;
if (!($44)) {
$$2 = $43;
break L1;
}
$37 = HEAP32[$34>>2]|0;
$39 = ($38|0)<($37|0);
if ($39) {
$$15673 = $38;
} else {
break;
}
}
if ((label|0) == 26) {
switch ($42|0) {
case 101010256: {
break;
}
default: {
$$2 = -857812944;
break L1;
}
}
}
$$pr = HEAP32[$33>>2]|0;
$45 = ($$pr|0)>(0);
if ($45) {
$$25763 = 0;
while(1) {
$49 = (((($0)) + 32|0) + ($$25763<<4)|0);
$50 = HEAP32[$27>>2]|0;
$51 = (((((($0)) + 32|0) + ($$25763<<4)|0)) + 8|0);
$52 = HEAP32[$51>>2]|0;
$53 = (FUNCTION_TABLE_iii[$50 & 127]($3,$52)|0);
$54 = ($53|0)==(0);
if (!($54)) {
$$2 = -857812943;
break L1;
}
$55 = (_Stream_ReadU32_LE($3,$2)|0);
$56 = ($55|0)==(0);
if (!($56)) {
$$2 = $55;
break L1;
}
$57 = HEAP32[$2>>2]|0;
$58 = ($57|0)==(67324752);
if (!($58)) {
$$2 = -857812942;
break L1;
}
$59 = (_Zip_ReadLocalFileHeader($0,$49)|0);
$60 = ($59|0)==(0);
$47 = (($$25763) + 1)|0;
if (!($60)) {
$$2 = $59;
break L1;
}
$46 = HEAP32[$33>>2]|0;
$48 = ($47|0)<($46|0);
if ($48) {
$$25763 = $47;
} else {
$$2 = 0;
break;
}
}
} else {
$$2 = 0;
}
} else {
$$2 = 0;
}
} else {
$$2 = -857812945;
}
} else {
$$2 = $25;
}
} else {
$$2 = $6;
}
} while(0);
STACKTOP = sp;return ($$2|0);
}
function _Zip_ReadEndOfCentralDirectory($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
$2 = HEAP32[$0>>2]|0;
$3 = (_Stream_Read($2,$1,18)|0);
$4 = ($3|0)==(0);
if (!($4)) {
$$0 = $3;
STACKTOP = sp;return ($$0|0);
}
$5 = ((($1)) + 6|0);
$6 = (_Stream_GetU16_LE($5)|0);
$7 = $6&65535;
$8 = ((($0)) + 20|0);
HEAP32[$8>>2] = $7;
$9 = ((($1)) + 12|0);
$10 = (_Stream_GetU32_LE($9)|0);
$11 = ((($0)) + 24|0);
HEAP32[$11>>2] = $10;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _Zip_ReadCentralDirectory($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 576|0;
$1 = sp + 512|0;
$2 = sp + 560|0;
$3 = sp;
$4 = HEAP32[$0>>2]|0;
$5 = (_Stream_Read($4,$1,42)|0);
$6 = ($5|0)==(0);
if (!($6)) {
$$0 = $5;
STACKTOP = sp;return ($$0|0);
}
$7 = ((($1)) + 24|0);
$8 = (_Stream_GetU16_LE($7)|0);
$9 = $8&65535;
$10 = ($8&65535)>(512);
if ($10) {
$$0 = -857812941;
STACKTOP = sp;return ($$0|0);
}
_String_Init($2,$3,$9,$9);
$11 = (_Stream_Read($4,$3,$9)|0);
$12 = ($11|0)==(0);
if (!($12)) {
$$0 = $11;
STACKTOP = sp;return ($$0|0);
}
$13 = ((($1)) + 26|0);
$14 = (_Stream_GetU16_LE($13)|0);
$15 = $14&65535;
$16 = ((($1)) + 28|0);
$17 = (_Stream_GetU16_LE($16)|0);
$18 = $17&65535;
$19 = ((($4)) + 12|0);
$20 = HEAP32[$19>>2]|0;
$21 = (($18) + ($15))|0;
$22 = (FUNCTION_TABLE_iii[$20 & 127]($4,$21)|0);
$23 = ($22|0)==(0);
if (!($23)) {
$$0 = $22;
STACKTOP = sp;return ($$0|0);
}
$24 = ((($0)) + 8|0);
$25 = HEAP32[$24>>2]|0;
$26 = (FUNCTION_TABLE_ii[$25 & 31]($2)|0);
$27 = ($26<<24>>24)==(0);
if ($27) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$28 = ((($0)) + 16|0);
$29 = HEAP32[$28>>2]|0;
$30 = ($29|0)>(1023);
if ($30) {
$$0 = -857812948;
STACKTOP = sp;return ($$0|0);
}
$31 = (($29) + 1)|0;
HEAP32[$28>>2] = $31;
$32 = ((($1)) + 12|0);
$33 = (_Stream_GetU32_LE($32)|0);
$34 = (((((($0)) + 32|0) + ($29<<4)|0)) + 12|0);
HEAP32[$34>>2] = $33;
$35 = ((($1)) + 16|0);
$36 = (_Stream_GetU32_LE($35)|0);
$37 = (((($0)) + 32|0) + ($29<<4)|0);
HEAP32[$37>>2] = $36;
$38 = ((($1)) + 20|0);
$39 = (_Stream_GetU32_LE($38)|0);
$40 = (((((($0)) + 32|0) + ($29<<4)|0)) + 4|0);
HEAP32[$40>>2] = $39;
$41 = ((($1)) + 38|0);
$42 = (_Stream_GetU32_LE($41)|0);
$43 = (((((($0)) + 32|0) + ($29<<4)|0)) + 8|0);
HEAP32[$43>>2] = $42;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _Zip_ReadLocalFileHeader($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$039 = 0, $$040 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 45408|0;
$2 = sp + 512|0;
$3 = sp + 45400|0;
$4 = sp + 544|0;
$5 = sp;
$6 = sp + 45344|0;
$7 = sp + 45288|0;
$8 = sp + 552|0;
$9 = HEAP32[$0>>2]|0;
$10 = (_Stream_Read($9,$2,26)|0);
$11 = ($10|0)==(0);
if (!($11)) {
$$0 = $10;
STACKTOP = sp;return ($$0|0);
}
$12 = ((($2)) + 4|0);
$13 = (_Stream_GetU16_LE($12)|0);
$14 = $13&65535;
HEAP32[$3>>2] = $14;
$15 = ((($2)) + 14|0);
$16 = (_Stream_GetU32_LE($15)|0);
$17 = ((($2)) + 18|0);
$18 = (_Stream_GetU32_LE($17)|0);
$19 = ($16|0)==(0);
if ($19) {
$20 = HEAP32[$1>>2]|0;
$$039 = $20;
} else {
$$039 = $16;
}
$21 = ($18|0)==(0);
if ($21) {
$22 = ((($1)) + 4|0);
$23 = HEAP32[$22>>2]|0;
$$040 = $23;
} else {
$$040 = $18;
}
$24 = ((($2)) + 22|0);
$25 = (_Stream_GetU16_LE($24)|0);
$26 = $25&65535;
$27 = ((($2)) + 24|0);
$28 = (_Stream_GetU16_LE($27)|0);
$29 = $28&65535;
$30 = ($25&65535)>(512);
if ($30) {
$$0 = -857812941;
STACKTOP = sp;return ($$0|0);
}
_String_Init($4,$5,$26,$26);
$31 = (_Stream_Read($9,$5,$26)|0);
$32 = ($31|0)==(0);
if (!($32)) {
$$0 = $31;
STACKTOP = sp;return ($$0|0);
}
$33 = ((($0)) + 28|0);
HEAP32[$33>>2] = $1;
$34 = ((($0)) + 8|0);
$35 = HEAP32[$34>>2]|0;
$36 = (FUNCTION_TABLE_ii[$35 & 31]($4)|0);
$37 = ($36<<24>>24)==(0);
if ($37) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$38 = ((($9)) + 12|0);
$39 = HEAP32[$38>>2]|0;
$40 = (FUNCTION_TABLE_iii[$39 & 127]($9,$29)|0);
$41 = ($40|0)==(0);
if (!($41)) {
$$0 = $40;
STACKTOP = sp;return ($$0|0);
}
$42 = HEAP32[$3>>2]|0;
switch ($42|0) {
case 0: {
_Stream_ReadonlyPortion($6,$9,$$040);
$43 = ((($0)) + 4|0);
$44 = HEAP32[$43>>2]|0;
$45 = (FUNCTION_TABLE_iiii[$44 & 15]($4,$6,$0)|0);
$$0 = $45;
STACKTOP = sp;return ($$0|0);
break;
}
case 8: {
_Stream_ReadonlyPortion($6,$9,$$039);
_Inflate_MakeStream($7,$8,$6);
$46 = ((($0)) + 4|0);
$47 = HEAP32[$46>>2]|0;
$48 = (FUNCTION_TABLE_iiii[$47 & 15]($4,$7,$0)|0);
$$0 = $48;
STACKTOP = sp;return ($$0|0);
break;
}
default: {
_Platform_Log1(22244,$3);
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
}
return (0)|0;
}
function _String_Init($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $2&65535;
$5 = $3&65535;
HEAP32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP16[$$sroa$4$0$$sroa_idx2>>1] = $4;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 6|0);
HEAP16[$$sroa$5$0$$sroa_idx4>>1] = $5;
return;
}
function _Drawer_XMin($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$sroa$12$0$$sroa_idx40 = 0, $$sroa$12$0$$sroa_idx41 = 0, $$sroa$12$0$$sroa_idx43 = 0, $$sroa$12$0$$sroa_idx45 = 0, $$sroa$13$0$$sroa_idx48 = 0, $$sroa$13$0$$sroa_idx49 = 0, $$sroa$13$0$$sroa_idx51 = 0, $$sroa$13$0$$sroa_idx53 = 0, $$sroa$16$0$$sroa_idx56 = 0, $$sroa$16$0$$sroa_idx57 = 0, $$sroa$16$0$$sroa_idx59 = 0, $$sroa$16$0$$sroa_idx61 = 0, $$sroa$7$0$$sroa_idx24 = 0, $$sroa$7$0$$sroa_idx25 = 0, $$sroa$7$0$$sroa_idx27 = 0, $$sroa$7$0$$sroa_idx29 = 0, $$sroa$9$0$$sroa_idx32 = 0, $$sroa$9$0$$sroa_idx33 = 0, $$sroa$9$0$$sroa_idx35 = 0;
var $$sroa$9$0$$sroa_idx37 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[$3>>2]|0;
$5 = $2&65535;
$6 = HEAP32[(1384648)>>2]|0;
$7 = $6 & $5;
$8 = (+($7|0));
$9 = +HEAPF32[(1384656)>>2];
$10 = $9 * $8;
$11 = HEAP32[(1241072)>>2]|0;
$12 = (($0) + -1)|0;
$13 = (+($12|0));
$14 = +HEAPF32[(1241084)>>2];
$15 = $14 * 0.99937498569488525;
$16 = $15 + $13;
$17 = +HEAPF32[(1241080)>>2];
$18 = $9 * $17;
$19 = $10 + $18;
$20 = +HEAPF32[(1241068)>>2];
$21 = $9 * $20;
$22 = $21 * 0.99937498569488525;
$23 = $10 + $22;
$24 = HEAP8[1241056]|0;
$25 = ($24<<24>>24)==(0);
if ($25) {
$$0 = $1;
} else {
$26 = HEAP32[(1241060)>>2]|0;
$27 = (_PackedCol_Tint($1,$26)|0);
$$0 = $27;
}
$28 = HEAP32[(1241088)>>2]|0;
$29 = HEAP32[(1241104)>>2]|0;
$30 = +HEAPF32[(1241108)>>2];
$31 = $30 + $13;
$32 = ((($4)) + 24|0);
HEAP32[$4>>2] = $28;
$$sroa$7$0$$sroa_idx29 = ((($4)) + 4|0);
HEAP32[$$sroa$7$0$$sroa_idx29>>2] = $29;
$$sroa$9$0$$sroa_idx37 = ((($4)) + 8|0);
HEAPF32[$$sroa$9$0$$sroa_idx37>>2] = $31;
$$sroa$12$0$$sroa_idx45 = ((($4)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx45>>2] = $$0;
$$sroa$13$0$$sroa_idx53 = ((($4)) + 16|0);
HEAPF32[$$sroa$13$0$$sroa_idx53>>2] = $16;
$$sroa$16$0$$sroa_idx61 = ((($4)) + 20|0);
HEAPF32[$$sroa$16$0$$sroa_idx61>>2] = $19;
$33 = HEAP32[(1241096)>>2]|0;
$34 = ((($4)) + 48|0);
HEAP32[$32>>2] = $28;
$$sroa$7$0$$sroa_idx27 = ((($4)) + 28|0);
HEAP32[$$sroa$7$0$$sroa_idx27>>2] = $29;
$$sroa$9$0$$sroa_idx35 = ((($4)) + 32|0);
HEAP32[$$sroa$9$0$$sroa_idx35>>2] = $33;
$$sroa$12$0$$sroa_idx43 = ((($4)) + 36|0);
HEAP32[$$sroa$12$0$$sroa_idx43>>2] = $$0;
$$sroa$13$0$$sroa_idx51 = ((($4)) + 40|0);
HEAP32[$$sroa$13$0$$sroa_idx51>>2] = $11;
$$sroa$16$0$$sroa_idx59 = ((($4)) + 44|0);
HEAPF32[$$sroa$16$0$$sroa_idx59>>2] = $19;
$35 = HEAP32[(1241092)>>2]|0;
$36 = ((($4)) + 72|0);
HEAP32[$34>>2] = $28;
$$sroa$7$0$$sroa_idx25 = ((($4)) + 52|0);
HEAP32[$$sroa$7$0$$sroa_idx25>>2] = $35;
$$sroa$9$0$$sroa_idx33 = ((($4)) + 56|0);
HEAP32[$$sroa$9$0$$sroa_idx33>>2] = $33;
$$sroa$12$0$$sroa_idx41 = ((($4)) + 60|0);
HEAP32[$$sroa$12$0$$sroa_idx41>>2] = $$0;
$$sroa$13$0$$sroa_idx49 = ((($4)) + 64|0);
HEAP32[$$sroa$13$0$$sroa_idx49>>2] = $11;
$$sroa$16$0$$sroa_idx57 = ((($4)) + 68|0);
HEAPF32[$$sroa$16$0$$sroa_idx57>>2] = $23;
$37 = +HEAPF32[(1241108)>>2];
$38 = $37 + $13;
$39 = ((($4)) + 96|0);
HEAP32[$36>>2] = $28;
$$sroa$7$0$$sroa_idx24 = ((($4)) + 76|0);
HEAP32[$$sroa$7$0$$sroa_idx24>>2] = $35;
$$sroa$9$0$$sroa_idx32 = ((($4)) + 80|0);
HEAPF32[$$sroa$9$0$$sroa_idx32>>2] = $38;
$$sroa$12$0$$sroa_idx40 = ((($4)) + 84|0);
HEAP32[$$sroa$12$0$$sroa_idx40>>2] = $$0;
$$sroa$13$0$$sroa_idx48 = ((($4)) + 88|0);
HEAPF32[$$sroa$13$0$$sroa_idx48>>2] = $16;
$$sroa$16$0$$sroa_idx56 = ((($4)) + 92|0);
HEAPF32[$$sroa$16$0$$sroa_idx56>>2] = $23;
HEAP32[$3>>2] = $39;
return;
}
function _Drawer_XMax($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$sroa$12$0$$sroa_idx40 = 0, $$sroa$12$0$$sroa_idx41 = 0, $$sroa$12$0$$sroa_idx43 = 0, $$sroa$12$0$$sroa_idx45 = 0, $$sroa$13$0$$sroa_idx48 = 0, $$sroa$13$0$$sroa_idx49 = 0, $$sroa$13$0$$sroa_idx51 = 0, $$sroa$13$0$$sroa_idx53 = 0, $$sroa$16$0$$sroa_idx56 = 0, $$sroa$16$0$$sroa_idx57 = 0, $$sroa$16$0$$sroa_idx59 = 0, $$sroa$16$0$$sroa_idx61 = 0, $$sroa$7$0$$sroa_idx24 = 0, $$sroa$7$0$$sroa_idx25 = 0, $$sroa$7$0$$sroa_idx27 = 0, $$sroa$7$0$$sroa_idx29 = 0, $$sroa$9$0$$sroa_idx32 = 0, $$sroa$9$0$$sroa_idx33 = 0, $$sroa$9$0$$sroa_idx35 = 0;
var $$sroa$9$0$$sroa_idx37 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[$3>>2]|0;
$5 = $2&65535;
$6 = HEAP32[(1384648)>>2]|0;
$7 = $6 & $5;
$8 = (+($7|0));
$9 = +HEAPF32[(1384656)>>2];
$10 = $9 * $8;
$11 = (+($0|0));
$12 = +HEAPF32[(1241072)>>2];
$13 = $11 - $12;
$14 = +HEAPF32[(1241084)>>2];
$15 = 1.0 - $14;
$16 = $15 * 0.99937498569488525;
$17 = +HEAPF32[(1241080)>>2];
$18 = $9 * $17;
$19 = $10 + $18;
$20 = +HEAPF32[(1241068)>>2];
$21 = $9 * $20;
$22 = $21 * 0.99937498569488525;
$23 = $10 + $22;
$24 = HEAP8[1241056]|0;
$25 = ($24<<24>>24)==(0);
if ($25) {
$$0 = $1;
} else {
$26 = HEAP32[(1241060)>>2]|0;
$27 = (_PackedCol_Tint($1,$26)|0);
$$0 = $27;
}
$28 = HEAP32[(1241100)>>2]|0;
$29 = HEAP32[(1241104)>>2]|0;
$30 = HEAP32[(1241096)>>2]|0;
$31 = ((($4)) + 24|0);
HEAP32[$4>>2] = $28;
$$sroa$7$0$$sroa_idx29 = ((($4)) + 4|0);
HEAP32[$$sroa$7$0$$sroa_idx29>>2] = $29;
$$sroa$9$0$$sroa_idx37 = ((($4)) + 8|0);
HEAP32[$$sroa$9$0$$sroa_idx37>>2] = $30;
$$sroa$12$0$$sroa_idx45 = ((($4)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx45>>2] = $$0;
$$sroa$13$0$$sroa_idx53 = ((($4)) + 16|0);
HEAPF32[$$sroa$13$0$$sroa_idx53>>2] = $13;
$$sroa$16$0$$sroa_idx61 = ((($4)) + 20|0);
HEAPF32[$$sroa$16$0$$sroa_idx61>>2] = $19;
$32 = +HEAPF32[(1241108)>>2];
$33 = (($0) + -1)|0;
$34 = (+($33|0));
$35 = $32 + $34;
$36 = ((($4)) + 48|0);
HEAP32[$31>>2] = $28;
$$sroa$7$0$$sroa_idx27 = ((($4)) + 28|0);
HEAP32[$$sroa$7$0$$sroa_idx27>>2] = $29;
$$sroa$9$0$$sroa_idx35 = ((($4)) + 32|0);
HEAPF32[$$sroa$9$0$$sroa_idx35>>2] = $35;
$$sroa$12$0$$sroa_idx43 = ((($4)) + 36|0);
HEAP32[$$sroa$12$0$$sroa_idx43>>2] = $$0;
$$sroa$13$0$$sroa_idx51 = ((($4)) + 40|0);
HEAPF32[$$sroa$13$0$$sroa_idx51>>2] = $16;
$$sroa$16$0$$sroa_idx59 = ((($4)) + 44|0);
HEAPF32[$$sroa$16$0$$sroa_idx59>>2] = $19;
$37 = HEAP32[(1241092)>>2]|0;
$38 = ((($4)) + 72|0);
HEAP32[$36>>2] = $28;
$$sroa$7$0$$sroa_idx25 = ((($4)) + 52|0);
HEAP32[$$sroa$7$0$$sroa_idx25>>2] = $37;
$$sroa$9$0$$sroa_idx33 = ((($4)) + 56|0);
HEAPF32[$$sroa$9$0$$sroa_idx33>>2] = $35;
$$sroa$12$0$$sroa_idx41 = ((($4)) + 60|0);
HEAP32[$$sroa$12$0$$sroa_idx41>>2] = $$0;
$$sroa$13$0$$sroa_idx49 = ((($4)) + 64|0);
HEAPF32[$$sroa$13$0$$sroa_idx49>>2] = $16;
$$sroa$16$0$$sroa_idx57 = ((($4)) + 68|0);
HEAPF32[$$sroa$16$0$$sroa_idx57>>2] = $23;
$39 = HEAP32[(1241096)>>2]|0;
$40 = ((($4)) + 96|0);
HEAP32[$38>>2] = $28;
$$sroa$7$0$$sroa_idx24 = ((($4)) + 76|0);
HEAP32[$$sroa$7$0$$sroa_idx24>>2] = $37;
$$sroa$9$0$$sroa_idx32 = ((($4)) + 80|0);
HEAP32[$$sroa$9$0$$sroa_idx32>>2] = $39;
$$sroa$12$0$$sroa_idx40 = ((($4)) + 84|0);
HEAP32[$$sroa$12$0$$sroa_idx40>>2] = $$0;
$$sroa$13$0$$sroa_idx48 = ((($4)) + 88|0);
HEAPF32[$$sroa$13$0$$sroa_idx48>>2] = $13;
$$sroa$16$0$$sroa_idx56 = ((($4)) + 92|0);
HEAPF32[$$sroa$16$0$$sroa_idx56>>2] = $23;
HEAP32[$3>>2] = $40;
return;
}
function _Drawer_ZMin($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$11$0$$sroa_idx32 = 0, $$sroa$11$0$$sroa_idx33 = 0, $$sroa$11$0$$sroa_idx35 = 0, $$sroa$11$0$$sroa_idx37 = 0, $$sroa$12$0$$sroa_idx40 = 0, $$sroa$12$0$$sroa_idx41 = 0, $$sroa$12$0$$sroa_idx43 = 0, $$sroa$12$0$$sroa_idx45 = 0, $$sroa$13$0$$sroa_idx48 = 0, $$sroa$13$0$$sroa_idx49 = 0, $$sroa$13$0$$sroa_idx51 = 0, $$sroa$13$0$$sroa_idx53 = 0, $$sroa$16$0$$sroa_idx56 = 0, $$sroa$16$0$$sroa_idx57 = 0, $$sroa$16$0$$sroa_idx59 = 0, $$sroa$16$0$$sroa_idx61 = 0, $$sroa$9$0$$sroa_idx24 = 0, $$sroa$9$0$$sroa_idx25 = 0;
var $$sroa$9$0$$sroa_idx27 = 0, $$sroa$9$0$$sroa_idx29 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0.0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0;
var sp = 0;
sp = STACKTOP;
$4 = HEAP32[$3>>2]|0;
$5 = $2&65535;
$6 = HEAP32[(1384648)>>2]|0;
$7 = $6 & $5;
$8 = (+($7|0));
$9 = +HEAPF32[(1384656)>>2];
$10 = $9 * $8;
$11 = (+($0|0));
$12 = +HEAPF32[(1241064)>>2];
$13 = $11 - $12;
$14 = +HEAPF32[(1241076)>>2];
$15 = 1.0 - $14;
$16 = $15 * 0.99937498569488525;
$17 = +HEAPF32[(1241080)>>2];
$18 = $9 * $17;
$19 = $10 + $18;
$20 = +HEAPF32[(1241068)>>2];
$21 = $9 * $20;
$22 = $21 * 0.99937498569488525;
$23 = $10 + $22;
$24 = HEAP8[1241056]|0;
$25 = ($24<<24>>24)==(0);
if ($25) {
$$0 = $1;
} else {
$26 = HEAP32[(1241060)>>2]|0;
$27 = (_PackedCol_Tint($1,$26)|0);
$$0 = $27;
}
$28 = HEAP32[(1241096)>>2]|0;
$29 = +HEAPF32[(1241100)>>2];
$30 = (($0) + -1)|0;
$31 = (+($30|0));
$32 = $29 + $31;
$33 = HEAP32[(1241092)>>2]|0;
$34 = ((($4)) + 24|0);
HEAPF32[$4>>2] = $32;
$$sroa$9$0$$sroa_idx25 = ((($4)) + 4|0);
HEAP32[$$sroa$9$0$$sroa_idx25>>2] = $33;
$$sroa$11$0$$sroa_idx33 = ((($4)) + 8|0);
HEAP32[$$sroa$11$0$$sroa_idx33>>2] = $28;
$$sroa$12$0$$sroa_idx41 = ((($4)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx41>>2] = $$0;
$$sroa$13$0$$sroa_idx49 = ((($4)) + 16|0);
HEAPF32[$$sroa$13$0$$sroa_idx49>>2] = $16;
$$sroa$16$0$$sroa_idx57 = ((($4)) + 20|0);
HEAPF32[$$sroa$16$0$$sroa_idx57>>2] = $23;
$35 = HEAP32[(1241088)>>2]|0;
$36 = ((($4)) + 48|0);
HEAP32[$34>>2] = $35;
$$sroa$9$0$$sroa_idx29 = ((($4)) + 28|0);
HEAP32[$$sroa$9$0$$sroa_idx29>>2] = $33;
$$sroa$11$0$$sroa_idx37 = ((($4)) + 32|0);
HEAP32[$$sroa$11$0$$sroa_idx37>>2] = $28;
$$sroa$12$0$$sroa_idx45 = ((($4)) + 36|0);
HEAP32[$$sroa$12$0$$sroa_idx45>>2] = $$0;
$$sroa$13$0$$sroa_idx53 = ((($4)) + 40|0);
HEAPF32[$$sroa$13$0$$sroa_idx53>>2] = $13;
$$sroa$16$0$$sroa_idx61 = ((($4)) + 44|0);
HEAPF32[$$sroa$16$0$$sroa_idx61>>2] = $23;
$37 = HEAP32[(1241104)>>2]|0;
HEAP32[$36>>2] = $35;
$$sroa$9$0$$sroa_idx27 = ((($4)) + 52|0);
HEAP32[$$sroa$9$0$$sroa_idx27>>2] = $37;
$$sroa$11$0$$sroa_idx35 = ((($4)) + 56|0);
HEAP32[$$sroa$11$0$$sroa_idx35>>2] = $28;
$$sroa$12$0$$sroa_idx43 = ((($4)) + 60|0);
HEAP32[$$sroa$12$0$$sroa_idx43>>2] = $$0;
$$sroa$13$0$$sroa_idx51 = ((($4)) + 64|0);
HEAPF32[$$sroa$13$0$$sroa_idx51>>2] = $13;
$$sroa$16$0$$sroa_idx59 = ((($4)) + 68|0);
HEAPF32[$$sroa$16$0$$sroa_idx59>>2] = $19;
$38 = +HEAPF32[(1241100)>>2];
$39 = $38 + $31;
$40 = ((($4)) + 96|0);
$$sroa$0$0$$sroa_idx = ((($4)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $39;
$$sroa$9$0$$sroa_idx24 = ((($4)) + 76|0);
HEAP32[$$sroa$9$0$$sroa_idx24>>2] = $37;
$$sroa$11$0$$sroa_idx32 = ((($4)) + 80|0);
HEAP32[$$sroa$11$0$$sroa_idx32>>2] = $28;
$$sroa$12$0$$sroa_idx40 = ((($4)) + 84|0);
HEAP32[$$sroa$12$0$$sroa_idx40>>2] = $$0;
$$sroa$13$0$$sroa_idx48 = ((($4)) + 88|0);
HEAPF32[$$sroa$13$0$$sroa_idx48>>2] = $16;
$$sroa$16$0$$sroa_idx56 = ((($4)) + 92|0);
HEAPF32[$$sroa$16$0$$sroa_idx56>>2] = $19;
HEAP32[$3>>2] = $40;
return;
}
function _Drawer_ZMax($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$11$0$$sroa_idx32 = 0, $$sroa$11$0$$sroa_idx33 = 0, $$sroa$11$0$$sroa_idx35 = 0, $$sroa$11$0$$sroa_idx37 = 0, $$sroa$12$0$$sroa_idx40 = 0, $$sroa$12$0$$sroa_idx41 = 0, $$sroa$12$0$$sroa_idx43 = 0, $$sroa$12$0$$sroa_idx45 = 0, $$sroa$13$0$$sroa_idx48 = 0, $$sroa$13$0$$sroa_idx49 = 0, $$sroa$13$0$$sroa_idx51 = 0, $$sroa$13$0$$sroa_idx53 = 0, $$sroa$16$0$$sroa_idx56 = 0, $$sroa$16$0$$sroa_idx57 = 0, $$sroa$16$0$$sroa_idx59 = 0, $$sroa$16$0$$sroa_idx61 = 0, $$sroa$9$0$$sroa_idx24 = 0, $$sroa$9$0$$sroa_idx25 = 0;
var $$sroa$9$0$$sroa_idx27 = 0, $$sroa$9$0$$sroa_idx29 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0.0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[$3>>2]|0;
$5 = $2&65535;
$6 = HEAP32[(1384648)>>2]|0;
$7 = $6 & $5;
$8 = (+($7|0));
$9 = +HEAPF32[(1384656)>>2];
$10 = $9 * $8;
$11 = HEAP32[(1241064)>>2]|0;
$12 = (($0) + -1)|0;
$13 = (+($12|0));
$14 = +HEAPF32[(1241076)>>2];
$15 = $14 * 0.99937498569488525;
$16 = $15 + $13;
$17 = +HEAPF32[(1241080)>>2];
$18 = $9 * $17;
$19 = $10 + $18;
$20 = +HEAPF32[(1241068)>>2];
$21 = $9 * $20;
$22 = $21 * 0.99937498569488525;
$23 = $10 + $22;
$24 = HEAP8[1241056]|0;
$25 = ($24<<24>>24)==(0);
if ($25) {
$$0 = $1;
} else {
$26 = HEAP32[(1241060)>>2]|0;
$27 = (_PackedCol_Tint($1,$26)|0);
$$0 = $27;
}
$28 = HEAP32[(1241108)>>2]|0;
$29 = +HEAPF32[(1241100)>>2];
$30 = $29 + $13;
$31 = HEAP32[(1241104)>>2]|0;
$32 = ((($4)) + 24|0);
HEAPF32[$4>>2] = $30;
$$sroa$9$0$$sroa_idx25 = ((($4)) + 4|0);
HEAP32[$$sroa$9$0$$sroa_idx25>>2] = $31;
$$sroa$11$0$$sroa_idx33 = ((($4)) + 8|0);
HEAP32[$$sroa$11$0$$sroa_idx33>>2] = $28;
$$sroa$12$0$$sroa_idx41 = ((($4)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx41>>2] = $$0;
$$sroa$13$0$$sroa_idx49 = ((($4)) + 16|0);
HEAPF32[$$sroa$13$0$$sroa_idx49>>2] = $16;
$$sroa$16$0$$sroa_idx57 = ((($4)) + 20|0);
HEAPF32[$$sroa$16$0$$sroa_idx57>>2] = $19;
$33 = HEAP32[(1241088)>>2]|0;
$34 = ((($4)) + 48|0);
HEAP32[$32>>2] = $33;
$$sroa$9$0$$sroa_idx29 = ((($4)) + 28|0);
HEAP32[$$sroa$9$0$$sroa_idx29>>2] = $31;
$$sroa$11$0$$sroa_idx37 = ((($4)) + 32|0);
HEAP32[$$sroa$11$0$$sroa_idx37>>2] = $28;
$$sroa$12$0$$sroa_idx45 = ((($4)) + 36|0);
HEAP32[$$sroa$12$0$$sroa_idx45>>2] = $$0;
$$sroa$13$0$$sroa_idx53 = ((($4)) + 40|0);
HEAP32[$$sroa$13$0$$sroa_idx53>>2] = $11;
$$sroa$16$0$$sroa_idx61 = ((($4)) + 44|0);
HEAPF32[$$sroa$16$0$$sroa_idx61>>2] = $19;
$35 = HEAP32[(1241092)>>2]|0;
HEAP32[$34>>2] = $33;
$$sroa$9$0$$sroa_idx27 = ((($4)) + 52|0);
HEAP32[$$sroa$9$0$$sroa_idx27>>2] = $35;
$$sroa$11$0$$sroa_idx35 = ((($4)) + 56|0);
HEAP32[$$sroa$11$0$$sroa_idx35>>2] = $28;
$$sroa$12$0$$sroa_idx43 = ((($4)) + 60|0);
HEAP32[$$sroa$12$0$$sroa_idx43>>2] = $$0;
$$sroa$13$0$$sroa_idx51 = ((($4)) + 64|0);
HEAP32[$$sroa$13$0$$sroa_idx51>>2] = $11;
$$sroa$16$0$$sroa_idx59 = ((($4)) + 68|0);
HEAPF32[$$sroa$16$0$$sroa_idx59>>2] = $23;
$36 = +HEAPF32[(1241100)>>2];
$37 = $36 + $13;
$38 = ((($4)) + 96|0);
$$sroa$0$0$$sroa_idx = ((($4)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $37;
$$sroa$9$0$$sroa_idx24 = ((($4)) + 76|0);
HEAP32[$$sroa$9$0$$sroa_idx24>>2] = $35;
$$sroa$11$0$$sroa_idx32 = ((($4)) + 80|0);
HEAP32[$$sroa$11$0$$sroa_idx32>>2] = $28;
$$sroa$12$0$$sroa_idx40 = ((($4)) + 84|0);
HEAP32[$$sroa$12$0$$sroa_idx40>>2] = $$0;
$$sroa$13$0$$sroa_idx48 = ((($4)) + 88|0);
HEAPF32[$$sroa$13$0$$sroa_idx48>>2] = $16;
$$sroa$16$0$$sroa_idx56 = ((($4)) + 92|0);
HEAPF32[$$sroa$16$0$$sroa_idx56>>2] = $23;
HEAP32[$3>>2] = $38;
return;
}
function _Drawer_YMin($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$10$0$$sroa_idx32 = 0, $$sroa$10$0$$sroa_idx33 = 0, $$sroa$10$0$$sroa_idx35 = 0, $$sroa$10$0$$sroa_idx37 = 0, $$sroa$12$0$$sroa_idx40 = 0, $$sroa$12$0$$sroa_idx41 = 0, $$sroa$12$0$$sroa_idx43 = 0, $$sroa$12$0$$sroa_idx45 = 0, $$sroa$13$0$$sroa_idx48 = 0, $$sroa$13$0$$sroa_idx49 = 0, $$sroa$13$0$$sroa_idx51 = 0, $$sroa$13$0$$sroa_idx53 = 0, $$sroa$16$0$$sroa_idx56 = 0, $$sroa$16$0$$sroa_idx57 = 0, $$sroa$16$0$$sroa_idx59 = 0, $$sroa$16$0$$sroa_idx61 = 0, $$sroa$9$0$$sroa_idx24 = 0, $$sroa$9$0$$sroa_idx25 = 0;
var $$sroa$9$0$$sroa_idx27 = 0, $$sroa$9$0$$sroa_idx29 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0.0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[$3>>2]|0;
$5 = $2&65535;
$6 = HEAP32[(1384648)>>2]|0;
$7 = $6 & $5;
$8 = (+($7|0));
$9 = +HEAPF32[(1384656)>>2];
$10 = $9 * $8;
$11 = HEAP32[(1241064)>>2]|0;
$12 = (($0) + -1)|0;
$13 = (+($12|0));
$14 = +HEAPF32[(1241076)>>2];
$15 = $14 * 0.99937498569488525;
$16 = $15 + $13;
$17 = +HEAPF32[(1241072)>>2];
$18 = $9 * $17;
$19 = $10 + $18;
$20 = +HEAPF32[(1241084)>>2];
$21 = $9 * $20;
$22 = $21 * 0.99937498569488525;
$23 = $10 + $22;
$24 = HEAP8[1241056]|0;
$25 = ($24<<24>>24)==(0);
if ($25) {
$$0 = $1;
} else {
$26 = HEAP32[(1241060)>>2]|0;
$27 = (_PackedCol_Tint($1,$26)|0);
$$0 = $27;
}
$28 = HEAP32[(1241092)>>2]|0;
$29 = +HEAPF32[(1241100)>>2];
$30 = $29 + $13;
$31 = HEAP32[(1241108)>>2]|0;
$32 = ((($4)) + 24|0);
HEAPF32[$4>>2] = $30;
$$sroa$9$0$$sroa_idx27 = ((($4)) + 4|0);
HEAP32[$$sroa$9$0$$sroa_idx27>>2] = $28;
$$sroa$10$0$$sroa_idx35 = ((($4)) + 8|0);
HEAP32[$$sroa$10$0$$sroa_idx35>>2] = $31;
$$sroa$12$0$$sroa_idx43 = ((($4)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx43>>2] = $$0;
$$sroa$13$0$$sroa_idx51 = ((($4)) + 16|0);
HEAPF32[$$sroa$13$0$$sroa_idx51>>2] = $16;
$$sroa$16$0$$sroa_idx59 = ((($4)) + 20|0);
HEAPF32[$$sroa$16$0$$sroa_idx59>>2] = $23;
$33 = HEAP32[(1241088)>>2]|0;
$34 = ((($4)) + 48|0);
HEAP32[$32>>2] = $33;
$$sroa$9$0$$sroa_idx29 = ((($4)) + 28|0);
HEAP32[$$sroa$9$0$$sroa_idx29>>2] = $28;
$$sroa$10$0$$sroa_idx37 = ((($4)) + 32|0);
HEAP32[$$sroa$10$0$$sroa_idx37>>2] = $31;
$$sroa$12$0$$sroa_idx45 = ((($4)) + 36|0);
HEAP32[$$sroa$12$0$$sroa_idx45>>2] = $$0;
$$sroa$13$0$$sroa_idx53 = ((($4)) + 40|0);
HEAP32[$$sroa$13$0$$sroa_idx53>>2] = $11;
$$sroa$16$0$$sroa_idx61 = ((($4)) + 44|0);
HEAPF32[$$sroa$16$0$$sroa_idx61>>2] = $23;
$35 = HEAP32[(1241096)>>2]|0;
HEAP32[$34>>2] = $33;
$$sroa$9$0$$sroa_idx25 = ((($4)) + 52|0);
HEAP32[$$sroa$9$0$$sroa_idx25>>2] = $28;
$$sroa$10$0$$sroa_idx33 = ((($4)) + 56|0);
HEAP32[$$sroa$10$0$$sroa_idx33>>2] = $35;
$$sroa$12$0$$sroa_idx41 = ((($4)) + 60|0);
HEAP32[$$sroa$12$0$$sroa_idx41>>2] = $$0;
$$sroa$13$0$$sroa_idx49 = ((($4)) + 64|0);
HEAP32[$$sroa$13$0$$sroa_idx49>>2] = $11;
$$sroa$16$0$$sroa_idx57 = ((($4)) + 68|0);
HEAPF32[$$sroa$16$0$$sroa_idx57>>2] = $19;
$36 = +HEAPF32[(1241100)>>2];
$37 = $36 + $13;
$38 = ((($4)) + 96|0);
$$sroa$0$0$$sroa_idx = ((($4)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $37;
$$sroa$9$0$$sroa_idx24 = ((($4)) + 76|0);
HEAP32[$$sroa$9$0$$sroa_idx24>>2] = $28;
$$sroa$10$0$$sroa_idx32 = ((($4)) + 80|0);
HEAP32[$$sroa$10$0$$sroa_idx32>>2] = $35;
$$sroa$12$0$$sroa_idx40 = ((($4)) + 84|0);
HEAP32[$$sroa$12$0$$sroa_idx40>>2] = $$0;
$$sroa$13$0$$sroa_idx48 = ((($4)) + 88|0);
HEAPF32[$$sroa$13$0$$sroa_idx48>>2] = $16;
$$sroa$16$0$$sroa_idx56 = ((($4)) + 92|0);
HEAPF32[$$sroa$16$0$$sroa_idx56>>2] = $19;
HEAP32[$3>>2] = $38;
return;
}
function _Drawer_YMax($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$10$0$$sroa_idx32 = 0, $$sroa$10$0$$sroa_idx33 = 0, $$sroa$10$0$$sroa_idx35 = 0, $$sroa$10$0$$sroa_idx37 = 0, $$sroa$12$0$$sroa_idx40 = 0, $$sroa$12$0$$sroa_idx41 = 0, $$sroa$12$0$$sroa_idx43 = 0, $$sroa$12$0$$sroa_idx45 = 0, $$sroa$13$0$$sroa_idx48 = 0, $$sroa$13$0$$sroa_idx49 = 0, $$sroa$13$0$$sroa_idx51 = 0, $$sroa$13$0$$sroa_idx53 = 0, $$sroa$16$0$$sroa_idx56 = 0, $$sroa$16$0$$sroa_idx57 = 0, $$sroa$16$0$$sroa_idx59 = 0, $$sroa$16$0$$sroa_idx61 = 0, $$sroa$9$0$$sroa_idx24 = 0, $$sroa$9$0$$sroa_idx25 = 0;
var $$sroa$9$0$$sroa_idx27 = 0, $$sroa$9$0$$sroa_idx29 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0.0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[$3>>2]|0;
$5 = $2&65535;
$6 = HEAP32[(1384648)>>2]|0;
$7 = $6 & $5;
$8 = (+($7|0));
$9 = +HEAPF32[(1384656)>>2];
$10 = $9 * $8;
$11 = HEAP32[(1241064)>>2]|0;
$12 = (($0) + -1)|0;
$13 = (+($12|0));
$14 = +HEAPF32[(1241076)>>2];
$15 = $14 * 0.99937498569488525;
$16 = $15 + $13;
$17 = +HEAPF32[(1241072)>>2];
$18 = $9 * $17;
$19 = $10 + $18;
$20 = +HEAPF32[(1241084)>>2];
$21 = $9 * $20;
$22 = $21 * 0.99937498569488525;
$23 = $10 + $22;
$24 = HEAP8[1241056]|0;
$25 = ($24<<24>>24)==(0);
if ($25) {
$$0 = $1;
} else {
$26 = HEAP32[(1241060)>>2]|0;
$27 = (_PackedCol_Tint($1,$26)|0);
$$0 = $27;
}
$28 = HEAP32[(1241104)>>2]|0;
$29 = +HEAPF32[(1241100)>>2];
$30 = $29 + $13;
$31 = HEAP32[(1241096)>>2]|0;
$32 = ((($4)) + 24|0);
HEAPF32[$4>>2] = $30;
$$sroa$9$0$$sroa_idx27 = ((($4)) + 4|0);
HEAP32[$$sroa$9$0$$sroa_idx27>>2] = $28;
$$sroa$10$0$$sroa_idx35 = ((($4)) + 8|0);
HEAP32[$$sroa$10$0$$sroa_idx35>>2] = $31;
$$sroa$12$0$$sroa_idx43 = ((($4)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx43>>2] = $$0;
$$sroa$13$0$$sroa_idx51 = ((($4)) + 16|0);
HEAPF32[$$sroa$13$0$$sroa_idx51>>2] = $16;
$$sroa$16$0$$sroa_idx59 = ((($4)) + 20|0);
HEAPF32[$$sroa$16$0$$sroa_idx59>>2] = $19;
$33 = HEAP32[(1241088)>>2]|0;
$34 = ((($4)) + 48|0);
HEAP32[$32>>2] = $33;
$$sroa$9$0$$sroa_idx29 = ((($4)) + 28|0);
HEAP32[$$sroa$9$0$$sroa_idx29>>2] = $28;
$$sroa$10$0$$sroa_idx37 = ((($4)) + 32|0);
HEAP32[$$sroa$10$0$$sroa_idx37>>2] = $31;
$$sroa$12$0$$sroa_idx45 = ((($4)) + 36|0);
HEAP32[$$sroa$12$0$$sroa_idx45>>2] = $$0;
$$sroa$13$0$$sroa_idx53 = ((($4)) + 40|0);
HEAP32[$$sroa$13$0$$sroa_idx53>>2] = $11;
$$sroa$16$0$$sroa_idx61 = ((($4)) + 44|0);
HEAPF32[$$sroa$16$0$$sroa_idx61>>2] = $19;
$35 = HEAP32[(1241108)>>2]|0;
HEAP32[$34>>2] = $33;
$$sroa$9$0$$sroa_idx25 = ((($4)) + 52|0);
HEAP32[$$sroa$9$0$$sroa_idx25>>2] = $28;
$$sroa$10$0$$sroa_idx33 = ((($4)) + 56|0);
HEAP32[$$sroa$10$0$$sroa_idx33>>2] = $35;
$$sroa$12$0$$sroa_idx41 = ((($4)) + 60|0);
HEAP32[$$sroa$12$0$$sroa_idx41>>2] = $$0;
$$sroa$13$0$$sroa_idx49 = ((($4)) + 64|0);
HEAP32[$$sroa$13$0$$sroa_idx49>>2] = $11;
$$sroa$16$0$$sroa_idx57 = ((($4)) + 68|0);
HEAPF32[$$sroa$16$0$$sroa_idx57>>2] = $23;
$36 = +HEAPF32[(1241100)>>2];
$37 = $36 + $13;
$38 = ((($4)) + 96|0);
$$sroa$0$0$$sroa_idx = ((($4)) + 72|0);
HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $37;
$$sroa$9$0$$sroa_idx24 = ((($4)) + 76|0);
HEAP32[$$sroa$9$0$$sroa_idx24>>2] = $28;
$$sroa$10$0$$sroa_idx32 = ((($4)) + 80|0);
HEAP32[$$sroa$10$0$$sroa_idx32>>2] = $35;
$$sroa$12$0$$sroa_idx40 = ((($4)) + 84|0);
HEAP32[$$sroa$12$0$$sroa_idx40>>2] = $$0;
$$sroa$13$0$$sroa_idx48 = ((($4)) + 88|0);
HEAPF32[$$sroa$13$0$$sroa_idx48>>2] = $16;
$$sroa$16$0$$sroa_idx56 = ((($4)) + 92|0);
HEAPF32[$$sroa$16$0$$sroa_idx56>>2] = $23;
HEAP32[$3>>2] = $38;
return;
}
function _Drawer2D_Init() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
_Drawer2D_Reset();
$0 = HEAP8[1408229]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
$2 = (_Options_GetBool(33468,0)|0);
$3 = ($2<<24>>24)==(0);
$phitmp = $3&1;
$4 = $phitmp;
} else {
$4 = 1;
}
HEAP8[1408216] = $4;
$5 = (_Options_GetBool(33588,0)|0);
HEAP8[1408217] = $5;
(_Options_UNSAFE_Get(33455,1232)|0);
$6 = HEAP8[1408229]|0;
$7 = ($6<<24>>24)==(0);
if ($7) {
_Drawer2D_CheckFont();
_Event_Register((1250816),0,5);
return;
}
HEAP16[(1236)>>1] = 0;
_Drawer2D_CheckFont();
_Event_Register((1250816),0,5);
return;
}
function _Drawer2D_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Drawer2D_FreeFontBitmap();
HEAP32[310278] = 0;
_Event_Unregister((1250816),0,5);
return;
}
function _Drawer2D_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
_memset((154320|0),0,1024)|0;
_Drawer2D_HexEncodedCol(48,0);
_Drawer2D_HexEncodedCol(49,1);
_Drawer2D_HexEncodedCol(50,2);
_Drawer2D_HexEncodedCol(51,3);
_Drawer2D_HexEncodedCol(52,4);
_Drawer2D_HexEncodedCol(53,5);
_Drawer2D_HexEncodedCol(54,6);
_Drawer2D_HexEncodedCol(55,7);
_Drawer2D_HexEncodedCol(56,8);
_Drawer2D_HexEncodedCol(57,9);
_Drawer2D_HexEncodedCol(97,10);
_Drawer2D_HexEncodedCol(65,10);
_Drawer2D_HexEncodedCol(98,11);
_Drawer2D_HexEncodedCol(66,11);
_Drawer2D_HexEncodedCol(99,12);
_Drawer2D_HexEncodedCol(67,12);
_Drawer2D_HexEncodedCol(100,13);
_Drawer2D_HexEncodedCol(68,13);
_Drawer2D_HexEncodedCol(101,14);
_Drawer2D_HexEncodedCol(69,14);
_Drawer2D_HexEncodedCol(102,15);
_Drawer2D_HexEncodedCol(70,15);
return;
}
function _Drawer2D_HexEncodedCol($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (2)?($1 >>> 2):($1);
$3 = $2 & 1;
$4 = (0 - ($3))|0;
$5 = $4 & 191;
$6 = (3)?($1 >> 3):($1);
$7 = $6 << 6;
$8 = (($5) + ($7))|0;
$9 = $8 & 255;
$10 = (1)?($1 >>> 1):($1);
$11 = $10 & 1;
$12 = (0 - ($11))|0;
$13 = $12 & 191;
$14 = (($13) + ($7))|0;
$15 = $14 << 8;
$16 = $15 & 65280;
$17 = $1 & 1;
$18 = (0 - ($17))|0;
$19 = $18 & 191;
$20 = (($19) + ($7))|0;
$21 = $20 << 16;
$22 = $21 | $9;
$23 = $22 | $16;
$24 = $23 | -16777216;
$25 = (154320 + ($0<<2)|0);
HEAP32[$25>>2] = $24;
return;
}
function _Drawer2D_FreeFontBitmap() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
_memset((155344|0),0,1024)|0;
$0 = HEAP32[310278]|0;
_Mem_Free($0);
return;
}
function _OnFileChanged($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = (_String_CaselessEqualsConst($2,22289)|0);
$5 = ($4|0)==(0);
if ($5) {
STACKTOP = sp;return;
}
$6 = (_Png_Decode($3,$1)|0);
$7 = ($6|0)==(0);
if ($7) {
_Drawer2D_SetFontBitmap($3);
_Event_RaiseVoid(1254716);
STACKTOP = sp;return;
} else {
_Logger_Warn2($6,37484,$2);
$8 = HEAP32[$3>>2]|0;
_Mem_Free($8);
STACKTOP = sp;return;
}
}
function _Drawer2D_SetFontBitmap($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Drawer2D_FreeFontBitmap();
;HEAP32[1241112>>2]=HEAP32[$0>>2]|0;HEAP32[1241112+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[1241112+8>>2]=HEAP32[$0+8>>2]|0;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = (4)?($2 >> 4):($2);
HEAP32[2809] = $3;
_CalculateTextWidths();
return;
}
function _CalculateTextWidths() {
var $$$038$in = 0, $$03745 = 0, $$03842 = 0, $$03842$in = 0, $$043 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1241116)>>2]|0;
$1 = HEAP32[(1241120)>>2]|0;
$2 = ($1|0)>(0);
$3 = HEAP32[2809]|0;
if (!($2)) {
$$lcssa = $3;
$26 = (($$lcssa|0) / 4)&-1;
HEAP32[(155472)>>2] = $26;
return;
}
$4 = HEAP32[310278]|0;
$5 = ($0|0)>(0);
$6 = HEAP32[2809]|0;
$$03745 = 0;$10 = $3;
while(1) {
$7 = Math_imul($$03745, $0)|0;
$8 = (($4) + ($7<<2)|0);
if ($5) {
$9 = (($$03745|0) / ($10|0))&-1;
$11 = $9 << 4;
$12 = ($10|0)>(0);
$$043 = 0;
while(1) {
$13 = (($$043|0) / ($10|0))&-1;
$14 = $13 | $11;
L10: do {
if ($12) {
$$03842$in = $10;
while(1) {
$$03842 = (($$03842$in) + -1)|0;
$16 = (($$03842) + ($$043))|0;
$17 = (($8) + ($16<<2)|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($18>>>0)>(16777215);
if ($19) {
break;
}
$15 = ($$03842$in|0)>(1);
if ($15) {
$$03842$in = $$03842;
} else {
break L10;
}
}
$20 = (155344 + ($14<<2)|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)>($$03842$in|0);
$$$038$in = $22 ? $21 : $$03842$in;
HEAP32[$20>>2] = $$$038$in;
}
} while(0);
$23 = (($$043) + ($10))|0;
$24 = ($23|0)<($0|0);
if ($24) {
$$043 = $23;
} else {
break;
}
}
}
$25 = (($$03745) + 1)|0;
$exitcond = ($25|0)==($1|0);
if ($exitcond) {
$$lcssa = $6;
break;
} else {
$$03745 = $25;$10 = $6;
}
}
$26 = (($$lcssa|0) / 4)&-1;
HEAP32[(155472)>>2] = $26;
return;
}
function _Drawer2D_CheckFont() {
var $$010 = 0, $$sroa$3$0$$sroa_idx5 = 0, $$sroa$3$0$copyload = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
$1 = HEAP16[(1236)>>1]|0;
$2 = ($1<<16>>16)==(0);
$3 = $2&1;
$$sroa$3$0$$sroa_idx5 = ((($0)) + 4|0);
$$010 = $3;
while(1) {
_Font_Lookup($0,0,0);
$$sroa$3$0$copyload = HEAP16[$$sroa$3$0$$sroa_idx5>>1]|0;
$4 = ($$sroa$3$0$copyload<<16>>16)==(0);
if (!($4)) {
label = 3;
break;
}
$6 = (($$010) + 1)|0;
$7 = ($6>>>0)<(9);
if ($7) {
$$010 = $6;
} else {
label = 5;
break;
}
}
if ((label|0) == 3) {
$5 = (1232 + ($$010<<3)|0);
_String_Copy(11204,$5);
STACKTOP = sp;return;
}
else if ((label|0) == 5) {
_Logger_Abort(22301);
STACKTOP = sp;return;
}
}
function _Font_Lookup($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = 10520;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $0;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
return;
}
function _DrawTextArgs_Make($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $1;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $0;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = ((($0)) + 8|0);
HEAP32[$14>>2] = $2;
$15 = ((($0)) + 12|0);
HEAP8[$15>>0] = $3;
return;
}
function _DrawTextArgs_MakeEmpty($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = 1384616;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $0;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
$13 = ((($0)) + 8|0);
HEAP32[$13>>2] = $1;
$14 = ((($0)) + 12|0);
HEAP8[$14>>0] = $2;
return;
}
function _Drawer2D_MakeFont($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP8[1408216]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$12 = 11204;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (($12) + 4)|0;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = 1232;
$19 = $18;
HEAP32[$19>>2] = $14;
$20 = (($18) + 4)|0;
$21 = $20;
HEAP32[$21>>2] = $17;
(_Font_Make($0,0,$1,$2)|0);
return;
} else {
$5 = (_Display_ScaleY($1)|0);
HEAP32[$0>>2] = 0;
$6 = $5&65535;
$7 = ((($0)) + 4|0);
HEAP16[$7>>1] = $6;
$8 = $2&65535;
$9 = ((($0)) + 6|0);
HEAP16[$9>>1] = $8;
$10 = (_Drawer2D_AdjHeight($5)|0);
$11 = ((($0)) + 8|0);
HEAP32[$11>>2] = $10;
return;
}
}
function _Drawer2D_AdjHeight($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0*3)|0;
$2 = (_Math_CeilDiv($1,2)|0);
return ($2|0);
}
function _Font_Make($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $2&65535;
$5 = ((($0)) + 4|0);
HEAP16[$5>>1] = $4;
$6 = $3&65535;
$7 = ((($0)) + 6|0);
HEAP16[$7>>1] = $6;
$8 = ((($0)) + 8|0);
HEAP32[$8>>2] = 0;
return 0;
}
function _Font_Free($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
HEAP16[$1>>1] = 0;
$2 = ((($0)) + 6|0);
HEAP16[$2>>1] = 0;
return;
}
function _Font_ReducePadding($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408216]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
return;
}
$4 = ((($0)) + 8|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 4|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
$9 = (($5) - ($8))|0;
$10 = (($9|0) / ($1|0))&-1;
$11 = $10 << 1;
$12 = (($5) - ($11))|0;
HEAP32[$4>>2] = $12;
return;
}
function _Drawer2D_Clamp($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = HEAP32[$1>>2]|0;
$6 = ((($0)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($5|0)<($7|0);
if (!($8)) {
$$0 = 0;
return ($$0|0);
}
$9 = HEAP32[$2>>2]|0;
$10 = ((($0)) + 8|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($9|0)<($11|0);
if (!($12)) {
$$0 = 0;
return ($$0|0);
}
$13 = ($5|0)<(0);
if ($13) {
$14 = HEAP32[$3>>2]|0;
$15 = (($14) + ($5))|0;
HEAP32[$3>>2] = $15;
HEAP32[$1>>2] = 0;
}
$16 = HEAP32[$2>>2]|0;
$17 = ($16|0)<(0);
if ($17) {
$18 = HEAP32[$4>>2]|0;
$19 = (($18) + ($16))|0;
HEAP32[$4>>2] = $19;
HEAP32[$2>>2] = 0;
}
$20 = HEAP32[$1>>2]|0;
$21 = HEAP32[$3>>2]|0;
$22 = (($21) + ($20))|0;
$23 = HEAP32[$6>>2]|0;
$24 = ($22|0)<($23|0);
$$ = $24 ? $22 : $23;
$25 = (($$) - ($20))|0;
HEAP32[$3>>2] = $25;
$26 = HEAP32[$2>>2]|0;
$27 = HEAP32[$4>>2]|0;
$28 = (($27) + ($26))|0;
$29 = HEAP32[$10>>2]|0;
$30 = ($28|0)<($29|0);
$31 = $30 ? $28 : $29;
$32 = (($31) - ($26))|0;
HEAP32[$4>>2] = $32;
$33 = HEAP32[$3>>2]|0;
$34 = ($33|0)>(0);
$35 = ($32|0)>(0);
$narrow = $34 & $35;
$36 = $narrow&1;
$$0 = $36;
return ($$0|0);
}
function _Drawer2D_Clear($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$01516 = 0, $$017 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$6 = sp + 12|0;
$7 = sp + 8|0;
$8 = sp + 4|0;
$9 = sp;
HEAP32[$6>>2] = $2;
HEAP32[$7>>2] = $3;
HEAP32[$8>>2] = $4;
HEAP32[$9>>2] = $5;
$10 = (_Drawer2D_Clamp($0,$6,$7,$8,$9)|0);
$11 = ($10<<24>>24)!=(0);
$12 = HEAP32[$9>>2]|0;
$13 = ($12|0)>(0);
$or$cond = $11 & $13;
if (!($or$cond)) {
STACKTOP = sp;return;
}
$14 = HEAP32[$0>>2]|0;
$15 = HEAP32[$7>>2]|0;
$16 = ((($0)) + 4|0);
$17 = HEAP32[$6>>2]|0;
$18 = HEAP32[$8>>2]|0;
$19 = ($18|0)>(0);
$20 = HEAP32[$9>>2]|0;
$$017 = 0;
while(1) {
$21 = (($15) + ($$017))|0;
$22 = HEAP32[$16>>2]|0;
$23 = Math_imul($21, $22)|0;
$24 = (($14) + ($23<<2)|0);
$25 = (($24) + ($17<<2)|0);
if ($19) {
$$01516 = 0;
while(1) {
$26 = (($25) + ($$01516<<2)|0);
HEAP32[$26>>2] = $1;
$27 = (($$01516) + 1)|0;
$exitcond = ($27|0)==($18|0);
if ($exitcond) {
break;
} else {
$$01516 = $27;
}
}
}
$28 = (($$017) + 1)|0;
$29 = ($28|0)<($20|0);
if ($29) {
$$017 = $28;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _Drawer2D_MakeTextTexture($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = HEAP8[(1260360)>>0]|0;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
;HEAP32[$0>>2]=HEAP32[11240>>2]|0;HEAP32[$0+4>>2]=HEAP32[11240+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[11240+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[11240+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[11240+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[11240+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[11240+24>>2]|0;
STACKTOP = sp;return;
}
$5 = (_Drawer2D_TextWidth($1)|0);
$6 = ($5|0)==(0);
if ($6) {
;HEAP32[$0>>2]=HEAP32[11240>>2]|0;HEAP32[$0+4>>2]=HEAP32[11240+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[11240+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[11240+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[11240+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[11240+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[11240+24>>2]|0;
STACKTOP = sp;return;
} else {
$7 = (_Drawer2D_TextHeight($1)|0);
_Bitmap_AllocateClearedPow2($2,$5,$7);
_Drawer2D_DrawText($2,$1,0,0);
_Drawer2D_MakeTexture($0,$2,$5,$7);
$8 = HEAP32[$2>>2]|0;
_Mem_Free($8);
STACKTOP = sp;return;
}
}
function _Drawer2D_TextWidth($0) {
$0 = $0|0;
var $$01618 = 0, $$017 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = sp + 8|0;
$3 = $0;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
HEAP8[$2>>0] = 102;
$13 = (_Drawer2D_IsEmptyText($0)|0);
$14 = ($13<<24>>24)==(0);
if (!($14)) {
$$017 = 0;
STACKTOP = sp;return ($$017|0);
}
$15 = HEAP8[1408216]|0;
$16 = ($15<<24>>24)==(0);
if (!($16)) {
$17 = (_Drawer2D_MeasureBitmapWidth($0)|0);
$$017 = $17;
STACKTOP = sp;return ($$017|0);
}
$18 = ((($1)) + 4|0);
$19 = HEAP16[$18>>1]|0;
$20 = ($19<<16>>16)==(0);
if (!($20)) {
$$01618 = 0;
while(1) {
$21 = (_Drawer2D_NextPart($$01618,$1,$0,$2)|0);
$22 = HEAP16[$18>>1]|0;
$23 = $22&65535;
$24 = ($21|0)<($23|0);
if ($24) {
$$01618 = $21;
} else {
break;
}
}
}
$25 = ((($0)) + 12|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26<<24>>24)==(0);
$spec$select = $27 ? 0 : 2;
$28 = $1;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (($28) + 4)|0;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = $0;
$35 = $34;
HEAP32[$35>>2] = $30;
$36 = (($34) + 4)|0;
$37 = $36;
HEAP32[$37>>2] = $33;
$$017 = $spec$select;
STACKTOP = sp;return ($$017|0);
}
function _Drawer2D_TextHeight($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 12|0);
$4 = HEAP8[$3>>0]|0;
$5 = (_Drawer2D_FontHeight($2,$4)|0);
return ($5|0);
}
function _Drawer2D_DrawText($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$03233 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = sp + 8|0;
$6 = $1;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = $4;
$13 = $12;
HEAP32[$13>>2] = $8;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
HEAP8[$5>>0] = 102;
$16 = (_Drawer2D_IsEmptyText($1)|0);
$17 = ($16<<24>>24)==(0);
if (!($17)) {
STACKTOP = sp;return;
}
$18 = HEAP8[1408216]|0;
$19 = ($18<<24>>24)==(0);
if (!($19)) {
_Drawer2D_DrawBitmapText($0,$1,$2,$3);
STACKTOP = sp;return;
}
$20 = ((($4)) + 4|0);
$21 = HEAP16[$20>>1]|0;
$22 = ($21<<16>>16)==(0);
if (!($22)) {
$$03233 = 0;
while(1) {
$23 = (_Drawer2D_NextPart($$03233,$4,$1,$5)|0);
$24 = HEAP16[$20>>1]|0;
$25 = $24&65535;
$26 = ($23|0)<($25|0);
if ($26) {
$$03233 = $23;
} else {
break;
}
}
}
$27 = $4;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = $1;
$34 = $33;
HEAP32[$34>>2] = $29;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $32;
STACKTOP = sp;return;
}
function _Drawer2D_MakeTexture($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_Gfx_CreateTexture($1,0,0)|0);
HEAP32[$0>>2] = $4;
$5 = ((($0)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = $2&65535;
$7 = ((($0)) + 8|0);
HEAP16[$7>>1] = $6;
$8 = ((($0)) + 6|0);
HEAP16[$8>>1] = 0;
$9 = $3&65535;
$10 = ((($0)) + 10|0);
HEAP16[$10>>1] = $9;
$11 = ((($0)) + 12|0);
HEAPF32[$11>>2] = 0.0;
$12 = ((($0)) + 16|0);
HEAPF32[$12>>2] = 0.0;
$13 = (+($2|0));
$14 = ((($1)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = (+($15|0));
$17 = $13 / $16;
$18 = ((($0)) + 20|0);
HEAPF32[$18>>2] = $17;
$19 = (+($3|0));
$20 = ((($1)) + 8|0);
$21 = HEAP32[$20>>2]|0;
$22 = (+($21|0));
$23 = $19 / $22;
$24 = ((($0)) + 24|0);
HEAPF32[$24>>2] = $23;
return;
}
function _Drawer2D_IsEmptyText($0) {
$0 = $0|0;
var $$010 = 0, $$011 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if ($3) {
$$010 = 1;
return ($$010|0);
}
$4 = $2&65535;
$5 = HEAP32[$0>>2]|0;
$$011 = 0;
while(1) {
$8 = (($5) + ($$011)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(38);
if (!($10)) {
$$010 = 0;
label = 6;
break;
}
$11 = $$011 | 1;
$12 = (_Drawer2D_ValidColCodeAt($0,$11)|0);
$13 = ($12<<24>>24)==(0);
$6 = (($$011) + 2)|0;
if ($13) {
$$010 = 0;
label = 6;
break;
}
$7 = ($6>>>0)<($4>>>0);
if ($7) {
$$011 = $6;
} else {
$$010 = 1;
label = 6;
break;
}
}
if ((label|0) == 6) {
return ($$010|0);
}
return (0)|0;
}
function _Drawer2D_DrawBitmapText($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($1)) + 8|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 4|0);
$7 = HEAP16[$6>>1]|0;
$8 = (3)?(($7&65535) >>> 3):(($7&65535));
$9 = $8&65535;
$10 = ((($1)) + 12|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if ($12) {
_Drawer2D_DrawCore($0,$1,$2,$3,0);
return;
}
$13 = (($9) + ($3))|0;
$14 = (($9) + ($2))|0;
_Drawer2D_DrawCore($0,$1,$14,$13,1);
_Drawer2D_DrawCore($0,$1,$2,$3,0);
return;
}
function _Drawer2D_NextPart($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$022$lcssa = 0, $$02223 = 0, $$024 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = ((($1)) + 4|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = ($7|0)>($0|0);
L1: do {
if ($8) {
$9 = HEAP32[$1>>2]|0;
$$02223 = 0;$$024 = $0;
while(1) {
$10 = (($9) + ($$024)|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(38);
if ($12) {
$13 = (($$024) + 1)|0;
$14 = (_Drawer2D_ValidColCodeAt($1,$13)|0);
$15 = ($14<<24>>24)==(0);
if (!($15)) {
$$0$lcssa = $$024;$$022$lcssa = $$02223;
break L1;
}
}
$16 = (($$02223) + 1)|0;
$17 = (($$024) + 1)|0;
$18 = HEAP16[$5>>1]|0;
$19 = $18&65535;
$20 = ($17|0)<($19|0);
if ($20) {
$$02223 = $16;$$024 = $17;
} else {
$$0$lcssa = $17;$$022$lcssa = $16;
break;
}
}
} else {
$$0$lcssa = $0;$$022$lcssa = 0;
}
} while(0);
_String_UNSAFE_Substring($4,$1,$0,$$022$lcssa);
$21 = $4;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = $2;
$28 = $27;
HEAP32[$28>>2] = $23;
$29 = (($27) + 4)|0;
$30 = $29;
HEAP32[$30>>2] = $26;
$31 = (($$0$lcssa) + 2)|0;
$32 = HEAP16[$5>>1]|0;
$33 = $32&65535;
$34 = ($31|0)>($33|0);
if ($34) {
STACKTOP = sp;return ($31|0);
}
$35 = (($$0$lcssa) + 1)|0;
$36 = HEAP32[$1>>2]|0;
$37 = (($36) + ($35)|0);
$38 = HEAP8[$37>>0]|0;
HEAP8[$3>>0] = $38;
STACKTOP = sp;return ($31|0);
}
function _Drawer2D_ValidColCodeAt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = $3&65535;
$5 = ($4|0)>($1|0);
if (!($5)) {
$$0 = 0;
return ($$0|0);
}
$6 = HEAP32[$0>>2]|0;
$7 = (($6) + ($1)|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = (154320 + ($9<<2)|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11>>>0)>(16777215);
$13 = $12&1;
$$0 = $13;
return ($$0|0);
}
function _Drawer2D_DrawCore($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$0152 = 0, $$0156187 = 0, $$0160$lcssa = 0, $$0160186 = 0, $$0162$lcssa = 0, $$0162166 = 0, $$0163175 = 0, $$0164182 = 0, $$1153188 = 0, $$1157 = 0, $$1161 = 0, $$1178 = 0, $$2158177 = 0, $$3155 = 0, $$3159172 = 0, $$3173 = 0, $$4$lcssa = 0, $$4167 = 0, $10 = 0, $100 = 0;
var $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0;
var $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0;
var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0;
var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0;
var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0;
var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond193 = 0, $exitcond194 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1808|0;
$5 = sp + 1792|0;
$6 = sp + 1536|0;
$7 = sp + 512|0;
$8 = sp;
$9 = $1;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = $5;
$16 = $15;
HEAP32[$16>>2] = $11;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $14;
$19 = ((($1)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = ((($20)) + 4|0);
$22 = HEAP16[$21>>1]|0;
$23 = $22&65535;
$24 = HEAP32[(154728)>>2]|0;
$25 = ($4<<24>>24)!=(0);
if ($25) {
$26 = HEAP8[1408217]|0;
$27 = ($26<<24>>24)==(0);
if ($27) {
$28 = (_Drawer2D_ShadowCol($24)|0);
$$0152 = $28;
} else {
$$0152 = -16777216;
}
} else {
$$0152 = $24;
}
$29 = ((($5)) + 4|0);
$30 = HEAP16[$29>>1]|0;
$31 = ($30<<16>>16)==(0);
if ($31) {
$$0160$lcssa = 0;
} else {
$$0156187 = 0;$$0160186 = 0;$$1153188 = $$0152;
while(1) {
$32 = HEAP32[$5>>2]|0;
$33 = (($32) + ($$0156187)|0);
$34 = HEAP8[$33>>0]|0;
$35 = ($34<<24>>24)==(38);
if ($35) {
$36 = (($$0156187) + 1)|0;
$37 = (_Drawer2D_ValidColCodeAt($5,$36)|0);
$38 = ($37<<24>>24)==(0);
if ($38) {
label = 11;
} else {
$39 = (($32) + ($36)|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40&255;
$42 = (154320 + ($41<<2)|0);
$43 = HEAP32[$42>>2]|0;
if ($25) {
$44 = HEAP8[1408217]|0;
$45 = ($44<<24>>24)==(0);
if ($45) {
$46 = (_Drawer2D_ShadowCol($43)|0);
$$1157 = $36;$$1161 = $$0160186;$$3155 = $46;
} else {
$$1157 = $36;$$1161 = $$0160186;$$3155 = -16777216;
}
} else {
$$1157 = $36;$$1161 = $$0160186;$$3155 = $43;
}
}
} else {
label = 11;
}
if ((label|0) == 11) {
label = 0;
$47 = (($6) + ($$0160186)|0);
HEAP8[$47>>0] = $34;
$48 = (($7) + ($$0160186<<2)|0);
HEAP32[$48>>2] = $$1153188;
$49 = (_Drawer2D_Width($23,$34)|0);
$50 = $49&65535;
$51 = (($8) + ($$0160186<<1)|0);
HEAP16[$51>>1] = $50;
$52 = (($$0160186) + 1)|0;
$$1157 = $$0156187;$$1161 = $52;$$3155 = $$1153188;
}
$53 = (($$1157) + 1)|0;
$54 = HEAP16[$29>>1]|0;
$55 = $54&65535;
$56 = ($53|0)<($55|0);
if ($56) {
$$0156187 = $53;$$0160186 = $$1161;$$1153188 = $$3155;
} else {
$$0160$lcssa = $$1161;
break;
}
}
}
$57 = (_Math_CeilDiv($23,8)|0);
$58 = HEAP32[$19>>2]|0;
$59 = ((($58)) + 8|0);
$60 = HEAP32[$59>>2]|0;
$61 = (($60) - ($23))|0;
$62 = (($61|0) / 2)&-1;
$63 = ($22<<16>>16)==(0);
if (!($63)) {
$64 = (($62) + ($3))|0;
$65 = ((($0)) + 8|0);
$66 = HEAP32[2809]|0;
$67 = ((($0)) + 4|0);
$68 = ($$0160$lcssa|0)>(0);
$69 = HEAP32[310278]|0;
$$0164182 = 0;
while(1) {
$70 = (($64) + ($$0164182))|0;
$71 = HEAP32[$65>>2]|0;
$72 = ($70>>>0)<($71>>>0);
if ($72) {
$73 = Math_imul($66, $$0164182)|0;
$74 = (($73|0) / ($23|0))&-1;
$75 = HEAP32[$0>>2]|0;
$76 = HEAP32[$67>>2]|0;
$77 = Math_imul($76, $70)|0;
$78 = (($75) + ($77<<2)|0);
if ($68) {
$$1178 = $2;$$2158177 = 0;
while(1) {
$79 = (($6) + ($$2158177)|0);
$80 = HEAP8[$79>>0]|0;
$81 = $80&255;
$82 = $81 & 15;
$83 = Math_imul($82, $66)|0;
$84 = (4)?($81 >>> 4):($81);
$85 = Math_imul($84, $66)|0;
$86 = (($85) + ($74))|0;
$87 = HEAP32[(1241116)>>2]|0;
$88 = Math_imul($86, $87)|0;
$89 = (($69) + ($88<<2)|0);
$90 = (155344 + ($81<<2)|0);
$91 = HEAP32[$90>>2]|0;
$92 = (($8) + ($$2158177<<1)|0);
$93 = HEAP16[$92>>1]|0;
$94 = $93&65535;
$95 = (($7) + ($$2158177<<2)|0);
$96 = HEAP32[$95>>2]|0;
$97 = ($93<<16>>16)==(0);
if (!($97)) {
$98 = $96 & 255;
$99 = (8)?($96 >>> 8):($96);
$100 = $99 & 255;
$101 = (16)?($96 >>> 16):($96);
$102 = $101 & 255;
$$0163175 = 0;
while(1) {
$103 = Math_imul($$0163175, $91)|0;
$104 = (($103|0) / ($94|0))&-1;
$105 = (($104) + ($83))|0;
$106 = (($89) + ($105<<2)|0);
$107 = HEAP32[$106>>2]|0;
$108 = ($107>>>0)<(16777216);
if (!($108)) {
$109 = (($$0163175) + ($$1178))|0;
$110 = HEAP32[$67>>2]|0;
$111 = ($109>>>0)<($110>>>0);
if ($111) {
$112 = $107 & 255;
$113 = Math_imul($112, $98)|0;
$114 = (($113>>>0) / 255)&-1;
$115 = $114 & 255;
$116 = (8)?($107 >>> 8):($107);
$117 = $116 & 255;
$118 = Math_imul($117, $100)|0;
$119 = (($118>>>0) / 255)&-1;
$120 = $119 << 8;
$121 = $120 & 65280;
$122 = (16)?($107 >>> 16):($107);
$123 = $122 & 255;
$124 = Math_imul($123, $102)|0;
$125 = (($124>>>0) / 255)&-1;
$126 = $125 << 16;
$127 = $126 & 16711680;
$128 = $107 & -16777216;
$129 = $115 | $128;
$130 = $129 | $121;
$131 = $130 | $127;
$132 = (($78) + ($109<<2)|0);
HEAP32[$132>>2] = $131;
}
}
$133 = (($$0163175) + 1)|0;
$exitcond = ($133|0)==($94|0);
if ($exitcond) {
break;
} else {
$$0163175 = $133;
}
}
}
$134 = (($$1178) + ($57))|0;
$135 = (($134) + ($94))|0;
$136 = (($$2158177) + 1)|0;
$exitcond193 = ($136|0)==($$0160$lcssa|0);
if ($exitcond193) {
break;
} else {
$$1178 = $135;$$2158177 = $136;
}
}
}
}
$137 = (($$0164182) + 1)|0;
$exitcond194 = ($137|0)==($23|0);
if ($exitcond194) {
break;
} else {
$$0164182 = $137;
}
}
}
$138 = ((($58)) + 6|0);
$139 = HEAP16[$138>>1]|0;
$140 = $139 & 128;
$141 = ($140<<16>>16)==(0);
if ($141) {
STACKTOP = sp;return;
}
$142 = ($23*7)|0;
$143 = (3)?($142 >>> 3):($142);
$144 = (($62) + ($3))|0;
$145 = (($144) + ($143))|0;
$146 = (($23) - ($143))|0;
$147 = ($$0160$lcssa|0)>(0);
if (!($147)) {
STACKTOP = sp;return;
}
$$3159172 = 0;$$3173 = $2;
while(1) {
$148 = (($7) + ($$3159172<<2)|0);
$149 = HEAP32[$148>>2]|0;
$150 = ($$3159172|0)<($$0160$lcssa|0);
L46: do {
if ($150) {
$$0162166 = 0;$$4167 = $$3159172;
while(1) {
$151 = (($7) + ($$4167<<2)|0);
$152 = HEAP32[$151>>2]|0;
$153 = ($149|0)==($152|0);
if (!($153)) {
$$0162$lcssa = $$0162166;$$4$lcssa = $$4167;
break L46;
}
$154 = (($8) + ($$4167<<1)|0);
$155 = HEAP16[$154>>1]|0;
$156 = $155&65535;
$157 = (($$0162166) + ($57))|0;
$158 = (($157) + ($156))|0;
$159 = (($$4167) + 1)|0;
$160 = ($159|0)<($$0160$lcssa|0);
if ($160) {
$$0162166 = $158;$$4167 = $159;
} else {
$$0162$lcssa = $158;$$4$lcssa = $159;
break;
}
}
} else {
$$0162$lcssa = 0;$$4$lcssa = $$3159172;
}
} while(0);
_Drawer2D_Underline($0,$$3173,$145,$$0162$lcssa,$146,$149);
$161 = (($$0162$lcssa) + ($$3173))|0;
$162 = ($$4$lcssa|0)<($$0160$lcssa|0);
if ($162) {
$$3159172 = $$4$lcssa;$$3173 = $161;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _Drawer2D_ShadowCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 & -16777216;
$2 = (2)?($0 >>> 2):($0);
$3 = $2 & 4144959;
$4 = $3 | $1;
return ($4|0);
}
function _Drawer2D_Width($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1&255;
$3 = (155344 + ($2<<2)|0);
$4 = HEAP32[$3>>2]|0;
$5 = Math_imul($4, $0)|0;
$6 = HEAP32[2809]|0;
$7 = (_Math_CeilDiv($5,$6)|0);
return ($7|0);
}
function _Drawer2D_Underline($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$02425 = 0, $$027 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = ((($0)) + 8|0);
$7 = (($4) + ($2))|0;
$8 = ($4|0)>(0);
if (!($8)) {
return;
}
$9 = ((($0)) + 4|0);
$10 = (($3) + ($1))|0;
$11 = ($3|0)>(0);
$$027 = $2;
while(1) {
$12 = HEAP32[$6>>2]|0;
$13 = ($$027|0)<($12|0);
if (!($13)) {
label = 9;
break;
}
$14 = HEAP32[$0>>2]|0;
$15 = HEAP32[$9>>2]|0;
$16 = Math_imul($15, $$027)|0;
$17 = (($14) + ($16<<2)|0);
L7: do {
if ($11) {
$$02425 = $1;
while(1) {
$18 = HEAP32[$9>>2]|0;
$19 = ($$02425|0)<($18|0);
if (!($19)) {
break L7;
}
$20 = (($17) + ($$02425<<2)|0);
HEAP32[$20>>2] = $5;
$21 = (($$02425) + 1)|0;
$22 = ($21|0)<($10|0);
if ($22) {
$$02425 = $21;
} else {
break;
}
}
}
} while(0);
$23 = (($$027) + 1)|0;
$24 = ($23|0)<($7|0);
if ($24) {
$$027 = $23;
} else {
label = 9;
break;
}
}
if ((label|0) == 9) {
return;
}
}
function _Drawer2D_FontHeight($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
$4 = HEAP8[1408216]|0;
$5 = ($4<<24>>24)==(0);
$6 = ($1<<24>>24)!=(0);
if ($5) {
$12 = (($3) + 2)|0;
$spec$select = $6 ? $12 : $3;
return ($spec$select|0);
}
if (!($6)) {
$$0 = $3;
return ($$0|0);
}
$7 = ((($0)) + 4|0);
$8 = HEAP16[$7>>1]|0;
$9 = (3)?(($8&65535) >>> 3):(($8&65535));
$10 = $9&65535;
$11 = (($3) + ($10))|0;
$$0 = $11;
return ($$0|0);
}
function _Drawer2D_MeasureBitmapWidth($0) {
$0 = $0|0;
var $$02428 = 0, $$025$lcssa = 0, $$02527 = 0, $$1 = 0, $$126 = 0, $$2 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($3)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = (_Math_CeilDiv($6,8)|0);
$8 = $0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $1;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = ((($1)) + 4|0);
$19 = HEAP16[$18>>1]|0;
$20 = ($19<<16>>16)==(0);
if ($20) {
$$025$lcssa = 0;
$35 = ((($0)) + 12|0);
$36 = HEAP8[$35>>0]|0;
$37 = ($36<<24>>24)==(0);
$38 = (3)?($6 >>> 3):($6);
$39 = $37 ? 0 : $38;
$$2 = (($39) + ($$025$lcssa))|0;
STACKTOP = sp;return ($$2|0);
}
$$02428 = 0;$$02527 = 0;
while(1) {
$21 = HEAP32[$1>>2]|0;
$22 = (($21) + ($$02428)|0);
$23 = HEAP8[$22>>0]|0;
$24 = ($23<<24>>24)==(38);
if ($24) {
$25 = (($$02428) + 1)|0;
$26 = (_Drawer2D_ValidColCodeAt($1,$25)|0);
$27 = ($26<<24>>24)==(0);
if ($27) {
label = 5;
} else {
$$1 = $25;$$126 = $$02527;
}
} else {
label = 5;
}
if ((label|0) == 5) {
label = 0;
$28 = (_Drawer2D_Width($6,$23)|0);
$29 = (($$02527) + ($7))|0;
$30 = (($29) + ($28))|0;
$$1 = $$02428;$$126 = $30;
}
$31 = (($$1) + 1)|0;
$32 = HEAP16[$18>>1]|0;
$33 = $32&65535;
$34 = ($31|0)<($33|0);
if ($34) {
$$02428 = $31;$$02527 = $$126;
} else {
$$025$lcssa = $$126;
break;
}
}
$35 = ((($0)) + 12|0);
$36 = HEAP8[$35>>0]|0;
$37 = ($36<<24>>24)==(0);
$38 = (3)?($6 >>> 3):($6);
$39 = $37 ? 0 : $38;
$$2 = (($39) + ($$025$lcssa))|0;
STACKTOP = sp;return ($$2|0);
}
function _Drawer2D_LastCol($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$014 = 0, $$016 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = $3&65535;
$5 = ($4|0)>($1|0);
$6 = (($4) + -1)|0;
$spec$select = $5 ? $1 : $6;
$7 = ($spec$select|0)>(-1);
if (!($7)) {
$$014 = 0;
return ($$014|0);
}
$8 = HEAP32[$0>>2]|0;
$$016 = $spec$select;
while(1) {
$9 = (($8) + ($$016)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(38);
if ($11) {
$12 = (($$016) + 1)|0;
$13 = (_Drawer2D_ValidColCodeAt($0,$12)|0);
$14 = ($13<<24>>24)==(0);
if (!($14)) {
break;
}
}
$17 = (($$016) + -1)|0;
$18 = ($$016|0)>(0);
if ($18) {
$$016 = $17;
} else {
$$014 = 0;
label = 7;
break;
}
}
if ((label|0) == 7) {
return ($$014|0);
}
$15 = (($8) + ($12)|0);
$16 = HEAP8[$15>>0]|0;
$$014 = $16;
return ($$014|0);
}
function _Drawer2D_IsWhiteCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<24>>24) {
case 102: case 0: {
$2 = 1;
break;
}
default: {
$1 = ($0<<24>>24)==(70);
$phitmp = $1&1;
$2 = $phitmp;
}
}
return ($2|0);
}
function _Drawer2D_ReducePadding_Tex($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP8[1408216]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 10|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = (($7) - ($1))|0;
$9 = (($8|0) / ($2|0))&-1;
$10 = (+($9|0));
$11 = (_Math_NextPowOf2($7)|0);
$12 = (+($11|0));
$13 = $10 / $12;
$14 = ((($0)) + 16|0);
$15 = +HEAPF32[$14>>2];
$16 = $15 + $13;
HEAPF32[$14>>2] = $16;
$17 = ((($0)) + 24|0);
$18 = +HEAPF32[$17>>2];
$19 = $18 - $13;
HEAPF32[$17>>2] = $19;
$20 = $9 << 1;
$21 = HEAP16[$5>>1]|0;
$22 = $21&65535;
$23 = (($22) - ($20))|0;
$24 = $23&65535;
HEAP16[$5>>1] = $24;
return;
}
function _Drawer2D_ReducePadding_Height($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP8[1408216]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
return;
}
$5 = HEAP32[$0>>2]|0;
$6 = (($5) - ($1))|0;
$7 = (($6|0) / ($2|0))&-1;
$8 = $7 << 1;
$9 = (($5) - ($8))|0;
HEAP32[$0>>2] = $9;
return;
}
function _Drawer2D_MeasureText($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$5$0$$sroa_idx2 = 0, $2 = 0, $3 = 0, $4 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Drawer2D_TextWidth($1)|0);
$3 = (_Drawer2D_TextHeight($1)|0);
$4 = ($2|0)==(0);
$spec$select = $4 ? 0 : $3;
HEAP32[$0>>2] = $2;
$$sroa$5$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP32[$$sroa$5$0$$sroa_idx2>>2] = $spec$select;
return;
}
function _Font_GetNames($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _TabList_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_StringsBuffer_Clear((1243760));
return;
}
function _TabList_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
_Mem_Set(1242992,0,512);
_Mem_Set((1243504),0,256);
_StringsBuffer_Clear((1243760));
return;
}
function _NetPlayer_Tick($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$byval_copy = 0, $$byval_copy1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy1 = sp + 12|0;
$$byval_copy = sp;
_Entity_CheckSkin($0);
$2 = ((($0)) + 428|0);
_NetInterpComp_AdvanceState($2);
$3 = ((($0)) + 456|0);
;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0;
_AnimatedComp_Update($0,$$byval_copy,$$byval_copy1,$1);
STACKTOP = sp;return;
}
function _Player_Despawn($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_DeleteSkin($0);
_Entity_ContextLost($0);
return;
}
function _NetPlayer_SetLocation($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 428|0);
_NetInterpComp_SetLocation($3,$1,$2);
return;
}
function _Entity_GetCol($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 12|0;
$2 = sp;
_Entity_GetEyePosition($1,$0);
_IVec3_Floor($2,$1);
$3 = HEAP32[$2>>2]|0;
$4 = ((($2)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($2)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = (_World_Contains_124($3,$5,$7)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
$11 = HEAP32[(1407572)>>2]|0;
$12 = $11;
STACKTOP = sp;return ($12|0);
} else {
$10 = (_Lighting_Col($3,$5,$7)|0);
$12 = $10;
STACKTOP = sp;return ($12|0);
}
return (0)|0;
}
function _NetPlayer_RenderModel($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4|0);
$4 = ((($0)) + 428|0);
$5 = ((($0)) + 456|0);
_Vec3_Lerp($3,$4,$5,$2);
_InterpComp_LerpAngles($4,$0,$2);
_AnimatedComp_GetCurrent($0,$2);
$6 = (_Model_ShouldRender($0)|0);
$7 = ((($0)) + 868|0);
HEAP8[$7>>0] = $6;
$8 = ($6<<24>>24)==(0);
if ($8) {
return;
}
$9 = ((($0)) + 48|0);
$10 = HEAP32[$9>>2]|0;
_Model_Render($10,$0);
return;
}
function _NetPlayer_RenderName($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 868|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
return;
}
$4 = (+_Model_RenderDistance($0));
$5 = HEAP8[(1242148)>>0]|0;
$6 = ($5<<24>>24)==(4);
$7 = $6 ? 67108864.0 : 1024.0;
$8 = !($4 <= $7);
if ($8) {
return;
}
_DrawName($0);
return;
}
function _DrawName($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0;
var $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0;
var $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0;
var $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192|0;
$1 = sp;
$2 = sp + 120|0;
$3 = sp + 104|0;
$4 = sp + 96|0;
$5 = ((($0)) + 404|0);
$6 = HEAP16[$5>>1]|0;
$7 = ($6<<16>>16)==(-30000);
if ($7) {
STACKTOP = sp;return;
}
$8 = ((($0)) + 400|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0);
if ($10) {
_MakeNameTexture($0);
}
$11 = HEAP32[$8>>2]|0;
_Gfx_BindTexture($11);
$12 = ((($0)) + 48|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($13)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$16 = (+FUNCTION_TABLE_di[$15 & 31]($0));
$17 = ((($0)) + 128|0);
_Vec3_TransformY($3,$16,$17);
$18 = ((($13)) + 92|0);
$19 = +HEAPF32[$18>>2];
$20 = ((($0)) + 84|0);
$21 = +HEAPF32[$20>>2];
$22 = $19 * $21;
$23 = $22 > 1.0;
$24 = $22 / 70.0;
$25 = $23 ? 0.014285714365541935 : $24;
$26 = ((($0)) + 408|0);
$27 = HEAP16[$26>>1]|0;
$28 = (+($27&65535));
$29 = $25 * $28;
HEAPF32[$4>>2] = $29;
$30 = ((($0)) + 410|0);
$31 = HEAP16[$30>>1]|0;
$32 = (+($31&65535));
$33 = $25 * $32;
$34 = ((($4)) + 4|0);
HEAPF32[$34>>2] = $33;
$35 = HEAP8[(1242148)>>0]|0;
$36 = ($35<<24>>24)!=(4);
$37 = HEAP8[(1242634)>>0]|0;
$38 = ($37<<24>>24)==(0);
$or$cond = $36 | $38;
if (!($or$cond)) {
_Matrix_Mul($2,(1260364),(1260428));
$39 = +HEAPF32[$3>>2];
$40 = ((($2)) + 12|0);
$41 = +HEAPF32[$40>>2];
$42 = $39 * $41;
$43 = ((($3)) + 4|0);
$44 = +HEAPF32[$43>>2];
$45 = ((($2)) + 28|0);
$46 = +HEAPF32[$45>>2];
$47 = $44 * $46;
$48 = $42 + $47;
$49 = ((($3)) + 8|0);
$50 = +HEAPF32[$49>>2];
$51 = ((($2)) + 44|0);
$52 = +HEAPF32[$51>>2];
$53 = $50 * $52;
$54 = $48 + $53;
$55 = ((($2)) + 60|0);
$56 = +HEAPF32[$55>>2];
$57 = $56 + $54;
$58 = $57 * 0.20000000298023224;
$59 = +HEAPF32[$4>>2];
$60 = $59 * $58;
HEAPF32[$4>>2] = $60;
$61 = +HEAPF32[$34>>2];
$62 = $61 * $58;
HEAPF32[$34>>2] = $62;
}
$63 = ((($0)) + 412|0);
_Particle_DoRender($4,$3,$63,-1,$1);
_Gfx_SetVertexFormat(1);
$64 = HEAP32[315124]|0;
_Gfx_UpdateDynamicVb_IndexedTris($64,$1,4);
STACKTOP = sp;return;
}
function _MakeNameTexture($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0;
$1 = sp + 88|0;
$2 = sp;
$3 = sp + 72|0;
$4 = sp + 108|0;
$5 = sp + 64|0;
$6 = sp + 96|0;
$7 = HEAP8[1408216]|0;
HEAP8[1408216] = 1;
$8 = ((($0)) + 336|0);
_String_FromRaw($5,$8,64);
_Drawer2D_MakeFont($4,24,0);
_DrawTextArgs_Make($3,$5,$4,0);
$9 = (_Drawer2D_TextWidth($3)|0);
$10 = ($9|0)==(0);
if ($10) {
$11 = ((($0)) + 400|0);
HEAP32[$11>>2] = 0;
$12 = ((($0)) + 404|0);
HEAP16[$12>>1] = -30000;
HEAP8[1408216] = $7;
STACKTOP = sp;return;
} else {
HEAP32[$1>>2] = $2;
$13 = ((($1)) + 4|0);
HEAP16[$13>>1] = 0;
$14 = ((($1)) + 6|0);
HEAP16[$14>>1] = 64;
$15 = (($9) + 3)|0;
$16 = (_Drawer2D_TextHeight($3)|0);
$17 = (($16) + 3)|0;
_Bitmap_AllocateClearedPow2($6,$15,$17);
$18 = HEAP32[(154728)>>2]|0;
HEAP32[(154728)>>2] = -11513776;
_String_AppendColorless($1,$5);
$19 = $1;
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = (($19) + 4)|0;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = $3;
$26 = $25;
HEAP32[$26>>2] = $21;
$27 = (($25) + 4)|0;
$28 = $27;
HEAP32[$28>>2] = $24;
_Drawer2D_DrawText($6,$3,3,3);
HEAP32[(154728)>>2] = $18;
$29 = $5;
$30 = $29;
$31 = HEAP32[$30>>2]|0;
$32 = (($29) + 4)|0;
$33 = $32;
$34 = HEAP32[$33>>2]|0;
$35 = $3;
$36 = $35;
HEAP32[$36>>2] = $31;
$37 = (($35) + 4)|0;
$38 = $37;
HEAP32[$38>>2] = $34;
_Drawer2D_DrawText($6,$3,0,0);
$39 = ((($0)) + 400|0);
_Drawer2D_MakeTexture($39,$6,$15,$17);
$40 = HEAP32[$6>>2]|0;
_Mem_Free($40);
HEAP8[1408216] = $7;
STACKTOP = sp;return;
}
}
function _Entity_GetEyePosition($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload13 = 0, $$sroa$4$0$$sroa_idx4 = 0, $$sroa$4$0$$sroa_idx5 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$6$0$$sroa_idx8 = 0, $$sroa$6$0$$sroa_idx9 = 0, $$sroa$6$0$copyload14 = 0, $2 = 0.0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$$sroa$0$0$$sroa_idx = ((($1)) + 4|0);
$$sroa$0$0$copyload13 = HEAP32[$$sroa$0$0$$sroa_idx>>2]|0;
$$sroa$4$0$$sroa_idx4 = ((($1)) + 8|0);
$$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx4>>2];
$$sroa$6$0$$sroa_idx8 = ((($1)) + 12|0);
$$sroa$6$0$copyload14 = HEAP32[$$sroa$6$0$$sroa_idx8>>2]|0;
$2 = (+_Entity_GetEyeHeight($1));
$3 = $$sroa$4$0$copyload + $2;
HEAP32[$0>>2] = $$sroa$0$0$copyload13;
$$sroa$4$0$$sroa_idx5 = ((($0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx5>>2] = $3;
$$sroa$6$0$$sroa_idx9 = ((($0)) + 8|0);
HEAP32[$$sroa$6$0$$sroa_idx9>>2] = $$sroa$6$0$copyload14;
return;
}
function _World_Contains_124($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _Entity_GetEyeHeight($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 48|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 24|0);
$4 = HEAP32[$3>>2]|0;
$5 = (+FUNCTION_TABLE_di[$4 & 31]($0));
$6 = ((($0)) + 84|0);
$7 = +HEAPF32[$6>>2];
$8 = $5 * $7;
return (+$8);
}
function _DeleteSkin($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_CanDeleteTexture($0)|0);
$2 = ($1<<24>>24)==(0);
if (!($2)) {
$3 = ((($0)) + 112|0);
_Gfx_DeleteTexture($3);
}
_Entity_ResetSkin($0);
$4 = ((($0)) + 109|0);
HEAP8[$4>>0] = 0;
return;
}
function _Entity_ContextLost($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_DeleteNameTex($0);
return;
}
function _DeleteNameTex($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 400|0);
_Gfx_DeleteTexture($1);
$2 = ((($0)) + 404|0);
HEAP16[$2>>1] = 0;
return;
}
function _CanDeleteTexture($0) {
$0 = $0|0;
var $$010 = 0, $$09 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 112|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0);
if ($3) {
$$09 = 0;
return ($$09|0);
}
$$010 = 0;
while(1) {
$4 = (1241124 + ($$010<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(0|0);
$7 = ($5|0)==($0|0);
$or$cond = $6 | $7;
if (!($or$cond)) {
$8 = ((($5)) + 112|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==($2|0);
if ($10) {
$$09 = 0;
label = 6;
break;
}
}
$11 = (($$010) + 1)|0;
$12 = ($11>>>0)<(256);
if ($12) {
$$010 = $11;
} else {
$$09 = 1;
label = 6;
break;
}
}
if ((label|0) == 6) {
return ($$09|0);
}
return (0)|0;
}
function _Entity_ResetSkin($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 120|0);
HEAPF32[$1>>2] = 1.0;
$2 = ((($0)) + 124|0);
HEAPF32[$2>>2] = 1.0;
$3 = ((($0)) + 116|0);
HEAP32[$3>>2] = 0;
$4 = ((($0)) + 112|0);
HEAP32[$4>>2] = 0;
$5 = ((($0)) + 108|0);
HEAP8[$5>>0] = 0;
return;
}
function _Entity_CheckSkin($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528|0;
$1 = sp + 440|0;
$2 = sp + 432|0;
$3 = sp;
$4 = sp + 464|0;
$5 = sp + 448|0;
$6 = ((($0)) + 48|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($7)) + 44|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(0);
if ($10) {
STACKTOP = sp;return;
}
$11 = ((($0)) + 109|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(2);
if ($13) {
STACKTOP = sp;return;
}
$14 = ((($0)) + 272|0);
_String_FromRaw($2,$14,64);
$15 = HEAP8[$11>>0]|0;
$16 = ($15<<24>>24)==(0);
do {
if ($16) {
$17 = (_Entity_FirstOtherWithSameSkinAndFetchedSkin($0)|0);
$18 = ($17|0)==(0|0);
if ($18) {
_Http_AsyncGetSkin($2);
HEAP8[$11>>0] = 1;
break;
}
_Entity_CopySkin($0,$17);
HEAP8[$11>>0] = 2;
STACKTOP = sp;return;
}
} while(0);
$19 = (_Http_GetResult($2,$3)|0);
$20 = ($19<<24>>24)==(0);
if ($20) {
STACKTOP = sp;return;
}
$21 = ((($3)) + 421|0);
$22 = HEAP8[$21>>0]|0;
$23 = ($22<<24>>24)==(0);
if ($23) {
_Entity_SetSkinAll($0,1);
STACKTOP = sp;return;
}
$24 = ((($3)) + 284|0);
$25 = HEAP32[$24>>2]|0;
$26 = ((($3)) + 288|0);
$27 = HEAP32[$26>>2]|0;
_Stream_ReadonlyMemory($4,$25,$27);
$28 = (_Png_Decode($5,$4)|0);
$29 = ($28|0)==(0);
if (!($29)) {
_String_FromRaw($1,$3,128);
_Logger_Warn2($28,37484,$1);
$30 = HEAP32[$5>>2]|0;
_Mem_Free($30);
STACKTOP = sp;return;
}
$31 = ((($0)) + 112|0);
_Gfx_DeleteTexture($31);
_Entity_SetSkinAll($0,1);
_Entity_EnsurePow2($0,$5);
$32 = (_Utils_CalcSkinType($5)|0);
$33 = ((($0)) + 108|0);
HEAP8[$33>>0] = $32;
$34 = ((($5)) + 4|0);
$35 = HEAP32[$34>>2]|0;
$36 = HEAP32[315087]|0;
$37 = ($35|0)>($36|0);
if ($37) {
label = 14;
} else {
$38 = ((($5)) + 8|0);
$39 = HEAP32[$38>>2]|0;
$40 = HEAP32[(1260352)>>2]|0;
$41 = ($39|0)>($40|0);
if ($41) {
label = 14;
} else {
$42 = ($32<<24>>24)==(-16);
if (!($42)) {
$43 = HEAP32[$6>>2]|0;
$44 = ((($43)) + 46|0);
$45 = HEAP8[$44>>0]|0;
$46 = ($45<<24>>24)==(0);
if (!($46)) {
_Entity_ClearHat($5,$32);
}
$47 = (_Gfx_CreateTexture($5,1,0)|0);
HEAP32[$31>>2] = $47;
_Entity_SetSkinAll($0,0);
}
}
}
if ((label|0) == 14) {
_Chat_Add1(22506,$2);
}
$48 = HEAP32[$5>>2]|0;
_Mem_Free($48);
STACKTOP = sp;return;
}
function _Entity_FirstOtherWithSameSkinAndFetchedSkin($0) {
$0 = $0|0;
var $$013 = 0, $$017 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 16|0;
$2 = sp + 8|0;
$3 = sp;
$4 = ((($0)) + 272|0);
_String_FromRaw($1,$4,64);
$$017 = 0;
while(1) {
$5 = (1241124 + ($$017<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0|0);
$8 = ($6|0)==($0|0);
$or$cond = $7 | $8;
if (!($or$cond)) {
$9 = ((($6)) + 272|0);
_String_FromRaw($3,$9,64);
$10 = $3;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = (($10) + 4)|0;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = $2;
$17 = $16;
HEAP32[$17>>2] = $12;
$18 = (($16) + 4)|0;
$19 = $18;
HEAP32[$19>>2] = $15;
$20 = ((($6)) + 109|0);
$21 = HEAP8[$20>>0]|0;
$22 = ($21<<24>>24)==(0);
if (!($22)) {
$23 = (_String_Equals($1,$2)|0);
$24 = ($23|0)==(0);
if (!($24)) {
$$013 = $6;
label = 6;
break;
}
}
}
$25 = (($$017) + 1)|0;
$26 = ($25>>>0)<(256);
if ($26) {
$$017 = $25;
} else {
$$013 = 0;
label = 6;
break;
}
}
if ((label|0) == 6) {
STACKTOP = sp;return ($$013|0);
}
return (0)|0;
}
function _Entity_CopySkin($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($1)) + 112|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 112|0);
HEAP32[$5>>2] = $4;
$6 = ((($1)) + 108|0);
$7 = HEAP8[$6>>0]|0;
$8 = ((($0)) + 108|0);
HEAP8[$8>>0] = $7;
$9 = ((($1)) + 120|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($0)) + 120|0);
HEAP32[$11>>2] = $10;
$12 = ((($1)) + 124|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($0)) + 124|0);
HEAP32[$14>>2] = $13;
$15 = ((($0)) + 116|0);
HEAP32[$15>>2] = 0;
$16 = ((($0)) + 272|0);
_String_FromRaw($2,$16,64);
$17 = (_Utils_IsUrlPrefix($2)|0);
$18 = ($17<<24>>24)==(0);
if ($18) {
STACKTOP = sp;return;
}
$19 = HEAP32[$5>>2]|0;
HEAP32[$15>>2] = $19;
STACKTOP = sp;return;
}
function _Entity_SetSkinAll($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 16|0;
$3 = sp + 8|0;
$4 = sp;
$5 = ((($0)) + 272|0);
_String_FromRaw($2,$5,64);
$6 = ($1<<24>>24)==(0);
$$015 = 0;
while(1) {
$7 = (1241124 + ($$015<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0|0);
if (!($9)) {
$10 = ((($8)) + 272|0);
_String_FromRaw($4,$10,64);
$11 = $4;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = (($11) + 4)|0;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = $3;
$18 = $17;
HEAP32[$18>>2] = $13;
$19 = (($17) + 4)|0;
$20 = $19;
HEAP32[$20>>2] = $16;
$21 = (_String_Equals($2,$3)|0);
$22 = ($21|0)==(0);
if (!($22)) {
if ($6) {
_Entity_CopySkin($8,$0);
} else {
_Entity_ResetSkin($8);
}
$23 = ((($8)) + 109|0);
HEAP8[$23>>0] = 2;
}
}
$24 = (($$015) + 1)|0;
$exitcond = ($24|0)==(256);
if ($exitcond) {
break;
} else {
$$015 = $24;
}
}
STACKTOP = sp;return;
}
function _Entity_EnsurePow2($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$037 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($1)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = (_Math_NextPowOf2($4)|0);
$6 = ((($1)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = (_Math_NextPowOf2($7)|0);
$9 = HEAP32[$3>>2]|0;
$10 = ($5|0)==($9|0);
if ($10) {
$11 = HEAP32[$6>>2]|0;
$12 = ($8|0)==($11|0);
if ($12) {
STACKTOP = sp;return;
}
}
_Bitmap_Allocate($2,$5,$8);
$13 = HEAP32[$3>>2]|0;
$14 = (+($13|0));
$15 = (+($5|0));
$16 = $14 / $15;
$17 = ((($0)) + 120|0);
HEAPF32[$17>>2] = $16;
$18 = HEAP32[$6>>2]|0;
$19 = (+($18|0));
$20 = (+($8|0));
$21 = $19 / $20;
$22 = ((($0)) + 124|0);
HEAPF32[$22>>2] = $21;
$23 = $13 << 2;
$24 = HEAP32[$6>>2]|0;
$25 = ($24|0)>(0);
if ($25) {
$26 = ((($2)) + 4|0);
$$037 = 0;
while(1) {
$27 = HEAP32[$1>>2]|0;
$28 = HEAP32[$3>>2]|0;
$29 = Math_imul($28, $$037)|0;
$30 = (($27) + ($29<<2)|0);
$31 = HEAP32[$2>>2]|0;
$32 = HEAP32[$26>>2]|0;
$33 = Math_imul($32, $$037)|0;
$34 = (($31) + ($33<<2)|0);
_Mem_Copy($34,$30,$23);
$35 = (($$037) + 1)|0;
$36 = HEAP32[$6>>2]|0;
$37 = ($35|0)<($36|0);
if ($37) {
$$037 = $35;
} else {
break;
}
}
}
$38 = HEAP32[$1>>2]|0;
_Mem_Free($38);
;HEAP32[$1>>2]=HEAP32[$2>>2]|0;HEAP32[$1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$2+8>>2]|0;
STACKTOP = sp;return;
}
function _Entity_ClearHat($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$04860 = 0, $$056 = 0, $$14953 = 0, $$152 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $switch$split2D = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($3|0) / 64)&-1;
$5 = $4 << 5;
$6 = ($1<<24>>24)==(0);
$7 = $6 ? 32 : 64;
$8 = ((($0)) + 8|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($9|0) / ($7|0))&-1;
$11 = $10 << 4;
$12 = ($10|0)>(0);
if (!($12)) {
return;
}
$13 = HEAP32[$0>>2]|0;
$14 = ($3|0)>(63);
$$04860 = 0;
L4: while(1) {
$15 = Math_imul($$04860, $3)|0;
$16 = (($13) + ($15<<2)|0);
$17 = (($16) + ($5<<2)|0);
if ($14) {
$$056 = 0;
while(1) {
$20 = (($17) + ($$056<<2)|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21>>>0)<(4278190080);
$18 = (($$056) + 1)|0;
if ($22) {
label = 16;
break L4;
}
$19 = ($18|0)<($5|0);
if ($19) {
$$056 = $18;
} else {
break;
}
}
}
$23 = (($$04860) + 1)|0;
$24 = ($23|0)<($11|0);
if ($24) {
$$04860 = $23;
} else {
break;
}
}
if ((label|0) == 16) {
return;
}
$25 = ($10|0)>(0);
if (!($25)) {
return;
}
$26 = HEAP32[$0>>2]|0;
$27 = ($3|0)>(63);
$$14953 = 0;
while(1) {
$28 = HEAP32[$2>>2]|0;
$29 = Math_imul($28, $$14953)|0;
$30 = (($26) + ($29<<2)|0);
$31 = (($30) + ($5<<2)|0);
if ($27) {
$$152 = 0;
while(1) {
$32 = (($31) + ($$152<<2)|0);
$33 = HEAP32[$32>>2]|0;
$switch$split2D = ($33|0)<(-1);
if ($switch$split2D) {
switch ($33|0) {
case -16777216: {
label = 13;
break;
}
default: {
}
}
} else {
switch ($33|0) {
case -1: {
label = 13;
break;
}
default: {
}
}
}
if ((label|0) == 13) {
label = 0;
HEAP32[$32>>2] = 0;
}
$34 = (($$152) + 1)|0;
$35 = ($34|0)<($5|0);
if ($35) {
$$152 = $34;
} else {
break;
}
}
}
$36 = (($$14953) + 1)|0;
$37 = ($36|0)<($11|0);
if ($37) {
$$14953 = $36;
} else {
break;
}
}
return;
}
function _Entities_Init() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $spec$store$select = 0, $spec$store$select1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Event_Register((1251856),0,275);
_Event_Register((1252116),0,276);
_Event_Register(1254716,0,277);
$0 = (_Options_GetEnum(33262,1,1312,5)|0);
$1 = $0&255;
$2 = HEAP8[1408229]|0;
$3 = ($2<<24>>24)==(0);
$spec$store$select = $3 ? $1 : 1;
HEAP8[(1242148)>>0] = $spec$store$select;
$4 = (_Options_GetEnum(33249,0,1344,4)|0);
$5 = $4&255;
$6 = HEAP8[1408229]|0;
$7 = ($6<<24>>24)==(0);
$spec$store$select1 = $7 ? $5 : 0;
HEAP8[(1242149)>>0] = $spec$store$select1;
HEAP32[(1242144)>>2] = 1242152;
_LocalPlayer_Init();
return;
}
function _Entities_Free() {
var $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$05 = 0;
while(1) {
$0 = (1241124 + ($$05<<2)|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0|0);
if (!($2)) {
$3 = $$05&255;
_Entities_Remove($3);
}
$4 = (($$05) + 1)|0;
$exitcond = ($4|0)==(256);
if ($exitcond) {
break;
} else {
$$05 = $4;
}
}
_Event_Unregister((1251856),0,275);
_Event_Unregister((1252116),0,276);
_Event_Unregister(1254716,0,277);
$5 = HEAP32[312226]|0;
$6 = ($5|0)==(0);
if ($6) {
return;
}
_Gfx_DeleteTexture(1248904);
return;
}
function _LocalPlayer_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[(1242612)>>2] = 5.0;
HEAPF32[(1242188)>>2] = 0.0;
HEAPF32[(1242192)>>2] = 0.0;
HEAPF32[(1242196)>>2] = 0.0;
HEAPF32[(1242968)>>2] = 0.41999998688697815;
HEAPF32[(1242976)>>2] = 0.41999998688697815;
return;
}
function _LocalPlayer_OnNewMap() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[(1242188)>>2] = 0.0;
HEAPF32[(1242192)>>2] = 0.0;
HEAPF32[(1242196)>>2] = 0.0;
HEAPF32[(1242592)>>2] = 0.0;
HEAPF32[(1242596)>>2] = 0.0;
HEAPF32[(1242600)>>2] = 0.0;
HEAP8[(1242988)>>0] = 0;
HEAP8[(1242989)>>0] = 0;
HEAP8[(1242990)>>0] = 0;
return;
}
function _Entities_Remove($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&255;
_Event_RaiseInt((1249256),$1);
$2 = (1241124 + ($1<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = HEAP32[$3>>2]|0;
$5 = ((($4)) + 4|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$6 & 511]($3);
HEAP32[$2>>2] = 0;
return;
}
function _Entities_ContextLost($0) {
$0 = $0|0;
var $$05 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$05 = 0;
while(1) {
$1 = (1241124 + ($$05<<2)|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0|0);
if (!($3)) {
_Entity_ContextLost($2);
}
$4 = (($$05) + 1)|0;
$exitcond = ($4|0)==(256);
if ($exitcond) {
break;
} else {
$$05 = $4;
}
}
_Gfx_DeleteTexture(1248904);
return;
}
function _Entities_ContextRecreated($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Entities_ChatFontChanged($0) {
$0 = $0|0;
var $$05 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$05 = 0;
while(1) {
$1 = (1241124 + ($$05<<2)|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0|0);
if (!($3)) {
_DeleteNameTex($2);
}
$4 = (($$05) + 1)|0;
$exitcond = ($4|0)==(256);
if ($exitcond) {
break;
} else {
$$05 = $4;
}
}
return;
}
function _LocalPlayer_Init() {
var $$pr = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0, $or$cond = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
_Entity_Init(1242152);
_Entity_SetName(1242152,11488);
_Entity_SetSkin(1242152,11488);
_Event_Register((1252636),0,278);
HEAP32[(1242944)>>2] = 1242152;
_HacksComp_Init((1242616));
_PhysicsComp_Init((1242956),1242152);
_TiltComp_Init((1242796));
HEAP8[(1242206)>>0] = 1;
HEAPF32[(1242612)>>2] = 5.0;
HEAP32[(1242980)>>2] = (1242616);
HEAP32[(1242984)>>2] = (1242944);
HEAP32[310538] = 11340;
$0 = HEAP8[1408229]|0;
$1 = ($0<<24>>24)==(0);
$2 = HEAP8[1408233]|0;
$3 = ($2<<24>>24)!=(0);
$or$cond = $1 | $3;
if (!($or$cond)) {
HEAP8[(1242626)>>0] = 0;
return;
}
$4 = (_Options_GetBool(31551,1)|0);
$5 = ($4<<24>>24)!=(0);
$phitmp = $5&1;
$$pr = HEAP8[1408229]|0;
HEAP8[(1242626)>>0] = $phitmp;
$6 = ($$pr<<24>>24)==(0);
if (!($6)) {
return;
}
$7 = (+_Options_GetFloat(31529,0.10000000149011612,50.0,10.0));
HEAPF32[(1242620)>>2] = $7;
$8 = (_Options_GetBool(31404,0)|0);
HEAP8[(1242624)>>0] = $8;
$9 = (_Options_GetBool(31386,0)|0);
HEAP8[(1242648)>>0] = $9;
$10 = (_Options_GetBool(31469,0)|0);
HEAP8[(1242649)>>0] = $10;
$11 = (_Options_GetBool(31449,0)|0);
HEAP8[(1242625)>>0] = $11;
$12 = (+_Options_GetFloat(31489,0.0,52.0,0.41999998688697815));
HEAPF32[(1242972)>>2] = $12;
HEAPF32[(1242968)>>2] = $12;
$13 = (_Options_GetBool(22529,1)|0);
HEAP8[1408218] = $13;
return;
}
function _Entity_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 80|0);
HEAPF32[$1>>2] = 1.0;
$2 = ((($0)) + 84|0);
HEAPF32[$2>>2] = 1.0;
$3 = ((($0)) + 88|0);
HEAPF32[$3>>2] = 1.0;
$4 = ((($0)) + 120|0);
HEAPF32[$4>>2] = 1.0;
$5 = ((($0)) + 124|0);
HEAPF32[$5>>2] = 1.0;
$6 = ((($0)) + 104|0);
HEAPF32[$6>>2] = 0.5;
$7 = ((($0)) + 272|0);
HEAP8[$7>>0] = 0;
$8 = ((($0)) + 336|0);
HEAP8[$8>>0] = 0;
_Entity_SetModel($0,11364);
return;
}
function _Entity_SetName($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_DeleteNameTex($0);
$2 = ((($0)) + 336|0);
_String_CopyToRaw($2,64,$1);
return;
}
function _Entity_SetSkin($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_DeleteSkin($0);
$2 = ((($0)) + 272|0);
_String_CopyToRaw($2,64,$1);
return;
}
function _LocalPlayer_CheckJumpVelocity($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_HacksComp_CanJumpHigher((1242616))|0);
$2 = ($1<<24>>24)==(0);
if (!($2)) {
return;
}
$3 = HEAP32[(1242976)>>2]|0;
HEAP32[(1242968)>>2] = $3;
return;
}
function _LocalPlayer_Tick($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0;
var $or$cond3 = 0, $phitmp = 0.0, $phitmp43 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$$byval_copy2 = sp + 32|0;
$$byval_copy1 = sp + 20|0;
$2 = sp + 16|0;
$3 = sp;
$4 = sp + 4|0;
$5 = ((($0)) + 464|0);
HEAPF32[$2>>2] = 0.0;
HEAPF32[$3>>2] = 0.0;
$6 = HEAP32[351863]|0;
$7 = ($6|0)==(0|0);
if ($7) {
STACKTOP = sp;return;
}
$8 = ((($5)) + 9|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(0);
if ($10) {
$18 = 0.5;
} else {
$11 = ((($5)) + 10|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(0);
if ($13) {
$18 = 0.5;
} else {
$14 = ((($5)) + 13|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(0);
$phitmp = $16 ? 0.5 : 1.0;
$18 = $phitmp;
}
}
$17 = ((($0)) + 104|0);
HEAPF32[$17>>2] = $18;
$19 = ((($0)) + 440|0);
$20 = ((($0)) + 36|0);
;HEAP32[$19>>2]=HEAP32[$20>>2]|0;HEAP32[$19+4>>2]=HEAP32[$20+4>>2]|0;HEAP32[$19+8>>2]=HEAP32[$20+8>>2]|0;
$21 = ((($0)) + 111|0);
$22 = HEAP8[$21>>0]|0;
$23 = ((($0)) + 664|0);
_LocalInterpComp_AdvanceState($23);
_LocalPlayer_HandleInput($2,$3);
$24 = ((($5)) + 34|0);
$25 = HEAP8[$24>>0]|0;
$26 = ($25<<24>>24)==(0);
if ($26) {
$28 = ((($5)) + 35|0);
$29 = HEAP8[$28>>0]|0;
$30 = ($29<<24>>24)!=(0);
$phitmp43 = $30&1;
$31 = ((($5)) + 40|0);
HEAP8[$31>>0] = $phitmp43;
if ($30) {
$53 = $31;
} else {
$32 = ((($5)) + 20|0);
$33 = HEAP8[$32>>0]|0;
$34 = ($33<<24>>24)==(0);
if ($34) {
$53 = $31;
} else {
_PhysicsComp_DoEntityPush($0);
$53 = $31;
}
}
} else {
$27 = ((($5)) + 40|0);
HEAP8[$27>>0] = 1;
$53 = $27;
}
$35 = ((($5)) + 32|0);
$36 = HEAP8[$35>>0]|0;
$37 = ($36<<24>>24)==(0);
if ($37) {
$38 = HEAP8[$24>>0]|0;
$39 = ($38<<24>>24)!=(0);
$40 = +HEAPF32[$2>>2];
$41 = $40 == 0.0;
$or$cond = $39 & $41;
$42 = +HEAPF32[$3>>2];
$43 = $42 == 0.0;
$or$cond3 = $or$cond & $43;
if ($or$cond3) {
HEAPF32[$20>>2] = 0.0;
$44 = ((($0)) + 40|0);
HEAPF32[$44>>2] = 0.0;
$45 = ((($0)) + 44|0);
HEAPF32[$45>>2] = 0.0;
}
}
$46 = ((($0)) + 804|0);
_PhysicsComp_UpdateVelocityState($46);
$47 = +HEAPF32[$2>>2];
$48 = +HEAPF32[$3>>2];
$49 = ((($0)) + 20|0);
$50 = +HEAPF32[$49>>2];
$51 = $50 * 0.01745329238474369;
_Vec3_RotateY3($4,$47,0.0,$48,$51);
;HEAP32[$$byval_copy2>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$4+8>>2]|0;
_PhysicsComp_PhysicsTick($46,$$byval_copy2);
$52 = HEAP8[$53>>0]|0;
$54 = ($52<<24>>24)==(0);
if (!($54)) {
$55 = ((($0)) + 40|0);
HEAPF32[$55>>2] = 0.0;
}
$56 = ((($23)) + 28|0);
$57 = ((($0)) + 4|0);
;HEAP32[$56>>2]=HEAP32[$57>>2]|0;HEAP32[$56+4>>2]=HEAP32[$57+4>>2]|0;HEAP32[$56+8>>2]=HEAP32[$57+8>>2]|0;
;HEAP32[$57>>2]=HEAP32[$23>>2]|0;HEAP32[$57+4>>2]=HEAP32[$23+4>>2]|0;HEAP32[$57+8>>2]=HEAP32[$23+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$23>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$23+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$23+8>>2]|0;
;HEAP32[$$byval_copy2>>2]=HEAP32[$56>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$56+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$56+8>>2]|0;
_AnimatedComp_Update($0,$$byval_copy1,$$byval_copy2,$1);
$58 = ((($0)) + 644|0);
_TiltComp_Update($58,$1);
_Entity_CheckSkin($0);
_SoundComp_Tick($22);
STACKTOP = sp;return;
}
function _LocalPlayer_SetLocation($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 664|0);
_LocalInterpComp_SetLocation($3,$1,$2);
return;
}
function _LocalPlayer_RenderModel($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
_AnimatedComp_GetCurrent($0,$2);
$3 = ((($0)) + 644|0);
_TiltComp_GetCurrent($3,$2);
$4 = HEAP32[(1230632)>>2]|0;
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if ($6) {
return;
}
$7 = ((($0)) + 48|0);
$8 = HEAP32[$7>>2]|0;
_Model_Render($8,$0);
return;
}
function _LocalPlayer_RenderName($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1230632)>>2]|0;
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
return;
}
_DrawName($0);
return;
}
function _LocalPlayer_HandleInput($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$pr = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $or$cond = 0;
var $or$cond30 = 0, $phitmp = 0, $phitmp27 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Gui_GetInputGrab()|0);
$3 = ($2|0)==(0|0);
if (!($3)) {
HEAP8[(1242958)>>0] = 0;
HEAP8[(1242654)>>0] = 0;
HEAP8[(1242652)>>0] = 0;
HEAP8[(1242653)>>0] = 0;
return;
}
$4 = (_KeyBind_IsPressed(0)|0);
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$6 = +HEAPF32[$1>>2];
$7 = $6 + -0.98000001907348633;
HEAPF32[$1>>2] = $7;
}
$8 = (_KeyBind_IsPressed(1)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
$10 = +HEAPF32[$1>>2];
$11 = $10 + 0.98000001907348633;
HEAPF32[$1>>2] = $11;
}
$12 = (_KeyBind_IsPressed(2)|0);
$13 = ($12<<24>>24)==(0);
if (!($13)) {
$14 = +HEAPF32[$0>>2];
$15 = $14 + -0.98000001907348633;
HEAPF32[$0>>2] = $15;
}
$16 = (_KeyBind_IsPressed(3)|0);
$17 = ($16<<24>>24)==(0);
if (!($17)) {
$18 = +HEAPF32[$0>>2];
$19 = $18 + 0.98000001907348633;
HEAPF32[$0>>2] = $19;
}
$20 = (_KeyBind_IsPressed(4)|0);
HEAP8[(1242958)>>0] = $20;
$21 = HEAP8[(1242626)>>0]|0;
$22 = ($21<<24>>24)==(0);
if ($22) {
HEAP8[(1242654)>>0] = 0;
$28 = 0;
} else {
$23 = (_KeyBind_IsPressed(12)|0);
$24 = ($23<<24>>24)!=(0);
$phitmp = $24&1;
$$pr = HEAP8[(1242626)>>0]|0;
HEAP8[(1242654)>>0] = $phitmp;
$25 = ($$pr<<24>>24)==(0);
if ($25) {
$28 = 0;
} else {
$26 = (_KeyBind_IsPressed(25)|0);
$27 = ($26<<24>>24)!=(0);
$phitmp27 = $27&1;
$28 = $phitmp27;
}
}
HEAP8[(1242655)>>0] = $28;
$29 = (_KeyBind_IsPressed(15)|0);
HEAP8[(1242652)>>0] = $29;
$30 = (_KeyBind_IsPressed(16)|0);
HEAP8[(1242653)>>0] = $30;
$31 = HEAP8[(1242649)>>0]|0;
$32 = ($31<<24>>24)==(0);
$33 = HEAP8[(1242626)>>0]|0;
$34 = ($33<<24>>24)==(0);
$or$cond = $32 | $34;
$35 = HEAP8[(1242632)>>0]|0;
$36 = ($35<<24>>24)==(0);
$or$cond30 = $or$cond | $36;
if ($or$cond30) {
return;
}
$37 = HEAP8[(1242650)>>0]|0;
$38 = ($37<<24>>24)==(0);
if (!($38)) {
HEAPF32[(1242188)>>2] = 0.0;
HEAPF32[(1242192)>>2] = 0.0;
HEAPF32[(1242196)>>2] = 0.0;
}
$39 = (_KeyBind_IsPressed(13)|0);
HEAP8[(1242650)>>0] = $39;
return;
}
function _Entity_SetModel($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 16|0;
$3 = sp + 24|0;
$4 = sp + 8|0;
$5 = sp;
$6 = ((($0)) + 80|0);
HEAPF32[$6>>2] = 1.0;
$7 = ((($0)) + 84|0);
HEAPF32[$7>>2] = 1.0;
$8 = ((($0)) + 88|0);
HEAPF32[$8>>2] = 1.0;
(_String_UNSAFE_Separate($1,124,$2,$3)|0);
$9 = (_String_CaselessEqualsConst($2,22545)|0);
$10 = ($9|0)==(0);
if (!($10)) {
_String_FromReadonly($5,34370);
$11 = $5;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = (($11) + 4)|0;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = $2;
$18 = $17;
HEAP32[$18>>2] = $13;
$19 = (($17) + 4)|0;
$20 = $19;
HEAP32[$20>>2] = $16;
HEAPF32[$6>>2] = 2.0;
HEAPF32[$7>>2] = 2.0;
HEAPF32[$8>>2] = 2.0;
}
$21 = ((($0)) + 52|0);
HEAP16[$21>>1] = 0;
$22 = (_Model_Get($2)|0);
$23 = ((($0)) + 48|0);
HEAP32[$23>>2] = $22;
$24 = ((($0)) + 116|0);
HEAP32[$24>>2] = 0;
$25 = ($22|0)==(0|0);
if ($25) {
_Entity_SetBlockModel($0,$2);
}
_Entity_ParseScale($0,$3);
_Entity_UpdateModelBounds($0);
$26 = ((($0)) + 272|0);
_String_FromRaw($4,$26,64);
$27 = (_Utils_IsUrlPrefix($4)|0);
$28 = ($27<<24>>24)==(0);
if ($28) {
STACKTOP = sp;return;
}
$29 = ((($0)) + 112|0);
$30 = HEAP32[$29>>2]|0;
HEAP32[$24>>2] = $30;
STACKTOP = sp;return;
}
function _Entity_SetBlockModel($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Block_Parse($1)|0);
$3 = ($2|0)==(-1);
if ($3) {
$4 = HEAP32[(1280032)>>2]|0;
$5 = ((($0)) + 48|0);
HEAP32[$5>>2] = $4;
return;
} else {
$6 = $2&65535;
$7 = ((($0)) + 52|0);
HEAP16[$7>>1] = $6;
$8 = (_Model_Get(11372)|0);
$9 = ((($0)) + 48|0);
HEAP32[$9>>2] = $8;
return;
}
}
function _Entity_ParseScale($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$ = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_Convert_ParseFloat($1,$2)|0);
$4 = ($3<<24>>24)==(0);
if ($4) {
STACKTOP = sp;return;
}
$5 = +HEAPF32[$2>>2];
$6 = $5 > 0.0010000000474974513;
$7 = $6 ? $5 : 0.0010000000474974513;
HEAPF32[$2>>2] = $7;
$8 = ((($0)) + 54|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(0);
if (!($10)) {
$11 = ((($0)) + 48|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 84|0);
$14 = +HEAPF32[$13>>2];
$15 = $7 < $14;
$$ = $15 ? $7 : $14;
HEAPF32[$2>>2] = $$;
}
$16 = HEAP32[$2>>2]|0;
$17 = ((($0)) + 80|0);
HEAP32[$17>>2] = $16;
$18 = ((($0)) + 84|0);
HEAP32[$18>>2] = $16;
$19 = ((($0)) + 88|0);
HEAP32[$19>>2] = $16;
STACKTOP = sp;return;
}
function _Entity_UpdateModelBounds($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 48|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 28|0);
$4 = HEAP32[$3>>2]|0;
FUNCTION_TABLE_vi[$4 & 511]($0);
$5 = ((($2)) + 32|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$6 & 511]($0);
$7 = ((($0)) + 92|0);
$8 = ((($0)) + 80|0);
_Vec3_Mul3($7,$7,$8);
$9 = ((($0)) + 56|0);
_Vec3_Mul3($9,$9,$8);
$10 = ((($0)) + 68|0);
_Vec3_Mul3($10,$10,$8);
return;
}
function _Vec3_Mul3($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 * $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 * $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 * $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _LocationUpdate_Clamp($0) {
$0 = +$0;
var $$0$lcssa = 0.0, $$05 = 0.0, $$1$lcssa = 0.0, $$14 = 0.0, $1 = 0, $2 = 0.0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = !($0 >= 360.0);
if ($1) {
$$0$lcssa = $0;
} else {
$$05 = $0;
while(1) {
$2 = $$05 + -360.0;
$3 = !($2 >= 360.0);
if ($3) {
$$0$lcssa = $2;
break;
} else {
$$05 = $2;
}
}
}
$4 = $$0$lcssa < 0.0;
if (!($4)) {
$$1$lcssa = $$0$lcssa;
return (+$$1$lcssa);
}
$$14 = $$0$lcssa;
while(1) {
$5 = $$14 + 360.0;
$6 = $5 < 0.0;
if ($6) {
$$14 = $5;
} else {
$$1$lcssa = $5;
break;
}
}
return (+$$1$lcssa);
}
function _LocationUpdate_MakeOri($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;HEAP32[$0+24>>2]=0|0;HEAP32[$0+28>>2]=0|0;
$3 = ((($0)) + 28|0);
HEAP8[$3>>0] = 6;
$4 = (+_LocationUpdate_Clamp($2));
$5 = ((($0)) + 12|0);
HEAPF32[$5>>2] = $4;
$6 = (+_LocationUpdate_Clamp($1));
$7 = ((($0)) + 16|0);
HEAPF32[$7>>2] = $6;
return;
}
function _LocationUpdate_MakePos($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 12|0);
;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0;HEAP32[$3+12>>2]=0|0;HEAP32[$3+16>>2]=0|0;
$4 = ((($0)) + 28|0);
HEAP8[$4>>0] = 1;
;HEAP32[$0>>2]=HEAP32[$1>>2]|0;HEAP32[$0+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$1+8>>2]|0;
$5 = ((($0)) + 29|0);
HEAP8[$5>>0] = $2;
return;
}
function _LocationUpdate_MakePosAndOri($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
$3 = +$3;
$4 = $4|0;
var $10 = 0, $11 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ((($0)) + 20|0);
;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0;
$6 = ((($0)) + 28|0);
HEAP8[$6>>0] = 7;
$7 = (+_LocationUpdate_Clamp($3));
$8 = ((($0)) + 12|0);
HEAPF32[$8>>2] = $7;
$9 = (+_LocationUpdate_Clamp($2));
$10 = ((($0)) + 16|0);
HEAPF32[$10>>2] = $9;
;HEAP32[$0>>2]=HEAP32[$1>>2]|0;HEAP32[$0+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$1+8>>2]|0;
$11 = ((($0)) + 29|0);
HEAP8[$11>>0] = $4;
return;
}
function _Entity_GetTransform($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$4 = sp;
$5 = +HEAPF32[$2>>2];
$6 = ((($2)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 8|0);
$9 = +HEAPF32[$8>>2];
_Matrix_Scale($3,$5,$7,$9);
$10 = ((($0)) + 32|0);
$11 = +HEAPF32[$10>>2];
$12 = $11 * -0.01745329238474369;
_Matrix_RotateZ($4,$12);
_Matrix_Mul($3,$3,$4);
$13 = ((($0)) + 24|0);
$14 = +HEAPF32[$13>>2];
$15 = $14 * -0.01745329238474369;
_Matrix_RotateX($4,$15);
_Matrix_Mul($3,$3,$4);
$16 = ((($0)) + 28|0);
$17 = +HEAPF32[$16>>2];
$18 = $17 * -0.01745329238474369;
_Matrix_RotateY($4,$18);
_Matrix_Mul($3,$3,$4);
$19 = +HEAPF32[$1>>2];
$20 = ((($1)) + 4|0);
$21 = +HEAPF32[$20>>2];
$22 = ((($1)) + 8|0);
$23 = +HEAPF32[$22>>2];
_Matrix_Translate($4,$19,$21,$23);
_Matrix_Mul($3,$3,$4);
STACKTOP = sp;return;
}
function _Entity_GetPickingBounds($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 56|0);
$3 = ((($0)) + 4|0);
_AABB_Offset($1,$2,$3);
return;
}
function _Entity_GetBounds($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = ((($0)) + 92|0);
_AABB_Make($1,$2,$3);
return;
}
function _Entity_TouchesAny($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$02635 = 0, $$02730 = 0, $$028 = 0, $$031 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$2 = sp + 52|0;
$3 = sp + 40|0;
$4 = sp + 16|0;
$5 = sp;
_IVec3_Floor($2,$0);
$6 = ((($0)) + 12|0);
_IVec3_Floor($3,$6);
$7 = HEAP32[$2>>2]|0;
$8 = ($7|0)>(0);
$9 = $8 ? $7 : 0;
HEAP32[$2>>2] = $9;
$10 = HEAP32[$3>>2]|0;
$11 = HEAP32[(1407476)>>2]|0;
$12 = ($10|0)<($11|0);
$13 = $12 ? $10 : $11;
HEAP32[$3>>2] = $13;
$14 = ((($2)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)>(0);
$17 = $16 ? $15 : 0;
HEAP32[$14>>2] = $17;
$18 = ((($3)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = HEAP32[(1407480)>>2]|0;
$21 = ($19|0)<($20|0);
$22 = $21 ? $19 : $20;
HEAP32[$18>>2] = $22;
$23 = ((($2)) + 8|0);
$24 = HEAP32[$23>>2]|0;
$25 = ($24|0)>(0);
$26 = $25 ? $24 : 0;
HEAP32[$23>>2] = $26;
$27 = ((($3)) + 8|0);
$28 = HEAP32[$27>>2]|0;
$29 = HEAP32[(1407484)>>2]|0;
$30 = ($28|0)<($29|0);
$31 = $30 ? $28 : $29;
HEAP32[$27>>2] = $31;
$32 = HEAP32[$18>>2]|0;
$33 = ($17|0)>($32|0);
if ($33) {
$$028 = 0;
STACKTOP = sp;return ($$028|0);
}
$34 = ((($5)) + 4|0);
$35 = ((($5)) + 8|0);
$36 = ((($4)) + 12|0);
$$02635 = $17;
L4: while(1) {
$37 = (+($$02635|0));
HEAPF32[$34>>2] = $37;
$38 = HEAP32[$23>>2]|0;
$39 = HEAP32[$27>>2]|0;
$40 = ($38|0)>($39|0);
if (!($40)) {
$$031 = $38;
while(1) {
$41 = (+($$031|0));
HEAPF32[$35>>2] = $41;
$42 = HEAP32[$2>>2]|0;
$43 = HEAP32[$3>>2]|0;
$44 = ($42|0)>($43|0);
if (!($44)) {
$$02730 = $42;
while(1) {
$45 = (+($$02730|0));
HEAPF32[$5>>2] = $45;
$46 = (_World_GetBlock_148($$02730,$$02635,$$031)|0);
$47 = $46&65535;
$48 = (588036 + (($47*12)|0)|0);
_Vec3_Add_149($4,$5,$48);
$49 = (597252 + (($47*12)|0)|0);
_Vec3_Add_149($36,$5,$49);
$50 = (_AABB_Intersects($4,$0)|0);
$51 = ($50<<24>>24)==(0);
if (!($51)) {
$52 = (FUNCTION_TABLE_ii[$1 & 31]($46)|0);
$53 = ($52<<24>>24)==(0);
if (!($53)) {
$$028 = 1;
label = 12;
break L4;
}
}
$54 = (($$02730) + 1)|0;
$55 = HEAP32[$3>>2]|0;
$56 = ($$02730|0)<($55|0);
if ($56) {
$$02730 = $54;
} else {
break;
}
}
}
$57 = (($$031) + 1)|0;
$58 = HEAP32[$27>>2]|0;
$59 = ($$031|0)<($58|0);
if ($59) {
$$031 = $57;
} else {
break;
}
}
}
$60 = (($$02635) + 1)|0;
$61 = HEAP32[$18>>2]|0;
$62 = ($$02635|0)<($61|0);
if ($62) {
$$02635 = $60;
} else {
$$028 = 0;
label = 12;
break;
}
}
if ((label|0) == 12) {
STACKTOP = sp;return ($$028|0);
}
return (0)|0;
}
function _World_GetBlock_148($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _Vec3_Add_149($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _Entity_TouchesAnyRope($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
_Entity_GetBounds($0,$1);
$2 = ((($1)) + 16|0);
$3 = +HEAPF32[$2>>2];
$4 = $3 + 0.03125;
HEAPF32[$2>>2] = $4;
$5 = (_Entity_TouchesAny($1,6)|0);
STACKTOP = sp;return ($5|0);
}
function _IsRopeCollide($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (578820 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(7);
$5 = $4&1;
return ($5|0);
}
function _Entity_TouchesAnyLava($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
_Entity_GetBounds($0,$1);
_AABB_Offset($1,$1,11380);
$2 = (_Entity_TouchesAny($1,7)|0);
STACKTOP = sp;return ($2|0);
}
function _IsLavaCollide($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (578820 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(6);
$5 = $4&1;
return ($5|0);
}
function _Entity_TouchesAnyWater($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
_Entity_GetBounds($0,$1);
_AABB_Offset($1,$1,11380);
$2 = (_Entity_TouchesAny($1,8)|0);
STACKTOP = sp;return ($2|0);
}
function _IsWaterCollide($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (578820 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(5);
$5 = $4&1;
return ($5|0);
}
function _Entities_Tick($0) {
$0 = $0|0;
var $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
$$06 = 0;
while(1) {
$2 = (1241124 + ($$06<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if (!($4)) {
$5 = HEAP32[$3>>2]|0;
$6 = HEAP32[$5>>2]|0;
$7 = +HEAPF64[$1>>3];
FUNCTION_TABLE_vid[$6 & 63]($3,$7);
}
$8 = (($$06) + 1)|0;
$exitcond = ($8|0)==(256);
if ($exitcond) {
break;
} else {
$$06 = $8;
}
}
return;
}
function _Entities_RenderModels($0,$1) {
$0 = +$0;
$1 = +$1;
var $$07 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gfx_SetAlphaTest(1);
$$07 = 0;
while(1) {
$2 = (1241124 + ($$07<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if (!($4)) {
$5 = HEAP32[$3>>2]|0;
$6 = ((($5)) + 16|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vidd[$7 & 7]($3,$0,$1);
}
$8 = (($$07) + 1)|0;
$exitcond = ($8|0)==(256);
if ($exitcond) {
break;
} else {
$$07 = $8;
}
}
_Gfx_SetAlphaTest(0);
return;
}
function _Entities_RenderNames() {
var $$016 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $exitcond = 0, $or$cond = 0, $or$cond15 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1242148)>>0]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
$2 = (_Entities_GetClosest(1242152)|0);
HEAP8[1408219] = $2;
$3 = HEAP8[(1242634)>>0]|0;
$4 = ($3<<24>>24)!=(0);
$5 = HEAP8[(1242148)>>0]|0;
$6 = ($5<<24>>24)==(2);
$or$cond15 = $4 & $6;
if (!($or$cond15)) {
return;
}
_Gfx_SetAlphaTest(1);
$7 = (_Gfx_GetFog()|0);
$8 = ($7<<24>>24)!=(0);
if ($8) {
_Gfx_SetFog(0);
}
$$016 = 0;
while(1) {
$9 = (1241124 + ($$016<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if (!($11)) {
$12 = HEAP8[1408219]|0;
$13 = $12&255;
$14 = ($$016|0)!=($13|0);
$15 = ($$016|0)==(255);
$or$cond = $15 | $14;
if ($or$cond) {
$16 = HEAP32[$10>>2]|0;
$17 = ((($16)) + 20|0);
$18 = HEAP32[$17>>2]|0;
FUNCTION_TABLE_vi[$18 & 511]($10);
}
}
$19 = (($$016) + 1)|0;
$exitcond = ($19|0)==(256);
if ($exitcond) {
break;
} else {
$$016 = $19;
}
}
_Gfx_SetAlphaTest(0);
if (!($8)) {
return;
}
_Gfx_SetFog(1);
return;
}
function _Entities_GetClosest($0) {
$0 = $0|0;
var $$01623 = 0.0, $$01722 = 0, $$01821 = 0, $$2 = 0.0, $$220 = 0, $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0.0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$$byval_copy1 = sp + 44|0;
$$byval_copy = sp + 32|0;
$1 = sp + 20|0;
$2 = sp + 8|0;
$3 = sp + 4|0;
$4 = sp;
_Entity_GetEyePosition($1,$0);
$5 = ((($0)) + 20|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 * 0.01745329238474369;
$8 = ((($0)) + 16|0);
$9 = +HEAPF32[$8>>2];
$10 = $9 * 0.01745329238474369;
_Vec3_GetDirVector($2,$7,$10);
$$01623 = inf;$$01722 = 0;$$01821 = -1;
while(1) {
$11 = (1241124 + ($$01722<<2)|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==(0|0);
if ($13) {
$$2 = $$01623;$$220 = $$01821;
} else {
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;
$14 = (_Intersection_RayIntersectsRotatedBox($$byval_copy,$$byval_copy1,$12,$3,$4)|0);
$15 = ($14<<24>>24)==(0);
if ($15) {
$$2 = $$01623;$$220 = $$01821;
} else {
$16 = +HEAPF32[$3>>2];
$17 = $16 < $$01623;
if ($17) {
$18 = $$01722&255;
$$2 = $16;$$220 = $18;
} else {
$$2 = $$01623;$$220 = $$01821;
}
}
}
$19 = (($$01722) + 1)|0;
$exitcond = ($19|0)==(255);
if ($exitcond) {
break;
} else {
$$01623 = $$2;$$01722 = $19;$$01821 = $$220;
}
}
STACKTOP = sp;return ($$220|0);
}
function _Entities_RenderHoveredNames() {
var $$015 = 0, $$old1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $exitcond = 0, $or$cond = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1242148)>>0]|0;
switch ($0<<24>>24) {
case 2: case 1: {
$5 = 0;
break;
}
case 0: {
return;
break;
}
default: {
$1 = HEAP8[(1242634)>>0]|0;
$2 = ($1<<24>>24)!=(0);
$phitmp = $2&1;
$5 = $phitmp;
}
}
_Gfx_SetAlphaTest(1);
_Gfx_SetDepthTest(0);
$3 = (_Gfx_GetFog()|0);
$4 = ($3<<24>>24)!=(0);
if ($4) {
_Gfx_SetFog(0);
}
$6 = ($5|0)!=(0);
$$015 = 0;
L8: while(1) {
$7 = (1241124 + ($$015<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0|0);
do {
if (!($9)) {
$10 = HEAP8[1408219]|0;
$11 = $10&255;
$12 = ($$015|0)==($11|0);
if ($12) {
$$old1 = ($$015|0)==(255);
if ($$old1) {
break L8;
}
} else {
$13 = ($$015|0)!=(255);
$or$cond = $6 & $13;
if (!($or$cond)) {
break;
}
}
$14 = HEAP32[$8>>2]|0;
$15 = ((($14)) + 20|0);
$16 = HEAP32[$15>>2]|0;
FUNCTION_TABLE_vi[$16 & 511]($8);
}
} while(0);
$17 = (($$015) + 1)|0;
$exitcond = ($17|0)==(256);
if ($exitcond) {
break;
} else {
$$015 = $17;
}
}
_Gfx_SetAlphaTest(0);
_Gfx_SetDepthTest(1);
if (!($4)) {
return;
}
_Gfx_SetFog(1);
return;
}
function _Entities_DrawShadows() {
var $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1242149)>>0]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
HEAP8[1408220] = 0;
_Gfx_SetDepthWrite(0);
_Gfx_SetAlphaBlending(1);
_Gfx_SetVertexFormat(1);
$2 = HEAP32[(1242144)>>2]|0;
_ShadowComponent_Draw($2);
$3 = HEAP8[(1242149)>>0]|0;
$4 = ($3<<24>>24)==(3);
if ($4) {
$$05 = 0;
while(1) {
$5 = (1241124 + ($$05<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0|0);
if (!($7)) {
_ShadowComponent_Draw($6);
}
$8 = (($$05) + 1)|0;
$exitcond = ($8|0)==(255);
if ($exitcond) {
break;
} else {
$$05 = $8;
}
}
}
_Gfx_SetDepthWrite(1);
_Gfx_SetAlphaBlending(0);
return;
}
function _TabList_Remove($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
_TabList_Delete($0);
$1 = $0&255;
$2 = (1242992 + ($1<<1)|0);
HEAP16[$2>>1] = 0;
$3 = (1243504 + ($1)|0);
HEAP8[$3>>0] = 0;
_Event_RaiseInt((1250036),$1);
return;
}
function _TabList_Delete($0) {
$0 = $0|0;
var $$013 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&255;
$2 = (1242992 + ($1<<1)|0);
$3 = HEAP16[$2>>1]|0;
$4 = $3&65535;
$5 = ($3<<16>>16)==(0);
if ($5) {
return;
}
$6 = (($4) + -1)|0;
_StringsBuffer_Remove((1243760),$6);
$7 = (($4) + -2)|0;
_StringsBuffer_Remove((1243760),$7);
$8 = (($4) + -3)|0;
_StringsBuffer_Remove((1243760),$8);
$$013 = 0;
while(1) {
$9 = (1242992 + ($$013<<1)|0);
$10 = HEAP16[$9>>1]|0;
$11 = ($10&65535)>($3&65535);
if ($11) {
$12 = $10&65535;
$13 = (($12) + 65533)|0;
$14 = $13&65535;
HEAP16[$9>>1] = $14;
}
$15 = (($$013) + 1)|0;
$exitcond = ($15|0)==(256);
if ($exitcond) {
break;
} else {
$$013 = $15;
}
}
return;
}
function _TabList_Set($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$5 = sp + 16|0;
$6 = sp + 8|0;
$7 = sp;
$8 = $0&255;
$9 = (1242992 + ($8<<1)|0);
$10 = HEAP16[$9>>1]|0;
$11 = ($10<<16>>16)==(0);
if ($11) {
$$0 = 1249516;
} else {
$12 = $10&65535;
$13 = (($12) + -3)|0;
_StringsBuffer_UNSAFE_Get($5,(1243760),$13);
$14 = HEAP16[$9>>1]|0;
$15 = $14&65535;
$16 = (($15) + -2)|0;
_StringsBuffer_UNSAFE_Get($6,(1243760),$16);
$17 = HEAP16[$9>>1]|0;
$18 = $17&65535;
$19 = (($18) + -1)|0;
_StringsBuffer_UNSAFE_Get($7,(1243760),$19);
$20 = (1243504 + ($8)|0);
$21 = HEAP8[$20>>0]|0;
$22 = (_String_Equals($1,$5)|0);
$23 = ($22|0)==(0);
if ($23) {
$$0 = (1249776);
} else {
$24 = (_String_Equals($2,$6)|0);
$25 = ($24|0)==(0);
if ($25) {
$$0 = (1249776);
} else {
$26 = (_String_Equals($3,$7)|0);
$27 = ($26|0)!=(0);
$28 = ($21<<24>>24)==($4<<24>>24);
$or$cond = $28 & $27;
if ($or$cond) {
STACKTOP = sp;return;
} else {
$$0 = (1249776);
}
}
}
}
_TabList_Delete($0);
_StringsBuffer_Add((1243760),$1);
_StringsBuffer_Add((1243760),$2);
_StringsBuffer_Add((1243760),$3);
$29 = HEAP32[(1243768)>>2]|0;
$30 = $29&65535;
HEAP16[$9>>1] = $30;
$31 = (1243504 + ($8)|0);
HEAP8[$31>>0] = $4;
_Event_RaiseInt($$0,$8);
STACKTOP = sp;return;
}
function _LocalPlayer_JumpHeight() {
var $0 = 0.0, $1 = 0.0, $2 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = +HEAPF32[(1242968)>>2];
$1 = (+_PhysicsComp_CalcMaxHeight($0));
$2 = $1;
return (+$2);
}
function _LocalPlayer_SetInterpPosition($0) {
$0 = +$0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242649)>>0]|0;
$2 = ($1<<24>>24)==(0);
$3 = HEAP8[(1242650)>>0]|0;
$4 = ($3<<24>>24)==(0);
$or$cond = $2 | $4;
if ($or$cond) {
_Vec3_Lerp((1242156),(1242816),(1242844),$0);
}
_InterpComp_LerpAngles((1242816),1242152,$0);
return;
}
function _LocalPlayer_HandlesKey($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(379733)>>0]|0;
$2 = $1&255;
$3 = ($2|0)==($0|0);
if ($3) {
$4 = (_LocalPlayer_HandleRespawn()|0);
$$0 = $4;
return ($$0|0);
}
$5 = HEAP8[(379734)>>0]|0;
$6 = $5&255;
$7 = ($6|0)==($0|0);
if ($7) {
$8 = (_LocalPlayer_HandleSetSpawn()|0);
$$0 = $8;
return ($$0|0);
}
$9 = HEAP8[(379742)>>0]|0;
$10 = $9&255;
$11 = ($10|0)==($0|0);
if ($11) {
$12 = (_LocalPlayer_HandleFly()|0);
$$0 = $12;
return ($$0|0);
}
$13 = HEAP8[(379741)>>0]|0;
$14 = $13&255;
$15 = ($14|0)==($0|0);
if ($15) {
$16 = (_LocalPlayer_HandleNoClip()|0);
$$0 = $16;
return ($$0|0);
}
$17 = HEAP8[(379732)>>0]|0;
$18 = $17&255;
$19 = ($18|0)==($0|0);
$20 = HEAP8[(1242263)>>0]|0;
$21 = HEAP8[(1242651)>>0]|0;
$22 = $21 | $20;
$23 = HEAP8[(1242650)>>0]|0;
$24 = $22 | $23;
$25 = ($24<<24>>24)==(0);
$26 = $19 & $25;
if (!($26)) {
$$0 = 0;
return ($$0|0);
}
$27 = HEAP8[(1242635)>>0]|0;
$28 = ($27<<24>>24)==(0);
if ($28) {
$32 = 0;
} else {
$29 = HEAP8[(1242649)>>0]|0;
$30 = ($29<<24>>24)==(0);
$phitmp = $30 ? 0 : 2;
$32 = $phitmp;
}
$31 = HEAP32[(1242644)>>2]|0;
$33 = ($32|0)<($31|0);
$34 = (($31) + -1)|0;
$35 = $33 ? $34 : $32;
$36 = HEAP32[(1242960)>>2]|0;
$37 = ($36|0)<($35|0);
if (!($37)) {
$$0 = 1;
return ($$0|0);
}
_PhysicsComp_DoNormalJump((1242956));
$38 = HEAP32[(1242960)>>2]|0;
$39 = (($38) + 1)|0;
HEAP32[(1242960)>>2] = $39;
$$0 = 1;
return ($$0|0);
}
function _LocalPlayer_HandleRespawn() {
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1242631)>>0]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
$2 = HEAP8[(1242988)>>0]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
HEAP8[(1242988)>>0] = 1;
$4 = HEAP8[1408218]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
$$0 = 0;
} else {
_Chat_AddRaw(22663);
$$0 = 0;
}
} else {
$$0 = 0;
}
} else {
_LocalPlayer_DoRespawn();
$$0 = 1;
}
return ($$0|0);
}
function _LocalPlayer_HandleSetSpawn() {
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0;
var label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1242631)>>0]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
$2 = HEAP8[(1242632)>>0]|0;
$3 = HEAP8[(1242263)>>0]|0;
$4 = $3 | $2;
$5 = ($4<<24>>24)==(0);
if ($5) {
_Chat_AddRaw(22613);
$$0 = 0;
return ($$0|0);
}
$6 = ($2<<24>>24)==(0);
if ($6) {
;HEAP32[(1242580)>>2]=HEAP32[(1242156)>>2]|0;HEAP32[(1242580)+4>>2]=HEAP32[(1242156)+4>>2]|0;HEAP32[(1242580)+8>>2]=HEAP32[(1242156)+8>>2]|0;
} else {
$7 = +HEAPF32[(1242156)>>2];
$8 = (_Math_Floor($7)|0);
$9 = (+($8|0));
$10 = $9 + 0.5;
HEAPF32[(1242580)>>2] = $10;
$11 = HEAP32[(1242160)>>2]|0;
HEAP32[(1242584)>>2] = $11;
$12 = +HEAPF32[(1242164)>>2];
$13 = (_Math_Floor($12)|0);
$14 = (+($13|0));
$15 = $14 + 0.5;
HEAPF32[(1242588)>>2] = $15;
}
$16 = HEAP32[(1242172)>>2]|0;
HEAP32[(1242604)>>2] = $16;
$17 = HEAP32[(1242168)>>2]|0;
HEAP32[(1242608)>>2] = $17;
}
$18 = (_LocalPlayer_HandleRespawn()|0);
$$0 = $18;
return ($$0|0);
}
function _LocalPlayer_HandleFly() {
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1242630)>>0]|0;
$1 = ($0<<24>>24)==(0);
$2 = HEAP8[(1242626)>>0]|0;
$3 = ($2<<24>>24)==(0);
$or$cond = $1 | $3;
if (!($or$cond)) {
$4 = HEAP8[(1242651)>>0]|0;
$5 = ($4<<24>>24)==(0);
$6 = $5&1;
HEAP8[(1242651)>>0] = $6;
$$0 = 1;
return ($$0|0);
}
$7 = HEAP8[(1242989)>>0]|0;
$8 = ($7<<24>>24)==(0);
if (!($8)) {
$$0 = 0;
return ($$0|0);
}
HEAP8[(1242989)>>0] = 1;
$9 = HEAP8[1408218]|0;
$10 = ($9<<24>>24)==(0);
if ($10) {
$$0 = 0;
return ($$0|0);
}
_Chat_AddRaw(22582);
$$0 = 0;
return ($$0|0);
}
function _LocalPlayer_HandleNoClip() {
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1242632)>>0]|0;
$1 = ($0<<24>>24)==(0);
$2 = HEAP8[(1242626)>>0]|0;
$3 = ($2<<24>>24)==(0);
$or$cond = $1 | $3;
if ($or$cond) {
$9 = HEAP8[(1242990)>>0]|0;
$10 = ($9<<24>>24)==(0);
if (!($10)) {
$$0 = 0;
return ($$0|0);
}
HEAP8[(1242990)>>0] = 1;
$11 = HEAP8[1408218]|0;
$12 = ($11<<24>>24)==(0);
if ($12) {
$$0 = 0;
return ($$0|0);
}
_Chat_AddRaw(22551);
$$0 = 0;
return ($$0|0);
} else {
$4 = HEAP8[(1242649)>>0]|0;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$$0 = 1;
return ($$0|0);
}
$6 = HEAP8[(1242650)>>0]|0;
$7 = ($6<<24>>24)==(0);
if (!($7)) {
HEAPF32[(1242192)>>2] = 0.0;
}
$8 = $7&1;
HEAP8[(1242650)>>0] = $8;
$$0 = 1;
return ($$0|0);
}
return (0)|0;
}
function _LocalPlayer_DoRespawn() {
var $$029 = 0, $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$$byval_copy = sp + 80|0;
$0 = sp + 48|0;
$1 = sp + 24|0;
$2 = sp + 12|0;
$3 = sp;
;HEAP32[$2>>2]=HEAP32[(1242580)>>2]|0;HEAP32[$2+4>>2]=HEAP32[(1242580)+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[(1242580)+8>>2]|0;
$4 = HEAP32[351863]|0;
$5 = ($4|0)==(0|0);
if ($5) {
STACKTOP = sp;return;
}
_IVec3_Floor($3,$2);
$6 = HEAP8[(1242632)>>0]|0;
$7 = ($6<<24>>24)==(0);
L4: do {
if (!($7)) {
_AABB_Make($1,$2,(1242244));
$8 = ((($3)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = HEAP32[(1407468)>>2]|0;
$11 = ($9|0)>($10|0);
if (!($11)) {
$12 = ((($1)) + 4|0);
$13 = ((($1)) + 16|0);
$$029 = $9;
while(1) {
$14 = (+_Respawn_HighestSolidY($1));
$15 = $14 == -1.0E+5;
if ($15) {
break;
}
$31 = +HEAPF32[$12>>2];
$32 = $31 + 1.0;
HEAPF32[$12>>2] = $32;
$33 = +HEAPF32[$13>>2];
$34 = $33 + 1.0;
HEAPF32[$13>>2] = $34;
$35 = (($$029) + 1)|0;
$36 = HEAP32[(1407468)>>2]|0;
$37 = ($$029|0)<($36|0);
if ($37) {
$$029 = $35;
} else {
break L4;
}
}
$16 = HEAP32[$3>>2]|0;
$17 = ((($3)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = (_World_SafeGetBlock($16,$$029,$18)|0);
$20 = $19&65535;
$21 = (578052 + ($20)|0);
$22 = HEAP8[$21>>0]|0;
$23 = ($22<<24>>24)==(2);
if ($23) {
$24 = (((597252 + (($20*12)|0)|0)) + 4|0);
$25 = +HEAPF32[$24>>2];
$28 = $25;
} else {
$28 = 0.0;
}
$26 = (+($$029|0));
$27 = $28 + $26;
$29 = $27 + 0.0010000000474974513;
$30 = ((($2)) + 4|0);
HEAPF32[$30>>2] = $29;
}
}
} while(0);
$38 = ((($2)) + 4|0);
$39 = +HEAPF32[$38>>2];
$40 = $39 + 0.125;
HEAPF32[$38>>2] = $40;
$41 = +HEAPF32[(1242604)>>2];
$42 = +HEAPF32[(1242608)>>2];
;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;
_LocationUpdate_MakePosAndOri($0,$$byval_copy,$41,$42,0);
$43 = HEAP32[310538]|0;
$44 = ((($43)) + 8|0);
$45 = HEAP32[$44>>2]|0;
FUNCTION_TABLE_viii[$45 & 31](1242152,$0,0);
HEAPF32[(1242188)>>2] = 0.0;
HEAPF32[(1242192)>>2] = 0.0;
HEAPF32[(1242196)>>2] = 0.0;
_Entity_GetBounds(1242152,$1);
$46 = ((($1)) + 4|0);
$47 = +HEAPF32[$46>>2];
$48 = $47 + -0.0099999997764825821;
HEAPF32[$46>>2] = $48;
$49 = ((($1)) + 16|0);
HEAPF32[$49>>2] = $48;
$50 = (_Entity_TouchesAny($1,9)|0);
HEAP8[(1242263)>>0] = $50;
STACKTOP = sp;return;
}
function _LocalPlayer_IsSolidCollide($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (578052 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(2);
$5 = $4&1;
return ($5|0);
}
function _NetPlayer_Init($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Mem_Set($0,0,872);
_Entity_Init($0);
HEAP32[$0>>2] = 11292;
return;
}
function _AnimatedComp_Update($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = +$3;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0;
var $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0.0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0, $phitmp = 0, $phitmp41 = 0, $phitmp42 = 0, $storemerge = 0.0;
var label = 0, sp = 0;
sp = STACKTOP;
$4 = +HEAPF32[$2>>2];
$5 = +HEAPF32[$1>>2];
$6 = $4 - $5;
$7 = ((($2)) + 8|0);
$8 = +HEAPF32[$7>>2];
$9 = ((($1)) + 8|0);
$10 = +HEAPF32[$9>>2];
$11 = $8 - $10;
$12 = $6 * $6;
$13 = $11 * $11;
$14 = $12 + $13;
$15 = (+_Math_SqrtF($14));
$16 = ((($0)) + 220|0);
$17 = HEAP32[$16>>2]|0;
$18 = ((($0)) + 216|0);
HEAP32[$18>>2] = $17;
$19 = ((($0)) + 228|0);
$20 = HEAP32[$19>>2]|0;
$21 = ((($0)) + 224|0);
HEAP32[$21>>2] = $20;
$22 = $15 > 0.05000000074505806;
if ($22) {
$23 = $15 * 2.0;
$24 = $3 * 20.0;
$25 = $24;
$26 = $23 * $25;
$27 = +HEAPF32[$16>>2];
$28 = $26 + $27;
HEAPF32[$16>>2] = $28;
$29 = $3;
$30 = $29 * 3.0;
$31 = +HEAPF32[$19>>2];
$32 = $30 + $31;
$storemerge = $32;
} else {
$33 = $3;
$34 = $33 * 3.0;
$35 = +HEAPF32[$19>>2];
$36 = $35 - $34;
$storemerge = $36;
}
$37 = $storemerge < 0.0;
$38 = $37 ? 0.0 : $storemerge;
$39 = $38 > 1.0;
$40 = $39 ? 1.0 : $38;
HEAPF32[$19>>2] = $40;
$41 = ((($0)) + 236|0);
$42 = HEAP32[$41>>2]|0;
$43 = ((($0)) + 232|0);
HEAP32[$43>>2] = $42;
$44 = ((($0)) + 111|0);
$45 = HEAP8[1408237]|0;
$46 = ($45<<24>>24)==(0);
if ($46) {
$49 = 1;
} else {
$47 = HEAP8[$44>>0]|0;
$48 = ($47<<24>>24)==(0);
$phitmp = $48&1;
$49 = $phitmp;
}
_AnimatedComp_DoTilt($41,$49);
$50 = HEAP8[1408237]|0;
$51 = ($50<<24>>24)==(0);
if ($51) {
$54 = 1;
} else {
$52 = HEAP8[$44>>0]|0;
$53 = ($52<<24>>24)==(0);
$phitmp41 = $53&1;
$54 = $phitmp41;
}
_AnimatedComp_DoTilt($41,$54);
$55 = HEAP8[1408237]|0;
$56 = ($55<<24>>24)==(0);
if ($56) {
$59 = 1;
_AnimatedComp_DoTilt($41,$59);
return;
}
$57 = HEAP8[$44>>0]|0;
$58 = ($57<<24>>24)==(0);
$phitmp42 = $58&1;
$59 = $phitmp42;
_AnimatedComp_DoTilt($41,$59);
return;
}
function _AnimatedComp_DoTilt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, $storemerge = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)==(0);
$3 = +HEAPF32[$0>>2];
$4 = $3 + 0.10000000149011612;
$5 = $3 * 0.8399999737739563;
$storemerge = $2 ? $4 : $5;
$6 = $storemerge < 0.0;
$7 = $6 ? 0.0 : $storemerge;
$8 = $7 > 1.0;
$9 = $8 ? 1.0 : $7;
HEAPF32[$0>>2] = $9;
return;
}
function _AnimatedComp_GetCurrent($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0;
var $29 = 0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0.0, $38 = 0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0;
var $65 = 0.0, $66 = 0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0.0, $80 = 0, $9 = 0.0, $or$cond = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 192|0);
$3 = +HEAPF64[(535480)>>3];
$4 = $3;
$5 = $4 * 1.2566370964050293;
$6 = (+_Math_SinF($5));
$7 = $6 * 0.052359879016876221;
$8 = $4 * 1.7951958179473877;
$9 = (+_Math_CosF($8));
$10 = $9 * 0.052359879016876221;
$11 = $10 + 0.052359879016876221;
$12 = ((($0)) + 224|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($0)) + 228|0);
$15 = +HEAPF32[$14>>2];
$16 = (+_Math_Lerp($13,$15,$1));
$17 = ((($0)) + 208|0);
HEAPF32[$17>>2] = $16;
$18 = ((($0)) + 216|0);
$19 = +HEAPF32[$18>>2];
$20 = ((($0)) + 220|0);
$21 = +HEAPF32[$20>>2];
$22 = (+_Math_Lerp($19,$21,$1));
$23 = ((($0)) + 204|0);
HEAPF32[$23>>2] = $22;
$24 = ((($0)) + 232|0);
$25 = +HEAPF32[$24>>2];
$26 = ((($0)) + 236|0);
$27 = +HEAPF32[$26>>2];
$28 = (+_Math_Lerp($25,$27,$1));
$29 = ((($0)) + 212|0);
HEAPF32[$29>>2] = $28;
$30 = +HEAPF32[$23>>2];
$31 = (+_Math_CosF($30));
$32 = +HEAPF32[$17>>2];
$33 = $31 * $32;
$34 = $33 * 1.0471975803375244;
$35 = $34 - $7;
$36 = ((($0)) + 256|0);
HEAPF32[$36>>2] = $35;
$37 = - $11;
$38 = ((($0)) + 260|0);
HEAPF32[$38>>2] = $37;
$39 = +HEAPF32[$23>>2];
$40 = (+_Math_CosF($39));
$41 = +HEAPF32[$17>>2];
$42 = $40 * $41;
$43 = $42 * 1.3962633609771729;
$44 = - $43;
$45 = ((($0)) + 240|0);
HEAPF32[$45>>2] = $44;
$46 = ((($0)) + 244|0);
HEAPF32[$46>>2] = 0.0;
$47 = ((($0)) + 248|0);
HEAPF32[$47>>2] = $43;
$48 = ((($0)) + 252|0);
HEAPF32[$48>>2] = -0.0;
$49 = +HEAPF32[$36>>2];
$50 = - $49;
$51 = ((($0)) + 264|0);
HEAPF32[$51>>2] = $50;
$52 = +HEAPF32[$38>>2];
$53 = - $52;
$54 = ((($0)) + 268|0);
HEAPF32[$54>>2] = $53;
$55 = +HEAPF32[$23>>2];
$56 = (+_Math_CosF($55));
$57 = +HEAPF32[$17>>2];
$58 = $56 * $57;
$59 = $58 * 0.15625;
HEAPF32[$2>>2] = $59;
$60 = +HEAPF32[$23>>2];
$61 = (+_Math_SinF($60));
$62 = (+_Math_AbsF($61));
$63 = +HEAPF32[$17>>2];
$64 = $62 * $63;
$65 = $64 * 0.15625;
$66 = ((($0)) + 196|0);
HEAPF32[$66>>2] = $65;
$67 = +HEAPF32[$23>>2];
$68 = (+_Math_CosF($67));
$69 = (+_Math_AbsF($68));
$70 = +HEAPF32[$17>>2];
$71 = $69 * $70;
$72 = $71 * 0.25;
$73 = ((($0)) + 200|0);
HEAPF32[$73>>2] = $72;
$74 = ((($0)) + 48|0);
$75 = HEAP32[$74>>2]|0;
$76 = ((($75)) + 45|0);
$77 = HEAP8[$76>>0]|0;
$78 = ($77<<24>>24)==(0);
$79 = HEAP8[1408232]|0;
$80 = ($79<<24>>24)!=(0);
$or$cond = $78 | $80;
if ($or$cond) {
return;
}
_AnimatedComp_CalcHumanAnim($2,$7,$11);
return;
}
function _AnimatedComp_CalcHumanAnim($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
_AnimatedComp_PerpendicularAnim($0,0.23000000417232513,$1,$2,1);
_AnimatedComp_PerpendicularAnim($0,0.2800000011920929,$1,$2,0);
$3 = ((($0)) + 72|0);
$4 = +HEAPF32[$3>>2];
$5 = - $4;
HEAPF32[$3>>2] = $5;
$6 = ((($0)) + 76|0);
$7 = +HEAPF32[$6>>2];
$8 = - $7;
HEAPF32[$6>>2] = $8;
return;
}
function _AnimatedComp_PerpendicularAnim($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
$4 = $4|0;
var $$sink = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $5 = 0;
var $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ((($0)) + 12|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 * $1;
$8 = (+_Math_SinF($7));
$9 = $8 * 0.5;
$10 = $9 + 0.5;
$11 = +HEAPF32[$5>>2];
$12 = (+_Math_CosF($11));
$13 = - $3;
$14 = ((($0)) + 16|0);
$15 = +HEAPF32[$14>>2];
$16 = $10 * $15;
$17 = $16 * 1.9198621511459351;
$18 = $13 - $17;
$19 = $12 * $15;
$20 = $19 * 1.0471975803375244;
$21 = $20 * 1.5;
$22 = $21 + $2;
$23 = ($4<<24>>24)==(0);
if ($23) {
$26 = ((($0)) + 72|0);
HEAPF32[$26>>2] = $22;
$27 = ((($0)) + 76|0);
$$sink = $27;
HEAPF32[$$sink>>2] = $18;
return;
} else {
$24 = ((($0)) + 64|0);
HEAPF32[$24>>2] = $22;
$25 = ((($0)) + 68|0);
$$sink = $25;
HEAPF32[$$sink>>2] = $18;
return;
}
}
function _TiltComp_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$0>>2] = 0.0;
$1 = ((($0)) + 4|0);
HEAPF32[$1>>2] = 0.0;
$2 = ((($0)) + 8|0);
HEAPF32[$2>>2] = 1.0;
$3 = ((($0)) + 12|0);
HEAPF32[$3>>2] = 1.0;
$4 = ((($0)) + 16|0);
HEAPF32[$4>>2] = 1.0;
return;
}
function _TiltComp_Update($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 16|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 12|0);
HEAP32[$4>>2] = $3;
$5 = HEAP8[(1242656)>>0]|0;
_AnimatedComp_DoTilt($2,$5);
$6 = HEAP8[(1242656)>>0]|0;
_AnimatedComp_DoTilt($2,$6);
$7 = HEAP8[(1242656)>>0]|0;
_AnimatedComp_DoTilt($2,$7);
return;
}
function _TiltComp_GetCurrent($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = +HEAPF32[$2>>2];
$4 = ((($0)) + 16|0);
$5 = +HEAPF32[$4>>2];
$6 = (+_Math_Lerp($3,$5,$1));
$7 = ((($0)) + 8|0);
HEAPF32[$7>>2] = $6;
$8 = +HEAPF32[(1242356)>>2];
$9 = (+_Math_CosF($8));
$10 = +HEAPF32[(1242360)>>2];
$11 = $9 * $10;
$12 = $11 * 0.0026179938577115536;
HEAPF32[$0>>2] = $12;
$13 = +HEAPF32[(1242356)>>2];
$14 = (+_Math_SinF($13));
$15 = +HEAPF32[(1242360)>>2];
$16 = $14 * $15;
$17 = $16 * 0.0026179938577115536;
$18 = ((($0)) + 4|0);
HEAPF32[$18>>2] = $17;
return;
}
function _HacksComp_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Mem_Set($0,0,180);
_HacksComp_SetAll($0,1);
$1 = ((($0)) + 4|0);
HEAPF32[$1>>2] = 10.0;
$2 = ((($0)) + 10|0);
HEAP8[$2>>0] = 1;
HEAP8[$0>>0] = 1;
$3 = ((($0)) + 18|0);
HEAP8[$3>>0] = 1;
$4 = ((($0)) + 19|0);
HEAP8[$4>>0] = 1;
$5 = ((($0)) + 24|0);
HEAPF32[$5>>2] = 1.0;
$6 = ((($0)) + 28|0);
HEAP32[$6>>2] = 1;
$7 = ((($0)) + 32|0);
HEAP8[$7>>0] = 1;
$8 = ((($0)) + 20|0);
HEAP8[$8>>0] = 1;
$9 = ((($0)) + 52|0);
$10 = ((($0)) + 44|0);
HEAP32[$10>>2] = $9;
$11 = ((($0)) + 48|0);
HEAP16[$11>>1] = 0;
$12 = ((($0)) + 50|0);
HEAP16[$12>>1] = 128;
return;
}
function _HacksComp_SetAll($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 11|0);
_memset(($2|0),($1|0),7)|0;
return;
}
function _HacksComp_CanJumpHigher($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 10|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
$7 = 0;
return ($7|0);
}
$4 = ((($0)) + 13|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)!=(0);
$phitmp = $6&1;
$7 = $phitmp;
return ($7|0);
}
function _HacksComp_SetUserType($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($1&255)>(99);
$4 = ($1<<24>>24)>(-1);
$5 = $3 & $4;
$6 = $5&1;
HEAP8[$0>>0] = $6;
$7 = ($2<<24>>24)==(0);
if ($7) {
return;
}
HEAP8[(634891)>>0] = $6;
_memset(((634123)|0),($6|0),5)|0;
return;
}
function _HacksComp_RecheckFlags($0) {
$0 = $0|0;
var $$lobit = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 44|0);
$2 = (_String_IndexOfString($1,11392)|0);
$$lobit = (31)?($2 >>> 31):($2);
$3 = $$lobit&255;
_HacksComp_SetAll($0,$3);
$4 = ((($0)) + 20|0);
HEAP8[$4>>0] = 1;
$5 = ((($0)) + 14|0);
_HacksComp_ParseFlag($0,22698,22703,$5);
$6 = ((($0)) + 16|0);
_HacksComp_ParseFlag($0,22708,22716,$6);
$7 = ((($0)) + 13|0);
_HacksComp_ParseFlag($0,22724,22731,$7);
$8 = ((($0)) + 15|0);
_HacksComp_ParseFlag($0,22738,22747,$8);
_HacksComp_ParseFlag($0,22756,22762,$4);
$9 = HEAP8[$0>>0]|0;
$10 = ($9<<24>>24)==(0);
if (!($10)) {
_HacksComp_ParseAllFlag($0);
}
$11 = (+_HacksComp_ParseFlagFloat($0));
$12 = ((($0)) + 24|0);
HEAPF32[$12>>2] = $11;
$13 = (_HacksComp_ParseFlagInt($0)|0);
$14 = ((($0)) + 28|0);
HEAP32[$14>>2] = $13;
_HacksComp_Update($0);
return;
}
function _HacksComp_ParseFlag($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$sink = 0, $10 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp + 8|0;
$5 = sp;
_String_FromReadonly($4,$1);
_String_FromReadonly($5,$2);
$6 = ((($0)) + 44|0);
$7 = (_String_IndexOfString($6,$4)|0);
$8 = ($7|0)>(-1);
if ($8) {
$$sink = 1;
} else {
$9 = (_String_IndexOfString($6,$5)|0);
$10 = ($9|0)>(-1);
if ($10) {
$$sink = 0;
} else {
STACKTOP = sp;return;
}
}
HEAP8[$3>>0] = $$sink;
STACKTOP = sp;return;
}
function _HacksComp_ParseAllFlag($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
_String_FromReadonly($1,22785);
_String_FromReadonly($2,22792);
$3 = ((($0)) + 44|0);
$4 = (_String_IndexOfString($3,$1)|0);
$5 = ($4|0)>(-1);
if ($5) {
_HacksComp_SetAll($0,1);
STACKTOP = sp;return;
}
$6 = (_String_IndexOfString($3,$2)|0);
$7 = ($6|0)>(-1);
if (!($7)) {
STACKTOP = sp;return;
}
_HacksComp_SetAll($0,0);
STACKTOP = sp;return;
}
function _HacksComp_ParseFlagFloat($0) {
$0 = $0|0;
var $$0 = 0.0, $1 = 0, $10 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $spec$select = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
_HacksComp_UNSAFE_FlagValue($1,22775,$0);
$3 = ((($1)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)!=(0);
$6 = HEAP8[1408229]|0;
$7 = ($6<<24>>24)==(0);
$or$cond = $5 & $7;
if (!($or$cond)) {
$$0 = 1.0;
STACKTOP = sp;return (+$$0);
}
$8 = (_Convert_ParseFloat($1,$2)|0);
$9 = ($8<<24>>24)==(0);
$10 = +HEAPF32[$2>>2];
$spec$select = $9 ? 1.0 : $10;
$$0 = $spec$select;
STACKTOP = sp;return (+$$0);
}
function _HacksComp_ParseFlagInt($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
_HacksComp_UNSAFE_FlagValue($1,22768,$0);
$3 = ((($1)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)!=(0);
$6 = HEAP8[1408229]|0;
$7 = ($6<<24>>24)==(0);
$or$cond = $5 & $7;
if (!($or$cond)) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$8 = (_Convert_ParseInt($1,$2)|0);
$9 = ($8<<24>>24)==(0);
$10 = HEAP32[$2>>2]|0;
$spec$select = $9 ? 1 : $10;
$$0 = $spec$select;
STACKTOP = sp;return ($$0|0);
}
function _HacksComp_Update($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $phitmp18 = 0, $spec$select = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 14|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
label = 3;
} else {
$4 = ((($0)) + 10|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if ($6) {
label = 3;
}
}
if ((label|0) == 3) {
$7 = ((($0)) + 35|0);
HEAP8[$7>>0] = 0;
$8 = ((($0)) + 37|0);
HEAP8[$8>>0] = 0;
$9 = ((($0)) + 36|0);
HEAP8[$9>>0] = 0;
}
$10 = ((($0)) + 16|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if ($12) {
label = 6;
} else {
$13 = ((($0)) + 10|0);
$14 = HEAP8[$13>>0]|0;
$15 = ($14<<24>>24)==(0);
if ($15) {
label = 6;
}
}
if ((label|0) == 6) {
$16 = ((($0)) + 34|0);
HEAP8[$16>>0] = 0;
}
$17 = ((($0)) + 13|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18<<24>>24)==(0);
if ($19) {
label = 9;
} else {
$20 = ((($0)) + 10|0);
$21 = HEAP8[$20>>0]|0;
$22 = ($21<<24>>24)==(0);
if ($22) {
label = 9;
}
}
if ((label|0) == 9) {
$23 = ((($0)) + 38|0);
HEAP8[$23>>0] = 0;
$24 = ((($0)) + 39|0);
HEAP8[$24>>0] = 0;
}
$25 = ((($0)) + 10|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26<<24>>24)!=(0);
$28 = ($18<<24>>24)!=(0);
$narrow = $28 & $27;
$spec$select = $narrow&1;
$29 = ((($0)) + 19|0);
HEAP8[$29>>0] = $spec$select;
$30 = ((($0)) + 11|0);
$31 = HEAP8[$30>>0]|0;
$32 = ($31<<24>>24)==(0);
if ($32) {
$36 = 0;
$35 = ((($0)) + 18|0);
HEAP8[$35>>0] = $36;
_Event_RaiseVoid((1252636));
return;
}
$33 = HEAP8[$0>>0]|0;
$34 = ($33<<24>>24)!=(0);
$phitmp18 = $34&1;
$36 = $phitmp18;
$35 = ((($0)) + 18|0);
HEAP8[$35>>0] = $36;
_Event_RaiseVoid((1252636));
return;
}
function _HacksComp_UNSAFE_FlagValue($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = ((($2)) + 44|0);
_String_FromReadonly($3,$1);
$5 = (_String_IndexOfString($4,$3)|0);
$6 = ($5|0)<(0);
if ($6) {
$7 = 1384616;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = $0;
$14 = $13;
HEAP32[$14>>2] = $9;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = $12;
STACKTOP = sp;return;
}
$17 = ((($3)) + 4|0);
$18 = HEAP16[$17>>1]|0;
$19 = $18&65535;
$20 = (($5) + ($19))|0;
$21 = (_String_IndexOfAt($4,$20,32)|0);
$22 = ($21|0)<(0);
if ($22) {
$23 = ((($2)) + 48|0);
$24 = HEAP16[$23>>1]|0;
$25 = $24&65535;
$$0 = $25;
} else {
$$0 = $21;
}
$26 = (($$0) - ($20))|0;
_String_UNSAFE_Substring($0,$4,$20,$26);
STACKTOP = sp;return;
}
function _InterpComp_LerpAngles($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0;
var $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 12|0);
$4 = +HEAPF32[$3>>2];
$5 = ((($0)) + 40|0);
$6 = +HEAPF32[$5>>2];
$7 = (+_Math_LerpAngle($4,$6,$2));
$8 = ((($1)) + 16|0);
HEAPF32[$8>>2] = $7;
$9 = ((($0)) + 16|0);
$10 = +HEAPF32[$9>>2];
$11 = ((($0)) + 44|0);
$12 = +HEAPF32[$11>>2];
$13 = (+_Math_LerpAngle($10,$12,$2));
$14 = ((($1)) + 20|0);
HEAPF32[$14>>2] = $13;
$15 = ((($0)) + 20|0);
$16 = +HEAPF32[$15>>2];
$17 = ((($0)) + 48|0);
$18 = +HEAPF32[$17>>2];
$19 = (+_Math_LerpAngle($16,$18,$2));
$20 = ((($1)) + 24|0);
HEAPF32[$20>>2] = $19;
$21 = ((($0)) + 56|0);
$22 = +HEAPF32[$21>>2];
$23 = ((($0)) + 60|0);
$24 = +HEAPF32[$23>>2];
$25 = (+_Math_LerpAngle($22,$24,$2));
$26 = ((($1)) + 28|0);
HEAPF32[$26>>2] = $25;
$27 = ((($0)) + 24|0);
$28 = +HEAPF32[$27>>2];
$29 = ((($0)) + 52|0);
$30 = +HEAPF32[$29>>2];
$31 = (+_Math_LerpAngle($28,$30,$2));
$32 = ((($1)) + 32|0);
HEAPF32[$32>>2] = $31;
return;
}
function _NetInterpComp_SetLocation($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$byval_copy1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0, $45 = 0, $46 = 0.0;
var $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0.0, $64 = 0.0;
var $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$$byval_copy1 = sp + 56|0;
$3 = sp + 28|0;
$4 = sp;
$5 = ((($0)) + 128|0);
;HEAP32[$3>>2]=HEAP32[$5>>2]|0;HEAP32[$3+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$3+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$3+16>>2]=HEAP32[$5+16>>2]|0;HEAP32[$3+20>>2]=HEAP32[$5+20>>2]|0;HEAP32[$3+24>>2]=HEAP32[$5+24>>2]|0;
$6 = ((($1)) + 28|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $8 & 1;
$10 = ($9|0)==(0);
if (!($10)) {
_InterpComp_SetPos($5,$1);
}
$11 = $8 & 8;
$12 = ($11|0)==(0);
if (!($12)) {
$13 = ((($1)) + 20|0);
$14 = HEAP32[$13>>2]|0;
$15 = ((($0)) + 148|0);
HEAP32[$15>>2] = $14;
}
$16 = $8 & 16;
$17 = ($16|0)==(0);
if (!($17)) {
$18 = ((($1)) + 24|0);
$19 = HEAP32[$18>>2]|0;
$20 = ((($0)) + 152|0);
HEAP32[$20>>2] = $19;
}
$21 = $8 & 2;
$22 = ($21|0)==(0);
if (!($22)) {
$23 = ((($1)) + 12|0);
$24 = HEAP32[$23>>2]|0;
$25 = ((($0)) + 140|0);
HEAP32[$25>>2] = $24;
}
$26 = $8 & 4;
$27 = ($26|0)==(0);
if (!($27)) {
$28 = ((($1)) + 16|0);
$29 = HEAP32[$28>>2]|0;
$30 = ((($0)) + 144|0);
HEAP32[$30>>2] = $29;
}
$31 = ($2<<24>>24)==(0);
if ($31) {
;HEAP32[$0>>2]=HEAP32[$5>>2]|0;HEAP32[$0+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$5+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$5+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$5+24>>2]|0;
$32 = ((($0)) + 144|0);
$33 = HEAP32[$32>>2]|0;
$34 = ((($0)) + 56|0);
HEAP32[$34>>2] = $33;
$35 = ((($0)) + 28|0);
;HEAP32[$35>>2]=HEAP32[$5>>2]|0;HEAP32[$35+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$35+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$35+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$35+16>>2]=HEAP32[$5+16>>2]|0;HEAP32[$35+20>>2]=HEAP32[$5+20>>2]|0;HEAP32[$35+24>>2]=HEAP32[$5+24>>2]|0;
$36 = ((($0)) + 60|0);
HEAP32[$36>>2] = $33;
$37 = ((($0)) + 64|0);
HEAP32[$37>>2] = 0;
$38 = ((($0)) + 156|0);
HEAP32[$38>>2] = 0;
STACKTOP = sp;return;
} else {
_Vec3_Lerp($4,$3,$5,0.5);
$39 = ((($3)) + 20|0);
$40 = +HEAPF32[$39>>2];
$41 = ((($0)) + 148|0);
$42 = +HEAPF32[$41>>2];
$43 = (+_Math_LerpAngle($40,$42,0.5));
$44 = ((($4)) + 20|0);
HEAPF32[$44>>2] = $43;
$45 = ((($3)) + 24|0);
$46 = +HEAPF32[$45>>2];
$47 = ((($0)) + 152|0);
$48 = +HEAPF32[$47>>2];
$49 = (+_Math_LerpAngle($46,$48,0.5));
$50 = ((($4)) + 24|0);
HEAPF32[$50>>2] = $49;
$51 = ((($3)) + 12|0);
$52 = +HEAPF32[$51>>2];
$53 = ((($0)) + 140|0);
$54 = +HEAPF32[$53>>2];
$55 = (+_Math_LerpAngle($52,$54,0.5));
$56 = ((($4)) + 12|0);
HEAPF32[$56>>2] = $55;
$57 = ((($3)) + 16|0);
$58 = +HEAPF32[$57>>2];
$59 = ((($0)) + 144|0);
$60 = +HEAPF32[$59>>2];
$61 = (+_Math_LerpAngle($58,$60,0.5));
$62 = ((($4)) + 16|0);
HEAPF32[$62>>2] = $61;
;HEAP32[$$byval_copy1>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$4+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$4+16>>2]|0;HEAP32[$$byval_copy1+20>>2]=HEAP32[$4+20>>2]|0;HEAP32[$$byval_copy1+24>>2]=HEAP32[$4+24>>2]|0;
_NetInterpComp_AddState($0,$$byval_copy1);
;HEAP32[$$byval_copy1>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$5+16>>2]|0;HEAP32[$$byval_copy1+20>>2]=HEAP32[$5+20>>2]|0;HEAP32[$$byval_copy1+24>>2]=HEAP32[$5+24>>2]|0;
_NetInterpComp_AddState($0,$$byval_copy1);
$63 = +HEAPF32[$57>>2];
$64 = +HEAPF32[$59>>2];
$65 = (+_Math_LerpAngle($63,$64,0.3333333432674408));
_InterpComp_AddRotY($0,$65);
$66 = +HEAPF32[$57>>2];
$67 = +HEAPF32[$59>>2];
$68 = (+_Math_LerpAngle($66,$67,0.66666668653488159));
_InterpComp_AddRotY($0,$68);
$69 = +HEAPF32[$57>>2];
$70 = +HEAPF32[$59>>2];
$71 = (+_Math_LerpAngle($69,$70,1.0));
_InterpComp_AddRotY($0,$71);
STACKTOP = sp;return;
}
}
function _InterpComp_SetPos($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 29|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
;HEAP32[$0>>2]=HEAP32[$1>>2]|0;HEAP32[$0+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$1+8>>2]|0;
return;
} else {
_Vec3_Add_191($0,$0,$1);
return;
}
}
function _NetInterpComp_AddState($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 156|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(10);
if ($4) {
_NetInterpComp_RemoveOldestState($0);
}
$5 = HEAP32[$2>>2]|0;
$6 = (((($0)) + 160|0) + (($5*28)|0)|0);
;HEAP32[$6>>2]=HEAP32[$1>>2]|0;HEAP32[$6+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$6+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$6+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$6+16>>2]=HEAP32[$1+16>>2]|0;HEAP32[$6+20>>2]=HEAP32[$1+20>>2]|0;HEAP32[$6+24>>2]=HEAP32[$1+24>>2]|0;
$7 = HEAP32[$2>>2]|0;
$8 = (($7) + 1)|0;
HEAP32[$2>>2] = $8;
return;
}
function _InterpComp_AddRotY($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 64|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(15);
if ($4) {
_InterpComp_RemoveOldestRotY($0);
}
$5 = HEAP32[$2>>2]|0;
$6 = (((($0)) + 68|0) + ($5<<2)|0);
HEAPF32[$6>>2] = $1;
$7 = (($5) + 1)|0;
HEAP32[$2>>2] = $7;
return;
}
function _InterpComp_RemoveOldestRotY($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 72|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 68|0);
HEAP32[$3>>2] = $2;
$4 = ((($0)) + 76|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 72|0);
HEAP32[$6>>2] = $5;
$7 = ((($0)) + 80|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($0)) + 76|0);
HEAP32[$9>>2] = $8;
$10 = ((($0)) + 84|0);
$11 = HEAP32[$10>>2]|0;
$12 = ((($0)) + 80|0);
HEAP32[$12>>2] = $11;
$13 = ((($0)) + 88|0);
$14 = HEAP32[$13>>2]|0;
$15 = ((($0)) + 84|0);
HEAP32[$15>>2] = $14;
$16 = ((($0)) + 92|0);
$17 = HEAP32[$16>>2]|0;
$18 = ((($0)) + 88|0);
HEAP32[$18>>2] = $17;
$19 = ((($0)) + 96|0);
$20 = HEAP32[$19>>2]|0;
$21 = ((($0)) + 92|0);
HEAP32[$21>>2] = $20;
$22 = ((($0)) + 100|0);
$23 = HEAP32[$22>>2]|0;
$24 = ((($0)) + 96|0);
HEAP32[$24>>2] = $23;
$25 = ((($0)) + 104|0);
$26 = HEAP32[$25>>2]|0;
$27 = ((($0)) + 100|0);
HEAP32[$27>>2] = $26;
$28 = ((($0)) + 108|0);
$29 = HEAP32[$28>>2]|0;
$30 = ((($0)) + 104|0);
HEAP32[$30>>2] = $29;
$31 = ((($0)) + 112|0);
$32 = HEAP32[$31>>2]|0;
$33 = ((($0)) + 108|0);
HEAP32[$33>>2] = $32;
$34 = ((($0)) + 116|0);
$35 = HEAP32[$34>>2]|0;
$36 = ((($0)) + 112|0);
HEAP32[$36>>2] = $35;
$37 = ((($0)) + 120|0);
$38 = HEAP32[$37>>2]|0;
$39 = ((($0)) + 116|0);
HEAP32[$39>>2] = $38;
$40 = ((($0)) + 124|0);
$41 = HEAP32[$40>>2]|0;
$42 = ((($0)) + 120|0);
HEAP32[$42>>2] = $41;
$43 = ((($0)) + 128|0);
$44 = HEAP32[$43>>2]|0;
$45 = ((($0)) + 124|0);
HEAP32[$45>>2] = $44;
$46 = ((($0)) + 64|0);
$47 = HEAP32[$46>>2]|0;
$48 = (($47) + -1)|0;
HEAP32[$46>>2] = $48;
return;
}
function _NetInterpComp_RemoveOldestState($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 160|0);
$2 = ((($0)) + 188|0);
;HEAP32[$1>>2]=HEAP32[$2>>2]|0;HEAP32[$1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[$2+20>>2]|0;HEAP32[$1+24>>2]=HEAP32[$2+24>>2]|0;
$3 = ((($0)) + 188|0);
$4 = ((($0)) + 216|0);
;HEAP32[$3>>2]=HEAP32[$4>>2]|0;HEAP32[$3+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$3+12>>2]=HEAP32[$4+12>>2]|0;HEAP32[$3+16>>2]=HEAP32[$4+16>>2]|0;HEAP32[$3+20>>2]=HEAP32[$4+20>>2]|0;HEAP32[$3+24>>2]=HEAP32[$4+24>>2]|0;
$5 = ((($0)) + 216|0);
$6 = ((($0)) + 244|0);
;HEAP32[$5>>2]=HEAP32[$6>>2]|0;HEAP32[$5+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$5+12>>2]=HEAP32[$6+12>>2]|0;HEAP32[$5+16>>2]=HEAP32[$6+16>>2]|0;HEAP32[$5+20>>2]=HEAP32[$6+20>>2]|0;HEAP32[$5+24>>2]=HEAP32[$6+24>>2]|0;
$7 = ((($0)) + 244|0);
$8 = ((($0)) + 272|0);
;HEAP32[$7>>2]=HEAP32[$8>>2]|0;HEAP32[$7+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$8+8>>2]|0;HEAP32[$7+12>>2]=HEAP32[$8+12>>2]|0;HEAP32[$7+16>>2]=HEAP32[$8+16>>2]|0;HEAP32[$7+20>>2]=HEAP32[$8+20>>2]|0;HEAP32[$7+24>>2]=HEAP32[$8+24>>2]|0;
$9 = ((($0)) + 272|0);
$10 = ((($0)) + 300|0);
;HEAP32[$9>>2]=HEAP32[$10>>2]|0;HEAP32[$9+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$9+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$9+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$9+16>>2]=HEAP32[$10+16>>2]|0;HEAP32[$9+20>>2]=HEAP32[$10+20>>2]|0;HEAP32[$9+24>>2]=HEAP32[$10+24>>2]|0;
$11 = ((($0)) + 300|0);
$12 = ((($0)) + 328|0);
;HEAP32[$11>>2]=HEAP32[$12>>2]|0;HEAP32[$11+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$11+8>>2]=HEAP32[$12+8>>2]|0;HEAP32[$11+12>>2]=HEAP32[$12+12>>2]|0;HEAP32[$11+16>>2]=HEAP32[$12+16>>2]|0;HEAP32[$11+20>>2]=HEAP32[$12+20>>2]|0;HEAP32[$11+24>>2]=HEAP32[$12+24>>2]|0;
$13 = ((($0)) + 328|0);
$14 = ((($0)) + 356|0);
;HEAP32[$13>>2]=HEAP32[$14>>2]|0;HEAP32[$13+4>>2]=HEAP32[$14+4>>2]|0;HEAP32[$13+8>>2]=HEAP32[$14+8>>2]|0;HEAP32[$13+12>>2]=HEAP32[$14+12>>2]|0;HEAP32[$13+16>>2]=HEAP32[$14+16>>2]|0;HEAP32[$13+20>>2]=HEAP32[$14+20>>2]|0;HEAP32[$13+24>>2]=HEAP32[$14+24>>2]|0;
$15 = ((($0)) + 356|0);
$16 = ((($0)) + 384|0);
;HEAP32[$15>>2]=HEAP32[$16>>2]|0;HEAP32[$15+4>>2]=HEAP32[$16+4>>2]|0;HEAP32[$15+8>>2]=HEAP32[$16+8>>2]|0;HEAP32[$15+12>>2]=HEAP32[$16+12>>2]|0;HEAP32[$15+16>>2]=HEAP32[$16+16>>2]|0;HEAP32[$15+20>>2]=HEAP32[$16+20>>2]|0;HEAP32[$15+24>>2]=HEAP32[$16+24>>2]|0;
$17 = ((($0)) + 384|0);
$18 = ((($0)) + 412|0);
;HEAP32[$17>>2]=HEAP32[$18>>2]|0;HEAP32[$17+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$17+8>>2]=HEAP32[$18+8>>2]|0;HEAP32[$17+12>>2]=HEAP32[$18+12>>2]|0;HEAP32[$17+16>>2]=HEAP32[$18+16>>2]|0;HEAP32[$17+20>>2]=HEAP32[$18+20>>2]|0;HEAP32[$17+24>>2]=HEAP32[$18+24>>2]|0;
$19 = ((($0)) + 412|0);
$20 = ((($0)) + 440|0);
;HEAP32[$19>>2]=HEAP32[$20>>2]|0;HEAP32[$19+4>>2]=HEAP32[$20+4>>2]|0;HEAP32[$19+8>>2]=HEAP32[$20+8>>2]|0;HEAP32[$19+12>>2]=HEAP32[$20+12>>2]|0;HEAP32[$19+16>>2]=HEAP32[$20+16>>2]|0;HEAP32[$19+20>>2]=HEAP32[$20+20>>2]|0;HEAP32[$19+24>>2]=HEAP32[$20+24>>2]|0;
$21 = ((($0)) + 156|0);
$22 = HEAP32[$21>>2]|0;
$23 = (($22) + -1)|0;
HEAP32[$21>>2] = $23;
return;
}
function _Vec3_Add_191($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _NetInterpComp_AdvanceState($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 28|0);
;HEAP32[$0>>2]=HEAP32[$1>>2]|0;HEAP32[$0+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$1+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$1+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$1+24>>2]|0;
$2 = ((($0)) + 156|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(0);
if (!($4)) {
_InterpComp_AdvanceRotY($0);
return;
}
$5 = ((($0)) + 160|0);
;HEAP32[$1>>2]=HEAP32[$5>>2]|0;HEAP32[$1+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[$5+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[$5+20>>2]|0;HEAP32[$1+24>>2]=HEAP32[$5+24>>2]|0;
_NetInterpComp_RemoveOldestState($0);
_InterpComp_AdvanceRotY($0);
return;
}
function _InterpComp_AdvanceRotY($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 60|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 56|0);
HEAP32[$3>>2] = $2;
$4 = ((($0)) + 64|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(0);
if ($6) {
return;
}
$7 = ((($0)) + 68|0);
$8 = HEAP32[$7>>2]|0;
HEAP32[$1>>2] = $8;
_InterpComp_RemoveOldestRotY($0);
return;
}
function _LocalInterpComp_SetLocation($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0.0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0.0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 28|0);
$4 = ((($1)) + 28|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
$7 = $6 & 1;
$8 = ($7|0)==(0);
if (!($8)) {
_InterpComp_SetPos($3,$1);
$9 = ((($0)) + 32|0);
$10 = +HEAPF32[$9>>2];
$11 = (_Math_Floor($10)|0);
$12 = (+($11|0));
$13 = $10 - $12;
$14 = $13 < 0.0010000000474974513;
if ($14) {
$15 = +HEAPF32[$9>>2];
$16 = $15 + 0.0010000000474974513;
HEAPF32[$9>>2] = $16;
}
$17 = ($2<<24>>24)==(0);
if ($17) {
;HEAP32[$0>>2]=HEAP32[$3>>2]|0;HEAP32[$0+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$3+8>>2]|0;
;HEAP32[(1242156)>>2]=HEAP32[$3>>2]|0;HEAP32[(1242156)+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[(1242156)+8>>2]=HEAP32[$3+8>>2]|0;
}
}
$18 = $6 & 2;
$19 = ($18|0)==(0);
if (!($19)) {
$20 = ((($0)) + 12|0);
$21 = ((($0)) + 40|0);
$22 = ((($1)) + 12|0);
$23 = +HEAPF32[$22>>2];
_LocalInterpComp_Angle($20,$21,$23,$2);
}
$24 = $6 & 4;
$25 = ($24|0)!=(0);
if ($25) {
$26 = ((($0)) + 16|0);
$27 = ((($0)) + 44|0);
$28 = ((($1)) + 16|0);
$29 = +HEAPF32[$28>>2];
_LocalInterpComp_Angle($26,$27,$29,$2);
}
$30 = $6 & 8;
$31 = ($30|0)==(0);
if (!($31)) {
$32 = ((($0)) + 20|0);
$33 = ((($0)) + 48|0);
$34 = ((($1)) + 20|0);
$35 = +HEAPF32[$34>>2];
_LocalInterpComp_Angle($32,$33,$35,$2);
}
$36 = $6 & 16;
$37 = ($36|0)==(0);
if (!($37)) {
$38 = ((($0)) + 24|0);
$39 = ((($0)) + 52|0);
$40 = ((($1)) + 24|0);
$41 = +HEAPF32[$40>>2];
_LocalInterpComp_Angle($38,$39,$41,$2);
}
if (!($25)) {
_InterpComp_LerpAngles($0,1242152,0.0);
return;
}
$42 = ($2<<24>>24)==(0);
if ($42) {
$43 = ((($1)) + 16|0);
$44 = HEAP32[$43>>2]|0;
$45 = ((($0)) + 60|0);
HEAP32[$45>>2] = $44;
HEAP32[(1242180)>>2] = $44;
$46 = ((($0)) + 64|0);
HEAP32[$46>>2] = 0;
_InterpComp_LerpAngles($0,1242152,0.0);
return;
} else {
$47 = ((($0)) + 16|0);
$48 = +HEAPF32[$47>>2];
$49 = ((($0)) + 44|0);
$50 = +HEAPF32[$49>>2];
$51 = (+_Math_LerpAngle($48,$50,0.3333333432674408));
_InterpComp_AddRotY($0,$51);
$52 = +HEAPF32[$47>>2];
$53 = +HEAPF32[$49>>2];
$54 = (+_Math_LerpAngle($52,$53,0.66666668653488159));
_InterpComp_AddRotY($0,$54);
$55 = +HEAPF32[$47>>2];
$56 = +HEAPF32[$49>>2];
$57 = (+_Math_LerpAngle($55,$56,1.0));
_InterpComp_AddRotY($0,$57);
$58 = ((($0)) + 68|0);
$59 = HEAP32[$58>>2]|0;
$60 = ((($0)) + 60|0);
HEAP32[$60>>2] = $59;
_InterpComp_LerpAngles($0,1242152,0.0);
return;
}
}
function _LocalInterpComp_Angle($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
$3 = $3|0;
var $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$1>>2] = $2;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
return;
}
HEAPF32[$0>>2] = $2;
return;
}
function _LocalInterpComp_AdvanceState($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 28|0);
;HEAP32[$0>>2]=HEAP32[$1>>2]|0;HEAP32[$0+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$1+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$1+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$1+24>>2]|0;
;HEAP32[(1242156)>>2]=HEAP32[$1>>2]|0;HEAP32[(1242156)+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[(1242156)+8>>2]=HEAP32[$1+8>>2]|0;
_InterpComp_AdvanceRotY($0);
return;
}
function _ShadowComponent_Draw($0) {
$0 = $0|0;
var $$0 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$6$0$$sroa_idx51 = 0, $$sroa$6$0$copyload = 0.0, $$sroa$9$0$$sroa_idx55 = 0, $$sroa$9$0$copyload = 0.0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0, $49 = 0.0, $5 = 0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0;
var $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $8 = 0, $9 = 0, $brmerge$demorgan = 0, $phitmp = 0.0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 3120|0;
$1 = sp + 32|0;
$2 = sp + 3104|0;
$3 = sp;
$$sroa$0$0$$sroa_idx = ((($0)) + 4|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$6$0$$sroa_idx51 = ((($0)) + 8|0);
$$sroa$6$0$copyload = +HEAPF32[$$sroa$6$0$$sroa_idx51>>2];
$$sroa$9$0$$sroa_idx55 = ((($0)) + 12|0);
$$sroa$9$0$copyload = +HEAPF32[$$sroa$9$0$$sroa_idx55>>2];
$4 = $$sroa$6$0$copyload < 0.0;
if ($4) {
STACKTOP = sp;return;
}
$5 = (~~(($$sroa$6$0$copyload)));
$6 = HEAP32[(1407480)>>2]|0;
$7 = ($6|0)>($5|0);
$8 = $7 ? $5 : $6;
$9 = ((($0)) + 84|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 < 1.0;
$phitmp = $10 * 7.0;
$12 = $11 ? $phitmp : 7.0;
$13 = ((($0)) + 48|0);
$14 = HEAP32[$13>>2]|0;
$15 = ((($14)) + 88|0);
$16 = +HEAPF32[$15>>2];
$17 = $12 * $16;
$18 = $17 * 0.0625;
HEAPF32[312227] = $18;
$19 = $17 * 2.0;
$20 = 16.0 / $19;
HEAPF32[312228] = $20;
HEAP32[$2>>2] = $1;
$21 = HEAP8[(1242149)>>0]|0;
$22 = ($21<<24>>24)==(1);
if ($22) {
$23 = HEAP32[315124]|0;
$24 = (_Math_Floor($$sroa$0$0$copyload)|0);
$25 = (_Math_Floor($$sroa$9$0$copyload)|0);
_ShadowComponent_GetBlocks($0,$24,$8,$25,$3);
$26 = +HEAPF32[$3>>2];
$27 = (+($24|0));
$28 = (+($25|0));
_ShadowComponent_DrawSquareShadow($2,$26,$27,$28);
$$0 = $23;
} else {
$29 = HEAP32[(1280020)>>2]|0;
$30 = $$sroa$0$0$copyload - $18;
$31 = (_Math_Floor($30)|0);
$32 = +HEAPF32[312227];
$33 = $$sroa$9$0$copyload - $32;
$34 = (_Math_Floor($33)|0);
$35 = +HEAPF32[312227];
$36 = $$sroa$0$0$copyload + $35;
$37 = (_Math_Floor($36)|0);
$38 = +HEAPF32[312227];
$39 = $$sroa$9$0$copyload + $38;
$40 = (_Math_Floor($39)|0);
_ShadowComponent_GetBlocks($0,$31,$8,$34,$3);
$41 = ((($3)) + 6|0);
$42 = HEAP8[$41>>0]|0;
$43 = ($42<<24>>24)==(0);
if (!($43)) {
$44 = (+($34|0));
$45 = (+($31|0));
_ShadowComponent_DrawCircle($2,$0,$3,$45,$44);
}
$46 = ($31|0)!=($37|0);
if ($46) {
_ShadowComponent_GetBlocks($0,$37,$8,$34,$3);
$47 = HEAP8[$41>>0]|0;
$48 = ($47<<24>>24)==(0);
if (!($48)) {
$49 = (+($34|0));
$50 = (+($37|0));
_ShadowComponent_DrawCircle($2,$0,$3,$50,$49);
}
}
$51 = ($34|0)!=($40|0);
if ($51) {
_ShadowComponent_GetBlocks($0,$31,$8,$40,$3);
$52 = HEAP8[$41>>0]|0;
$53 = ($52<<24>>24)==(0);
if (!($53)) {
$54 = (+($40|0));
$55 = (+($31|0));
_ShadowComponent_DrawCircle($2,$0,$3,$55,$54);
}
$brmerge$demorgan = $46 & $51;
if ($brmerge$demorgan) {
_ShadowComponent_GetBlocks($0,$37,$8,$40,$3);
$56 = HEAP8[$41>>0]|0;
$57 = ($56<<24>>24)==(0);
if ($57) {
$$0 = $29;
} else {
$58 = (+($40|0));
$59 = (+($37|0));
_ShadowComponent_DrawCircle($2,$0,$3,$59,$58);
$$0 = $29;
}
} else {
$$0 = $29;
}
} else {
$$0 = $29;
}
}
$60 = HEAP32[$2>>2]|0;
$61 = ($60|0)==($1|0);
if ($61) {
STACKTOP = sp;return;
}
$62 = HEAP32[312226]|0;
$63 = ($62|0)==(0);
if ($63) {
_ShadowComponent_MakeTex();
}
$64 = HEAP8[1408220]|0;
$65 = ($64<<24>>24)==(0);
if ($65) {
$66 = HEAP32[312226]|0;
_Gfx_BindTexture($66);
HEAP8[1408220] = 1;
}
$67 = HEAP32[$2>>2]|0;
$68 = $1;
$69 = (($67) - ($68))|0;
$70 = (($69|0) / 24)&-1;
_Gfx_UpdateDynamicVb_IndexedTris($$0,$1,$70);
STACKTOP = sp;return;
}
function _ShadowComponent_GetBlocks($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$056 = 0, $$0575 = 0, $$058$lcssa10 = 0, $$0584 = 0, $$159 = 0, $$16 = 0, $$2 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0.0, $41 = 0.0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0.0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $7 = 0, $8 = 0, $9 = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;HEAP32[$4+16>>2]=0|0;HEAP32[$4+20>>2]=0|0;HEAP32[$4+24>>2]=0|0;HEAP32[$4+28>>2]=0|0;
$5 = ((($0)) + 8|0);
$6 = +HEAPF32[$5>>2];
$7 = (_World_ContainsXZ_200($1,$3)|0);
$8 = ($7<<24>>24)==(0);
$9 = ($2|0)>(-1);
if ($9) {
$10 = $6 + 0.0099999997764825821;
$$0575 = $2;$$0584 = $4;$$16 = 0;
while(1) {
do {
if ($8) {
$12 = HEAP32[(1407516)>>2]|0;
$13 = (($12) + -1)|0;
$14 = ($$0575|0)==($13|0);
if ($14) {
$15 = HEAP16[703756]|0;
$16 = $15&65535;
$17 = (583428 + ($16)|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18<<24>>24)==(4);
$20 = $19 ? 0 : 7;
$$056 = $20;
break;
}
$21 = HEAP32[(1407520)>>2]|0;
$22 = (($12) + -1)|0;
$23 = (($22) + ($21))|0;
$24 = ($$0575|0)==($23|0);
if ($24) {
$25 = HEAP16[(1407514)>>1]|0;
$26 = $25&65535;
$27 = (583428 + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28<<24>>24)==(4);
$30 = $29 ? 0 : 7;
$$056 = $30;
} else {
$$056 = 0;
}
} else {
$11 = (_World_GetBlock_201($1,$$0575,$3)|0);
$$056 = $11;
}
} while(0);
$31 = $$056&65535;
$32 = (583428 + ($31)|0);
$33 = HEAP8[$32>>0]|0;
$34 = $33 & -2;
$switch = ($34<<24>>24)==(4);
if ($switch) {
$$159 = $$0584;$$2 = $$16;
} else {
$35 = (569604 + ($31)|0);
$36 = HEAP8[$35>>0]|0;
$37 = ($36<<24>>24)==(0);
if ($37) {
$38 = (+($$0575|0));
$39 = (((597252 + (($31*12)|0)|0)) + 4|0);
$40 = +HEAPF32[$39>>2];
$41 = $40 + $38;
$42 = !($41 >= $10);
if ($42) {
$43 = ((($$0584)) + 4|0);
HEAP16[$43>>1] = $$056;
HEAPF32[$$0584>>2] = $41;
_ShadowComponent_CalcAlpha($6,$$0584);
$44 = (($$16) + 1)|0;
$45 = ((($$0584)) + 8|0);
$46 = (588036 + (($31*12)|0)|0);
$47 = +HEAPF32[$46>>2];
$48 = $47 == 0.0;
if ($48) {
$49 = (597252 + (($31*12)|0)|0);
$50 = +HEAPF32[$49>>2];
$51 = $50 == 1.0;
if ($51) {
$52 = (((588036 + (($31*12)|0)|0)) + 8|0);
$53 = +HEAPF32[$52>>2];
$54 = $53 == 0.0;
if ($54) {
$55 = (((597252 + (($31*12)|0)|0)) + 8|0);
$56 = +HEAPF32[$55>>2];
$57 = $56 == 1.0;
if ($57) {
label = 19;
break;
} else {
$$159 = $45;$$2 = $44;
}
} else {
$$159 = $45;$$2 = $44;
}
} else {
$$159 = $45;$$2 = $44;
}
} else {
$$159 = $45;$$2 = $44;
}
} else {
$$159 = $$0584;$$2 = $$16;
}
} else {
$$159 = $$0584;$$2 = $$16;
}
}
$58 = (($$0575) + -1)|0;
$59 = ($$0575|0)>(0);
$60 = ($$2|0)<(4);
$61 = $59 & $60;
if ($61) {
$$0575 = $58;$$0584 = $$159;$$16 = $$2;
} else {
break;
}
}
if ((label|0) == 19) {
return;
}
if ($60) {
$$058$lcssa10 = $$159;
} else {
return;
}
} else {
$$058$lcssa10 = $4;
}
$62 = HEAP16[703756]|0;
$63 = ((($$058$lcssa10)) + 4|0);
HEAP16[$63>>1] = $62;
HEAPF32[$$058$lcssa10>>2] = 0.0;
_ShadowComponent_CalcAlpha($6,$$058$lcssa10);
return;
}
function _ShadowComponent_DrawSquareShadow($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[$0>>2]|0;
HEAPF32[$4>>2] = $2;
$5 = ((($4)) + 4|0);
HEAPF32[$5>>2] = $1;
$6 = ((($4)) + 8|0);
HEAPF32[$6>>2] = $3;
$7 = ((($4)) + 12|0);
HEAP32[$7>>2] = -587202561;
$8 = ((($4)) + 16|0);
HEAPF32[$8>>2] = 0.4921875;
$9 = ((($4)) + 20|0);
HEAPF32[$9>>2] = 0.4921875;
$10 = $2 + 1.0;
$11 = ((($4)) + 24|0);
HEAPF32[$11>>2] = $10;
$12 = ((($4)) + 28|0);
HEAPF32[$12>>2] = $1;
$13 = ((($4)) + 32|0);
HEAPF32[$13>>2] = $3;
$14 = ((($4)) + 36|0);
HEAP32[$14>>2] = -587202561;
$15 = ((($4)) + 40|0);
HEAPF32[$15>>2] = 0.5;
$16 = ((($4)) + 44|0);
HEAPF32[$16>>2] = 0.4921875;
$17 = ((($4)) + 48|0);
HEAPF32[$17>>2] = $10;
$18 = ((($4)) + 52|0);
HEAPF32[$18>>2] = $1;
$19 = $3 + 1.0;
$20 = ((($4)) + 56|0);
HEAPF32[$20>>2] = $19;
$21 = ((($4)) + 60|0);
HEAP32[$21>>2] = -587202561;
$22 = ((($4)) + 64|0);
HEAPF32[$22>>2] = 0.5;
$23 = ((($4)) + 68|0);
HEAPF32[$23>>2] = 0.5;
$24 = ((($4)) + 72|0);
HEAPF32[$24>>2] = $2;
$25 = ((($4)) + 76|0);
HEAPF32[$25>>2] = $1;
$26 = ((($4)) + 80|0);
HEAPF32[$26>>2] = $19;
$27 = ((($4)) + 84|0);
HEAP32[$27>>2] = -587202561;
$28 = ((($4)) + 88|0);
HEAPF32[$28>>2] = 0.4921875;
$29 = ((($4)) + 92|0);
HEAPF32[$29>>2] = 0.5;
$30 = ((($4)) + 96|0);
HEAP32[$0>>2] = $30;
return;
}
function _ShadowComponent_DrawCircle($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = +$3;
$4 = +$4;
var $$0107 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$024$0$$sroa_idx = 0, $$sroa$024$0$copyload = 0.0, $$sroa$040$0$$sroa_idx = 0, $$sroa$040$0$copyload = 0.0, $$sroa$040$0103 = 0.0, $$sroa$050$0$$sroa_idx = 0, $$sroa$050$0$copyload = 0.0, $$sroa$050$0105 = 0.0, $$sroa$517$0$$sroa_idx18 = 0, $$sroa$517$0$copyload = 0.0, $$sroa$533$0$$sroa_idx34 = 0, $$sroa$533$0$copyload = 0.0, $$sroa$9$0$$sroa_idx47 = 0, $$sroa$9$0$copyload = 0.0, $$sroa$9$0104 = 0.0, $$sroa$958$0$$sroa_idx59 = 0, $$sroa$958$0$copyload = 0.0;
var $$sroa$958$0106 = 0.0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0;
var $29 = 0, $30 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = (_Math_Floor($3)|0);
$6 = (+($5|0));
$7 = (_Math_Floor($4)|0);
$8 = (+($7|0));
$9 = ((($2)) + 4|0);
$10 = HEAP16[$9>>1]|0;
$11 = $10&65535;
$$sroa$050$0$$sroa_idx = (588036 + (($11*12)|0)|0);
$$sroa$050$0$copyload = +HEAPF32[$$sroa$050$0$$sroa_idx>>2];
$$sroa$958$0$$sroa_idx59 = (((588036 + (($11*12)|0)|0)) + 8|0);
$$sroa$958$0$copyload = +HEAPF32[$$sroa$958$0$$sroa_idx59>>2];
$$sroa$040$0$$sroa_idx = (597252 + (($11*12)|0)|0);
$$sroa$040$0$copyload = +HEAPF32[$$sroa$040$0$$sroa_idx>>2];
$$sroa$9$0$$sroa_idx47 = (((597252 + (($11*12)|0)|0)) + 8|0);
$$sroa$9$0$copyload = +HEAPF32[$$sroa$9$0$$sroa_idx47>>2];
$12 = $$sroa$050$0$copyload + $6;
$13 = $$sroa$958$0$copyload + $8;
$14 = $$sroa$040$0$copyload + $6;
$15 = $$sroa$9$0$copyload + $8;
_ShadowComponent_DrawCoords($0,$1,$2,$12,$13,$14,$15);
$$0107 = 1;$$sroa$040$0103 = $$sroa$040$0$copyload;$$sroa$050$0105 = $$sroa$050$0$copyload;$$sroa$9$0104 = $$sroa$9$0$copyload;$$sroa$958$0106 = $$sroa$958$0$copyload;
while(1) {
$16 = (($2) + ($$0107<<3)|0);
$17 = (((($2) + ($$0107<<3)|0)) + 4|0);
$18 = HEAP16[$17>>1]|0;
$19 = $18&65535;
$20 = ($18<<16>>16)==(0);
if ($20) {
label = 4;
break;
}
$$sroa$024$0$$sroa_idx = (588036 + (($19*12)|0)|0);
$$sroa$024$0$copyload = +HEAPF32[$$sroa$024$0$$sroa_idx>>2];
$$sroa$533$0$$sroa_idx34 = (((588036 + (($19*12)|0)|0)) + 8|0);
$$sroa$533$0$copyload = +HEAPF32[$$sroa$533$0$$sroa_idx34>>2];
$$sroa$0$0$$sroa_idx = (597252 + (($19*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$517$0$$sroa_idx18 = (((597252 + (($19*12)|0)|0)) + 8|0);
$$sroa$517$0$copyload = +HEAPF32[$$sroa$517$0$$sroa_idx18>>2];
$21 = $$sroa$050$0105 + $6;
$22 = $$sroa$533$0$copyload + $8;
$23 = $$sroa$040$0103 + $6;
$24 = $$sroa$958$0106 + $8;
_ShadowComponent_DrawCoords($0,$1,$16,$21,$22,$23,$24);
$25 = $$sroa$9$0104 + $8;
$26 = $$sroa$517$0$copyload + $8;
_ShadowComponent_DrawCoords($0,$1,$16,$21,$25,$23,$26);
$27 = $$sroa$024$0$copyload + $6;
_ShadowComponent_DrawCoords($0,$1,$16,$27,$22,$21,$26);
$28 = $$sroa$0$0$copyload + $6;
_ShadowComponent_DrawCoords($0,$1,$16,$23,$22,$28,$26);
$29 = (($$0107) + 1)|0;
$30 = ($29>>>0)<(4);
if ($30) {
$$0107 = $29;$$sroa$040$0103 = $$sroa$0$0$copyload;$$sroa$050$0105 = $$sroa$024$0$copyload;$$sroa$9$0104 = $$sroa$517$0$copyload;$$sroa$958$0106 = $$sroa$533$0$copyload;
} else {
label = 4;
break;
}
}
if ((label|0) == 4) {
return;
}
}
function _ShadowComponent_MakeTex() {
var $$02123 = 0, $$022 = 0, $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0;
var $7 = 0.0, $8 = 0.0, $9 = 0.0, $exitcond = 0, $exitcond24 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 65552|0;
$0 = sp;
$1 = sp + 65536|0;
$2 = ((($1)) + 4|0);
HEAP32[$2>>2] = 128;
$3 = ((($1)) + 8|0);
HEAP32[$3>>2] = 128;
HEAP32[$1>>2] = $0;
$$02123 = 0;
while(1) {
$4 = $$02123 << 7;
$5 = (($0) + ($4<<2)|0);
$6 = (+($$02123>>>0));
$7 = $6 + 0.5;
$8 = 64.0 - $7;
$9 = $8 * $8;
$$022 = 0;
while(1) {
$10 = (+($$022>>>0));
$11 = $10 + 0.5;
$12 = 64.0 - $11;
$13 = $12 * $12;
$14 = $9 + $13;
$15 = $14 < 4096.0;
$16 = $15 ? -939524096 : 0;
$17 = (($5) + ($$022<<2)|0);
HEAP32[$17>>2] = $16;
$18 = (($$022) + 1)|0;
$exitcond = ($18|0)==(128);
if ($exitcond) {
break;
} else {
$$022 = $18;
}
}
$19 = (($$02123) + 1)|0;
$exitcond24 = ($19|0)==(128);
if ($exitcond24) {
break;
} else {
$$02123 = $19;
}
}
$20 = (_Gfx_CreateTexture($1,0,0)|0);
HEAP32[312226] = $20;
STACKTOP = sp;return;
}
function _ShadowComponent_DrawCoords($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = +$3;
$4 = +$4;
$5 = +$5;
$6 = +$6;
var $$ = 0.0, $$116 = 0.0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$940$0$$sroa_idx41 = 0, $$sroa$940$0$copyload = 0.0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0;
var $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$7 = (_lequal($5,$3)|0);
$8 = ($7<<24>>24)==(0);
if (!($8)) {
return;
}
$9 = (_lequal($6,$4)|0);
$10 = ($9<<24>>24)==(0);
if (!($10)) {
return;
}
$$sroa$0$0$$sroa_idx = ((($1)) + 4|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$940$0$$sroa_idx41 = ((($1)) + 12|0);
$$sroa$940$0$copyload = +HEAPF32[$$sroa$940$0$$sroa_idx41>>2];
$11 = $3 - $$sroa$0$0$copyload;
$12 = +HEAPF32[312228];
$13 = $11 * $12;
$14 = $13 + 0.5;
$15 = $4 - $$sroa$940$0$copyload;
$16 = $15 * $12;
$17 = $16 + 0.5;
$18 = $5 - $$sroa$0$0$copyload;
$19 = $18 * $12;
$20 = $19 + 0.5;
$21 = $6 - $$sroa$940$0$copyload;
$22 = $21 * $12;
$23 = $22 + 0.5;
$24 = $20 <= 0.0;
$25 = $23 <= 0.0;
$or$cond = $24 | $25;
$26 = $14 >= 1.0;
$or$cond3 = $26 | $or$cond;
$27 = $17 >= 1.0;
$or$cond5 = $27 | $or$cond3;
if ($or$cond5) {
return;
}
$28 = +HEAPF32[312227];
$29 = $$sroa$0$0$copyload - $28;
$30 = $29 < $3;
$$ = $30 ? $3 : $29;
$31 = $14 >= 0.0;
$32 = $31 ? $14 : 0.0;
$33 = $$sroa$940$0$copyload - $28;
$34 = $33 < $4;
$35 = $34 ? $4 : $33;
$36 = $17 >= 0.0;
$37 = $36 ? $17 : 0.0;
$38 = $$sroa$0$0$copyload + $28;
$39 = $38 > $5;
$$116 = $39 ? $5 : $38;
$40 = $20 <= 1.0;
$41 = $40 ? $20 : 1.0;
$42 = $$sroa$940$0$copyload + $28;
$43 = $42 > $6;
$44 = $43 ? $6 : $42;
$45 = $23 <= 1.0;
$46 = $45 ? $23 : 1.0;
$47 = HEAP32[$0>>2]|0;
$48 = ((($2)) + 6|0);
$49 = HEAP8[$48>>0]|0;
$50 = $49&255;
$51 = $50 << 24;
$52 = $51 | 16777215;
HEAPF32[$47>>2] = $$;
$53 = HEAP32[$2>>2]|0;
$54 = ((($47)) + 4|0);
HEAP32[$54>>2] = $53;
$55 = ((($47)) + 8|0);
HEAPF32[$55>>2] = $35;
$56 = ((($47)) + 12|0);
HEAP32[$56>>2] = $52;
$57 = ((($47)) + 16|0);
HEAPF32[$57>>2] = $32;
$58 = ((($47)) + 20|0);
HEAPF32[$58>>2] = $37;
$59 = ((($47)) + 24|0);
HEAPF32[$59>>2] = $$116;
$60 = ((($47)) + 28|0);
HEAP32[$60>>2] = $53;
$61 = ((($47)) + 32|0);
HEAPF32[$61>>2] = $35;
$62 = ((($47)) + 36|0);
HEAP32[$62>>2] = $52;
$63 = ((($47)) + 40|0);
HEAPF32[$63>>2] = $41;
$64 = ((($47)) + 44|0);
HEAPF32[$64>>2] = $37;
$65 = ((($47)) + 48|0);
HEAPF32[$65>>2] = $$116;
$66 = ((($47)) + 52|0);
HEAP32[$66>>2] = $53;
$67 = ((($47)) + 56|0);
HEAPF32[$67>>2] = $44;
$68 = ((($47)) + 60|0);
HEAP32[$68>>2] = $52;
$69 = ((($47)) + 64|0);
HEAPF32[$69>>2] = $41;
$70 = ((($47)) + 68|0);
HEAPF32[$70>>2] = $46;
$71 = ((($47)) + 72|0);
HEAPF32[$71>>2] = $$;
$72 = ((($47)) + 76|0);
HEAP32[$72>>2] = $53;
$73 = ((($47)) + 80|0);
HEAPF32[$73>>2] = $44;
$74 = ((($47)) + 84|0);
HEAP32[$74>>2] = $52;
$75 = ((($47)) + 88|0);
HEAPF32[$75>>2] = $32;
$76 = ((($47)) + 92|0);
HEAPF32[$76>>2] = $46;
$77 = ((($47)) + 96|0);
HEAP32[$0>>2] = $77;
return;
}
function _lequal($0,$1) {
$0 = +$0;
$1 = +$1;
var $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0 < $1;
if ($2) {
$6 = 1;
return ($6|0);
}
$3 = $0 - $1;
$4 = (+_Math_AbsF($3));
$5 = $4 < 0.0010000000474974513;
$phitmp = $5&1;
$6 = $phitmp;
return ($6|0);
}
function _World_ContainsXZ_200($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = ($2>>>0)>($0>>>0);
$4 = HEAP32[(1407472)>>2]|0;
$5 = ($4>>>0)>($1>>>0);
$narrow = $3 & $5;
$6 = $narrow&1;
return ($6|0);
}
function _World_GetBlock_201($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _ShadowComponent_CalcAlpha($0,$1) {
$0 = +$0;
$1 = $1|0;
var $$ = 0.0, $$sink14 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[$1>>2];
$3 = $0 - $2;
$4 = !($3 <= 6.0);
if ($4) {
$10 = ((($1)) + 6|0);
HEAP8[$10>>0] = 0;
$11 = !($3 <= 16.0);
if ($11) {
$12 = !($3 <= 32.0);
if ($12) {
$13 = !($3 <= 96.0);
$$ = $13 ? 0.25 : 0.125;
$$sink14 = $$;
} else {
$$sink14 = 0.0625;
}
} else {
$$sink14 = 0.015625;
}
} else {
$5 = $3 * 160.0;
$6 = $5 / 6.0;
$7 = 160.0 - $6;
$8 = (~~(($7))&255);
$9 = ((($1)) + 6|0);
HEAP8[$9>>0] = $8;
$$sink14 = 0.015625;
}
$14 = $2 + $$sink14;
HEAPF32[$1>>2] = $14;
return;
}
function _Collisions_HitHorizontal($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
$13 = 1;
return ($13|0);
}
$4 = ((($0)) + 7|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if (!($6)) {
$13 = 1;
return ($13|0);
}
$7 = ((($0)) + 6|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
if (!($9)) {
$13 = 1;
return ($13|0);
}
$10 = ((($0)) + 9|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)!=(0);
$phitmp = $12&1;
$13 = $phitmp;
return ($13|0);
}
function _Collisions_MoveAndWallSlide($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$1 = sp + 24|0;
$2 = sp;
$3 = HEAP32[$0>>2]|0;
$4 = ((($3)) + 36|0);
$5 = +HEAPF32[$4>>2];
$6 = $5 == 0.0;
if ($6) {
$7 = ((($3)) + 40|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 == 0.0;
if ($9) {
$10 = ((($3)) + 44|0);
$11 = +HEAPF32[$10>>2];
$12 = $11 == 0.0;
if ($12) {
STACKTOP = sp;return;
}
}
}
$13 = (_Searcher_FindReachableBlocks($3,$1,$2)|0);
_Collisions_CollideWithReachableBlocks($0,$13,$1,$2);
STACKTOP = sp;return;
}
function _Collisions_CollideWithReachableBlocks($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$084 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0, $$sroa$5$0$$sroa_idx21 = 0, $$sroa$5$0$copyload = 0, $$sroa$7$0$$sroa_idx24 = 0, $$sroa$7$0$copyload = 0, $10 = 0, $100 = 0.0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0, $11 = 0, $110 = 0.0;
var $111 = 0.0, $112 = 0.0, $113 = 0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0, $126 = 0, $13 = 0, $14 = 0, $15 = 0;
var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0, $63 = 0.0, $64 = 0, $65 = 0.0, $66 = 0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0;
var $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0, $9 = 0;
var $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0, $98 = 0.0, $99 = 0.0, $exitcond = 0, $or$cond = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$4 = sp + 72|0;
$5 = sp + 48|0;
$6 = sp + 36|0;
$7 = sp + 24|0;
$8 = sp + 12|0;
$9 = sp + 8|0;
$10 = sp + 4|0;
$11 = sp;
$12 = HEAP32[$0>>2]|0;
$13 = ((($12)) + 111|0);
$14 = HEAP8[$13>>0]|0;
HEAP8[$13>>0] = 0;
$15 = ((($0)) + 4|0);
$16 = ((($0)) + 5|0);
$17 = ((($12)) + 92|0);
;HEAP32[$15>>2]=0|0;HEAP16[$15+4>>1]=0|0;
;HEAP32[$6>>2]=HEAP32[$17>>2]|0;HEAP32[$6+4>>2]=HEAP32[$17+4>>2]|0;HEAP32[$6+8>>2]=HEAP32[$17+8>>2]|0;
$18 = ($1|0)>(0);
if (!($18)) {
STACKTOP = sp;return;
}
$19 = ((($7)) + 4|0);
$20 = ((($7)) + 8|0);
$21 = ((($4)) + 12|0);
$22 = ((($12)) + 36|0);
$23 = ((($8)) + 4|0);
$24 = ((($8)) + 8|0);
$25 = ((($5)) + 12|0);
$26 = ((($2)) + 12|0);
$27 = ((($5)) + 4|0);
$28 = ((($4)) + 16|0);
$29 = ((($5)) + 16|0);
$30 = ((($4)) + 4|0);
$31 = ((($5)) + 8|0);
$32 = ((($4)) + 20|0);
$33 = ((($5)) + 20|0);
$34 = ((($4)) + 8|0);
$35 = ((($5)) + 8|0);
$36 = ((($4)) + 20|0);
$37 = ((($5)) + 4|0);
$38 = ((($4)) + 16|0);
$39 = ((($5)) + 20|0);
$40 = ((($4)) + 8|0);
$41 = ((($5)) + 16|0);
$42 = ((($4)) + 4|0);
$$084 = 0;
while(1) {
$43 = HEAP32[4288]|0;
$$sroa$0$0$$sroa_idx = (($43) + ($$084<<4)|0);
$$sroa$0$0$copyload = HEAP32[$$sroa$0$0$$sroa_idx>>2]|0;
$$sroa$5$0$$sroa_idx21 = (((($43) + ($$084<<4)|0)) + 4|0);
$$sroa$5$0$copyload = HEAP32[$$sroa$5$0$$sroa_idx21>>2]|0;
$$sroa$7$0$$sroa_idx24 = (((($43) + ($$084<<4)|0)) + 8|0);
$$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx24>>2]|0;
$44 = (3)?($$sroa$0$0$copyload >> 3):($$sroa$0$0$copyload);
$45 = (+($44|0));
HEAPF32[$7>>2] = $45;
$46 = (4)?($$sroa$5$0$copyload >> 4):($$sroa$5$0$copyload);
$47 = (+($46|0));
HEAPF32[$19>>2] = $47;
$48 = (3)?($$sroa$7$0$copyload >> 3):($$sroa$7$0$copyload);
$49 = (+($48|0));
HEAPF32[$20>>2] = $49;
$50 = $$sroa$0$0$copyload & 7;
$51 = $$sroa$5$0$copyload << 3;
$52 = $51 & 120;
$53 = $52 | $50;
$54 = $$sroa$7$0$copyload << 7;
$55 = $54 & 896;
$56 = $53 | $55;
$57 = (588036 + (($56*12)|0)|0);
_Vec3_Add_191($4,$57,$7);
$58 = (597252 + (($56*12)|0)|0);
_Vec3_Add_191($21,$58,$7);
$59 = (_AABB_Intersects($3,$4)|0);
$60 = ($59<<24>>24)==(0);
do {
if (!($60)) {
_Searcher_CalcTime($22,$2,$4,$9,$10,$11);
$61 = +HEAPF32[$9>>2];
$62 = $61 > 1.0;
$63 = +HEAPF32[$10>>2];
$64 = $63 > 1.0;
$or$cond = $62 | $64;
$65 = +HEAPF32[$11>>2];
$66 = $65 > 1.0;
$or$cond3 = $or$cond | $66;
if ($or$cond3) {
_Platform_LogConst(22804);
}
;HEAP32[$8>>2]=HEAP32[$22>>2]|0;HEAP32[$8+4>>2]=HEAP32[$22+4>>2]|0;HEAP32[$8+8>>2]=HEAP32[$22+8>>2]|0;
$67 = +HEAPF32[$9>>2];
$68 = +HEAPF32[$8>>2];
$69 = $67 * $68;
HEAPF32[$8>>2] = $69;
$70 = +HEAPF32[$10>>2];
$71 = +HEAPF32[$23>>2];
$72 = $70 * $71;
HEAPF32[$23>>2] = $72;
$73 = +HEAPF32[$11>>2];
$74 = +HEAPF32[$24>>2];
$75 = $73 * $74;
HEAPF32[$24>>2] = $75;
_Vec3_Add_191($5,$2,$8);
_Vec3_Add_191($25,$26,$8);
$76 = HEAP8[$16>>0]|0;
$77 = ($76<<24>>24)==(0);
if ($77) {
$78 = +HEAPF32[$27>>2];
$79 = $78 + 0.0010000000474974513;
$80 = +HEAPF32[$28>>2];
$81 = !($79 >= $80);
if (!($81)) {
_Collisions_ClipYMax($0,$4,$2,$3,$6);
break;
}
$82 = +HEAPF32[$29>>2];
$83 = $82 + -0.0010000000474974513;
$84 = +HEAPF32[$30>>2];
$85 = !($83 <= $84);
if (!($85)) {
_Collisions_ClipYMin($0,$4,$2,$3,$6);
break;
}
$86 = +HEAPF32[$5>>2];
$87 = $86 + 0.0010000000474974513;
$88 = +HEAPF32[$21>>2];
$89 = !($87 >= $88);
if (!($89)) {
_Collisions_ClipXMax($0,$4,$2,$14,$5,$3,$6);
break;
}
$90 = +HEAPF32[$25>>2];
$91 = $90 + -0.0010000000474974513;
$92 = +HEAPF32[$4>>2];
$93 = !($91 <= $92);
if (!($93)) {
_Collisions_ClipXMin($0,$4,$2,$14,$5,$3,$6);
break;
}
$94 = +HEAPF32[$35>>2];
$95 = $94 + 0.0010000000474974513;
$96 = +HEAPF32[$36>>2];
$97 = !($95 >= $96);
if (!($97)) {
_Collisions_ClipZMax($0,$4,$2,$14,$5,$3,$6);
break;
}
$98 = +HEAPF32[$39>>2];
$99 = $98 + -0.0010000000474974513;
$100 = +HEAPF32[$40>>2];
$101 = !($99 <= $100);
if ($101) {
break;
}
_Collisions_ClipZMin($0,$4,$2,$14,$5,$3,$6);
break;
} else {
$102 = +HEAPF32[$5>>2];
$103 = $102 + 0.0010000000474974513;
$104 = +HEAPF32[$21>>2];
$105 = !($103 >= $104);
if (!($105)) {
_Collisions_ClipXMax($0,$4,$2,$14,$5,$3,$6);
break;
}
$106 = +HEAPF32[$25>>2];
$107 = $106 + -0.0010000000474974513;
$108 = +HEAPF32[$4>>2];
$109 = !($107 <= $108);
if (!($109)) {
_Collisions_ClipXMin($0,$4,$2,$14,$5,$3,$6);
break;
}
$110 = +HEAPF32[$31>>2];
$111 = $110 + 0.0010000000474974513;
$112 = +HEAPF32[$32>>2];
$113 = !($111 >= $112);
if (!($113)) {
_Collisions_ClipZMax($0,$4,$2,$14,$5,$3,$6);
break;
}
$114 = +HEAPF32[$33>>2];
$115 = $114 + -0.0010000000474974513;
$116 = +HEAPF32[$34>>2];
$117 = !($115 <= $116);
if (!($117)) {
_Collisions_ClipZMin($0,$4,$2,$14,$5,$3,$6);
break;
}
$118 = +HEAPF32[$37>>2];
$119 = $118 + 0.0010000000474974513;
$120 = +HEAPF32[$38>>2];
$121 = !($119 >= $120);
if (!($121)) {
_Collisions_ClipYMax($0,$4,$2,$3,$6);
break;
}
$122 = +HEAPF32[$41>>2];
$123 = $122 + -0.0010000000474974513;
$124 = +HEAPF32[$42>>2];
$125 = !($123 <= $124);
if ($125) {
break;
}
_Collisions_ClipYMin($0,$4,$2,$3,$6);
break;
}
}
} while(0);
$126 = (($$084) + 1)|0;
$exitcond = ($126|0)==($1|0);
if ($exitcond) {
break;
} else {
$$084 = $126;
}
}
STACKTOP = sp;return;
}
function _Collisions_ClipYMax($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ((($1)) + 16|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 + 0.0010000000474974513;
$8 = HEAP32[$0>>2]|0;
$9 = ((($8)) + 8|0);
HEAPF32[$9>>2] = $7;
$10 = ((($8)) + 111|0);
HEAP8[$10>>0] = 1;
_Collisions_ClipY($8,$4,$2,$3);
$11 = ((($0)) + 8|0);
HEAP8[$11>>0] = 1;
return;
}
function _Collisions_ClipYMin($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = ((($4)) + 4|0);
$8 = +HEAPF32[$7>>2];
$9 = $6 - $8;
$10 = $9 + -0.0010000000474974513;
$11 = HEAP32[$0>>2]|0;
$12 = ((($11)) + 8|0);
HEAPF32[$12>>2] = $10;
_Collisions_ClipY($11,$4,$2,$3);
$13 = ((($0)) + 5|0);
HEAP8[$13>>0] = 1;
return;
}
function _Collisions_ClipXMax($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = ($3<<24>>24)==(0);
if (!($7)) {
$8 = (_Collisions_DidSlide($0,$1,$6,$4,$2,$5)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
return;
}
}
$10 = ((($1)) + 12|0);
$11 = +HEAPF32[$10>>2];
$12 = +HEAPF32[$6>>2];
$13 = $12 * 0.5;
$14 = $11 + $13;
$15 = $14 + 0.0010000000474974513;
$16 = HEAP32[$0>>2]|0;
$17 = ((($16)) + 4|0);
HEAPF32[$17>>2] = $15;
_Collisions_ClipX($16,$6,$2,$5);
$18 = ((($0)) + 7|0);
HEAP8[$18>>0] = 1;
return;
}
function _Collisions_ClipXMin($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = ($3<<24>>24)==(0);
if (!($7)) {
$8 = (_Collisions_DidSlide($0,$1,$6,$4,$2,$5)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
return;
}
}
$10 = +HEAPF32[$1>>2];
$11 = +HEAPF32[$6>>2];
$12 = $11 * 0.5;
$13 = $10 - $12;
$14 = $13 + -0.0010000000474974513;
$15 = HEAP32[$0>>2]|0;
$16 = ((($15)) + 4|0);
HEAPF32[$16>>2] = $14;
_Collisions_ClipX($15,$6,$2,$5);
$17 = ((($0)) + 4|0);
HEAP8[$17>>0] = 1;
return;
}
function _Collisions_ClipZMax($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = ($3<<24>>24)==(0);
if (!($7)) {
$8 = (_Collisions_DidSlide($0,$1,$6,$4,$2,$5)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
return;
}
}
$10 = ((($1)) + 20|0);
$11 = +HEAPF32[$10>>2];
$12 = ((($6)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = $13 * 0.5;
$15 = $11 + $14;
$16 = $15 + 0.0010000000474974513;
$17 = HEAP32[$0>>2]|0;
$18 = ((($17)) + 12|0);
HEAPF32[$18>>2] = $16;
_Collisions_ClipZ($17,$6,$2,$5);
$19 = ((($0)) + 9|0);
HEAP8[$19>>0] = 1;
return;
}
function _Collisions_ClipZMin($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = ($3<<24>>24)==(0);
if (!($7)) {
$8 = (_Collisions_DidSlide($0,$1,$6,$4,$2,$5)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
return;
}
}
$10 = ((($1)) + 8|0);
$11 = +HEAPF32[$10>>2];
$12 = ((($6)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = $13 * 0.5;
$15 = $11 - $14;
$16 = $15 + -0.0010000000474974513;
$17 = HEAP32[$0>>2]|0;
$18 = ((($17)) + 12|0);
HEAPF32[$18>>2] = $16;
_Collisions_ClipZ($17,$6,$2,$5);
$19 = ((($0)) + 6|0);
HEAP8[$19>>0] = 1;
return;
}
function _Collisions_DidSlide($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$ = 0.0, $$1 = 0, $$58 = 0.0, $$59 = 0.0, $$60 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0;
var $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0, $30 = 0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0.0, $38 = 0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0;
var $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0, $49 = 0.0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0, $63 = 0;
var $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$6 = sp;
$7 = ((($1)) + 16|0);
$8 = +HEAPF32[$7>>2];
$9 = ((($4)) + 4|0);
$10 = +HEAPF32[$9>>2];
$11 = $8 - $10;
$12 = $11 > 0.0;
if (!($12)) {
$$1 = 0;
STACKTOP = sp;return ($$1|0);
}
$13 = HEAP32[$0>>2]|0;
$14 = ((($13)) + 104|0);
$15 = +HEAPF32[$14>>2];
$16 = $15 + 0.0099999997764825821;
$17 = !($11 <= $16);
if ($17) {
$$1 = 0;
STACKTOP = sp;return ($$1|0);
}
$18 = +HEAPF32[$1>>2];
$19 = ((($1)) + 12|0);
$20 = +HEAPF32[$19>>2];
$21 = +HEAPF32[$2>>2];
$22 = $21 * 0.5;
$23 = $20 - $22;
$24 = $18 > $23;
$$ = $24 ? $18 : $23;
$25 = $18 + $22;
$26 = $20 < $25;
$27 = $26 ? $20 : $25;
$28 = ((($1)) + 8|0);
$29 = +HEAPF32[$28>>2];
$30 = ((($1)) + 20|0);
$31 = +HEAPF32[$30>>2];
$32 = ((($2)) + 8|0);
$33 = +HEAPF32[$32>>2];
$34 = $33 * 0.5;
$35 = $31 - $34;
$36 = $29 > $35;
$$58 = $36 ? $29 : $35;
$37 = $29 + $34;
$38 = $31 < $37;
$39 = $38 ? $31 : $37;
$40 = +HEAPF32[$3>>2];
$41 = $$ + 0.0010000000474974513;
$42 = $40 < $41;
$$59 = $42 ? $40 : $41;
HEAPF32[$6>>2] = $$59;
$43 = ((($3)) + 12|0);
$44 = +HEAPF32[$43>>2];
$45 = $27 + -0.0010000000474974513;
$46 = $44 > $45;
$47 = $46 ? $44 : $45;
$48 = ((($6)) + 12|0);
HEAPF32[$48>>2] = $47;
$49 = $8 + 0.0010000000474974513;
$50 = ((($6)) + 4|0);
HEAPF32[$50>>2] = $49;
$51 = ((($2)) + 4|0);
$52 = +HEAPF32[$51>>2];
$53 = $49 + $52;
$54 = ((($6)) + 16|0);
HEAPF32[$54>>2] = $53;
$55 = ((($3)) + 8|0);
$56 = +HEAPF32[$55>>2];
$57 = $$58 + 0.0010000000474974513;
$58 = $56 < $57;
$$60 = $58 ? $56 : $57;
$59 = ((($6)) + 8|0);
HEAPF32[$59>>2] = $$60;
$60 = ((($3)) + 20|0);
$61 = +HEAPF32[$60>>2];
$62 = $39 + -0.0010000000474974513;
$63 = $61 > $62;
$64 = $63 ? $61 : $62;
$65 = ((($6)) + 20|0);
HEAPF32[$65>>2] = $64;
$66 = (_Collisions_CanSlideThrough($6)|0);
$67 = ($66<<24>>24)==(0);
if ($67) {
$$1 = 0;
STACKTOP = sp;return ($$1|0);
}
$68 = HEAP32[$50>>2]|0;
$69 = HEAP32[$0>>2]|0;
$70 = ((($69)) + 8|0);
HEAP32[$70>>2] = $68;
$71 = ((($69)) + 111|0);
HEAP8[$71>>0] = 1;
_Collisions_ClipY($69,$2,$4,$5);
$$1 = 1;
STACKTOP = sp;return ($$1|0);
}
function _Collisions_ClipZ($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 44|0);
HEAPF32[$4>>2] = 0.0;
$5 = ((($0)) + 12|0);
$6 = +HEAPF32[$5>>2];
$7 = ((($1)) + 8|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 * 0.5;
$10 = $6 - $9;
$11 = ((($2)) + 8|0);
HEAPF32[$11>>2] = $10;
$12 = ((($3)) + 8|0);
HEAPF32[$12>>2] = $10;
$13 = +HEAPF32[$7>>2];
$14 = $13 * 0.5;
$15 = $6 + $14;
$16 = ((($2)) + 20|0);
HEAPF32[$16>>2] = $15;
$17 = ((($3)) + 20|0);
HEAPF32[$17>>2] = $15;
return;
}
function _Collisions_CanSlideThrough($0) {
$0 = $0|0;
var $$02534 = 0, $$02629 = 0, $$027 = 0, $$030 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0.0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp + 52|0;
$2 = sp + 40|0;
$3 = sp + 16|0;
$4 = sp;
_IVec3_Floor($1,$0);
$5 = ((($0)) + 12|0);
_IVec3_Floor($2,$5);
$6 = ((($1)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($2)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($7|0)>($9|0);
if ($10) {
$$027 = 1;
STACKTOP = sp;return ($$027|0);
}
$11 = ((($4)) + 4|0);
$12 = ((($1)) + 8|0);
$13 = ((($2)) + 8|0);
$14 = ((($4)) + 8|0);
$15 = ((($3)) + 12|0);
$$02534 = $7;
L4: while(1) {
$16 = (+($$02534|0));
HEAPF32[$11>>2] = $16;
$17 = HEAP32[$12>>2]|0;
$18 = HEAP32[$13>>2]|0;
$19 = ($17|0)>($18|0);
if (!($19)) {
$$030 = $17;
while(1) {
$20 = (+($$030|0));
HEAPF32[$14>>2] = $20;
$21 = HEAP32[$1>>2]|0;
$22 = HEAP32[$2>>2]|0;
$23 = ($21|0)>($22|0);
if (!($23)) {
$$02629 = $21;
while(1) {
$24 = (+($$02629|0));
HEAPF32[$4>>2] = $24;
$25 = (_World_GetPhysicsBlock($$02629,$$02534,$$030)|0);
$26 = $25&65535;
$27 = (588036 + (($26*12)|0)|0);
_Vec3_Add_191($3,$4,$27);
$28 = (597252 + (($26*12)|0)|0);
_Vec3_Add_191($15,$4,$28);
$29 = (_AABB_Intersects($3,$0)|0);
$30 = ($29<<24>>24)==(0);
if (!($30)) {
$31 = (578052 + ($26)|0);
$32 = HEAP8[$31>>0]|0;
$33 = ($32<<24>>24)==(2);
if ($33) {
$$027 = 0;
label = 12;
break L4;
}
}
$34 = (($$02629) + 1)|0;
$35 = HEAP32[$2>>2]|0;
$36 = ($$02629|0)<($35|0);
if ($36) {
$$02629 = $34;
} else {
break;
}
}
}
$37 = (($$030) + 1)|0;
$38 = HEAP32[$13>>2]|0;
$39 = ($$030|0)<($38|0);
if ($39) {
$$030 = $37;
} else {
break;
}
}
}
$40 = (($$02534) + 1)|0;
$41 = HEAP32[$8>>2]|0;
$42 = ($$02534|0)<($41|0);
if ($42) {
$$02534 = $40;
} else {
$$027 = 1;
label = 12;
break;
}
}
if ((label|0) == 12) {
STACKTOP = sp;return ($$027|0);
}
return (0)|0;
}
function _Collisions_ClipY($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 40|0);
HEAPF32[$4>>2] = 0.0;
$5 = ((($0)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($2)) + 4|0);
HEAP32[$7>>2] = $6;
$8 = ((($3)) + 4|0);
HEAP32[$8>>2] = $6;
$9 = +HEAPF32[$5>>2];
$10 = ((($1)) + 4|0);
$11 = +HEAPF32[$10>>2];
$12 = $9 + $11;
$13 = ((($2)) + 16|0);
HEAPF32[$13>>2] = $12;
$14 = ((($3)) + 16|0);
HEAPF32[$14>>2] = $12;
return;
}
function _Collisions_ClipX($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 36|0);
HEAPF32[$4>>2] = 0.0;
$5 = ((($0)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = +HEAPF32[$1>>2];
$8 = $7 * 0.5;
$9 = $6 - $8;
HEAPF32[$2>>2] = $9;
HEAPF32[$3>>2] = $9;
$10 = +HEAPF32[$1>>2];
$11 = $10 * 0.5;
$12 = $6 + $11;
$13 = ((($2)) + 12|0);
HEAPF32[$13>>2] = $12;
$14 = ((($3)) + 12|0);
HEAPF32[$14>>2] = $12;
return;
}
function _PhysicsComp_Init($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Mem_Set($0,0,32);
$2 = ((($0)) + 1|0);
HEAP8[$2>>0] = 1;
$3 = ((($0)) + 8|0);
HEAP32[$3>>2] = $1;
$4 = ((($0)) + 12|0);
HEAPF32[$4>>2] = 0.41999998688697815;
$5 = ((($0)) + 16|0);
HEAPF32[$5>>2] = 0.41999998688697815;
$6 = ((($0)) + 20|0);
HEAPF32[$6>>2] = 0.41999998688697815;
return;
}
function _PhysicsComp_UpdateVelocityState($0) {
$0 = $0|0;
var $$sink = 0, $$sink91 = 0.0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0.0;
var $115 = 0.0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0.0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0, $132 = 0;
var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0.0, $63 = 0, $64 = 0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0.0, $98 = 0.0, $99 = 0, $or$cond = 0, $phitmp = 0.0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 24|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 40|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if ($8) {
$40 = ((($0)) + 2|0);
$41 = HEAP8[$40>>0]|0;
$42 = ($41<<24>>24)==(0);
if (!($42)) {
$43 = (_Entity_TouchesAnyRope($3)|0);
$44 = ($43<<24>>24)==(0);
if (!($44)) {
$45 = ((($3)) + 40|0);
$46 = +HEAPF32[$45>>2];
$47 = $46 > 0.019999999552965164;
if ($47) {
HEAPF32[$45>>2] = 0.019999999552965164;
}
}
}
} else {
$9 = ((($3)) + 40|0);
HEAPF32[$9>>2] = 0.0;
$10 = ((($5)) + 36|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if ($12) {
$13 = ((($0)) + 2|0);
$14 = HEAP8[$13>>0]|0;
$15 = ($14<<24>>24)==(0);
if ($15) {
$16 = ((($5)) + 37|0);
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)!=(0);
$19 = $18 << 31 >> 31;
$21 = $19;
} else {
$21 = 1;
}
} else {
$21 = 1;
}
$20 = (+($21|0));
$22 = $20 * 0.11999999731779099;
$23 = $22 + 0.0;
HEAPF32[$9>>2] = $23;
$24 = ((($5)) + 38|0);
$25 = HEAP8[$24>>0]|0;
$26 = ($25<<24>>24)==(0);
if (!($26)) {
$27 = ((($5)) + 13|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28<<24>>24)==(0);
if (!($29)) {
$30 = $22 + $23;
HEAPF32[$9>>2] = $30;
}
}
$31 = ((($5)) + 39|0);
$32 = HEAP8[$31>>0]|0;
$33 = ($32<<24>>24)==(0);
if (!($33)) {
$34 = ((($5)) + 13|0);
$35 = HEAP8[$34>>0]|0;
$36 = ($35<<24>>24)==(0);
if (!($36)) {
$37 = $20 * 0.059999998658895493;
$38 = +HEAPF32[$9>>2];
$39 = $37 + $38;
HEAPF32[$9>>2] = $39;
}
}
}
$48 = ((($0)) + 2|0);
$49 = HEAP8[$48>>0]|0;
$50 = ($49<<24>>24)==(0);
if ($50) {
$51 = ((($0)) + 1|0);
HEAP8[$51>>0] = 0;
STACKTOP = sp;return;
}
$52 = (_Entity_TouchesAnyWater($3)|0);
$53 = (_Entity_TouchesAnyLava($3)|0);
$54 = ($53<<24>>24)==(0);
$55 = $53 | $52;
$56 = ($55<<24>>24)==(0);
if ($56) {
$111 = HEAP8[$0>>0]|0;
$112 = ($111<<24>>24)==(0);
if (!($112)) {
$113 = ((($3)) + 40|0);
$114 = +HEAPF32[$113>>2];
$115 = $114 + 0.039999999105930328;
HEAPF32[$113>>2] = $115;
$116 = ((($5)) + 38|0);
$117 = HEAP8[$116>>0]|0;
$118 = ($117<<24>>24)==(0);
if (!($118)) {
$119 = ((($5)) + 13|0);
$120 = HEAP8[$119>>0]|0;
$121 = ($120<<24>>24)==(0);
if (!($121)) {
$122 = $115 + 0.039999999105930328;
HEAPF32[$113>>2] = $122;
}
}
$123 = ((($5)) + 39|0);
$124 = HEAP8[$123>>0]|0;
$125 = ($124<<24>>24)==(0);
if (!($125)) {
$126 = ((($5)) + 13|0);
$127 = HEAP8[$126>>0]|0;
$128 = ($127<<24>>24)==(0);
if (!($128)) {
$129 = +HEAPF32[$113>>2];
$130 = $129 + 0.019999999552965164;
HEAPF32[$113>>2] = $130;
}
}
$131 = ((($0)) + 1|0);
HEAP8[$131>>0] = 0;
STACKTOP = sp;return;
}
$132 = (_Entity_TouchesAnyRope($3)|0);
$133 = ($132<<24>>24)==(0);
if ($133) {
$145 = ((($3)) + 111|0);
$146 = HEAP8[$145>>0]|0;
$147 = ($146<<24>>24)==(0);
if ($147) {
STACKTOP = sp;return;
}
_PhysicsComp_DoNormalJump($0);
STACKTOP = sp;return;
} else {
$134 = ((($5)) + 38|0);
$135 = HEAP8[$134>>0]|0;
$136 = ($135<<24>>24)==(0);
if ($136) {
$143 = 0.10000000149011612;
} else {
$137 = ((($5)) + 13|0);
$138 = HEAP8[$137>>0]|0;
$139 = ($138<<24>>24)==(0);
$phitmp = $139 ? 0.10000000149011612 : 0.15000000596046448;
$143 = $phitmp;
}
$140 = ((($3)) + 40|0);
$141 = +HEAPF32[$140>>2];
$142 = $143 + $141;
HEAPF32[$140>>2] = $142;
$144 = ((($0)) + 1|0);
HEAP8[$144>>0] = 0;
STACKTOP = sp;return;
}
} else {
_Entity_GetBounds($3,$1);
$57 = ((($1)) + 4|0);
$58 = +HEAPF32[$57>>2];
$59 = (_Math_Floor($58)|0);
$60 = (($59) + 1)|0;
$61 = ((($1)) + 16|0);
$62 = +HEAPF32[$61>>2];
$63 = (_Math_Floor($62)|0);
$64 = ($59|0)<($63|0);
$spec$select = $64 ? $60 : $63;
$65 = (+($59|0));
HEAPF32[$57>>2] = $65;
HEAPF32[$61>>2] = $65;
$66 = (_Entity_TouchesAny($1,10)|0);
$67 = ($spec$select|0)<($63|0);
$68 = $67 ? $spec$select : $63;
$69 = (+($68|0));
HEAPF32[$57>>2] = $69;
$70 = ($spec$select|0)>($63|0);
$71 = $70 ? $spec$select : $63;
$72 = (+($71|0));
HEAPF32[$61>>2] = $72;
$73 = (_Entity_TouchesAny($1,10)|0);
$74 = ($66<<24>>24)==(0);
$75 = ($73<<24>>24)!=(0);
$or$cond = $74 | $75;
if (!($or$cond)) {
$76 = ((($3)) + 8|0);
$77 = +HEAPF32[$76>>2];
$78 = (+_Math_Mod1($77));
$79 = !($78 >= 0.40000000596046448);
if (!($79)) {
$99 = ((($0)) + 28|0);
$100 = HEAP32[$99>>2]|0;
$101 = (_Collisions_HitHorizontal($100)|0);
$102 = ($101<<24>>24)==(0);
if ($102) {
$104 = ((($0)) + 1|0);
$105 = HEAP8[$104>>0]|0;
$106 = ($105<<24>>24)==(0);
if (!($106)) {
$107 = $54 ? 0.10000000149011612 : 0.20000000298023224;
$$sink91 = $107;
label = 30;
}
} else {
$103 = $54 ? 0.12999999523162842 : 0.30000001192092896;
$$sink91 = $103;
label = 30;
}
if ((label|0) == 30) {
$$sink = ((($3)) + 40|0);
$108 = +HEAPF32[$$sink>>2];
$109 = $$sink91 + $108;
HEAPF32[$$sink>>2] = $109;
}
$110 = ((($0)) + 1|0);
HEAP8[$110>>0] = 0;
STACKTOP = sp;return;
}
}
$80 = ((($0)) + 1|0);
HEAP8[$80>>0] = 1;
$81 = ((($3)) + 40|0);
$82 = +HEAPF32[$81>>2];
$83 = $82 + 0.039999999105930328;
HEAPF32[$81>>2] = $83;
$84 = ((($5)) + 38|0);
$85 = HEAP8[$84>>0]|0;
$86 = ($85<<24>>24)==(0);
if (!($86)) {
$87 = ((($5)) + 13|0);
$88 = HEAP8[$87>>0]|0;
$89 = ($88<<24>>24)==(0);
if (!($89)) {
$90 = $83 + 0.039999999105930328;
HEAPF32[$81>>2] = $90;
}
}
$91 = ((($5)) + 39|0);
$92 = HEAP8[$91>>0]|0;
$93 = ($92<<24>>24)==(0);
if ($93) {
STACKTOP = sp;return;
}
$94 = ((($5)) + 13|0);
$95 = HEAP8[$94>>0]|0;
$96 = ($95<<24>>24)==(0);
if ($96) {
STACKTOP = sp;return;
}
$97 = +HEAPF32[$81>>2];
$98 = $97 + 0.019999999552965164;
HEAPF32[$81>>2] = $98;
STACKTOP = sp;return;
}
}
function _PhysicsComp_TouchesLiquid($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (578052 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(1);
$5 = $4&1;
return ($5|0);
}
function _PhysicsComp_DoNormalJump($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0.0;
var $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 24|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 12|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 == 0.0;
if ($7) {
return;
}
$8 = ((($4)) + 28|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)<(1);
if ($10) {
return;
}
$11 = ((($2)) + 40|0);
HEAPF32[$11>>2] = $6;
$12 = ((($4)) + 38|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(0);
if (!($14)) {
$15 = ((($4)) + 13|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(0);
if (!($17)) {
$18 = $6 + $6;
HEAPF32[$11>>2] = $18;
}
}
$19 = ((($4)) + 39|0);
$20 = HEAP8[$19>>0]|0;
$21 = ($20<<24>>24)==(0);
if (!($21)) {
$22 = ((($4)) + 13|0);
$23 = HEAP8[$22>>0]|0;
$24 = ($23<<24>>24)==(0);
if (!($24)) {
$25 = $6 * 0.5;
$26 = +HEAPF32[$11>>2];
$27 = $25 + $26;
HEAPF32[$11>>2] = $27;
}
}
$28 = ((($0)) + 1|0);
HEAP8[$28>>0] = 0;
return;
}
function _PhysicsComp_PhysicsTick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0.0, $$091 = 0.0, $$1 = 0.0, $$byval_copy5 = 0, $$byval_copy6 = 0, $$pr = 0, $10 = 0.0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0;
var $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0.0, $77 = 0.0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0;
var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $phitmp = 0.0, $spec$select = 0.0, $spec$select97 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy6 = sp + 12|0;
$$byval_copy5 = sp;
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 24|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 34|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if (!($8)) {
$9 = ((($3)) + 111|0);
HEAP8[$9>>0] = 0;
}
$10 = (+_PhysicsComp_GetBaseSpeed($0));
$11 = (+_PhysicsComp_GetSpeed($5,8.0));
$12 = $11 / 5.0;
$13 = $10 * $12;
$14 = (+_PhysicsComp_GetSpeed($5,1.6000000238418579));
$15 = $10 * $14;
$16 = ((($5)) + 24|0);
$17 = +HEAPF32[$16>>2];
$18 = $15 * $17;
$19 = $18 < -75.0;
$20 = $19 ? -75.0 : $18;
$21 = $20 > 75.0;
$22 = $21 ? 75.0 : $20;
$23 = $13 < $10;
$$0 = $23 ? $10 : $13;
$24 = ((($5)) + 19|0);
$25 = HEAP8[$24>>0]|0;
$26 = ($25<<24>>24)==(0);
do {
if ($26) {
$27 = ((($5)) + 40|0);
$$091 = $22;$$1 = $$0;$45 = $27;
} else {
$28 = ((($5)) + 33|0);
$29 = HEAP8[$28>>0]|0;
$30 = ($29<<24>>24)==(0);
$31 = ((($5)) + 40|0);
$32 = HEAP8[$31>>0]|0;
$33 = ($32<<24>>24)!=(0);
$brmerge = $30 | $33;
if ($brmerge) {
$$091 = $22;$$1 = $$0;$45 = $31;
} else {
$34 = ((($0)) + 4|0);
$35 = HEAP32[$34>>2]|0;
$36 = ($35|0)==(1);
if ($36) {
$37 = $22 * 46.5;
$38 = $$0 * 7.5;
$$091 = $37;$$1 = $38;$45 = $31;
break;
} else {
$39 = ($35|0)>(1);
$40 = $22 * 93.0;
$41 = $$0 * 10.0;
$spec$select = $39 ? $40 : $22;
$spec$select97 = $39 ? $41 : $$0;
$$091 = $spec$select;$$1 = $spec$select97;$45 = $31;
break;
}
}
}
} while(0);
$42 = (_Entity_TouchesAnyWater($3)|0);
$43 = ($42<<24>>24)==(0);
if ($43) {
label = 12;
} else {
$44 = HEAP8[$45>>0]|0;
$46 = ($44<<24>>24)==(0);
if ($46) {
$47 = $$091 * 0.019999999552965164;
;HEAP32[$$byval_copy5>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy6>>2]=HEAP32[11400>>2]|0;HEAP32[$$byval_copy6+4>>2]=HEAP32[11400+4>>2]|0;HEAP32[$$byval_copy6+8>>2]=HEAP32[11400+8>>2]|0;
_PhysicsComp_MoveNormal($0,$$byval_copy5,$47,$$byval_copy6,0.019999999552965164,$$1);
} else {
label = 12;
}
}
do {
if ((label|0) == 12) {
$48 = (_Entity_TouchesAnyLava($3)|0);
$49 = ($48<<24>>24)==(0);
if (!($49)) {
$50 = HEAP8[$45>>0]|0;
$51 = ($50<<24>>24)==(0);
if ($51) {
$52 = $$091 * 0.019999999552965164;
;HEAP32[$$byval_copy5>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy6>>2]=HEAP32[11412>>2]|0;HEAP32[$$byval_copy6+4>>2]=HEAP32[11412+4>>2]|0;HEAP32[$$byval_copy6+8>>2]=HEAP32[11412+8>>2]|0;
_PhysicsComp_MoveNormal($0,$$byval_copy5,$52,$$byval_copy6,0.019999999552965164,$$1);
break;
}
}
$53 = (_Entity_TouchesAnyRope($3)|0);
$54 = ($53<<24>>24)==(0);
$$pr = HEAP8[$45>>0]|0;
$55 = ($$pr<<24>>24)==(0);
if ($54) {
if ($55) {
$56 = ((($3)) + 111|0);
$57 = HEAP8[$56>>0]|0;
$58 = ($57<<24>>24)==(0);
$phitmp = $58 ? 0.019999999552965164 : 0.10000000149011612;
$109 = 1;$66 = $phitmp;
} else {
$109 = 0;$66 = 0.10000000149011612;
}
} else {
if ($55) {
;HEAP32[$$byval_copy5>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy6>>2]=HEAP32[11424>>2]|0;HEAP32[$$byval_copy6+4>>2]=HEAP32[11424+4>>2]|0;HEAP32[$$byval_copy6+8>>2]=HEAP32[11424+8>>2]|0;
_PhysicsComp_MoveNormal($0,$$byval_copy5,0.034000001847743988,$$byval_copy6,0.034000001847743988,$$1);
break;
} else {
$109 = 0;$66 = 0.10000000149011612;
}
}
$59 = HEAP8[$0>>0]|0;
$60 = ($59<<24>>24)==(0);
if ($60) {
$61 = ((($3)) + 48|0);
$62 = HEAP32[$61>>2]|0;
$63 = ((($62)) + 48|0);
$64 = +HEAPF32[$63>>2];
$70 = $64;
} else {
$70 = 0.019999999552965164;
}
$65 = $$091 * $66;
$67 = ((($3)) + 48|0);
$68 = HEAP32[$67>>2]|0;
$69 = ((($68)) + 52|0);
if ($109) {
;HEAP32[$$byval_copy5>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy6>>2]=HEAP32[$69>>2]|0;HEAP32[$$byval_copy6+4>>2]=HEAP32[$69+4>>2]|0;HEAP32[$$byval_copy6+8>>2]=HEAP32[$69+8>>2]|0;
_PhysicsComp_MoveNormal($0,$$byval_copy5,$65,$$byval_copy6,$70,$$1);
} else {
;HEAP32[$$byval_copy5>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy6>>2]=HEAP32[$69>>2]|0;HEAP32[$$byval_copy6+4>>2]=HEAP32[$69+4>>2]|0;HEAP32[$$byval_copy6+8>>2]=HEAP32[$69+8>>2]|0;
_PhysicsComp_MoveFlying($0,$$byval_copy5,$65,$$byval_copy6,$70,$$1);
}
$71 = (_PhysicsComp_OnIce($3)|0);
$72 = ($71<<24>>24)==(0);
if (!($72)) {
$73 = HEAP8[$45>>0]|0;
$74 = ($73<<24>>24)==(0);
if ($74) {
$75 = ((($3)) + 36|0);
$76 = +HEAPF32[$75>>2];
$77 = (+_Math_AbsF($76));
$78 = $77 > 0.25;
if (!($78)) {
$79 = ((($3)) + 44|0);
$80 = +HEAPF32[$79>>2];
$81 = (+_Math_AbsF($80));
$82 = $81 > 0.25;
if (!($82)) {
break;
}
}
$83 = +HEAPF32[$75>>2];
$84 = 0.25 / $83;
$85 = (+_Math_AbsF($84));
$86 = ((($3)) + 44|0);
$87 = +HEAPF32[$86>>2];
$88 = 0.25 / $87;
$89 = (+_Math_AbsF($88));
$90 = $85 < $89;
$91 = $90 ? $85 : $89;
$92 = +HEAPF32[$75>>2];
$93 = $92 * $91;
HEAPF32[$75>>2] = $93;
$94 = +HEAPF32[$86>>2];
$95 = $91 * $94;
HEAPF32[$86>>2] = $95;
break;
}
}
$96 = ((($3)) + 111|0);
$97 = HEAP8[$96>>0]|0;
$98 = ($97<<24>>24)==(0);
if ($98) {
$99 = ((($5)) + 35|0);
$100 = HEAP8[$99>>0]|0;
$101 = ($100<<24>>24)==(0);
if ($101) {
break;
}
}
$102 = ((($3)) + 36|0);
$103 = HEAP32[$67>>2]|0;
$104 = ((($103)) + 64|0);
_Vec3_Mul3_211($102,$102,$104);
}
} while(0);
$105 = ((($3)) + 111|0);
$106 = HEAP8[$105>>0]|0;
$107 = ($106<<24>>24)==(0);
if ($107) {
STACKTOP = sp;return;
}
$108 = ((($0)) + 4|0);
HEAP32[$108>>2] = 0;
STACKTOP = sp;return;
}
function _PhysicsComp_GetBaseSpeed($0) {
$0 = $0|0;
var $$0 = 0.0, $1 = 0, $10 = 0, $11 = 0.0, $2 = 0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
_Entity_GetBounds($3,$1);
HEAP8[$0>>0] = 0;
$4 = (+_PhysicsComp_LowestModifier($0,$1,0));
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 + -0.03125;
HEAPF32[$5>>2] = $7;
$8 = (+_PhysicsComp_LowestModifier($0,$1,1));
$9 = $4 == 1.0E+9;
$10 = $8 == 1.0E+9;
$or$cond = $9 & $10;
$11 = $9 ? $8 : $4;
$$0 = $or$cond ? 1.0 : $11;
STACKTOP = sp;return (+$$0);
}
function _PhysicsComp_GetSpeed($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$0 = 0.0, $$1 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
$5 = $4 ? 1.0 : $1;
$6 = ((($0)) + 38|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if ($8) {
$$0 = $5;
} else {
$9 = ((($0)) + 13|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(0);
if ($11) {
$$0 = $5;
} else {
$12 = ((($0)) + 4|0);
$13 = +HEAPF32[$12>>2];
$14 = $5 * $13;
$15 = $5 + $14;
$$0 = $15;
}
}
$16 = ((($0)) + 39|0);
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)==(0);
if ($18) {
$$1 = $$0;
} else {
$19 = ((($0)) + 13|0);
$20 = HEAP8[$19>>0]|0;
$21 = ($20<<24>>24)==(0);
if ($21) {
$$1 = $$0;
} else {
$22 = ((($0)) + 4|0);
$23 = +HEAPF32[$22>>2];
$24 = $5 * $23;
$25 = $24 * 0.5;
$26 = $$0 + $25;
$$1 = $26;
}
}
$27 = ((($0)) + 13|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28<<24>>24)==(0);
$30 = $$1 < 1.0;
$31 = $30 ? $$1 : 1.0;
$32 = $29 ? $31 : $$1;
return (+$32);
}
function _PhysicsComp_MoveNormal($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
$3 = $3|0;
$4 = +$4;
$5 = +$5;
var $$byval_copy1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$$byval_copy1 = sp;
;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;
_PhysicsComp_MoveHor($0,$$byval_copy1,$2);
;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0;
_PhysicsComp_Move($0,$$byval_copy1,$4,$5);
STACKTOP = sp;return;
}
function _PhysicsComp_MoveFlying($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
$3 = $3|0;
$4 = +$4;
$5 = +$5;
var $$0 = 0.0, $$byval_copy1 = 0, $$old1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0.0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$$byval_copy1 = sp;
$6 = ((($0)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($0)) + 24|0);
$9 = HEAP32[$8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;
_PhysicsComp_MoveHor($0,$$byval_copy1,$2);
$10 = ((($7)) + 36|0);
$11 = +HEAPF32[$10>>2];
$12 = $11 * $11;
$13 = ((($7)) + 44|0);
$14 = +HEAPF32[$13>>2];
$15 = $14 * $14;
$16 = $12 + $15;
$17 = (+_Math_SqrtF($16));
$18 = +HEAPF32[$1>>2];
$19 = $18 != 0.0;
if ($19) {
$$old1 = $17 > 0.0010000000474974513;
if ($$old1) {
label = 4;
} else {
$$0 = $5;
}
} else {
$20 = ((($1)) + 8|0);
$21 = +HEAPF32[$20>>2];
$22 = $21 != 0.0;
$23 = $17 > 0.0010000000474974513;
$or$cond = $23 & $22;
if ($or$cond) {
label = 4;
} else {
$$0 = $5;
}
}
if ((label|0) == 4) {
$24 = ((($7)) + 40|0);
HEAPF32[$24>>2] = 0.0;
$25 = ((($9)) + 36|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26<<24>>24)==(0);
if ($27) {
$28 = ((($0)) + 2|0);
$29 = HEAP8[$28>>0]|0;
$30 = ($29<<24>>24)==(0);
if (!($30)) {
label = 6;
}
} else {
label = 6;
}
if ((label|0) == 6) {
$31 = $17 + 0.0;
HEAPF32[$24>>2] = $31;
}
$32 = ((($9)) + 37|0);
$33 = HEAP8[$32>>0]|0;
$34 = ($33<<24>>24)==(0);
if ($34) {
$$0 = 1.0;
} else {
$35 = +HEAPF32[$24>>2];
$36 = $35 - $17;
HEAPF32[$24>>2] = $36;
$$0 = 1.0;
}
}
;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0;
_PhysicsComp_Move($0,$$byval_copy1,$4,$$0);
STACKTOP = sp;return;
}
function _PhysicsComp_OnIce($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
$2 = ((($0)) + 4|0);
$3 = +HEAPF32[$2>>2];
$4 = (_Math_Floor($3)|0);
$5 = ((($0)) + 8|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 + -0.0099999997764825821;
$8 = (_Math_Floor($7)|0);
$9 = ((($0)) + 12|0);
$10 = +HEAPF32[$9>>2];
$11 = (_Math_Floor($10)|0);
$12 = (_World_GetPhysicsBlock($4,$8,$11)|0);
$13 = $12&65535;
$14 = (578820 + ($13)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(3);
if ($16) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
_Entity_GetBounds($0,$1);
$17 = ((($1)) + 4|0);
$18 = +HEAPF32[$17>>2];
$19 = $18 + -0.0099999997764825821;
HEAPF32[$17>>2] = $19;
$20 = ((($1)) + 16|0);
HEAPF32[$20>>2] = $19;
$21 = (_Entity_TouchesAny($1,11)|0);
$$0 = $21;
STACKTOP = sp;return ($$0|0);
}
function _Vec3_Mul3_211($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 * $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 * $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 * $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _PhysicsComp_TouchesSlipperyIce($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (578820 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(4);
$5 = $4&1;
return ($5|0);
}
function _PhysicsComp_MoveHor($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $$0 = 0.0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = $3 * $3;
$5 = ((($1)) + 8|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 * $6;
$8 = $4 + $7;
$9 = (+_Math_SqrtF($8));
$10 = $9 < 9.9999997473787516E-6;
if ($10) {
return;
}
$11 = $9 < 1.0;
$$0 = $11 ? 1.0 : $9;
$12 = $2 / $$0;
$13 = ((($0)) + 8|0);
$14 = HEAP32[$13>>2]|0;
_Vec3_Mul1($1,$1,$12);
$15 = ((($14)) + 36|0);
_Vec3_Add_191($15,$15,$1);
return;
}
function _PhysicsComp_Move($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
$3 = +$3;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 8|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 36|0);
$7 = ((($5)) + 40|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 * $3;
HEAPF32[$7>>2] = $9;
$10 = ((($0)) + 24|0);
$11 = HEAP32[$10>>2]|0;
$12 = ((($11)) + 34|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(0);
if ($14) {
$15 = ((($0)) + 28|0);
$16 = HEAP32[$15>>2]|0;
_Collisions_MoveAndWallSlide($16);
}
$17 = ((($5)) + 4|0);
_Vec3_Add_191($17,$17,$6);
$18 = +HEAPF32[$7>>2];
$19 = $18 / $3;
HEAPF32[$7>>2] = $19;
_Vec3_Mul3_211($6,$6,$1);
$20 = +HEAPF32[$7>>2];
$21 = $20 - $2;
HEAPF32[$7>>2] = $21;
return;
}
function _Vec3_Mul1($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0.0, $11 = 0.0, $12 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = $3 * $2;
HEAPF32[$0>>2] = $4;
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 * $2;
$8 = ((($0)) + 4|0);
HEAPF32[$8>>2] = $7;
$9 = ((($1)) + 8|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 * $2;
$12 = ((($0)) + 8|0);
HEAPF32[$12>>2] = $11;
return;
}
function _PhysicsComp_LowestModifier($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$03749 = 0, $$03841 = 0, $$039$lcssa = 0.0, $$03948 = 0.0, $$043 = 0, $$1$lcssa = 0.0, $$142 = 0.0, $$2$ = 0.0, $$2$lcssa = 0.0, $$240 = 0.0, $$3 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $56 = 0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0;
var $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$3 = sp + 52|0;
$4 = sp + 40|0;
$5 = sp + 16|0;
$6 = sp;
_IVec3_Floor($3,$1);
$7 = ((($1)) + 12|0);
_IVec3_Floor($4,$7);
$8 = HEAP32[$3>>2]|0;
$9 = ($8|0)>(0);
$10 = $9 ? $8 : 0;
HEAP32[$3>>2] = $10;
$11 = HEAP32[$4>>2]|0;
$12 = HEAP32[(1407476)>>2]|0;
$13 = ($11|0)<($12|0);
$14 = $13 ? $11 : $12;
HEAP32[$4>>2] = $14;
$15 = ((($3)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)>(0);
$18 = $17 ? $16 : 0;
HEAP32[$15>>2] = $18;
$19 = ((($4)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$21 = HEAP32[(1407480)>>2]|0;
$22 = ($20|0)<($21|0);
$23 = $22 ? $20 : $21;
HEAP32[$19>>2] = $23;
$24 = ((($3)) + 8|0);
$25 = HEAP32[$24>>2]|0;
$26 = ($25|0)>(0);
$27 = $26 ? $25 : 0;
HEAP32[$24>>2] = $27;
$28 = ((($4)) + 8|0);
$29 = HEAP32[$28>>2]|0;
$30 = HEAP32[(1407484)>>2]|0;
$31 = ($29|0)<($30|0);
$32 = $31 ? $29 : $30;
HEAP32[$28>>2] = $32;
$33 = HEAP32[$19>>2]|0;
$34 = ($18|0)>($33|0);
if ($34) {
$$039$lcssa = 1.0E+9;
STACKTOP = sp;return (+$$039$lcssa);
}
$35 = ((($6)) + 4|0);
$36 = ((($6)) + 8|0);
$37 = ($2<<24>>24)!=(0);
$38 = ((($5)) + 12|0);
$$03749 = $18;$$03948 = 1.0E+9;
while(1) {
$39 = (+($$03749|0));
HEAPF32[$35>>2] = $39;
$40 = HEAP32[$24>>2]|0;
$41 = HEAP32[$28>>2]|0;
$42 = ($40|0)>($41|0);
if ($42) {
$$1$lcssa = $$03948;
} else {
$$043 = $40;$$142 = $$03948;
while(1) {
$43 = (+($$043|0));
HEAPF32[$36>>2] = $43;
$44 = HEAP32[$3>>2]|0;
$45 = HEAP32[$4>>2]|0;
$46 = ($44|0)>($45|0);
if ($46) {
$$2$lcssa = $$142;
} else {
$$03841 = $44;$$240 = $$142;
while(1) {
$47 = (+($$03841|0));
HEAPF32[$6>>2] = $47;
$48 = (_World_GetBlock_201($$03841,$$03749,$$043)|0);
$49 = $48&65535;
$50 = ($48<<16>>16)==(0);
if ($50) {
$$3 = $$240;
} else {
$51 = (578052 + ($49)|0);
$52 = HEAP8[$51>>0]|0;
$53 = ($52<<24>>24)!=(2);
$or$cond = $37 | $53;
if ($or$cond) {
$54 = (588036 + (($49*12)|0)|0);
_Vec3_Add_191($5,$6,$54);
$55 = (597252 + (($49*12)|0)|0);
_Vec3_Add_191($38,$6,$55);
$56 = (_AABB_Intersects($5,$1)|0);
$57 = ($56<<24>>24)==(0);
if ($57) {
$$3 = $$240;
} else {
$58 = (579588 + ($49<<2)|0);
$59 = +HEAPF32[$58>>2];
$60 = $$240 < $59;
$$2$ = $60 ? $$240 : $59;
$61 = (578820 + ($49)|0);
$62 = HEAP8[$61>>0]|0;
$63 = ($62<<24>>24)==(1);
if ($63) {
HEAP8[$0>>0] = 1;
$$3 = $$2$;
} else {
$$3 = $$2$;
}
}
} else {
$$3 = $$240;
}
}
$64 = (($$03841) + 1)|0;
$65 = HEAP32[$4>>2]|0;
$66 = ($$03841|0)<($65|0);
if ($66) {
$$03841 = $64;$$240 = $$3;
} else {
$$2$lcssa = $$3;
break;
}
}
}
$67 = (($$043) + 1)|0;
$68 = HEAP32[$28>>2]|0;
$69 = ($$043|0)<($68|0);
if ($69) {
$$043 = $67;$$142 = $$2$lcssa;
} else {
$$1$lcssa = $$2$lcssa;
break;
}
}
}
$70 = (($$03749) + 1)|0;
$71 = HEAP32[$19>>2]|0;
$72 = ($$03749|0)<($71|0);
if ($72) {
$$03749 = $70;$$03948 = $$1$lcssa;
} else {
$$039$lcssa = $$1$lcssa;
break;
}
}
STACKTOP = sp;return (+$$039$lcssa);
}
function _PhysicsComp_CalcMaxHeight($0) {
$0 = +$0;
var $1 = 0.0, $10 = 0, $11 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0;
$2 = $1 * 0.247483075;
$3 = $2 + 0.98993229999999998;
$4 = (+_Math_Log($3));
$5 = $4 * 49.498316449999997;
$6 = (~~(($5)));
$7 = (+_PhysicsComp_YPosAt($6,$0));
$8 = (($6) + 1)|0;
$9 = (+_PhysicsComp_YPosAt($8,$0));
$10 = $7 > $9;
$11 = $10 ? $7 : $9;
return (+$11);
}
function _PhysicsComp_YPosAt($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (+($0|0));
$3 = $2 * -0.020202700000000001;
$4 = (+_Math_Exp($3));
$5 = $1 * 49.0;
$6 = -196.0 - $5;
$7 = $6;
$8 = $4 * $7;
$9 = $0 << 2;
$10 = (+($9|0));
$11 = $8 - $10;
$12 = $1 * 50.0;
$13 = $12;
$14 = $11 + $13;
$15 = $14 + 196.0;
return (+$15);
}
function _PhysicsComp_CalcJumpVelocity($0) {
$0 = +$0;
var $$0 = 0.0, $$010 = 0.0, $$1 = 0.0, $$2 = 0.0, $$311 = 0.0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 == 0.0;
if ($1) {
$$010 = 0.0;
return (+$$010);
}
$2 = !($0 >= 256.0);
$$0 = $2 ? 0.0 : 10.0;
$3 = !($0 >= 512.0);
$$1 = $3 ? $$0 : 16.5;
$4 = !($0 >= 768.0);
$$2 = $4 ? $$1 : 22.5;
$5 = (+_PhysicsComp_CalcMaxHeight($$2));
$6 = $0;
$7 = !($5 <= $6);
if ($7) {
$$010 = $$2;
return (+$$010);
}
$$311 = $$2;
while(1) {
$8 = $$311 + 0.0010000000474974513;
$9 = (+_PhysicsComp_CalcMaxHeight($8));
$10 = !($9 <= $6);
if ($10) {
$$010 = $8;
break;
} else {
$$311 = $8;
}
}
return (+$$010);
}
function _PhysicsComp_DoEntityPush($0) {
$0 = $0|0;
var $$032 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0;
var $27 = 0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, $or$cond31 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($1)) + 4|0);
HEAPF32[$2>>2] = 0.0;
$3 = ((($0)) + 8|0);
$4 = ((($0)) + 96|0);
$5 = ((($0)) + 4|0);
$6 = ((($0)) + 12|0);
$7 = ((($1)) + 8|0);
$8 = ((($0)) + 36|0);
$$032 = 0;
while(1) {
$9 = (1241124 + ($$032<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
$12 = ($10|0)==($0|0);
$or$cond31 = $11 | $12;
if (!($or$cond31)) {
$13 = ((($10)) + 48|0);
$14 = HEAP32[$13>>2]|0;
$15 = ((($14)) + 47|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(0);
if (!($17)) {
$18 = +HEAPF32[$3>>2];
$19 = ((($10)) + 8|0);
$20 = +HEAPF32[$19>>2];
$21 = ((($10)) + 96|0);
$22 = +HEAPF32[$21>>2];
$23 = $20 + $22;
$24 = !($18 <= $23);
if (!($24)) {
$25 = +HEAPF32[$4>>2];
$26 = $18 + $25;
$27 = !($20 <= $26);
if (!($27)) {
$28 = ((($10)) + 4|0);
$29 = +HEAPF32[$28>>2];
$30 = +HEAPF32[$5>>2];
$31 = $29 - $30;
HEAPF32[$1>>2] = $31;
$32 = ((($10)) + 12|0);
$33 = +HEAPF32[$32>>2];
$34 = +HEAPF32[$6>>2];
$35 = $33 - $34;
HEAPF32[$7>>2] = $35;
$36 = $31 * $31;
$37 = $35 * $35;
$38 = $36 + $37;
$39 = $38 < 0.0020000000949949026;
$40 = $38 > 1.0;
$or$cond = $39 | $40;
if (!($or$cond)) {
$41 = 1.0 - $38;
$42 = $41 * 0.03125;
_Vec3_Normalize($1,$1);
_Vec3_Mul1($1,$1,$42);
_Vec3_Sub($8,$8,$1);
}
}
}
}
}
$43 = (($$032) + 1)|0;
$exitcond = ($43|0)==(256);
if ($exitcond) {
break;
} else {
$$032 = $43;
}
}
STACKTOP = sp;return;
}
function _Vec3_Sub($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 - $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 - $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 - $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _SoundComp_Tick($0) {
$0 = $0|0;
var $$byval_copy = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy = sp + 12|0;
$1 = sp;
;HEAP32[$1>>2]=HEAP32[(1242844)>>2]|0;HEAP32[$1+4>>2]=HEAP32[(1242844)+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[(1242844)+8>>2]|0;
_SoundComp_GetSound();
$2 = HEAP8[1408221]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
_Vec3_BigPos($1);
}
$4 = HEAP8[(1242263)>>0]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
STACKTOP = sp;return;
}
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
$6 = (_SoundComp_ShouldPlay($$byval_copy)|0);
$7 = ($6<<24>>24)==(0);
$8 = ($0<<24>>24)!=(0);
$or$cond = $8 & $7;
if ($or$cond) {
STACKTOP = sp;return;
}
;HEAP32[11436>>2]=HEAP32[$1>>2]|0;HEAP32[11436+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[11436+8>>2]=HEAP32[$1+8>>2]|0;
STACKTOP = sp;return;
}
function _SoundComp_GetSound() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$0 = sp + 24|0;
$1 = sp + 12|0;
$2 = sp;
_Entity_GetBounds(1242152,$0);
HEAP8[1408222] = 0;
HEAP8[1408221] = 0;
(_Entity_TouchesAny($0,12)|0);
$3 = HEAP8[1408222]|0;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
STACKTOP = sp;return;
}
;HEAP32[$1>>2]=HEAP32[(1242844)>>2]|0;HEAP32[$1+4>>2]=HEAP32[(1242844)+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[(1242844)+8>>2]|0;
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 + -0.0099999997764825821;
HEAPF32[$5>>2] = $7;
_IVec3_Floor($2,$1);
$8 = HEAP32[$2>>2]|0;
$9 = ((($2)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($2)) + 8|0);
$12 = HEAP32[$11>>2]|0;
$13 = (_World_SafeGetBlock($8,$10,$12)|0);
$14 = HEAP32[$9>>2]|0;
$15 = (+($14|0));
$16 = $13&65535;
$17 = (((597252 + (($16*12)|0)|0)) + 4|0);
$18 = +HEAPF32[$17>>2];
$19 = $18 + $15;
$20 = (584964 + ($16)|0);
$21 = HEAP8[$20>>0]|0;
$22 = +HEAPF32[$5>>2];
$23 = !($19 >= $22);
if (!($23)) {
$24 = (578052 + ($16)|0);
$25 = HEAP8[$24>>0]|0;
$26 = ($25<<24>>24)!=(2);
$27 = ($21<<24>>24)==(0);
$or$cond = $27 | $26;
if (!($or$cond)) {
HEAP8[1408221] = 1;
HEAP8[1408222] = $21;
STACKTOP = sp;return;
}
}
$28 = HEAP32[$5>>2]|0;
$29 = ((($0)) + 4|0);
HEAP32[$29>>2] = $28;
$30 = ((($0)) + 16|0);
HEAP32[$30>>2] = $28;
(_Entity_TouchesAny($0,13)|0);
STACKTOP = sp;return;
}
function _Vec3_BigPos($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[$0>>2]=HEAP32[11784>>2]|0;HEAP32[$0+4>>2]=HEAP32[11784+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[11784+8>>2]|0;
return;
}
function _SoundComp_ShouldPlay($0) {
$0 = $0|0;
var $$0 = 0.0, $$0$in = 0.0, $$012 = 0.0, $$012$in = 0.0, $$013 = 0, $$013$in = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0.0, $20 = 0, $21 = 0;
var $3 = 0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Vec3_Sub($1,11436,$0);
$2 = +HEAPF32[(1242360)>>2];
$3 = $2 < 0.99900001287460327;
if ($3) {
$4 = (+_Vec3_LengthSquared($1));
$5 = $4 > 3.0625;
$$013$in = $5;
$$013 = $$013$in&1;
STACKTOP = sp;return ($$013|0);
}
$6 = HEAP32[(1230632)>>2]|0;
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
$9 = +HEAPF32[(1242368)>>2];
$10 = $9;
if ($8) {
$15 = (+_Math_Sin($10));
$16 = +HEAPF32[(1242372)>>2];
$17 = $16;
$18 = (+_Math_Sin($17));
$$0$in = $18;$$012$in = $15;
} else {
$11 = (+_Math_Cos($10));
$12 = +HEAPF32[(1242372)>>2];
$13 = $12;
$14 = (+_Math_Cos($13));
$$0$in = $14;$$012$in = $11;
}
$$0 = $$0$in;
$$012 = $$012$in;
$19 = (_Math_Sign($$012)|0);
$20 = (_Math_Sign($$0)|0);
$21 = ($19|0)!=($20|0);
$$013$in = $21;
$$013 = $$013$in&1;
STACKTOP = sp;return ($$013|0);
}
function _Vec3_LengthSquared($0) {
$0 = $0|0;
var $1 = 0.0, $10 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[$0>>2];
$2 = $1 * $1;
$3 = ((($0)) + 4|0);
$4 = +HEAPF32[$3>>2];
$5 = $4 * $4;
$6 = $2 + $5;
$7 = ((($0)) + 8|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 * $8;
$10 = $6 + $9;
return (+$10);
}
function _Sounds_CheckNonSolid($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (584964 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
$5 = (578052 + ($1)|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(2);
if (!($7)) {
HEAP8[1408222] = $3;
}
}
$8 = (583428 + ($1)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(4);
if ($10) {
return 0;
}
HEAP8[1408221] = 1;
return 0;
}
function _Sounds_CheckSolid($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (584964 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
HEAP8[1408222] = $3;
}
$5 = (583428 + ($1)|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(4);
if ($7) {
return 0;
}
HEAP8[1408221] = 1;
return 0;
}
function _EnvRenderer_Init() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
(_Options_UNSAFE_Get(22963,$0)|0);
$1 = (_EnvRenderer_CalcFlags($0)|0);
$2 = ($1|0)==(-1);
$spec$store$select = $2 ? 0 : $1;
$3 = $spec$store$select & 2;
$4 = $3&255;
HEAP8[1408224] = $4;
$5 = $spec$store$select & 1;
$6 = $5&255;
HEAP8[1408223] = $6;
_Event_Register((1250816),0,6);
_Event_Register((1250556),0,279);
_Event_Register(1250296,0,280);
_Event_Register(1251076,0,281);
_Event_Register((1254456),0,64);
_Event_Register((1251856),0,282);
_Event_Register((1252116),0,283);
$7 = HEAP32[315052]|0;
_Game_SetViewDistance($7);
STACKTOP = sp;return;
}
function _EnvRenderer_Free() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister((1250816),0,6);
_Event_Unregister((1250556),0,279);
_Event_Unregister(1250296,0,280);
_Event_Unregister(1251076,0,281);
_Event_Unregister((1254456),0,64);
_Event_Unregister((1251856),0,282);
_Event_Unregister((1252116),0,283);
_OnContextLost_224(0);
$0 = HEAP32[312229]|0;
_Mem_Free($0);
HEAP32[312229] = 0;
_Gfx_DeleteTexture(1248980);
_Gfx_DeleteTexture(1248984);
_Gfx_DeleteTexture(1248988);
_Gfx_DeleteTexture(1248992);
return;
}
function _EnvRenderer_Reset() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
_Gfx_SetFog(0);
_DeleteVbs();
$1 = HEAP32[312229]|0;
_Mem_Free($1);
HEAP32[312229] = 0;
_IVec3_MaxValue($0);
;HEAP32[1248968>>2]=HEAP32[$0>>2]|0;HEAP32[1248968+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[1248968+8>>2]=HEAP32[$0+8>>2]|0;
STACKTOP = sp;return;
}
function _EnvRenderer_OnNewMapLoaded() {
var label = 0, sp = 0;
sp = STACKTOP;
_OnContextRecreated(0);
return;
}
function _OnContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408223]|0;
$2 = ($1<<24>>24)==(0);
$3 = $2&1;
_Gfx_SetFog($3);
_UpdateAll();
return;
}
function _UpdateAll() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_UpdateMapSides();
_UpdateMapEdges();
_UpdateClouds();
_UpdateSky();
_UpdateSkybox();
_EnvRenderer_UpdateFog();
_Gfx_DeleteVb(1248920);
$0 = HEAP8[(1260360)>>0]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
return;
}
$2 = (_Gfx_CreateDynamicVb(1,648)|0);
HEAP32[312230] = $2;
_UpdateBorderTextures();
return;
}
function _UpdateMapSides() {
var $$0 = 0, $$073 = 0, $$sroa$0$0$$sroa_idx52$1 = 0, $$sroa$0$0$$sroa_idx52$2 = 0, $$sroa$0$0$$sroa_idx52$3 = 0, $$sroa$0$0$copyload53 = 0, $$sroa$0$0$copyload53$1 = 0, $$sroa$0$0$copyload53$2 = 0, $$sroa$0$0$copyload53$3 = 0, $$sroa$10$0$$sroa_idx65 = 0, $$sroa$10$0$$sroa_idx65$1 = 0, $$sroa$10$0$$sroa_idx65$2 = 0, $$sroa$10$0$$sroa_idx65$3 = 0, $$sroa$10$0$$sroa_idx66 = 0, $$sroa$10$0$$sroa_idx66$1 = 0, $$sroa$10$0$$sroa_idx66$2 = 0, $$sroa$10$0$$sroa_idx66$3 = 0, $$sroa$10$0$copyload = 0, $$sroa$10$0$copyload$1 = 0, $$sroa$10$0$copyload$2 = 0;
var $$sroa$10$0$copyload$3 = 0, $$sroa$10$0$copyload67 = 0, $$sroa$10$0$copyload67$1 = 0, $$sroa$10$0$copyload67$2 = 0, $$sroa$10$0$copyload67$3 = 0, $$sroa$6$0$$sroa_idx56 = 0, $$sroa$6$0$$sroa_idx56$1 = 0, $$sroa$6$0$$sroa_idx56$2 = 0, $$sroa$6$0$$sroa_idx56$3 = 0, $$sroa$6$0$copyload57 = 0, $$sroa$6$0$copyload57$1 = 0, $$sroa$6$0$copyload57$2 = 0, $$sroa$6$0$copyload57$3 = 0, $$sroa$8$0$$sroa_idx60 = 0, $$sroa$8$0$$sroa_idx60$1 = 0, $$sroa$8$0$$sroa_idx60$2 = 0, $$sroa$8$0$$sroa_idx60$3 = 0, $$sroa$8$0$$sroa_idx61 = 0, $$sroa$8$0$$sroa_idx61$1 = 0, $$sroa$8$0$$sroa_idx61$2 = 0;
var $$sroa$8$0$$sroa_idx61$3 = 0, $$sroa$8$0$copyload = 0, $$sroa$8$0$copyload$1 = 0, $$sroa$8$0$copyload$2 = 0, $$sroa$8$0$copyload$3 = 0, $$sroa$8$0$copyload62 = 0, $$sroa$8$0$copyload62$1 = 0, $$sroa$8$0$copyload62$2 = 0, $$sroa$8$0$copyload62$3 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0;
var $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $or$cond = 0, $spec$select = 0, $spec$select75 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 98384|0;
$0 = sp + 98304|0;
$1 = sp;
$2 = sp + 98368|0;
_Gfx_DeleteVb(1248960);
$3 = HEAP32[351863]|0;
$4 = ($3|0)!=(0|0);
$5 = HEAP8[(1260360)>>0]|0;
$6 = ($5<<24>>24)==(0);
$or$cond = $4 & $6;
if (!($or$cond)) {
STACKTOP = sp;return;
}
$7 = HEAP16[(1407514)>>1]|0;
$8 = $7&65535;
$9 = (583428 + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(4);
if ($11) {
STACKTOP = sp;return;
}
_CalcBorderRects($0);
HEAP32[312241] = 0;
$$sroa$8$0$$sroa_idx60 = ((($0)) + 8|0);
$$sroa$8$0$copyload = HEAP32[$$sroa$8$0$$sroa_idx60>>2]|0;
$$sroa$10$0$$sroa_idx65 = ((($0)) + 12|0);
$$sroa$10$0$copyload = HEAP32[$$sroa$10$0$$sroa_idx65>>2]|0;
$12 = (_CalcNumVertices($$sroa$8$0$copyload,$$sroa$10$0$copyload)|0);
$13 = HEAP32[312241]|0;
$14 = (($13) + ($12))|0;
HEAP32[312241] = $14;
$$sroa$8$0$$sroa_idx60$1 = ((($0)) + 24|0);
$$sroa$8$0$copyload$1 = HEAP32[$$sroa$8$0$$sroa_idx60$1>>2]|0;
$$sroa$10$0$$sroa_idx65$1 = ((($0)) + 28|0);
$$sroa$10$0$copyload$1 = HEAP32[$$sroa$10$0$$sroa_idx65$1>>2]|0;
$15 = (_CalcNumVertices($$sroa$8$0$copyload$1,$$sroa$10$0$copyload$1)|0);
$16 = HEAP32[312241]|0;
$17 = (($16) + ($15))|0;
HEAP32[312241] = $17;
$$sroa$8$0$$sroa_idx60$2 = ((($0)) + 40|0);
$$sroa$8$0$copyload$2 = HEAP32[$$sroa$8$0$$sroa_idx60$2>>2]|0;
$$sroa$10$0$$sroa_idx65$2 = ((($0)) + 44|0);
$$sroa$10$0$copyload$2 = HEAP32[$$sroa$10$0$$sroa_idx65$2>>2]|0;
$18 = (_CalcNumVertices($$sroa$8$0$copyload$2,$$sroa$10$0$copyload$2)|0);
$19 = HEAP32[312241]|0;
$20 = (($19) + ($18))|0;
HEAP32[312241] = $20;
$$sroa$8$0$$sroa_idx60$3 = ((($0)) + 56|0);
$$sroa$8$0$copyload$3 = HEAP32[$$sroa$8$0$$sroa_idx60$3>>2]|0;
$$sroa$10$0$$sroa_idx65$3 = ((($0)) + 60|0);
$$sroa$10$0$copyload$3 = HEAP32[$$sroa$10$0$$sroa_idx65$3>>2]|0;
$21 = (_CalcNumVertices($$sroa$8$0$copyload$3,$$sroa$10$0$copyload$3)|0);
$22 = HEAP32[312241]|0;
$23 = (($22) + ($21))|0;
HEAP32[312241] = $23;
$24 = HEAP32[(1407516)>>2]|0;
$25 = HEAP32[(1407520)>>2]|0;
$26 = (($25) + ($24))|0;
$27 = HEAP32[(1407464)>>2]|0;
$28 = HEAP32[(1407472)>>2]|0;
$29 = (_CalcNumVertices($27,$28)|0);
$30 = HEAP32[312241]|0;
$31 = (($30) + ($29))|0;
HEAP32[312241] = $31;
$32 = HEAP32[(1407464)>>2]|0;
$33 = (_Math_AbsI($26)|0);
$34 = (_CalcNumVertices($32,$33)|0);
$35 = $34 << 1;
$36 = HEAP32[312241]|0;
$37 = (($36) + ($35))|0;
HEAP32[312241] = $37;
$38 = HEAP32[(1407472)>>2]|0;
$39 = (_Math_AbsI($26)|0);
$40 = (_CalcNumVertices($38,$39)|0);
$41 = $40 << 1;
$42 = HEAP32[312241]|0;
$43 = (($42) + ($41))|0;
HEAP32[312241] = $43;
$44 = ($43|0)>(4096);
if ($44) {
$45 = (_Mem_Alloc($43,24,22908)|0);
$$0 = $45;
} else {
$$0 = $1;
}
HEAP32[$2>>2] = $$0;
$46 = (571140 + ($8)|0);
$47 = HEAP8[$46>>0]|0;
$48 = ($47<<24>>24)==(0);
$49 = HEAP32[(1407588)>>2]|0;
$50 = $48 ? $49 : -1;
$51 = (585732 + ($8)|0);
$52 = HEAP8[$51>>0]|0;
$53 = ($52<<24>>24)==(0);
if ($53) {
$$073 = $50;
} else {
$54 = (571908 + ($8<<2)|0);
$55 = HEAP32[$54>>2]|0;
$56 = (_PackedCol_Tint($50,$55)|0);
$$073 = $56;
}
$57 = (+($26|0));
$58 = (((606468 + (($8*12)|0)|0)) + 4|0);
$59 = (((588036 + (($8*12)|0)|0)) + 4|0);
$$sroa$0$0$copyload53 = HEAP32[$0>>2]|0;
$$sroa$6$0$$sroa_idx56 = ((($0)) + 4|0);
$$sroa$6$0$copyload57 = HEAP32[$$sroa$6$0$$sroa_idx56>>2]|0;
$$sroa$8$0$$sroa_idx61 = ((($0)) + 8|0);
$$sroa$8$0$copyload62 = HEAP32[$$sroa$8$0$$sroa_idx61>>2]|0;
$$sroa$10$0$$sroa_idx66 = ((($0)) + 12|0);
$$sroa$10$0$copyload67 = HEAP32[$$sroa$10$0$$sroa_idx66>>2]|0;
$60 = (($$sroa$8$0$copyload62) + ($$sroa$0$0$copyload53))|0;
$61 = (($$sroa$10$0$copyload67) + ($$sroa$6$0$copyload57))|0;
$62 = +HEAPF32[$58>>2];
$63 = +HEAPF32[$59>>2];
$64 = $62 - $63;
_DrawBorderY($$sroa$0$0$copyload53,$$sroa$6$0$copyload57,$60,$61,$57,$$073,0.0,$64,$2);
$$sroa$0$0$$sroa_idx52$1 = ((($0)) + 16|0);
$$sroa$0$0$copyload53$1 = HEAP32[$$sroa$0$0$$sroa_idx52$1>>2]|0;
$$sroa$6$0$$sroa_idx56$1 = ((($0)) + 20|0);
$$sroa$6$0$copyload57$1 = HEAP32[$$sroa$6$0$$sroa_idx56$1>>2]|0;
$$sroa$8$0$$sroa_idx61$1 = ((($0)) + 24|0);
$$sroa$8$0$copyload62$1 = HEAP32[$$sroa$8$0$$sroa_idx61$1>>2]|0;
$$sroa$10$0$$sroa_idx66$1 = ((($0)) + 28|0);
$$sroa$10$0$copyload67$1 = HEAP32[$$sroa$10$0$$sroa_idx66$1>>2]|0;
$65 = (($$sroa$8$0$copyload62$1) + ($$sroa$0$0$copyload53$1))|0;
$66 = (($$sroa$10$0$copyload67$1) + ($$sroa$6$0$copyload57$1))|0;
$67 = +HEAPF32[$58>>2];
$68 = +HEAPF32[$59>>2];
$69 = $67 - $68;
_DrawBorderY($$sroa$0$0$copyload53$1,$$sroa$6$0$copyload57$1,$65,$66,$57,$$073,0.0,$69,$2);
$$sroa$0$0$$sroa_idx52$2 = ((($0)) + 32|0);
$$sroa$0$0$copyload53$2 = HEAP32[$$sroa$0$0$$sroa_idx52$2>>2]|0;
$$sroa$6$0$$sroa_idx56$2 = ((($0)) + 36|0);
$$sroa$6$0$copyload57$2 = HEAP32[$$sroa$6$0$$sroa_idx56$2>>2]|0;
$$sroa$8$0$$sroa_idx61$2 = ((($0)) + 40|0);
$$sroa$8$0$copyload62$2 = HEAP32[$$sroa$8$0$$sroa_idx61$2>>2]|0;
$$sroa$10$0$$sroa_idx66$2 = ((($0)) + 44|0);
$$sroa$10$0$copyload67$2 = HEAP32[$$sroa$10$0$$sroa_idx66$2>>2]|0;
$70 = (($$sroa$8$0$copyload62$2) + ($$sroa$0$0$copyload53$2))|0;
$71 = (($$sroa$10$0$copyload67$2) + ($$sroa$6$0$copyload57$2))|0;
$72 = +HEAPF32[$58>>2];
$73 = +HEAPF32[$59>>2];
$74 = $72 - $73;
_DrawBorderY($$sroa$0$0$copyload53$2,$$sroa$6$0$copyload57$2,$70,$71,$57,$$073,0.0,$74,$2);
$$sroa$0$0$$sroa_idx52$3 = ((($0)) + 48|0);
$$sroa$0$0$copyload53$3 = HEAP32[$$sroa$0$0$$sroa_idx52$3>>2]|0;
$$sroa$6$0$$sroa_idx56$3 = ((($0)) + 52|0);
$$sroa$6$0$copyload57$3 = HEAP32[$$sroa$6$0$$sroa_idx56$3>>2]|0;
$$sroa$8$0$$sroa_idx61$3 = ((($0)) + 56|0);
$$sroa$8$0$copyload62$3 = HEAP32[$$sroa$8$0$$sroa_idx61$3>>2]|0;
$$sroa$10$0$$sroa_idx66$3 = ((($0)) + 60|0);
$$sroa$10$0$copyload67$3 = HEAP32[$$sroa$10$0$$sroa_idx66$3>>2]|0;
$75 = (($$sroa$8$0$copyload62$3) + ($$sroa$0$0$copyload53$3))|0;
$76 = (($$sroa$10$0$copyload67$3) + ($$sroa$6$0$copyload57$3))|0;
$77 = +HEAPF32[$58>>2];
$78 = +HEAPF32[$59>>2];
$79 = $77 - $78;
_DrawBorderY($$sroa$0$0$copyload53$3,$$sroa$6$0$copyload57$3,$75,$76,$57,$$073,0.0,$79,$2);
$80 = ($26|0)<(0);
$spec$select = $80 ? $26 : 0;
$spec$select75 = $80 ? 0 : $26;
$81 = HEAP32[(1407464)>>2]|0;
$82 = HEAP32[(1407472)>>2]|0;
_DrawBorderY(0,0,$81,$82,0.0,$$073,0.0,0.0,$2);
$83 = HEAP32[(1407464)>>2]|0;
_DrawBorderZ(0,$83,$spec$select,$spec$select75,$$073,$2);
$84 = HEAP32[(1407472)>>2]|0;
$85 = HEAP32[(1407464)>>2]|0;
_DrawBorderZ($84,$85,$spec$select,$spec$select75,$$073,$2);
$86 = HEAP32[(1407472)>>2]|0;
_DrawBorderX(0,$86,$spec$select,$spec$select75,$$073,$2);
$87 = HEAP32[(1407464)>>2]|0;
$88 = HEAP32[(1407472)>>2]|0;
_DrawBorderX($87,$88,$spec$select,$spec$select75,$$073,$2);
$89 = HEAP32[312241]|0;
$90 = (_Gfx_CreateVb($$0,1,$89)|0);
HEAP32[312240] = $90;
$91 = HEAP32[312241]|0;
$92 = ($91|0)>(4096);
if (!($92)) {
STACKTOP = sp;return;
}
_Mem_Free($$0);
STACKTOP = sp;return;
}
function _UpdateMapEdges() {
var $$0 = 0, $$051 = 0, $$sroa$0$0$$sroa_idx32$1 = 0, $$sroa$0$0$$sroa_idx32$2 = 0, $$sroa$0$0$$sroa_idx32$3 = 0, $$sroa$0$0$copyload33 = 0, $$sroa$0$0$copyload33$1 = 0, $$sroa$0$0$copyload33$2 = 0, $$sroa$0$0$copyload33$3 = 0, $$sroa$10$0$$sroa_idx45 = 0, $$sroa$10$0$$sroa_idx45$1 = 0, $$sroa$10$0$$sroa_idx45$2 = 0, $$sroa$10$0$$sroa_idx45$3 = 0, $$sroa$10$0$$sroa_idx46 = 0, $$sroa$10$0$$sroa_idx46$1 = 0, $$sroa$10$0$$sroa_idx46$2 = 0, $$sroa$10$0$$sroa_idx46$3 = 0, $$sroa$10$0$copyload = 0, $$sroa$10$0$copyload$1 = 0, $$sroa$10$0$copyload$2 = 0;
var $$sroa$10$0$copyload$3 = 0, $$sroa$10$0$copyload47 = 0, $$sroa$10$0$copyload47$1 = 0, $$sroa$10$0$copyload47$2 = 0, $$sroa$10$0$copyload47$3 = 0, $$sroa$6$0$$sroa_idx36 = 0, $$sroa$6$0$$sroa_idx36$1 = 0, $$sroa$6$0$$sroa_idx36$2 = 0, $$sroa$6$0$$sroa_idx36$3 = 0, $$sroa$6$0$copyload37 = 0, $$sroa$6$0$copyload37$1 = 0, $$sroa$6$0$copyload37$2 = 0, $$sroa$6$0$copyload37$3 = 0, $$sroa$8$0$$sroa_idx40 = 0, $$sroa$8$0$$sroa_idx40$1 = 0, $$sroa$8$0$$sroa_idx40$2 = 0, $$sroa$8$0$$sroa_idx40$3 = 0, $$sroa$8$0$$sroa_idx41 = 0, $$sroa$8$0$$sroa_idx41$1 = 0, $$sroa$8$0$$sroa_idx41$2 = 0;
var $$sroa$8$0$$sroa_idx41$3 = 0, $$sroa$8$0$copyload = 0, $$sroa$8$0$copyload$1 = 0, $$sroa$8$0$copyload$2 = 0, $$sroa$8$0$copyload$3 = 0, $$sroa$8$0$copyload42 = 0, $$sroa$8$0$copyload42$1 = 0, $$sroa$8$0$copyload42$2 = 0, $$sroa$8$0$copyload42$3 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0.0, $54 = 0.0;
var $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0, $68 = 0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0;
var $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 98384|0;
$0 = sp + 98304|0;
$1 = sp;
$2 = sp + 98368|0;
_Gfx_DeleteVb(1248952);
$3 = HEAP32[351863]|0;
$4 = ($3|0)!=(0|0);
$5 = HEAP8[(1260360)>>0]|0;
$6 = ($5<<24>>24)==(0);
$or$cond = $4 & $6;
if (!($or$cond)) {
STACKTOP = sp;return;
}
$7 = HEAP16[703756]|0;
$8 = $7&65535;
$9 = (583428 + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(4);
if ($11) {
STACKTOP = sp;return;
}
_CalcBorderRects($0);
HEAP32[312239] = 0;
$$sroa$8$0$$sroa_idx40 = ((($0)) + 8|0);
$$sroa$8$0$copyload = HEAP32[$$sroa$8$0$$sroa_idx40>>2]|0;
$$sroa$10$0$$sroa_idx45 = ((($0)) + 12|0);
$$sroa$10$0$copyload = HEAP32[$$sroa$10$0$$sroa_idx45>>2]|0;
$12 = (_CalcNumVertices($$sroa$8$0$copyload,$$sroa$10$0$copyload)|0);
$13 = HEAP32[312239]|0;
$14 = (($13) + ($12))|0;
HEAP32[312239] = $14;
$$sroa$8$0$$sroa_idx40$1 = ((($0)) + 24|0);
$$sroa$8$0$copyload$1 = HEAP32[$$sroa$8$0$$sroa_idx40$1>>2]|0;
$$sroa$10$0$$sroa_idx45$1 = ((($0)) + 28|0);
$$sroa$10$0$copyload$1 = HEAP32[$$sroa$10$0$$sroa_idx45$1>>2]|0;
$15 = (_CalcNumVertices($$sroa$8$0$copyload$1,$$sroa$10$0$copyload$1)|0);
$16 = HEAP32[312239]|0;
$17 = (($16) + ($15))|0;
HEAP32[312239] = $17;
$$sroa$8$0$$sroa_idx40$2 = ((($0)) + 40|0);
$$sroa$8$0$copyload$2 = HEAP32[$$sroa$8$0$$sroa_idx40$2>>2]|0;
$$sroa$10$0$$sroa_idx45$2 = ((($0)) + 44|0);
$$sroa$10$0$copyload$2 = HEAP32[$$sroa$10$0$$sroa_idx45$2>>2]|0;
$18 = (_CalcNumVertices($$sroa$8$0$copyload$2,$$sroa$10$0$copyload$2)|0);
$19 = HEAP32[312239]|0;
$20 = (($19) + ($18))|0;
HEAP32[312239] = $20;
$$sroa$8$0$$sroa_idx40$3 = ((($0)) + 56|0);
$$sroa$8$0$copyload$3 = HEAP32[$$sroa$8$0$$sroa_idx40$3>>2]|0;
$$sroa$10$0$$sroa_idx45$3 = ((($0)) + 60|0);
$$sroa$10$0$copyload$3 = HEAP32[$$sroa$10$0$$sroa_idx45$3>>2]|0;
$21 = (_CalcNumVertices($$sroa$8$0$copyload$3,$$sroa$10$0$copyload$3)|0);
$22 = HEAP32[312239]|0;
$23 = (($22) + ($21))|0;
HEAP32[312239] = $23;
$24 = ($23|0)>(4096);
if ($24) {
$25 = (_Mem_Alloc($23,24,22894)|0);
$$0 = $25;
} else {
$$0 = $1;
}
HEAP32[$2>>2] = $$0;
$26 = (571140 + ($8)|0);
$27 = HEAP8[$26>>0]|0;
$28 = ($27<<24>>24)==(0);
$29 = HEAP32[(1407572)>>2]|0;
$30 = $28 ? $29 : -1;
$31 = (585732 + ($8)|0);
$32 = HEAP8[$31>>0]|0;
$33 = ($32<<24>>24)==(0);
if ($33) {
$$051 = $30;
} else {
$34 = (571908 + ($8<<2)|0);
$35 = HEAP32[$34>>2]|0;
$36 = (_PackedCol_Tint($30,$35)|0);
$$051 = $36;
}
$37 = HEAP32[(1407516)>>2]|0;
$38 = (+($37|0));
$39 = (606468 + (($8*12)|0)|0);
$40 = (588036 + (($8*12)|0)|0);
$41 = (((606468 + (($8*12)|0)|0)) + 4|0);
$42 = (((588036 + (($8*12)|0)|0)) + 4|0);
$$sroa$0$0$copyload33 = HEAP32[$0>>2]|0;
$$sroa$6$0$$sroa_idx36 = ((($0)) + 4|0);
$$sroa$6$0$copyload37 = HEAP32[$$sroa$6$0$$sroa_idx36>>2]|0;
$$sroa$8$0$$sroa_idx41 = ((($0)) + 8|0);
$$sroa$8$0$copyload42 = HEAP32[$$sroa$8$0$$sroa_idx41>>2]|0;
$$sroa$10$0$$sroa_idx46 = ((($0)) + 12|0);
$$sroa$10$0$copyload47 = HEAP32[$$sroa$10$0$$sroa_idx46>>2]|0;
$43 = (($$sroa$8$0$copyload42) + ($$sroa$0$0$copyload33))|0;
$44 = (($$sroa$10$0$copyload47) + ($$sroa$6$0$copyload37))|0;
$45 = +HEAPF32[$39>>2];
$46 = +HEAPF32[$40>>2];
$47 = $45 - $46;
$48 = +HEAPF32[$41>>2];
$49 = +HEAPF32[$42>>2];
$50 = $48 - $49;
_DrawBorderY($$sroa$0$0$copyload33,$$sroa$6$0$copyload37,$43,$44,$38,$$051,$47,$50,$2);
$$sroa$0$0$$sroa_idx32$1 = ((($0)) + 16|0);
$$sroa$0$0$copyload33$1 = HEAP32[$$sroa$0$0$$sroa_idx32$1>>2]|0;
$$sroa$6$0$$sroa_idx36$1 = ((($0)) + 20|0);
$$sroa$6$0$copyload37$1 = HEAP32[$$sroa$6$0$$sroa_idx36$1>>2]|0;
$$sroa$8$0$$sroa_idx41$1 = ((($0)) + 24|0);
$$sroa$8$0$copyload42$1 = HEAP32[$$sroa$8$0$$sroa_idx41$1>>2]|0;
$$sroa$10$0$$sroa_idx46$1 = ((($0)) + 28|0);
$$sroa$10$0$copyload47$1 = HEAP32[$$sroa$10$0$$sroa_idx46$1>>2]|0;
$51 = (($$sroa$8$0$copyload42$1) + ($$sroa$0$0$copyload33$1))|0;
$52 = (($$sroa$10$0$copyload47$1) + ($$sroa$6$0$copyload37$1))|0;
$53 = +HEAPF32[$39>>2];
$54 = +HEAPF32[$40>>2];
$55 = $53 - $54;
$56 = +HEAPF32[$41>>2];
$57 = +HEAPF32[$42>>2];
$58 = $56 - $57;
_DrawBorderY($$sroa$0$0$copyload33$1,$$sroa$6$0$copyload37$1,$51,$52,$38,$$051,$55,$58,$2);
$$sroa$0$0$$sroa_idx32$2 = ((($0)) + 32|0);
$$sroa$0$0$copyload33$2 = HEAP32[$$sroa$0$0$$sroa_idx32$2>>2]|0;
$$sroa$6$0$$sroa_idx36$2 = ((($0)) + 36|0);
$$sroa$6$0$copyload37$2 = HEAP32[$$sroa$6$0$$sroa_idx36$2>>2]|0;
$$sroa$8$0$$sroa_idx41$2 = ((($0)) + 40|0);
$$sroa$8$0$copyload42$2 = HEAP32[$$sroa$8$0$$sroa_idx41$2>>2]|0;
$$sroa$10$0$$sroa_idx46$2 = ((($0)) + 44|0);
$$sroa$10$0$copyload47$2 = HEAP32[$$sroa$10$0$$sroa_idx46$2>>2]|0;
$59 = (($$sroa$8$0$copyload42$2) + ($$sroa$0$0$copyload33$2))|0;
$60 = (($$sroa$10$0$copyload47$2) + ($$sroa$6$0$copyload37$2))|0;
$61 = +HEAPF32[$39>>2];
$62 = +HEAPF32[$40>>2];
$63 = $61 - $62;
$64 = +HEAPF32[$41>>2];
$65 = +HEAPF32[$42>>2];
$66 = $64 - $65;
_DrawBorderY($$sroa$0$0$copyload33$2,$$sroa$6$0$copyload37$2,$59,$60,$38,$$051,$63,$66,$2);
$$sroa$0$0$$sroa_idx32$3 = ((($0)) + 48|0);
$$sroa$0$0$copyload33$3 = HEAP32[$$sroa$0$0$$sroa_idx32$3>>2]|0;
$$sroa$6$0$$sroa_idx36$3 = ((($0)) + 52|0);
$$sroa$6$0$copyload37$3 = HEAP32[$$sroa$6$0$$sroa_idx36$3>>2]|0;
$$sroa$8$0$$sroa_idx41$3 = ((($0)) + 56|0);
$$sroa$8$0$copyload42$3 = HEAP32[$$sroa$8$0$$sroa_idx41$3>>2]|0;
$$sroa$10$0$$sroa_idx46$3 = ((($0)) + 60|0);
$$sroa$10$0$copyload47$3 = HEAP32[$$sroa$10$0$$sroa_idx46$3>>2]|0;
$67 = (($$sroa$8$0$copyload42$3) + ($$sroa$0$0$copyload33$3))|0;
$68 = (($$sroa$10$0$copyload47$3) + ($$sroa$6$0$copyload37$3))|0;
$69 = +HEAPF32[$39>>2];
$70 = +HEAPF32[$40>>2];
$71 = $69 - $70;
$72 = +HEAPF32[$41>>2];
$73 = +HEAPF32[$42>>2];
$74 = $72 - $73;
_DrawBorderY($$sroa$0$0$copyload33$3,$$sroa$6$0$copyload37$3,$67,$68,$38,$$051,$71,$74,$2);
$75 = HEAP32[312239]|0;
$76 = (_Gfx_CreateVb($$0,1,$75)|0);
HEAP32[312238] = $76;
$77 = HEAP32[312239]|0;
$78 = ($77|0)>(4096);
if (!($78)) {
STACKTOP = sp;return;
}
_Mem_Free($$0);
STACKTOP = sp;return;
}
function _UpdateClouds() {
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 98304|0;
$0 = sp;
_Gfx_DeleteVb(1248944);
$1 = HEAP32[351863]|0;
$2 = ($1|0)!=(0|0);
$3 = HEAP8[(1260360)>>0]|0;
$4 = HEAP8[1408223]|0;
$5 = $4 | $3;
$6 = ($5<<24>>24)==(0);
$7 = $2 & $6;
if (!($7)) {
STACKTOP = sp;return;
}
$8 = HEAP32[315051]|0;
$9 = (+($8|0));
$10 = $9 * 1.4142135381698608;
$11 = (~~(($10)));
$12 = (0 - ($11))|0;
$13 = HEAP32[(1407464)>>2]|0;
$14 = (($13) + ($11))|0;
$15 = HEAP32[(1407472)>>2]|0;
$16 = (($15) + ($11))|0;
$17 = (($14) + ($11))|0;
$18 = (($16) + ($11))|0;
$19 = (_CalcNumVertices($17,$18)|0);
HEAP32[312237] = $19;
$20 = ($19|0)>(4096);
if ($20) {
$21 = (_Mem_Alloc($19,24,22878)|0);
$$0 = $21;
} else {
$$0 = $0;
}
$22 = HEAP32[(1407524)>>2]|0;
_DrawCloudsY($12,$12,$14,$16,$22,$$0);
$23 = HEAP32[312237]|0;
$24 = (_Gfx_CreateVb($$0,1,$23)|0);
HEAP32[312236] = $24;
$25 = HEAP32[312237]|0;
$26 = ($25|0)>(4096);
if (!($26)) {
STACKTOP = sp;return;
}
_Mem_Free($$0);
STACKTOP = sp;return;
}
function _UpdateSky() {
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 65536|0;
$0 = sp;
_Gfx_DeleteVb(1248936);
$1 = HEAP32[351863]|0;
$2 = ($1|0)!=(0|0);
$3 = HEAP8[(1260360)>>0]|0;
$4 = HEAP8[1408223]|0;
$5 = $4 | $3;
$6 = ($5<<24>>24)==(0);
$7 = $2 & $6;
if (!($7)) {
STACKTOP = sp;return;
}
$8 = HEAP32[315051]|0;
$9 = (+($8|0));
$10 = $9 * 1.4142135381698608;
$11 = (~~(($10)));
$12 = (0 - ($11))|0;
$13 = HEAP32[(1407464)>>2]|0;
$14 = (($13) + ($11))|0;
$15 = HEAP32[(1407472)>>2]|0;
$16 = (($15) + ($11))|0;
$17 = (($14) + ($11))|0;
$18 = (($16) + ($11))|0;
$19 = (_CalcNumVertices($17,$18)|0);
HEAP32[312235] = $19;
$20 = ($19|0)>(4096);
if ($20) {
$21 = (_Mem_Alloc($19,16,22865)|0);
$$0 = $21;
} else {
$$0 = $0;
}
$22 = HEAP32[(1407468)>>2]|0;
$23 = (($22) + 2)|0;
$24 = HEAP32[(1407524)>>2]|0;
$25 = ($23|0)>($24|0);
$26 = $25 ? $23 : $24;
$27 = (($26) + 6)|0;
_DrawSkyY($12,$12,$14,$16,$27,$$0);
$28 = HEAP32[312235]|0;
$29 = (_Gfx_CreateVb($$0,0,$28)|0);
HEAP32[312234] = $29;
$30 = HEAP32[312235]|0;
$31 = ($30|0)>(4096);
if (!($31)) {
STACKTOP = sp;return;
}
_Mem_Free($$0);
STACKTOP = sp;return;
}
function _UpdateSkybox() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteVb(1248932);
$0 = HEAP8[(1260360)>>0]|0;
$1 = HEAP8[1408223]|0;
$2 = $1 | $0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
return;
}
$4 = HEAP32[(1407568)>>2]|0;
HEAP32[(1372)>>2] = $4;
HEAP32[(1396)>>2] = $4;
HEAP32[(1420)>>2] = $4;
HEAP32[(1444)>>2] = $4;
HEAP32[(1468)>>2] = $4;
HEAP32[(1492)>>2] = $4;
HEAP32[(1516)>>2] = $4;
HEAP32[(1540)>>2] = $4;
HEAP32[(1564)>>2] = $4;
HEAP32[(1588)>>2] = $4;
HEAP32[(1612)>>2] = $4;
HEAP32[(1636)>>2] = $4;
HEAP32[(1660)>>2] = $4;
HEAP32[(1684)>>2] = $4;
HEAP32[(1708)>>2] = $4;
HEAP32[(1732)>>2] = $4;
HEAP32[(1756)>>2] = $4;
HEAP32[(1780)>>2] = $4;
HEAP32[(1804)>>2] = $4;
HEAP32[(1828)>>2] = $4;
HEAP32[(1852)>>2] = $4;
HEAP32[(1876)>>2] = $4;
HEAP32[(1900)>>2] = $4;
HEAP32[(1924)>>2] = $4;
$5 = (_Gfx_CreateVb(1360,1,24)|0);
HEAP32[312233] = $5;
return;
}
function _EnvRenderer_UpdateFog() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp + 4|0;
$1 = sp;
$2 = HEAP32[351863]|0;
$3 = ($2|0)==(0|0);
if ($3) {
STACKTOP = sp;return;
}
_CalcFog($0,$1);
$4 = HEAP32[$1>>2]|0;
_Gfx_ClearCol($4);
$5 = HEAP8[1408223]|0;
$6 = ($5<<24>>24)==(0);
$7 = +HEAPF32[$0>>2];
if ($6) {
_UpdateFogNormal($7,$4);
STACKTOP = sp;return;
} else {
_UpdateFogMinimal($7);
STACKTOP = sp;return;
}
}
function _UpdateBorderTextures() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP16[703756]|0;
_MakeBorderTex(1248924,$0);
$1 = HEAP16[(1407514)>>1]|0;
_MakeBorderTex(1248928,$1);
return;
}
function _MakeBorderTex($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(1260360)>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
return;
}
$4 = $1&65535;
$5 = ($4*6)|0;
$6 = (($5) + 5)|0;
$7 = (624900 + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
_Gfx_DeleteTexture($0);
$9 = (_Atlas2D_LoadTile($8)|0);
HEAP32[$0>>2] = $9;
return;
}
function _CalcFog($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0, $27 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $storemerge = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$2 = sp + 36|0;
$3 = sp + 24|0;
$4 = sp;
_IVec3_Floor($3,(1230620));
_IVec3_ToVec3($2,$3);
$5 = HEAP32[$3>>2]|0;
$6 = ((($3)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($3)) + 8|0);
$9 = HEAP32[$8>>2]|0;
$10 = (_World_SafeGetBlock($5,$7,$9)|0);
$11 = $10&65535;
$12 = (588036 + (($11*12)|0)|0);
_Vec3_Add_218($4,$2,$12);
$13 = ((($4)) + 12|0);
$14 = (597252 + (($11*12)|0)|0);
_Vec3_Add_218($13,$2,$14);
$15 = (_AABB_ContainsPoint($4,(1230620))|0);
$16 = ($15<<24>>24)==(0);
if (!($16)) {
$17 = (574980 + ($11<<2)|0);
$18 = +HEAPF32[$17>>2];
$19 = $18 != 0.0;
if ($19) {
HEAPF32[$0>>2] = $18;
$20 = (571908 + ($11<<2)|0);
$21 = HEAP32[$20>>2]|0;
$storemerge = $21;
HEAP32[$1>>2] = $storemerge;
STACKTOP = sp;return;
}
}
HEAPF32[$0>>2] = 0.0;
$22 = HEAP32[315051]|0;
$23 = (+($22|0));
$24 = (+_CalcBlendFactor($23));
$25 = HEAP32[(1407560)>>2]|0;
$26 = HEAP32[(1407556)>>2]|0;
$27 = (_PackedCol_Lerp($25,$26,$24)|0);
$storemerge = $27;
HEAP32[$1>>2] = $storemerge;
STACKTOP = sp;return;
}
function _UpdateFogMinimal($0) {
$0 = +$0;
var $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 != 0.0;
if ($1) {
$2 = - $0;
$3 = $2;
$4 = -2.99573227355399 / $3;
$5 = (~~(($4)));
$6 = HEAP32[315052]|0;
$7 = ($6|0)>($5|0);
$8 = $7 ? $5 : $6;
_Game_SetViewDistance($8);
return;
} else {
$9 = HEAP32[315052]|0;
_Game_SetViewDistance($9);
return;
}
}
function _UpdateFogNormal($0,$1) {
$0 = +$0;
$1 = $1|0;
var $10 = 0, $11 = 0.0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0 != 0.0;
do {
if ($2) {
_Gfx_SetFogMode(1);
_Gfx_SetFogDensity($0);
} else {
$3 = HEAP32[(1407544)>>2]|0;
$4 = ($3|0)==(0);
if ($4) {
_Gfx_SetFogMode(0);
$10 = HEAP32[315051]|0;
$11 = (+($10|0));
_Gfx_SetFogEnd($11);
break;
} else {
_Gfx_SetFogMode(1);
$5 = HEAP32[315051]|0;
$6 = (+($5|0));
$7 = $6 * 0.98999999999999999;
$8 = 4.60517018598809 / $7;
$9 = $8;
_Gfx_SetFogDensity($9);
break;
}
}
} while(0);
_Gfx_SetFogCol($1);
$12 = HEAP32[315052]|0;
_Game_SetViewDistance($12);
return;
}
function _Vec3_Add_218($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _CalcBlendFactor($0) {
$0 = +$0;
var $$0 = 0.0, $$1 = 0.0, $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0;
$2 = (+_Math_Log($1));
$3 = $2 * 0.25;
$4 = $3 * 0.28000000000000003;
$5 = $4 + -0.13;
$6 = $5 < 0.0;
$$0 = $6 ? 0.0 : $5;
$7 = $$0 > 1.0;
$$1 = $7 ? 1.0 : $$0;
$8 = $$1;
return (+$8);
}
function _CalcNumVertices($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408224]|0;
$3 = ($2<<24>>24)==(0);
$4 = $3 ? 2048 : 128;
$5 = (_Math_CeilDiv($0,$4)|0);
$6 = (_Math_CeilDiv($1,$4)|0);
$7 = $5 << 2;
$8 = Math_imul($7, $6)|0;
return ($8|0);
}
function _DrawSkyY($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$06672 = 0, $$06973 = 0, $$074 = 0, $$1$lcssa = 0, $$171 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, $spec$select70 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$6 = HEAP8[1408224]|0;
$7 = ($6<<24>>24)==(0);
$8 = $7 ? 2048 : 128;
$9 = HEAP32[(1407556)>>2]|0;
$10 = ($0|0)<($2|0);
if (!($10)) {
return;
}
$11 = ($1|0)<($3|0);
$12 = (+($4|0));
$$06973 = $5;$$074 = $0;
while(1) {
$13 = (($$074) + ($8))|0;
if ($11) {
$14 = ($13|0)>($2|0);
$spec$select = $14 ? $2 : $13;
$15 = (+($$074|0));
$16 = (+($spec$select|0));
$$06672 = $1;$$171 = $$06973;
while(1) {
$17 = (($$06672) + ($8))|0;
$18 = ($17|0)>($3|0);
$spec$select70 = $18 ? $3 : $17;
HEAPF32[$$171>>2] = $15;
$19 = ((($$171)) + 4|0);
HEAPF32[$19>>2] = $12;
$20 = (+($$06672|0));
$21 = ((($$171)) + 8|0);
HEAPF32[$21>>2] = $20;
$22 = ((($$171)) + 12|0);
HEAP32[$22>>2] = $9;
$23 = ((($$171)) + 16|0);
HEAPF32[$23>>2] = $15;
$24 = ((($$171)) + 20|0);
HEAPF32[$24>>2] = $12;
$25 = (+($spec$select70|0));
$26 = ((($$171)) + 24|0);
HEAPF32[$26>>2] = $25;
$27 = ((($$171)) + 28|0);
HEAP32[$27>>2] = $9;
$28 = ((($$171)) + 32|0);
HEAPF32[$28>>2] = $16;
$29 = ((($$171)) + 36|0);
HEAPF32[$29>>2] = $12;
$30 = ((($$171)) + 40|0);
HEAPF32[$30>>2] = $25;
$31 = ((($$171)) + 44|0);
HEAP32[$31>>2] = $9;
$32 = ((($$171)) + 48|0);
HEAPF32[$32>>2] = $16;
$33 = ((($$171)) + 52|0);
HEAPF32[$33>>2] = $12;
$34 = ((($$171)) + 56|0);
HEAPF32[$34>>2] = $20;
$35 = ((($$171)) + 60|0);
HEAP32[$35>>2] = $9;
$36 = ((($$171)) + 64|0);
$37 = ($17|0)<($3|0);
if ($37) {
$$06672 = $17;$$171 = $36;
} else {
$$1$lcssa = $36;
break;
}
}
} else {
$$1$lcssa = $$06973;
}
$38 = ($13|0)<($2|0);
if ($38) {
$$06973 = $$1$lcssa;$$074 = $13;
} else {
break;
}
}
return;
}
function _DrawCloudsY($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0104110 = 0, $$0107111 = 0, $$0112 = 0, $$1$lcssa = 0, $$1109 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0;
var $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, $spec$select = 0, $spec$select108 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$6 = HEAP8[1408224]|0;
$7 = ($6<<24>>24)==(0);
$8 = $7 ? 2048 : 128;
$9 = (+($4|0));
$10 = $9 + 0.10000000149011612;
$11 = HEAP32[(1407564)>>2]|0;
$12 = (0 - ($0))|0;
$13 = (_Math_CeilDiv($12,2048)|0);
$14 = (+($13|0));
$15 = ($0|0)<($2|0);
if (!($15)) {
return;
}
$16 = ($1|0)<($3|0);
$$0107111 = $5;$$0112 = $0;
while(1) {
$17 = (($$0112) + ($8))|0;
if ($16) {
$18 = ($17|0)>($2|0);
$spec$select = $18 ? $2 : $17;
$19 = (+($$0112|0));
$20 = $19 * 4.8828125E-4;
$21 = $20 + $14;
$22 = (+($spec$select|0));
$23 = $22 * 4.8828125E-4;
$24 = $23 + $14;
$$0104110 = $1;$$1109 = $$0107111;
while(1) {
$25 = (($$0104110) + ($8))|0;
$26 = ($25|0)>($3|0);
$spec$select108 = $26 ? $3 : $25;
$27 = (+($$0104110|0));
$28 = $27 * 4.8828125E-4;
$29 = $28 + $14;
$30 = (+($spec$select108|0));
$31 = $30 * 4.8828125E-4;
$32 = $31 + $14;
HEAPF32[$$1109>>2] = $19;
$33 = ((($$1109)) + 4|0);
HEAPF32[$33>>2] = $10;
$34 = ((($$1109)) + 8|0);
HEAPF32[$34>>2] = $27;
$35 = ((($$1109)) + 12|0);
HEAP32[$35>>2] = $11;
$36 = ((($$1109)) + 16|0);
HEAPF32[$36>>2] = $21;
$37 = ((($$1109)) + 20|0);
HEAPF32[$37>>2] = $29;
$38 = ((($$1109)) + 24|0);
HEAPF32[$38>>2] = $19;
$39 = ((($$1109)) + 28|0);
HEAPF32[$39>>2] = $10;
$40 = ((($$1109)) + 32|0);
HEAPF32[$40>>2] = $30;
$41 = ((($$1109)) + 36|0);
HEAP32[$41>>2] = $11;
$42 = ((($$1109)) + 40|0);
HEAPF32[$42>>2] = $21;
$43 = ((($$1109)) + 44|0);
HEAPF32[$43>>2] = $32;
$44 = ((($$1109)) + 48|0);
HEAPF32[$44>>2] = $22;
$45 = ((($$1109)) + 52|0);
HEAPF32[$45>>2] = $10;
$46 = ((($$1109)) + 56|0);
HEAPF32[$46>>2] = $30;
$47 = ((($$1109)) + 60|0);
HEAP32[$47>>2] = $11;
$48 = ((($$1109)) + 64|0);
HEAPF32[$48>>2] = $24;
$49 = ((($$1109)) + 68|0);
HEAPF32[$49>>2] = $32;
$50 = ((($$1109)) + 72|0);
HEAPF32[$50>>2] = $22;
$51 = ((($$1109)) + 76|0);
HEAPF32[$51>>2] = $10;
$52 = ((($$1109)) + 80|0);
HEAPF32[$52>>2] = $27;
$53 = ((($$1109)) + 84|0);
HEAP32[$53>>2] = $11;
$54 = ((($$1109)) + 88|0);
HEAPF32[$54>>2] = $24;
$55 = ((($$1109)) + 92|0);
HEAPF32[$55>>2] = $29;
$56 = ((($$1109)) + 96|0);
$57 = ($25|0)<($3|0);
if ($57) {
$$0104110 = $25;$$1109 = $56;
} else {
$$1$lcssa = $56;
break;
}
}
} else {
$$1$lcssa = $$0107111;
}
$58 = ($17|0)<($2|0);
if ($58) {
$$0107111 = $$1$lcssa;$$0112 = $17;
} else {
break;
}
}
return;
}
function _CalcBorderRects($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0;
var $factor = 0, $factor16 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp + 48|0;
$2 = sp + 32|0;
$3 = sp + 16|0;
$4 = sp;
$5 = HEAP32[315051]|0;
$6 = (+($5|0));
$7 = $6 * 1.4142135381698608;
$8 = (~~(($7)));
$9 = (0 - ($8))|0;
$10 = HEAP32[(1407464)>>2]|0;
$factor = $8 << 1;
$11 = (($factor) + ($10))|0;
_EnvRenderer_Rect($1,$9,$9,$11,$8);
;HEAP32[$0>>2]=HEAP32[$1>>2]|0;HEAP32[$0+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$1+12>>2]|0;
$12 = ((($0)) + 16|0);
$13 = HEAP32[(1407472)>>2]|0;
$14 = HEAP32[(1407464)>>2]|0;
$factor16 = $8 << 1;
$15 = (($14) + ($factor16))|0;
_EnvRenderer_Rect($2,$9,$13,$15,$8);
;HEAP32[$12>>2]=HEAP32[$2>>2]|0;HEAP32[$12+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$12+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$12+12>>2]=HEAP32[$2+12>>2]|0;
$16 = ((($0)) + 32|0);
$17 = HEAP32[(1407472)>>2]|0;
_EnvRenderer_Rect($3,$9,0,$8,$17);
;HEAP32[$16>>2]=HEAP32[$3>>2]|0;HEAP32[$16+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$16+8>>2]=HEAP32[$3+8>>2]|0;HEAP32[$16+12>>2]=HEAP32[$3+12>>2]|0;
$18 = ((($0)) + 48|0);
$19 = HEAP32[(1407464)>>2]|0;
$20 = HEAP32[(1407472)>>2]|0;
_EnvRenderer_Rect($4,$19,0,$8,$20);
;HEAP32[$18>>2]=HEAP32[$4>>2]|0;HEAP32[$18+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$18+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$18+12>>2]=HEAP32[$4+12>>2]|0;
STACKTOP = sp;return;
}
function _DrawBorderY($0,$1,$2,$3,$4,$5,$6,$7,$8) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = +$4;
$5 = $5|0;
$6 = +$6;
$7 = +$7;
$8 = $8|0;
var $$0101$lcssa = 0, $$0101108 = 0, $$0102106 = 0, $$0109 = 0, $$1$lcssa = 0, $$1107 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0;
var $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $9 = 0, $spec$select = 0, $spec$select105 = 0, label = 0, sp = 0;
sp = STACKTOP;
$9 = HEAP8[1408224]|0;
$10 = ($9<<24>>24)==(0);
$11 = $10 ? 2048 : 128;
$12 = HEAP32[$8>>2]|0;
$13 = $4 + $7;
$14 = ($0|0)<($2|0);
if (!($14)) {
$$0101$lcssa = $12;
HEAP32[$8>>2] = $$0101$lcssa;
return;
}
$15 = ($1|0)<($3|0);
$$0101108 = $12;$$0109 = $0;
while(1) {
$16 = (($$0109) + ($11))|0;
if ($15) {
$17 = ($16|0)>($2|0);
$spec$select = $17 ? $2 : $16;
$18 = (+($spec$select|0));
$19 = (+($$0109|0));
$20 = $18 - $19;
$21 = $19 + $6;
$22 = $18 + $6;
$$0102106 = $1;$$1107 = $$0101108;
while(1) {
$23 = (($$0102106) + ($11))|0;
$24 = ($23|0)>($3|0);
$spec$select105 = $24 ? $3 : $23;
$25 = (+($spec$select105|0));
$26 = (+($$0102106|0));
$27 = $25 - $26;
HEAPF32[$$1107>>2] = $21;
$28 = ((($$1107)) + 4|0);
HEAPF32[$28>>2] = $13;
$29 = $26 + $6;
$30 = ((($$1107)) + 8|0);
HEAPF32[$30>>2] = $29;
$31 = ((($$1107)) + 12|0);
HEAP32[$31>>2] = $5;
$32 = ((($$1107)) + 16|0);
HEAPF32[$32>>2] = 0.0;
$33 = ((($$1107)) + 20|0);
HEAPF32[$33>>2] = 0.0;
$34 = ((($$1107)) + 24|0);
HEAPF32[$34>>2] = $21;
$35 = ((($$1107)) + 28|0);
HEAPF32[$35>>2] = $13;
$36 = $25 + $6;
$37 = ((($$1107)) + 32|0);
HEAPF32[$37>>2] = $36;
$38 = ((($$1107)) + 36|0);
HEAP32[$38>>2] = $5;
$39 = ((($$1107)) + 40|0);
HEAPF32[$39>>2] = 0.0;
$40 = ((($$1107)) + 44|0);
HEAPF32[$40>>2] = $27;
$41 = ((($$1107)) + 48|0);
HEAPF32[$41>>2] = $22;
$42 = ((($$1107)) + 52|0);
HEAPF32[$42>>2] = $13;
$43 = ((($$1107)) + 56|0);
HEAPF32[$43>>2] = $36;
$44 = ((($$1107)) + 60|0);
HEAP32[$44>>2] = $5;
$45 = ((($$1107)) + 64|0);
HEAPF32[$45>>2] = $20;
$46 = ((($$1107)) + 68|0);
HEAPF32[$46>>2] = $27;
$47 = ((($$1107)) + 72|0);
HEAPF32[$47>>2] = $22;
$48 = ((($$1107)) + 76|0);
HEAPF32[$48>>2] = $13;
$49 = ((($$1107)) + 80|0);
HEAPF32[$49>>2] = $29;
$50 = ((($$1107)) + 84|0);
HEAP32[$50>>2] = $5;
$51 = ((($$1107)) + 88|0);
HEAPF32[$51>>2] = $20;
$52 = ((($$1107)) + 92|0);
HEAPF32[$52>>2] = 0.0;
$53 = ((($$1107)) + 96|0);
$54 = ($23|0)<($3|0);
if ($54) {
$$0102106 = $23;$$1107 = $53;
} else {
$$1$lcssa = $53;
break;
}
}
} else {
$$1$lcssa = $$0101108;
}
$55 = ($16|0)<($2|0);
if ($55) {
$$0101108 = $$1$lcssa;$$0109 = $16;
} else {
$$0101$lcssa = $$1$lcssa;
break;
}
}
HEAP32[$8>>2] = $$0101$lcssa;
return;
}
function _EnvRenderer_Rect($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP32[$$sroa$4$0$$sroa_idx2>>2] = $2;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0);
HEAP32[$$sroa$5$0$$sroa_idx4>>2] = $3;
$$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0);
HEAP32[$$sroa$6$0$$sroa_idx6>>2] = $4;
return;
}
function _DrawBorderZ($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0$lcssa = 0, $$05 = 0, $$0894 = 0, $$0912 = 0, $$1$lcssa = 0, $$13 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, $spec$select1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = HEAP8[1408224]|0;
$7 = ($6<<24>>24)==(0);
$8 = $7 ? 2048 : 128;
$9 = HEAP32[$5>>2]|0;
$10 = ($1|0)>(0);
if (!($10)) {
$$0$lcssa = $9;
HEAP32[$5>>2] = $$0$lcssa;
return;
}
$11 = ($2|0)<($3|0);
$12 = (+($0|0));
$$05 = $9;$$0894 = 0;
while(1) {
$13 = (($$0894) + ($8))|0;
if ($11) {
$14 = ($13|0)>($1|0);
$spec$select = $14 ? $1 : $13;
$15 = (+($spec$select|0));
$16 = (+($$0894|0));
$17 = $15 - $16;
$$0912 = $2;$$13 = $$05;
while(1) {
$18 = (($$0912) + ($8))|0;
$19 = ($18|0)>($3|0);
$spec$select1 = $19 ? $3 : $18;
$20 = (+($spec$select1|0));
$21 = (+($$0912|0));
$22 = $20 - $21;
HEAPF32[$$13>>2] = $16;
$23 = ((($$13)) + 4|0);
HEAPF32[$23>>2] = $21;
$24 = ((($$13)) + 8|0);
HEAPF32[$24>>2] = $12;
$25 = ((($$13)) + 12|0);
HEAP32[$25>>2] = $4;
$26 = ((($$13)) + 16|0);
HEAPF32[$26>>2] = 0.0;
$27 = ((($$13)) + 20|0);
HEAPF32[$27>>2] = $22;
$28 = ((($$13)) + 24|0);
HEAPF32[$28>>2] = $16;
$29 = ((($$13)) + 28|0);
HEAPF32[$29>>2] = $20;
$30 = ((($$13)) + 32|0);
HEAPF32[$30>>2] = $12;
$31 = ((($$13)) + 36|0);
HEAP32[$31>>2] = $4;
$32 = ((($$13)) + 40|0);
HEAPF32[$32>>2] = 0.0;
$33 = ((($$13)) + 44|0);
HEAPF32[$33>>2] = 0.0;
$34 = ((($$13)) + 48|0);
HEAPF32[$34>>2] = $15;
$35 = ((($$13)) + 52|0);
HEAPF32[$35>>2] = $20;
$36 = ((($$13)) + 56|0);
HEAPF32[$36>>2] = $12;
$37 = ((($$13)) + 60|0);
HEAP32[$37>>2] = $4;
$38 = ((($$13)) + 64|0);
HEAPF32[$38>>2] = $17;
$39 = ((($$13)) + 68|0);
HEAPF32[$39>>2] = 0.0;
$40 = ((($$13)) + 72|0);
HEAPF32[$40>>2] = $15;
$41 = ((($$13)) + 76|0);
HEAPF32[$41>>2] = $21;
$42 = ((($$13)) + 80|0);
HEAPF32[$42>>2] = $12;
$43 = ((($$13)) + 84|0);
HEAP32[$43>>2] = $4;
$44 = ((($$13)) + 88|0);
HEAPF32[$44>>2] = $17;
$45 = ((($$13)) + 92|0);
HEAPF32[$45>>2] = $22;
$46 = ((($$13)) + 96|0);
$47 = ($18|0)<($3|0);
if ($47) {
$$0912 = $18;$$13 = $46;
} else {
$$1$lcssa = $46;
break;
}
}
} else {
$$1$lcssa = $$05;
}
$48 = ($13|0)<($1|0);
if ($48) {
$$05 = $$1$lcssa;$$0894 = $13;
} else {
$$0$lcssa = $$1$lcssa;
break;
}
}
HEAP32[$5>>2] = $$0$lcssa;
return;
}
function _DrawBorderX($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0$lcssa = 0, $$05 = 0, $$0894 = 0, $$0912 = 0, $$1$lcssa = 0, $$13 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, $spec$select1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = HEAP8[1408224]|0;
$7 = ($6<<24>>24)==(0);
$8 = $7 ? 2048 : 128;
$9 = HEAP32[$5>>2]|0;
$10 = ($1|0)>(0);
if (!($10)) {
$$0$lcssa = $9;
HEAP32[$5>>2] = $$0$lcssa;
return;
}
$11 = ($2|0)<($3|0);
$12 = (+($0|0));
$$05 = $9;$$0894 = 0;
while(1) {
$13 = (($$0894) + ($8))|0;
if ($11) {
$14 = ($13|0)>($1|0);
$spec$select = $14 ? $1 : $13;
$15 = (+($spec$select|0));
$16 = (+($$0894|0));
$17 = $15 - $16;
$$0912 = $2;$$13 = $$05;
while(1) {
$18 = (($$0912) + ($8))|0;
$19 = ($18|0)>($3|0);
$spec$select1 = $19 ? $3 : $18;
$20 = (+($spec$select1|0));
$21 = (+($$0912|0));
$22 = $20 - $21;
HEAPF32[$$13>>2] = $12;
$23 = ((($$13)) + 4|0);
HEAPF32[$23>>2] = $21;
$24 = ((($$13)) + 8|0);
HEAPF32[$24>>2] = $16;
$25 = ((($$13)) + 12|0);
HEAP32[$25>>2] = $4;
$26 = ((($$13)) + 16|0);
HEAPF32[$26>>2] = 0.0;
$27 = ((($$13)) + 20|0);
HEAPF32[$27>>2] = $22;
$28 = ((($$13)) + 24|0);
HEAPF32[$28>>2] = $12;
$29 = ((($$13)) + 28|0);
HEAPF32[$29>>2] = $20;
$30 = ((($$13)) + 32|0);
HEAPF32[$30>>2] = $16;
$31 = ((($$13)) + 36|0);
HEAP32[$31>>2] = $4;
$32 = ((($$13)) + 40|0);
HEAPF32[$32>>2] = 0.0;
$33 = ((($$13)) + 44|0);
HEAPF32[$33>>2] = 0.0;
$34 = ((($$13)) + 48|0);
HEAPF32[$34>>2] = $12;
$35 = ((($$13)) + 52|0);
HEAPF32[$35>>2] = $20;
$36 = ((($$13)) + 56|0);
HEAPF32[$36>>2] = $15;
$37 = ((($$13)) + 60|0);
HEAP32[$37>>2] = $4;
$38 = ((($$13)) + 64|0);
HEAPF32[$38>>2] = $17;
$39 = ((($$13)) + 68|0);
HEAPF32[$39>>2] = 0.0;
$40 = ((($$13)) + 72|0);
HEAPF32[$40>>2] = $12;
$41 = ((($$13)) + 76|0);
HEAPF32[$41>>2] = $21;
$42 = ((($$13)) + 80|0);
HEAPF32[$42>>2] = $15;
$43 = ((($$13)) + 84|0);
HEAP32[$43>>2] = $4;
$44 = ((($$13)) + 88|0);
HEAPF32[$44>>2] = $17;
$45 = ((($$13)) + 92|0);
HEAPF32[$45>>2] = $22;
$46 = ((($$13)) + 96|0);
$47 = ($18|0)<($3|0);
if ($47) {
$$0912 = $18;$$13 = $46;
} else {
$$1$lcssa = $46;
break;
}
}
} else {
$$1$lcssa = $$05;
}
$48 = ($13|0)<($1|0);
if ($48) {
$$05 = $$1$lcssa;$$0894 = $13;
} else {
$$0$lcssa = $$1$lcssa;
break;
}
}
HEAP32[$5>>2] = $$0$lcssa;
return;
}
function _DeleteVbs() {
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteVb(1248936);
_Gfx_DeleteVb(1248944);
_Gfx_DeleteVb(1248932);
_Gfx_DeleteVb(1248960);
_Gfx_DeleteVb(1248952);
_Gfx_DeleteVb(1248920);
return;
}
function _IVec3_MaxValue($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[$0>>2]=HEAP32[11796>>2]|0;HEAP32[$0+4>>2]=HEAP32[11796+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[11796+8>>2]|0;
return;
}
function _OnFileChanged_223($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_String_CaselessEqualsConst($2,22923)|0);
$4 = ($3|0)==(0);
if (!($4)) {
(_Game_UpdateTexture(1248980,$1,$2,0)|0);
return;
}
$5 = (_String_CaselessEqualsConst($2,22934)|0);
$6 = ($5|0)==(0);
if (!($6)) {
(_Game_UpdateTexture(1248984,$1,$2,0)|0);
return;
}
$7 = (_String_CaselessEqualsConst($2,22945)|0);
$8 = ($7|0)==(0);
if (!($8)) {
(_Game_UpdateTexture(1248992,$1,$2,0)|0);
return;
}
$9 = (_String_CaselessEqualsConst($2,22954)|0);
$10 = ($9|0)==(0);
if ($10) {
return;
}
(_Game_UpdateTexture(1248988,$1,$2,0)|0);
return;
}
function _OnTexturePackChanged($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteTexture(1248984);
return;
}
function _OnTerrainAtlasChanged($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_UpdateBorderTextures();
return;
}
function _OnViewDistanceChanged($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_UpdateAll();
return;
}
function _OnEnvVariableChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
L1: do {
switch ($1|0) {
case 0: {
$2 = HEAP16[703756]|0;
_MakeBorderTex(1248924,$2);
_UpdateMapEdges();
break;
}
case 1: {
$3 = HEAP16[(1407514)>>1]|0;
_MakeBorderTex(1248928,$3);
_UpdateMapSides();
break;
}
default: {
$4 = $1 | 1;
$5 = ($4|0)==(3);
if ($5) {
_UpdateMapEdges();
_UpdateMapSides();
break L1;
}
switch ($1|0) {
case 15: {
_UpdateMapEdges();
break L1;
break;
}
case 16: {
_UpdateMapSides();
break L1;
break;
}
case 12: {
_UpdateSky();
break L1;
break;
}
case 14: {
_EnvRenderer_UpdateFog();
break L1;
break;
}
case 13: {
_UpdateClouds();
break L1;
break;
}
case 4: {
_UpdateSky();
_UpdateClouds();
break L1;
break;
}
case 17: {
_UpdateSkybox();
break L1;
break;
}
default: {
break L1;
}
}
}
}
} while(0);
return;
}
function _OnContextLost_224($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_DeleteVbs();
_Gfx_DeleteTexture(1248928);
_Gfx_DeleteTexture(1248924);
return;
}
function _EnvRenderer_CalcFlags($0) {
$0 = $0|0;
var $$ = 0, $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_String_CaselessEqualsConst($0,22970)|0);
$2 = ($1|0)==(0);
if (!($2)) {
$$0 = 3;
return ($$0|0);
}
$3 = (_String_CaselessEqualsConst($0,22981)|0);
$4 = ($3|0)==(0);
if (!($4)) {
$$0 = 2;
return ($$0|0);
}
$5 = (_String_CaselessEqualsConst($0,22963)|0);
$6 = ($5|0)==(0);
if (!($6)) {
$$0 = 0;
return ($$0|0);
}
$7 = (_String_CaselessEqualsConst($0,22988)|0);
$8 = ($7|0)==(0);
$$ = $8 ? -1 : 1;
$$0 = $$;
return ($$0|0);
}
function _EnvRenderer_RenderClouds() {
var $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, $or$cond = 0, dest = 0, label = 0, sp = 0;
var src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$0 = sp;
$1 = HEAP32[312236]|0;
$2 = ($1|0)==(0);
$3 = HEAP32[(1407524)>>2]|0;
$4 = ($3|0)<(-2000);
$or$cond = $2 | $4;
if ($or$cond) {
STACKTOP = sp;return;
}
$5 = +HEAPF64[(535480)>>3];
$6 = $5 * 4.8828125E-4;
$7 = $6 * 0.60000002384185791;
$8 = +HEAPF32[(1407528)>>2];
$9 = $8;
$10 = $7 * $9;
$11 = $10;
dest=$0; src=18012; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$12 = ((($0)) + 48|0);
HEAPF32[$12>>2] = $11;
_Gfx_LoadMatrix(2,$0);
_Gfx_SetAlphaTest(1);
$13 = HEAP32[312245]|0;
_Gfx_BindTexture($13);
_Gfx_SetVertexFormat(1);
$14 = HEAP32[312236]|0;
_Gfx_BindVb($14);
$15 = HEAP32[312237]|0;
_Gfx_DrawVb_IndexedTris($15);
_Gfx_SetAlphaTest(0);
_Gfx_LoadIdentityMatrix(2);
STACKTOP = sp;return;
}
function _EnvRenderer_RenderSky() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0;
var $27 = 0.0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0;
var $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$0 = sp;
$1 = HEAP32[312234]|0;
$2 = ($1|0)==(0);
if ($2) {
STACKTOP = sp;return;
}
$3 = (_EnvRenderer_ShouldRenderSkybox()|0);
$4 = ($3<<24>>24)==(0);
if (!($4)) {
STACKTOP = sp;return;
}
$5 = HEAP32[(1407468)>>2]|0;
$6 = (+($5|0));
$7 = $6 + 8.0;
$8 = +HEAPF32[(1230624)>>2];
$9 = $8 + 8.0;
$10 = $9 > $7;
$11 = $10 ? $9 : $7;
_Gfx_SetVertexFormat(0);
$12 = HEAP32[312234]|0;
_Gfx_BindVb($12);
$13 = $11 == $7;
if ($13) {
$14 = HEAP32[312235]|0;
_Gfx_DrawVb_IndexedTris($14);
STACKTOP = sp;return;
} else {
dest=$0; src=(1260364); stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$15 = $11 - $7;
$16 = ((($0)) + 16|0);
$17 = +HEAPF32[$16>>2];
$18 = $15 * $17;
$19 = ((($0)) + 48|0);
$20 = +HEAPF32[$19>>2];
$21 = $20 + $18;
HEAPF32[$19>>2] = $21;
$22 = ((($0)) + 20|0);
$23 = +HEAPF32[$22>>2];
$24 = $15 * $23;
$25 = ((($0)) + 52|0);
$26 = +HEAPF32[$25>>2];
$27 = $26 + $24;
HEAPF32[$25>>2] = $27;
$28 = ((($0)) + 24|0);
$29 = +HEAPF32[$28>>2];
$30 = $15 * $29;
$31 = ((($0)) + 56|0);
$32 = +HEAPF32[$31>>2];
$33 = $32 + $30;
HEAPF32[$31>>2] = $33;
$34 = ((($0)) + 28|0);
$35 = +HEAPF32[$34>>2];
$36 = $15 * $35;
$37 = ((($0)) + 60|0);
$38 = +HEAPF32[$37>>2];
$39 = $38 + $36;
HEAPF32[$37>>2] = $39;
_Gfx_LoadMatrix(1,$0);
$40 = HEAP32[312235]|0;
_Gfx_DrawVb_IndexedTris($40);
_Gfx_LoadMatrix(1,(1260364));
STACKTOP = sp;return;
}
}
function _EnvRenderer_ShouldRenderSkybox() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[312246]|0;
$1 = ($0|0)!=(0);
$2 = HEAP8[1408223]|0;
$3 = ($2<<24>>24)==(0);
$narrow = $1 & $3;
$4 = $narrow&1;
return ($4|0);
}
function _EnvRenderer_RenderSkybox() {
var $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$0 = sp + 208|0;
$1 = sp + 144|0;
$2 = sp + 80|0;
$3 = sp + 16|0;
$4 = sp;
$5 = HEAP32[312233]|0;
$6 = ($5|0)==(0);
if ($6) {
STACKTOP = sp;return;
}
_Gfx_SetDepthWrite(0);
$7 = HEAP32[312246]|0;
_Gfx_BindTexture($7);
_Gfx_SetVertexFormat(1);
$8 = +HEAPF64[(535480)>>3];
$9 = $8 * 2.0;
$10 = $9 * 3.1415927410125732;
$11 = $10;
$12 = +HEAPF32[(1407548)>>2];
$13 = $12 * $11;
_Matrix_RotateY($2,$13);
$14 = +HEAPF32[(1407552)>>2];
$15 = $14 * $11;
_Matrix_RotateX($1,$15);
_Matrix_Mul($0,$2,$1);
;HEAP32[$4>>2]=HEAP32[(1230620)>>2]|0;HEAP32[$4+4>>2]=HEAP32[(1230620)+4>>2]|0;HEAP32[$4+8>>2]=HEAP32[(1230620)+8>>2]|0;
HEAPF32[(1230620)>>2] = 0.0;
HEAPF32[(1230624)>>2] = 0.0;
HEAPF32[(1230628)>>2] = 0.0;
$16 = HEAP32[(1230632)>>2]|0;
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
FUNCTION_TABLE_vi[$18 & 511]($3);
_Matrix_Mul($0,$0,$3);
;HEAP32[(1230620)>>2]=HEAP32[$4>>2]|0;HEAP32[(1230620)+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[(1230620)+8>>2]=HEAP32[$4+8>>2]|0;
_Gfx_LoadMatrix(1,$0);
$19 = HEAP32[312233]|0;
_Gfx_BindVb($19);
_Gfx_DrawVb_IndexedTris(24);
_Gfx_LoadMatrix(1,(1260364));
_Gfx_SetDepthWrite(1);
STACKTOP = sp;return;
}
function _EnvRenderer_OnBlockChanged($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$5 = $3&65535;
$6 = (583428 + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7 | 1;
$9 = ($8<<24>>24)!=(5);
$10 = $4&65535;
$11 = (583428 + ($10)|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 | 1;
$14 = ($13<<24>>24)!=(5);
$15 = $9 ^ $14;
if (!($15)) {
return;
}
$16 = HEAP32[(1407472)>>2]|0;
$17 = Math_imul($16, $0)|0;
$18 = (($17) + ($2))|0;
$19 = HEAP32[312229]|0;
$20 = (($19) + ($18<<1)|0);
$21 = HEAP16[$20>>1]|0;
$22 = $21 << 16 >> 16;
$23 = ($22|0)>($1|0);
if ($23) {
return;
}
if ($14) {
$24 = $1&65535;
HEAP16[$20>>1] = $24;
return;
} else {
(_CalcRainHeightAt($0,$1,$2,$18)|0);
return;
}
}
function _CalcRainHeightAt($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$02836 = 0, $$030 = 0, $$037 = 0, $$12938 = 0, $$139 = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $switch = 0, $switch32 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[(1407472)>>2]|0;
$5 = Math_imul($4, $1)|0;
$6 = (($5) + ($2))|0;
$7 = HEAP32[(1407464)>>2]|0;
$8 = Math_imul($6, $7)|0;
$9 = (($8) + ($0))|0;
$10 = HEAP32[(1407508)>>2]|0;
$11 = ($10|0)<(256);
$12 = ($1|0)>(-1);
L1: do {
if ($11) {
if ($12) {
$13 = HEAP32[351863]|0;
$14 = HEAP32[(1407488)>>2]|0;
$$02836 = $9;$$037 = $1;
while(1) {
$15 = (($13) + ($$02836)|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = (583428 + ($17)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19 & -2;
$switch = ($20<<24>>24)==(4);
if (!($switch)) {
break;
}
$22 = (($$037) + -1)|0;
$23 = (($$02836) - ($14))|0;
$24 = ($$037|0)>(0);
if ($24) {
$$02836 = $23;$$037 = $22;
} else {
$$030 = -1;$$sink = -1;
break L1;
}
}
$21 = $$037&65535;
$$030 = $$037;$$sink = $21;
} else {
$$030 = -1;$$sink = -1;
}
} else {
if ($12) {
$25 = HEAP32[351863]|0;
$26 = HEAP32[(1407456)>>2]|0;
$27 = HEAP32[(1407488)>>2]|0;
$$12938 = $9;$$139 = $1;
while(1) {
$28 = (($25) + ($$12938)|0);
$29 = HEAP8[$28>>0]|0;
$30 = $29&255;
$31 = (($26) + ($$12938)|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32&255;
$34 = $33 << 8;
$35 = $34 | $30;
$36 = (583428 + ($35)|0);
$37 = HEAP8[$36>>0]|0;
$38 = $37 & -2;
$switch32 = ($38<<24>>24)==(4);
if (!($switch32)) {
break;
}
$40 = (($$139) + -1)|0;
$41 = (($$12938) - ($27))|0;
$42 = ($$139|0)>(0);
if ($42) {
$$12938 = $41;$$139 = $40;
} else {
$$030 = -1;$$sink = -1;
break L1;
}
}
$39 = $$139&65535;
$$030 = $$139;$$sink = $39;
} else {
$$030 = -1;$$sink = -1;
}
}
} while(0);
$43 = HEAP32[312229]|0;
$44 = (($43) + ($3<<1)|0);
HEAP16[$44>>1] = $$sink;
return ($$030|0);
}
function _EnvRenderer_RenderWeather($0) {
$0 = +$0;
var $$0$idx217 = 0, $$0$ptr$idx = 0, $$0192216 = 0, $$0195215 = 0, $$0196211 = 0, $$1$add = 0, $$1$idx214 = 0, $$1193213 = 0, $$2$idx = 0, $$2194 = 0, $$add = 0, $$add197 = 0, $$add198 = 0, $$add199 = 0, $$add200 = 0, $$add201 = 0, $$add202 = 0, $$byval_copy = 0, $1 = 0, $10 = 0;
var $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0;
var $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0.0;
var $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0;
var $47 = 0.0, $48 = 0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0;
var $83 = 0.0, $84 = 0, $85 = 0.0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond219 = 0;
var $or$cond = 0, $or$cond210 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 15600|0;
$$byval_copy = sp + 15576|0;
$1 = sp;
$2 = sp + 15564|0;
$3 = sp + 15552|0;
$4 = HEAP32[(1407540)>>2]|0;
$5 = ($4|0)==(0);
if ($5) {
STACKTOP = sp;return;
}
$6 = HEAP32[312229]|0;
$7 = ($6|0)==(0|0);
if ($7) {
_InitWeatherHeightmap();
}
$8 = ($4|0)==(1);
$9 = HEAP32[312247]|0;
$10 = HEAP32[312248]|0;
$11 = $8 ? $9 : $10;
_Gfx_BindTexture($11);
_IVec3_Floor($2,(1230620));
$12 = HEAP32[$2>>2]|0;
$13 = HEAP32[312242]|0;
$14 = ($12|0)==($13|0);
if ($14) {
$15 = ((($2)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = HEAP32[(1248972)>>2]|0;
$18 = ($16|0)==($17|0);
if ($18) {
$19 = ((($2)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = HEAP32[(1248976)>>2]|0;
$22 = ($20|0)==($21|0);
$51 = $22;
} else {
$51 = 0;
}
} else {
$51 = 0;
}
;HEAP32[1248968>>2]=HEAP32[$2>>2]|0;HEAP32[1248968+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[1248968+8>>2]=HEAP32[$2+8>>2]|0;
$23 = ((($2)) + 4|0);
$24 = HEAP32[$23>>2]|0;
$25 = (($24) + 64)|0;
$26 = HEAP32[(1407468)>>2]|0;
$27 = ($26|0)>($25|0);
$28 = $27 ? $26 : $25;
HEAP32[$23>>2] = $28;
$29 = $8 ? 1.0 : 0.20000000298023224;
$30 = +HEAPF32[(1407532)>>2];
$31 = $29 * $30;
$32 = +HEAPF64[(535480)>>3];
$33 = $32;
$34 = $31 * $33;
$35 = +HEAPF64[66933];
$36 = $35 + $0;
HEAPF64[66933] = $36;
$37 = HEAP32[(1407572)>>2]|0;
$38 = ((($2)) + 8|0);
$$0$idx217 = 0;$$0192216 = $37;$$0195215 = -4;
while(1) {
$39 = Math_imul($$0195215, $$0195215)|0;
$$0196211 = -4;$$1$idx214 = $$0$idx217;$$1193213 = $$0192216;
while(1) {
$40 = HEAP32[$2>>2]|0;
$41 = (($40) + ($$0195215))|0;
$42 = HEAP32[$38>>2]|0;
$43 = (($42) + ($$0196211))|0;
$44 = (+_GetRainHeight($41,$43));
$45 = HEAP32[$23>>2]|0;
$46 = (+($45|0));
$47 = $46 - $44;
$48 = !($47 <= 0.0);
if ($48) {
if ($8) {
$49 = +HEAPF64[66933];
$50 = !($49 >= 0.25);
$or$cond = $51 & $50;
if (!($or$cond)) {
$52 = (+($43|0));
$53 = (+($41|0));
_Vec3_Create3($3,$53,$44,$52);
;HEAP32[$$byval_copy>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$3+8>>2]|0;
_Particles_RainSnowEffect($$byval_copy);
}
}
$54 = Math_imul($$0196211, $$0196211)|0;
$55 = (($54) + ($39))|0;
$56 = (+($55|0));
$57 = (+_CalcRainAlphaAt($56));
$58 = $57 < 0.0;
$59 = $58 ? 0.0 : $57;
$60 = $59 > 255.0;
$61 = $60 ? 255.0 : $59;
$62 = $$1193213 & 16777215;
$63 = (~~(($61))&255);
$64 = $63&255;
$65 = $64 << 24;
$66 = $65 | $62;
$67 = $43 & 1;
$68 = (+($67|0));
$69 = $68 * 0.5;
$70 = $34 + $69;
$71 = $41 & 15;
$72 = (+($71|0));
$73 = $72 * 0.0625;
$74 = $70 - $73;
$75 = $44 / 6.0;
$76 = $75 + $74;
$77 = $44 + $47;
$78 = $77 / 6.0;
$79 = $78 + $74;
$80 = (+($41|0));
$81 = (+($43|0));
$82 = (($41) + 1)|0;
$83 = (+($82|0));
$84 = (($43) + 1)|0;
$85 = (+($84|0));
$86 = (($1) + (($$1$idx214*24)|0)|0);
HEAPF32[$86>>2] = $80;
$87 = (((($1) + (($$1$idx214*24)|0)|0)) + 4|0);
HEAPF32[$87>>2] = $44;
$88 = (((($1) + (($$1$idx214*24)|0)|0)) + 8|0);
HEAPF32[$88>>2] = $81;
$89 = (((($1) + (($$1$idx214*24)|0)|0)) + 12|0);
HEAP32[$89>>2] = $66;
$90 = (((($1) + (($$1$idx214*24)|0)|0)) + 16|0);
HEAPF32[$90>>2] = 0.0;
$91 = (((($1) + (($$1$idx214*24)|0)|0)) + 20|0);
HEAPF32[$91>>2] = $76;
$$1$add = (($$1$idx214) + 1)|0;
$92 = (($1) + (($$1$add*24)|0)|0);
HEAPF32[$92>>2] = $80;
$93 = (((($1) + (($$1$add*24)|0)|0)) + 4|0);
HEAPF32[$93>>2] = $77;
$94 = (((($1) + (($$1$add*24)|0)|0)) + 8|0);
HEAPF32[$94>>2] = $81;
$95 = (((($1) + (($$1$add*24)|0)|0)) + 12|0);
HEAP32[$95>>2] = $66;
$96 = (((($1) + (($$1$add*24)|0)|0)) + 16|0);
HEAPF32[$96>>2] = 0.0;
$97 = (((($1) + (($$1$add*24)|0)|0)) + 20|0);
HEAPF32[$97>>2] = $79;
$$add = (($$1$idx214) + 2)|0;
$98 = (($1) + (($$add*24)|0)|0);
HEAPF32[$98>>2] = $83;
$99 = (((($1) + (($$add*24)|0)|0)) + 4|0);
HEAPF32[$99>>2] = $77;
$100 = (((($1) + (($$add*24)|0)|0)) + 8|0);
HEAPF32[$100>>2] = $85;
$101 = (((($1) + (($$add*24)|0)|0)) + 12|0);
HEAP32[$101>>2] = $66;
$102 = (((($1) + (($$add*24)|0)|0)) + 16|0);
HEAPF32[$102>>2] = 1.0;
$103 = (((($1) + (($$add*24)|0)|0)) + 20|0);
HEAPF32[$103>>2] = $79;
$$add197 = (($$1$idx214) + 3)|0;
$104 = (($1) + (($$add197*24)|0)|0);
HEAPF32[$104>>2] = $83;
$105 = (((($1) + (($$add197*24)|0)|0)) + 4|0);
HEAPF32[$105>>2] = $44;
$106 = (((($1) + (($$add197*24)|0)|0)) + 8|0);
HEAPF32[$106>>2] = $85;
$107 = (((($1) + (($$add197*24)|0)|0)) + 12|0);
HEAP32[$107>>2] = $66;
$108 = (((($1) + (($$add197*24)|0)|0)) + 16|0);
HEAPF32[$108>>2] = 1.0;
$109 = (((($1) + (($$add197*24)|0)|0)) + 20|0);
HEAPF32[$109>>2] = $76;
$$add198 = (($$1$idx214) + 4)|0;
$110 = (($1) + (($$add198*24)|0)|0);
HEAPF32[$110>>2] = $83;
$111 = (((($1) + (($$add198*24)|0)|0)) + 4|0);
HEAPF32[$111>>2] = $44;
$112 = (((($1) + (($$add198*24)|0)|0)) + 8|0);
HEAPF32[$112>>2] = $81;
$113 = (((($1) + (($$add198*24)|0)|0)) + 12|0);
HEAP32[$113>>2] = $66;
$114 = (((($1) + (($$add198*24)|0)|0)) + 16|0);
HEAPF32[$114>>2] = 1.0;
$115 = (((($1) + (($$add198*24)|0)|0)) + 20|0);
HEAPF32[$115>>2] = $76;
$$add199 = (($$1$idx214) + 5)|0;
$116 = (($1) + (($$add199*24)|0)|0);
HEAPF32[$116>>2] = $83;
$117 = (((($1) + (($$add199*24)|0)|0)) + 4|0);
HEAPF32[$117>>2] = $77;
$118 = (((($1) + (($$add199*24)|0)|0)) + 8|0);
HEAPF32[$118>>2] = $81;
$119 = (((($1) + (($$add199*24)|0)|0)) + 12|0);
HEAP32[$119>>2] = $66;
$120 = (((($1) + (($$add199*24)|0)|0)) + 16|0);
HEAPF32[$120>>2] = 1.0;
$121 = (((($1) + (($$add199*24)|0)|0)) + 20|0);
HEAPF32[$121>>2] = $79;
$$add200 = (($$1$idx214) + 6)|0;
$122 = (($1) + (($$add200*24)|0)|0);
HEAPF32[$122>>2] = $80;
$123 = (((($1) + (($$add200*24)|0)|0)) + 4|0);
HEAPF32[$123>>2] = $77;
$124 = (((($1) + (($$add200*24)|0)|0)) + 8|0);
HEAPF32[$124>>2] = $85;
$125 = (((($1) + (($$add200*24)|0)|0)) + 12|0);
HEAP32[$125>>2] = $66;
$126 = (((($1) + (($$add200*24)|0)|0)) + 16|0);
HEAPF32[$126>>2] = 0.0;
$127 = (((($1) + (($$add200*24)|0)|0)) + 20|0);
HEAPF32[$127>>2] = $79;
$$add201 = (($$1$idx214) + 7)|0;
$128 = (($1) + (($$add201*24)|0)|0);
HEAPF32[$128>>2] = $80;
$129 = (((($1) + (($$add201*24)|0)|0)) + 4|0);
HEAPF32[$129>>2] = $44;
$130 = (((($1) + (($$add201*24)|0)|0)) + 8|0);
HEAPF32[$130>>2] = $85;
$131 = (((($1) + (($$add201*24)|0)|0)) + 12|0);
HEAP32[$131>>2] = $66;
$132 = (((($1) + (($$add201*24)|0)|0)) + 16|0);
HEAPF32[$132>>2] = 0.0;
$133 = (((($1) + (($$add201*24)|0)|0)) + 20|0);
HEAPF32[$133>>2] = $76;
$$add202 = (($$1$idx214) + 8)|0;
$$2$idx = $$add202;$$2194 = $66;
} else {
$$2$idx = $$1$idx214;$$2194 = $$1193213;
}
$134 = (($$0196211) + 1)|0;
$exitcond = ($134|0)==(5);
if ($exitcond) {
break;
} else {
$$0196211 = $134;$$1$idx214 = $$2$idx;$$1193213 = $$2194;
}
}
$135 = (($$0195215) + 1)|0;
$exitcond219 = ($135|0)==(5);
if ($exitcond219) {
break;
} else {
$$0$idx217 = $$2$idx;$$0192216 = $$2194;$$0195215 = $135;
}
}
if ($8) {
$136 = +HEAPF64[66933];
$137 = !($136 >= 0.25);
$or$cond210 = $51 & $137;
if (!($or$cond210)) {
HEAPF64[66933] = 0.0;
}
}
$138 = ($$2$idx|0)==(0);
if ($138) {
STACKTOP = sp;return;
}
_Gfx_SetAlphaTest(0);
_Gfx_SetDepthWrite(0);
_Gfx_SetVertexFormat(1);
$$0$ptr$idx = ($$2$idx*24)|0;
$139 = (($$0$ptr$idx|0) / 24)&-1;
$140 = HEAP32[312230]|0;
_Gfx_UpdateDynamicVb_IndexedTris($140,$1,$139);
_Gfx_SetDepthWrite(1);
_Gfx_SetAlphaTest(0);
STACKTOP = sp;return;
}
function _InitWeatherHeightmap() {
var $$04 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407464)>>2]|0;
$1 = HEAP32[(1407472)>>2]|0;
$2 = Math_imul($1, $0)|0;
$3 = (_Mem_Alloc($2,2,22999)|0);
HEAP32[312229] = $3;
$4 = HEAP32[(1407464)>>2]|0;
$5 = HEAP32[(1407472)>>2]|0;
$6 = Math_imul($5, $4)|0;
$7 = ($6|0)>(0);
if (!($7)) {
return;
}
$8 = HEAP32[312229]|0;
$9 = HEAP32[(1407464)>>2]|0;
$10 = HEAP32[(1407472)>>2]|0;
$11 = Math_imul($10, $9)|0;
$$04 = 0;
while(1) {
$12 = (($8) + ($$04<<1)|0);
HEAP16[$12>>1] = 32767;
$13 = (($$04) + 1)|0;
$14 = ($13|0)<($11|0);
if ($14) {
$$04 = $13;
} else {
break;
}
}
return;
}
function _GetRainHeight($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_World_ContainsXZ_235($0,$1)|0);
$3 = ($2<<24>>24)==(0);
if ($3) {
$4 = HEAP32[(1407516)>>2]|0;
$5 = (+($4|0));
$$0 = $5;
return (+$$0);
}
$6 = HEAP32[(1407472)>>2]|0;
$7 = Math_imul($6, $0)|0;
$8 = (($7) + ($1))|0;
$9 = HEAP32[312229]|0;
$10 = (($9) + ($8<<1)|0);
$11 = HEAP16[$10>>1]|0;
$12 = ($11<<16>>16)==(32767);
if ($12) {
$13 = HEAP32[(1407480)>>2]|0;
$14 = (_CalcRainHeightAt($0,$13,$1,$8)|0);
$16 = $14;
} else {
$15 = $11 << 16 >> 16;
$16 = $15;
}
$17 = ($16|0)==(-1);
if ($17) {
$$0 = 0.0;
return (+$$0);
}
$18 = (+($16|0));
$19 = (_World_GetBlock_236($0,$16,$1)|0);
$20 = $19&65535;
$21 = (((597252 + (($20*12)|0)|0)) + 4|0);
$22 = +HEAPF32[$21>>2];
$23 = $22 + $18;
$$0 = $23;
return (+$$0);
}
function _Vec3_Create3($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $2;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0);
HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $3;
return;
}
function _CalcRainAlphaAt($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 * 0.05000000074505806;
$2 = $1 * $0;
$3 = $0 * 7.0;
$4 = $2 - $3;
$5 = +HEAPF32[(1407536)>>2];
$6 = $4 * $5;
$7 = $6 + 178.0;
return (+$7);
}
function _World_ContainsXZ_235($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = ($2>>>0)>($0>>>0);
$4 = HEAP32[(1407472)>>2]|0;
$5 = ($4>>>0)>($1>>>0);
$narrow = $3 & $5;
$6 = $narrow&1;
return ($6|0);
}
function _World_GetBlock_236($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _EnvRenderer_RenderMapSides() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP16[(1407514)>>1]|0;
$1 = HEAP32[312240]|0;
$2 = HEAP32[312232]|0;
$3 = HEAP32[312241]|0;
_RenderBorders($0,$1,$2,$3);
return;
}
function _RenderBorders($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($1|0)==(0);
if ($4) {
return;
}
$5 = $0&65535;
$6 = (583428 + ($5)|0);
$7 = HEAP8[$6>>0]|0;
_Gfx_SetupAlphaState($7);
_Gfx_BindTexture($2);
_Gfx_SetVertexFormat(1);
_Gfx_BindVb($1);
_Gfx_DrawVb_IndexedTris($3);
$8 = HEAP8[$6>>0]|0;
_Gfx_RestoreAlphaState($8);
return;
}
function _EnvRenderer_RenderMapEdges() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $spec$select3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407516)>>2]|0;
$1 = HEAP32[(1407520)>>2]|0;
$2 = (($1) + ($0))|0;
$3 = ($2|0)<(0);
$spec$select3 = $3 ? $2 : 0;
$4 = (+($spec$select3|0));
$5 = +HEAPF32[(1230624)>>2];
$6 = $5 < $4;
$7 = HEAP32[312240]|0;
$8 = ($7|0)!=(0);
$or$cond = $8 & $6;
if ($or$cond) {
return;
}
$9 = HEAP16[703756]|0;
$10 = HEAP32[312238]|0;
$11 = HEAP32[312231]|0;
$12 = HEAP32[312239]|0;
_RenderBorders($9,$10,$11,$12);
return;
}
function _EnvRenderer_SetMode($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 & 2;
$2 = $1&255;
HEAP8[1408224] = $2;
$3 = $0 & 1;
$4 = $3&255;
HEAP8[1408223] = $4;
_OnContextRecreated(0);
return;
}
function _Event_Register($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$017 = 0, $$lcssa20 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 256|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if ($5) {
$$017 = 0;
while(1) {
$6 = (($0) + ($$017<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==($2|0);
if ($8) {
$9 = (((($0)) + 128|0) + ($$017<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==($1|0);
if ($11) {
_Logger_Abort(23017);
}
}
$12 = (($$017) + 1)|0;
$13 = HEAP32[$3>>2]|0;
$14 = ($12|0)<($13|0);
if ($14) {
$$017 = $12;
} else {
break;
}
}
$15 = ($13|0)==(32);
if ($15) {
_Logger_Abort(23079);
return;
} else {
$$lcssa20 = $13;
}
} else {
$$lcssa20 = $4;
}
$16 = (($0) + ($$lcssa20<<2)|0);
HEAP32[$16>>2] = $2;
$17 = (((($0)) + 128|0) + ($$lcssa20<<2)|0);
HEAP32[$17>>2] = $1;
$18 = (($$lcssa20) + 1)|0;
HEAP32[$3>>2] = $18;
return;
}
function _Event_Unregister($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$02734 = 0, $$033 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 256|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
L1: do {
if ($5) {
$$02734 = 0;$13 = $4;
while(1) {
$6 = (($0) + ($$02734<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==($2|0);
if ($8) {
$9 = (((($0)) + 128|0) + ($$02734<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==($1|0);
if ($11) {
break;
}
}
$24 = (($$02734) + 1)|0;
$25 = HEAP32[$3>>2]|0;
$26 = ($24|0)<($25|0);
if ($26) {
$$02734 = $24;$13 = $25;
} else {
break L1;
}
}
$12 = (($13) + -1)|0;
$14 = ($$02734|0)<($12|0);
if ($14) {
$$033 = $$02734;
while(1) {
$15 = (($$033) + 1)|0;
$16 = (($0) + ($15<<2)|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($0) + ($$033<<2)|0);
HEAP32[$18>>2] = $17;
$19 = (((($0)) + 128|0) + ($15<<2)|0);
$20 = HEAP32[$19>>2]|0;
$21 = (((($0)) + 128|0) + ($$033<<2)|0);
HEAP32[$21>>2] = $20;
$exitcond = ($15|0)==($12|0);
if ($exitcond) {
break;
} else {
$$033 = $15;
}
}
}
HEAP32[$3>>2] = $12;
$22 = (($0) + ($12<<2)|0);
HEAP32[$22>>2] = 0;
$23 = (((($0)) + 128|0) + ($12<<2)|0);
HEAP32[$23>>2] = 0;
return;
}
} while(0);
_Logger_Abort(23120);
return;
}
function _Event_RaiseVoid($0) {
$0 = $0|0;
var $$07 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 256|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)>(0);
if (!($3)) {
return;
}
$$07 = 0;
while(1) {
$4 = (($0) + ($$07<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = (((($0)) + 128|0) + ($$07<<2)|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vi[$5 & 511]($7);
$8 = (($$07) + 1)|0;
$9 = HEAP32[$1>>2]|0;
$10 = ($8|0)<($9|0);
if ($10) {
$$07 = $8;
} else {
break;
}
}
return;
}
function _Event_RaiseInt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$08 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 256|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$$08 = 0;
while(1) {
$5 = (($0) + ($$08<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = (((($0)) + 128|0) + ($$08<<2)|0);
$8 = HEAP32[$7>>2]|0;
FUNCTION_TABLE_vii[$6 & 127]($8,$1);
$9 = (($$08) + 1)|0;
$10 = HEAP32[$2>>2]|0;
$11 = ($9|0)<($10|0);
if ($11) {
$$08 = $9;
} else {
break;
}
}
return;
}
function _Event_RaiseFloat($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$08 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 256|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$$08 = 0;
while(1) {
$5 = (($0) + ($$08<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = (((($0)) + 128|0) + ($$08<<2)|0);
$8 = HEAP32[$7>>2]|0;
FUNCTION_TABLE_vid[$6 & 63]($8,$1);
$9 = (($$08) + 1)|0;
$10 = HEAP32[$2>>2]|0;
$11 = ($9|0)<($10|0);
if ($11) {
$$08 = $9;
} else {
break;
}
}
return;
}
function _Event_RaiseEntry($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 256|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
return;
}
$$09 = 0;
while(1) {
$6 = (($0) + ($$09<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = (((($0)) + 128|0) + ($$09<<2)|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_viii[$7 & 31]($9,$1,$2);
$10 = (($$09) + 1)|0;
$11 = HEAP32[$3>>2]|0;
$12 = ($10|0)<($11|0);
if ($12) {
$$09 = $10;
} else {
break;
}
}
return;
}
function _Event_RaiseBlock($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$09 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$$byval_copy = sp;
$4 = ((($0)) + 256|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
STACKTOP = sp;return;
}
$$09 = 0;
while(1) {
$7 = (($0) + ($$09<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = (((($0)) + 128|0) + ($$09<<2)|0);
$10 = HEAP32[$9>>2]|0;
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
FUNCTION_TABLE_viiii[$8 & 31]($10,$$byval_copy,$2,$3);
$11 = (($$09) + 1)|0;
$12 = HEAP32[$4>>2]|0;
$13 = ($11|0)<($12|0);
if ($13) {
$$09 = $11;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _Event_RaiseMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 256|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
return;
}
$$010 = 0;
while(1) {
$7 = (($0) + ($$010<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = (((($0)) + 128|0) + ($$010<<2)|0);
$10 = HEAP32[$9>>2]|0;
FUNCTION_TABLE_viiii[$8 & 31]($10,$1,$2,$3);
$11 = (($$010) + 1)|0;
$12 = HEAP32[$4>>2]|0;
$13 = ($11|0)<($12|0);
if ($13) {
$$010 = $11;
} else {
break;
}
}
return;
}
function _Event_RaiseChat($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 256|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
return;
}
$$09 = 0;
while(1) {
$6 = (($0) + ($$09<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = (((($0)) + 128|0) + ($$09<<2)|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_viii[$7 & 31]($9,$1,$2);
$10 = (($$09) + 1)|0;
$11 = HEAP32[$3>>2]|0;
$12 = ($10|0)<($11|0);
if ($12) {
$$09 = $10;
} else {
break;
}
}
return;
}
function _Event_RaiseInput($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 256|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
return;
}
$$09 = 0;
while(1) {
$6 = (($0) + ($$09<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = (((($0)) + 128|0) + ($$09<<2)|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_viii[$7 & 31]($9,$1,$2);
$10 = (($$09) + 1)|0;
$11 = HEAP32[$3>>2]|0;
$12 = ($10|0)<($11|0);
if ($12) {
$$09 = $10;
} else {
break;
}
}
return;
}
function _Event_RaiseString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$08 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 256|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$$08 = 0;
while(1) {
$5 = (($0) + ($$08<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = (((($0)) + 128|0) + ($$08<<2)|0);
$8 = HEAP32[$7>>2]|0;
FUNCTION_TABLE_vii[$6 & 127]($8,$1);
$9 = (($$08) + 1)|0;
$10 = HEAP32[$2>>2]|0;
$11 = ($9|0)<($10|0);
if ($11) {
$$08 = $9;
} else {
break;
}
}
return;
}
function _Math_AbsF($0) {
$0 = +$0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+Math_abs((+$0)));
return (+$1);
}
function _Math_SqrtF($0) {
$0 = +$0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+Math_sqrt((+$0)));
return (+$1);
}
function _Math_Mod1($0) {
$0 = +$0;
var $1 = 0, $2 = 0.0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (~~(($0)));
$2 = (+($1|0));
$3 = $0 - $2;
return (+$3);
}
function _Math_AbsI($0) {
$0 = $0|0;
var $1 = 0, $ispos = 0, $neg = 0, label = 0, sp = 0;
sp = STACKTOP;
$ispos = ($0|0)>(-1);
$neg = (0 - ($0))|0;
$1 = $ispos ? $0 : $neg;
return ($1|0);
}
function _Math_Sin($0) {
$0 = +$0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+Math_sin((+$0)));
return (+$1);
}
function _Math_Cos($0) {
$0 = +$0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+Math_cos((+$0)));
return (+$1);
}
function _Math_Log($0) {
$0 = +$0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+Math_log((+$0)));
return (+$1);
}
function _Math_Exp($0) {
$0 = +$0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+Math_exp((+$0)));
return (+$1);
}
function _Math_SinF($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0.0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0;
$2 = (+_Math_Sin($1));
$3 = $2;
return (+$3);
}
function _Math_CosF($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0.0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0;
$2 = (+_Math_Cos($1));
$3 = $2;
return (+$3);
}
function _Math_Floor($0) {
$0 = +$0;
var $1 = 0, $2 = 0.0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (~~(($0)));
$2 = (+($1|0));
$3 = $2 > $0;
$4 = $3 << 31 >> 31;
$5 = (($4) + ($1))|0;
return ($5|0);
}
function _Math_Ceil($0) {
$0 = +$0;
var $1 = 0, $2 = 0.0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (~~(($0)));
$2 = (+($1|0));
$3 = $2 < $0;
$4 = $3&1;
$5 = (($4) + ($1))|0;
return ($5|0);
}
function _Math_Log2($0) {
$0 = $0|0;
var $$0 = 0, $$03 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$0 = 0;$$03 = $0;
while(1) {
$1 = (1)?($$03 >>> 1):($$03);
$2 = ($1|0)==(0);
$3 = (($$0) + 1)|0;
if ($2) {
break;
} else {
$$0 = $3;$$03 = $1;
}
}
return ($$0|0);
}
function _Math_CeilDiv($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (($0|0) / ($1|0))&-1;
$3 = Math_imul($2, $1)|0;
$4 = (($0) - ($3))|0;
$5 = ($4|0)!=(0);
$6 = $5&1;
$7 = (($2) + ($6))|0;
return ($7|0);
}
function _Math_Sign($0) {
$0 = +$0;
var $$ = 0, $$0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 > 0.0;
$2 = $0 < 0.0;
$$ = $2 << 31 >> 31;
$$0 = $1 ? 1 : $$;
return ($$0|0);
}
function _Math_Lerp($0,$1,$2) {
$0 = +$0;
$1 = +$1;
$2 = +$2;
var $3 = 0.0, $4 = 0.0, $5 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $1 - $0;
$4 = $3 * $2;
$5 = $4 + $0;
return (+$5);
}
function _Math_LerpAngle($0,$1,$2) {
$0 = +$0;
$1 = +$1;
$2 = +$2;
var $$010 = 0.0, $10 = 0.0, $11 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, $spec$select = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $0 > 270.0;
$4 = $1 < 90.0;
$5 = $3 & $4;
$6 = $1 > 270.0;
$7 = $0 < 90.0;
$8 = $7 & $6;
$9 = $0 + -360.0;
$spec$select = $5 ? $9 : $0;
$10 = $1 + -360.0;
$$010 = $8 ? $10 : $1;
$11 = (+_Math_Lerp($spec$select,$$010,$2));
return (+$11);
}
function _Math_NextPowOf2($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$0 = 1;
while(1) {
$1 = ($$0|0)<($0|0);
$2 = $$0 << 1;
if ($1) {
$$0 = $2;
} else {
break;
}
}
return ($$0|0);
}
function _Math_IsPowOf2($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $narrow = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0|0)!=(0);
$2 = (($0) + -1)|0;
$3 = $2 & $0;
$4 = ($3|0)==(0);
$narrow = $1 & $4;
$spec$select = $narrow&1;
return ($spec$select|0);
}
function _Random_SeedFromCurrentTime($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_DateTime_CurrentUTC_MS()|0);
$2 = (getTempRet0() | 0);
_Random_Seed($0,$1);
return;
}
function _Random_Seed($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)<(0);
$3 = $2 << 31 >> 31;
$4 = $3 & 65535;
$5 = $1 ^ -554899859;
$6 = $4 ^ 5;
$7 = $0;
$8 = $7;
HEAP32[$8>>2] = $5;
$9 = (($7) + 4)|0;
$10 = $9;
HEAP32[$10>>2] = $6;
return;
}
function _Random_Next($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (0 - ($1))|0;
$3 = $2 & $1;
$4 = ($3|0)==($1|0);
if ($4) {
$5 = $0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (___muldi3(($7|0),($10|0),-554899859,5)|0);
$12 = (getTempRet0() | 0);
$13 = (_i64Add(($11|0),($12|0),11,0)|0);
$14 = (getTempRet0() | 0);
$15 = $14 & 65535;
$16 = $0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = (($16) + 4)|0;
$19 = $18;
HEAP32[$19>>2] = $15;
$20 = (_bitshift64Lshr(($13|0),($15|0),17)|0);
$21 = (getTempRet0() | 0);
$22 = ($1|0)<(0);
$23 = $22 << 31 >> 31;
$24 = (___muldi3(($20|0),($21|0),($1|0),($23|0))|0);
$25 = (getTempRet0() | 0);
$26 = (_bitshift64Lshr(($24|0),($25|0),31)|0);
$27 = (getTempRet0() | 0);
$$0 = $26;
return ($$0|0);
}
$28 = (($1) + -1)|0;
$29 = $0;
$30 = $29;
$31 = HEAP32[$30>>2]|0;
$32 = (($29) + 4)|0;
$33 = $32;
$34 = HEAP32[$33>>2]|0;
$35 = $31;$36 = $34;
while(1) {
$37 = (___muldi3(($35|0),($36|0),-554899859,5)|0);
$38 = (getTempRet0() | 0);
$39 = (_i64Add(($37|0),($38|0),11,0)|0);
$40 = (getTempRet0() | 0);
$41 = $40 & 65535;
$42 = (_bitshift64Lshr(($39|0),($41|0),17)|0);
$43 = (getTempRet0() | 0);
$44 = (($42|0) % ($1|0))&-1;
$45 = (($28) - ($44))|0;
$46 = (($45) + ($42))|0;
$47 = ($46|0)<(0);
if ($47) {
$35 = $39;$36 = $41;
} else {
break;
}
}
$48 = $0;
$49 = $48;
HEAP32[$49>>2] = $39;
$50 = (($48) + 4)|0;
$51 = $50;
HEAP32[$51>>2] = $41;
$$0 = $44;
return ($$0|0);
}
function _Random_Float($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = $0;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (($1) + 4)|0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (___muldi3(($3|0),($6|0),-554899859,5)|0);
$8 = (getTempRet0() | 0);
$9 = (_i64Add(($7|0),($8|0),11,0)|0);
$10 = (getTempRet0() | 0);
$11 = $10 & 65535;
$12 = $0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
$16 = (_bitshift64Lshr(($9|0),($11|0),24)|0);
$17 = (getTempRet0() | 0);
$18 = (+($16|0));
$19 = $18 * 5.9604644775390625E-8;
return (+$19);
}
function _Map_FindImporter($0) {
$0 = $0|0;
var $$Cw_Load = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_String_CaselessEnds($0,11472)|0);
$2 = ($1|0)==(0);
$$Cw_Load = $2 ? 0 : 14;
return ($$Cw_Load|0);
}
function _Cw_Load($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0;
var $27 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 44816|0;
$1 = sp + 44808|0;
$2 = sp + 44752|0;
$3 = sp + 16|0;
$4 = sp;
_Inflate_MakeStream($2,$3,$0);
$5 = (_Map_SkipGZipHeader($0)|0);
$6 = ($5|0)==(0);
if (!($6)) {
$$0 = $5;
STACKTOP = sp;return ($$0|0);
}
$7 = ((($2)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = (FUNCTION_TABLE_iii[$8 & 127]($2,$1)|0);
$10 = ($9|0)==(0);
if (!($10)) {
$$0 = $9;
STACKTOP = sp;return ($$0|0);
}
$11 = HEAP8[$1>>0]|0;
$12 = ($11<<24>>24)==(10);
if (!($12)) {
$$0 = -857812915;
STACKTOP = sp;return ($$0|0);
}
$13 = (_Nbt_ReadTag(10,1,$2,0)|0);
$14 = ($13|0)==(0);
if (!($14)) {
$$0 = $13;
STACKTOP = sp;return ($$0|0);
}
_IVec3_Floor($4,(1242580));
$15 = HEAP32[$4>>2]|0;
$16 = ((($4)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = ((($4)) + 8|0);
$19 = HEAP32[$18>>2]|0;
$20 = (_World_Contains_309($15,$17,$19)|0);
$21 = ($20<<24>>24)==(0);
if (!($21)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$22 = +HEAPF32[(1242580)>>2];
$23 = $22 * 0.03125;
HEAPF32[(1242580)>>2] = $23;
$24 = +HEAPF32[(1242584)>>2];
$25 = $24 * 0.03125;
HEAPF32[(1242584)>>2] = $25;
$26 = +HEAPF32[(1242588)>>2];
$27 = $26 * 0.03125;
HEAPF32[(1242588)>>2] = $27;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _Map_SkipGZipHeader($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_GZipHeader_Init($1);
$2 = ((($1)) + 1|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
L1: do {
if ($4) {
while(1) {
$7 = (_GZipHeader_Read($0,$1)|0);
$8 = ($7|0)==(0);
if (!($8)) {
$$0 = $7;
break L1;
}
$5 = HEAP8[$2>>0]|0;
$6 = ($5<<24>>24)==(0);
if (!($6)) {
$$0 = 0;
break;
}
}
} else {
$$0 = 0;
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function _Nbt_ReadTag($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$0396 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176|0;
$4 = sp;
$5 = sp + 161|0;
$6 = sp + 156|0;
$7 = ($0<<24>>24)==(0);
if ($7) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$8 = ((($4)) + 4|0);
HEAP8[$8>>0] = $0;
HEAP32[$4>>2] = $3;
$9 = ((($4)) + 16|0);
HEAP32[$9>>2] = 0;
$10 = ((($4)) + 92|0);
$11 = ((($4)) + 8|0);
HEAP32[$11>>2] = $10;
$12 = ((($4)) + 12|0);
HEAP16[$12>>1] = 0;
$13 = ((($4)) + 14|0);
HEAP16[$13>>1] = 64;
$14 = ($1<<24>>24)==(0);
if (!($14)) {
$15 = (_Nbt_ReadString($2,$11)|0);
$16 = ($15|0)==(0);
if (!($16)) {
$$0 = $15;
STACKTOP = sp;return ($$0|0);
}
}
L8: do {
switch ($0<<24>>24) {
case 1: {
$17 = ((($2)) + 4|0);
$18 = HEAP32[$17>>2]|0;
$19 = ((($4)) + 20|0);
$20 = (FUNCTION_TABLE_iii[$18 & 127]($2,$19)|0);
$$1 = $20;
label = 27;
break;
}
case 2: {
$21 = (_Stream_Read($2,$6,2)|0);
$22 = (_Stream_GetU16_BE($6)|0);
$23 = ((($4)) + 20|0);
HEAP16[$23>>1] = $22;
$$1 = $21;
label = 27;
break;
}
case 5: case 3: {
$24 = ((($4)) + 20|0);
$25 = (_Stream_ReadU32_BE($2,$24)|0);
$$1 = $25;
label = 27;
break;
}
case 6: case 4: {
$26 = ((($2)) + 12|0);
$27 = HEAP32[$26>>2]|0;
$28 = (FUNCTION_TABLE_iii[$27 & 127]($2,8)|0);
$$1 = $28;
label = 27;
break;
}
case 7: {
$29 = (_Stream_ReadU32_BE($2,$9)|0);
$30 = ($29|0)==(0);
if (!($30)) {
$$0 = $29;
STACKTOP = sp;return ($$0|0);
}
$31 = HEAP32[$9>>2]|0;
$32 = ($31>>>0)<(65);
if ($32) {
$33 = ((($4)) + 20|0);
$34 = (_Stream_Read($2,$33,$31)|0);
$$1 = $34;
label = 27;
break L8;
}
$35 = (_Mem_TryAlloc($31,1)|0);
$36 = ((($4)) + 20|0);
HEAP32[$36>>2] = $35;
$37 = ($35|0)==(0|0);
if ($37) {
$$0 = -857812988;
STACKTOP = sp;return ($$0|0);
}
$38 = HEAP32[$9>>2]|0;
$39 = (_Stream_Read($2,$35,$38)|0);
$40 = ($39|0)==(0);
if (!($40)) {
$41 = HEAP32[$36>>2]|0;
_Mem_Free($41);
$$0 = $39;
STACKTOP = sp;return ($$0|0);
}
break;
}
case 8: {
$42 = ((($4)) + 28|0);
$43 = ((($4)) + 20|0);
HEAP32[$43>>2] = $42;
$44 = ((($4)) + 24|0);
HEAP16[$44>>1] = 0;
$45 = ((($4)) + 26|0);
HEAP16[$45>>1] = 64;
$46 = (_Nbt_ReadString($2,$43)|0);
$$1 = $46;
label = 27;
break;
}
case 9: {
$47 = (_Stream_Read($2,$6,5)|0);
$48 = ($47|0)==(0);
if (!($48)) {
$$0 = $47;
STACKTOP = sp;return ($$0|0);
}
$49 = HEAP8[$6>>0]|0;
HEAP8[$5>>0] = $49;
$50 = ((($6)) + 1|0);
$51 = (_Stream_GetU32_BE($50)|0);
$52 = ($51|0)==(0);
if (!($52)) {
$$0396 = 0;
while(1) {
$55 = HEAP8[$5>>0]|0;
$56 = (_Nbt_ReadTag($55,0,$2,$4)|0);
$57 = ($56|0)==(0);
$53 = (($$0396) + 1)|0;
if (!($57)) {
$$0 = $56;
break;
}
$54 = ($53>>>0)<($51>>>0);
if ($54) {
$$0396 = $53;
} else {
break L8;
}
}
STACKTOP = sp;return ($$0|0);
}
break;
}
case 10: {
$58 = ((($2)) + 4|0);
$59 = HEAP32[$58>>2]|0;
$60 = (FUNCTION_TABLE_iii[$59 & 127]($2,$5)|0);
$61 = ($60|0)==(0);
if (!($61)) {
$$0 = $60;
STACKTOP = sp;return ($$0|0);
}
while(1) {
$65 = HEAP8[$5>>0]|0;
$66 = ($65<<24>>24)==(0);
if ($66) {
break L8;
}
$67 = (_Nbt_ReadTag($65,1,$2,$4)|0);
$68 = ($67|0)==(0);
if (!($68)) {
$$0 = $67;
label = 30;
break;
}
$62 = HEAP32[$58>>2]|0;
$63 = (FUNCTION_TABLE_iii[$62 & 127]($2,$5)|0);
$64 = ($63|0)==(0);
if (!($64)) {
$$0 = $63;
label = 30;
break;
}
}
if ((label|0) == 30) {
STACKTOP = sp;return ($$0|0);
}
break;
}
case 11: {
$$0 = -857812917;
STACKTOP = sp;return ($$0|0);
break;
}
default: {
$$0 = -857812916;
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
if ((label|0) == 27) {
$69 = ($$1|0)==(0);
if (!($69)) {
$$0 = $$1;
STACKTOP = sp;return ($$0|0);
}
}
_Cw_Callback($4);
$70 = HEAP32[$9>>2]|0;
$71 = ($70>>>0)<(65);
if ($71) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$72 = ((($4)) + 20|0);
$73 = HEAP32[$72>>2]|0;
_Mem_Free($73);
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _World_Contains_309($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _Nbt_ReadString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256|0;
$2 = sp;
$3 = (_Stream_Read($0,$2,2)|0);
$4 = ($3|0)==(0);
if ($4) {
$5 = (_Stream_GetU16_BE($2)|0);
$6 = $5&65535;
$7 = ($5&65535)>(256);
if ($7) {
$$0 = -857812914;
} else {
$8 = (_Stream_Read($0,$2,$6)|0);
$9 = ($8|0)==(0);
if ($9) {
_String_AppendUtf8($1,$2,$6);
$$0 = 0;
} else {
$$0 = $8;
}
}
} else {
$$0 = $3;
}
STACKTOP = sp;return ($$0|0);
}
function _Cw_Callback($0) {
$0 = $0|0;
var $$010 = 0, $$pn = 0, $1 = 0, $2 = 0, $trunc = 0, $trunc$clear = 0, label = 0, sp = 0;
sp = STACKTOP;
$$pn = $0;$trunc = 0;
while(1) {
$$010 = HEAP32[$$pn>>2]|0;
$1 = ($$010|0)==(0|0);
$2 = (($trunc) + 1)|0;
if ($1) {
break;
} else {
$$pn = $$010;$trunc = $2;
}
}
$trunc$clear = $trunc & 2147483647;
switch ($trunc$clear|0) {
case 1: {
_Cw_Callback_1($0);
return;
break;
}
case 2: {
_Cw_Callback_2($0);
return;
break;
}
case 4: {
_Cw_Callback_4($0);
return;
break;
}
case 5: {
_Cw_Callback_5($0);
return;
break;
}
default: {
return;
}
}
}
function _Cw_Callback_1($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
$2 = (_String_CaselessEqualsConst($1,26422)|0);
$3 = ($2|0)==(0);
if (!($3)) {
$4 = (_NbtTag_U16($0)|0);
$5 = $4&65535;
HEAP32[(1407464)>>2] = $5;
return;
}
$6 = (_String_CaselessEqualsConst($1,26424)|0);
$7 = ($6|0)==(0);
if (!($7)) {
$8 = (_NbtTag_U16($0)|0);
$9 = $8&65535;
HEAP32[(1407468)>>2] = $9;
return;
}
$10 = (_String_CaselessEqualsConst($1,26426)|0);
$11 = ($10|0)==(0);
if (!($11)) {
$12 = (_NbtTag_U16($0)|0);
$13 = $12&65535;
HEAP32[(1407472)>>2] = $13;
return;
}
$14 = (_String_CaselessEqualsConst($1,23539)|0);
$15 = ($14|0)==(0);
if (!($15)) {
$16 = ((($0)) + 16|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)==(16);
if (!($18)) {
_Logger_Abort(23544);
}
$19 = ((($0)) + 20|0);
_Mem_Copy((1407492),$19,16);
return;
}
$20 = (_String_CaselessEqualsConst($1,23570)|0);
$21 = ($20|0)==(0);
if (!($21)) {
$22 = ((($0)) + 16|0);
$23 = HEAP32[$22>>2]|0;
HEAP32[(1407460)>>2] = $23;
$24 = (_Cw_GetBlocks($0)|0);
HEAP32[351863] = $24;
}
$25 = (_String_CaselessEqualsConst($1,23581)|0);
$26 = ($25|0)==(0);
if ($26) {
return;
}
$27 = (_Cw_GetBlocks($0)|0);
_World_SetMapUpper($27);
return;
}
function _Cw_Callback_2($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0;
var $28 = 0.0, $29 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = ((($1)) + 8|0);
$3 = (_String_CaselessEqualsConst($2,23533)|0);
$4 = ($3|0)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 8|0);
$6 = (_String_CaselessEqualsConst($5,26422)|0);
$7 = ($6|0)==(0);
if (!($7)) {
$8 = (_NbtTag_I16($0)|0);
$9 = (+($8<<16>>16));
HEAPF32[(1242580)>>2] = $9;
return;
}
$10 = (_String_CaselessEqualsConst($5,26424)|0);
$11 = ($10|0)==(0);
if (!($11)) {
$12 = (_NbtTag_I16($0)|0);
$13 = (+($12<<16>>16));
HEAPF32[(1242584)>>2] = $13;
return;
}
$14 = (_String_CaselessEqualsConst($5,26426)|0);
$15 = ($14|0)==(0);
if (!($15)) {
$16 = (_NbtTag_I16($0)|0);
$17 = (+($16<<16>>16));
HEAPF32[(1242588)>>2] = $17;
return;
}
$18 = (_String_CaselessEqualsConst($5,26390)|0);
$19 = ($18|0)==(0);
if (!($19)) {
$20 = (_NbtTag_U8($0)|0);
$21 = (+($20&255));
$22 = $21 * 360.0;
$23 = $22 * 0.00390625;
HEAPF32[(1242604)>>2] = $23;
return;
}
$24 = (_String_CaselessEqualsConst($5,26406)|0);
$25 = ($24|0)==(0);
if ($25) {
return;
}
$26 = (_NbtTag_U8($0)|0);
$27 = (+($26&255));
$28 = $27 * 360.0;
$29 = $28 * 0.00390625;
HEAPF32[(1242608)>>2] = $29;
return;
}
function _Cw_Callback_4($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP16[704099]|0;
$3 = HEAP32[$0>>2]|0;
$4 = HEAP32[$3>>2]|0;
$5 = ((($4)) + 8|0);
$6 = (_String_CaselessEqualsConst($5,23194)|0);
$7 = ($6|0)==(0);
if ($7) {
STACKTOP = sp;return;
}
$8 = HEAP32[$0>>2]|0;
$9 = HEAP32[$8>>2]|0;
$10 = HEAP32[$9>>2]|0;
$11 = ((($10)) + 8|0);
$12 = (_String_CaselessEqualsConst($11,23198)|0);
$13 = ($12|0)==(0);
if ($13) {
STACKTOP = sp;return;
}
$14 = HEAP32[$0>>2]|0;
$15 = ((($14)) + 8|0);
$16 = (_String_CaselessEqualsConst($15,35383)|0);
$17 = ($16|0)==(0);
if (!($17)) {
$18 = ((($0)) + 8|0);
$19 = (_String_CaselessEqualsConst($18,23438)|0);
$20 = ($19|0)==(0);
if (!($20)) {
$21 = (_NbtTag_U16($0)|0);
$22 = (+($21&65535));
$23 = $22 * 0.03125;
HEAPF32[(1242612)>>2] = $23;
STACKTOP = sp;return;
}
}
$24 = HEAP32[$0>>2]|0;
$25 = ((($24)) + 8|0);
$26 = (_String_CaselessEqualsConst($25,35468)|0);
$27 = ($26|0)==(0);
if (!($27)) {
$28 = ((($0)) + 8|0);
$29 = (_String_CaselessEqualsConst($28,23447)|0);
$30 = ($29|0)==(0);
if (!($30)) {
$31 = (_NbtTag_U8($0)|0);
$32 = $31&255;
HEAP32[(1407540)>>2] = $32;
STACKTOP = sp;return;
}
}
$33 = HEAP32[$0>>2]|0;
$34 = ((($33)) + 8|0);
$35 = (_String_CaselessEqualsConst($34,35234)|0);
$36 = ($35|0)==(0);
if (!($36)) {
$37 = ((($0)) + 8|0);
$38 = (_String_CaselessEqualsConst($37,23459)|0);
$39 = ($38|0)==(0);
if (!($39)) {
$40 = (_NbtTag_U8($0)|0);
$41 = $40&255;
HEAP16[(1407514)>>1] = $41;
STACKTOP = sp;return;
}
$42 = (_String_CaselessEqualsConst($37,23469)|0);
$43 = ($42|0)==(0);
if (!($43)) {
$44 = (_NbtTag_U8($0)|0);
$45 = $44&255;
HEAP16[703756] = $45;
STACKTOP = sp;return;
}
$46 = (_String_CaselessEqualsConst($37,23479)|0);
$47 = ($46|0)==(0);
if (!($47)) {
$48 = (_NbtTag_I16($0)|0);
$49 = $48 << 16 >> 16;
HEAP32[(1407516)>>2] = $49;
STACKTOP = sp;return;
}
$50 = (_String_CaselessEqualsConst($37,23489)|0);
$51 = ($50|0)==(0);
if (!($51)) {
_NbtTag_String($1,$0);
$52 = ((($1)) + 4|0);
$53 = HEAP16[$52>>1]|0;
$54 = ($53<<16>>16)==(0);
if (!($54)) {
_Server_RetrieveTexturePack($1);
}
STACKTOP = sp;return;
}
}
$55 = HEAP32[$0>>2]|0;
$56 = ((($55)) + 8|0);
$57 = (_String_CaselessEqualsConst($56,35430)|0);
$58 = ($57|0)==(0);
if (!($58)) {
$59 = ((($0)) + 8|0);
$60 = (_String_CaselessEqualsConst($59,23500)|0);
$61 = ($60|0)==(0);
if (!($61)) {
$62 = (_Cw_ParseCol(-13159)|0);
HEAP32[(1407556)>>2] = $62;
STACKTOP = sp;return;
}
$63 = (_String_CaselessEqualsConst($59,23504)|0);
$64 = ($63|0)==(0);
if (!($64)) {
$65 = (_Cw_ParseCol(-1)|0);
HEAP32[(1407564)>>2] = $65;
STACKTOP = sp;return;
}
$66 = (_String_CaselessEqualsConst($59,34256)|0);
$67 = ($66|0)==(0);
if (!($67)) {
$68 = (_Cw_ParseCol(-1)|0);
HEAP32[(1407560)>>2] = $68;
STACKTOP = sp;return;
}
$69 = (_String_CaselessEqualsConst($59,23510)|0);
$70 = ($69|0)==(0);
if (!($70)) {
$71 = (_Cw_ParseCol(-1)|0);
_Env_SetSunCol($71);
STACKTOP = sp;return;
}
$72 = (_String_CaselessEqualsConst($59,23519)|0);
$73 = ($72|0)==(0);
if (!($73)) {
$74 = (_Cw_ParseCol(-6579301)|0);
_Env_SetShadowCol($74);
STACKTOP = sp;return;
}
}
$75 = HEAP32[$0>>2]|0;
$76 = ((($75)) + 8|0);
$77 = (_String_CaselessEqualsConst($76,35366)|0);
$78 = ($77|0)==(0);
$79 = HEAP8[1408234]|0;
$80 = ($79<<24>>24)==(0);
$or$cond = $78 | $80;
if ($or$cond) {
STACKTOP = sp;return;
}
$81 = ((($0)) + 8|0);
$82 = (_String_CaselessStarts($81,11480)|0);
$83 = ($82|0)==(0);
if ($83) {
STACKTOP = sp;return;
}
$84 = $2&65535;
$85 = (587268 + ($84)|0);
$86 = HEAP8[$85>>0]|0;
$87 = ($86<<24>>24)==(0);
if ($87) {
$88 = (583428 + ($84)|0);
$89 = HEAP8[$88>>0]|0;
HEAP8[$85>>0] = $89;
HEAP8[$88>>0] = 5;
} else {
HEAP8[$85>>0] = 0;
}
_Block_DefineCustom($2);
$90 = (634116 + ($84)|0);
HEAP8[$90>>0] = 1;
$91 = (634884 + ($84)|0);
HEAP8[$91>>0] = 1;
_Event_RaiseVoid(1253156);
HEAP16[704099] = 0;
STACKTOP = sp;return;
}
function _Cw_Callback_5($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0;
var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0;
var $171 = 0, $172 = 0, $173 = 0, $174 = 0.0, $175 = 0.0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0;
var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0.0, $2 = 0, $20 = 0, $200 = 0.0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0.0, $206 = 0.0;
var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0.0, $211 = 0.0, $212 = 0, $213 = 0, $214 = 0, $215 = 0.0, $216 = 0.0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0.0, $221 = 0.0, $222 = 0, $223 = 0, $224 = 0;
var $225 = 0.0, $226 = 0.0, $227 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $spec$select = 0, $spec$store$select = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP16[704099]|0;
$3 = HEAP32[$0>>2]|0;
$4 = HEAP32[$3>>2]|0;
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 8|0);
$7 = (_String_CaselessEqualsConst($6,23194)|0);
$8 = ($7|0)==(0);
if ($8) {
STACKTOP = sp;return;
}
$9 = HEAP32[$0>>2]|0;
$10 = HEAP32[$9>>2]|0;
$11 = HEAP32[$10>>2]|0;
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 8|0);
$14 = (_String_CaselessEqualsConst($13,23198)|0);
$15 = ($14|0)==(0);
if ($15) {
STACKTOP = sp;return;
}
$16 = HEAP32[$0>>2]|0;
$17 = HEAP32[$16>>2]|0;
$18 = ((($17)) + 8|0);
$19 = (_String_CaselessEqualsConst($18,35430)|0);
$20 = ($19|0)==(0);
if (!($20)) {
$21 = ((($0)) + 8|0);
$22 = (_String_CaselessEqualsConst($21,26410)|0);
$23 = ($22|0)==(0);
if (!($23)) {
$24 = (_NbtTag_U16($0)|0);
$25 = $24&65535;
HEAP32[315044] = $25;
STACKTOP = sp;return;
}
$26 = (_String_CaselessEqualsConst($21,26388)|0);
$27 = ($26|0)==(0);
if (!($27)) {
$28 = (_NbtTag_U16($0)|0);
$29 = $28&65535;
HEAP32[315045] = $29;
STACKTOP = sp;return;
}
$30 = (_String_CaselessEqualsConst($21,26378)|0);
$31 = ($30|0)==(0);
if (!($31)) {
$32 = (_NbtTag_U16($0)|0);
$33 = $32&65535;
HEAP32[315046] = $33;
STACKTOP = sp;return;
}
}
$34 = HEAP32[$0>>2]|0;
$35 = HEAP32[$34>>2]|0;
$36 = ((($35)) + 8|0);
$37 = (_String_CaselessEqualsConst($36,35366)|0);
$38 = ($37|0)==(0);
$39 = HEAP8[1408234]|0;
$40 = ($39<<24>>24)==(0);
$or$cond = $38 | $40;
if ($or$cond) {
STACKTOP = sp;return;
}
$41 = ((($0)) + 8|0);
$42 = (_String_CaselessEqualsConst($41,23207)|0);
$43 = ($42|0)==(0);
if (!($43)) {
$44 = (_NbtTag_U8($0)|0);
$45 = $44&255;
HEAP16[704099] = $45;
STACKTOP = sp;return;
}
$46 = (_String_CaselessEqualsConst($41,23210)|0);
$47 = ($46|0)==(0);
if (!($47)) {
$48 = (_NbtTag_U16($0)|0);
HEAP16[704099] = $48;
STACKTOP = sp;return;
}
$49 = (_String_CaselessEqualsConst($41,23214)|0);
$50 = ($49|0)==(0);
if (!($50)) {
$51 = (_NbtTag_U8($0)|0);
_Block_SetCollide($2,$51);
STACKTOP = sp;return;
}
$52 = (_String_CaselessEqualsConst($41,31656)|0);
$53 = ($52|0)==(0);
if (!($53)) {
$54 = (+_NbtTag_F32($0));
$55 = $2&65535;
$56 = (579588 + ($55<<2)|0);
HEAPF32[$56>>2] = $54;
STACKTOP = sp;return;
}
$57 = (_String_CaselessEqualsConst($41,23226)|0);
$58 = ($57|0)==(0);
if (!($58)) {
$59 = (_NbtTag_U8($0)|0);
$60 = ($59<<24>>24)==(0);
$61 = $60&1;
$62 = $2&65535;
$63 = (570372 + ($62)|0);
HEAP8[$63>>0] = $61;
STACKTOP = sp;return;
}
$64 = (_String_CaselessEqualsConst($41,23241)|0);
$65 = ($64|0)==(0);
if (!($65)) {
$66 = (_NbtTag_U8($0)|0);
$67 = ($66<<24>>24)!=(0);
$68 = $67&1;
$69 = $2&65535;
$70 = (571140 + ($69)|0);
HEAP8[$70>>0] = $68;
STACKTOP = sp;return;
}
$71 = (_String_CaselessEqualsConst($41,23252)|0);
$72 = ($71|0)==(0);
if (!($72)) {
$73 = (_NbtTag_U8($0)|0);
$74 = $2&65535;
$75 = (583428 + ($74)|0);
HEAP8[$75>>0] = $73;
STACKTOP = sp;return;
}
$76 = (_String_CaselessEqualsConst($41,23262)|0);
$77 = ($76|0)==(0);
if (!($77)) {
$78 = (_NbtTag_U8($0)|0);
$79 = $2&65535;
$80 = (587268 + ($79)|0);
HEAP8[$80>>0] = $78;
STACKTOP = sp;return;
}
$81 = (_String_CaselessEqualsConst($41,23268)|0);
$82 = ($81|0)==(0);
if (!($82)) {
_NbtTag_String($1,$0);
_Block_SetName($2,$1);
STACKTOP = sp;return;
}
$83 = (_String_CaselessEqualsConst($41,23273)|0);
$84 = ($83|0)==(0);
if (!($84)) {
$85 = (_NbtTag_U8_Array($0,6)|0);
$86 = HEAP8[$85>>0]|0;
$87 = $86&255;
$88 = $2&65535;
$89 = ($88*6)|0;
$90 = (($89) + 5)|0;
$91 = (624900 + ($90<<1)|0);
HEAP16[$91>>1] = $87;
$92 = ((($85)) + 1|0);
$93 = HEAP8[$92>>0]|0;
$94 = $93&255;
$95 = (($89) + 4)|0;
$96 = (624900 + ($95<<1)|0);
HEAP16[$96>>1] = $94;
$97 = ((($85)) + 2|0);
$98 = HEAP8[$97>>0]|0;
$99 = $98&255;
$100 = (624900 + ($89<<1)|0);
HEAP16[$100>>1] = $99;
$101 = ((($85)) + 3|0);
$102 = HEAP8[$101>>0]|0;
$103 = $102&255;
$104 = $89 | 1;
$105 = (624900 + ($104<<1)|0);
HEAP16[$105>>1] = $103;
$106 = ((($85)) + 4|0);
$107 = HEAP8[$106>>0]|0;
$108 = $107&255;
$109 = (($89) + 2)|0;
$110 = (624900 + ($109<<1)|0);
HEAP16[$110>>1] = $108;
$111 = ((($85)) + 5|0);
$112 = HEAP8[$111>>0]|0;
$113 = $112&255;
$114 = (($89) + 3)|0;
$115 = (624900 + ($114<<1)|0);
HEAP16[$115>>1] = $113;
$116 = ((($0)) + 16|0);
$117 = HEAP32[$116>>2]|0;
$118 = ($117>>>0)>(11);
if (!($118)) {
STACKTOP = sp;return;
}
$119 = ((($85)) + 6|0);
$120 = HEAP8[$119>>0]|0;
$121 = $120&255;
$122 = $121 << 8;
$123 = $86&255;
$124 = $122 | $123;
$125 = $124&65535;
HEAP16[$91>>1] = $125;
$126 = ((($85)) + 7|0);
$127 = HEAP8[$126>>0]|0;
$128 = $127&255;
$129 = $128 << 8;
$130 = $93&255;
$131 = $129 | $130;
$132 = $131&65535;
HEAP16[$96>>1] = $132;
$133 = ((($85)) + 8|0);
$134 = HEAP8[$133>>0]|0;
$135 = $134&255;
$136 = $135 << 8;
$137 = $98&255;
$138 = $136 | $137;
$139 = $138&65535;
HEAP16[$100>>1] = $139;
$140 = ((($85)) + 9|0);
$141 = HEAP8[$140>>0]|0;
$142 = $141&255;
$143 = $142 << 8;
$144 = $102&255;
$145 = $143 | $144;
$146 = $145&65535;
HEAP16[$105>>1] = $146;
$147 = ((($85)) + 10|0);
$148 = HEAP8[$147>>0]|0;
$149 = $148&255;
$150 = $149 << 8;
$151 = $107&255;
$152 = $150 | $151;
$153 = $152&65535;
HEAP16[$110>>1] = $153;
$154 = ((($85)) + 11|0);
$155 = HEAP8[$154>>0]|0;
$156 = $155&255;
$157 = $156 << 8;
$158 = $112&255;
$159 = $157 | $158;
$160 = $159&65535;
HEAP16[$115>>1] = $160;
STACKTOP = sp;return;
}
$161 = (_String_CaselessEqualsConst($41,23282)|0);
$162 = ($161|0)==(0);
if (!($162)) {
$163 = (_NbtTag_U8($0)|0);
$164 = $2&65535;
$165 = (584196 + ($164)|0);
HEAP8[$165>>0] = $163;
$166 = (584964 + ($164)|0);
$167 = ($163<<24>>24)==(6);
$spec$select = $167 ? 4 : $163;
HEAP8[$166>>0] = $spec$select;
STACKTOP = sp;return;
}
$168 = (_String_CaselessEqualsConst($41,34256)|0);
$169 = ($168|0)==(0);
if (!($169)) {
$170 = (_NbtTag_U8_Array($0,4)|0);
$171 = HEAP8[$170>>0]|0;
$172 = $171&255;
$173 = (($172) + 1)|0;
$174 = (+($173|0));
$175 = $174 * 0.0078125;
$176 = $2&65535;
$177 = (574980 + ($176<<2)|0);
HEAPF32[$177>>2] = $175;
$178 = HEAP8[$170>>0]|0;
$179 = ($178<<24>>24)==(-1);
$spec$store$select = $179 ? 0.0 : $175;
HEAPF32[$177>>2] = $spec$store$select;
$180 = ((($170)) + 1|0);
$181 = HEAP8[$180>>0]|0;
$182 = $181&255;
$183 = ((($170)) + 2|0);
$184 = HEAP8[$183>>0]|0;
$185 = $184&255;
$186 = $185 << 8;
$187 = ((($170)) + 3|0);
$188 = HEAP8[$187>>0]|0;
$189 = $188&255;
$190 = $189 << 16;
$191 = $186 | $182;
$192 = $191 | $190;
$193 = $192 | -16777216;
$194 = (571908 + ($176<<2)|0);
HEAP32[$194>>2] = $193;
STACKTOP = sp;return;
}
$195 = (_String_CaselessEqualsConst($41,23292)|0);
$196 = ($195|0)==(0);
if ($196) {
STACKTOP = sp;return;
}
$197 = (_NbtTag_U8_Array($0,6)|0);
$198 = HEAP8[$197>>0]|0;
$199 = (+($198<<24>>24));
$200 = $199 * 0.0625;
$201 = $2&65535;
$202 = (588036 + (($201*12)|0)|0);
HEAPF32[$202>>2] = $200;
$203 = ((($197)) + 3|0);
$204 = HEAP8[$203>>0]|0;
$205 = (+($204<<24>>24));
$206 = $205 * 0.0625;
$207 = (597252 + (($201*12)|0)|0);
HEAPF32[$207>>2] = $206;
$208 = ((($197)) + 1|0);
$209 = HEAP8[$208>>0]|0;
$210 = (+($209<<24>>24));
$211 = $210 * 0.0625;
$212 = (((588036 + (($201*12)|0)|0)) + 4|0);
HEAPF32[$212>>2] = $211;
$213 = ((($197)) + 4|0);
$214 = HEAP8[$213>>0]|0;
$215 = (+($214<<24>>24));
$216 = $215 * 0.0625;
$217 = (((597252 + (($201*12)|0)|0)) + 4|0);
HEAPF32[$217>>2] = $216;
$218 = ((($197)) + 2|0);
$219 = HEAP8[$218>>0]|0;
$220 = (+($219<<24>>24));
$221 = $220 * 0.0625;
$222 = (((588036 + (($201*12)|0)|0)) + 8|0);
HEAPF32[$222>>2] = $221;
$223 = ((($197)) + 5|0);
$224 = HEAP8[$223>>0]|0;
$225 = (+($224<<24>>24));
$226 = $225 * 0.0625;
$227 = (((597252 + (($201*12)|0)|0)) + 8|0);
HEAPF32[$227>>2] = $226;
STACKTOP = sp;return;
}
function _NbtTag_U16($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(2);
if (!($3)) {
_Logger_Abort(23417);
}
$4 = ((($0)) + 20|0);
$5 = HEAP16[$4>>1]|0;
return ($5|0);
}
function _NbtTag_U8($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(1);
if (!($3)) {
_Logger_Abort(23397);
}
$4 = ((($0)) + 20|0);
$5 = HEAP8[$4>>0]|0;
return ($5|0);
}
function _NbtTag_F32($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(5);
if (!($3)) {
_Logger_Abort(23376);
}
$4 = ((($0)) + 20|0);
$5 = +HEAPF32[$4>>2];
return (+$5);
}
function _NbtTag_String($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(8);
if (!($4)) {
_Logger_Abort(23352);
}
$5 = ((($1)) + 20|0);
$6 = $5;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = $0;
$13 = $12;
HEAP32[$13>>2] = $8;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
return;
}
function _NbtTag_U8_Array($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(7);
if (!($4)) {
_Logger_Abort(23299);
}
$5 = ((($0)) + 16|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6>>>0)<($1>>>0);
if ($7) {
_Logger_Abort(23325);
$$pr = HEAP32[$5>>2]|0;
$8 = $$pr;
} else {
$8 = $6;
}
$9 = ($8>>>0)<(65);
$10 = ((($0)) + 20|0);
if ($9) {
$12 = $10;
return ($12|0);
} else {
$11 = HEAP32[$10>>2]|0;
$12 = $11;
return ($12|0);
}
return (0)|0;
}
function _NbtTag_I16($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(2);
if (!($3)) {
_Logger_Abort(23417);
}
$4 = ((($0)) + 20|0);
$5 = HEAP16[$4>>1]|0;
return ($5|0);
}
function _Cw_ParseCol($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315044]|0;
$2 = HEAP32[315045]|0;
$3 = HEAP32[315046]|0;
$4 = ($1|0)>(255);
$5 = ($2|0)>(255);
$or$cond = $4 | $5;
$6 = ($3|0)>(255);
$or$cond3 = $or$cond | $6;
$7 = $1 & 255;
$8 = $2 << 8;
$9 = $8 & 65280;
$10 = $3 << 16;
$11 = $7 | $9;
$12 = $11 | $10;
$13 = $12 | -16777216;
$spec$select = $or$cond3 ? $0 : $13;
return ($spec$select|0);
}
function _Cw_GetBlocks($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2>>>0)<(65);
if ($3) {
$4 = (_Mem_Alloc($2,1,23593)|0);
$5 = ((($0)) + 20|0);
$6 = HEAP32[$1>>2]|0;
_Mem_Copy($4,$5,$6);
$$0 = $4;
return ($$0|0);
} else {
$7 = ((($0)) + 20|0);
$8 = HEAP32[$7>>2]|0;
HEAP32[$7>>2] = 0;
$$0 = $8;
return ($$0|0);
}
return (0)|0;
}
function _Map_LoadFrom($0) {
$0 = $0|0;
var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0;
$$byval_copy = sp + 88|0;
$1 = sp + 56|0;
$2 = sp;
_Game_Reset();
$3 = (_Stream_OpenFile($2,$0)|0);
$4 = ($3|0)==(0);
if (!($4)) {
_Logger_Warn2($3,38432,$0);
STACKTOP = sp;return;
}
$5 = (_Map_FindImporter($0)|0);
$6 = (FUNCTION_TABLE_ii[$5 & 31]($2)|0);
$7 = ($6|0)==(0);
if (!($7)) {
_World_Reset();
_Logger_Warn2($6,37484,$0);
$8 = ((($2)) + 28|0);
$9 = HEAP32[$8>>2]|0;
(FUNCTION_TABLE_ii[$9 & 31]($2)|0);
STACKTOP = sp;return;
}
$10 = ((($2)) + 28|0);
$11 = HEAP32[$10>>2]|0;
$12 = (FUNCTION_TABLE_ii[$11 & 31]($2)|0);
$13 = ($12|0)==(0);
if (!($13)) {
_Logger_Warn2($12,38518,$0);
}
$14 = HEAP32[351863]|0;
$15 = HEAP32[(1407464)>>2]|0;
$16 = HEAP32[(1407468)>>2]|0;
$17 = HEAP32[(1407472)>>2]|0;
_World_SetNewMap($14,$15,$16,$17);
_Event_RaiseVoid((1254196));
$18 = +HEAPF32[(1242604)>>2];
$19 = +HEAPF32[(1242608)>>2];
;HEAP32[$$byval_copy>>2]=HEAP32[(1242580)>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[(1242580)+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[(1242580)+8>>2]|0;
_LocationUpdate_MakePosAndOri($1,$$byval_copy,$18,$19,0);
$20 = HEAP32[310538]|0;
$21 = ((($20)) + 8|0);
$22 = HEAP32[$21>>2]|0;
FUNCTION_TABLE_viii[$22 & 31](1242152,$1,0);
STACKTOP = sp;return;
}
function _Cw_Save($0) {
$0 = $0|0;
var $$0 = 0, $$04950 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0;
var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 768|0;
$1 = sp;
_Mem_Copy($1,1936,131);
$2 = ((($1)) + 43|0);
_Mem_Copy($2,(1407492),16);
$3 = ((($1)) + 63|0);
$4 = HEAP32[(1407464)>>2]|0;
$5 = $4&65535;
_Stream_SetU16_BE($3,$5);
$6 = ((($1)) + 69|0);
$7 = HEAP32[(1407468)>>2]|0;
$8 = $7&65535;
_Stream_SetU16_BE($6,$8);
$9 = ((($1)) + 75|0);
$10 = HEAP32[(1407472)>>2]|0;
$11 = $10&65535;
_Stream_SetU16_BE($9,$11);
$12 = ((($1)) + 127|0);
$13 = HEAP32[(1407460)>>2]|0;
_Stream_SetU32_BE($12,$13);
$14 = ((($1)) + 89|0);
$15 = +HEAPF32[(1242156)>>2];
$16 = (~~(($15))&65535);
_Stream_SetU16_BE($14,$16);
$17 = ((($1)) + 95|0);
$18 = +HEAPF32[(1242160)>>2];
$19 = (~~(($18))&65535);
_Stream_SetU16_BE($17,$19);
$20 = ((($1)) + 101|0);
$21 = +HEAPF32[(1242164)>>2];
$22 = (~~(($21))&65535);
_Stream_SetU16_BE($20,$22);
$23 = +HEAPF32[(1242604)>>2];
$24 = $23 * 256.0;
$25 = $24 / 360.0;
$26 = (~~(($25))&255);
$27 = ((($1)) + 107|0);
HEAP8[$27>>0] = $26;
$28 = +HEAPF32[(1242608)>>2];
$29 = $28 * 256.0;
$30 = $29 / 360.0;
$31 = (~~(($30))&255);
$32 = ((($1)) + 112|0);
HEAP8[$32>>0] = $31;
$33 = (_Stream_Write($0,$1,131)|0);
$34 = ($33|0)==(0);
if (!($34)) {
$$0 = $33;
STACKTOP = sp;return ($$0|0);
}
$35 = HEAP32[351863]|0;
$36 = HEAP32[(1407460)>>2]|0;
$37 = (_Stream_Write($0,$35,$36)|0);
$38 = ($37|0)==(0);
if (!($38)) {
$$0 = $37;
STACKTOP = sp;return ($$0|0);
}
$39 = HEAP32[351863]|0;
$40 = HEAP32[(1407456)>>2]|0;
$41 = ($39|0)==($40|0);
if (!($41)) {
_Mem_Copy($1,2080,18);
$42 = ((($1)) + 14|0);
$43 = HEAP32[(1407460)>>2]|0;
_Stream_SetU32_BE($42,$43);
$44 = (_Stream_Write($0,$1,18)|0);
$45 = ($44|0)==(0);
if (!($45)) {
$$0 = $44;
STACKTOP = sp;return ($$0|0);
}
$46 = HEAP32[(1407456)>>2]|0;
$47 = HEAP32[(1407460)>>2]|0;
$48 = (_Stream_Write($0,$46,$47)|0);
$49 = ($48|0)==(0);
if (!($49)) {
$$0 = $48;
STACKTOP = sp;return ($$0|0);
}
}
_Mem_Copy($1,2112,303);
$50 = ((($1)) + 44|0);
$51 = +HEAPF32[(1242612)>>2];
$52 = $51 * 32.0;
$53 = (~~(($52))&65535);
_Stream_SetU16_BE($50,$53);
$54 = HEAP32[(1407540)>>2]|0;
$55 = $54&255;
$56 = ((($1)) + 78|0);
HEAP8[$56>>0] = $55;
$57 = HEAP32[(1407556)>>2]|0;
$58 = $57&255;
$59 = ((($1)) + 103|0);
HEAP8[$59>>0] = $58;
$60 = (8)?($57 >>> 8):($57);
$61 = $60&255;
$62 = ((($1)) + 109|0);
HEAP8[$62>>0] = $61;
$63 = (16)?($57 >>> 16):($57);
$64 = $63&255;
$65 = ((($1)) + 115|0);
HEAP8[$65>>0] = $64;
$66 = HEAP32[(1407564)>>2]|0;
$67 = $66&255;
$68 = ((($1)) + 130|0);
HEAP8[$68>>0] = $67;
$69 = (8)?($66 >>> 8):($66);
$70 = $69&255;
$71 = ((($1)) + 136|0);
HEAP8[$71>>0] = $70;
$72 = (16)?($66 >>> 16):($66);
$73 = $72&255;
$74 = ((($1)) + 142|0);
HEAP8[$74>>0] = $73;
$75 = HEAP32[(1407560)>>2]|0;
$76 = $75&255;
$77 = ((($1)) + 155|0);
HEAP8[$77>>0] = $76;
$78 = (8)?($75 >>> 8):($75);
$79 = $78&255;
$80 = ((($1)) + 161|0);
HEAP8[$80>>0] = $79;
$81 = (16)?($75 >>> 16):($75);
$82 = $81&255;
$83 = ((($1)) + 167|0);
HEAP8[$83>>0] = $82;
$84 = HEAP32[(1407588)>>2]|0;
$85 = $84&255;
$86 = ((($1)) + 184|0);
HEAP8[$86>>0] = $85;
$87 = (8)?($84 >>> 8):($84);
$88 = $87&255;
$89 = ((($1)) + 190|0);
HEAP8[$89>>0] = $88;
$90 = (16)?($84 >>> 16):($84);
$91 = $90&255;
$92 = ((($1)) + 196|0);
HEAP8[$92>>0] = $91;
$93 = HEAP32[(1407572)>>2]|0;
$94 = $93&255;
$95 = ((($1)) + 214|0);
HEAP8[$95>>0] = $94;
$96 = (8)?($93 >>> 8):($93);
$97 = $96&255;
$98 = ((($1)) + 220|0);
HEAP8[$98>>0] = $97;
$99 = (16)?($93 >>> 16):($93);
$100 = $99&255;
$101 = ((($1)) + 226|0);
HEAP8[$101>>0] = $100;
$102 = HEAP16[(1407514)>>1]|0;
$103 = $102&255;
$104 = ((($1)) + 260|0);
HEAP8[$104>>0] = $103;
$105 = HEAP16[703756]|0;
$106 = $105&255;
$107 = ((($1)) + 273|0);
HEAP8[$107>>0] = $106;
$108 = ((($1)) + 286|0);
$109 = HEAP32[(1407516)>>2]|0;
$110 = $109&65535;
_Stream_SetU16_BE($108,$110);
$111 = ((($1)) + 301|0);
$112 = (_Cw_WriteEndString($111,18828)|0);
$113 = (($112) + 303)|0;
$114 = (_Stream_Write($0,$1,$113)|0);
$115 = ($114|0)==(0);
if (!($115)) {
$$0 = $114;
STACKTOP = sp;return ($$0|0);
}
$116 = (_Stream_Write($0,2416,19)|0);
$117 = ($116|0)==(0);
if (!($117)) {
$$0 = $116;
STACKTOP = sp;return ($$0|0);
}
$$04950 = 767;
while(1) {
$118 = $$04950&65535;
$119 = (_Block_IsCustomDefined($118)|0);
$120 = ($119<<24>>24)==(0);
if (!($120)) {
$121 = (_Cw_WriteBockDef($0,$$04950)|0);
$122 = ($121|0)==(0);
if (!($122)) {
$$0 = $121;
label = 13;
break;
}
}
$123 = (($$04950) + -1)|0;
$124 = ($$04950>>>0)>(1);
if ($124) {
$$04950 = $123;
} else {
break;
}
}
if ((label|0) == 13) {
STACKTOP = sp;return ($$0|0);
}
$125 = (_Stream_Write($0,1408225,4)|0);
$$0 = $125;
STACKTOP = sp;return ($$0|0);
}
function _Cw_WriteEndString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$021$lcssa = 0, $$02124 = 0, $$02223 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 2|0);
$3 = ((($1)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)==(0);
if ($5) {
$$0$lcssa = 0;$$021$lcssa = $2;
} else {
$$02124 = $2;$$02223 = 0;$$025 = 0;
while(1) {
$6 = HEAP32[$1>>2]|0;
$7 = (($6) + ($$02223)|0);
$8 = HEAP8[$7>>0]|0;
$9 = (_Convert_CP437ToUtf8($8,$$02124)|0);
$10 = (($9) + ($$025))|0;
$11 = (($$02124) + ($9)|0);
$12 = (($$02223) + 1)|0;
$13 = HEAP16[$3>>1]|0;
$14 = $13&65535;
$15 = ($12>>>0)<($14>>>0);
if ($15) {
$$02124 = $11;$$02223 = $12;$$025 = $10;
} else {
$$0$lcssa = $10;$$021$lcssa = $11;
break;
}
}
}
$16 = $$0$lcssa&65535;
_Stream_SetU16_BE($0,$16);
HEAP8[$$021$lcssa>>0] = 0;
$17 = (($$0$lcssa) + 1)|0;
return ($17|0);
}
function _Cw_WriteBockDef($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sink65 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$06$0$$sroa_idx = 0, $$sroa$06$0$copyload = 0.0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$48$0$$sroa_idx9 = 0, $$sroa$48$0$copyload = 0.0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$5$0$copyload = 0.0, $$sroa$511$0$$sroa_idx12 = 0, $$sroa$511$0$copyload = 0.0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0;
var $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0.0, $113 = 0, $114 = 0, $115 = 0.0, $116 = 0, $117 = 0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0, $121 = 0.0, $122 = 0, $123 = 0;
var $124 = 0.0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0;
var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528|0;
$2 = sp;
$3 = sp + 520|0;
$4 = sp + 512|0;
$5 = (583428 + ($1)|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(5);
_Mem_Copy($2,2448,189);
$8 = ((($2)) + 8|0);
_String_Init_368($3,$8);
$9 = (8)?($1 >>> 8):($1);
$10 = $9&255;
_String_AppendHex($3,$10);
$11 = $1&255;
_String_AppendHex($3,$11);
$12 = ((($2)) + 17|0);
HEAP8[$12>>0] = $11;
$13 = ((($2)) + 24|0);
$14 = $1&65535;
_Stream_SetU16_BE($13,$14);
$15 = (578052 + ($1)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ((($2)) + 40|0);
HEAP8[$17>>0] = $16;
$18 = (579588 + ($1<<2)|0);
$19 = HEAP32[$18>>2]|0;
$20 = ((($2)) + 49|0);
_Stream_SetU32_BE($20,$19);
$21 = ($1*6)|0;
$22 = (($21) + 5)|0;
$23 = (624900 + ($22<<1)|0);
$24 = HEAP16[$23>>1]|0;
$25 = $24&255;
$26 = ((($2)) + 68|0);
HEAP8[$26>>0] = $25;
$27 = (8)?(($24&65535) >>> 8):(($24&65535));
$28 = $27&255;
$29 = ((($2)) + 74|0);
HEAP8[$29>>0] = $28;
$30 = (($21) + 4)|0;
$31 = (624900 + ($30<<1)|0);
$32 = HEAP16[$31>>1]|0;
$33 = $32&255;
$34 = ((($2)) + 69|0);
HEAP8[$34>>0] = $33;
$35 = (8)?(($32&65535) >>> 8):(($32&65535));
$36 = $35&255;
$37 = ((($2)) + 75|0);
HEAP8[$37>>0] = $36;
$38 = (624900 + ($21<<1)|0);
$39 = HEAP16[$38>>1]|0;
$40 = $39&255;
$41 = ((($2)) + 70|0);
HEAP8[$41>>0] = $40;
$42 = (8)?(($39&65535) >>> 8):(($39&65535));
$43 = $42&255;
$44 = ((($2)) + 76|0);
HEAP8[$44>>0] = $43;
$45 = $21 | 1;
$46 = (624900 + ($45<<1)|0);
$47 = HEAP16[$46>>1]|0;
$48 = $47&255;
$49 = ((($2)) + 71|0);
HEAP8[$49>>0] = $48;
$50 = (8)?(($47&65535) >>> 8):(($47&65535));
$51 = $50&255;
$52 = ((($2)) + 77|0);
HEAP8[$52>>0] = $51;
$53 = (($21) + 2)|0;
$54 = (624900 + ($53<<1)|0);
$55 = HEAP16[$54>>1]|0;
$56 = $55&255;
$57 = ((($2)) + 72|0);
HEAP8[$57>>0] = $56;
$58 = (8)?(($55&65535) >>> 8):(($55&65535));
$59 = $58&255;
$60 = ((($2)) + 78|0);
HEAP8[$60>>0] = $59;
$61 = (($21) + 3)|0;
$62 = (624900 + ($61<<1)|0);
$63 = HEAP16[$62>>1]|0;
$64 = $63&255;
$65 = ((($2)) + 73|0);
HEAP8[$65>>0] = $64;
$66 = (8)?(($63&65535) >>> 8):(($63&65535));
$67 = $66&255;
$68 = ((($2)) + 79|0);
HEAP8[$68>>0] = $67;
$69 = (570372 + ($1)|0);
$70 = HEAP8[$69>>0]|0;
$71 = ($70<<24>>24)==(0);
$72 = $71&1;
$73 = ((($2)) + 97|0);
HEAP8[$73>>0] = $72;
$74 = (584196 + ($1)|0);
$75 = HEAP8[$74>>0]|0;
$76 = ((($2)) + 110|0);
HEAP8[$76>>0] = $75;
$77 = (571140 + ($1)|0);
$78 = HEAP8[$77>>0]|0;
$79 = ($78<<24>>24)!=(0);
$80 = $79&1;
$81 = ((($2)) + 124|0);
HEAP8[$81>>0] = $80;
if ($7) {
$87 = ((($2)) + 133|0);
HEAP8[$87>>0] = 0;
$88 = (587268 + ($1)|0);
$$sink65 = $88;
} else {
$82 = (((597252 + (($1*12)|0)|0)) + 4|0);
$83 = +HEAPF32[$82>>2];
$84 = $83 * 16.0;
$85 = (~~(($84))&255);
$86 = ((($2)) + 133|0);
HEAP8[$86>>0] = $85;
$$sink65 = $5;
}
$89 = HEAP8[$$sink65>>0]|0;
$90 = ((($2)) + 146|0);
HEAP8[$90>>0] = $89;
$91 = (574980 + ($1<<2)|0);
$92 = +HEAPF32[$91>>2];
$93 = $92 * 128.0;
$94 = $93 + -1.0;
$95 = (~~(($94))&255);
$96 = (571908 + ($1<<2)|0);
$97 = HEAP32[$96>>2]|0;
$98 = $92 != 0.0;
$99 = $98 ? $95 : 0;
$100 = ((($2)) + 157|0);
HEAP8[$100>>0] = $99;
$101 = $97&255;
$102 = ((($2)) + 158|0);
HEAP8[$102>>0] = $101;
$103 = (8)?($97 >>> 8):($97);
$104 = $103&255;
$105 = ((($2)) + 159|0);
HEAP8[$105>>0] = $104;
$106 = (16)?($97 >>> 16):($97);
$107 = $106&255;
$108 = ((($2)) + 160|0);
HEAP8[$108>>0] = $107;
$$sroa$06$0$$sroa_idx = (588036 + (($1*12)|0)|0);
$$sroa$06$0$copyload = +HEAPF32[$$sroa$06$0$$sroa_idx>>2];
$$sroa$48$0$$sroa_idx9 = (((588036 + (($1*12)|0)|0)) + 4|0);
$$sroa$48$0$copyload = +HEAPF32[$$sroa$48$0$$sroa_idx9>>2];
$$sroa$511$0$$sroa_idx12 = (((588036 + (($1*12)|0)|0)) + 8|0);
$$sroa$511$0$copyload = +HEAPF32[$$sroa$511$0$$sroa_idx12>>2];
$$sroa$0$0$$sroa_idx = (597252 + (($1*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$4$0$$sroa_idx2 = (((597252 + (($1*12)|0)|0)) + 4|0);
$$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx2>>2];
$$sroa$5$0$$sroa_idx4 = (((597252 + (($1*12)|0)|0)) + 8|0);
$$sroa$5$0$copyload = +HEAPF32[$$sroa$5$0$$sroa_idx4>>2];
$109 = $$sroa$06$0$copyload * 16.0;
$110 = (~~(($109))&255);
$111 = ((($2)) + 174|0);
HEAP8[$111>>0] = $110;
$112 = $$sroa$48$0$copyload * 16.0;
$113 = (~~(($112))&255);
$114 = ((($2)) + 175|0);
HEAP8[$114>>0] = $113;
$115 = $$sroa$511$0$copyload * 16.0;
$116 = (~~(($115))&255);
$117 = ((($2)) + 176|0);
HEAP8[$117>>0] = $116;
$118 = $$sroa$0$0$copyload * 16.0;
$119 = (~~(($118))&255);
$120 = ((($2)) + 177|0);
HEAP8[$120>>0] = $119;
$121 = $$sroa$4$0$copyload * 16.0;
$122 = (~~(($121))&255);
$123 = ((($2)) + 178|0);
HEAP8[$123>>0] = $122;
$124 = $$sroa$5$0$copyload * 16.0;
$125 = (~~(($124))&255);
$126 = ((($2)) + 179|0);
HEAP8[$126>>0] = $125;
_Block_UNSAFE_GetName($4,$14);
$127 = $4;
$128 = $127;
$129 = HEAP32[$128>>2]|0;
$130 = (($127) + 4)|0;
$131 = $130;
$132 = HEAP32[$131>>2]|0;
$133 = $3;
$134 = $133;
HEAP32[$134>>2] = $129;
$135 = (($133) + 4)|0;
$136 = $135;
HEAP32[$136>>2] = $132;
$137 = ((($2)) + 187|0);
$138 = (_Cw_WriteEndString($137,$3)|0);
$139 = (($138) + 189)|0;
$140 = (_Stream_Write($0,$2,$139)|0);
STACKTOP = sp;return ($140|0);
}
function _String_Init_368($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP16[$$sroa$4$0$$sroa_idx2>>1] = 0;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 6|0);
HEAP16[$$sroa$5$0$$sroa_idx4>>1] = 4;
return;
}
function _Game_AddComponent($0) {
$0 = $0|0;
var $$sink = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315074]|0;
$2 = ($1|0)==(0|0);
$3 = HEAP32[315075]|0;
$4 = ((($3)) + 20|0);
$$sink = $2 ? 1260296 : $4;
HEAP32[$$sink>>2] = $0;
HEAP32[315075] = $0;
$5 = ((($0)) + 20|0);
HEAP32[$5>>2] = 0;
return;
}
function _ScheduledTask_Add($0,$1) {
$0 = +$0;
$1 = $1|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[315076]|0;
$3 = ($2|0)==(6);
if ($3) {
_Logger_Abort(23675);
}
$4 = HEAP32[315076]|0;
$5 = (($4) + 1)|0;
HEAP32[315076] = $5;
$$sroa$0$0$$sroa_idx = (379072 + (($4*24)|0)|0);
HEAPF64[$$sroa$0$0$$sroa_idx>>3] = 0.0;
$$sroa$4$0$$sroa_idx2 = (((379072 + (($4*24)|0)|0)) + 8|0);
HEAPF64[$$sroa$4$0$$sroa_idx2>>3] = $0;
$$sroa$5$0$$sroa_idx4 = (((379072 + (($4*24)|0)|0)) + 16|0);
HEAP32[$$sroa$5$0$$sroa_idx4>>2] = $1;
return ($4|0);
}
function _Game_GetWindowScale() {
var $$ = 0.0, $0 = 0, $1 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[351858]|0;
$1 = (+($0|0));
$2 = $1 / 640.0;
$3 = HEAP32[351859]|0;
$4 = (+($3|0));
$5 = $4 / 480.0;
$6 = $2 < $5;
$$ = $6 ? $2 : $5;
$7 = (~~(($$)));
$8 = (($7) + 1)|0;
return ($8|0);
}
function _Game_Scale($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 * 10.0;
$2 = $1 + 0.5;
$3 = (~~(($2)));
$4 = (+($3|0));
$5 = $4 / 10.0;
return (+$5);
}
function _Game_GetHotbarScale() {
var $0 = 0, $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Game_GetWindowScale()|0);
$1 = (+($0|0));
$2 = +HEAPF32[315047];
$3 = $2 * $1;
$4 = (+_Game_Scale($3));
return (+$4);
}
function _Game_GetInventoryScale() {
var $0 = 0, $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Game_GetWindowScale()|0);
$1 = (+($0|0));
$2 = +HEAPF32[315048];
$3 = $2 * 0.5;
$4 = $3 * $1;
$5 = (+_Game_Scale($4));
return (+$5);
}
function _Game_GetChatScale() {
var $0 = 0, $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Game_GetWindowScale()|0);
$1 = (+($0|0));
$2 = +HEAPF32[315049];
$3 = $2 * $1;
$4 = (+_Game_Scale($3));
return (+$4);
}
function _Game_UNSAFE_GetDefaultTexturePack($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 64;
_String_Format1($1,38320,10528);
$5 = (_File_Exists($1)|0);
$6 = ($5|0)==(0);
$7 = HEAP8[1408229]|0;
$8 = ($7<<24>>24)!=(0);
$or$cond = $6 | $8;
$9 = 10536;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = 10528;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + 4)|0;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = $or$cond ? $11 : $17;
$22 = $or$cond ? $14 : $20;
$23 = $0;
$24 = $23;
HEAP32[$24>>2] = $21;
$25 = (($23) + 4)|0;
$26 = $25;
HEAP32[$26>>2] = $22;
STACKTOP = sp;return;
}
function _Game_SetDefaultTexturePack($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_Copy(10528,$0);
_Options_Set(37826,$0);
return;
}
function _Game_ChangeTerrainAtlas($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Game_ValidateBitmap(11504,$0)|0);
$2 = ($1<<24>>24)==(0);
if ($2) {
$$0 = 0;
return ($$0|0);
}
$3 = ((($0)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($4|0)<($6|0);
if ($7) {
_Chat_AddRaw(23709);
_Chat_AddRaw(23760);
$$0 = 0;
return ($$0|0);
}
$8 = ($6|0)<(16);
if ($8) {
_Chat_AddRaw(23709);
_Chat_AddRaw(23798);
$$0 = 0;
return ($$0|0);
}
$9 = HEAP8[(1260360)>>0]|0;
$10 = ($9<<24>>24)==(0);
if (!($10)) {
$$0 = 0;
return ($$0|0);
}
_Atlas_Free();
_Atlas_Update($0);
_Event_RaiseVoid(1250296);
$$0 = 1;
return ($$0|0);
}
function _Game_ValidateBitmap($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 4|0;
$3 = sp;
$4 = HEAP32[315087]|0;
HEAP32[$2>>2] = $4;
$5 = HEAP32[(1260352)>>2]|0;
HEAP32[$3>>2] = $5;
$6 = HEAP32[$1>>2]|0;
$7 = ($6|0)==(0|0);
if ($7) {
_Chat_Add1(23836,$0);
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$8 = ((($1)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)>($4|0);
if (!($10)) {
$11 = ((($1)) + 8|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)>($5|0);
if (!($13)) {
$15 = (_Math_IsPowOf2($9)|0);
$16 = ($15<<24>>24)==(0);
if (!($16)) {
$17 = HEAP32[$11>>2]|0;
$18 = (_Math_IsPowOf2($17)|0);
$19 = ($18<<24>>24)==(0);
if (!($19)) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
}
_Chat_Add1(23878,$0);
_Chat_Add2(23979,$8,$11);
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
}
_Chat_Add1(23878,$0);
$14 = ((($1)) + 8|0);
_Chat_Add4(23920,$8,$14,$2,$3);
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _Game_SetViewDistance($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315050]|0;
$2 = ($1|0)>($0|0);
$3 = $2 ? $0 : $1;
$4 = HEAP32[315051]|0;
$5 = ($3|0)==($4|0);
if ($5) {
return;
}
HEAP32[315051] = $3;
_Event_RaiseVoid(1251076);
_Game_UpdateProjection();
return;
}
function _Game_UpdateProjection() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1230632)>>2]|0;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
FUNCTION_TABLE_vi[$2 & 511]((1260428));
_Gfx_LoadMatrix(0,(1260428));
_Event_RaiseVoid((1251596));
return;
}
function _Game_UserSetViewDistance($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[315052] = $0;
_Options_SetInt(24049,$0);
_Game_SetViewDistance($0);
return;
}
function _Game_SetFov($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315053]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[315053] = $0;
_Game_UpdateProjection();
return;
}
function _Game_Disconnect($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Event_RaiseVoid((1259916));
_Game_Reset();
_DisconnectScreen_Show($0,$1);
return;
}
function _Game_Reset() {
var $$0 = 0, $$05 = 0, $$06 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
_World_Reset();
_Event_RaiseVoid(1253676);
$0 = HEAP16[(18832)>>1]|0;
$1 = ($0<<16>>16)==(0);
if (!($1)) {
HEAP16[(18832)>>1] = 0;
_TexturePack_ExtractCurrent(0);
}
$$05 = HEAP32[315074]|0;
$2 = ($$05|0)==(0|0);
if ($2) {
return;
}
$$06 = $$05;
while(1) {
$3 = ((($$06)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==(0|0);
if (!($5)) {
FUNCTION_TABLE_v[$4 & 127]();
}
$6 = ((($$06)) + 20|0);
$$0 = HEAP32[$6>>2]|0;
$7 = ($$0|0)==(0|0);
if ($7) {
break;
} else {
$$06 = $$0;
}
}
return;
}
function _Game_UpdateBlock($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (4)?($0 >> 4):($0);
$5 = (4)?($1 >> 4):($1);
$6 = (4)?($2 >> 4):($2);
$7 = (_World_GetBlock_418($0,$1,$2)|0);
_World_SetBlock($0,$1,$2,$3);
$8 = HEAP32[312229]|0;
$9 = ($8|0)==(0|0);
if (!($9)) {
_EnvRenderer_OnBlockChanged($0,$1,$2,$7,$3);
}
_Lighting_OnBlockChanged($0,$1,$2,$7,$3);
$10 = (_MapRenderer_GetChunk($4,$5,$6)|0);
$11 = $3&65535;
$12 = (583428 + ($11)|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(4);
$15 = $14&1;
$16 = ((($10)) + 6|0);
$17 = HEAP8[$16>>0]|0;
$18 = (3)?(($17&255) >>> 3):(($17&255));
$19 = $18&255;
$20 = $19 & $15;
$21 = $20&255;
$22 = ($21 << 3)&255;
$23 = $22 & 8;
$24 = $17 & -9;
$25 = $23 | $24;
HEAP8[$16>>0] = $25;
_MapRenderer_RefreshChunk($4,$5,$6);
return;
}
function _World_GetBlock_418($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _Game_ChangeBlock($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_World_GetBlock_418($0,$1,$2)|0);
_Game_UpdateBlock($0,$1,$2,$3);
$5 = HEAP32[(1384536)>>2]|0;
FUNCTION_TABLE_viiiii[$5 & 3]($0,$1,$2,$4,$3);
return;
}
function _Game_CanPick($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (583428 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
switch ($3<<24>>24) {
case 5: {
$$0 = 1;
return ($$0|0);
break;
}
case 4: {
$$0 = 0;
return ($$0|0);
break;
}
default: {
$4 = (578052 + ($1)|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)!=(1);
$7 = HEAP8[1408230]|0;
$8 = ($7<<24>>24)!=(0);
$9 = $6 | $8;
$10 = $9&1;
$$0 = $10;
return ($$0|0);
}
}
return (0)|0;
}
function _Game_UpdateTexture($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = (_Png_Decode($4,$1)|0);
$6 = ($5|0)==(0);
if ($6) {
$7 = (_Game_ValidateBitmap($2,$4)|0);
$8 = ($7<<24>>24)==(0);
if ($8) {
$13 = 0;
} else {
_Gfx_DeleteTexture($0);
$9 = ($3|0)==(0|0);
if (!($9)) {
$10 = (_Utils_CalcSkinType($4)|0);
HEAP8[$3>>0] = $10;
}
$11 = (_Gfx_CreateTexture($4,1,0)|0);
HEAP32[$0>>2] = $11;
$13 = 1;
}
} else {
_Logger_Warn2($5,37484,$2);
$13 = 0;
}
$12 = HEAP32[$4>>2]|0;
_Mem_Free($12);
STACKTOP = sp;return ($13|0);
}
function _Game_UpdateDimensions() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[351858]|0;
$1 = ($0|0)>(1);
$2 = $1 ? $0 : 1;
HEAP32[133868] = $2;
$3 = HEAP32[351859]|0;
$4 = ($3|0)>(1);
$5 = $4 ? $3 : 1;
HEAP32[(535476)>>2] = $5;
return;
}
function _Game_SetFpsLimit($0) {
$0 = $0|0;
var $$0 = 0.0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[315054] = $0;
switch ($0|0) {
case 4: {
$$0 = 6.9444446563720703;
break;
}
case 3: {
$$0 = 8.3333330154418945;
break;
}
case 2: {
$$0 = 16.666666030883789;
break;
}
case 1: {
$$0 = 33.333332061767578;
break;
}
default: {
$$0 = 0.0;
}
}
$1 = ($0|0)==(0);
$2 = $1&1;
_Gfx_SetFpsLimit($2,$$0);
return;
}
function _Game_Free($0) {
$0 = $0|0;
var $$0 = 0, $$05 = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Atlas_Free();
_Event_Unregister(1253676,0,284);
_Event_Unregister((1254196),0,285);
_Event_Unregister((1250816),0,7);
_Event_Unregister((1251336),0,286);
_Event_Unregister((1256016),0,287);
_Event_Unregister((1256276),0,288);
$$05 = HEAP32[315074]|0;
$1 = ($$05|0)==(0|0);
if (!($1)) {
$$06 = $$05;
while(1) {
$2 = ((($$06)) + 4|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if (!($4)) {
FUNCTION_TABLE_v[$3 & 127]();
}
$5 = ((($$06)) + 20|0);
$$0 = HEAP32[$5>>2]|0;
$6 = ($$0|0)==(0|0);
if ($6) {
break;
} else {
$$06 = $$0;
}
}
}
HEAP32[2939] = 9;
_Gfx_Free();
$7 = (_Options_ChangedCount()|0);
$8 = ($7|0)==(0);
if ($8) {
return;
}
_Options_Load();
_Options_Save();
return;
}
function _HandleOnNewMap($0) {
$0 = $0|0;
var $$0 = 0, $$05 = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$05 = HEAP32[315074]|0;
$1 = ($$05|0)==(0|0);
if ($1) {
return;
}
$$06 = $$05;
while(1) {
$2 = ((($$06)) + 12|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if (!($4)) {
FUNCTION_TABLE_v[$3 & 127]();
}
$5 = ((($$06)) + 20|0);
$$0 = HEAP32[$5>>2]|0;
$6 = ($$0|0)==(0|0);
if ($6) {
break;
} else {
$$06 = $$0;
}
}
return;
}
function _HandleOnNewMapLoaded($0) {
$0 = $0|0;
var $$0 = 0, $$05 = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$05 = HEAP32[315074]|0;
$1 = ($$05|0)==(0|0);
if ($1) {
return;
}
$$06 = $$05;
while(1) {
$2 = ((($$06)) + 16|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if (!($4)) {
FUNCTION_TABLE_v[$3 & 127]();
}
$5 = ((($$06)) + 20|0);
$$0 = HEAP32[$5>>2]|0;
$6 = ($$0|0)==(0|0);
if ($6) {
break;
} else {
$$06 = $$0;
}
}
return;
}
function _HandleTextureChanged($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = (_String_CaselessEqualsConst($2,24037)|0);
$5 = ($4|0)==(0);
do {
if (!($5)) {
$6 = (_Png_Decode($3,$1)|0);
$7 = ($6|0)==(0);
if (!($7)) {
_Logger_Warn2($6,37484,$2);
$8 = HEAP32[$3>>2]|0;
_Mem_Free($8);
break;
}
$9 = (_Game_ChangeTerrainAtlas($3)|0);
$10 = ($9<<24>>24)==(0);
if ($10) {
$11 = HEAP32[$3>>2]|0;
_Mem_Free($11);
}
}
} while(0);
STACKTOP = sp;return;
}
function _HandleLowVRAMDetected($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315052]|0;
$2 = ($1|0)<(17);
if ($2) {
_Logger_Abort(24058);
}
$3 = HEAP32[315052]|0;
$4 = (($3|0) / 2)&-1;
$5 = ($4|0)>(16);
$6 = $5 ? $4 : 16;
HEAP32[315052] = $6;
_MapRenderer_Refresh();
$7 = HEAP32[315052]|0;
_Game_SetViewDistance($7);
_Chat_AddRaw(24079);
return;
}
function _Game_OnResize($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Game_UpdateDimensions();
_Gfx_OnWindowResize();
_Game_UpdateProjection();
_Gui_Layout();
return;
}
function _Game_Run($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Window_Create($0,$1);
_Window_SetTitle($2);
_Game_Load();
_Event_RaiseVoid((1256016));
_Game_RunLoop();
return;
}
function _Game_Load() {
var $$0 = 0, $$05 = 0, $$06 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[2939] = 289;
HEAP32[315051] = 512;
HEAP32[315050] = 32768;
HEAP32[315052] = 512;
HEAP32[315053] = 70;
_Gfx_Init();
$0 = (_Options_GetBool(33237,0)|0);
HEAP8[(1260361)>>0] = $0;
_Game_UpdateDimensions();
_LoadOptions();
_Event_Register(1253676,0,284);
_Event_Register((1254196),0,285);
_Event_Register((1250816),0,7);
_Event_Register((1251336),0,286);
_Event_Register((1256016),0,287);
_Event_Register((1256276),0,288);
_TextureCache_Init();
_InputHandler_Init();
_Game_AddComponent(10612);
_Game_AddComponent(11212);
_Game_AddComponent(10844);
_Game_AddComponent(17112);
_Game_AddComponent(11268);
_Game_AddComponent(12744);
_Game_AddComponent(11316);
_Game_AddComponent(11648);
_Game_AddComponent(11728);
_Game_AddComponent(17964);
_Game_AddComponent(11704);
_World_Reset();
_Game_AddComponent(10656);
_Game_AddComponent(11760);
_Game_AddComponent(11448);
_Game_AddComponent(17868);
_Camera_Init();
_Game_UpdateProjection();
_Game_AddComponent(11544);
_Game_AddComponent(17844);
_Game_AddComponent(11568);
_Gfx_SetDepthTest(1);
_Game_AddComponent(17160);
_Game_AddComponent(10552);
_Game_AddComponent(10576);
$$05 = HEAP32[315074]|0;
$1 = ($$05|0)==(0|0);
if (!($1)) {
$$06 = $$05;
while(1) {
$2 = HEAP32[$$06>>2]|0;
$3 = ($2|0)==(0|0);
if (!($3)) {
FUNCTION_TABLE_v[$2 & 127]();
}
$4 = ((($$06)) + 20|0);
$$0 = HEAP32[$4>>2]|0;
$5 = ($$0|0)==(0|0);
if ($5) {
break;
} else {
$$06 = $$0;
}
}
}
_ExtractInitialTexturePack();
$6 = (_ScheduledTask_Add(0.050000000000000003,290)|0);
HEAP32[315077] = $6;
_Gfx_SetFpsLimit(1,0.0);
$7 = (_Options_GetEnum(31850,0,2640,6)|0);
_Game_SetFpsLimit($7);
$8 = (_Gfx_WarnIfNecessary()|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
$13 = HEAP32[346132]|0;
FUNCTION_TABLE_v[$13 & 127]();
return;
}
$10 = HEAP8[1408223]|0;
$11 = $10 | 2;
$12 = $11&255;
_EnvRenderer_SetMode($12);
$13 = HEAP32[346132]|0;
FUNCTION_TABLE_v[$13 & 127]();
return;
}
function _Game_RunLoop() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Stopwatch_Measure()|0);
$1 = (getTempRet0() | 0);
$2 = 535496;
$3 = $2;
HEAP32[$3>>2] = $0;
$4 = (($2) + 4)|0;
$5 = $4;
HEAP32[$5>>2] = $1;
_emscripten_set_main_loop((69|0),0,0);
return;
}
function _Game_DoFrame() {
var $$0 = 0.0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408300]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
$2 = (_Stopwatch_Measure()|0);
$3 = (getTempRet0() | 0);
$4 = 535496;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (_Stopwatch_ElapsedMicroseconds($6,$9,$2,$3)|0);
$11 = (getTempRet0() | 0);
$12 = (+($10>>>0)) + (4294967296.0*(+($11>>>0)));
$13 = $12 / 1.0E+6;
$14 = $13 > 1.0;
$$0 = $14 ? 1.0 : $13;
$15 = $$0 > 0.0;
if (!($15)) {
return;
}
$16 = (_Stopwatch_Measure()|0);
$17 = (getTempRet0() | 0);
$18 = 535496;
$19 = $18;
HEAP32[$19>>2] = $16;
$20 = (($18) + 4)|0;
$21 = $20;
HEAP32[$21>>2] = $17;
_Game_RenderFrame($$0);
return;
}
function _Game_RenderFrame($0) {
$0 = +$0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$4$0$$sroa_idx6 = 0, $$sroa$4$0$copyload = 0.0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0;
var $24 = 0.0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP8[(1260360)>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
$4 = (_Gfx_TryRestoreContext()|0);
$5 = ($4<<24>>24)==(0);
if ($5) {
$6 = HEAP32[(1384532)>>2]|0;
FUNCTION_TABLE_vi[$6 & 511](0);
STACKTOP = sp;return;
}
}
_Gfx_BeginFrame();
$7 = HEAP32[315125]|0;
_Gfx_BindIb($7);
$8 = +HEAPF64[(535480)>>3];
$9 = $8 + $0;
HEAPF64[(535480)>>3] = $9;
HEAP32[315073] = 0;
$10 = HEAP32[(1230632)>>2]|0;
$11 = ((($10)) + 20|0);
$12 = HEAP32[$11>>2]|0;
FUNCTION_TABLE_vd[$12 & 1]($0);
$13 = HEAP8[1408301]|0;
$14 = ($13<<24>>24)==(0);
if ($14) {
$15 = (_Gui_GetInputGrab()|0);
$16 = ($15|0)==(0|0);
if ($16) {
_PauseScreen_Show();
}
}
$17 = (_KeyBind_IsPressed(24)|0);
$18 = ($17<<24>>24)==(0);
if (!($18)) {
$19 = (_Gui_GetInputGrab()|0);
$20 = ($19|0)==(0|0);
if ($20) {
$21 = HEAP32[315072]|0;
(_InputHandler_SetFOV($21)|0);
}
}
_PerformScheduledTasks($0);
$22 = HEAP32[315077]|0;
$$sroa$0$0$$sroa_idx = (379072 + (($22*24)|0)|0);
$$sroa$0$0$copyload = +HEAPF64[$$sroa$0$0$$sroa_idx>>3];
$$sroa$4$0$$sroa_idx6 = (((379072 + (($22*24)|0)|0)) + 8|0);
$$sroa$4$0$copyload = +HEAPF64[$$sroa$4$0$$sroa_idx6>>3];
$23 = $$sroa$0$0$copyload / $$sroa$4$0$copyload;
$24 = $23;
_LocalPlayer_SetInterpPosition($24);
_Gfx_Clear();
$25 = HEAP32[(1230632)>>2]|0;
$26 = ((($25)) + 16|0);
$27 = HEAP32[$26>>2]|0;
FUNCTION_TABLE_vid[$27 & 63]($1,$24);
;HEAP32[(1230620)>>2]=HEAP32[$1>>2]|0;HEAP32[(1230620)+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[(1230620)+8>>2]=HEAP32[$1+8>>2]|0;
_UpdateViewMatrix();
$28 = (_Gui_GetBlocksWorld()|0);
$29 = ($28|0)==(0|0);
$30 = HEAP32[351863]|0;
$31 = ($30|0)!=(0|0);
$or$cond = $29 & $31;
if ($or$cond) {
_Game_Render3D($0,$24);
} else {
_PickedPos_SetAsInvalid(1260220);
}
_Gui_RenderGui($0);
_Gfx_EndFrame();
STACKTOP = sp;return;
}
function _PerformScheduledTasks($0) {
$0 = +$0;
var $$05 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
$2 = HEAP32[315076]|0;
$3 = ($2|0)>(0);
if (!($3)) {
STACKTOP = sp;return;
}
$4 = ((($1)) + 8|0);
$5 = ((($1)) + 16|0);
$$05 = 0;
while(1) {
$6 = (379072 + (($$05*24)|0)|0);
;HEAP32[$1>>2]=HEAP32[$6>>2]|0;HEAP32[$1+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[$6+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[$6+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[$6+20>>2]|0;
$7 = +HEAPF64[$1>>3];
$8 = $7 + $0;
HEAPF64[$1>>3] = $8;
$9 = +HEAPF64[$4>>3];
$10 = !($8 >= $9);
if (!($10)) {
while(1) {
$11 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$11 & 511]($1);
$12 = +HEAPF64[$4>>3];
$13 = +HEAPF64[$1>>3];
$14 = $13 - $12;
HEAPF64[$1>>3] = $14;
$15 = !($14 >= $12);
if ($15) {
break;
}
}
}
;HEAP32[$6>>2]=HEAP32[$1>>2]|0;HEAP32[$6+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$6+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$6+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$6+16>>2]=HEAP32[$1+16>>2]|0;HEAP32[$6+20>>2]=HEAP32[$1+20>>2]|0;
$16 = (($$05) + 1)|0;
$17 = HEAP32[315076]|0;
$18 = ($16|0)<($17|0);
if ($18) {
$$05 = $16;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _UpdateViewMatrix() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1230632)>>2]|0;
$1 = ((($0)) + 8|0);
$2 = HEAP32[$1>>2]|0;
FUNCTION_TABLE_vi[$2 & 511]((1260364));
_Gfx_LoadMatrix(1,(1260364));
_FrustumCulling_CalcFrustumEquations((1260428),(1260364));
return;
}
function _Game_Render3D($0,$1) {
$0 = +$0;
$1 = +$1;
var $$sroa$0$0$copyload = 0.0, $$sroa$5$0$copyload = 0.0, $$sroa$6$0$copyload = 0.0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond16 = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_EnvRenderer_ShouldRenderSkybox()|0);
$3 = ($2<<24>>24)==(0);
if (!($3)) {
_EnvRenderer_RenderSkybox();
}
_AxisLinesRenderer_Render();
_Entities_RenderModels($0,$1);
_Entities_RenderNames();
_Particles_Render($1);
$4 = HEAP32[(1230632)>>2]|0;
$5 = ((($4)) + 36|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$6 & 511](1260220);
_EnvRenderer_UpdateFog();
_EnvRenderer_RenderSky();
_EnvRenderer_RenderClouds();
_MapRenderer_Update($0);
_MapRenderer_RenderNormal($0);
_EnvRenderer_RenderMapSides();
_Entities_DrawShadows();
$7 = HEAP8[(1260280)>>0]|0;
$8 = ($7<<24>>24)==(0);
$9 = HEAP8[1408238]|0;
$10 = ($9<<24>>24)!=(0);
$or$cond = $8 | $10;
if (!($or$cond)) {
_PickedPosRenderer_Update(1260220);
_PickedPosRenderer_Render();
}
$$sroa$0$0$copyload = +HEAPF32[(1230620)>>2];
$$sroa$5$0$copyload = +HEAPF32[(1230624)>>2];
$$sroa$6$0$copyload = +HEAPF32[(1230628)>>2];
$11 = HEAP32[(1407516)>>2]|0;
$12 = (+($11|0));
$13 = $$sroa$5$0$copyload < $12;
do {
if ($13) {
$14 = $$sroa$0$0$copyload < 0.0;
$15 = $$sroa$6$0$copyload < 0.0;
$or$cond16 = $14 | $15;
if (!($or$cond16)) {
$16 = HEAP32[(1407464)>>2]|0;
$17 = (+($16|0));
$18 = $$sroa$0$0$copyload > $17;
if (!($18)) {
$19 = HEAP32[(1407472)>>2]|0;
$20 = (+($19|0));
$21 = $$sroa$6$0$copyload > $20;
if (!($21)) {
label = 10;
break;
}
}
}
_MapRenderer_RenderTranslucent($0);
_EnvRenderer_RenderMapEdges();
} else {
label = 10;
}
} while(0);
if ((label|0) == 10) {
_EnvRenderer_RenderMapEdges();
_MapRenderer_RenderTranslucent($0);
}
$22 = HEAP8[(1260280)>>0]|0;
$23 = ($22<<24>>24)==(0);
$24 = HEAP8[1408238]|0;
$25 = ($24<<24>>24)!=(0);
$or$cond3 = $23 | $25;
if (!($or$cond3)) {
$26 = HEAP16[(1260282)>>1]|0;
$27 = $26&65535;
$28 = (583428 + ($27)|0);
$29 = HEAP8[$28>>0]|0;
$30 = ($29<<24>>24)==(3);
if ($30) {
_PickedPosRenderer_Render();
}
}
_Selections_Render();
_Entities_RenderHoveredNames();
_InputHandler_PickBlocks();
$31 = HEAP8[1408238]|0;
$32 = ($31<<24>>24)==(0);
if (!($32)) {
return;
}
_HeldBlockRenderer_Render($0);
return;
}
function _Game_WarnFunc($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = sp + 8|0;
$3 = $0;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
$13 = ((($1)) + 4|0);
$14 = HEAP16[$13>>1]|0;
$15 = ($14<<16>>16)==(0);
if ($15) {
STACKTOP = sp;return;
}
while(1) {
_String_UNSAFE_SplitBy($1,10,$2);
_Chat_Add1(24147,$2);
$16 = HEAP16[$13>>1]|0;
$17 = ($16<<16>>16)==(0);
if ($17) {
break;
}
}
STACKTOP = sp;return;
}
function _LoadOptions() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Options_GetBool(24118,0)|0);
HEAP8[1408229] = $0;
$1 = (_Options_GetBool(24131,0)|0);
HEAP8[1408233] = $1;
$2 = (_Options_GetBool(30444,1)|0);
HEAP8[1408234] = $2;
$3 = (_Options_GetBool(30427,1)|0);
HEAP8[1408235] = $3;
$4 = (_Options_GetBool(30538,0)|0);
HEAP8[1408232] = $4;
$5 = (_Options_GetBool(31859,1)|0);
HEAP8[1408237] = $5;
$6 = (_Options_GetInt(24049,16,4096,512)|0);
HEAP32[315051] = $6;
HEAP32[315052] = $6;
$7 = (_Options_GetInt(31376,1,179,70)|0);
HEAP32[315071] = $7;
HEAP32[315053] = $7;
HEAP32[315072] = $7;
$8 = HEAP8[1408229]|0;
$9 = ($8<<24>>24)==(0);
if ($9) {
$10 = (_Options_GetBool(31426,0)|0);
$11 = ($10<<24>>24)!=(0);
$phitmp = $11&1;
$12 = $phitmp;
} else {
$12 = 0;
}
HEAP8[1408230] = $12;
$13 = (_Options_GetBool(30402,1)|0);
HEAP8[1408236] = $13;
$14 = (+_Options_GetFloat(33553,0.25,5.0,1.0));
HEAPF32[315048] = $14;
$15 = (+_Options_GetFloat(33572,0.25,5.0,1.0));
HEAPF32[315047] = $15;
$16 = (+_Options_GetFloat(33500,0.34999999403953552,5.0,1.0));
HEAPF32[315049] = $16;
return;
}
function _ExtractInitialTexturePack() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
_Options_Get(37826,10528,37841);
_TexturePack_ExtractZip_File(10536);
_Game_UNSAFE_GetDefaultTexturePack($0);
$1 = (_String_CaselessEqualsConst($0,37841)|0);
$2 = ($1|0)==(0);
if (!($2)) {
STACKTOP = sp;return;
}
_TexturePack_ExtractZip_File($0);
STACKTOP = sp;return;
}
function _FlatgrassGen_Generate() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gen_Init();
HEAP32[315078] = 24152;
$0 = HEAP32[(1407468)>>2]|0;
$1 = (($0|0) / 2)&-1;
$2 = HEAP32[(1407480)>>2]|0;
_FlatgrassGen_MapSet($1,$2,0);
HEAP32[315078] = 24171;
$3 = HEAP32[(1407468)>>2]|0;
$4 = (($3|0) / 2)&-1;
$5 = (($4) + -2)|0;
_FlatgrassGen_MapSet(0,$5,3);
HEAP32[315078] = 24191;
$6 = HEAP32[(1407468)>>2]|0;
$7 = (($6|0) / 2)&-1;
$8 = (($7) + -1)|0;
_FlatgrassGen_MapSet($8,$8,2);
HEAP8[1408239] = 1;
return;
}
function _Gen_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[315082] = 0.0;
HEAP32[315078] = 1408293;
HEAP8[1408239] = 0;
return;
}
function _FlatgrassGen_MapSet($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$024 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407488)>>2]|0;
$4 = HEAP32[315083]|0;
$5 = ($0|0)>(0);
$6 = $5 ? $0 : 0;
$7 = ($1|0)>(0);
$8 = $7 ? $1 : 0;
HEAPF32[315082] = 0.0;
$9 = ($6|0)>($8|0);
if ($9) {
return;
}
$10 = (1 - ($6))|0;
$11 = (($10) + ($8))|0;
$12 = (+($11|0));
$$024 = $6;
while(1) {
$13 = Math_imul($$024, $3)|0;
$14 = (($4) + ($13)|0);
_Mem_Set($14,$2,$3);
$15 = (($$024) - ($6))|0;
$16 = (+($15|0));
$17 = $16 / $12;
HEAPF32[315082] = $17;
$18 = (($$024) + 1)|0;
$19 = ($$024>>>0)<($8>>>0);
if ($19) {
$$024 = $18;
} else {
break;
}
}
return;
}
function _NotchyGen_Generate() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gen_Init();
$0 = HEAP32[(1407464)>>2]|0;
$1 = HEAP32[(1407472)>>2]|0;
$2 = Math_imul($1, $0)|0;
$3 = (_Mem_Alloc($2,2,24212)|0);
HEAP32[315084] = $3;
$4 = HEAP32[315079]|0;
_Random_Seed(535504,$4);
$5 = HEAP32[(1407468)>>2]|0;
$6 = (($5|0) / 2)&-1;
HEAP32[315085] = $6;
HEAP32[315086] = $5;
_NotchyGen_CreateHeightmap();
_NotchyGen_CreateStrata();
_NotchyGen_CarveCaves();
_NotchyGen_CarveOreVeins(0.89999997615814208,24226,16);
_NotchyGen_CarveOreVeins(0.69999998807907104,24243,15);
_NotchyGen_CarveOreVeins(0.5,24260,14);
_NotchyGen_FloodFillWaterBorders();
_NotchyGen_FloodFillWater();
_NotchyGen_FloodFillLava();
_NotchyGen_CreateSurfaceLayer();
_NotchyGen_PlantFlowers();
_NotchyGen_PlantMushrooms();
_NotchyGen_PlantTrees();
$7 = HEAP32[315084]|0;
_Mem_Free($7);
HEAP32[315084] = 0;
HEAP8[1408239] = 1;
return;
}
function _NotchyGen_CreateHeightmap() {
var $$03641 = 0, $$037 = 0.0, $$03842 = 0, $$043 = 0, $$1 = 0.0, $$139$lcssa = 0, $$13940 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $2 = 0;
var $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 20512|0;
$0 = sp + 12304|0;
$1 = sp + 4104|0;
$2 = sp;
_CombinedNoise_Init($0);
_CombinedNoise_Init($1);
_OctaveNoise_Init($2,6);
HEAP32[315078] = 24436;
$3 = HEAP32[(1407472)>>2]|0;
$4 = ($3|0)>(0);
if (!($4)) {
STACKTOP = sp;return;
}
$$03842 = 0;$$043 = 0;$7 = $3;
while(1) {
$5 = (+($$043|0));
$6 = (+($7|0));
$8 = $5 / $6;
HEAPF32[315082] = $8;
$9 = HEAP32[(1407464)>>2]|0;
$10 = ($9|0)>(0);
if ($10) {
$11 = $5 * 1.2999999523162842;
$$03641 = 0;$$13940 = $$03842;
while(1) {
$12 = (+($$03641|0));
$13 = $12 * 1.2999999523162842;
$14 = (+_CombinedNoise_Calc($0,$13,$11));
$15 = $14 / 6.0;
$16 = $15 + -4.0;
$17 = (+_OctaveNoise_Calc($2,$12,$5));
$18 = !($17 <= 0.0);
if ($18) {
$$037 = $16;
} else {
$19 = (+_CombinedNoise_Calc($1,$13,$11));
$20 = $19 / 5.0;
$21 = $20 + 6.0;
$22 = $16 > $21;
$23 = $22 ? $16 : $21;
$$037 = $23;
}
$24 = $$037 * 0.5;
$25 = $24 < 0.0;
$26 = $24 * 0.80000001192092896;
$$1 = $25 ? $26 : $24;
$27 = HEAP32[315085]|0;
$28 = (+($27|0));
$29 = $$1 + $28;
$30 = (~~(($29)));
$31 = HEAP32[315086]|0;
$32 = ($31|0)>($30|0);
$33 = $32 ? $30 : $31;
HEAP32[315086] = $33;
$34 = $30&65535;
$35 = HEAP32[315084]|0;
$36 = (($$13940) + 1)|0;
$37 = (($35) + ($$13940<<1)|0);
HEAP16[$37>>1] = $34;
$38 = (($$03641) + 1)|0;
$39 = HEAP32[(1407464)>>2]|0;
$40 = ($38|0)<($39|0);
if ($40) {
$$03641 = $38;$$13940 = $36;
} else {
$$139$lcssa = $36;
break;
}
}
} else {
$$139$lcssa = $$03842;
}
$41 = (($$043) + 1)|0;
$42 = HEAP32[(1407472)>>2]|0;
$43 = ($41|0)<($42|0);
if ($43) {
$$03842 = $$139$lcssa;$$043 = $41;$7 = $42;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _NotchyGen_CreateStrata() {
var $$05764 = 0, $$05871 = 0, $$05963 = 0, $$06175 = 0, $$076 = 0, $$16065 = 0, $$162$lcssa = 0, $$16270 = 0, $$166 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0.0, $60 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 4112|0;
$0 = sp;
$1 = HEAP32[(1407480)>>2]|0;
$2 = (_NotchyGen_CreateStrataFast()|0);
_OctaveNoise_Init($0,8);
HEAP32[315078] = 24408;
$3 = HEAP32[(1407472)>>2]|0;
$4 = ($3|0)>(0);
if (!($4)) {
STACKTOP = sp;return;
}
$$06175 = 0;$$076 = 0;$7 = $3;
while(1) {
$5 = (+($$076|0));
$6 = (+($7|0));
$8 = $5 / $6;
HEAPF32[315082] = $8;
$9 = HEAP32[(1407464)>>2]|0;
$10 = ($9|0)>(0);
if ($10) {
$$05871 = 0;$$16270 = $$06175;$31 = $9;
while(1) {
$11 = (+($$05871|0));
$12 = (+_OctaveNoise_Calc($0,$11,$5));
$13 = $12 / 24.0;
$14 = $13 + -4.0;
$15 = (~~(($14)));
$16 = HEAP32[315084]|0;
$17 = (($$16270) + 1)|0;
$18 = (($16) + ($$16270<<1)|0);
$19 = HEAP16[$18>>1]|0;
$20 = $19 << 16 >> 16;
$21 = (($20) + ($15))|0;
$22 = ($21|0)<($1|0);
$23 = $22 ? $21 : $1;
$24 = ($1|0)>($20|0);
$25 = $24 ? $20 : $1;
$26 = ($2|0)>($23|0);
if (!($26)) {
$27 = HEAP32[(1407472)>>2]|0;
$28 = Math_imul($27, $2)|0;
$29 = (($28) + ($$076))|0;
$30 = Math_imul($29, $31)|0;
$32 = (($30) + ($$05871))|0;
$$05764 = $2;$$05963 = $32;
while(1) {
$33 = HEAP32[315083]|0;
$34 = (($33) + ($$05963)|0);
HEAP8[$34>>0] = 1;
$35 = HEAP32[(1407488)>>2]|0;
$36 = (($35) + ($$05963))|0;
$37 = (($$05764) + 1)|0;
$38 = ($$05764|0)<($23|0);
if ($38) {
$$05764 = $37;$$05963 = $36;
} else {
break;
}
}
}
$39 = ($23|0)>(0);
$40 = $39 ? $23 : 0;
$41 = (($40) + 1)|0;
$42 = ($40|0)<($25|0);
if ($42) {
$43 = HEAP32[(1407472)>>2]|0;
$44 = Math_imul($43, $41)|0;
$45 = (($44) + ($$076))|0;
$46 = HEAP32[(1407464)>>2]|0;
$47 = Math_imul($45, $46)|0;
$48 = (($47) + ($$05871))|0;
$$16065 = $48;$$166 = $41;
while(1) {
$49 = HEAP32[315083]|0;
$50 = (($49) + ($$16065)|0);
HEAP8[$50>>0] = 3;
$51 = HEAP32[(1407488)>>2]|0;
$52 = (($51) + ($$16065))|0;
$53 = (($$166) + 1)|0;
$54 = ($$166|0)<($25|0);
if ($54) {
$$16065 = $52;$$166 = $53;
} else {
break;
}
}
}
$55 = (($$05871) + 1)|0;
$56 = HEAP32[(1407464)>>2]|0;
$57 = ($55|0)<($56|0);
if ($57) {
$$05871 = $55;$$16270 = $17;$31 = $56;
} else {
$$162$lcssa = $17;
break;
}
}
} else {
$$162$lcssa = $$06175;
}
$58 = (($$076) + 1)|0;
$59 = HEAP32[(1407472)>>2]|0;
$60 = ($58|0)<($59|0);
if ($60) {
$$06175 = $$162$lcssa;$$076 = $58;$7 = $59;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _NotchyGen_CarveCaves() {
var $$06581 = 0, $$06679 = 0.0, $$06778 = 0.0, $$06877 = 0.0, $$06976 = 0.0, $$07075 = 0.0, $$07174 = 0.0, $$07273 = 0.0, $$080 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0.0;
var $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0;
var $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0;
var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0;
var $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0;
var $91 = 0, $exitcond = 0, $exitcond85 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407460)>>2]|0;
$1 = (($0|0) / 8192)&-1;
HEAP32[315078] = 24394;
$2 = ($0|0)>(8191);
if (!($2)) {
return;
}
$3 = (+($1|0));
$$06581 = 0;
while(1) {
$4 = (+($$06581|0));
$5 = $4 / $3;
HEAPF32[315082] = $5;
$6 = HEAP32[(1407464)>>2]|0;
$7 = (_Random_Next(535504,$6)|0);
$8 = HEAP32[(1407468)>>2]|0;
$9 = (_Random_Next(535504,$8)|0);
$10 = HEAP32[(1407472)>>2]|0;
$11 = (_Random_Next(535504,$10)|0);
$12 = (+_Random_Float(535504));
$13 = (+_Random_Float(535504));
$14 = $12 * $13;
$15 = $14 * 200.0;
$16 = (~~(($15)));
$17 = (+_Random_Float(535504));
$18 = (+_Random_Float(535504));
$19 = (+_Random_Float(535504));
$20 = (+_Random_Float(535504));
$21 = $19 * $20;
$22 = ($16|0)>(0);
if ($22) {
$23 = $18 * 2.0;
$24 = $23 * 3.1415927410125732;
$25 = $17 * 2.0;
$26 = $25 * 3.1415927410125732;
$27 = (+($11|0));
$28 = (+($9|0));
$29 = (+($7|0));
$30 = (+($16|0));
$$06679 = $29;$$06778 = $28;$$06877 = $27;$$06976 = $26;$$07075 = 0.0;$$07174 = 0.0;$$07273 = $24;$$080 = 0;
while(1) {
$31 = (+_Math_SinF($$06976));
$32 = (+_Math_CosF($$07273));
$33 = $31 * $32;
$34 = $$06679 + $33;
$35 = (+_Math_CosF($$06976));
$36 = (+_Math_CosF($$07273));
$37 = $35 * $36;
$38 = $$06877 + $37;
$39 = (+_Math_SinF($$07273));
$40 = $$06778 + $39;
$41 = $$07075 * 0.20000000298023224;
$42 = $$06976 + $41;
$43 = $$07075 * 0.89999997615814208;
$44 = (+_Random_Float(535504));
$45 = $43 + $44;
$46 = (+_Random_Float(535504));
$47 = $45 - $46;
$48 = $$07273 * 0.5;
$49 = $$07174 * 0.25;
$50 = $48 + $49;
$51 = $$07174 * 0.75;
$52 = (+_Random_Float(535504));
$53 = $51 + $52;
$54 = (+_Random_Float(535504));
$55 = $53 - $54;
$56 = (+_Random_Float(535504));
$57 = $56 < 0.25;
if (!($57)) {
$58 = (_Random_Next(535504,4)|0);
$59 = (($58) + -2)|0;
$60 = (+($59|0));
$61 = $60 * 0.20000000298023224;
$62 = $34 + $61;
$63 = (~~(($62)));
$64 = (_Random_Next(535504,4)|0);
$65 = (($64) + -2)|0;
$66 = (+($65|0));
$67 = $66 * 0.20000000298023224;
$68 = $40 + $67;
$69 = (~~(($68)));
$70 = (_Random_Next(535504,4)|0);
$71 = (($70) + -2)|0;
$72 = (+($71|0));
$73 = $72 * 0.20000000298023224;
$74 = $38 + $73;
$75 = (~~(($74)));
$76 = HEAP32[(1407468)>>2]|0;
$77 = (($76) - ($69))|0;
$78 = (+($77|0));
$79 = (+($76|0));
$80 = $78 / $79;
$81 = $80 * 3.5;
$82 = $81 + 1.0;
$83 = $21 * $82;
$84 = $83 + 1.2000000476837158;
$85 = (+($$080|0));
$86 = $85 * 3.1415927410125732;
$87 = $86 / $30;
$88 = (+_Math_SinF($87));
$89 = $88 * $84;
_NotchyGen_FillOblateSpheroid($63,$69,$75,$89,0);
}
$90 = (($$080) + 1)|0;
$exitcond = ($90|0)==($16|0);
if ($exitcond) {
break;
} else {
$$06679 = $34;$$06778 = $40;$$06877 = $38;$$06976 = $42;$$07075 = $47;$$07174 = $55;$$07273 = $50;$$080 = $90;
}
}
}
$91 = (($$06581) + 1)|0;
$exitcond85 = ($91|0)==($1|0);
if ($exitcond85) {
break;
} else {
$$06581 = $91;
}
}
return;
}
function _NotchyGen_CarveOreVeins($0,$1,$2) {
$0 = +$0;
$1 = $1|0;
$2 = $2|0;
var $$05470 = 0, $$05568 = 0.0, $$05667 = 0.0, $$05766 = 0.0, $$05865 = 0.0, $$05964 = 0.0, $$06063 = 0.0, $$06162 = 0.0, $$069 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0.0;
var $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0;
var $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0;
var $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0.0, $exitcond = 0, $exitcond74 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407460)>>2]|0;
$4 = (+($3|0));
$5 = $4 * $0;
$6 = $5 * 6.103515625E-5;
$7 = (~~(($6)));
HEAP32[315078] = $1;
$8 = ($7|0)>(0);
if (!($8)) {
return;
}
$9 = (+($7|0));
$$05470 = 0;
while(1) {
$10 = (+($$05470|0));
$11 = $10 / $9;
HEAPF32[315082] = $11;
$12 = HEAP32[(1407464)>>2]|0;
$13 = (_Random_Next(535504,$12)|0);
$14 = HEAP32[(1407468)>>2]|0;
$15 = (_Random_Next(535504,$14)|0);
$16 = HEAP32[(1407472)>>2]|0;
$17 = (_Random_Next(535504,$16)|0);
$18 = (+_Random_Float(535504));
$19 = (+_Random_Float(535504));
$20 = $18 * $19;
$21 = $20 * 75.0;
$22 = $21 * $0;
$23 = (~~(($22)));
$24 = (+_Random_Float(535504));
$25 = (+_Random_Float(535504));
$26 = ($23|0)>(0);
if ($26) {
$27 = $25 * 2.0;
$28 = $27 * 3.1415927410125732;
$29 = $24 * 2.0;
$30 = $29 * 3.1415927410125732;
$31 = (+($17|0));
$32 = (+($15|0));
$33 = (+($13|0));
$34 = (+($23|0));
$$05568 = $33;$$05667 = 0.0;$$05766 = $28;$$05865 = 0.0;$$05964 = $30;$$06063 = $31;$$06162 = $32;$$069 = 0;
while(1) {
$35 = (+_Math_SinF($$05964));
$36 = (+_Math_CosF($$05766));
$37 = $35 * $36;
$38 = $$05568 + $37;
$39 = (+_Math_CosF($$05964));
$40 = (+_Math_CosF($$05766));
$41 = $39 * $40;
$42 = $$06063 + $41;
$43 = (+_Math_SinF($$05766));
$44 = $$06162 + $43;
$45 = $$05865 * 0.20000000298023224;
$46 = $$05865 * 0.89999997615814208;
$47 = (+_Random_Float(535504));
$48 = $46 + $47;
$49 = (+_Random_Float(535504));
$50 = $48 - $49;
$51 = $$05766 * 0.5;
$52 = $$05667 * 0.25;
$53 = $51 + $52;
$54 = $$05667 * 0.89999997615814208;
$55 = (+_Random_Float(535504));
$56 = $54 + $55;
$57 = (+_Random_Float(535504));
$58 = $56 - $57;
$59 = (+($$069|0));
$60 = $59 * 3.1415927410125732;
$61 = $60 / $34;
$62 = (+_Math_SinF($61));
$63 = $62 * $0;
$64 = $63 + 1.0;
$65 = (~~(($38)));
$66 = (~~(($44)));
$67 = (~~(($42)));
_NotchyGen_FillOblateSpheroid($65,$66,$67,$64,$2);
$68 = (($$069) + 1)|0;
$exitcond = ($68|0)==($23|0);
if ($exitcond) {
break;
} else {
$$05568 = $38;$$05667 = $58;$$05766 = $53;$$05865 = $50;$$05964 = $45;$$06063 = $42;$$06162 = $44;$$069 = $68;
}
}
}
$69 = (($$05470) + 1)|0;
$exitcond74 = ($69|0)==($7|0);
if ($exitcond74) {
break;
} else {
$$05470 = $69;
}
}
return;
}
function _NotchyGen_FloodFillWaterBorders() {
var $$02736 = 0, $$02835 = 0, $$02934 = 0, $$033 = 0, $$13031 = 0, $$132 = 0, $$lcssa = 0, $$pr = 0, $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315085]|0;
$1 = (($0) + -1)|0;
HEAP32[315078] = 24374;
$2 = HEAP32[(1407472)>>2]|0;
$3 = Math_imul($2, $1)|0;
$4 = HEAP32[(1407464)>>2]|0;
$5 = ($4|0)>(0);
if ($5) {
$6 = (($2) + -1)|0;
$7 = (($6) + ($3))|0;
$8 = Math_imul($7, $4)|0;
$9 = Math_imul($3, $4)|0;
$$02736 = 0;$$02835 = $8;$$02934 = $9;$12 = $4;
while(1) {
$10 = (+($$02736|0));
$11 = (+($12|0));
$13 = $10 / $11;
$14 = $13 * 0.5;
$15 = $14 + 0.0;
HEAPF32[315082] = $15;
_NotchyGen_FloodFill($$02934,8);
_NotchyGen_FloodFill($$02835,8);
$16 = (($$02934) + 1)|0;
$17 = (($$02835) + 1)|0;
$18 = (($$02736) + 1)|0;
$19 = HEAP32[(1407464)>>2]|0;
$20 = ($18|0)<($19|0);
if ($20) {
$$02736 = $18;$$02835 = $17;$$02934 = $16;$12 = $19;
} else {
break;
}
}
$$pr = HEAP32[(1407472)>>2]|0;
$$lcssa = $19;$23 = $$pr;
} else {
$$lcssa = $4;$23 = $2;
}
$21 = Math_imul($$lcssa, $1)|0;
$22 = Math_imul($21, $23)|0;
$24 = ($23|0)>(0);
if (!($24)) {
return;
}
$25 = (($$lcssa) + -1)|0;
$26 = (($25) + ($22))|0;
$$033 = 0;$$13031 = $22;$$132 = $26;$29 = $23;
while(1) {
$27 = (+($$033|0));
$28 = (+($29|0));
$30 = $27 / $28;
$31 = $30 * 0.5;
$32 = $31 + 0.5;
HEAPF32[315082] = $32;
_NotchyGen_FloodFill($$13031,8);
_NotchyGen_FloodFill($$132,8);
$33 = HEAP32[(1407464)>>2]|0;
$34 = (($33) + ($$13031))|0;
$35 = (($33) + ($$132))|0;
$36 = (($$033) + 1)|0;
$37 = HEAP32[(1407472)>>2]|0;
$38 = ($36|0)<($37|0);
if ($38) {
$$033 = $36;$$13031 = $34;$$132 = $35;$29 = $37;
} else {
break;
}
}
return;
}
function _NotchyGen_FloodFillWater() {
var $$017 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0;
var $7 = 0.0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407464)>>2]|0;
$1 = HEAP32[(1407472)>>2]|0;
$2 = Math_imul($1, $0)|0;
$3 = (($2|0) / 800)&-1;
HEAP32[315078] = 24359;
$4 = ($2|0)>(799);
if (!($4)) {
return;
}
$5 = (+($3|0));
$$017 = 0;
while(1) {
$6 = (+($$017|0));
$7 = $6 / $5;
HEAPF32[315082] = $7;
$8 = HEAP32[(1407464)>>2]|0;
$9 = (_Random_Next(535504,$8)|0);
$10 = HEAP32[(1407472)>>2]|0;
$11 = (_Random_Next(535504,$10)|0);
$12 = HEAP32[315085]|0;
$13 = (_Random_Range_463(1,3)|0);
$14 = (($12) - ($13))|0;
$15 = HEAP32[(1407472)>>2]|0;
$16 = Math_imul($14, $15)|0;
$17 = (($16) + ($11))|0;
$18 = HEAP32[(1407464)>>2]|0;
$19 = Math_imul($17, $18)|0;
$20 = (($19) + ($9))|0;
_NotchyGen_FloodFill($20,8);
$21 = (($$017) + 1)|0;
$exitcond = ($21|0)==($3|0);
if ($exitcond) {
break;
} else {
$$017 = $21;
}
}
return;
}
function _NotchyGen_FloodFillLava() {
var $$017 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407464)>>2]|0;
$1 = HEAP32[(1407472)>>2]|0;
$2 = Math_imul($1, $0)|0;
$3 = (($2|0) / 20000)&-1;
HEAP32[315078] = 24345;
$4 = ($2|0)>(19999);
if (!($4)) {
return;
}
$5 = (+($3|0));
$$017 = 0;
while(1) {
$6 = (+($$017|0));
$7 = $6 / $5;
HEAPF32[315082] = $7;
$8 = HEAP32[(1407464)>>2]|0;
$9 = (_Random_Next(535504,$8)|0);
$10 = HEAP32[(1407472)>>2]|0;
$11 = (_Random_Next(535504,$10)|0);
$12 = HEAP32[315085]|0;
$13 = (($12) + -3)|0;
$14 = (+($13|0));
$15 = (+_Random_Float(535504));
$16 = $15 * $14;
$17 = (+_Random_Float(535504));
$18 = $17 * $16;
$19 = (~~(($18)));
$20 = HEAP32[(1407472)>>2]|0;
$21 = Math_imul($20, $19)|0;
$22 = (($21) + ($11))|0;
$23 = HEAP32[(1407464)>>2]|0;
$24 = Math_imul($22, $23)|0;
$25 = (($24) + ($9))|0;
_NotchyGen_FloodFill($25,10);
$26 = (($$017) + 1)|0;
$exitcond = ($26|0)==($3|0);
if ($exitcond) {
break;
} else {
$$017 = $26;
}
}
return;
}
function _NotchyGen_CreateSurfaceLayer() {
var $$03138 = 0, $$03235 = 0, $$039 = 0, $$1$lcssa = 0, $$137 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 8208|0;
$0 = sp + 4100|0;
$1 = sp;
_OctaveNoise_Init($0,8);
_OctaveNoise_Init($1,8);
HEAP32[315078] = 24328;
$2 = HEAP32[(1407472)>>2]|0;
$3 = ($2|0)>(0);
if (!($3)) {
STACKTOP = sp;return;
}
$$03138 = 0;$$039 = 0;$6 = $2;
while(1) {
$4 = (+($$039|0));
$5 = (+($6|0));
$7 = $4 / $5;
HEAPF32[315082] = $7;
$8 = HEAP32[(1407464)>>2]|0;
$9 = ($8|0)>(0);
if ($9) {
$$03235 = 0;$$137 = $$03138;$22 = $8;
while(1) {
$10 = HEAP32[315084]|0;
$11 = (($$137) + 1)|0;
$12 = (($10) + ($$137<<1)|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13 << 16 >> 16;
$15 = ($13<<16>>16)>(-1);
$16 = HEAP32[(1407468)>>2]|0;
$17 = ($16|0)>($14|0);
$or$cond = $15 & $17;
L10: do {
if ($or$cond) {
$18 = HEAP32[(1407472)>>2]|0;
$19 = Math_imul($18, $14)|0;
$20 = (($19) + ($$039))|0;
$21 = Math_imul($20, $22)|0;
$23 = (($21) + ($$03235))|0;
$24 = HEAP32[(1407480)>>2]|0;
$25 = ($24|0)>($14|0);
L12: do {
if ($25) {
$26 = HEAP32[315083]|0;
$27 = HEAP32[(1407488)>>2]|0;
$28 = (($27) + ($23))|0;
$29 = (($26) + ($28)|0);
$30 = HEAP8[$29>>0]|0;
switch ($30<<24>>24) {
case 0: {
break L12;
break;
}
case 8: {
break;
}
default: {
break L10;
}
}
$31 = (+($$03235|0));
$32 = (+_OctaveNoise_Calc($1,$31,$4));
$33 = $32 > 12.0;
if (!($33)) {
break L10;
}
$34 = HEAP32[315083]|0;
$35 = (($34) + ($23)|0);
HEAP8[$35>>0] = 13;
break L10;
}
} while(0);
$36 = HEAP32[315085]|0;
$37 = ($36|0)<($14|0);
if ($37) {
$43 = 2;
} else {
$38 = (+($$03235|0));
$39 = (+_OctaveNoise_Calc($0,$38,$4));
$40 = $39 > 8.0;
if ($40) {
$43 = 12;
} else {
$43 = 2;
}
}
$41 = HEAP32[315083]|0;
$42 = (($41) + ($23)|0);
HEAP8[$42>>0] = $43;
}
} while(0);
$44 = (($$03235) + 1)|0;
$45 = HEAP32[(1407464)>>2]|0;
$46 = ($44|0)<($45|0);
if ($46) {
$$03235 = $44;$$137 = $11;$22 = $45;
} else {
$$1$lcssa = $11;
break;
}
}
} else {
$$1$lcssa = $$03138;
}
$47 = (($$039) + 1)|0;
$48 = HEAP32[(1407472)>>2]|0;
$49 = ($47|0)<($48|0);
if ($49) {
$$03138 = $$1$lcssa;$$039 = $47;$6 = $48;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _NotchyGen_PlantFlowers() {
var $$04551 = 0, $$04653 = 0, $$04754 = 0, $$04850 = 0, $$052 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0, $51 = 0, $52 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond55 = 0;
var $exitcond56 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407464)>>2]|0;
$1 = HEAP32[(1407472)>>2]|0;
$2 = Math_imul($1, $0)|0;
$3 = (($2|0) / 3000)&-1;
HEAP32[315078] = 24311;
$4 = ($2|0)>(2999);
if (!($4)) {
return;
}
$5 = (+($3|0));
$$04754 = 0;
while(1) {
$6 = (+($$04754|0));
$7 = $6 / $5;
HEAPF32[315082] = $7;
$8 = (_Random_Next(535504,2)|0);
$9 = (($8) + 37)|0;
$10 = $9&255;
$11 = HEAP32[(1407464)>>2]|0;
$12 = (_Random_Next(535504,$11)|0);
$13 = HEAP32[(1407472)>>2]|0;
$14 = (_Random_Next(535504,$13)|0);
$$04653 = 0;
while(1) {
$$04551 = 0;$$04850 = $14;$$052 = $12;
while(1) {
$15 = (_Random_Next(535504,6)|0);
$16 = (_Random_Next(535504,6)|0);
$17 = (($15) - ($16))|0;
$18 = (($17) + ($$052))|0;
$19 = (_Random_Next(535504,6)|0);
$20 = (_Random_Next(535504,6)|0);
$21 = (($19) - ($20))|0;
$22 = (($21) + ($$04850))|0;
$23 = (_World_ContainsXZ_454($18,$22)|0);
$24 = ($23<<24>>24)==(0);
if (!($24)) {
$25 = HEAP32[315084]|0;
$26 = HEAP32[(1407464)>>2]|0;
$27 = Math_imul($26, $22)|0;
$28 = (($27) + ($18))|0;
$29 = (($25) + ($28<<1)|0);
$30 = HEAP16[$29>>1]|0;
$31 = $30 << 16 >> 16;
$32 = (($31) + 1)|0;
$33 = ($30<<16>>16)>(-1);
$34 = HEAP32[(1407468)>>2]|0;
$35 = ($32|0)<($34|0);
$or$cond = $33 & $35;
if ($or$cond) {
$36 = HEAP32[(1407472)>>2]|0;
$37 = Math_imul($36, $32)|0;
$38 = (($37) + ($22))|0;
$39 = Math_imul($38, $26)|0;
$40 = (($39) + ($18))|0;
$41 = HEAP32[315083]|0;
$42 = (($41) + ($40)|0);
$43 = HEAP8[$42>>0]|0;
$44 = ($43<<24>>24)==(0);
if ($44) {
$45 = HEAP32[(1407488)>>2]|0;
$46 = (($40) - ($45))|0;
$47 = (($41) + ($46)|0);
$48 = HEAP8[$47>>0]|0;
$49 = ($48<<24>>24)==(2);
if ($49) {
HEAP8[$42>>0] = $10;
}
}
}
}
$50 = (($$04551) + 1)|0;
$exitcond = ($50|0)==(5);
if ($exitcond) {
break;
} else {
$$04551 = $50;$$04850 = $22;$$052 = $18;
}
}
$51 = (($$04653) + 1)|0;
$exitcond55 = ($51|0)==(10);
if ($exitcond55) {
break;
} else {
$$04653 = $51;
}
}
$52 = (($$04754) + 1)|0;
$exitcond56 = ($52|0)==($3|0);
if ($exitcond56) {
break;
} else {
$$04754 = $52;
}
}
return;
}
function _NotchyGen_PlantMushrooms() {
var $$05055 = 0, $$05157 = 0, $$05258 = 0, $$05354 = 0, $$056 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond59 = 0, $exitcond60 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407460)>>2]|0;
$1 = (($0|0) / 2000)&-1;
HEAP32[315078] = 24292;
$2 = ($0|0)>(1999);
if (!($2)) {
return;
}
$3 = (+($1|0));
$$05258 = 0;
while(1) {
$4 = (+($$05258|0));
$5 = $4 / $3;
HEAPF32[315082] = $5;
$6 = (_Random_Next(535504,2)|0);
$7 = (($6) + 39)|0;
$8 = $7&255;
$9 = HEAP32[(1407464)>>2]|0;
$10 = (_Random_Next(535504,$9)|0);
$11 = HEAP32[(1407468)>>2]|0;
$12 = (_Random_Next(535504,$11)|0);
$13 = HEAP32[(1407472)>>2]|0;
$14 = (_Random_Next(535504,$13)|0);
$$05157 = 0;
while(1) {
$$05055 = 0;$$05354 = $14;$$056 = $10;
while(1) {
$15 = (_Random_Next(535504,6)|0);
$16 = (_Random_Next(535504,6)|0);
$17 = (($15) - ($16))|0;
$18 = (($17) + ($$056))|0;
$19 = (_Random_Next(535504,6)|0);
$20 = (_Random_Next(535504,6)|0);
$21 = (($19) - ($20))|0;
$22 = (($21) + ($$05354))|0;
$23 = (_World_ContainsXZ_454($18,$22)|0);
$24 = ($23<<24>>24)==(0);
if (!($24)) {
$25 = HEAP32[315084]|0;
$26 = HEAP32[(1407464)>>2]|0;
$27 = Math_imul($26, $22)|0;
$28 = (($27) + ($18))|0;
$29 = (($25) + ($28<<1)|0);
$30 = HEAP16[$29>>1]|0;
$31 = $30 << 16 >> 16;
$32 = (($31) + -1)|0;
$33 = ($12|0)<($32|0);
if ($33) {
$34 = HEAP32[(1407472)>>2]|0;
$35 = Math_imul($34, $12)|0;
$36 = (($35) + ($22))|0;
$37 = Math_imul($36, $26)|0;
$38 = (($37) + ($18))|0;
$39 = HEAP32[315083]|0;
$40 = (($39) + ($38)|0);
$41 = HEAP8[$40>>0]|0;
$42 = ($41<<24>>24)==(0);
if ($42) {
$43 = HEAP32[(1407488)>>2]|0;
$44 = (($38) - ($43))|0;
$45 = (($39) + ($44)|0);
$46 = HEAP8[$45>>0]|0;
$47 = ($46<<24>>24)==(1);
if ($47) {
HEAP8[$40>>0] = $8;
}
}
}
}
$48 = (($$05055) + 1)|0;
$exitcond = ($48|0)==(5);
if ($exitcond) {
break;
} else {
$$05055 = $48;$$05354 = $22;$$056 = $18;
}
}
$49 = (($$05157) + 1)|0;
$exitcond59 = ($49|0)==(20);
if ($exitcond59) {
break;
} else {
$$05157 = $49;
}
}
$50 = (($$05258) + 1)|0;
$exitcond60 = ($50|0)==($1|0);
if ($exitcond60) {
break;
} else {
$$05258 = $50;
}
}
return;
}
function _NotchyGen_PlantTrees() {
var $$06573 = 0, $$06674 = 0, $$06775 = 0, $$06872 = 0, $$06971 = 0, $$070 = 0, $0 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $8 = 0.0, $9 = 0.0, $exitcond = 0, $exitcond77 = 0, $exitcond78 = 0, $exitcond79 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1248|0;
$0 = sp + 96|0;
$1 = sp;
$2 = HEAP32[315083]|0;
HEAP32[315080] = $2;
HEAP32[315081] = 535504;
$3 = HEAP32[(1407464)>>2]|0;
$4 = HEAP32[(1407472)>>2]|0;
$5 = Math_imul($4, $3)|0;
$6 = (($5|0) / 4000)&-1;
HEAP32[315078] = 24277;
$7 = ($5|0)>(3999);
if (!($7)) {
STACKTOP = sp;return;
}
$8 = (+($6|0));
$$06775 = 0;
while(1) {
$9 = (+($$06775|0));
$10 = $9 / $8;
HEAPF32[315082] = $10;
$11 = HEAP32[(1407464)>>2]|0;
$12 = (_Random_Next(535504,$11)|0);
$13 = HEAP32[(1407472)>>2]|0;
$14 = (_Random_Next(535504,$13)|0);
$$06674 = 0;
while(1) {
$$06573 = 0;$$06872 = $12;$$06971 = $14;
while(1) {
$15 = (_Random_Next(535504,6)|0);
$16 = (_Random_Next(535504,6)|0);
$17 = (($15) - ($16))|0;
$18 = (($17) + ($$06872))|0;
$19 = (_Random_Next(535504,6)|0);
$20 = (_Random_Next(535504,6)|0);
$21 = (($19) - ($20))|0;
$22 = (($21) + ($$06971))|0;
$23 = (_World_ContainsXZ_454($18,$22)|0);
$24 = ($23<<24>>24)==(0);
if (!($24)) {
$25 = (+_Random_Float(535504));
$26 = !($25 >= 0.25);
if ($26) {
$27 = HEAP32[315084]|0;
$28 = HEAP32[(1407464)>>2]|0;
$29 = Math_imul($28, $22)|0;
$30 = (($29) + ($18))|0;
$31 = (($27) + ($30<<1)|0);
$32 = HEAP16[$31>>1]|0;
$33 = $32 << 16 >> 16;
$34 = (($33) + 1)|0;
$35 = HEAP32[(1407468)>>2]|0;
$36 = ($34|0)<($35|0);
if ($36) {
$37 = (_Random_Next(535504,3)|0);
$38 = (($37) + 5)|0;
$39 = ($32<<16>>16)>(-1);
if ($39) {
$40 = HEAP32[(1407472)>>2]|0;
$41 = Math_imul($40, $34)|0;
$42 = (($41) + ($22))|0;
$43 = HEAP32[(1407464)>>2]|0;
$44 = Math_imul($42, $43)|0;
$45 = (($44) + ($18))|0;
$46 = HEAP32[315083]|0;
$47 = HEAP32[(1407488)>>2]|0;
$48 = (($45) - ($47))|0;
$49 = (($46) + ($48)|0);
$50 = HEAP8[$49>>0]|0;
$51 = ($50<<24>>24)==(2);
if ($51) {
$52 = (_TreeGen_CanGrow($18,$34,$22,$38)|0);
$53 = ($52<<24>>24)==(0);
if (!($53)) {
$54 = (_TreeGen_Grow($18,$34,$22,$38,$0,$1)|0);
$55 = ($54|0)>(0);
if ($55) {
$$070 = 0;
while(1) {
$56 = (((($0) + (($$070*12)|0)|0)) + 4|0);
$57 = HEAP32[$56>>2]|0;
$58 = HEAP32[(1407472)>>2]|0;
$59 = Math_imul($58, $57)|0;
$60 = (((($0) + (($$070*12)|0)|0)) + 8|0);
$61 = HEAP32[$60>>2]|0;
$62 = (($59) + ($61))|0;
$63 = HEAP32[(1407464)>>2]|0;
$64 = Math_imul($62, $63)|0;
$65 = (($0) + (($$070*12)|0)|0);
$66 = HEAP32[$65>>2]|0;
$67 = (($64) + ($66))|0;
$68 = (($1) + ($$070)|0);
$69 = HEAP8[$68>>0]|0;
$70 = HEAP32[315083]|0;
$71 = (($70) + ($67)|0);
HEAP8[$71>>0] = $69;
$72 = (($$070) + 1)|0;
$exitcond = ($72|0)==($54|0);
if ($exitcond) {
break;
} else {
$$070 = $72;
}
}
}
}
}
}
}
}
}
$73 = (($$06573) + 1)|0;
$exitcond77 = ($73|0)==(20);
if ($exitcond77) {
break;
} else {
$$06573 = $73;$$06872 = $18;$$06971 = $22;
}
}
$74 = (($$06674) + 1)|0;
$exitcond78 = ($74|0)==(20);
if ($exitcond78) {
break;
} else {
$$06674 = $74;
}
}
$75 = (($$06775) + 1)|0;
$exitcond79 = ($75|0)==($6|0);
if ($exitcond79) {
break;
} else {
$$06775 = $75;
}
}
STACKTOP = sp;return;
}
function _World_ContainsXZ_454($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = ($2>>>0)>($0>>>0);
$4 = HEAP32[(1407472)>>2]|0;
$5 = ($4>>>0)>($1>>>0);
$narrow = $3 & $5;
$6 = $narrow&1;
return ($6|0);
}
function _TreeGen_CanGrow($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$05265 = 0, $$05463 = 0, $$056 = 0, $$064 = 0, $$15560 = 0, $$15560$1 = 0, $$15560$2 = 0, $$15560$3 = 0, $$161 = 0, $$161$1 = 0, $$161$2 = 0, $$161$3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
var $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0;
var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$4 = (($3) + ($1))|0;
$5 = (($4) + -4)|0;
$6 = ($5|0)>($1|0);
L1: do {
if ($6) {
$7 = (($2) + -1)|0;
$8 = (($0) + -1)|0;
$9 = HEAP32[(1407472)>>2]|0;
$10 = HEAP32[(1407464)>>2]|0;
$11 = HEAP32[315080]|0;
$$05265 = $1;
L3: while(1) {
$12 = Math_imul($9, $$05265)|0;
$$064 = $7;
while(1) {
$13 = (($12) + ($$064))|0;
$14 = Math_imul($13, $10)|0;
$$05463 = $8;
while(1) {
$17 = (_World_Contains_459($$05463,$$05265,$$064)|0);
$18 = ($17<<24>>24)==(0);
if ($18) {
$$056 = 0;
label = 18;
break L3;
}
$19 = (($14) + ($$05463))|0;
$20 = (($11) + ($19)|0);
$21 = HEAP8[$20>>0]|0;
$22 = ($21<<24>>24)==(0);
if (!($22)) {
$$056 = 0;
label = 18;
break L3;
}
$15 = (($$05463) + 1)|0;
$16 = ($$05463|0)>($0|0);
if ($16) {
break;
} else {
$$05463 = $15;
}
}
$23 = (($$064) + 1)|0;
$24 = ($$064|0)>($2|0);
if ($24) {
break;
} else {
$$064 = $23;
}
}
$25 = (($$05265) + 1)|0;
$26 = ($25|0)<($5|0);
if ($26) {
$$05265 = $25;
} else {
break L1;
}
}
if ((label|0) == 18) {
return ($$056|0);
}
}
} while(0);
$27 = (($3) + ($1))|0;
$28 = ($5|0)<($27|0);
if (!($28)) {
$$056 = 1;
return ($$056|0);
}
$29 = (($2) + -2)|0;
$30 = (($2) + 2)|0;
$31 = (($0) + -2)|0;
$32 = (($0) + 2)|0;
$33 = HEAP32[(1407472)>>2]|0;
$34 = HEAP32[(1407464)>>2]|0;
$35 = HEAP32[315080]|0;
$36 = Math_imul($33, $5)|0;
$$161 = $29;
L20: while(1) {
$37 = (($36) + ($$161))|0;
$38 = Math_imul($37, $34)|0;
$$15560 = $31;
while(1) {
$41 = (_World_Contains_459($$15560,$5,$$161)|0);
$42 = ($41<<24>>24)==(0);
if ($42) {
$$056 = 0;
label = 18;
break L20;
}
$43 = (($38) + ($$15560))|0;
$44 = (($35) + ($43)|0);
$45 = HEAP8[$44>>0]|0;
$46 = ($45<<24>>24)==(0);
if (!($46)) {
$$056 = 0;
label = 18;
break L20;
}
$39 = (($$15560) + 1)|0;
$40 = ($$15560|0)<($32|0);
if ($40) {
$$15560 = $39;
} else {
break;
}
}
$47 = (($$161) + 1)|0;
$48 = ($$161|0)<($30|0);
if ($48) {
$$161 = $47;
} else {
label = 17;
break;
}
}
if ((label|0) == 17) {
$49 = (($4) + -3)|0;
$50 = Math_imul($33, $49)|0;
$$161$1 = $29;
L29: while(1) {
$51 = (($50) + ($$161$1))|0;
$52 = Math_imul($51, $34)|0;
$$15560$1 = $31;
while(1) {
$53 = (_World_Contains_459($$15560$1,$49,$$161$1)|0);
$54 = ($53<<24>>24)==(0);
if ($54) {
$$056 = 0;
label = 18;
break L29;
}
$55 = (($52) + ($$15560$1))|0;
$56 = (($35) + ($55)|0);
$57 = HEAP8[$56>>0]|0;
$58 = ($57<<24>>24)==(0);
if (!($58)) {
$$056 = 0;
label = 18;
break L29;
}
$59 = (($$15560$1) + 1)|0;
$60 = ($$15560$1|0)<($32|0);
if ($60) {
$$15560$1 = $59;
} else {
break;
}
}
$61 = (($$161$1) + 1)|0;
$62 = ($$161$1|0)<($30|0);
if ($62) {
$$161$1 = $61;
} else {
label = 24;
break;
}
}
if ((label|0) == 18) {
return ($$056|0);
}
else if ((label|0) == 24) {
$63 = (($4) + -2)|0;
$64 = Math_imul($33, $63)|0;
$$161$2 = $29;
L38: while(1) {
$65 = (($64) + ($$161$2))|0;
$66 = Math_imul($65, $34)|0;
$$15560$2 = $31;
while(1) {
$67 = (_World_Contains_459($$15560$2,$63,$$161$2)|0);
$68 = ($67<<24>>24)==(0);
if ($68) {
$$056 = 0;
label = 18;
break L38;
}
$69 = (($66) + ($$15560$2))|0;
$70 = (($35) + ($69)|0);
$71 = HEAP8[$70>>0]|0;
$72 = ($71<<24>>24)==(0);
if (!($72)) {
$$056 = 0;
label = 18;
break L38;
}
$73 = (($$15560$2) + 1)|0;
$74 = ($$15560$2|0)<($32|0);
if ($74) {
$$15560$2 = $73;
} else {
break;
}
}
$75 = (($$161$2) + 1)|0;
$76 = ($$161$2|0)<($30|0);
if ($76) {
$$161$2 = $75;
} else {
label = 30;
break;
}
}
if ((label|0) == 18) {
return ($$056|0);
}
else if ((label|0) == 30) {
$77 = (($4) + -1)|0;
$78 = Math_imul($33, $77)|0;
$$161$3 = $29;
L47: while(1) {
$79 = (($78) + ($$161$3))|0;
$80 = Math_imul($79, $34)|0;
$$15560$3 = $31;
while(1) {
$81 = (_World_Contains_459($$15560$3,$77,$$161$3)|0);
$82 = ($81<<24>>24)==(0);
if ($82) {
$$056 = 0;
label = 18;
break L47;
}
$83 = (($80) + ($$15560$3))|0;
$84 = (($35) + ($83)|0);
$85 = HEAP8[$84>>0]|0;
$86 = ($85<<24>>24)==(0);
if (!($86)) {
$$056 = 0;
label = 18;
break L47;
}
$87 = (($$15560$3) + 1)|0;
$88 = ($$15560$3|0)<($32|0);
if ($88) {
$$15560$3 = $87;
} else {
break;
}
}
$89 = (($$161$3) + 1)|0;
$90 = ($$161$3|0)<($30|0);
if ($90) {
$$161$3 = $89;
} else {
$$056 = 1;
label = 18;
break;
}
}
if ((label|0) == 18) {
return ($$056|0);
}
}
}
}
else if ((label|0) == 18) {
return ($$056|0);
}
return (0)|0;
}
function _TreeGen_Grow($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0$lcssa = 0, $$0111133 = 0, $$0111133$1 = 0, $$0113131 = 0, $$0113131$1 = 0, $$0115$lcssa = 0, $$1112123 = 0, $$1116132 = 0, $$1116132$1 = 0, $$1125 = 0, $$2117130 = 0, $$2117130$1 = 0, $$2119 = 0, $$3 = 0, $$3$1 = 0, $$4$lcssa = 0, $$4124 = 0, $$5122 = 0, $$7 = 0, $$7$2 = 0;
var $$8$lcssa = 0, $$8118 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0, $98 = 0;
var $99 = 0, $exitcond = 0, $exitcond143 = 0, $exitcond144 = 0, $exitcond145 = 0, $exitcond145$1 = 0, $exitcond146 = 0, $exitcond146$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = (($3) + ($1))|0;
$7 = (($6) + -2)|0;
$8 = (($3) + ($1))|0;
$9 = (($8) + -4)|0;
$10 = ($9|0)<($7|0);
if ($10) {
$$0111133 = -2;$$1116132 = 0;
while(1) {
$11 = (($$0111133) + ($2))|0;
$$0113131 = -2;$$2117130 = $$1116132;
while(1) {
$12 = (($$0113131) + ($0))|0;
$13 = (_Math_AbsI($$0113131)|0);
$14 = ($13|0)==(2);
if ($14) {
$15 = (_Math_AbsI($$0111133)|0);
$16 = ($15|0)==(2);
if ($16) {
$17 = HEAP32[315081]|0;
$18 = (+_Random_Float($17));
$19 = !($18 >= 0.5);
if ($19) {
$$3 = $$2117130;
} else {
$20 = (($$2117130) + 1)|0;
$21 = (($5) + ($$2117130)|0);
$22 = (((($4) + (($$2117130*12)|0)|0)) + 8|0);
$23 = (((($4) + (($$2117130*12)|0)|0)) + 4|0);
$24 = (($4) + (($$2117130*12)|0)|0);
HEAP32[$24>>2] = $12;
HEAP32[$23>>2] = $9;
HEAP32[$22>>2] = $11;
HEAP8[$21>>0] = 18;
$$3 = $20;
}
} else {
label = 8;
}
} else {
label = 8;
}
if ((label|0) == 8) {
label = 0;
$25 = (($4) + (($$2117130*12)|0)|0);
HEAP32[$25>>2] = $12;
$26 = (((($4) + (($$2117130*12)|0)|0)) + 4|0);
HEAP32[$26>>2] = $9;
$27 = (((($4) + (($$2117130*12)|0)|0)) + 8|0);
HEAP32[$27>>2] = $11;
$28 = (($5) + ($$2117130)|0);
HEAP8[$28>>0] = 18;
$29 = (($$2117130) + 1)|0;
$$3 = $29;
}
$30 = (($$0113131) + 1)|0;
$exitcond145 = ($30|0)==(3);
if ($exitcond145) {
break;
} else {
$$0113131 = $30;$$2117130 = $$3;
}
}
$31 = (($$0111133) + 1)|0;
$exitcond146 = ($31|0)==(3);
if ($exitcond146) {
break;
} else {
$$0111133 = $31;$$1116132 = $$3;
}
}
$32 = (($8) + -3)|0;
$$0111133$1 = -2;$$1116132$1 = $$3;
while(1) {
$84 = (($$0111133$1) + ($2))|0;
$$0113131$1 = -2;$$2117130$1 = $$1116132$1;
while(1) {
$85 = (($$0113131$1) + ($0))|0;
$86 = (_Math_AbsI($$0113131$1)|0);
$87 = ($86|0)==(2);
if ($87) {
$88 = (_Math_AbsI($$0111133$1)|0);
$89 = ($88|0)==(2);
if ($89) {
$95 = HEAP32[315081]|0;
$96 = (+_Random_Float($95));
$97 = !($96 >= 0.5);
if ($97) {
$$3$1 = $$2117130$1;
} else {
$98 = (($$2117130$1) + 1)|0;
$99 = (($5) + ($$2117130$1)|0);
$100 = (((($4) + (($$2117130$1*12)|0)|0)) + 8|0);
$101 = (((($4) + (($$2117130$1*12)|0)|0)) + 4|0);
$102 = (($4) + (($$2117130$1*12)|0)|0);
HEAP32[$102>>2] = $85;
HEAP32[$101>>2] = $32;
HEAP32[$100>>2] = $84;
HEAP8[$99>>0] = 18;
$$3$1 = $98;
}
} else {
label = 35;
}
} else {
label = 35;
}
if ((label|0) == 35) {
label = 0;
$90 = (($4) + (($$2117130$1*12)|0)|0);
HEAP32[$90>>2] = $85;
$91 = (((($4) + (($$2117130$1*12)|0)|0)) + 4|0);
HEAP32[$91>>2] = $32;
$92 = (((($4) + (($$2117130$1*12)|0)|0)) + 8|0);
HEAP32[$92>>2] = $84;
$93 = (($5) + ($$2117130$1)|0);
HEAP8[$93>>0] = 18;
$94 = (($$2117130$1) + 1)|0;
$$3$1 = $94;
}
$103 = (($$0113131$1) + 1)|0;
$exitcond145$1 = ($103|0)==(3);
if ($exitcond145$1) {
break;
} else {
$$0113131$1 = $103;$$2117130$1 = $$3$1;
}
}
$104 = (($$0111133$1) + 1)|0;
$exitcond146$1 = ($104|0)==(3);
if ($exitcond146$1) {
$$0$lcssa = $7;$$0115$lcssa = $$3$1;
break;
} else {
$$0111133$1 = $104;$$1116132$1 = $$3$1;
}
}
} else {
$$0$lcssa = $9;$$0115$lcssa = 0;
}
$33 = (($3) + ($1))|0;
$34 = ($$0$lcssa|0)<($33|0);
if ($34) {
$35 = (($0) + -1)|0;
$36 = (($0) + 1)|0;
$$1125 = $$0$lcssa;$$4124 = $$0115$lcssa;
while(1) {
$37 = ($$1125|0)==($7|0);
$$1112123 = -1;$$5122 = $$4124;
while(1) {
$38 = (($$1112123) + ($2))|0;
$39 = ($$1112123|0)==(0);
if ($39) {
$40 = (($4) + (($$5122*12)|0)|0);
HEAP32[$40>>2] = $35;
$41 = (((($4) + (($$5122*12)|0)|0)) + 4|0);
HEAP32[$41>>2] = $$1125;
$42 = (((($4) + (($$5122*12)|0)|0)) + 8|0);
HEAP32[$42>>2] = $38;
$43 = (($5) + ($$5122)|0);
HEAP8[$43>>0] = 18;
$44 = (($$5122) + 1)|0;
$$7 = $44;
} else {
if ($37) {
$45 = HEAP32[315081]|0;
$46 = (+_Random_Float($45));
$47 = !($46 >= 0.5);
if ($47) {
$$7 = $$5122;
} else {
$48 = (($$5122) + 1)|0;
$49 = (($5) + ($$5122)|0);
$50 = (((($4) + (($$5122*12)|0)|0)) + 8|0);
$51 = (((($4) + (($$5122*12)|0)|0)) + 4|0);
$52 = (($4) + (($$5122*12)|0)|0);
HEAP32[$52>>2] = $35;
HEAP32[$51>>2] = $$1125;
HEAP32[$50>>2] = $38;
HEAP8[$49>>0] = 18;
$$7 = $48;
}
} else {
$$7 = $$5122;
}
}
$65 = (($4) + (($$7*12)|0)|0);
HEAP32[$65>>2] = $0;
$66 = (((($4) + (($$7*12)|0)|0)) + 4|0);
HEAP32[$66>>2] = $$1125;
$67 = (((($4) + (($$7*12)|0)|0)) + 8|0);
HEAP32[$67>>2] = $38;
$68 = (($5) + ($$7)|0);
HEAP8[$68>>0] = 18;
$69 = (($$7) + 1)|0;
if ($39) {
$78 = (($4) + (($69*12)|0)|0);
HEAP32[$78>>2] = $36;
$79 = (((($4) + (($69*12)|0)|0)) + 4|0);
HEAP32[$79>>2] = $$1125;
$80 = (((($4) + (($69*12)|0)|0)) + 8|0);
HEAP32[$80>>2] = $38;
$81 = (($5) + ($69)|0);
HEAP8[$81>>0] = 18;
$82 = (($$7) + 2)|0;
$$7$2 = $82;
} else {
if ($37) {
$70 = HEAP32[315081]|0;
$71 = (+_Random_Float($70));
$72 = !($71 >= 0.5);
if ($72) {
$$7$2 = $69;
} else {
$73 = (($$7) + 2)|0;
$74 = (($5) + ($69)|0);
$75 = (((($4) + (($69*12)|0)|0)) + 8|0);
$76 = (((($4) + (($69*12)|0)|0)) + 4|0);
$77 = (($4) + (($69*12)|0)|0);
HEAP32[$77>>2] = $36;
HEAP32[$76>>2] = $$1125;
HEAP32[$75>>2] = $38;
HEAP8[$74>>0] = 18;
$$7$2 = $73;
}
} else {
$$7$2 = $69;
}
}
$83 = (($$1112123) + 1)|0;
$exitcond143 = ($83|0)==(2);
if ($exitcond143) {
break;
} else {
$$1112123 = $83;$$5122 = $$7$2;
}
}
$53 = (($$1125) + 1)|0;
$exitcond144 = ($53|0)==($33|0);
if ($exitcond144) {
$$4$lcssa = $$7$2;
break;
} else {
$$1125 = $53;$$4124 = $$7$2;
}
}
} else {
$$4$lcssa = $$0115$lcssa;
}
$54 = (($3) + -1)|0;
$55 = ($3|0)>(1);
if (!($55)) {
$$8$lcssa = $$4$lcssa;
return ($$8$lcssa|0);
}
$56 = (($$4$lcssa) + ($3))|0;
$$2119 = 0;$$8118 = $$4$lcssa;
while(1) {
$57 = (($4) + (($$8118*12)|0)|0);
HEAP32[$57>>2] = $0;
$58 = (($$2119) + ($1))|0;
$59 = (((($4) + (($$8118*12)|0)|0)) + 4|0);
HEAP32[$59>>2] = $58;
$60 = (((($4) + (($$8118*12)|0)|0)) + 8|0);
HEAP32[$60>>2] = $2;
$61 = (($5) + ($$8118)|0);
HEAP8[$61>>0] = 17;
$62 = (($$8118) + 1)|0;
$63 = (($$2119) + 1)|0;
$exitcond = ($63|0)==($54|0);
if ($exitcond) {
break;
} else {
$$2119 = $63;$$8118 = $62;
}
}
$64 = (($56) + -1)|0;
$$8$lcssa = $64;
return ($$8$lcssa|0);
}
function _World_Contains_459($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _OctaveNoise_Init($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$01 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4096|0);
HEAP32[$2>>2] = $1;
$3 = ($1|0)>(0);
if (!($3)) {
return;
}
$$01 = 0;
while(1) {
$4 = (($0) + ($$01<<9)|0);
_ImprovedNoise_Init($4);
$5 = (($$01) + 1)|0;
$exitcond = ($5|0)==($1|0);
if ($exitcond) {
break;
} else {
$$01 = $5;
}
}
return;
}
function _OctaveNoise_Calc($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $$020$lcssa = 0.0, $$02025 = 0.0, $$02124 = 0.0, $$02223 = 0.0, $$026 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4096|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
$$020$lcssa = 0.0;
return (+$$020$lcssa);
}
$6 = HEAP32[$3>>2]|0;
$$02025 = 0.0;$$02124 = 1.0;$$02223 = 1.0;$$026 = 0;
while(1) {
$7 = (($0) + ($$026<<9)|0);
$8 = $$02124 * $1;
$9 = $$02124 * $2;
$10 = (+_ImprovedNoise_Calc($7,$8,$9));
$11 = $$02223 * $10;
$12 = $$02025 + $11;
$13 = $$02223 * 2.0;
$14 = $$02124 * 0.5;
$15 = (($$026) + 1)|0;
$16 = ($15|0)<($6|0);
if ($16) {
$$02025 = $12;$$02124 = $14;$$02223 = $13;$$026 = $15;
} else {
$$020$lcssa = $12;
break;
}
}
return (+$$020$lcssa);
}
function _ImprovedNoise_Calc($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0.0, $116 = 0.0, $117 = 0;
var $118 = 0, $119 = 0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0;
var $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0;
var $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0, $98 = 0, $99 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = !($1 >= 0.0);
$4 = (~~(($1)));
$5 = $3 << 31 >> 31;
$6 = (($5) + ($4))|0;
$7 = !($2 >= 0.0);
$8 = (~~(($2)));
$9 = $7 << 31 >> 31;
$10 = (($9) + ($8))|0;
$11 = $6 & 255;
$12 = $10 & 255;
$13 = (+($6|0));
$14 = $1 - $13;
$15 = (+($10|0));
$16 = $2 - $15;
$17 = $14 * $14;
$18 = $14 * $17;
$19 = $14 * 6.0;
$20 = $19 + -15.0;
$21 = $14 * $20;
$22 = $21 + 10.0;
$23 = $18 * $22;
$24 = $16 * $16;
$25 = $16 * $24;
$26 = $16 * 6.0;
$27 = $26 + -15.0;
$28 = $16 * $27;
$29 = $28 + 10.0;
$30 = $25 * $29;
$31 = (($0) + ($11)|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32&255;
$34 = (($12) + ($33))|0;
$35 = (($11) + 1)|0;
$36 = (($0) + ($35)|0);
$37 = HEAP8[$36>>0]|0;
$38 = $37&255;
$39 = (($12) + ($38))|0;
$40 = (($0) + ($34)|0);
$41 = HEAP8[$40>>0]|0;
$42 = $41&255;
$43 = (($0) + ($42)|0);
$44 = HEAP8[$43>>0]|0;
$45 = ($44 << 1)&255;
$46 = $45 & 30;
$47 = $46&255;
$48 = ($47)?(1179984418 >>> $47):(1179984418);
$49 = $48 & 3;
$50 = (($49) + -1)|0;
$51 = (+($50|0));
$52 = $14 * $51;
$53 = ($47)?(572675338 >>> $47):(572675338);
$54 = $53 & 3;
$55 = (($54) + -1)|0;
$56 = (+($55|0));
$57 = $16 * $56;
$58 = $52 + $57;
$59 = (($0) + ($39)|0);
$60 = HEAP8[$59>>0]|0;
$61 = $60&255;
$62 = (($0) + ($61)|0);
$63 = HEAP8[$62>>0]|0;
$64 = ($63 << 1)&255;
$65 = $64 & 30;
$66 = $65&255;
$67 = ($66)?(1179984418 >>> $66):(1179984418);
$68 = $67 & 3;
$69 = (($68) + -1)|0;
$70 = (+($69|0));
$71 = $14 + -1.0;
$72 = $71 * $70;
$73 = ($66)?(572675338 >>> $66):(572675338);
$74 = $73 & 3;
$75 = (($74) + -1)|0;
$76 = (+($75|0));
$77 = $16 * $76;
$78 = $72 + $77;
$79 = $78 - $58;
$80 = $23 * $79;
$81 = $58 + $80;
$82 = (($34) + 1)|0;
$83 = (($0) + ($82)|0);
$84 = HEAP8[$83>>0]|0;
$85 = $84&255;
$86 = (($0) + ($85)|0);
$87 = HEAP8[$86>>0]|0;
$88 = ($87 << 1)&255;
$89 = $88 & 30;
$90 = $89&255;
$91 = ($90)?(1179984418 >>> $90):(1179984418);
$92 = $91 & 3;
$93 = (($92) + -1)|0;
$94 = (+($93|0));
$95 = $14 * $94;
$96 = ($90)?(572675338 >>> $90):(572675338);
$97 = $96 & 3;
$98 = (($97) + -1)|0;
$99 = (+($98|0));
$100 = $16 + -1.0;
$101 = $100 * $99;
$102 = $95 + $101;
$103 = (($39) + 1)|0;
$104 = (($0) + ($103)|0);
$105 = HEAP8[$104>>0]|0;
$106 = $105&255;
$107 = (($0) + ($106)|0);
$108 = HEAP8[$107>>0]|0;
$109 = ($108 << 1)&255;
$110 = $109 & 30;
$111 = $110&255;
$112 = ($111)?(1179984418 >>> $111):(1179984418);
$113 = $112 & 3;
$114 = (($113) + -1)|0;
$115 = (+($114|0));
$116 = $71 * $115;
$117 = ($111)?(572675338 >>> $111):(572675338);
$118 = $117 & 3;
$119 = (($118) + -1)|0;
$120 = (+($119|0));
$121 = $100 * $120;
$122 = $116 + $121;
$123 = $122 - $102;
$124 = $23 * $123;
$125 = $102 + $124;
$126 = $125 - $81;
$127 = $30 * $126;
$128 = $81 + $127;
return (+$128);
}
function _ImprovedNoise_Init($0) {
$0 = $0|0;
var $$03 = 0, $$12 = 0, $$21 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond4 = 0, $exitcond5 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$$03 = 0;
while(1) {
$1 = $$03&255;
$2 = (($0) + ($$03)|0);
HEAP8[$2>>0] = $1;
$3 = (($$03) + 1)|0;
$exitcond5 = ($3|0)==(256);
if ($exitcond5) {
break;
} else {
$$03 = $3;
}
}
$$12 = 0;
while(1) {
$4 = (_Random_Range_463($$12,256)|0);
$5 = (($0) + ($$12)|0);
$6 = HEAP8[$5>>0]|0;
$7 = (($0) + ($4)|0);
$8 = HEAP8[$7>>0]|0;
HEAP8[$5>>0] = $8;
HEAP8[$7>>0] = $6;
$9 = (($$12) + 1)|0;
$exitcond4 = ($9|0)==(256);
if ($exitcond4) {
break;
} else {
$$12 = $9;
}
}
$$21 = 0;
while(1) {
$10 = (($0) + ($$21)|0);
$11 = HEAP8[$10>>0]|0;
$12 = (($$21) + 256)|0;
$13 = (($0) + ($12)|0);
HEAP8[$13>>0] = $11;
$14 = (($$21) + 1)|0;
$exitcond = ($14|0)==(256);
if ($exitcond) {
break;
} else {
$$21 = $14;
}
}
return;
}
function _Random_Range_463($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (($1) - ($0))|0;
$3 = (_Random_Next(535504,$2)|0);
$4 = (($3) + ($0))|0;
return ($4|0);
}
function _NotchyGen_FloodFill($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$be = 0, $$034 = 0, $$1 = 0, $$2 = 0, $$3 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32784|0;
$2 = sp + 32772|0;
$3 = sp;
$4 = sp + 32768|0;
HEAP32[$4>>2] = 8192;
HEAP32[$2>>2] = $3;
$5 = ($0|0)<(0);
if ($5) {
STACKTOP = sp;return;
}
HEAP32[$3>>2] = $0;
$$034 = 1;
while(1) {
$6 = HEAP32[$2>>2]|0;
$7 = (($$034) + -1)|0;
$8 = (($6) + ($7<<2)|0);
$9 = HEAP32[$8>>2]|0;
$10 = HEAP32[315083]|0;
$11 = (($10) + ($9)|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(0);
if ($13) {
HEAP8[$11>>0] = $1;
$15 = HEAP32[(1407464)>>2]|0;
$16 = (($9|0) / ($15|0))&-1;
$17 = Math_imul($16, $15)|0;
$18 = (($9) - ($17))|0;
$19 = HEAP32[(1407488)>>2]|0;
$20 = (($9|0) / ($19|0))&-1;
$21 = HEAP32[(1407472)>>2]|0;
$22 = (($16|0) % ($21|0))&-1;
$23 = HEAP32[$4>>2]|0;
$24 = (($23) + -6)|0;
$25 = ($$034|0)>($24|0);
if ($25) {
_Utils_Resize($2,$4,4,8192,8192);
}
$26 = ($18|0)>(0);
if ($26) {
$27 = (($9) + -1)|0;
$28 = HEAP32[$2>>2]|0;
$29 = (($28) + ($7<<2)|0);
HEAP32[$29>>2] = $27;
$$1 = $$034;
} else {
$$1 = $7;
}
$30 = HEAP32[(1407476)>>2]|0;
$31 = ($18|0)<($30|0);
if ($31) {
$32 = (($$1) + 1)|0;
$33 = (($9) + 1)|0;
$34 = HEAP32[$2>>2]|0;
$35 = (($34) + ($$1<<2)|0);
HEAP32[$35>>2] = $33;
$$2 = $32;
} else {
$$2 = $$1;
}
$36 = ($22|0)>(0);
if ($36) {
$37 = HEAP32[(1407464)>>2]|0;
$38 = (($9) - ($37))|0;
$39 = HEAP32[$2>>2]|0;
$40 = (($$2) + 1)|0;
$41 = (($39) + ($$2<<2)|0);
HEAP32[$41>>2] = $38;
$$3 = $40;
} else {
$$3 = $$2;
}
$42 = HEAP32[(1407484)>>2]|0;
$43 = ($22|0)<($42|0);
if ($43) {
$44 = HEAP32[(1407464)>>2]|0;
$45 = (($44) + ($9))|0;
$46 = HEAP32[$2>>2]|0;
$47 = (($$3) + 1)|0;
$48 = (($46) + ($$3<<2)|0);
HEAP32[$48>>2] = $45;
$$4 = $47;
} else {
$$4 = $$3;
}
$49 = ($20|0)>(0);
if ($49) {
$50 = HEAP32[(1407488)>>2]|0;
$51 = (($9) - ($50))|0;
$52 = HEAP32[$2>>2]|0;
$53 = (($$4) + 1)|0;
$54 = (($52) + ($$4<<2)|0);
HEAP32[$54>>2] = $51;
$$0$be = $53;
} else {
$$0$be = $$4;
}
} else {
$$0$be = $7;
}
$14 = ($$0$be|0)==(0);
if ($14) {
break;
} else {
$$034 = $$0$be;
}
}
$55 = HEAP32[$4>>2]|0;
$56 = ($55|0)>(8192);
if (!($56)) {
STACKTOP = sp;return;
}
$57 = HEAP32[$2>>2]|0;
_Mem_Free($57);
STACKTOP = sp;return;
}
function _NotchyGen_FillOblateSpheroid($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = +$3;
$4 = $4|0;
var $$ = 0.0, $$08393 = 0, $$08488 = 0, $$087 = 0, $$85 = 0.0, $$86 = 0.0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0;
var $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0, $5 = 0.0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0.0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = (+($0|0));
$6 = $5 - $3;
$7 = $6 > 0.0;
$8 = $7 ? $6 : 0.0;
$9 = (_Math_Floor($8)|0);
$10 = $5 + $3;
$11 = HEAP32[(1407476)>>2]|0;
$12 = (+($11|0));
$13 = $10 < $12;
$$ = $13 ? $10 : $12;
$14 = (_Math_Floor($$)|0);
$15 = (+($1|0));
$16 = $15 - $3;
$17 = $16 > 0.0;
$18 = $17 ? $16 : 0.0;
$19 = (_Math_Floor($18)|0);
$20 = $15 + $3;
$21 = HEAP32[(1407480)>>2]|0;
$22 = (+($21|0));
$23 = $20 < $22;
$$85 = $23 ? $20 : $22;
$24 = (_Math_Floor($$85)|0);
$25 = (+($2|0));
$26 = $25 - $3;
$27 = $26 > 0.0;
$28 = $27 ? $26 : 0.0;
$29 = (_Math_Floor($28)|0);
$30 = $25 + $3;
$31 = HEAP32[(1407484)>>2]|0;
$32 = (+($31|0));
$33 = $30 < $32;
$$86 = $33 ? $30 : $32;
$34 = (_Math_Floor($$86)|0);
$35 = $3 * $3;
$36 = ($19|0)>($24|0);
if ($36) {
return;
}
$37 = ($29|0)>($34|0);
$38 = ($9|0)>($14|0);
$$08393 = $19;
while(1) {
$39 = (($$08393) - ($1))|0;
if (!($37)) {
$40 = $39 << 1;
$41 = Math_imul($40, $39)|0;
$$08488 = $29;
while(1) {
$42 = (($$08488) - ($2))|0;
if (!($38)) {
$43 = Math_imul($42, $42)|0;
$44 = (($43) + ($41))|0;
$$087 = $9;
while(1) {
$45 = (($$087) - ($0))|0;
$46 = Math_imul($45, $45)|0;
$47 = (($44) + ($46))|0;
$48 = (+($47|0));
$49 = $35 > $48;
if ($49) {
$50 = HEAP32[(1407472)>>2]|0;
$51 = Math_imul($50, $$08393)|0;
$52 = (($51) + ($$08488))|0;
$53 = HEAP32[(1407464)>>2]|0;
$54 = Math_imul($52, $53)|0;
$55 = (($54) + ($$087))|0;
$56 = HEAP32[315083]|0;
$57 = (($56) + ($55)|0);
$58 = HEAP8[$57>>0]|0;
$59 = ($58<<24>>24)==(1);
if ($59) {
HEAP8[$57>>0] = $4;
}
}
$60 = (($$087) + 1)|0;
$61 = ($$087|0)<($14|0);
if ($61) {
$$087 = $60;
} else {
break;
}
}
}
$62 = (($$08488) + 1)|0;
$63 = ($$08488|0)<($34|0);
if ($63) {
$$08488 = $62;
} else {
break;
}
}
}
$64 = (($$08393) + 1)|0;
$65 = ($$08393|0)<($24|0);
if ($65) {
$$08393 = $64;
} else {
break;
}
}
return;
}
function _NotchyGen_CreateStrataFast() {
var $$028 = 0, $$1 = 0, $$126 = 0, $$127 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0;
var $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407488)>>2]|0;
HEAPF32[315082] = 0.0;
HEAP32[315078] = 24424;
$1 = HEAP32[315083]|0;
_Mem_Set($1,10,$0);
$2 = HEAP32[315086]|0;
$3 = (($2) + -14)|0;
$4 = ($2|0)<(15);
if (!($4)) {
$5 = (($2) + -13)|0;
$$028 = 1;
while(1) {
$6 = HEAP32[315083]|0;
$7 = Math_imul($$028, $0)|0;
$8 = (($6) + ($7)|0);
_Mem_Set($8,1,$0);
$9 = (+($$028|0));
$10 = HEAP32[(1407468)>>2]|0;
$11 = (+($10|0));
$12 = $9 / $11;
HEAPF32[315082] = $12;
$13 = (($$028) + 1)|0;
$exitcond = ($13|0)==($5|0);
if ($exitcond) {
break;
} else {
$$028 = $13;
}
}
}
$14 = ($3|0)>(0);
$15 = $14 ? $3 : 0;
$$126 = (($15) + 1)|0;
$16 = HEAP32[(1407468)>>2]|0;
$17 = ($$126|0)<($16|0);
if (!($17)) {
$26 = ($3|0)>(1);
$27 = $26 ? $3 : 1;
return ($27|0);
}
$$127 = $$126;
while(1) {
$18 = HEAP32[315083]|0;
$19 = Math_imul($$127, $0)|0;
$20 = (($18) + ($19)|0);
_Mem_Set($20,0,$0);
$21 = (+($$127|0));
$22 = HEAP32[(1407468)>>2]|0;
$23 = (+($22|0));
$24 = $21 / $23;
HEAPF32[315082] = $24;
$$1 = (($$127) + 1)|0;
$25 = ($$1|0)<($22|0);
if ($25) {
$$127 = $$1;
} else {
break;
}
}
$26 = ($3|0)>(1);
$27 = $26 ? $3 : 1;
return ($27|0);
}
function _CombinedNoise_Init($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_OctaveNoise_Init($0,8);
$1 = ((($0)) + 4100|0);
_OctaveNoise_Init($1,8);
return;
}
function _CombinedNoise_Calc($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4100|0);
$4 = (+_OctaveNoise_Calc($3,$1,$2));
$5 = $4 + $1;
$6 = (+_OctaveNoise_Calc($0,$5,$2));
return (+$6);
}
function _Gfx_GetFog() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408241]|0;
return ($0|0);
}
function _Gfx_LoseContext($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1260360)>>0]|0;
$2 = ($1<<24>>24)==(0);
if (!($2)) {
return;
}
HEAP8[(1260360)>>0] = 1;
_Platform_Log1(24455,$0);
_Gfx_FreeState();
_Event_RaiseVoid((1251856));
return;
}
function _Gfx_FreeState() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gfx_FreeDefaultResources();
HEAP32[315126] = 0;
$0 = HEAP32[(2680)>>2]|0;
_glDeleteProgram(($0|0));
HEAP32[(2680)>>2] = 0;
$1 = HEAP32[(2712)>>2]|0;
_glDeleteProgram(($1|0));
HEAP32[(2712)>>2] = 0;
$2 = HEAP32[(2744)>>2]|0;
_glDeleteProgram(($2|0));
HEAP32[(2744)>>2] = 0;
$3 = HEAP32[(2776)>>2]|0;
_glDeleteProgram(($3|0));
HEAP32[(2776)>>2] = 0;
$4 = HEAP32[(2808)>>2]|0;
_glDeleteProgram(($4|0));
HEAP32[(2808)>>2] = 0;
$5 = HEAP32[(2840)>>2]|0;
_glDeleteProgram(($5|0));
HEAP32[(2840)>>2] = 0;
$6 = HEAP32[(2872)>>2]|0;
_glDeleteProgram(($6|0));
HEAP32[(2872)>>2] = 0;
$7 = HEAP32[(2904)>>2]|0;
_glDeleteProgram(($7|0));
HEAP32[(2904)>>2] = 0;
$8 = HEAP32[(2936)>>2]|0;
_glDeleteProgram(($8|0));
HEAP32[(2936)>>2] = 0;
$9 = HEAP32[(2968)>>2]|0;
_glDeleteProgram(($9|0));
HEAP32[(2968)>>2] = 0;
$10 = HEAP32[(3000)>>2]|0;
_glDeleteProgram(($10|0));
HEAP32[(3000)>>2] = 0;
$11 = HEAP32[(3032)>>2]|0;
_glDeleteProgram(($11|0));
HEAP32[(3032)>>2] = 0;
$12 = HEAP32[(3064)>>2]|0;
_glDeleteProgram(($12|0));
HEAP32[(3064)>>2] = 0;
$13 = HEAP32[(3096)>>2]|0;
_glDeleteProgram(($13|0));
HEAP32[(3096)>>2] = 0;
$14 = HEAP32[(3128)>>2]|0;
_glDeleteProgram(($14|0));
HEAP32[(3128)>>2] = 0;
$15 = HEAP32[(3160)>>2]|0;
_glDeleteProgram(($15|0));
HEAP32[(3160)>>2] = 0;
$16 = HEAP32[(3192)>>2]|0;
_glDeleteProgram(($16|0));
HEAP32[(3192)>>2] = 0;
$17 = HEAP32[(3224)>>2]|0;
_glDeleteProgram(($17|0));
HEAP32[(3224)>>2] = 0;
return;
}
function _Gfx_FreeDefaultResources() {
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteVb(1260492);
_Gfx_DeleteVb(1260496);
_Gfx_DeleteIb(1260500);
return;
}
function _Gfx_DeleteVb($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP32[$0>>2]|0;
HEAP32[$1>>2] = $2;
$3 = ($2|0)==(0);
if ($3) {
STACKTOP = sp;return;
}
_glDeleteBuffers(1,($1|0));
HEAP32[$0>>2] = 0;
STACKTOP = sp;return;
}
function _Gfx_DeleteIb($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP32[$0>>2]|0;
HEAP32[$1>>2] = $2;
$3 = ($2|0)==(0);
if ($3) {
STACKTOP = sp;return;
}
_glDeleteBuffers(1,($1|0));
HEAP32[$0>>2] = 0;
STACKTOP = sp;return;
}
function _Gfx_UpdateDynamicVb_Lines($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_SetDynamicVbData($0,$1,$2);
_Gfx_DrawVb_Lines($2);
return;
}
function _Gfx_SetDynamicVbData($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[315128]|0;
$4 = Math_imul($3, $2)|0;
_glBindBuffer(34962,($0|0));
_glBufferSubData(34962,0,($4|0),($1|0));
return;
}
function _Gfx_DrawVb_Lines($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315127]|0;
FUNCTION_TABLE_v[$1 & 127]();
_glDrawArrays(1,0,($0|0));
return;
}
function _GL_SetupVbPos3fCol4b() {
var label = 0, sp = 0;
sp = STACKTOP;
_glVertexAttribPointer(0,3,5126,0,16,(0|0));
_glVertexAttribPointer(1,4,5121,1,16,((12)|0));
return;
}
function _GL_SetupVbPos3fTex2fCol4b() {
var label = 0, sp = 0;
sp = STACKTOP;
_glVertexAttribPointer(0,3,5126,0,24,(0|0));
_glVertexAttribPointer(1,4,5121,1,24,((12)|0));
_glVertexAttribPointer(2,2,5126,0,24,((16)|0));
return;
}
function _Gfx_UpdateDynamicVb_IndexedTris($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_SetDynamicVbData($0,$1,$2);
_Gfx_DrawVb_IndexedTris($2);
return;
}
function _Gfx_DrawVb_IndexedTris($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315127]|0;
FUNCTION_TABLE_v[$1 & 127]();
$2 = (2)?($0 >> 2):($0);
$3 = ($2*6)|0;
_glDrawElements(4,($3|0),5123,(0|0));
return;
}
function _Gfx_Draw2DFlat($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $5 = 0, $6 = 0.0;
var $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$5 = sp;
$6 = (+($0|0));
HEAPF32[$5>>2] = $6;
$7 = (+($1|0));
$8 = ((($5)) + 4|0);
HEAPF32[$8>>2] = $7;
$9 = ((($5)) + 8|0);
HEAPF32[$9>>2] = 0.0;
$10 = ((($5)) + 12|0);
HEAP32[$10>>2] = $4;
$11 = (($2) + ($0))|0;
$12 = (+($11|0));
$13 = ((($5)) + 16|0);
HEAPF32[$13>>2] = $12;
$14 = ((($5)) + 20|0);
HEAPF32[$14>>2] = $7;
$15 = ((($5)) + 24|0);
HEAPF32[$15>>2] = 0.0;
$16 = ((($5)) + 28|0);
HEAP32[$16>>2] = $4;
$17 = ((($5)) + 32|0);
HEAPF32[$17>>2] = $12;
$18 = (($3) + ($1))|0;
$19 = (+($18|0));
$20 = ((($5)) + 36|0);
HEAPF32[$20>>2] = $19;
$21 = ((($5)) + 40|0);
HEAPF32[$21>>2] = 0.0;
$22 = ((($5)) + 44|0);
HEAP32[$22>>2] = $4;
$23 = ((($5)) + 48|0);
HEAPF32[$23>>2] = $6;
$24 = ((($5)) + 52|0);
HEAPF32[$24>>2] = $19;
$25 = ((($5)) + 56|0);
HEAPF32[$25>>2] = 0.0;
$26 = ((($5)) + 60|0);
HEAP32[$26>>2] = $4;
_Gfx_SetVertexFormat(0);
$27 = HEAP32[315123]|0;
_Gfx_UpdateDynamicVb_IndexedTris($27,$5,4);
STACKTOP = sp;return;
}
function _Gfx_SetVertexFormat($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $storemerge = 0, $storemerge4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[2878]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[2878] = $0;
$3 = (11516 + ($0<<2)|0);
$4 = HEAP32[$3>>2]|0;
HEAP32[315128] = $4;
$5 = ($0|0)==(1);
if ($5) {
_glEnableVertexAttribArray(2);
$storemerge = 291;$storemerge4 = 70;
} else {
_glDisableVertexAttribArray(2);
$storemerge = 292;$storemerge4 = 71;
}
HEAP32[315127] = $storemerge4;
HEAP32[315129] = $storemerge;
_Gfx_SwitchProgram();
return;
}
function _GL_SetupVbPos3fTex2fCol4b_Range($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0*24)|0;
$2 = $1;
_glVertexAttribPointer(0,3,5126,0,24,($2|0));
$3 = (($1) + 12)|0;
$4 = $3;
_glVertexAttribPointer(1,4,5121,1,24,($4|0));
$5 = (($1) + 16)|0;
$6 = $5;
_glVertexAttribPointer(2,2,5126,0,24,($6|0));
return;
}
function _GL_SetupVbPos3fCol4b_Range($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 << 4;
$2 = $1;
_glVertexAttribPointer(0,3,5126,0,16,($2|0));
$3 = $1 | 12;
$4 = $3;
_glVertexAttribPointer(1,4,5121,1,16,($4|0));
return;
}
function _Gfx_SwitchProgram() {
var $$0 = 0, $$2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $spec$select = 0, $spec$select13 = 0, $spec$select14 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408241]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
$$0 = 0;
} else {
$2 = HEAP32[2881]|0;
$3 = ($2|0)>(0);
$spec$select = $3 ? 12 : 6;
$$0 = $spec$select;
}
$4 = HEAP32[2878]|0;
$5 = ($4|0)==(1);
$6 = (($$0) + 2)|0;
$spec$select13 = $5 ? $6 : $$0;
$7 = HEAP8[1408242]|0;
$8 = ($7<<24>>24)==(0);
$9 = (($spec$select13) + 2)|0;
$$2 = $8 ? $spec$select13 : $9;
$10 = HEAP8[1408243]|0;
$11 = ($10<<24>>24)!=(0);
$12 = $11&1;
$spec$select14 = $$2 | $12;
$13 = (2672 + ($spec$select14<<5)|0);
$14 = HEAP32[315126]|0;
$15 = ($13|0)==($14|0);
if ($15) {
_Gfx_ReloadUniforms();
return;
}
$16 = (((2672 + ($spec$select14<<5)|0)) + 8|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)==(0);
if ($18) {
_Gfx_CompileProgram($13);
}
HEAP32[315126] = $13;
$19 = HEAP32[$16>>2]|0;
_glUseProgram(($19|0));
_Gfx_ReloadUniforms();
return;
}
function _Gfx_ReloadUniforms() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0;
var $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315126]|0;
$1 = ($0|0)==(0|0);
if ($1) {
return;
}
$2 = ((($0)) + 4|0);
$3 = HEAP32[$2>>2]|0;
$4 = $3 & 1;
$5 = ($4|0)==(0);
if (!($5)) {
$6 = ((($0)) + 12|0);
$7 = HEAP32[$6>>2]|0;
_glUniformMatrix4fv(($7|0),1,0,(1260520|0));
$8 = HEAP32[$2>>2]|0;
$9 = $8 & -2;
HEAP32[$2>>2] = $9;
}
$10 = HEAP32[$2>>2]|0;
$11 = $10 & 2;
$12 = ($11|0)==(0);
if (!($12)) {
$13 = HEAP32[$0>>2]|0;
$14 = $13 & 4;
$15 = ($14|0)==(0);
if (!($15)) {
$16 = ((($0)) + 16|0);
$17 = HEAP32[$16>>2]|0;
_glUniformMatrix4fv(($17|0),1,0,(1260584|0));
$18 = HEAP32[$2>>2]|0;
$19 = $18 & -3;
HEAP32[$2>>2] = $19;
}
}
$20 = HEAP32[$2>>2]|0;
$21 = $20 & 4;
$22 = ($21|0)==(0);
if (!($22)) {
$23 = HEAP32[$0>>2]|0;
$24 = $23 & 24;
$25 = ($24|0)==(0);
if (!($25)) {
$26 = ((($0)) + 20|0);
$27 = HEAP32[$26>>2]|0;
$28 = HEAP32[315162]|0;
$29 = $28 & 255;
$30 = (+($29|0));
$31 = $30 / 255.0;
$32 = (8)?($28 >>> 8):($28);
$33 = $32 & 255;
$34 = (+($33|0));
$35 = $34 / 255.0;
$36 = (16)?($28 >>> 16):($28);
$37 = $36 & 255;
$38 = (+($37|0));
$39 = $38 / 255.0;
_glUniform3f(($27|0),(+$31),(+$35),(+$39));
$40 = HEAP32[$2>>2]|0;
$41 = $40 & -5;
HEAP32[$2>>2] = $41;
}
}
$42 = HEAP32[$2>>2]|0;
$43 = $42 & 8;
$44 = ($43|0)==(0);
if (!($44)) {
$45 = HEAP32[$0>>2]|0;
$46 = $45 & 8;
$47 = ($46|0)==(0);
if (!($47)) {
$48 = ((($0)) + 24|0);
$49 = HEAP32[$48>>2]|0;
$50 = +HEAPF32[2882];
_glUniform1f(($49|0),(+$50));
$51 = HEAP32[$2>>2]|0;
$52 = $51 & -9;
HEAP32[$2>>2] = $52;
}
}
$53 = HEAP32[$2>>2]|0;
$54 = $53 & 16;
$55 = ($54|0)==(0);
if ($55) {
return;
}
$56 = HEAP32[$0>>2]|0;
$57 = $56 & 16;
$58 = ($57|0)==(0);
if ($58) {
return;
}
$59 = ((($0)) + 28|0);
$60 = HEAP32[$59>>2]|0;
$61 = +HEAPF32[2883];
$62 = - $61;
_glUniform1f(($60|0),(+$62));
$63 = HEAP32[$2>>2]|0;
$64 = $63 & -17;
HEAP32[$2>>2] = $64;
return;
}
function _Gfx_CompileProgram($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2064|0;
$1 = sp;
$2 = sp + 2056|0;
$3 = sp + 2048|0;
HEAP32[$2>>2] = $1;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 2048;
_Gfx_GenVertexShader($0,$2);
$6 = (_Gfx_CompileShader(35633,$2)|0);
HEAP16[$4>>1] = 0;
_Gfx_GenFragmentShader($0,$2);
$7 = (_Gfx_CompileShader(35632,$2)|0);
$8 = (_glCreateProgram()|0);
$9 = ($8|0)==(0);
if ($9) {
_Logger_Abort(24481);
}
$10 = ((($0)) + 8|0);
HEAP32[$10>>2] = $8;
_glAttachShader(($8|0),($6|0));
_glAttachShader(($8|0),($7|0));
_glBindAttribLocation(($8|0),0,(24506|0));
_glBindAttribLocation(($8|0),1,(24513|0));
_glBindAttribLocation(($8|0),2,(24520|0));
_glLinkProgram(($8|0));
_glGetProgramiv(($8|0),35714,($3|0));
$11 = HEAP32[$3>>2]|0;
$12 = ($11|0)==(0);
if (!($12)) {
_glDetachShader(($8|0),($6|0));
_glDetachShader(($8|0),($7|0));
_glDeleteShader(($6|0));
_glDeleteShader(($7|0));
$13 = (_glGetUniformLocation(($8|0),(24526|0))|0);
$14 = ((($0)) + 12|0);
HEAP32[$14>>2] = $13;
$15 = (_glGetUniformLocation(($8|0),(24530|0))|0);
$16 = ((($0)) + 16|0);
HEAP32[$16>>2] = $15;
$17 = (_glGetUniformLocation(($8|0),(24540|0))|0);
$18 = ((($0)) + 20|0);
HEAP32[$18>>2] = $17;
$19 = (_glGetUniformLocation(($8|0),(24547|0))|0);
$20 = ((($0)) + 24|0);
HEAP32[$20>>2] = $19;
$21 = (_glGetUniformLocation(($8|0),(24554|0))|0);
$22 = ((($0)) + 28|0);
HEAP32[$22>>2] = $21;
STACKTOP = sp;return;
}
HEAP32[$3>>2] = 0;
_glGetProgramiv(($8|0),35716,($3|0));
$23 = HEAP32[$3>>2]|0;
$24 = ($23|0)>(0);
if ($24) {
_glGetProgramInfoLog(($8|0),2047,(0|0),($1|0));
$25 = ((($1)) + 2047|0);
HEAP8[$25>>0] = 0;
_Platform_LogConst($1);
}
_Logger_Abort(24565);
STACKTOP = sp;return;
}
function _Gfx_GenVertexShader($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[$0>>2]|0;
$3 = $2 & 1;
$4 = $2 & 4;
_String_AppendConst($1,25155);
_String_AppendConst($1,25179);
$5 = ($3|0)!=(0);
if ($5) {
_String_AppendConst($1,25203);
_String_AppendConst($1,24615);
_String_AppendConst($1,24638);
} else {
_String_AppendConst($1,24615);
}
_String_AppendConst($1,25226);
$6 = ($4|0)!=(0);
if ($6) {
_String_AppendConst($1,25245);
}
_String_AppendConst($1,24761);
_String_AppendConst($1,25270);
_String_AppendConst($1,25312);
if ($5) {
_String_AppendConst($1,25333);
}
if (!($6)) {
_String_AppendConst($1,25104);
return;
}
_String_AppendConst($1,25353);
_String_AppendConst($1,25104);
return;
}
function _Gfx_CompileShader($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2064|0;
$2 = sp + 2052|0;
$3 = sp + 2048|0;
$4 = sp;
$5 = (_glCreateShader(($0|0))|0);
$6 = ($5|0)==(0);
if ($6) {
_Logger_Abort(25106);
}
$7 = ((($1)) + 4|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
HEAP32[$3>>2] = $9;
_glShaderSource(($5|0),1,($1|0),($3|0));
_glCompileShader(($5|0));
_glGetShaderiv(($5|0),35713,($2|0));
$10 = HEAP32[$2>>2]|0;
$11 = ($10|0)==(0);
if (!($11)) {
$$0 = $5;
STACKTOP = sp;return ($$0|0);
}
HEAP32[$2>>2] = 0;
_glGetShaderiv(($5|0),35716,($2|0));
$12 = HEAP32[$2>>2]|0;
$13 = ($12|0)>(1);
if ($13) {
_glGetShaderInfoLog(($5|0),2047,(0|0),($4|0));
$14 = ((($4)) + 2047|0);
HEAP8[$14>>0] = 0;
_Platform_LogConst($4);
}
_Logger_Abort(25130);
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _Gfx_GenFragmentShader($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[$0>>2]|0;
$3 = $2 & 1;
$4 = $2 & 2;
$5 = $2 & 8;
$6 = $2 & 16;
$7 = $2 & 24;
_String_AppendConst($1,24591);
_String_AppendConst($1,24615);
$8 = ($3|0)!=(0);
if ($8) {
_String_AppendConst($1,24638);
_String_AppendConst($1,24660);
}
$9 = ($7|0)!=(0);
if ($9) {
_String_AppendConst($1,24689);
}
$10 = ($5|0)!=(0);
if ($10) {
_String_AppendConst($1,24711);
}
$11 = ($6|0)!=(0);
if ($11) {
_String_AppendConst($1,24734);
}
_String_AppendConst($1,24761);
if ($8) {
_String_AppendConst($1,24776);
} else {
_String_AppendConst($1,24829);
}
$12 = ($4|0)==(0);
if (!($12)) {
_String_AppendConst($1,24852);
}
if ($9) {
_String_AppendConst($1,24881);
}
if ($10) {
_String_AppendConst($1,24931);
}
if ($11) {
_String_AppendConst($1,24988);
}
if (!($9)) {
_String_AppendConst($1,25081);
_String_AppendConst($1,25104);
return;
}
_String_AppendConst($1,25043);
_String_AppendConst($1,25081);
_String_AppendConst($1,25104);
return;
}
function _Gfx_Draw2DGradient($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $6 = 0;
var $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$6 = sp;
$7 = (+($0|0));
HEAPF32[$6>>2] = $7;
$8 = (+($1|0));
$9 = ((($6)) + 4|0);
HEAPF32[$9>>2] = $8;
$10 = ((($6)) + 8|0);
HEAPF32[$10>>2] = 0.0;
$11 = ((($6)) + 12|0);
HEAP32[$11>>2] = $4;
$12 = (($2) + ($0))|0;
$13 = (+($12|0));
$14 = ((($6)) + 16|0);
HEAPF32[$14>>2] = $13;
$15 = ((($6)) + 20|0);
HEAPF32[$15>>2] = $8;
$16 = ((($6)) + 24|0);
HEAPF32[$16>>2] = 0.0;
$17 = ((($6)) + 28|0);
HEAP32[$17>>2] = $4;
$18 = ((($6)) + 32|0);
HEAPF32[$18>>2] = $13;
$19 = (($3) + ($1))|0;
$20 = (+($19|0));
$21 = ((($6)) + 36|0);
HEAPF32[$21>>2] = $20;
$22 = ((($6)) + 40|0);
HEAPF32[$22>>2] = 0.0;
$23 = ((($6)) + 44|0);
HEAP32[$23>>2] = $5;
$24 = ((($6)) + 48|0);
HEAPF32[$24>>2] = $7;
$25 = ((($6)) + 52|0);
HEAPF32[$25>>2] = $20;
$26 = ((($6)) + 56|0);
HEAPF32[$26>>2] = 0.0;
$27 = ((($6)) + 60|0);
HEAP32[$27>>2] = $5;
_Gfx_SetVertexFormat(0);
$28 = HEAP32[315123]|0;
_Gfx_UpdateDynamicVb_IndexedTris($28,$6,4);
STACKTOP = sp;return;
}
function _Gfx_Draw2DTexture($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0;
$2 = sp;
$3 = sp + 96|0;
HEAP32[$3>>2] = $2;
_Gfx_Make2DQuad($0,$1,$3);
_Gfx_SetVertexFormat(1);
$4 = HEAP32[315124]|0;
_Gfx_UpdateDynamicVb_IndexedTris($4,$2,4);
STACKTOP = sp;return;
}
function _Gfx_Make2DQuad($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $49 = 0, $5 = 0.0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = (+($4<<16>>16));
$6 = $4 << 16 >> 16;
$7 = ((($0)) + 8|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$10 = (($9) + ($6))|0;
$11 = (+($10|0));
$12 = ((($0)) + 6|0);
$13 = HEAP16[$12>>1]|0;
$14 = (+($13<<16>>16));
$15 = $13 << 16 >> 16;
$16 = ((($0)) + 10|0);
$17 = HEAP16[$16>>1]|0;
$18 = $17&65535;
$19 = (($18) + ($15))|0;
$20 = (+($19|0));
$21 = HEAP32[$2>>2]|0;
HEAPF32[$21>>2] = $5;
$22 = ((($21)) + 4|0);
HEAPF32[$22>>2] = $14;
$23 = ((($21)) + 8|0);
HEAPF32[$23>>2] = 0.0;
$24 = ((($21)) + 12|0);
HEAP32[$24>>2] = $1;
$25 = ((($0)) + 12|0);
$26 = HEAP32[$25>>2]|0;
$27 = ((($21)) + 16|0);
HEAP32[$27>>2] = $26;
$28 = ((($0)) + 16|0);
$29 = HEAP32[$28>>2]|0;
$30 = ((($21)) + 20|0);
HEAP32[$30>>2] = $29;
$31 = ((($21)) + 24|0);
HEAPF32[$31>>2] = $11;
$32 = ((($21)) + 28|0);
HEAPF32[$32>>2] = $14;
$33 = ((($21)) + 32|0);
HEAPF32[$33>>2] = 0.0;
$34 = ((($21)) + 36|0);
HEAP32[$34>>2] = $1;
$35 = ((($0)) + 20|0);
$36 = HEAP32[$35>>2]|0;
$37 = ((($21)) + 40|0);
HEAP32[$37>>2] = $36;
$38 = ((($21)) + 44|0);
HEAP32[$38>>2] = $29;
$39 = ((($21)) + 48|0);
HEAPF32[$39>>2] = $11;
$40 = ((($21)) + 52|0);
HEAPF32[$40>>2] = $20;
$41 = ((($21)) + 56|0);
HEAPF32[$41>>2] = 0.0;
$42 = ((($21)) + 60|0);
HEAP32[$42>>2] = $1;
$43 = ((($21)) + 64|0);
HEAP32[$43>>2] = $36;
$44 = ((($0)) + 24|0);
$45 = HEAP32[$44>>2]|0;
$46 = ((($21)) + 68|0);
HEAP32[$46>>2] = $45;
$47 = ((($21)) + 72|0);
HEAPF32[$47>>2] = $5;
$48 = ((($21)) + 76|0);
HEAPF32[$48>>2] = $20;
$49 = ((($21)) + 80|0);
HEAPF32[$49>>2] = 0.0;
$50 = ((($21)) + 84|0);
HEAP32[$50>>2] = $1;
$51 = ((($21)) + 88|0);
HEAP32[$51>>2] = $26;
$52 = ((($21)) + 92|0);
HEAP32[$52>>2] = $45;
$53 = ((($21)) + 96|0);
HEAP32[$2>>2] = $53;
return;
}
function _Gfx_Mode2D($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$2 = sp;
$3 = (+($0|0));
$4 = (+($1|0));
_Gfx_CalcOrthoMatrix($3,$4,$2);
_Gfx_LoadMatrix(0,$2);
_Gfx_LoadIdentityMatrix(1);
_Gfx_SetDepthTest(0);
_Gfx_SetAlphaBlending(1);
$5 = (_Gfx_GetFog()|0);
HEAP8[1408244] = $5;
$6 = ($5<<24>>24)==(0);
if ($6) {
STACKTOP = sp;return;
}
_Gfx_SetFog(0);
STACKTOP = sp;return;
}
function _Gfx_CalcOrthoMatrix($0,$1,$2) {
$0 = +$0;
$1 = +$1;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Matrix_OrthographicOffCenter($2,0.0,$0,$1,0.0,-1.0E+4,1.0E+4);
return;
}
function _Gfx_LoadMatrix($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
$2 = ($0>>>0)<(2);
if (!($2)) {
dest=1260584; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
HEAP8[1408242] = 1;
_Gfx_DirtyUniform(2);
_Gfx_SwitchProgram();
return;
}
switch ($0|0) {
case 1: {
dest=1260652; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
break;
}
case 0: {
dest=1260716; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
break;
}
default: {
}
}
_Matrix_Mul(1260520,1260652,1260716);
_Gfx_DirtyUniform(1);
_Gfx_ReloadUniforms();
return;
}
function _Gfx_LoadIdentityMatrix($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0>>>0)<(2);
if ($1) {
_Gfx_LoadMatrix($0,18012);
return;
} else {
HEAP8[1408242] = 0;
_Gfx_SwitchProgram();
return;
}
}
function _Gfx_SetDepthTest($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0<<24>>24)==(0);
if ($1) {
_glDisable(2929);
return;
} else {
_glEnable(2929);
return;
}
}
function _Gfx_SetAlphaBlending($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0<<24>>24)==(0);
if ($1) {
_glDisable(3042);
return;
} else {
_glEnable(3042);
return;
}
}
function _Gfx_SetFog($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408241] = $0;
_Gfx_SwitchProgram();
return;
}
function _Gfx_DirtyUniform($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(2676)>>2]|0;
$2 = $1 | $0;
HEAP32[(2676)>>2] = $2;
$3 = HEAP32[(2708)>>2]|0;
$4 = $3 | $0;
HEAP32[(2708)>>2] = $4;
$5 = HEAP32[(2740)>>2]|0;
$6 = $5 | $0;
HEAP32[(2740)>>2] = $6;
$7 = HEAP32[(2772)>>2]|0;
$8 = $7 | $0;
HEAP32[(2772)>>2] = $8;
$9 = HEAP32[(2804)>>2]|0;
$10 = $9 | $0;
HEAP32[(2804)>>2] = $10;
$11 = HEAP32[(2836)>>2]|0;
$12 = $11 | $0;
HEAP32[(2836)>>2] = $12;
$13 = HEAP32[(2868)>>2]|0;
$14 = $13 | $0;
HEAP32[(2868)>>2] = $14;
$15 = HEAP32[(2900)>>2]|0;
$16 = $15 | $0;
HEAP32[(2900)>>2] = $16;
$17 = HEAP32[(2932)>>2]|0;
$18 = $17 | $0;
HEAP32[(2932)>>2] = $18;
$19 = HEAP32[(2964)>>2]|0;
$20 = $19 | $0;
HEAP32[(2964)>>2] = $20;
$21 = HEAP32[(2996)>>2]|0;
$22 = $21 | $0;
HEAP32[(2996)>>2] = $22;
$23 = HEAP32[(3028)>>2]|0;
$24 = $23 | $0;
HEAP32[(3028)>>2] = $24;
$25 = HEAP32[(3060)>>2]|0;
$26 = $25 | $0;
HEAP32[(3060)>>2] = $26;
$27 = HEAP32[(3092)>>2]|0;
$28 = $27 | $0;
HEAP32[(3092)>>2] = $28;
$29 = HEAP32[(3124)>>2]|0;
$30 = $29 | $0;
HEAP32[(3124)>>2] = $30;
$31 = HEAP32[(3156)>>2]|0;
$32 = $31 | $0;
HEAP32[(3156)>>2] = $32;
$33 = HEAP32[(3188)>>2]|0;
$34 = $33 | $0;
HEAP32[(3188)>>2] = $34;
$35 = HEAP32[(3220)>>2]|0;
$36 = $35 | $0;
HEAP32[(3220)>>2] = $36;
return;
}
function _Gfx_Mode3D() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gfx_LoadMatrix(0,(1260428));
_Gfx_LoadMatrix(1,(1260364));
_Gfx_SetDepthTest(1);
_Gfx_SetAlphaBlending(0);
$0 = HEAP8[1408244]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
_Gfx_SetFog(1);
return;
}
function _Gfx_MakeIndices($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$01922 = 0, $$02021 = 0, $$023 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)>(0);
if (!($2)) {
return;
}
$$01922 = 0;$$02021 = $0;$$023 = 0;
while(1) {
$3 = $$01922&65535;
HEAP16[$$02021>>1] = $3;
$4 = $$01922 | 1;
$5 = $4&65535;
$6 = ((($$02021)) + 2|0);
HEAP16[$6>>1] = $5;
$7 = $$01922 | 2;
$8 = $7&65535;
$9 = ((($$02021)) + 4|0);
HEAP16[$9>>1] = $8;
$10 = ((($$02021)) + 6|0);
HEAP16[$10>>1] = $8;
$11 = $$01922 | 3;
$12 = $11&65535;
$13 = ((($$02021)) + 8|0);
HEAP16[$13>>1] = $12;
$14 = ((($$02021)) + 10|0);
HEAP16[$14>>1] = $3;
$15 = ((($$02021)) + 12|0);
$16 = (($$01922) + 4)|0;
$17 = (($$023) + 6)|0;
$18 = ($17|0)<($1|0);
if ($18) {
$$01922 = $16;$$02021 = $15;$$023 = $17;
} else {
break;
}
}
return;
}
function _Gfx_SetupAlphaState($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<24>>24) {
case 3: {
_Gfx_SetAlphaBlending(1);
break;
}
case 1: {
_Gfx_SetAlphaTest(1);
break;
}
case 2: {
_Gfx_SetAlphaTest(1);
break;
}
case 5: {
_Gfx_SetAlphaTest(1);
break;
}
default: {
}
}
return;
}
function _Gfx_SetAlphaTest($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408243] = $0;
_Gfx_SwitchProgram();
return;
}
function _Gfx_RestoreAlphaState($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<24>>24) {
case 3: {
_Gfx_SetAlphaBlending(0);
break;
}
case 1: {
_Gfx_SetAlphaTest(0);
break;
}
case 2: {
_Gfx_SetAlphaTest(0);
break;
}
case 5: {
_Gfx_SetAlphaTest(0);
break;
}
default: {
}
}
return;
}
function _Texture_Render($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
_Gfx_BindTexture($1);
_Gfx_Draw2DTexture($0,-1);
return;
}
function _Gfx_BindTexture($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_glBindTexture(3553,($0|0));
return;
}
function _Texture_RenderShaded($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[$0>>2]|0;
_Gfx_BindTexture($2);
_Gfx_Draw2DTexture($0,$1);
return;
}
function _Gfx_Init() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$0 = sp;
_GraphicsMode_MakeDefault($0);
_GLContext_Init($0);
HEAPF32[(1260356)>>2] = 0.10000000149011612;
_glGetIntegerv(3379,(1260348|0));
$1 = HEAP32[315087]|0;
HEAP32[(1260352)>>2] = $1;
HEAP8[(1260363)>>0] = 1;
_Gfx_RestoreState();
STACKTOP = sp;return;
}
function _Gfx_RestoreState() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gfx_InitDefaultResources();
_glEnableVertexAttribArray(0);
_glEnableVertexAttribArray(1);
HEAP32[2878] = -1;
_Gfx_DirtyUniform(31);
$0 = HEAP32[315195]|0;
_GL_ClearCol($0);
_glBlendFunc(770,771);
_glDepthFunc(515);
return;
}
function _Gfx_InitDefaultResources() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 196608|0;
$0 = sp;
_Gfx_MakeIndices($0,98304);
$1 = (_Gfx_CreateIb($0,98304)|0);
HEAP32[315125] = $1;
$2 = (_Gfx_CreateDynamicVb(0,4)|0);
HEAP32[315123] = $2;
$3 = (_Gfx_CreateDynamicVb(1,4)|0);
HEAP32[315124] = $3;
STACKTOP = sp;return;
}
function _GL_ClearCol($0) {
$0 = $0|0;
var $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 & 255;
$2 = (+($1|0));
$3 = $2 / 255.0;
$4 = (8)?($0 >>> 8):($0);
$5 = $4 & 255;
$6 = (+($5|0));
$7 = $6 / 255.0;
$8 = (16)?($0 >>> 16):($0);
$9 = $8 & 255;
$10 = (+($9|0));
$11 = $10 / 255.0;
$12 = (24)?($0 >>> 24):($0);
$13 = (+($12|0));
$14 = $13 / 255.0;
_glClearColor((+$3),(+$7),(+$11),(+$14));
return;
}
function _Gfx_CreateIb($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_GL_GenAndBind(34963)|0);
$3 = $1 << 1;
_glBufferData(34963,($3|0),($0|0),35044);
return ($2|0);
}
function _Gfx_CreateDynamicVb($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(1260360)>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
$$0 = 0;
return ($$0|0);
}
$4 = (11516 + ($0<<2)|0);
$5 = (_GL_GenAndBind(34962)|0);
$6 = HEAP32[$4>>2]|0;
$7 = Math_imul($6, $1)|0;
_glBufferData(34962,($7|0),(0|0),35048);
$$0 = $5;
return ($$0|0);
}
function _GL_GenAndBind($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_glGenBuffers(1,($1|0));
$2 = HEAP32[$1>>2]|0;
_glBindBuffer(($0|0),($2|0));
$3 = HEAP32[$1>>2]|0;
STACKTOP = sp;return ($3|0);
}
function _Gfx_TryRestoreContext() {
var $$0 = 0, $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_GLContext_TryRestore()|0);
$1 = ($0<<24>>24)==(0);
if ($1) {
$$0 = 0;
return ($$0|0);
}
_Gfx_RecreateContext();
$$0 = 1;
return ($$0|0);
}
function _Gfx_RecreateContext() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1260360)>>0] = 0;
_Platform_LogConst(25404);
_Gfx_RestoreState();
_Event_RaiseVoid((1252116));
return;
}
function _Gfx_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_FreeDefaultResources();
_GLContext_Free();
return;
}
function _Gfx_CreateTexture($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
_glGenTextures(1,($3|0));
$4 = HEAP32[$3>>2]|0;
_glBindTexture(3553,($4|0));
_glTexParameteri(3553,10240,9728);
$5 = ((($0)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$7 = (_Math_IsPowOf2($6)|0);
$8 = ($7<<24>>24)==(0);
if ($8) {
label = 3;
} else {
$9 = ((($0)) + 8|0);
$10 = HEAP32[$9>>2]|0;
$11 = (_Math_IsPowOf2($10)|0);
$12 = ($11<<24>>24)==(0);
if ($12) {
label = 3;
}
}
if ((label|0) == 3) {
_Logger_Abort(25432);
}
$13 = HEAP8[(1260360)>>0]|0;
$14 = ($13<<24>>24)==(0);
if (!($14)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$15 = ($2<<24>>24)!=(0);
if ($15) {
_glTexParameteri(3553,10241,9986);
$16 = HEAP8[(1260362)>>0]|0;
$17 = ($16<<24>>24)==(0);
if (!($17)) {
$18 = HEAP32[$5>>2]|0;
$19 = ((($0)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = (_CalcMipmapsLevels($18,$20)|0);
_glTexParameteri(3553,33085,($21|0));
}
} else {
_glTexParameteri(3553,10241,9728);
}
$22 = HEAP32[$5>>2]|0;
$23 = ((($0)) + 8|0);
$24 = HEAP32[$23>>2]|0;
$25 = HEAP32[$0>>2]|0;
_glTexImage2D(3553,0,6408,($22|0),($24|0),0,6408,5121,($25|0));
if ($15) {
_Gfx_DoMipmaps(0,0,$0,0);
}
$26 = HEAP32[$3>>2]|0;
$$0 = $26;
STACKTOP = sp;return ($$0|0);
}
function _CalcMipmapsLevels($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Math_Log2($0)|0);
$3 = (_Math_Log2($1)|0);
$4 = HEAP8[(1260362)>>0]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
$10 = ($2|0)>($3|0);
$11 = $10 ? $2 : $3;
$$0 = $11;
return ($$0|0);
} else {
$6 = ($2|0)<($3|0);
$7 = $6 ? $2 : $3;
$8 = ($7|0)<(4);
$9 = $8 ? $7 : 4;
$$0 = $9;
return ($$0|0);
}
return (0)|0;
}
function _Gfx_DoMipmaps($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$04757 = 0, $$04956 = 0, $$05055 = 0, $$05154 = 0, $$052$lcssa = 0, $$05253 = 0, $$058 = 0, $$1 = 0, $$148 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[$2>>2]|0;
$5 = ((($2)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($2)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$9 = (_CalcMipmapsLevels($6,$8)|0);
$10 = ($9|0)<(1);
if ($10) {
$$052$lcssa = $4;
} else {
$11 = HEAP32[$7>>2]|0;
$12 = HEAP32[$5>>2]|0;
$13 = ($3<<24>>24)==(0);
$$04757 = $12;$$04956 = 1;$$05055 = $0;$$05154 = $1;$$05253 = $4;$$058 = $11;
while(1) {
$14 = (($$05055|0) / 2)&-1;
$15 = (($$05154|0) / 2)&-1;
$16 = ($$04757|0)>(1);
$17 = (($$04757|0) / 2)&-1;
$$148 = $16 ? $17 : $$04757;
$18 = ($$058|0)>(1);
$19 = (($$058|0) / 2)&-1;
$$1 = $18 ? $19 : $$058;
$20 = Math_imul($$1, $$148)|0;
$21 = (_Mem_Alloc($20,4,25475)|0);
_GenMipmaps($$148,$$1,$21,$$05253);
if ($13) {
_glTexImage2D(3553,($$04956|0),6408,($$148|0),($$1|0),0,6408,5121,($21|0));
} else {
_glTexSubImage2D(3553,($$04956|0),($14|0),($15|0),($$148|0),($$1|0),6408,5121,($21|0));
}
$22 = HEAP32[$2>>2]|0;
$23 = ($$05253|0)==($22|0);
if (!($23)) {
_Mem_Free($$05253);
}
$24 = (($$04956) + 1)|0;
$exitcond = ($$04956|0)==($9|0);
if ($exitcond) {
$$052$lcssa = $21;
break;
} else {
$$04757 = $$148;$$04956 = $24;$$05055 = $14;$$05154 = $15;$$05253 = $21;$$058 = $$1;
}
}
}
$25 = HEAP32[$2>>2]|0;
$26 = ($$052$lcssa|0)==($25|0);
if ($26) {
return;
}
_Mem_Free($$052$lcssa);
return;
}
function _GenMipmaps($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$06567 = 0, $$066 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond71 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $0 << 1;
$5 = ($1|0)>(0);
if (!($5)) {
return;
}
$6 = $0 << 2;
$7 = ($0|0)>(0);
$$06567 = 0;
while(1) {
$8 = Math_imul($6, $$06567)|0;
$9 = (($3) + ($8<<2)|0);
$10 = (($9) + ($4<<2)|0);
$11 = Math_imul($$06567, $0)|0;
$12 = (($2) + ($11<<2)|0);
if ($7) {
$$066 = 0;
while(1) {
$13 = $$066 << 1;
$14 = (($9) + ($13<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = $13 | 1;
$17 = (($9) + ($16<<2)|0);
$18 = HEAP32[$17>>2]|0;
$19 = (($10) + ($13<<2)|0);
$20 = HEAP32[$19>>2]|0;
$21 = (($10) + ($16<<2)|0);
$22 = HEAP32[$21>>2]|0;
$23 = (_AverageCol($15,$18)|0);
$24 = (_AverageCol($20,$22)|0);
$25 = (_AverageCol($23,$24)|0);
$26 = (($12) + ($$066<<2)|0);
HEAP32[$26>>2] = $25;
$27 = (($$066) + 1)|0;
$exitcond = ($27|0)==($0|0);
if ($exitcond) {
break;
} else {
$$066 = $27;
}
}
}
$28 = (($$06567) + 1)|0;
$exitcond71 = ($28|0)==($1|0);
if ($exitcond71) {
break;
} else {
$$06567 = $28;
}
}
return;
}
function _AverageCol($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (24)?($0 >>> 24):($0);
$3 = (24)?($1 >>> 24):($1);
$4 = (($3) + ($2))|0;
$5 = ($4|0)==(0);
$6 = $5 ? 1 : $4;
$7 = $0 & 255;
$8 = Math_imul($7, $2)|0;
$9 = (8)?($0 >>> 8):($0);
$10 = $9 & 255;
$11 = Math_imul($10, $2)|0;
$12 = (16)?($0 >>> 16):($0);
$13 = $12 & 255;
$14 = Math_imul($13, $2)|0;
$15 = $1 & 255;
$16 = Math_imul($15, $3)|0;
$17 = (8)?($1 >>> 8):($1);
$18 = $17 & 255;
$19 = Math_imul($18, $3)|0;
$20 = (16)?($1 >>> 16):($1);
$21 = $20 & 255;
$22 = Math_imul($21, $3)|0;
$23 = (($16) + ($8))|0;
$24 = (($23>>>0) / ($6>>>0))&-1;
$25 = $24 & 255;
$26 = (($19) + ($11))|0;
$27 = (($26>>>0) / ($6>>>0))&-1;
$28 = $27 << 8;
$29 = $28 & 65280;
$30 = (($22) + ($14))|0;
$31 = (($30>>>0) / ($6>>>0))&-1;
$32 = $31 << 16;
$33 = $32 & 16711680;
$34 = (1)?($6 >>> 1):($6);
$35 = $34 << 24;
$36 = $25 | $35;
$37 = $36 | $29;
$38 = $37 | $33;
return ($38|0);
}
function _Gfx_UpdateTexturePart($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_glBindTexture(3553,($0|0));
$5 = ((($3)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($3)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$9 = HEAP32[$3>>2]|0;
_glTexSubImage2D(3553,0,($1|0),($2|0),($6|0),($8|0),6408,5121,($9|0));
$10 = ($4<<24>>24)==(0);
if ($10) {
return;
}
_Gfx_DoMipmaps($1,$2,$3,1);
return;
}
function _Gfx_DeleteTexture($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP32[$0>>2]|0;
HEAP32[$1>>2] = $2;
$3 = ($2|0)==(0);
if ($3) {
STACKTOP = sp;return;
}
_glDeleteTextures(1,($1|0));
HEAP32[$0>>2] = 0;
STACKTOP = sp;return;
}
function _Gfx_EnableMipmaps() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Gfx_DisableMipmaps() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Gfx_SetFaceCulling($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0<<24>>24)==(0);
if ($1) {
_glDisable(2884);
return;
} else {
_glEnable(2884);
return;
}
}
function _Gfx_SetAlphaArgBlend($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Gfx_ClearCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315195]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
_GL_ClearCol($0);
HEAP32[315195] = $0;
return;
}
function _Gfx_SetColWriteMask($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
_glColorMask(($0|0),($1|0),($2|0),($3|0));
return;
}
function _Gfx_SetDepthWrite($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_glDepthMask(($0|0));
return;
}
function _Gfx_CalcPerspectiveMatrix($0,$1,$2,$3,$4) {
$0 = +$0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
$4 = $4|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Matrix_PerspectiveFieldOfView($4,$0,$1,$2,$3);
return;
}
function _Gfx_CreateVb($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_GL_GenAndBind(34962)|0);
$4 = (11516 + ($1<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = Math_imul($5, $2)|0;
_glBufferData(34962,($6|0),($0|0),35044);
return ($3|0);
}
function _Gfx_BindVb($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_glBindBuffer(34962,($0|0));
return;
}
function _Gfx_BindIb($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_glBindBuffer(34963,($0|0));
return;
}
function _Gfx_GetApiInfo($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 28|0;
$2 = sp + 24|0;
$3 = sp + 20|0;
$4 = sp + 16|0;
$5 = sp + 12|0;
$6 = sp;
$7 = sp + 8|0;
HEAP32[$7>>2] = 32;
_glGetIntegerv(3414,($3|0));
_String_Format1($0,25483,$7);
$8 = ((($0)) + 8|0);
$9 = (_glGetString(7936)|0);
_String_Format1($8,25511,$9);
$10 = ((($0)) + 16|0);
$11 = (_glGetString(7937)|0);
_String_Format1($10,25522,$11);
$12 = ((($0)) + 24|0);
$13 = (_glGetString(7938)|0);
_String_Format1($12,25535,$13);
$14 = ((($0)) + 40|0);
_String_Format2($14,25550,1260348,(1260352));
$15 = ((($0)) + 48|0);
_String_Format1($15,25577,$3);
$16 = (_glGetString(7939)|0);
_String_FromReadonly($6,$16);
$17 = (_String_CaselessContains($6,11536)|0);
$18 = ($17|0)==(0);
if ($18) {
STACKTOP = sp;return;
}
_glGetIntegerv(36936,($1|0));
_glGetIntegerv(36937,($2|0));
$19 = HEAP32[$1>>2]|0;
$20 = ($19|0)<(1);
$21 = HEAP32[$2>>2]|0;
$22 = ($21|0)<(1);
$or$cond = $20 | $22;
if ($or$cond) {
STACKTOP = sp;return;
}
$23 = ((($0)) + 32|0);
$24 = (+($21|0));
$25 = $24 * 9.765625E-4;
$26 = (+($19|0));
$27 = $26 * 9.765625E-4;
HEAPF32[$4>>2] = $27;
HEAPF32[$5>>2] = $25;
_String_Format2($23,25599,$4,$5);
STACKTOP = sp;return;
}
function _Gfx_SetFpsLimit($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[315196] = $1;
_GLContext_SetFpsLimit($0,$1);
return;
}
function _Gfx_BeginFrame() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Stopwatch_Measure()|0);
$1 = (getTempRet0() | 0);
$2 = 535512;
$3 = $2;
HEAP32[$3>>2] = $0;
$4 = (($2) + 4)|0;
$5 = $4;
HEAP32[$5>>2] = $1;
return;
}
function _Gfx_Clear() {
var label = 0, sp = 0;
sp = STACKTOP;
_glClear(16640);
return;
}
function _Gfx_EndFrame() {
var $0 = 0, $1 = 0, $2 = 0.0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_GLContext_SwapBuffers()|0);
$1 = ($0<<24>>24)==(0);
if ($1) {
_Gfx_LoseContext(25659);
}
$2 = +HEAPF32[315196];
$3 = $2 != 0.0;
if (!($3)) {
return;
}
_Gfx_LimitFPS();
return;
}
function _Gfx_LimitFPS() {
var $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Stopwatch_Measure()|0);
$1 = (getTempRet0() | 0);
$2 = 535512;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 4)|0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (_Stopwatch_ElapsedMicroseconds($4,$7,$0,$1)|0);
$9 = (getTempRet0() | 0);
$10 = (+($8>>>0)) + (4294967296.0*(+($9>>>0)));
$11 = $10 / 1000.0;
$12 = +HEAPF32[315196];
$13 = $12 - $11;
$14 = $13 > 0.0010000000474974513;
if (!($14)) {
return;
}
return;
}
function _Gfx_OnWindowResize() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Game_UpdateDimensions();
$0 = HEAP32[133868]|0;
$1 = HEAP32[(535476)>>2]|0;
_glViewport(0,0,($0|0),($1|0));
return;
}
function _Gfx_SetFogCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315162]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[315162] = $0;
_Gfx_DirtyUniform(4);
_Gfx_ReloadUniforms();
return;
}
function _Gfx_SetFogDensity($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[2883];
$2 = $1 == $0;
if ($2) {
return;
}
HEAPF32[2883] = $0;
_Gfx_DirtyUniform(16);
_Gfx_ReloadUniforms();
return;
}
function _Gfx_SetFogEnd($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[2882];
$2 = $1 == $0;
if ($2) {
return;
}
HEAPF32[2882] = $0;
_Gfx_DirtyUniform(8);
_Gfx_ReloadUniforms();
return;
}
function _Gfx_SetFogMode($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[2881]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[2881] = $0;
_Gfx_SwitchProgram();
return;
}
function _Gfx_SetTexturing($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Gfx_WarnIfNecessary() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Gfx_DrawVb_IndexedTris_Range($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[315129]|0;
FUNCTION_TABLE_vi[$2 & 511]($1);
$3 = (2)?($0 >> 2):($0);
$4 = ($3*6)|0;
_glDrawElements(4,($4|0),5123,(0|0));
return;
}
function _Gfx_DrawIndexedVb_TrisT2fC4b($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1*24)|0;
$3 = $2;
_glVertexAttribPointer(0,3,5126,0,24,($3|0));
$4 = (($2) + 12)|0;
$5 = $4;
_glVertexAttribPointer(1,4,5121,1,24,($5|0));
$6 = (($2) + 16)|0;
$7 = $6;
_glVertexAttribPointer(2,2,5126,0,24,($7|0));
$8 = (2)?($0 >> 2):($0);
$9 = ($8*6)|0;
_glDrawElements(4,($9|0),5123,(0|0));
return;
}
function _Gui_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Register(1254716,0,293);
_Event_Register((1250816),0,8);
_Event_Register((1251856),0,294);
_Event_Register((1252116),0,295);
_Event_Register(1257316,0,65);
_Event_Register((1258356),0,66);
_Gui_LoadOptions();
_Gui_ShowDefault();
return;
}
function _Gui_Free() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister(1254716,0,293);
_Event_Unregister((1250816),0,8);
_Event_Unregister((1251856),0,294);
_Event_Unregister((1252116),0,295);
_Event_Unregister(1257316,0,65);
_Event_Unregister((1258356),0,66);
$0 = HEAP32[315198]|0;
$1 = ($0|0)==(0);
if (!($1)) {
while(1) {
$2 = HEAP32[94820]|0;
_Gui_Remove($2);
$3 = HEAP32[315198]|0;
$4 = ($3|0)==(0);
if ($4) {
break;
}
}
}
_Gfx_DeleteTexture(1260796);
_Gfx_DeleteTexture(1260800);
_Gfx_DeleteTexture(1260804);
return;
}
function _Gui_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _OnFontChanged($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gui_RefreshAll();
return;
}
function _OnFileChanged_610($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_String_CaselessEqualsConst($2,25674)|0);
$4 = ($3|0)==(0);
if (!($4)) {
(_Game_UpdateTexture(1260796,$1,$2,0)|0);
return;
}
$5 = (_String_CaselessEqualsConst($2,25682)|0);
$6 = ($5|0)==(0);
if (!($6)) {
(_Game_UpdateTexture(1260800,$1,$2,0)|0);
return;
}
$7 = (_String_CaselessEqualsConst($2,25698)|0);
$8 = ($7|0)==(0);
if ($8) {
return;
}
(_Game_UpdateTexture(1260804,$1,$2,0)|0);
return;
}
function _OnContextLost_611($0) {
$0 = $0|0;
var $$07 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315198]|0;
$2 = ($1|0)>(0);
if (!($2)) {
return;
}
$$07 = 0;
while(1) {
$3 = (379280 + ($$07<<2)|0);
$4 = HEAP32[$3>>2]|0;
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 56|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vi[$7 & 511]($4);
$8 = (($$07) + 1)|0;
$9 = HEAP32[315198]|0;
$10 = ($8|0)<($9|0);
if ($10) {
$$07 = $8;
} else {
break;
}
}
return;
}
function _OnContextRecreated_612($0) {
$0 = $0|0;
var $$07 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315198]|0;
$2 = ($1|0)>(0);
if (!($2)) {
return;
}
$$07 = 0;
while(1) {
$3 = (379280 + ($$07<<2)|0);
$4 = HEAP32[$3>>2]|0;
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 60|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vi[$7 & 511]($4);
$8 = (($$07) + 1)|0;
$9 = HEAP32[315198]|0;
$10 = ($8|0)<($9|0);
if ($10) {
$$07 = $8;
} else {
break;
}
}
return;
}
function _OnKeyPress($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$08 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[315198]|0;
$3 = ($2|0)>(0);
if (!($3)) {
return;
}
$4 = $1&255;
$$08 = 0;
while(1) {
$5 = (379280 + ($$08<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = HEAP32[$6>>2]|0;
$8 = ((($7)) + 28|0);
$9 = HEAP32[$8>>2]|0;
$10 = (FUNCTION_TABLE_iii[$9 & 127]($6,$4)|0);
$11 = ($10|0)==(0);
$12 = (($$08) + 1)|0;
$13 = HEAP32[315198]|0;
$14 = ($12|0)<($13|0);
$or$cond = $11 & $14;
if ($or$cond) {
$$08 = $12;
} else {
break;
}
}
return;
}
function _OnTextChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$08 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[315198]|0;
$3 = ($2|0)>(0);
if (!($3)) {
return;
}
$$08 = 0;
while(1) {
$4 = (379280 + ($$08<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 32|0);
$8 = HEAP32[$7>>2]|0;
$9 = (FUNCTION_TABLE_iii[$8 & 127]($5,$1)|0);
$10 = ($9|0)==(0);
$11 = (($$08) + 1)|0;
$12 = HEAP32[315198]|0;
$13 = ($11|0)<($12|0);
$or$cond = $10 & $13;
if ($or$cond) {
$$08 = $11;
} else {
break;
}
}
return;
}
function _Gui_Remove($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gui_RemoveCore($0);
_Gui_OnScreensChanged();
return;
}
function _Gui_RemoveCore($0) {
$0 = $0|0;
var $$012 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Gui_Index($0)|0);
$2 = ($1|0)==(-1);
if ($2) {
return;
}
$3 = HEAP32[315198]|0;
$4 = (($3) + -1)|0;
$5 = ($1|0)<($4|0);
if ($5) {
$6 = HEAP32[315198]|0;
$7 = (($6) + -1)|0;
$$012 = $1;
while(1) {
$8 = (($$012) + 1)|0;
$9 = (379280 + ($8<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = (379280 + ($$012<<2)|0);
HEAP32[$11>>2] = $10;
$12 = (1408245 + ($8)|0);
$13 = HEAP8[$12>>0]|0;
$14 = (1408245 + ($$012)|0);
HEAP8[$14>>0] = $13;
$15 = ($8|0)<($7|0);
if ($15) {
$$012 = $8;
} else {
$$lcssa = $7;
break;
}
}
} else {
$$lcssa = $4;
}
HEAP32[315198] = $$lcssa;
$16 = HEAP32[$0>>2]|0;
$17 = ((($16)) + 56|0);
$18 = HEAP32[$17>>2]|0;
FUNCTION_TABLE_vi[$18 & 511]($0);
$19 = HEAP32[$0>>2]|0;
$20 = ((($19)) + 8|0);
$21 = HEAP32[$20>>2]|0;
FUNCTION_TABLE_vi[$21 & 511]($0);
return;
}
function _Gui_OnScreensChanged() {
var label = 0, sp = 0;
sp = STACKTOP;
_Camera_CheckFocus();
_InputHandler_OnScreensChanged();
return;
}
function _Gui_Index($0) {
$0 = $0|0;
var $$05 = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315198]|0;
$2 = ($1|0)>(0);
if (!($2)) {
$$05 = -1;
return ($$05|0);
}
$3 = HEAP32[315198]|0;
$$06 = 0;
while(1) {
$4 = (379280 + ($$06<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==($0|0);
if ($6) {
$$05 = $$06;
label = 5;
break;
}
$7 = (($$06) + 1)|0;
$8 = ($7|0)<($3|0);
if ($8) {
$$06 = $7;
} else {
$$05 = -1;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$05|0);
}
return (0)|0;
}
function _Gui_RefreshAll() {
var label = 0, sp = 0;
sp = STACKTOP;
_OnContextLost_611(0);
_OnContextRecreated_612(0);
return;
}
function _Gui_LoadOptions() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_Options_GetInt(33486,0,30,12)|0);
HEAP32[315202] = $0;
$1 = HEAP8[1408229]|0;
$2 = ($1<<24>>24)==(0);
$3 = $2&1;
$4 = (_Options_GetBool(33514,$3)|0);
HEAP8[1408255] = $4;
$5 = HEAP8[1408229]|0;
$6 = ($5<<24>>24)==(0);
$7 = $6&1;
$8 = (_Options_GetBool(33532,$7)|0);
HEAP8[1408256] = $8;
$9 = (_Options_GetBool(30517,1)|0);
$10 = HEAP8[1408229]|0;
$11 = $10 | $9;
$12 = ($11<<24>>24)!=(0);
$13 = $12&1;
HEAP8[1408257] = $13;
$14 = (_Options_GetBool(30492,0)|0);
$15 = HEAP8[1408229]|0;
$16 = $15 | $14;
$17 = ($16<<24>>24)!=(0);
$18 = $17&1;
HEAP8[1408258] = $18;
$19 = (_Options_GetBool(30467,0)|0);
$20 = HEAP8[1408229]|0;
$21 = $20 | $19;
$22 = ($21<<24>>24)!=(0);
$23 = $22&1;
HEAP8[1408259] = $23;
$24 = (_Options_GetBool(31871,1)|0);
HEAP8[1408260] = $24;
return;
}
function _Gui_ShowDefault() {
var label = 0, sp = 0;
sp = STACKTOP;
_HUDScreen_Show();
_ChatScreen_Show();
_TouchScreen_Show();
return;
}
function _Widget_SetLocation($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ((($0)) + 22|0);
HEAP8[$5>>0] = $1;
$6 = ((($0)) + 23|0);
HEAP8[$6>>0] = $2;
$7 = (_Display_ScaleX($3)|0);
$8 = ((($0)) + 24|0);
HEAP32[$8>>2] = $7;
$9 = (_Display_ScaleY($4)|0);
$10 = ((($0)) + 28|0);
HEAP32[$10>>2] = $9;
$11 = HEAP32[$0>>2]|0;
$12 = ((($11)) + 8|0);
$13 = HEAP32[$12>>2]|0;
FUNCTION_TABLE_vi[$13 & 511]($0);
return;
}
function _Widget_CalcPosition($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 22|0);
$2 = HEAP8[$1>>0]|0;
$3 = ((($0)) + 24|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = HEAP32[351858]|0;
$8 = (_Gui_CalcPos($2,$4,$6,$7)|0);
$9 = ((($0)) + 4|0);
HEAP32[$9>>2] = $8;
$10 = ((($0)) + 23|0);
$11 = HEAP8[$10>>0]|0;
$12 = ((($0)) + 28|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($0)) + 16|0);
$15 = HEAP32[$14>>2]|0;
$16 = HEAP32[351859]|0;
$17 = (_Gui_CalcPos($11,$13,$15,$16)|0);
$18 = ((($0)) + 8|0);
HEAP32[$18>>2] = $17;
return;
}
function _Gui_CalcPos($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<24>>24) {
case 0: {
$$0 = $1;
break;
}
case 2: {
$4 = (($2) + ($1))|0;
$5 = (($3) - ($4))|0;
$$0 = $5;
break;
}
case 3: {
$6 = (($3|0) / 2)&-1;
$7 = (($6) + ($1))|0;
$$0 = $7;
break;
}
case 4: {
$8 = (($3|0) / 2)&-1;
$9 = (($2) + ($1))|0;
$10 = (($8) - ($9))|0;
$$0 = $10;
break;
}
default: {
$11 = (($3) - ($2))|0;
$12 = (($11|0) / 2)&-1;
$13 = (($12) + ($1))|0;
$$0 = $13;
}
}
return ($$0|0);
}
function _Widget_Reset($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
;HEAP32[$1>>2]=0|0;HEAP32[$1+4>>2]=0|0;HEAP32[$1+8>>2]=0|0;HEAP32[$1+12>>2]=0|0;HEAP32[$1+16>>2]=0|0;HEAP32[$1+20>>2]=0|0;HEAP32[$1+24>>2]=0|0;HEAP32[$1+28>>2]=0|0;
return;
}
function _Widget_Contains($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($0)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($0)) + 16|0);
$10 = HEAP32[$9>>2]|0;
$11 = (_Gui_Contains($4,$6,$8,$10,$1,$2)|0);
return ($11|0);
}
function _Gui_Contains($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $12 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond$not = 0, $or$cond11 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = ($4|0)>=($0|0);
$7 = ($5|0)>=($1|0);
$or$cond$not = $6 & $7;
$8 = (($2) + ($0))|0;
$9 = ($8|0)>($4|0);
$or$cond11 = $9 & $or$cond$not;
$10 = (($3) + ($1))|0;
$11 = ($10|0)>($5|0);
$narrow = $11 & $or$cond11;
$12 = $narrow&1;
return ($12|0);
}
function _Gui_ContainsPointers($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$02025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond$not = 0, $or$cond22 = 0, $or$cond24 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[315331]|0;
$5 = ($4|0)>(0);
if (!($5)) {
$$0 = 0;
return ($$0|0);
}
$6 = (($2) + ($0))|0;
$7 = (($3) + ($1))|0;
$8 = HEAP32[315331]|0;
$$02025 = 0;
while(1) {
$11 = (379328 + ($$02025<<3)|0);
$12 = HEAP32[$11>>2]|0;
$13 = (((379328 + ($$02025<<3)|0)) + 4|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($12|0)>=($0|0);
$16 = ($14|0)>=($1|0);
$or$cond$not = $15 & $16;
$17 = ($12|0)<($6|0);
$or$cond22 = $17 & $or$cond$not;
$18 = ($14|0)<($7|0);
$or$cond24 = $18 & $or$cond22;
$9 = (($$02025) + 1)|0;
if ($or$cond24) {
$$0 = 1;
label = 5;
break;
}
$10 = ($9|0)<($8|0);
if ($10) {
$$02025 = $9;
} else {
$$0 = 0;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$0|0);
}
return (0)|0;
}
function _Gui_RefreshChat() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315197]|0;
_Gui_Refresh($0);
return;
}
function _Gui_Refresh($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = ((($1)) + 56|0);
$3 = HEAP32[$2>>2]|0;
FUNCTION_TABLE_vi[$3 & 511]($0);
$4 = HEAP32[$0>>2]|0;
$5 = ((($4)) + 60|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$6 & 511]($0);
return;
}
function _Gui_AddCore($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$02933 = 0, $$02938 = 0, $$035 = 0, $$134 = 0, $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[315198]|0;
$3 = ($2|0)>(9);
if ($3) {
_Logger_Abort(25708);
$$pr = HEAP32[315198]|0;
$4 = $$pr;
} else {
$4 = $2;
}
$5 = ($4|0)>(0);
L4: do {
if ($5) {
$6 = HEAP32[315198]|0;
$$02938 = 0;$11 = $4;
while(1) {
$7 = (1408245 + ($$02938)|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = ($9|0)<($1|0);
if ($10) {
break;
}
$21 = (($$02938) + 1)|0;
$22 = ($21|0)<($6|0);
if ($22) {
$$02938 = $21;$11 = $6;
} else {
$$02933 = $21;$27 = $6;
break L4;
}
}
$12 = ($11|0)>($$02938|0);
if ($12) {
$$035 = $11;
while(1) {
$13 = (($$035) + -1)|0;
$14 = (379280 + ($13<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = (379280 + ($$035<<2)|0);
HEAP32[$16>>2] = $15;
$17 = (1408245 + ($13)|0);
$18 = HEAP8[$17>>0]|0;
$19 = (1408245 + ($$035)|0);
HEAP8[$19>>0] = $18;
$20 = ($13|0)>($$02938|0);
if ($20) {
$$035 = $13;
} else {
$$02933 = $$02938;$27 = $11;
break;
}
}
} else {
$$02933 = $$02938;$27 = $11;
}
} else {
$$02933 = 0;$27 = $4;
}
} while(0);
$23 = (379280 + ($$02933<<2)|0);
HEAP32[$23>>2] = $0;
$24 = $1&255;
$25 = (1408245 + ($$02933)|0);
HEAP8[$25>>0] = $24;
$26 = (($27) + 1)|0;
HEAP32[315198] = $26;
$28 = ((($0)) + 7|0);
HEAP8[$28>>0] = 1;
$29 = HEAP32[$0>>2]|0;
$30 = HEAP32[$29>>2]|0;
FUNCTION_TABLE_vi[$30 & 511]($0);
$31 = HEAP32[$0>>2]|0;
$32 = ((($31)) + 60|0);
$33 = HEAP32[$32>>2]|0;
FUNCTION_TABLE_vi[$33 & 511]($0);
$34 = HEAP32[315331]|0;
$35 = ($34|0)>(0);
if (!($35)) {
return;
}
$$134 = 0;
while(1) {
$36 = HEAP32[$0>>2]|0;
$37 = ((($36)) + 44|0);
$38 = HEAP32[$37>>2]|0;
$39 = (379328 + ($$134<<3)|0);
$40 = HEAP32[$39>>2]|0;
$41 = (((379328 + ($$134<<3)|0)) + 4|0);
$42 = HEAP32[$41>>2]|0;
(FUNCTION_TABLE_iiiii[$38 & 63]($0,$$134,$40,$42)|0);
$43 = (($$134) + 1)|0;
$44 = HEAP32[315331]|0;
$45 = ($43|0)<($44|0);
if ($45) {
$$134 = $43;
} else {
break;
}
}
return;
}
function _Gui_Replace($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$09 = 0, $$09$in = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gui_RemoveCore($0);
$2 = HEAP32[315198]|0;
$3 = ($2|0)>(0);
if (!($3)) {
_Gui_AddCore($0,$1);
_Gui_OnScreensChanged();
return;
}
$$09$in = $2;
while(1) {
$$09 = (($$09$in) + -1)|0;
$4 = (1408245 + ($$09)|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
$7 = ($6|0)==($1|0);
if ($7) {
$8 = (379280 + ($$09<<2)|0);
$9 = HEAP32[$8>>2]|0;
_Gui_RemoveCore($9);
}
$10 = ($$09$in|0)>(1);
if ($10) {
$$09$in = $$09;
} else {
break;
}
}
_Gui_AddCore($0,$1);
_Gui_OnScreensChanged();
return;
}
function _Gui_GetInputGrab() {
var $$04 = 0, $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315198]|0;
$1 = ($0|0)>(0);
if (!($1)) {
$$04 = 0;
return ($$04|0);
}
$2 = HEAP32[315198]|0;
$$05 = 0;
while(1) {
$5 = (379280 + ($$05<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 4|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
$3 = (($$05) + 1)|0;
if (!($9)) {
$$04 = $6;
label = 5;
break;
}
$4 = ($3|0)<($2|0);
if ($4) {
$$05 = $3;
} else {
$$04 = 0;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$04|0);
}
return (0)|0;
}
function _Gui_GetBlocksWorld() {
var $$04 = 0, $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315198]|0;
$1 = ($0|0)>(0);
if (!($1)) {
$$04 = 0;
return ($$04|0);
}
$2 = HEAP32[315198]|0;
$$05 = 0;
while(1) {
$5 = (379280 + ($$05<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 5|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
$3 = (($$05) + 1)|0;
if (!($9)) {
$$04 = $6;
label = 5;
break;
}
$4 = ($3|0)<($2|0);
if ($4) {
$$05 = $3;
} else {
$$04 = 0;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$04|0);
}
return (0)|0;
}
function _Gui_GetClosable() {
var $$04 = 0, $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315198]|0;
$1 = ($0|0)>(0);
if (!($1)) {
$$04 = 0;
return ($$04|0);
}
$2 = HEAP32[315198]|0;
$$05 = 0;
while(1) {
$5 = (379280 + ($$05<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 6|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
$3 = (($$05) + 1)|0;
if (!($9)) {
$$04 = $6;
label = 5;
break;
}
$4 = ($3|0)<($2|0);
if ($4) {
$$05 = $3;
} else {
$$04 = 0;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$04|0);
}
return (0)|0;
}
function _Gui_RenderGui($0) {
$0 = +$0;
var $$016 = 0, $$016$in = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[133868]|0;
$2 = HEAP32[(535476)>>2]|0;
_Gfx_Mode2D($1,$2);
$3 = HEAP32[315198]|0;
$4 = ($3|0)>(0);
if (!($4)) {
_Gfx_Mode3D();
return;
}
$$016$in = $3;
while(1) {
$$016 = (($$016$in) + -1)|0;
$5 = (379280 + ($$016<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = HEAP32[$6>>2]|0;
$8 = ((($7)) + 4|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_vid[$9 & 63]($6,$0);
$10 = ((($6)) + 7|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if (!($12)) {
$13 = HEAP32[$6>>2]|0;
$14 = ((($13)) + 16|0);
$15 = HEAP32[$14>>2]|0;
FUNCTION_TABLE_vi[$15 & 511]($6);
HEAP8[$10>>0] = 0;
}
$16 = HEAP32[$6>>2]|0;
$17 = ((($16)) + 12|0);
$18 = HEAP32[$17>>2]|0;
FUNCTION_TABLE_vid[$18 & 63]($6,$0);
$19 = ($$016$in|0)>(1);
if ($19) {
$$016$in = $$016;
} else {
break;
}
}
_Gfx_Mode3D();
return;
}
function _Gui_Layout() {
var $$08 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315198]|0;
$1 = ($0|0)>(0);
if (!($1)) {
return;
}
$$08 = 0;
while(1) {
$2 = (379280 + ($$08<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($3)) + 7|0);
HEAP8[$4>>0] = 1;
$5 = HEAP32[$3>>2]|0;
$6 = ((($5)) + 52|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vi[$7 & 511]($3);
$8 = (($$08) + 1)|0;
$9 = HEAP32[315198]|0;
$10 = ($8|0)<($9|0);
if ($10) {
$$08 = $8;
} else {
break;
}
}
return;
}
function _TextAtlas_Make($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$04245 = 0, $$046 = 0, $$144 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$4 = sp + 16|0;
$5 = sp + 32|0;
$6 = sp + 8|0;
$7 = sp;
_DrawTextArgs_Make($4,$3,$2,1);
$8 = (_Drawer2D_TextWidth($4)|0);
$9 = ((($0)) + 28|0);
HEAP32[$9>>2] = $8;
$10 = ((($1)) + 4|0);
$11 = HEAP16[$10>>1]|0;
$12 = ($11<<16>>16)==(0);
if ($12) {
$$0$lcssa = $8;
} else {
$$04245 = 0;$$046 = $8;
while(1) {
_String_UNSAFE_Substring($6,$1,$$04245,1);
$13 = $6;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$19 = $4;
$20 = $19;
HEAP32[$20>>2] = $15;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = $18;
$23 = (_Drawer2D_TextWidth($4)|0);
$24 = $23&65535;
$25 = (((($0)) + 40|0) + ($$04245<<1)|0);
HEAP16[$25>>1] = $24;
$26 = $$046&65535;
$27 = (((($0)) + 72|0) + ($$04245<<1)|0);
HEAP16[$27>>1] = $26;
$28 = (($$046) + 1)|0;
$29 = (($28) + ($23))|0;
$30 = (($$04245) + 1)|0;
$31 = HEAP16[$10>>1]|0;
$32 = $31&65535;
$33 = ($30>>>0)<($32>>>0);
if ($33) {
$$04245 = $30;$$046 = $29;
} else {
$$0$lcssa = $29;
break;
}
}
}
$34 = (_Drawer2D_TextHeight($4)|0);
_Bitmap_AllocateClearedPow2($5,$$0$lcssa,$34);
$35 = $3;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = (($35) + 4)|0;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = $4;
$42 = $41;
HEAP32[$42>>2] = $37;
$43 = (($41) + 4)|0;
$44 = $43;
HEAP32[$44>>2] = $40;
_Drawer2D_DrawText($5,$4,0,0);
$45 = HEAP16[$10>>1]|0;
$46 = ($45<<16>>16)==(0);
if ($46) {
_Drawer2D_MakeTexture($0,$5,$$0$lcssa,$34);
$64 = HEAP32[$5>>2]|0;
_Mem_Free($64);
$65 = ((($5)) + 4|0);
$66 = HEAP32[$65>>2]|0;
$67 = (+($66|0));
$68 = 1.0 / $67;
$69 = ((($0)) + 36|0);
HEAPF32[$69>>2] = $68;
$70 = HEAP32[$9>>2]|0;
$71 = (+($70|0));
$72 = $68 * $71;
$73 = ((($0)) + 20|0);
HEAPF32[$73>>2] = $72;
$74 = $70&65535;
$75 = ((($0)) + 8|0);
HEAP16[$75>>1] = $74;
STACKTOP = sp;return;
}
$$144 = 0;
while(1) {
_String_UNSAFE_Substring($7,$1,$$144,1);
$47 = $7;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = (($47) + 4)|0;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = $4;
$54 = $53;
HEAP32[$54>>2] = $49;
$55 = (($53) + 4)|0;
$56 = $55;
HEAP32[$56>>2] = $52;
$57 = (((($0)) + 72|0) + ($$144<<1)|0);
$58 = HEAP16[$57>>1]|0;
$59 = $58 << 16 >> 16;
_Drawer2D_DrawText($5,$4,$59,0);
$60 = (($$144) + 1)|0;
$61 = HEAP16[$10>>1]|0;
$62 = $61&65535;
$63 = ($60>>>0)<($62>>>0);
if ($63) {
$$144 = $60;
} else {
break;
}
}
_Drawer2D_MakeTexture($0,$5,$$0$lcssa,$34);
$64 = HEAP32[$5>>2]|0;
_Mem_Free($64);
$65 = ((($5)) + 4|0);
$66 = HEAP32[$65>>2]|0;
$67 = (+($66|0));
$68 = 1.0 / $67;
$69 = ((($0)) + 36|0);
HEAPF32[$69>>2] = $68;
$70 = HEAP32[$9>>2]|0;
$71 = (+($70|0));
$72 = $68 * $71;
$73 = ((($0)) + 20|0);
HEAPF32[$73>>2] = $72;
$74 = $70&65535;
$75 = ((($0)) + 8|0);
HEAP16[$75>>1] = $74;
STACKTOP = sp;return;
}
function _TextAtlas_Free($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteTexture($0);
return;
}
function _TextAtlas_Add($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp;
;HEAP32[$3>>2]=HEAP32[$0>>2]|0;HEAP32[$3+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$3+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$3+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$3+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$3+24>>2]=HEAP32[$0+24>>2]|0;
$4 = (((($0)) + 40|0) + ($1<<1)|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5 << 16 >> 16;
$7 = ((($0)) + 32|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8&65535;
$10 = ((($3)) + 4|0);
HEAP16[$10>>1] = $9;
$11 = ((($3)) + 8|0);
HEAP16[$11>>1] = $5;
$12 = (((($0)) + 72|0) + ($1<<1)|0);
$13 = HEAP16[$12>>1]|0;
$14 = (+($13<<16>>16));
$15 = ((($0)) + 36|0);
$16 = +HEAPF32[$15>>2];
$17 = $16 * $14;
$18 = ((($3)) + 12|0);
HEAPF32[$18>>2] = $17;
$19 = (+($5<<16>>16));
$20 = $16 * $19;
$21 = $17 + $20;
$22 = ((($3)) + 20|0);
HEAPF32[$22>>2] = $21;
$23 = (($8) + ($6))|0;
HEAP32[$7>>2] = $23;
_Gfx_Make2DQuad($3,-1,$2);
STACKTOP = sp;return;
}
function _TextAtlas_AddInt($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $$01315 = 0, $$01315$in = 0, $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp;
$4 = ($1|0)<(0);
if ($4) {
$5 = (0 - ($1))|0;
_TextAtlas_Add($0,10,$2);
$$0 = $5;
} else {
$$0 = $1;
}
$6 = (_String_MakeUInt32($$0,$3)|0);
$7 = ($6|0)>(0);
if (!($7)) {
STACKTOP = sp;return;
}
$$01315$in = $6;
while(1) {
$$01315 = (($$01315$in) + -1)|0;
$8 = (($3) + ($$01315)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9 << 24 >> 24;
$11 = (($10) + -48)|0;
_TextAtlas_Add($0,$11,$2);
$12 = ($$01315$in|0)>(1);
if ($12) {
$$01315$in = $$01315;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _HeldBlockRenderer_Init() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Entity_Init(1260880);
HEAP32[315220] = 11592;
HEAP8[(1260990)>>0] = 1;
$0 = (_Options_GetBool(25724,1)|0);
HEAP8[1408261] = $0;
$1 = HEAP32[(1268184)>>2]|0;
$2 = HEAP32[(1268180)>>2]|0;
$3 = (($2) + ($1))|0;
$4 = (1266480 + ($3<<1)|0);
$5 = HEAP16[$4>>1]|0;
HEAP16[704100] = $5;
_Event_Register((1251596),0,296);
_Event_Register((1252896),0,297);
_Event_Register(1252376,0,18);
return;
}
function _HeldBlockRenderer_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister((1251596),0,296);
_Event_Unregister((1252896),0,297);
_Event_Unregister(1252376,0,18);
return;
}
function _HeldBlockRenderer_ProjectionChanged($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[133868]|0;
$2 = (+($1|0));
$3 = HEAP32[(535476)>>2]|0;
$4 = (+($3|0));
$5 = $2 / $4;
$6 = +HEAPF32[(1260356)>>2];
$7 = HEAP32[315051]|0;
$8 = (+($7|0));
_Gfx_CalcPerspectiveMatrix(1.2217304706573486,$5,$6,$8,1260816);
return;
}
function _HeldBlockRenderer_DoSwitchBlockAnim($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408262]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
$8 = HEAP16[704101]|0;
$9 = HEAP32[(1268184)>>2]|0;
$10 = HEAP32[(1268180)>>2]|0;
$11 = (($10) + ($9))|0;
$12 = (1266480 + ($11<<1)|0);
$13 = HEAP16[$12>>1]|0;
$14 = ($8<<16>>16)==($13<<16>>16);
if ($14) {
return;
}
_HeldBlockRenderer_ResetAnim(0,0.25);
HEAP8[1408264] = 1;
HEAP8[1408262] = 1;
return;
} else {
$3 = +HEAPF64[66940];
$4 = +HEAPF64[1318];
$5 = $4 * 0.5;
$6 = $3 > $5;
if (!($6)) {
return;
}
$7 = $4 - $3;
HEAPF64[66940] = $7;
return;
}
}
function _HeldBlockRenderer_BlockChanged($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
_HeldBlockRenderer_ClickAnim(0);
return;
}
function _HeldBlockRenderer_ClickAnim($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0<<24>>24)==(0);
$2 = $1 ? 0.25 : 0.34999999999999998;
_HeldBlockRenderer_ResetAnim(1,$2);
HEAP8[1408262] = 0;
HEAP8[1408263] = $0;
HEAP8[1408264] = 1;
if (!($1)) {
return;
}
$3 = +HEAPF64[1318];
$4 = $3 * 0.5;
HEAPF64[66940] = $4;
return;
}
function _HeldBlockRenderer_ResetAnim($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF64[66940] = 0.0;
HEAPF32[315203] = 0.0;
HEAP8[1408264] = 0;
HEAP8[1408262] = 0;
HEAPF64[1318] = $1;
$2 = ($0<<24>>24)==(0);
if ($2) {
return;
}
$3 = HEAP32[(1268184)>>2]|0;
$4 = HEAP32[(1268180)>>2]|0;
$5 = (($4) + ($3))|0;
$6 = (1266480 + ($5<<1)|0);
$7 = HEAP16[$6>>1]|0;
HEAP16[704100] = $7;
return;
}
function _HeldBlockRenderer_GetCol($0) {
$0 = $0|0;
var $$0 = 0.0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[310538]|0;
$2 = ((($1)) + 12|0);
$3 = HEAP32[$2>>2]|0;
$4 = (FUNCTION_TABLE_ii[$3 & 31](1242152)|0);
$5 = +HEAPF32[(1242168)>>2];
$6 = $5 + -90.0;
$7 = $6 < 0.0;
$8 = $6 + 360.0;
$$0 = $7 ? $8 : $6;
$9 = $$0 + -180.0;
$10 = (+_Math_AbsF($9));
$11 = $10 / 180.0;
$12 = (+_Math_Lerp(0.89999997615814208,0.69999998807907104,$11));
$13 = (_PackedCol_Scale($4,$12)|0);
return ($13|0);
}
function _HeldBlockRenderer_Render($0) {
$0 = +$0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp;
$2 = HEAP8[1408261]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
STACKTOP = sp;return;
}
$4 = +HEAPF32[315203];
HEAPF32[315203] = 0.0;
$5 = HEAP32[(1268184)>>2]|0;
$6 = HEAP32[(1268180)>>2]|0;
$7 = (($6) + ($5))|0;
$8 = (1266480 + ($7<<1)|0);
$9 = HEAP16[$8>>1]|0;
HEAP16[704101] = $9;
dest=$1; src=(1260364); stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_Gfx_LoadMatrix(0,1260816);
_HeldBlockRenderer_SetMatrix();
_HeldBlockRenderer_ResetHeldState();
_HeldBlockRenderer_DoAnimation($0,$4);
_HeldBlockRenderer_SetBaseOffset();
$10 = HEAP32[(1230632)>>2]|0;
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if ($12) {
_HeldBlockRenderer_RenderModel();
}
dest=(1260364); src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_Gfx_LoadMatrix(0,(1260428));
STACKTOP = sp;return;
}
function _HeldBlockRenderer_SetMatrix() {
var $0 = 0, $1 = 0, $2 = 0.0, $3 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0;
$0 = sp + 64|0;
$1 = sp;
$2 = (+_Entity_GetEyeHeight(1242152));
$3 = - $2;
_Matrix_Translate($1,-0.0,$3,-0.0);
_Matrix_Mul($0,$1,(1230548));
dest=(1260364); src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
}
function _HeldBlockRenderer_ResetHeldState() {
var $0 = 0.0, $1 = 0.0, $10 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (+_Entity_GetEyeHeight(1242152));
$1 = +HEAPF32[(1230616)>>2];
$2 = 0.0 - $1;
HEAPF32[(1260884)>>2] = $2;
$3 = +HEAPF32[(1230612)>>2];
$4 = $0 - $3;
HEAPF32[(1260888)>>2] = $4;
HEAPF32[(1260892)>>2] = $2;
HEAPF32[(1260900)>>2] = -45.0;
HEAPF32[(1260908)>>2] = -45.0;
HEAPF32[(1260896)>>2] = 0.0;
HEAPF32[(1260904)>>2] = 0.0;
$5 = HEAP16[704101]|0;
HEAP16[(1260932)>>1] = $5;
$6 = HEAP8[(1242260)>>0]|0;
HEAP8[(1260988)>>0] = $6;
$7 = HEAP32[(1242264)>>2]|0;
HEAP32[(1260992)>>2] = $7;
$8 = HEAP32[(1242268)>>2]|0;
HEAP32[(1260996)>>2] = $8;
$9 = HEAP32[(1242272)>>2]|0;
HEAP32[(1261000)>>2] = $9;
$10 = HEAP32[(1242276)>>2]|0;
HEAP32[(1261004)>>2] = $10;
return;
}
function _HeldBlockRenderer_DoAnimation($0,$1) {
$0 = +$0;
$1 = +$1;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408264]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
return;
}
$4 = HEAP8[1408262]|0;
$5 = ($4<<24>>24)==(0);
$6 = HEAP8[1408263]|0;
$7 = ($6<<24>>24)!=(0);
$or$cond = $5 & $7;
if ($or$cond) {
_HeldBlockRenderer_DigAnimation();
} else {
$8 = +HEAPF64[66940];
$9 = +HEAPF64[1318];
$10 = $8 / $9;
$11 = $10 * 3.1415927410125732;
$12 = (+_Math_Sin($11));
$13 = $12;
$14 = $13 * -0.40000000596046448;
HEAPF32[315203] = $14;
$15 = +HEAPF32[(1260888)>>2];
$16 = $15 + $14;
HEAPF32[(1260888)>>2] = $16;
$17 = HEAP8[1408262]|0;
$18 = ($17<<24>>24)==(0);
if (!($18)) {
$19 = $14 > $1;
if ($19) {
$20 = HEAP16[704101]|0;
HEAP16[704100] = $20;
}
$21 = HEAP16[704100]|0;
HEAP16[704101] = $21;
HEAP16[(1260932)>>1] = $21;
}
}
$22 = +HEAPF64[66940];
$23 = $22 + $0;
HEAPF64[66940] = $23;
$24 = +HEAPF64[1318];
$25 = $23 > $24;
if (!($25)) {
return;
}
_HeldBlockRenderer_ResetAnim(1,0.25);
return;
}
function _HeldBlockRenderer_SetBaseOffset() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
$1 = HEAP16[704101]|0;
$2 = $1&65535;
$3 = (583428 + ($2)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(5);
if ($5) {
;HEAP32[$0>>2]=HEAP32[11624>>2]|0;HEAP32[$0+4>>2]=HEAP32[11624+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[11624+8>>2]|0;
_Vec3_Add_638($0);
STACKTOP = sp;return;
}
;HEAP32[$0>>2]=HEAP32[11636>>2]|0;HEAP32[$0+4>>2]=HEAP32[11636+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[11636+8>>2]|0;
_Vec3_Add_638($0);
$6 = HEAP8[$3>>0]|0;
$7 = ($6<<24>>24)==(4);
if ($7) {
STACKTOP = sp;return;
}
$8 = (((597252 + (($2*12)|0)|0)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = (((588036 + (($2*12)|0)|0)) + 4|0);
$11 = +HEAPF32[$10>>2];
$12 = $9 - $11;
$13 = 1.0 - $12;
$14 = $13 * 0.20000000298023224;
$15 = +HEAPF32[(1260888)>>2];
$16 = $15 + $14;
HEAPF32[(1260888)>>2] = $16;
STACKTOP = sp;return;
}
function _HeldBlockRenderer_RenderModel() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Gfx_SetFaceCulling(1);
_Gfx_SetDepthTest(0);
$0 = HEAP16[704101]|0;
$1 = $0&65535;
$2 = (583428 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(4);
if ($4) {
$5 = HEAP32[(1242200)>>2]|0;
HEAPF32[(1260960)>>2] = 1.0;
HEAPF32[(1260964)>>2] = 1.0;
HEAPF32[(1260968)>>2] = 1.0;
_Gfx_SetAlphaTest(1);
_Model_RenderArm($5,1260880);
_Gfx_SetAlphaTest(0);
_Gfx_SetDepthTest(1);
_Gfx_SetFaceCulling(0);
return;
} else {
$6 = (_Model_Get(11616)|0);
HEAPF32[(1260960)>>2] = 0.40000000596046448;
HEAPF32[(1260964)>>2] = 0.40000000596046448;
HEAPF32[(1260968)>>2] = 0.40000000596046448;
$7 = HEAP16[704101]|0;
$8 = $7&65535;
$9 = (583428 + ($8)|0);
$10 = HEAP8[$9>>0]|0;
_Gfx_SetupAlphaState($10);
_Model_Render($6,1260880);
$11 = HEAP16[704101]|0;
$12 = $11&65535;
$13 = (583428 + ($12)|0);
$14 = HEAP8[$13>>0]|0;
_Gfx_RestoreAlphaState($14);
_Gfx_SetDepthTest(1);
_Gfx_SetFaceCulling(0);
return;
}
}
function _Vec3_Add_638($0) {
$0 = $0|0;
var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1260884)>>2];
$2 = +HEAPF32[$0>>2];
$3 = $1 + $2;
HEAPF32[(1260884)>>2] = $3;
$4 = +HEAPF32[(1260888)>>2];
$5 = ((($0)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $4 + $6;
HEAPF32[(1260888)>>2] = $7;
$8 = +HEAPF32[(1260892)>>2];
$9 = ((($0)) + 8|0);
$10 = +HEAPF32[$9>>2];
$11 = $8 + $10;
HEAPF32[(1260892)>>2] = $11;
return;
}
function _HeldBlockRenderer_DigAnimation() {
var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0;
var $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $5 = 0.0;
var $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = +HEAPF64[66940];
$1 = +HEAPF64[1318];
$2 = $0 / $1;
$3 = $2;
$4 = $3 * 3.1415927410125732;
$5 = $4;
$6 = (+_Math_Sin($5));
$7 = (+_Math_SqrtF($3));
$8 = $7 * 3.1415927410125732;
$9 = $8;
$10 = (+_Math_Sin($9));
$11 = $10;
$12 = $11 * 0.40000000596046448;
$13 = +HEAPF32[(1260884)>>2];
$14 = $13 - $12;
HEAPF32[(1260884)>>2] = $14;
$15 = $8 * 2.0;
$16 = $15;
$17 = (+_Math_Sin($16));
$18 = $17;
$19 = $18 * 0.20000000298023224;
$20 = +HEAPF32[(1260888)>>2];
$21 = $20 + $19;
HEAPF32[(1260888)>>2] = $21;
$22 = $6;
$23 = $22 * 0.20000000298023224;
$24 = +HEAPF32[(1260892)>>2];
$25 = $24 - $23;
HEAPF32[(1260892)>>2] = $25;
$26 = $3 * $3;
$27 = $26 * 3.1415927410125732;
$28 = $27;
$29 = (+_Math_Sin($28));
$30 = (+_Math_Sin($9));
$31 = $30;
$32 = $31 * 80.0;
$33 = +HEAPF32[(1260908)>>2];
$34 = $33 - $32;
HEAPF32[(1260908)>>2] = $34;
$35 = (+_Math_Sin($9));
$36 = $35;
$37 = $36 * 80.0;
$38 = +HEAPF32[(1260900)>>2];
$39 = $38 - $37;
HEAPF32[(1260900)>>2] = $39;
$40 = $29;
$41 = $40 * 20.0;
$42 = +HEAPF32[(1260904)>>2];
$43 = $41 + $42;
HEAPF32[(1260904)>>2] = $43;
return;
}
function _Http_Init() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
(_ScheduledTask_Add(30.0,298)|0);
_RequestList_Init(535528);
_RequestList_Init(539864);
$0 = (_Waitable_Create()|0);
HEAP32[315328] = $0;
$1 = (_Mutex_Create()|0);
HEAP32[315327] = $1;
$2 = (_Mutex_Create()|0);
HEAP32[315329] = $2;
$3 = (_Mutex_Create()|0);
HEAP32[315330] = $3;
return;
}
function _Http_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408265] = 1;
_Http_ClearPending();
_RequestList_Free(535528);
_RequestList_Free(539864);
return;
}
function _Http_ClearPending() {
var label = 0, sp = 0;
sp = STACKTOP;
_RequestList_Free(535528);
return;
}
function _RequestList_Free($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 16|0);
$4 = ($2|0)==($3|0);
if (!($4)) {
_Mem_Free($2);
}
_RequestList_Init($0);
return;
}
function _RequestList_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
HEAP32[$1>>2] = 10;
HEAP32[$0>>2] = 0;
$2 = ((($0)) + 16|0);
$3 = ((($0)) + 8|0);
HEAP32[$3>>2] = $2;
return;
}
function _Http_CleanCacheTask($0) {
$0 = $0|0;
var $$012 = 0, $$012$in = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_DateTime_CurrentUTC_MS()|0);
$2 = (getTempRet0() | 0);
$3 = HEAP32[134966]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$$012$in = $3;
while(1) {
$$012 = (($$012$in) + -1)|0;
$5 = HEAP32[(539872)>>2]|0;
$6 = (((($5) + (($$012*432)|0)|0)) + 264|0);
$7 = $6;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = (_i64Add(($9|0),($12|0),10000,0)|0);
$14 = (getTempRet0() | 0);
$15 = ($14>>>0)<($2>>>0);
$16 = ($13>>>0)<($1>>>0);
$17 = ($14|0)==($2|0);
$18 = $17 & $16;
$19 = $15 | $18;
if ($19) {
$20 = (($5) + (($$012*432)|0)|0);
_HttpRequest_Free($20);
_RequestList_RemoveAt(539864,$$012);
}
$21 = ($$012$in|0)>(1);
if ($21) {
$$012$in = $$012;
} else {
break;
}
}
return;
}
function _HttpRequest_Free($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 284|0);
$2 = HEAP32[$1>>2]|0;
_Mem_Free($2);
HEAP32[$1>>2] = 0;
$3 = ((($0)) + 288|0);
HEAP32[$3>>2] = 0;
return;
}
function _RequestList_RemoveAt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$010 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)<(0);
if ($2) {
label = 3;
} else {
$3 = HEAP32[$0>>2]|0;
$4 = ($3|0)>($1|0);
if (!($4)) {
label = 3;
}
}
if ((label|0) == 3) {
_Logger_Abort(25740);
}
$5 = HEAP32[$0>>2]|0;
$6 = (($5) + -1)|0;
$7 = ($6|0)>($1|0);
if (!($7)) {
$$lcssa = $6;
HEAP32[$0>>2] = $$lcssa;
return;
}
$8 = ((($0)) + 8|0);
$$010 = $1;
while(1) {
$9 = HEAP32[$8>>2]|0;
$10 = (($$010) + 1)|0;
$11 = (($9) + (($$010*432)|0)|0);
$12 = (($9) + (($10*432)|0)|0);
_memcpy(($11|0),($12|0),432)|0;
$13 = HEAP32[$0>>2]|0;
$14 = (($13) + -1)|0;
$15 = ($10|0)<($14|0);
if ($15) {
$$010 = $10;
} else {
$$lcssa = $14;
break;
}
}
HEAP32[$0>>2] = $$lcssa;
return;
}
function _Http_DescribeError($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Http_AsyncGetSkin($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 64;
$5 = (_Utils_IsUrlPrefix($0)|0);
$6 = ($5<<24>>24)==(0);
if ($6) {
_String_AppendConst($1,25776);
_String_AppendColorless($1,$0);
_String_AppendConst($1,25817);
_Http_AsyncGetData($1,0,$0);
STACKTOP = sp;return;
} else {
_String_Copy($1,$0);
_Http_AsyncGetData($1,0,$0);
STACKTOP = sp;return;
}
}
function _Http_AsyncGetData($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Http_Add($0,$1,$2,0,0,0,0,0,0);
return;
}
function _Http_Add($0,$1,$2,$3,$4,$5,$6,$7,$8) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
$7 = $7|0;
$8 = $8|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 448|0;
$9 = sp + 432|0;
$10 = sp;
HEAP8[$9>>0] = $3;
_memset(($10|0),0,432)|0;
_String_CopyToRaw($10,128,$0);
_Platform_Log2(25822,$0,$9);
$11 = ((($10)) + 128|0);
_String_CopyToRaw($11,128,$2);
$12 = HEAP8[$9>>0]|0;
$13 = ((($10)) + 420|0);
HEAP8[$13>>0] = $12;
$14 = ($4|0)==(0|0);
if (!($14)) {
$15 = ((($10)) + 292|0);
_String_CopyToRaw($15,64,$4);
}
$16 = ($5|0)==(0|0);
if (!($16)) {
$17 = ((($10)) + 356|0);
_String_CopyToRaw($17,64,$5);
}
$18 = ($6|0)==(0|0);
if (!($18)) {
$19 = (_Mem_Alloc($7,1,25842)|0);
$20 = ((($10)) + 284|0);
HEAP32[$20>>2] = $19;
_Mem_Copy($19,$6,$7);
$21 = ((($10)) + 288|0);
HEAP32[$21>>2] = $7;
}
$22 = ((($10)) + 424|0);
HEAP32[$22>>2] = $8;
$23 = (_DateTime_CurrentUTC_MS()|0);
$24 = (getTempRet0() | 0);
$25 = ((($10)) + 256|0);
$26 = $25;
$27 = $26;
HEAP32[$27>>2] = $23;
$28 = (($26) + 4)|0;
$29 = $28;
HEAP32[$29>>2] = $24;
$30 = ($1<<24>>24)==(0);
if ($30) {
_RequestList_Append(535528,$10);
_Http_DownloadNextAsync();
STACKTOP = sp;return;
} else {
_RequestList_Prepend($10);
_Http_DownloadNextAsync();
STACKTOP = sp;return;
}
}
function _RequestList_Prepend($0) {
$0 = $0|0;
var $$01 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_RequestList_EnsureSpace(535528);
$1 = HEAP32[133882]|0;
$2 = ($1|0)>(0);
$3 = HEAP32[(535536)>>2]|0;
if ($2) {
$$01 = $1;$6 = $3;
while(1) {
$4 = (($$01) + -1)|0;
$5 = (($6) + (($$01*432)|0)|0);
$7 = (($6) + (($4*432)|0)|0);
_memcpy(($5|0),($7|0),432)|0;
$8 = ($$01|0)>(1);
$9 = HEAP32[(535536)>>2]|0;
if ($8) {
$$01 = $4;$6 = $9;
} else {
$$lcssa = $9;
break;
}
}
} else {
$$lcssa = $3;
}
_memcpy(($$lcssa|0),($0|0),432)|0;
$10 = HEAP32[133882]|0;
$11 = (($10) + 1)|0;
HEAP32[133882] = $11;
return;
}
function _RequestList_Append($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_RequestList_EnsureSpace($0);
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
$4 = HEAP32[$0>>2]|0;
$5 = (($4) + 1)|0;
HEAP32[$0>>2] = $5;
$6 = (($3) + (($4*432)|0)|0);
_memcpy(($6|0),($1|0),432)|0;
return;
}
function _Http_DownloadNextAsync() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 432|0;
$0 = sp;
$1 = HEAP8[1408265]|0;
$2 = HEAP32[133882]|0;
$3 = ($2|0)!=(0);
$4 = HEAP8[(544328)>>0]|0;
$5 = $4 | $1;
$6 = ($5<<24>>24)==(0);
$7 = $3 & $6;
if (!($7)) {
STACKTOP = sp;return;
}
$8 = HEAP32[(535536)>>2]|0;
_memcpy(($0|0),($8|0),432)|0;
_RequestList_RemoveAt(535528,0);
_Http_DownloadAsync($0);
STACKTOP = sp;return;
}
function _Http_DownloadAsync($0) {
$0 = $0|0;
var $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 832|0;
$1 = sp + 744|0;
$2 = sp + 608|0;
$3 = sp + 736|0;
$4 = sp;
_emscripten_fetch_attr_init($1);
$5 = ((($0)) + 420|0);
$6 = HEAP8[$5>>0]|0;
switch ($6<<24>>24) {
case 0: {
_Mem_Copy($1,25856,4);
label = 5;
break;
}
case 1: {
_Mem_Copy($1,25860,5);
label = 5;
break;
}
case 2: {
_Mem_Copy($1,25865,5);
label = 5;
break;
}
default: {
}
}
if ((label|0) == 5) {
$$pr = HEAP8[$5>>0]|0;
$7 = ($$pr<<24>>24)==(2);
if ($7) {
$8 = ((($0)) + 284|0);
$9 = HEAP32[$8>>2]|0;
$10 = ((($1)) + 80|0);
HEAP32[$10>>2] = $9;
$11 = ((($0)) + 288|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($1)) + 84|0);
HEAP32[$13>>2] = $12;
}
}
$14 = HEAP8[$0>>0]|0;
$15 = ($14<<24>>24)==(47);
if ($15) {
$16 = ((($1)) + 72|0);
HEAP32[$16>>2] = 11672;
}
$17 = ((($1)) + 48|0);
HEAP32[$17>>2] = 1;
$18 = ((($1)) + 36|0);
HEAP32[$18>>2] = 299;
$19 = ((($1)) + 40|0);
HEAP32[$19>>2] = 299;
$20 = ((($1)) + 44|0);
HEAP32[$20>>2] = 300;
HEAP32[$3>>2] = $2;
$21 = ((($3)) + 4|0);
HEAP16[$21>>1] = 0;
$22 = ((($3)) + 6|0);
HEAP16[$22>>1] = 128;
_Http_BeginRequest($0,$3);
(_Platform_ConvertString($4,$3)|0);
(_emscripten_fetch($1,$4)|0);
STACKTOP = sp;return;
}
function _Http_FinishedAsync($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
$2 = HEAP32[$1>>2]|0;
HEAP32[(544484)>>2] = $2;
$3 = ((($0)) + 16|0);
$4 = $3;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
HEAP32[(544488)>>2] = $6;
$10 = ((($0)) + 42|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
HEAP32[(544472)>>2] = $12;
$13 = ((($0)) + 32|0);
$14 = $13;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
HEAP32[(544476)>>2] = $16;
HEAP32[$1>>2] = 0;
(_emscripten_fetch_close($0)|0);
_Http_FinishRequest();
_Http_DownloadNextAsync();
return;
}
function _Http_UpdateProgress($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
$2 = $1;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 4)|0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = ($4|0)==(0);
$9 = ($7|0)==(0);
$10 = $8 & $9;
if ($10) {
return;
}
$11 = ((($0)) + 24|0);
$12 = $11;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (($12) + 4)|0;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = (+($14>>>0)) + (4294967296.0*(+($17>>>0)));
$19 = $18 * 100.0;
$20 = (+($4>>>0)) + (4294967296.0*(+($7>>>0)));
$21 = $19 / $20;
$22 = (~~(($21)));
HEAP32[2921] = $22;
return;
}
function _Http_BeginRequest($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Http_GetUrl($0,$1);
$2 = ((($0)) + 420|0);
_Platform_Log2(25870,$1,$2);
_memcpy((544200|0),($0|0),432)|0;
HEAP32[2921] = -2;
return;
}
function _Http_GetUrl($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$08$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 8|0;
$3 = sp;
_String_FromRaw($2,$0,128);
$4 = (_String_CaselessStarts($2,3248)|0);
$5 = ($4|0)==(0);
if ($5) {
$11 = (_String_CaselessStarts($2,(3264))|0);
$12 = ($11|0)==(0);
if ($12) {
_String_Copy($1,$2);
STACKTOP = sp;return;
} else {
$$08$lcssa = 2;
}
} else {
$$08$lcssa = 0;
}
$6 = (((3248 + ($$08$lcssa<<3)|0)) + 4|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
_String_UNSAFE_SubstringAt($3,$2,$8);
$9 = $$08$lcssa | 1;
$10 = (3248 + ($9<<3)|0);
_String_Format2($1,25900,$10,$3);
STACKTOP = sp;return;
}
function _Http_FinishRequest() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $not$or$cond3 = 0, $notlhs = 0, $or$cond$not = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(544484)>>2]|0;
$1 = ($0|0)==(0|0);
if (!($1)) {
_Platform_Log1(25987,(544488));
}
$2 = HEAP32[(544480)>>2]|0;
$3 = ($2|0)!=(0);
$4 = HEAP32[(544472)>>2]|0;
$5 = ($4|0)!=(200);
$or$cond$not = $3 | $5;
$6 = HEAP32[(544484)>>2]|0;
$7 = ($6|0)==(0|0);
$or$cond3 = $or$cond$not | $7;
$8 = HEAP32[(544488)>>2]|0;
$9 = ($8|0)!=(0);
$not$or$cond3 = $or$cond3 ^ 1;
$narrow = $9 & $not$or$cond3;
$10 = $narrow&1;
HEAP8[(544621)>>0] = $10;
$notlhs = $9 ^ 1;
$11 = $or$cond3 | $notlhs;
if (!($11)) {
_Http_CompleteRequest();
HEAP8[(544328)>>0] = 0;
HEAP32[2921] = -3;
return;
}
_HttpRequest_Free(544200);
_Http_CompleteRequest();
HEAP8[(544328)>>0] = 0;
HEAP32[2921] = -3;
return;
}
function _Http_CompleteRequest() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 448|0;
$0 = sp;
$1 = sp + 432|0;
_String_FromRaw($1,(544328),128);
$2 = (_DateTime_CurrentUTC_MS()|0);
$3 = (getTempRet0() | 0);
$4 = (544464);
$5 = $4;
HEAP32[$5>>2] = $2;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = $3;
$8 = (_RequestList_Find($1,$0)|0);
$9 = ($8|0)>(-1);
if (!($9)) {
_RequestList_Append(539864,544200);
STACKTOP = sp;return;
}
$10 = ((($0)) + 256|0);
$11 = $10;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = (($11) + 4)|0;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (544456);
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (($17) + 4)|0;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = ($16>>>0)>($22>>>0);
$24 = ($13>>>0)>($19>>>0);
$25 = ($16|0)==($22|0);
$26 = $25 & $24;
$27 = $23 | $26;
if ($27) {
_HttpRequest_Free(544200);
STACKTOP = sp;return;
} else {
_HttpRequest_Free($0);
$28 = HEAP32[(539872)>>2]|0;
$29 = (($28) + (($8*432)|0)|0);
_memcpy(($29|0),(544200|0),432)|0;
STACKTOP = sp;return;
}
}
function _RequestList_Find($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$011 = 0, $$03 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 8|0;
$3 = sp;
$4 = HEAP32[134966]|0;
$5 = ($4|0)>(0);
if (!($5)) {
$$011 = -1;
STACKTOP = sp;return ($$011|0);
}
$$03 = 0;
while(1) {
$6 = HEAP32[(539872)>>2]|0;
$7 = (((($6) + (($$03*432)|0)|0)) + 128|0);
_String_FromRaw($3,$7,128);
$8 = $3;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $2;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = (_String_Equals($0,$2)|0);
$19 = ($18|0)==(0);
if (!($19)) {
break;
}
$22 = (($$03) + 1)|0;
$23 = HEAP32[134966]|0;
$24 = ($22|0)<($23|0);
if ($24) {
$$03 = $22;
} else {
$$011 = -1;
label = 6;
break;
}
}
if ((label|0) == 6) {
STACKTOP = sp;return ($$011|0);
}
$20 = HEAP32[(539872)>>2]|0;
$21 = (($20) + (($$03*432)|0)|0);
_memcpy(($1|0),($21|0),432)|0;
$$011 = $$03;
STACKTOP = sp;return ($$011|0);
}
function _RequestList_EnsureSpace($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = ((($0)) + 4|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($1|0)<($3|0);
if ($4) {
return;
}
$5 = ((($0)) + 8|0);
_Utils_Resize($5,$2,432,10,10);
return;
}
function _Http_AsyncGetHeaders($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Http_Add($0,$1,$2,1,0,0,0,0,0);
return;
}
function _Http_AsyncGetDataEx($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Http_Add($0,$1,$2,0,$3,$4,0,0,$5);
return;
}
function _Http_GetResult($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$lobit = 0, $$not = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_RequestList_Find($0,$1)|0);
$3 = ($2|0)>(-1);
if ($3) {
_RequestList_RemoveAt(539864,$2);
}
$$lobit = (31)?($2 >>> 31):($2);
$4 = $$lobit&255;
$$not = $4 ^ 1;
return ($$not|0);
}
function _Http_GetCurrent($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
_memcpy(($0|0),(544200|0),432)|0;
$2 = HEAP32[2921]|0;
HEAP32[$1>>2] = $2;
$3 = ((($0)) + 128|0);
$4 = HEAP8[$3>>0]|0;
return ($4|0);
}
function _Input_AddTouch($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[315331]|0;
$4 = (381824 + (($3*24)|0)|0);
HEAP32[$4>>2] = $0;
$5 = (((381824 + (($3*24)|0)|0)) + 4|0);
HEAP8[$5>>0] = 7;
$6 = (((381824 + (($3*24)|0)|0)) + 8|0);
HEAP32[$6>>2] = $1;
$7 = (((381824 + (($3*24)|0)|0)) + 12|0);
HEAP32[$7>>2] = $2;
$8 = (_DateTime_CurrentUTC_MS()|0);
$9 = (getTempRet0() | 0);
$10 = (((381824 + (($3*24)|0)|0)) + 16|0);
$11 = $10;
$12 = $11;
HEAP32[$12>>2] = $8;
$13 = (($11) + 4)|0;
$14 = $13;
HEAP32[$14>>2] = $9;
$15 = 544632;
$16 = $15;
HEAP32[$16>>2] = $8;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $9;
$19 = HEAP32[315331]|0;
$20 = (($19) + 1)|0;
HEAP32[315331] = $20;
_Pointer_SetPosition($3,$1,$2);
_Pointer_SetPressed($3,1);
return;
}
function _Pointer_SetPosition($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[315332]|0;
$4 = (($1) - ($3))|0;
$5 = HEAP32[315333]|0;
$6 = (($2) - ($5))|0;
HEAP32[315332] = $1;
HEAP32[315333] = $2;
$7 = (379328 + ($0<<3)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==($1|0);
if ($9) {
$10 = (((379328 + ($0<<3)|0)) + 4|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)==($2|0);
if ($12) {
return;
}
}
HEAP32[$7>>2] = $1;
$13 = (((379328 + ($0<<3)|0)) + 4|0);
HEAP32[$13>>2] = $2;
$14 = HEAP8[1408267]|0;
$15 = ($14<<24>>24)==(0);
if (!($15)) {
$16 = (((381824 + (($0*24)|0)|0)) + 4|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17 & 1;
$19 = ($18<<24>>24)==(0);
if ($19) {
return;
}
}
_Event_RaiseMove(1258616,$0,$4,$6);
return;
}
function _Pointer_SetPressed($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408267]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
$4 = (((381824 + (($0*24)|0)|0)) + 4|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5 & 1;
$7 = ($6<<24>>24)==(0);
if ($7) {
return;
}
}
$8 = ($1<<24>>24)==(0);
if ($8) {
_Event_RaiseInt((1259136),$0);
return;
} else {
_Event_RaiseInt((1258876),$0);
return;
}
}
function _Input_UpdateTouch($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$021 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[315331]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$5 = HEAP32[315331]|0;
$$021 = 0;
while(1) {
$6 = (381824 + (($$021*24)|0)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==($0|0);
if ($8) {
break;
}
$24 = (($$021) + 1)|0;
$25 = ($24|0)<($5|0);
if ($25) {
$$021 = $24;
} else {
label = 12;
break;
}
}
if ((label|0) == 12) {
return;
}
$9 = HEAP8[1408266]|0;
$10 = ($9<<24>>24)==(0);
if (!($10)) {
$11 = (((381824 + (($$021*24)|0)|0)) + 4|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 & 2;
$14 = ($13<<24>>24)==(0);
if (!($14)) {
$15 = ($12<<24>>24)==(7);
if ($15) {
$16 = (_MovedFromBeg($$021,$1,$2)|0);
$17 = ($16<<24>>24)==(0);
if (!($17)) {
HEAP8[$11>>0] = 2;
}
}
$18 = (379328 + ($$021<<3)|0);
$19 = HEAP32[$18>>2]|0;
$20 = (($1) - ($19))|0;
$21 = (((379328 + ($$021<<3)|0)) + 4|0);
$22 = HEAP32[$21>>2]|0;
$23 = (($2) - ($22))|0;
_Event_RaiseMove((1259396),$$021,$20,$23);
}
}
_Pointer_SetPosition($$021,$1,$2);
return;
}
function _MovedFromBeg($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (((381824 + (($0*24)|0)|0)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($1) - ($4))|0;
$6 = (_Math_AbsI($5)|0);
$7 = (_Display_ScaleX(5)|0);
$8 = ($6|0)>($7|0);
if ($8) {
$15 = 1;
return ($15|0);
}
$9 = (((381824 + (($0*24)|0)|0)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($2) - ($10))|0;
$12 = (_Math_AbsI($11)|0);
$13 = (_Display_ScaleY(5)|0);
$14 = ($12|0)>($13|0);
$phitmp = $14&1;
$15 = $phitmp;
return ($15|0);
}
function _Input_RemoveTouch($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$017 = 0, $$116 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[315331]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$5 = HEAP32[315331]|0;
$$017 = 0;
while(1) {
$6 = (381824 + (($$017*24)|0)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==($0|0);
if ($8) {
break;
}
$30 = (($$017) + 1)|0;
$31 = ($30|0)<($5|0);
if ($31) {
$$017 = $30;
} else {
label = 9;
break;
}
}
if ((label|0) == 9) {
return;
}
_Pointer_SetPosition($$017,$1,$2);
_Pointer_SetPressed($$017,0);
_CheckBlockTap($$017);
$9 = HEAP32[315331]|0;
$10 = (($9) + -1)|0;
$11 = ($$017|0)<($10|0);
if ($11) {
$12 = HEAP32[315331]|0;
$13 = (($12) + -1)|0;
$$116 = $$017;
while(1) {
$14 = (381824 + (($$116*24)|0)|0);
$15 = (($$116) + 1)|0;
$16 = (381824 + (($15*24)|0)|0);
;HEAP32[$14>>2]=HEAP32[$16>>2]|0;HEAP32[$14+4>>2]=HEAP32[$16+4>>2]|0;HEAP32[$14+8>>2]=HEAP32[$16+8>>2]|0;HEAP32[$14+12>>2]=HEAP32[$16+12>>2]|0;HEAP32[$14+16>>2]=HEAP32[$16+16>>2]|0;HEAP32[$14+20>>2]=HEAP32[$16+20>>2]|0;
$17 = (379328 + ($$116<<3)|0);
$18 = (379328 + ($15<<3)|0);
$19 = $18;
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = (($19) + 4)|0;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = $17;
$26 = $25;
HEAP32[$26>>2] = $21;
$27 = (($25) + 4)|0;
$28 = $27;
HEAP32[$28>>2] = $24;
$29 = ($15|0)<($13|0);
if ($29) {
$$116 = $15;
} else {
$$lcssa = $13;
break;
}
}
} else {
$$lcssa = $10;
}
HEAP32[315331] = $$lcssa;
return;
}
function _CheckBlockTap($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_DateTime_CurrentUTC_MS()|0);
$2 = (getTempRet0() | 0);
$3 = (((381824 + (($0*24)|0)|0)) + 16|0);
$4 = $3;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (_i64Add(($6|0),($9|0),250,0)|0);
$11 = (getTempRet0() | 0);
$12 = ($2>>>0)>($11>>>0);
$13 = ($1>>>0)>($10>>>0);
$14 = ($2|0)==($11|0);
$15 = $14 & $13;
$16 = $12 | $15;
if ($16) {
return;
}
$17 = (((381824 + (($0*24)|0)|0)) + 4|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18<<24>>24)==(7);
if (!($19)) {
return;
}
$20 = HEAP8[1408268]|0;
$21 = ($20<<24>>24)!=(0);
$22 = $21&1;
$23 = (1408269 + ($22)|0);
$24 = HEAP8[$23>>0]|0;
_MouseStatePress($22);
if ($21) {
_DoPlaceBlock();
} else {
_DoDeleteBlock();
}
$25 = ($24<<24>>24)==(0);
if (!($25)) {
return;
}
_MouseStateRelease($22);
return;
}
function _MouseStatePress($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_DateTime_CurrentUTC_MS()|0);
$2 = (getTempRet0() | 0);
$3 = 544632;
$4 = $3;
HEAP32[$4>>2] = $1;
$5 = (($3) + 4)|0;
$6 = $5;
HEAP32[$6>>2] = $2;
HEAP32[2922] = -1;
_MouseStateChanged($0,1);
return;
}
function _DoDeleteBlock() {
var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy = sp + 12|0;
$0 = sp;
_HeldBlockRenderer_ClickAnim(1);
;HEAP32[$0>>2]=HEAP32[(1260256)>>2]|0;HEAP32[$0+4>>2]=HEAP32[(1260256)+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[(1260256)+8>>2]|0;
$1 = HEAP8[(1260280)>>0]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
STACKTOP = sp;return;
}
$3 = HEAP32[$0>>2]|0;
$4 = ((($0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = (_World_Contains_739($3,$5,$7)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
STACKTOP = sp;return;
}
$10 = (_World_GetBlock_740($3,$5,$7)|0);
$11 = $10&65535;
$12 = (583428 + ($11)|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(4);
if ($14) {
STACKTOP = sp;return;
}
$15 = (634884 + ($11)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(0);
if ($17) {
STACKTOP = sp;return;
}
_Game_ChangeBlock($3,$5,$7,0);
;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;
_Event_RaiseBlock(1252376,$$byval_copy,$10,0);
STACKTOP = sp;return;
}
function _DoPlaceBlock() {
var $$0 = 0, $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy = sp + 12|0;
$0 = sp;
;HEAP32[$0>>2]=HEAP32[(1260268)>>2]|0;HEAP32[$0+4>>2]=HEAP32[(1260268)+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[(1260268)+8>>2]|0;
$1 = HEAP8[(1260280)>>0]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
STACKTOP = sp;return;
}
$3 = HEAP32[$0>>2]|0;
$4 = ((($0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = (_World_Contains_739($3,$5,$7)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
STACKTOP = sp;return;
}
$10 = (_World_GetBlock_740($3,$5,$7)|0);
$11 = HEAP32[(1268184)>>2]|0;
$12 = HEAP32[(1268180)>>2]|0;
$13 = (($12) + ($11))|0;
$14 = (1266480 + ($13<<1)|0);
$15 = HEAP16[$14>>1]|0;
$16 = HEAP8[1408207]|0;
$17 = ($16<<24>>24)==(0);
if ($17) {
$$0 = $15;
} else {
$18 = (_AutoRotate_RotateBlock($15)|0);
$$0 = $18;
}
$19 = (_Game_CanPick($10)|0);
$20 = ($19<<24>>24)==(0);
if (!($20)) {
STACKTOP = sp;return;
}
$21 = $$0&65535;
$22 = (634116 + ($21)|0);
$23 = HEAP8[$22>>0]|0;
$24 = ($23<<24>>24)==(0);
if ($24) {
STACKTOP = sp;return;
}
$25 = (583428 + ($21)|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26<<24>>24)==(4);
if ($27) {
$28 = $10&65535;
$29 = (583428 + ($28)|0);
$30 = HEAP8[$29>>0]|0;
$31 = ($30<<24>>24)==(4);
if (!($31)) {
STACKTOP = sp;return;
}
}
$32 = (_CheckIsFree($$0)|0);
$33 = ($32<<24>>24)==(0);
if ($33) {
STACKTOP = sp;return;
}
$34 = HEAP32[$0>>2]|0;
$35 = HEAP32[$4>>2]|0;
$36 = HEAP32[$6>>2]|0;
_Game_ChangeBlock($34,$35,$36,$$0);
;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;
_Event_RaiseBlock(1252376,$$byval_copy,$10,$$0);
STACKTOP = sp;return;
}
function _MouseStateRelease($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[2922] = -1;
_MouseStateChanged($0,0);
return;
}
function _MouseStateChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(1384583)>>0]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
return;
}
$4 = ($1<<24>>24)==(0);
if (!($4)) {
_MouseStateUpdate($0,1);
return;
}
$5 = (1408269 + ($0)|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if ($7) {
return;
}
_MouseStateUpdate($0,0);
return;
}
function _MouseStateUpdate($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[2922]|0;
$3 = ($2|0)==(-1);
if ($3) {
$4 = (_Entities_GetClosest(1242152)|0);
$5 = $4&255;
HEAP32[2922] = $5;
}
$6 = (1408269 + ($0)|0);
HEAP8[$6>>0] = $1;
$7 = HEAP32[2922]|0;
$8 = $7&255;
_CPE_SendPlayerClick($0,$1,$8,1260220);
return;
}
function _World_Contains_739($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _World_GetBlock_740($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _CheckIsFree($0) {
$0 = $0|0;
var $$0 = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0;
var $44 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond17 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0;
$$byval_copy1 = sp + 104|0;
$1 = sp + 92|0;
$2 = sp + 80|0;
$3 = sp + 56|0;
$4 = sp + 32|0;
$5 = sp;
$6 = $0&65535;
$7 = (578052 + ($6)|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(2);
if (!($9)) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
_IVec3_ToVec3($1,(1260268));
;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;
$10 = (_IntersectsOthers($$byval_copy1,$0)|0);
$11 = ($10<<24>>24)==(0);
if (!($11)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
;HEAP32[$2>>2]=HEAP32[(1242844)>>2]|0;HEAP32[$2+4>>2]=HEAP32[(1242844)+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[(1242844)+8>>2]|0;
$12 = (588036 + (($6*12)|0)|0);
_Vec3_Add_741($3,$1,$12);
$13 = ((($3)) + 12|0);
$14 = (597252 + (($6*12)|0)|0);
_Vec3_Add_741($13,$1,$14);
_Entity_GetBounds(1242152,$4);
$15 = ((($2)) + 4|0);
$16 = +HEAPF32[$15>>2];
$17 = ((($4)) + 4|0);
$18 = +HEAPF32[$17>>2];
$19 = $16 < $18;
$20 = $19 ? $16 : $18;
HEAPF32[$17>>2] = $20;
$21 = HEAP8[(1242650)>>0]|0;
$22 = ($21<<24>>24)==(0);
if (!($22)) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$23 = (_AABB_Intersects($4,$3)|0);
$24 = ($23<<24>>24)==(0);
if ($24) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$25 = HEAP8[(1242633)>>0]|0;
$26 = ($25<<24>>24)==(0);
$27 = HEAP8[(1242624)>>0]|0;
$28 = ($27<<24>>24)==(0);
$or$cond = $26 | $28;
$29 = HEAP8[(1242626)>>0]|0;
$30 = ($29<<24>>24)==(0);
$or$cond17 = $or$cond | $30;
if (!($or$cond17)) {
$31 = (_PushbackPlace($3)|0);
$$0 = $31;
STACKTOP = sp;return ($$0|0);
}
$32 = +HEAPF32[$17>>2];
$33 = $32 + 0.25099998712539673;
HEAPF32[$17>>2] = $33;
$34 = (_AABB_Intersects($4,$3)|0);
$35 = ($34<<24>>24)==(0);
if (!($35)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$36 = ((($1)) + 4|0);
$37 = +HEAPF32[$36>>2];
$38 = (((597252 + (($6*12)|0)|0)) + 4|0);
$39 = +HEAPF32[$38>>2];
$40 = $37 + $39;
$41 = $40 + 0.0010000000474974513;
HEAPF32[$15>>2] = $41;
;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;
_LocationUpdate_MakePos($5,$$byval_copy1,0);
$42 = HEAP32[310538]|0;
$43 = ((($42)) + 8|0);
$44 = HEAP32[$43>>2]|0;
FUNCTION_TABLE_viii[$44 & 31](1242152,$5,0);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _IntersectsOthers($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$010 = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$2 = sp + 24|0;
$3 = sp;
$4 = $1&65535;
$5 = (588036 + (($4*12)|0)|0);
_Vec3_Add_741($2,$0,$5);
$6 = ((($2)) + 12|0);
$7 = (597252 + (($4*12)|0)|0);
_Vec3_Add_741($6,$0,$7);
$8 = ((($3)) + 4|0);
$$011 = 0;
while(1) {
$9 = (1241124 + ($$011<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if (!($11)) {
_Entity_GetBounds($10,$3);
$12 = +HEAPF32[$8>>2];
$13 = $12 + 0.03125;
HEAPF32[$8>>2] = $13;
$14 = (_AABB_Intersects($3,$2)|0);
$15 = ($14<<24>>24)==(0);
if (!($15)) {
$$010 = 1;
label = 5;
break;
}
}
$16 = (($$011) + 1)|0;
$17 = ($16>>>0)<(255);
if ($17) {
$$011 = $16;
} else {
$$010 = 0;
label = 5;
break;
}
}
if ((label|0) == 5) {
STACKTOP = sp;return ($$010|0);
}
return (0)|0;
}
function _Vec3_Add_741($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _PushbackPlace($0) {
$0 = $0|0;
var $$0 = 0, $$byval_copy = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0;
var $26 = 0.0, $27 = 0.0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$$byval_copy = sp + 68|0;
$1 = sp + 56|0;
$2 = sp + 32|0;
$3 = sp;
;HEAP32[$1>>2]=HEAP32[(1242156)>>2]|0;HEAP32[$1+4>>2]=HEAP32[(1242156)+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[(1242156)+8>>2]|0;
$4 = HEAP8[(1260281)>>0]|0;
switch ($4<<24>>24) {
case 1: {
$5 = ((($0)) + 12|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 + 0.5;
HEAPF32[$1>>2] = $7;
break;
}
case 3: {
$8 = ((($0)) + 20|0);
$9 = +HEAPF32[$8>>2];
$10 = $9 + 0.5;
$11 = ((($1)) + 8|0);
HEAPF32[$11>>2] = $10;
break;
}
case 0: {
$12 = +HEAPF32[$0>>2];
$13 = $12 + -0.5;
HEAPF32[$1>>2] = $13;
break;
}
case 2: {
$14 = ((($0)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $15 + -0.5;
$17 = ((($1)) + 8|0);
HEAPF32[$17>>2] = $16;
break;
}
case 5: {
$18 = ((($0)) + 4|0);
$19 = +HEAPF32[$18>>2];
$20 = $19 + 1.0;
$21 = $20 + 0.0010000000474974513;
$22 = ((($1)) + 4|0);
HEAPF32[$22>>2] = $21;
break;
}
case 4: {
$23 = ((($0)) + 4|0);
$24 = +HEAPF32[$23>>2];
$25 = +HEAPF32[(1242248)>>2];
$26 = $24 - $25;
$27 = $26 + -0.0010000000474974513;
$28 = ((($1)) + 4|0);
HEAPF32[$28>>2] = $27;
break;
}
default: {
}
}
$29 = +HEAPF32[$1>>2];
$30 = $29 > 0.0;
if (!($30)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$31 = ((($1)) + 4|0);
$32 = +HEAPF32[$31>>2];
$33 = !($32 >= 0.0);
if ($33) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$34 = ((($1)) + 8|0);
$35 = +HEAPF32[$34>>2];
$36 = $35 > 0.0;
if (!($36)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$37 = HEAP32[(1407464)>>2]|0;
$38 = (+($37|0));
$39 = $29 < $38;
if (!($39)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$40 = HEAP32[(1407472)>>2]|0;
$41 = (+($40|0));
$42 = $35 < $41;
if (!($42)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
_AABB_Make($2,$1,(1242244));
$43 = HEAP8[(1242650)>>0]|0;
$44 = ($43<<24>>24)==(0);
if ($44) {
$45 = (_Entity_TouchesAny($2,15)|0);
$46 = ($45<<24>>24)==(0);
if (!($46)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
}
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
_LocationUpdate_MakePos($3,$$byval_copy,0);
$47 = HEAP32[310538]|0;
$48 = ((($47)) + 8|0);
$49 = HEAP32[$48>>2]|0;
FUNCTION_TABLE_viii[$49 & 31](1242152,$3,0);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _TouchesSolid($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&65535;
$2 = (578052 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(2);
$5 = $4&1;
return ($5|0);
}
function _Input_SetPressed($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (379584 + ($0)|0);
$3 = HEAP8[$2>>0]|0;
HEAP8[$2>>0] = $1;
$4 = ($1<<24>>24)==(0);
if ($4) {
$5 = ($3<<24>>24)==(0);
if (!($5)) {
_Event_RaiseInt((1257836),$0);
}
} else {
_Event_RaiseInput((1257576),$0,$3);
}
$6 = ($0|0)!=(130);
$7 = ($3<<24>>24)==($1<<24>>24);
$or$cond = $6 | $7;
if ($or$cond) {
return;
}
_Pointer_SetPressed(0,$1);
return;
}
function _Input_Clear() {
var $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$05 = 0;
while(1) {
$0 = (379584 + ($$05)|0);
$1 = HEAP8[$0>>0]|0;
$2 = ($1<<24>>24)==(0);
if (!($2)) {
_Input_SetPressed($$05,0);
}
$3 = (($$05) + 1)|0;
$exitcond = ($3|0)==(133);
if ($exitcond) {
break;
} else {
$$05 = $3;
}
}
return;
}
function _Mouse_ScrollWheel($0) {
$0 = +$0;
var label = 0, sp = 0;
sp = STACKTOP;
_Event_RaiseFloat((1258096),$0);
return;
}
function _KeyBind_IsPressed($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (379728 + ($0)|0);
$2 = HEAP8[$1>>0]|0;
$3 = $2&255;
$4 = (379584 + ($3)|0);
$5 = HEAP8[$4>>0]|0;
return ($5|0);
}
function _KeyBind_Set($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1&255;
$3 = (379728 + ($0)|0);
HEAP8[$3>>0] = $2;
_KeyBind_Save();
return;
}
function _KeyBind_Save() {
var $$06 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$0 = sp + 80|0;
$1 = sp;
$2 = sp + 72|0;
$3 = sp + 64|0;
HEAP32[$0>>2] = $1;
$4 = ((($0)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($0)) + 6|0);
HEAP16[$5>>1] = 64;
$$06 = 0;
while(1) {
HEAP16[$4>>1] = 0;
$6 = (4128 + ($$06<<2)|0);
$7 = HEAP32[$6>>2]|0;
_String_Format1($0,26804,$7);
$8 = (379728 + ($$06)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = (3280 + ($10<<2)|0);
$12 = HEAP32[$11>>2]|0;
_String_FromReadonly($3,$12);
$13 = $3;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$19 = $2;
$20 = $19;
HEAP32[$20>>2] = $15;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = $18;
_Options_SetString($0,$2);
$23 = (($$06) + 1)|0;
$exitcond = ($23|0)==(35);
if ($exitcond) {
break;
} else {
$$06 = $23;
}
}
STACKTOP = sp;return;
}
function _Hotkeys_Add($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$01820 = 0, $$021 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[(1261344)>>2]|0;
$5 = ($4|0)>(0);
L1: do {
if ($5) {
$6 = HEAP32[(1261344)>>2]|0;
$$01820 = 379776;$$021 = 0;
while(1) {
$7 = ((($$01820)) + 4|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = ($9|0)==($0|0);
if ($10) {
$11 = ((($$01820)) + 5|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==($1<<24>>24);
if ($13) {
break;
}
}
$17 = (($$021) + 1)|0;
$18 = ((($$01820)) + 8|0);
$19 = ($17|0)<($6|0);
if ($19) {
$$01820 = $18;$$021 = $17;
} else {
break L1;
}
}
$14 = HEAP32[$$01820>>2]|0;
_Hotkeys_RemoveText($14);
$15 = ((($$01820)) + 6|0);
HEAP8[$15>>0] = $3;
$16 = HEAP32[(1261344)>>2]|0;
HEAP32[$$01820>>2] = $16;
_StringsBuffer_Add(1261336,$2);
return;
}
} while(0);
_Hotkeys_AddNewHotkey($0,$1,$2,$3);
return;
}
function _Hotkeys_RemoveText($0) {
$0 = $0|0;
var $$011 = 0, $$0910 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1261344)>>2]|0;
$2 = ($1|0)>(0);
if (!($2)) {
_StringsBuffer_Remove(1261336,$0);
return;
}
$3 = HEAP32[(1261344)>>2]|0;
$$011 = 0;$$0910 = 379776;
while(1) {
$4 = HEAP32[$$0910>>2]|0;
$5 = ($4|0)<($0|0);
if (!($5)) {
$6 = (($4) + -1)|0;
HEAP32[$$0910>>2] = $6;
}
$7 = (($$011) + 1)|0;
$8 = ((($$0910)) + 8|0);
$9 = ($7|0)<($3|0);
if ($9) {
$$011 = $7;$$0910 = $8;
} else {
break;
}
}
_StringsBuffer_Remove(1261336,$0);
return;
}
function _Hotkeys_AddNewHotkey($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$4$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx = 0, $$sroa$6$0$$sroa_idx = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[(1261344)>>2]|0;
$5 = ($4|0)==(256);
if ($5) {
_Chat_AddRaw(27052);
return;
} else {
$6 = $0&255;
$$sroa$0$0$$sroa_idx = (379776 + ($4<<3)|0);
HEAP32[$$sroa$0$0$$sroa_idx>>2] = $4;
$$sroa$4$0$$sroa_idx = (((379776 + ($4<<3)|0)) + 4|0);
HEAP8[$$sroa$4$0$$sroa_idx>>0] = $6;
$$sroa$5$0$$sroa_idx = (((379776 + ($4<<3)|0)) + 5|0);
HEAP8[$$sroa$5$0$$sroa_idx>>0] = $1;
$$sroa$6$0$$sroa_idx = (((379776 + ($4<<3)|0)) + 6|0);
HEAP8[$$sroa$6$0$$sroa_idx>>0] = $3;
_StringsBuffer_Add(1261336,$2);
$7 = HEAP32[(1261344)>>2]|0;
$8 = (($7) + -1)|0;
_Hotkeys_QuickSort(0,$8);
return;
}
}
function _Hotkeys_QuickSort($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$049$lcssa = 0, $$04958 = 0, $$051$lcssa = 0, $$05157 = 0, $$05460 = 0, $$061 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$155 = 0, $$2 = 0, $$253 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($0|0)<($1|0);
if (!($2)) {
return;
}
$$05460 = $1;$$061 = $0;
while(1) {
$3 = (($$061) + ($$05460))|0;
$4 = (1)?($3 >> 1):($3);
$5 = (((379776 + ($4<<3)|0)) + 5|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($$061|0)>($$05460|0);
if ($7) {
$$049$lcssa = $$05460;$$051$lcssa = $$061;
} else {
$$04958 = $$05460;$$05157 = $$061;
while(1) {
$$152 = $$05157;
while(1) {
$8 = (((379776 + ($$152<<3)|0)) + 5|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($6&255)<($9&255);
$11 = (($$152) + 1)|0;
if ($10) {
$$152 = $11;
} else {
break;
}
}
$$150 = $$04958;
while(1) {
$12 = (((379776 + ($$150<<3)|0)) + 5|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($6&255)>($13&255);
$15 = (($$150) + -1)|0;
if ($14) {
$$150 = $15;
} else {
break;
}
}
$16 = (379776 + ($$152<<3)|0);
$17 = (379776 + ($$150<<3)|0);
$18 = ($$152|0)>($$150|0);
if ($18) {
$$2 = $$150;$$253 = $$152;
} else {
$19 = (($$150) + -1)|0;
$20 = (($$152) + 1)|0;
$21 = $16;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = $17;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = $16;
$34 = $33;
HEAP32[$34>>2] = $29;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $32;
$37 = $17;
$38 = $37;
HEAP32[$38>>2] = $23;
$39 = (($37) + 4)|0;
$40 = $39;
HEAP32[$40>>2] = $26;
$$2 = $19;$$253 = $20;
}
$41 = ($$253|0)>($$2|0);
if ($41) {
$$049$lcssa = $$2;$$051$lcssa = $$253;
break;
} else {
$$04958 = $$2;$$05157 = $$253;
}
}
}
$42 = (($$049$lcssa) - ($$061))|0;
$43 = (($$05460) - ($$051$lcssa))|0;
$44 = ($42|0)>($43|0);
if ($44) {
$46 = ($$05460|0)>($$051$lcssa|0);
if ($46) {
_Hotkeys_QuickSort($$051$lcssa,$$05460);
$$1 = $$061;$$155 = $$049$lcssa;
} else {
$$1 = $$061;$$155 = $$049$lcssa;
}
} else {
$45 = ($$049$lcssa|0)>($$061|0);
if ($45) {
_Hotkeys_QuickSort($$061,$$049$lcssa);
$$1 = $$051$lcssa;$$155 = $$05460;
} else {
$$1 = $$051$lcssa;$$155 = $$05460;
}
}
$47 = ($$1|0)<($$155|0);
if ($47) {
$$05460 = $$155;$$061 = $$1;
} else {
break;
}
}
return;
}
function _Hotkeys_Remove($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$01826 = 0, $$01925 = 0, $$020 = 0, $$024 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1261344)>>2]|0;
$3 = ($2|0)>(0);
if (!($3)) {
$$020 = 0;
return ($$020|0);
}
$4 = HEAP32[(1261344)>>2]|0;
$$01826 = 0;$$01925 = 379776;
while(1) {
$5 = ((($$01925)) + 4|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = ($7|0)==($0|0);
if ($8) {
$9 = ((($$01925)) + 5|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==($1<<24>>24);
if ($11) {
break;
}
}
$30 = (($$01826) + 1)|0;
$31 = ((($$01925)) + 8|0);
$32 = ($30|0)<($4|0);
if ($32) {
$$01826 = $30;$$01925 = $31;
} else {
$$020 = 0;
label = 9;
break;
}
}
if ((label|0) == 9) {
return ($$020|0);
}
$12 = HEAP32[$$01925>>2]|0;
_Hotkeys_RemoveText($12);
$13 = HEAP32[(1261344)>>2]|0;
$14 = ($$01826|0)<($13|0);
if (!($14)) {
$$020 = 1;
return ($$020|0);
}
$15 = HEAP32[(1261344)>>2]|0;
$$024 = $$01826;
while(1) {
$16 = (379776 + ($$024<<3)|0);
$17 = (($$024) + 1)|0;
$18 = (379776 + ($17<<3)|0);
$19 = $18;
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = (($19) + 4)|0;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = $16;
$26 = $25;
HEAP32[$26>>2] = $21;
$27 = (($25) + 4)|0;
$28 = $27;
HEAP32[$28>>2] = $24;
$29 = ($17|0)<($15|0);
if ($29) {
$$024 = $17;
} else {
$$020 = 1;
break;
}
}
return ($$020|0);
}
function _Hotkeys_FindPartial($0) {
$0 = $0|0;
var $$0 = 0, $$01926 = 0, $$020 = 0, $$1 = 0, $$2 = 0, $$sroa$3$0$$sroa_idx = 0, $$sroa$3$0$copyload = 0, $$sroa$4$0$$sroa_idx = 0, $$sroa$4$0$copyload = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(379622)>>0]|0;
$2 = HEAP8[(379623)>>0]|0;
$3 = $2 | $1;
$4 = ($3<<24>>24)!=(0);
$$0 = $4&1;
$5 = HEAP8[(379620)>>0]|0;
$6 = HEAP8[(379621)>>0]|0;
$7 = $6 | $5;
$8 = ($7<<24>>24)==(0);
$9 = $$0 | 2;
$$1 = $8 ? $$0 : $9;
$10 = HEAP8[(379624)>>0]|0;
$11 = HEAP8[(379625)>>0]|0;
$12 = $11 | $10;
$13 = ($12<<24>>24)==(0);
$14 = $$1 | 4;
$$2 = $13 ? $$1 : $14;
$15 = HEAP32[(1261344)>>2]|0;
$16 = ($15|0)>(0);
if (!($16)) {
$$020 = -1;
return ($$020|0);
}
$17 = HEAP32[(1261344)>>2]|0;
$$01926 = 0;
while(1) {
$$sroa$4$0$$sroa_idx = (((379776 + ($$01926<<3)|0)) + 5|0);
$$sroa$4$0$copyload = HEAP8[$$sroa$4$0$$sroa_idx>>0]|0;
$18 = $$sroa$4$0$copyload&255;
$19 = $$2 & $18;
$20 = ($19|0)==($18|0);
if ($20) {
$$sroa$3$0$$sroa_idx = (((379776 + ($$01926<<3)|0)) + 4|0);
$$sroa$3$0$copyload = HEAP8[$$sroa$3$0$$sroa_idx>>0]|0;
$21 = $$sroa$3$0$copyload&255;
$22 = ($21|0)==($0|0);
if ($22) {
$$020 = $$01926;
label = 6;
break;
}
}
$23 = (($$01926) + 1)|0;
$24 = ($23|0)<($17|0);
if ($24) {
$$01926 = $23;
} else {
$$020 = -1;
label = 6;
break;
}
}
if ((label|0) == 6) {
return ($$020|0);
}
return (0)|0;
}
function _Hotkeys_UserRemovedHotkey($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp + 72|0;
$3 = sp + 64|0;
$4 = sp;
HEAP8[$2>>0] = $1;
HEAP32[$3>>2] = $4;
$5 = ((($3)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($3)) + 6|0);
HEAP16[$6>>1] = 64;
$7 = (3280 + ($0<<2)|0);
$8 = HEAP32[$7>>2]|0;
_String_Format2($3,27090,$8,$2);
_Options_SetString($3,0);
STACKTOP = sp;return;
}
function _Hotkeys_UserAddedHotkey($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224|0;
$4 = sp + 209|0;
$5 = sp + 208|0;
$6 = sp + 200|0;
$7 = sp + 128|0;
$8 = sp + 192|0;
$9 = sp;
HEAP8[$4>>0] = $1;
HEAP8[$5>>0] = $2;
HEAP32[$6>>2] = $7;
$10 = ((($6)) + 4|0);
HEAP16[$10>>1] = 0;
$11 = ((($6)) + 6|0);
HEAP16[$11>>1] = 64;
HEAP32[$8>>2] = $9;
$12 = ((($8)) + 4|0);
HEAP16[$12>>1] = 0;
$13 = ((($8)) + 6|0);
HEAP16[$13>>1] = 128;
$14 = (3280 + ($0<<2)|0);
$15 = HEAP32[$14>>2]|0;
_String_Format2($6,27090,$15,$4);
_String_Format2($8,27103,$5,$3);
_Options_SetString($6,$8);
STACKTOP = sp;return;
}
function _InputHandler_OnScreensChanged() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_DateTime_CurrentUTC_MS()|0);
$1 = (getTempRet0() | 0);
$2 = 544632;
$3 = $2;
HEAP32[$3>>2] = $0;
$4 = (($2) + 4)|0;
$5 = $4;
HEAP32[$5>>2] = $1;
HEAP32[2922] = -1;
_MouseStateChanged(0,0);
_MouseStateChanged(1,0);
_MouseStateChanged(2,0);
return;
}
function _InputHandler_PickBlocks() {
var $$0 = 0, $$012 = 0, $$013 = 0, $$phitmp = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $narrow15 = 0, $not$ = 0, $phitmp$ = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$0 = (_DateTime_CurrentUTC_MS()|0);
$1 = (getTempRet0() | 0);
$2 = 544632;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 4)|0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (_i64Subtract(($0|0),($1|0),($4|0),($7|0))|0);
$9 = (getTempRet0() | 0);
$10 = ($8|0)<(250);
if ($10) {
return;
}
$11 = 544632;
$12 = $11;
HEAP32[$12>>2] = $0;
$13 = (($11) + 4)|0;
$14 = $13;
HEAP32[$14>>2] = $1;
$15 = (_Gui_GetInputGrab()|0);
$16 = ($15|0)==(0|0);
if (!($16)) {
return;
}
$17 = (_KeyBind_IsPressed(26)|0);
$18 = (_KeyBind_IsPressed(27)|0);
$19 = (_KeyBind_IsPressed(28)|0);
$20 = HEAP8[1408267]|0;
$21 = ($20<<24>>24)==(0);
if ($21) {
$$0 = $17;$$012 = $18;$$013 = $19;
} else {
$22 = HEAP8[1408268]|0;
$23 = ($22<<24>>24)==(0);
$24 = (_AnyBlockTouches()|0);
$25 = ($24<<24>>24)!=(0);
$not$ = $23 ^ 1;
$narrow = $25 & $not$;
$$phitmp = $narrow&1;
$narrow15 = $23 & $25;
$phitmp$ = $narrow15&1;
$$0 = $phitmp$;$$012 = 0;$$013 = $$phitmp;
}
$26 = HEAP8[(1384583)>>0]|0;
$27 = ($26<<24>>24)==(0);
if (!($27)) {
HEAP32[2922] = -1;
_MouseStateChanged(0,$$0);
_MouseStateChanged(1,$$013);
_MouseStateChanged(2,$$012);
}
$28 = ($$0<<24>>24)==(0);
if (!($28)) {
_DoDeleteBlock();
return;
}
$29 = ($$013<<24>>24)==(0);
if (!($29)) {
_DoPlaceBlock();
return;
}
$30 = ($$012<<24>>24)==(0);
if ($30) {
return;
}
_DoPickBlock();
return;
}
function _AnyBlockTouches() {
var $$05 = 0, $$06 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315331]|0;
$1 = ($0|0)>(0);
if (!($1)) {
$$05 = 0;
return ($$05|0);
}
$2 = HEAP32[315331]|0;
$$06 = 0;
while(1) {
$5 = (((381824 + (($$06*24)|0)|0)) + 4|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6 & 4;
$8 = ($7<<24>>24)==(0);
$3 = (($$06) + 1)|0;
if (!($8)) {
$$05 = 1;
label = 5;
break;
}
$4 = ($3|0)<($2|0);
if ($4) {
$$06 = $3;
} else {
$$05 = 0;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$05|0);
}
return (0)|0;
}
function _DoPickBlock() {
var $$sroa$0$0$copyload = 0, $$sroa$5$0$copyload = 0, $$sroa$7$0$copyload = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$sroa$0$0$copyload = HEAP32[(1260256)>>2]|0;
$$sroa$5$0$copyload = HEAP32[(1260260)>>2]|0;
$$sroa$7$0$copyload = HEAP32[(1260264)>>2]|0;
$0 = (_World_Contains_739($$sroa$0$0$copyload,$$sroa$5$0$copyload,$$sroa$7$0$copyload)|0);
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
$2 = (_World_GetBlock_740($$sroa$0$0$copyload,$$sroa$5$0$copyload,$$sroa$7$0$copyload)|0);
$3 = $2&65535;
$4 = (583428 + ($3)|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(4);
if ($6) {
return;
}
$7 = (634116 + ($3)|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
if ($9) {
$10 = (634884 + ($3)|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if ($12) {
return;
}
}
_Inventory_PickBlock($2);
return;
}
function _InputHandler_SetFOV($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242626)>>0]|0;
$2 = ($1<<24>>24)==(0);
$3 = HEAP8[(1242628)>>0]|0;
$4 = ($3<<24>>24)==(0);
$or$cond = $2 | $4;
if ($or$cond) {
$$0 = 0;
return ($$0|0);
}
HEAP32[315072] = $0;
_Game_SetFov($0);
$$0 = 1;
return ($$0|0);
}
function _InputHandler_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Register(1258616,0,19);
_Event_Register((1258876),0,67);
_Event_Register((1259136),0,68);
_Event_Register((1257576),0,9);
_Event_Register((1257836),0,69);
_Event_Register((1258096),0,32);
_Event_Register((1256536),0,301);
_Event_Register((1252636),0,302);
_KeyBind_Init();
_Hotkeys_Init();
return;
}
function _HandlePointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$017 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$4 = (379328 + ($1<<3)|0);
$5 = HEAP32[$4>>2]|0;
$6 = (((379328 + ($1<<3)|0)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = HEAP32[315198]|0;
$9 = ($8|0)>(0);
if (!($9)) {
return;
}
$10 = 1 << $1;
$$017 = 0;
while(1) {
$11 = (379280 + ($$017<<2)|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 7|0);
HEAP8[$13>>0] = 1;
$14 = HEAP32[$12>>2]|0;
$15 = ((($14)) + 44|0);
$16 = HEAP32[$15>>2]|0;
$17 = (FUNCTION_TABLE_iiiii[$16 & 63]($12,$10,$5,$7)|0);
$18 = ($17|0)==(0);
$19 = (($$017) + 1)|0;
$20 = HEAP32[315198]|0;
$21 = ($19|0)<($20|0);
$or$cond = $18 & $21;
if ($or$cond) {
$$017 = $19;
} else {
break;
}
}
return;
}
function _HandlePointerDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$018 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = (379328 + ($1<<3)|0);
$3 = HEAP32[$2>>2]|0;
$4 = (((379328 + ($1<<3)|0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = HEAP32[315198]|0;
$7 = ($6|0)>(0);
if (!($7)) {
return;
}
$8 = 1 << $1;
$$018 = 0;
while(1) {
$12 = (379280 + ($$018<<2)|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($13)) + 7|0);
HEAP8[$14>>0] = 1;
$15 = HEAP32[$13>>2]|0;
$16 = ((($15)) + 36|0);
$17 = HEAP32[$16>>2]|0;
$18 = (FUNCTION_TABLE_iiiii[$17 & 63]($13,$8,$3,$5)|0);
$19 = ($18|0)==(0);
$10 = (($$018) + 1)|0;
if (!($19)) {
break;
}
$9 = HEAP32[315198]|0;
$11 = ($10|0)<($9|0);
if ($11) {
$$018 = $10;
} else {
label = 6;
break;
}
}
if ((label|0) == 6) {
return;
}
$20 = (((381824 + (($1*24)|0)|0)) + 4|0);
HEAP8[$20>>0] = 1;
return;
}
function _HandlePointerUp($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$017 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = (379328 + ($1<<3)|0);
$3 = HEAP32[$2>>2]|0;
$4 = (((379328 + ($1<<3)|0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = HEAP32[315198]|0;
$7 = ($6|0)>(0);
if (!($7)) {
return;
}
$8 = 1 << $1;
$$017 = 0;
while(1) {
$9 = (379280 + ($$017<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($10)) + 7|0);
HEAP8[$11>>0] = 1;
$12 = HEAP32[$10>>2]|0;
$13 = ((($12)) + 40|0);
$14 = HEAP32[$13>>2]|0;
$15 = (FUNCTION_TABLE_iiiii[$14 & 63]($10,$8,$3,$5)|0);
$16 = ($15|0)==(0);
$17 = (($$017) + 1)|0;
$18 = HEAP32[315198]|0;
$19 = ($17|0)<($18|0);
$or$cond = $16 & $19;
if ($or$cond) {
$$017 = $17;
} else {
break;
}
}
return;
}
function _HandleInputDown($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$022 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_InputHandler_IsShutdown($1)|0);
$4 = ($3<<24>>24)==(0);
if (!($4)) {
_Window_Close();
return;
}
$5 = HEAP8[(379747)>>0]|0;
$6 = $5&255;
$7 = ($6|0)!=($1|0);
$8 = ($2<<24>>24)!=(0);
$or$cond = $8 | $7;
if (!($or$cond)) {
return;
}
$9 = HEAP32[315198]|0;
$10 = ($9|0)>(0);
L8: do {
if ($10) {
$$022 = 0;
while(1) {
$14 = (379280 + ($$022<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($15)) + 7|0);
HEAP8[$16>>0] = 1;
$17 = HEAP32[$15>>2]|0;
$18 = ((($17)) + 20|0);
$19 = HEAP32[$18>>2]|0;
$20 = (FUNCTION_TABLE_iii[$19 & 127]($15,$1)|0);
$21 = ($20|0)==(0);
$12 = (($$022) + 1)|0;
if (!($21)) {
break;
}
$11 = HEAP32[315198]|0;
$13 = ($12|0)<($11|0);
if ($13) {
$$022 = $12;
} else {
break L8;
}
}
return;
}
} while(0);
switch ($1|0) {
case 92: case 99: {
$22 = (_Gui_GetInputGrab()|0);
$23 = ($22|0)==(0|0);
if ($23) {
HEAP8[1408272] = 1;
_PauseScreen_Show();
return;
}
break;
}
default: {
}
}
if ($8) {
return;
}
$24 = (_HandleBlockKey($1)|0);
$25 = ($24<<24>>24)==(0);
if (!($25)) {
return;
}
$26 = (_HandleCoreKey($1)|0);
$27 = ($26<<24>>24)==(0);
if (!($27)) {
return;
}
$28 = (_LocalPlayer_HandlesKey($1)|0);
$29 = ($28<<24>>24)==(0);
if (!($29)) {
return;
}
_HandleHotkeyDown($1);
return;
}
function _HandleInputUp($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(379752)>>0]|0;
$3 = $2&255;
$4 = ($3|0)==($1|0);
if ($4) {
$5 = HEAP32[315071]|0;
_Game_SetFov($5);
}
$6 = ($1|0)==(92);
if ($6) {
$7 = (_Gui_GetClosable()|0);
$8 = ($7|0)==(0|0);
if (!($8)) {
$9 = HEAP8[1408272]|0;
$10 = ($9<<24>>24)==(0);
if ($10) {
_Gui_Remove($7);
return;
} else {
HEAP8[1408272] = 0;
return;
}
}
}
$11 = HEAP32[315198]|0;
$12 = ($11|0)>(0);
L13: do {
if ($12) {
$$015 = 0;
while(1) {
$16 = (379280 + ($$015<<2)|0);
$17 = HEAP32[$16>>2]|0;
$18 = ((($17)) + 7|0);
HEAP8[$18>>0] = 1;
$19 = HEAP32[$17>>2]|0;
$20 = ((($19)) + 24|0);
$21 = HEAP32[$20>>2]|0;
$22 = (FUNCTION_TABLE_iii[$21 & 127]($17,$1)|0);
$23 = ($22|0)==(0);
$14 = (($$015) + 1)|0;
if (!($23)) {
break;
}
$13 = HEAP32[315198]|0;
$15 = ($14|0)<($13|0);
if ($15) {
$$015 = $14;
} else {
break L13;
}
}
return;
}
} while(0);
$24 = (_Gui_GetInputGrab()|0);
$25 = ($24|0)==(0|0);
if (!($25)) {
return;
}
$26 = HEAP8[(379754)>>0]|0;
$27 = $26&255;
$28 = ($27|0)==($1|0);
if ($28) {
_MouseStateRelease(0);
}
$29 = HEAP8[(379756)>>0]|0;
$30 = $29&255;
$31 = ($30|0)==($1|0);
if ($31) {
_MouseStateRelease(1);
}
$32 = HEAP8[(379755)>>0]|0;
$33 = $32&255;
$34 = ($33|0)==($1|0);
if (!($34)) {
return;
}
_MouseStateRelease(2);
return;
}
function _HandleMouseWheel($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[315198]|0;
$3 = ($2|0)>(0);
L1: do {
if ($3) {
$$025 = 0;
while(1) {
$7 = (379280 + ($$025<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 7|0);
HEAP8[$9>>0] = 1;
$10 = HEAP32[$8>>2]|0;
$11 = ((($10)) + 48|0);
$12 = HEAP32[$11>>2]|0;
$13 = (FUNCTION_TABLE_iid[$12 & 15]($8,$1)|0);
$14 = ($13|0)==(0);
$5 = (($$025) + 1)|0;
if (!($14)) {
break;
}
$4 = HEAP32[315198]|0;
$6 = ($5|0)<($4|0);
if ($6) {
$$025 = $5;
} else {
break L1;
}
}
return;
}
} while(0);
$15 = HEAP8[(379624)>>0]|0;
$16 = HEAP8[(379625)>>0]|0;
$17 = $16 | $15;
$18 = HEAP8[(379622)>>0]|0;
$19 = $17 | $18;
$20 = HEAP8[(379623)>>0]|0;
$21 = $19 | $20;
$22 = ($21<<24>>24)==(0);
if ($22) {
$23 = HEAP8[(379620)>>0]|0;
$24 = HEAP8[(379621)>>0]|0;
$25 = $24 | $23;
$26 = ($25<<24>>24)==(0);
if ($26) {
$27 = HEAP32[(1230632)>>2]|0;
$28 = ((($27)) + 40|0);
$29 = HEAP32[$28>>2]|0;
$30 = (FUNCTION_TABLE_id[$29 & 3]($1)|0);
$31 = ($30<<24>>24)==(0);
if (!($31)) {
return;
}
}
}
$32 = (_InputHandler_DoFovZoom($1)|0);
$33 = ($32<<24>>24)==(0);
$34 = HEAP8[(1268188)>>0]|0;
$35 = ($34<<24>>24)!=(0);
$or$cond = $33 & $35;
if (!($or$cond)) {
return;
}
$36 = (_ChatScreen_GetHotbar()|0);
$37 = HEAP32[$36>>2]|0;
$38 = ((($37)) + 20|0);
$39 = HEAP32[$38>>2]|0;
(FUNCTION_TABLE_iid[$39 & 15]($36,$1)|0);
$40 = HEAP32[315197]|0;
$41 = ((($40)) + 7|0);
HEAP8[$41>>0] = 1;
return;
}
function _HandleFocusChanged($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408301]|0;
$2 = ($1<<24>>24)==(0);
if (!($2)) {
return;
}
_Input_Clear();
return;
}
function _InputHandler_CheckZoomFov($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242626)>>0]|0;
$2 = ($1<<24>>24)==(0);
$3 = HEAP8[(1242628)>>0]|0;
$4 = ($3<<24>>24)==(0);
$or$cond = $2 | $4;
if (!($or$cond)) {
return;
}
$5 = HEAP32[315071]|0;
_Game_SetFov($5);
return;
}
function _KeyBind_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[379728>>2]=HEAP32[3824>>2]|0;HEAP32[379728+4>>2]=HEAP32[3824+4>>2]|0;HEAP32[379728+8>>2]=HEAP32[3824+8>>2]|0;HEAP32[379728+12>>2]=HEAP32[3824+12>>2]|0;HEAP32[379728+16>>2]=HEAP32[3824+16>>2]|0;HEAP32[379728+20>>2]=HEAP32[3824+20>>2]|0;HEAP32[379728+24>>2]=HEAP32[3824+24>>2]|0;HEAP32[379728+28>>2]=HEAP32[3824+28>>2]|0;HEAP16[379728+32>>1]=HEAP16[3824+32>>1]|0;HEAP8[379728+34>>0]=HEAP8[3824+34>>0]|0;
_KeyBind_Load();
return;
}
function _Hotkeys_Init() {
var $$09 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$0 = sp + 56|0;
$1 = sp + 48|0;
$2 = sp + 40|0;
$3 = sp + 32|0;
$4 = sp + 8|0;
$5 = sp + 24|0;
$6 = sp + 16|0;
$7 = sp + 65|0;
$8 = sp + 64|0;
$9 = sp;
$10 = HEAP32[(1281760)>>2]|0;
$11 = ($10|0)>(0);
if (!($11)) {
STACKTOP = sp;return;
}
$12 = ((($5)) + 4|0);
$$09 = 0;
while(1) {
_StringsBuffer_UNSAFE_Get($9,(1281752),$$09);
$13 = $9;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$19 = $4;
$20 = $19;
HEAP32[$20>>2] = $15;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = $18;
$23 = HEAP8[(1281748)>>0]|0;
(_String_UNSAFE_Separate($4,$23,$5,$6)|0);
$24 = (_String_CaselessStarts($5,11692)|0);
$25 = ($24|0)==(0);
if (!($25)) {
$26 = HEAP16[$12>>1]|0;
$27 = $26&65535;
$28 = (($27) + 65529)|0;
$29 = $28&65535;
HEAP16[$12>>1] = $29;
$30 = HEAP32[$5>>2]|0;
$31 = ((($30)) + 7|0);
HEAP32[$5>>2] = $31;
$32 = (_String_UNSAFE_Separate($5,38,$0,$1)|0);
$33 = ($32|0)==(0);
if (!($33)) {
$34 = (_String_UNSAFE_Separate($6,38,$2,$3)|0);
$35 = ($34|0)==(0);
if (!($35)) {
$36 = (_Utils_ParseEnum($0,0,3280,133)|0);
$37 = ($36|0)==(0);
if (!($37)) {
$38 = (_Convert_ParseUInt8($1,$7)|0);
$39 = ($38<<24>>24)==(0);
if (!($39)) {
$40 = (_Convert_ParseBool($2,$8)|0);
$41 = ($40<<24>>24)==(0);
if (!($41)) {
$42 = HEAP8[$7>>0]|0;
$43 = HEAP8[$8>>0]|0;
_Hotkeys_Add($36,$42,$3,$43);
}
}
}
}
}
}
$44 = (($$09) + 1)|0;
$45 = HEAP32[(1281760)>>2]|0;
$46 = ($44|0)<($45|0);
if ($46) {
$$09 = $44;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _KeyBind_Load() {
var $$010 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$0 = sp + 72|0;
$1 = sp;
HEAP32[$0>>2] = $1;
$2 = ((($0)) + 4|0);
HEAP16[$2>>1] = 0;
$3 = ((($0)) + 6|0);
HEAP16[$3>>1] = 64;
$$010 = 0;
while(1) {
HEAP16[$2>>1] = 0;
$4 = (4128 + ($$010<<2)|0);
$5 = HEAP32[$4>>2]|0;
_String_Format1($0,26804,$5);
$6 = HEAP32[$0>>2]|0;
$7 = HEAP16[$2>>1]|0;
$8 = $7&65535;
$9 = (($6) + ($8)|0);
HEAP8[$9>>0] = 0;
$10 = HEAP32[$0>>2]|0;
$11 = (3824 + ($$010)|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = (_Options_GetEnum($10,$13,3280,133)|0);
$15 = ($14|0)==(92);
if (!($15)) {
$16 = (379728 + ($$010)|0);
$17 = $14&255;
HEAP8[$16>>0] = $17;
}
$18 = (($$010) + 1)|0;
$exitcond = ($18|0)==(35);
if ($exitcond) {
break;
} else {
$$010 = $18;
}
}
STACKTOP = sp;return;
}
function _InputHandler_DoFovZoom($0) {
$0 = +$0;
var $$0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0;
var $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_KeyBind_IsPressed(24)|0);
$2 = ($1<<24>>24)==(0);
if ($2) {
$$0 = 0;
return ($$0|0);
}
$3 = HEAP8[(1242626)>>0]|0;
$4 = ($3<<24>>24)==(0);
$5 = HEAP8[(1242628)>>0]|0;
$6 = ($5<<24>>24)==(0);
$or$cond = $4 | $6;
if ($or$cond) {
$$0 = 0;
return ($$0|0);
}
$7 = +HEAPF32[2925];
$8 = $7 == -1.0;
if ($8) {
$9 = HEAP32[315072]|0;
$10 = (+($9|0));
HEAPF32[2925] = $10;
}
$11 = $0 * 5.0;
$12 = +HEAPF32[2925];
$13 = $12 - $11;
$14 = $13 < 1.0;
$15 = $14 ? 1.0 : $13;
$16 = HEAP32[315071]|0;
$17 = (+($16|0));
$18 = $15 > $17;
$19 = $18 ? $17 : $15;
HEAPF32[2925] = $19;
$20 = (~~(($19)));
$21 = (_InputHandler_SetFOV($20)|0);
$$0 = $21;
return ($$0|0);
}
function _InputHandler_IsShutdown($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0|0)==(4);
if ($1) {
$2 = HEAP8[(379624)>>0]|0;
$3 = HEAP8[(379625)>>0]|0;
$4 = $3 | $2;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$$0 = 1;
return ($$0|0);
}
}
$$0 = 0;
return ($$0|0);
}
function _HandleBlockKey($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Gui_GetInputGrab()|0);
$2 = ($1|0)==(0|0);
if (!($2)) {
$$0 = 0;
return ($$0|0);
}
$3 = HEAP8[(379754)>>0]|0;
$4 = $3&255;
$5 = ($4|0)==($0|0);
if ($5) {
_MouseStatePress(0);
_DoDeleteBlock();
$$0 = 1;
return ($$0|0);
}
$6 = HEAP8[(379756)>>0]|0;
$7 = $6&255;
$8 = ($7|0)==($0|0);
if ($8) {
_MouseStatePress(1);
_DoPlaceBlock();
$$0 = 1;
return ($$0|0);
}
$9 = HEAP8[(379755)>>0]|0;
$10 = $9&255;
$11 = ($10|0)==($0|0);
if (!($11)) {
$$0 = 0;
return ($$0|0);
}
_MouseStatePress(2);
_DoPickBlock();
$$0 = 1;
return ($$0|0);
}
function _HandleCoreKey($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond26 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(379746)>>0]|0;
$2 = $1&255;
$3 = ($2|0)==($0|0);
if ($3) {
$4 = HEAP8[1408260]|0;
$5 = ($4<<24>>24)==(0);
$6 = $5&1;
HEAP8[1408260] = $6;
$$0 = 1;
return ($$0|0);
}
$7 = HEAP8[(379748)>>0]|0;
$8 = $7&255;
$9 = ($8|0)==($0|0);
if ($9) {
$10 = (_Window_GetWindowState()|0);
$11 = ($10|0)==(2);
if ($11) {
$12 = (_Window_ExitFullscreen()|0);
$13 = ($12|0)==(0);
if ($13) {
$$0 = 1;
return ($$0|0);
}
_Logger_Warn($12,27117);
$$0 = 1;
return ($$0|0);
} else {
$14 = (_Window_EnterFullscreen()|0);
$15 = ($14|0)==(0);
if ($15) {
$$0 = 1;
return ($$0|0);
}
_Logger_Warn($14,27136);
$$0 = 1;
return ($$0|0);
}
}
$16 = HEAP8[(379737)>>0]|0;
$17 = $16&255;
$18 = ($17|0)==($0|0);
if ($18) {
$19 = HEAP8[1408259]|0;
$20 = ($19<<24>>24)!=(0);
$21 = $20 ? 19092 : 4272;
$22 = $20 ? 4 : 10;
$23 = HEAP8[(379620)>>0]|0;
$24 = HEAP8[(379621)>>0]|0;
$25 = $24 | $23;
$26 = ($25<<24>>24)==(0);
if ($26) {
_CycleViewDistanceForwards($21,$22);
$$0 = 1;
return ($$0|0);
} else {
_CycleViewDistanceBackwards($21,$22);
$$0 = 1;
return ($$0|0);
}
}
$27 = ($0|0)!=(5);
$28 = HEAP8[1408229]|0;
$29 = ($28<<24>>24)==(0);
$or$cond26 = $27 | $29;
if (!($or$cond26)) {
$30 = HEAP32[(1407540)>>2]|0;
$31 = ($30|0)==(0);
$32 = $31&1;
_Env_SetWeather($32);
$$0 = 1;
return ($$0|0);
}
if (!($29)) {
$$0 = 0;
return ($$0|0);
}
$33 = (_HandleNonClassicKey($0)|0);
$$0 = $33;
return ($$0|0);
}
function _HandleHotkeyDown($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = (_Hotkeys_FindPartial($0)|0);
$3 = ($2|0)==(-1);
if ($3) {
STACKTOP = sp;return;
}
$4 = (379776 + ($2<<3)|0);
$5 = HEAP32[$4>>2]|0;
_StringsBuffer_UNSAFE_Get($1,1261336,$5);
$6 = (((379776 + ($2<<3)|0)) + 6|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if ($8) {
_Chat_Send($1,0);
STACKTOP = sp;return;
}
$9 = (_Gui_GetInputGrab()|0);
$10 = ($9|0)==(0|0);
if (!($10)) {
STACKTOP = sp;return;
}
_ChatScreen_OpenInput($1);
STACKTOP = sp;return;
}
function _CycleViewDistanceBackwards($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (($1) + -1)|0;
$3 = ($1|0)>(0);
L1: do {
if ($3) {
$4 = HEAP32[315052]|0;
$$010 = $2;
while(1) {
$7 = (($0) + ($$010<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8 << 16 >> 16;
$10 = ($4|0)>($9|0);
if ($10) {
break;
}
$5 = (($$010) + -1)|0;
$6 = ($$010|0)>(0);
if ($6) {
$$010 = $5;
} else {
break L1;
}
}
$11 = $8 << 16 >> 16;
_Game_UserSetViewDistance($11);
return;
}
} while(0);
$12 = (($0) + ($2<<1)|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13 << 16 >> 16;
_Game_UserSetViewDistance($14);
return;
}
function _CycleViewDistanceForwards($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)>(0);
L1: do {
if ($2) {
$3 = HEAP32[315052]|0;
$$09 = 0;
while(1) {
$6 = (($0) + ($$09<<1)|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7 << 16 >> 16;
$9 = ($3|0)<($8|0);
$4 = (($$09) + 1)|0;
if ($9) {
break;
}
$5 = ($4|0)<($1|0);
if ($5) {
$$09 = $4;
} else {
break L1;
}
}
$10 = $7 << 16 >> 16;
_Game_UserSetViewDistance($10);
return;
}
} while(0);
$11 = HEAP16[$0>>1]|0;
$12 = $11 << 16 >> 16;
_Game_UserSetViewDistance($12);
return;
}
function _HandleNonClassicKey($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(379750)>>0]|0;
$2 = $1&255;
$3 = ($2|0)==($0|0);
if ($3) {
$4 = HEAP8[1408238]|0;
$5 = ($4<<24>>24)==(0);
$6 = $5&1;
HEAP8[1408238] = $6;
$$0 = 1;
return ($$0|0);
}
$7 = HEAP8[(379759)>>0]|0;
$8 = $7&255;
$9 = ($8|0)==($0|0);
if ($9) {
_InputHandler_Toggle($0,(1230544),27153,27184);
$$0 = 1;
return ($$0|0);
}
$10 = HEAP8[(379751)>>0]|0;
$11 = $10&255;
$12 = ($11|0)==($0|0);
if ($12) {
_InputHandler_Toggle($0,1408206,27216,27262);
$$0 = 1;
return ($$0|0);
}
$13 = HEAP8[(379757)>>0]|0;
$14 = $13&255;
$15 = ($14|0)==($0|0);
if ($15) {
_InputHandler_Toggle($0,1408207,27292,27321);
$$0 = 1;
return ($$0|0);
}
$16 = HEAP8[(379749)>>0]|0;
$17 = $16&255;
$18 = ($17|0)==($0|0);
if ($18) {
_Camera_CycleActive();
$$0 = 1;
return ($$0|0);
}
$19 = HEAP8[(379760)>>0]|0;
$20 = $19&255;
$21 = ($20|0)==($0|0);
if ($21) {
$22 = (_Inventory_CheckChangeSelected()|0);
$23 = ($22<<24>>24)==(0);
if ($23) {
$$0 = 1;
return ($$0|0);
}
$24 = HEAP32[(1268184)>>2]|0;
$25 = HEAP32[(1268180)>>2]|0;
$26 = (($25) + ($24))|0;
$27 = (1266480 + ($26<<1)|0);
$28 = HEAP16[$27>>1]|0;
$29 = ($28<<16>>16)==(0);
if ($29) {
$$0 = 1;
return ($$0|0);
}
HEAP16[$27>>1] = 0;
_Event_RaiseVoid((1252896));
$$0 = 1;
return ($$0|0);
}
$30 = HEAP8[(379761)>>0]|0;
$31 = $30&255;
$32 = ($31|0)==($0|0);
if ($32) {
_TexIdsOverlay_Show();
$$0 = 1;
return ($$0|0);
}
$33 = HEAP8[(379762)>>0]|0;
$34 = $33&255;
$35 = ($34|0)==($0|0);
if (!($35)) {
$$0 = 0;
return ($$0|0);
}
_InputHandler_Toggle($0,1408230,27351,27386);
$$0 = 1;
return ($$0|0);
}
function _InputHandler_Toggle($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP8[$1>>0]|0;
$5 = ($4<<24>>24)==(0);
$6 = $5&1;
HEAP8[$1>>0] = $6;
$7 = (3280 + ($0<<2)|0);
$8 = HEAP32[$7>>2]|0;
if ($5) {
_Chat_Add2(27422,$2,$8);
return;
} else {
_Chat_Add2(27453,$3,$8);
return;
}
}
function _Inventory_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_Inventory_Reset();
HEAP16[633240] = 1;
HEAP16[(1266482)>>1] = 4;
HEAP16[(1266484)>>1] = 45;
HEAP16[(1266486)>>1] = 3;
HEAP16[(1266488)>>1] = 5;
HEAP16[(1266490)>>1] = 17;
HEAP16[(1266492)>>1] = 18;
HEAP16[(1266494)>>1] = 2;
HEAP16[(1266496)>>1] = 44;
return;
}
function _Inventory_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
_Inventory_ApplyDefaultMapping();
HEAP8[(1268188)>>0] = 1;
return;
}
function _Inventory_ApplyDefaultMapping() {
var $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$05 = 0;
while(1) {
$0 = (_Inventory_DefaultMapping($$05)|0);
$1 = (1266642 + ($$05<<1)|0);
HEAP16[$1>>1] = $0;
$2 = (($$05) + 1)|0;
$exitcond = ($2|0)==(768);
if ($exitcond) {
break;
} else {
$$05 = $2;
}
}
return;
}
function _Inventory_DefaultMapping($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408229]|0;
$2 = ($1<<24>>24)==(0);
$3 = HEAP8[1408233]|0;
$4 = ($3<<24>>24)!=(0);
$or$cond = $2 | $4;
do {
if ($or$cond) {
if ($2) {
$13 = ($0|0)<(65);
if (!($13)) {
$$0 = 0;
break;
}
$14 = (($0) + 1)|0;
$15 = $14&65535;
$$0 = $15;
break;
} else {
$9 = ($0|0)<(49);
if (!($9)) {
$$0 = 0;
break;
}
$10 = (4352 + ($0)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$$0 = $12;
break;
}
} else {
$5 = ($0|0)<(42);
if ($5) {
$6 = (4304 + ($0)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$$0 = $8;
} else {
$$0 = 0;
}
}
} while(0);
return ($$0|0);
}
function _Inventory_CheckChangeSelected() {
var $$0 = 0, $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1268188)>>0]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
$$0 = 1;
return ($$0|0);
}
_Chat_AddRaw(27486);
$$0 = 0;
return ($$0|0);
}
function _Inventory_SetSelectedIndex($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Inventory_CheckChangeSelected()|0);
$2 = ($1<<24>>24)==(0);
if ($2) {
return;
}
HEAP32[(1268180)>>2] = $0;
_Event_RaiseVoid((1252896));
return;
}
function _Inventory_SetHotbarIndex($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Inventory_CheckChangeSelected()|0);
$2 = ($1<<24>>24)!=(0);
$3 = HEAP8[1408229]|0;
$4 = ($3<<24>>24)==(0);
$or$cond = $2 & $4;
if (!($or$cond)) {
return;
}
$5 = ($0*9)|0;
HEAP32[(1268184)>>2] = $5;
_Event_RaiseVoid((1252896));
return;
}
function _Inventory_SetSelectedBlock($0) {
$0 = $0|0;
var $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Inventory_CheckChangeSelected()|0);
$2 = ($1<<24>>24)==(0);
if ($2) {
return;
}
$4 = HEAP32[(1268184)>>2]|0;
$8 = (1266480 + ($4<<1)|0);
$9 = HEAP16[$8>>1]|0;
$10 = ($9<<16>>16)==($0<<16>>16);
if ($10) {
$$lcssa = $8;
label = 4;
} else {
$3 = (($4) + 1)|0;
$5 = (1266480 + ($3<<1)|0);
$6 = HEAP16[$5>>1]|0;
$7 = ($6<<16>>16)==($0<<16>>16);
if ($7) {
$$lcssa = $5;
label = 4;
} else {
$19 = (($4) + 2)|0;
$20 = (1266480 + ($19<<1)|0);
$21 = HEAP16[$20>>1]|0;
$22 = ($21<<16>>16)==($0<<16>>16);
if ($22) {
$$lcssa = $20;
label = 4;
} else {
$23 = (($4) + 3)|0;
$24 = (1266480 + ($23<<1)|0);
$25 = HEAP16[$24>>1]|0;
$26 = ($25<<16>>16)==($0<<16>>16);
if ($26) {
$$lcssa = $24;
label = 4;
} else {
$27 = (($4) + 4)|0;
$28 = (1266480 + ($27<<1)|0);
$29 = HEAP16[$28>>1]|0;
$30 = ($29<<16>>16)==($0<<16>>16);
if ($30) {
$$lcssa = $28;
label = 4;
} else {
$31 = (($4) + 5)|0;
$32 = (1266480 + ($31<<1)|0);
$33 = HEAP16[$32>>1]|0;
$34 = ($33<<16>>16)==($0<<16>>16);
if ($34) {
$$lcssa = $32;
label = 4;
} else {
$35 = (($4) + 6)|0;
$36 = (1266480 + ($35<<1)|0);
$37 = HEAP16[$36>>1]|0;
$38 = ($37<<16>>16)==($0<<16>>16);
if ($38) {
$$lcssa = $36;
label = 4;
} else {
$39 = (($4) + 7)|0;
$40 = (1266480 + ($39<<1)|0);
$41 = HEAP16[$40>>1]|0;
$42 = ($41<<16>>16)==($0<<16>>16);
if ($42) {
$$lcssa = $40;
label = 4;
} else {
$43 = (($4) + 8)|0;
$44 = (1266480 + ($43<<1)|0);
$45 = HEAP16[$44>>1]|0;
$46 = ($45<<16>>16)==($0<<16>>16);
if ($46) {
$$lcssa = $44;
label = 4;
}
}
}
}
}
}
}
}
}
if ((label|0) == 4) {
$11 = HEAP32[(1268180)>>2]|0;
$12 = (($11) + ($4))|0;
$13 = (1266480 + ($12<<1)|0);
$14 = HEAP16[$13>>1]|0;
HEAP16[$$lcssa>>1] = $14;
}
$15 = HEAP32[(1268184)>>2]|0;
$16 = HEAP32[(1268180)>>2]|0;
$17 = (($16) + ($15))|0;
$18 = (1266480 + ($17<<1)|0);
HEAP16[$18>>1] = $0;
_Event_RaiseVoid((1252896));
return;
}
function _Inventory_PickBlock($0) {
$0 = $0|0;
var $$017$lcssa = 0, $$116$lcssa = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Inventory_CheckChangeSelected()|0);
$2 = ($1<<24>>24)==(0);
if ($2) {
return;
}
$3 = HEAP32[(1268184)>>2]|0;
$4 = HEAP32[(1268180)>>2]|0;
$5 = (($4) + ($3))|0;
$6 = (1266480 + ($5<<1)|0);
$7 = HEAP16[$6>>1]|0;
$8 = ($7<<16>>16)==($0<<16>>16);
if ($8) {
return;
}
$9 = ($7<<16>>16)==(0);
if ($9) {
_Inventory_SetSelectedBlock($0);
return;
}
$10 = (1266480 + ($3<<1)|0);
$11 = HEAP16[$10>>1]|0;
$12 = ($11<<16>>16)==($0<<16>>16);
if ($12) {
$$017$lcssa = 0;
} else {
$13 = (($3) + 1)|0;
$14 = (1266480 + ($13<<1)|0);
$15 = HEAP16[$14>>1]|0;
$16 = ($15<<16>>16)==($0<<16>>16);
if ($16) {
$$017$lcssa = 1;
} else {
$52 = (($3) + 2)|0;
$53 = (1266480 + ($52<<1)|0);
$54 = HEAP16[$53>>1]|0;
$55 = ($54<<16>>16)==($0<<16>>16);
if ($55) {
$$017$lcssa = 2;
} else {
$56 = (($3) + 3)|0;
$57 = (1266480 + ($56<<1)|0);
$58 = HEAP16[$57>>1]|0;
$59 = ($58<<16>>16)==($0<<16>>16);
if ($59) {
$$017$lcssa = 3;
} else {
$60 = (($3) + 4)|0;
$61 = (1266480 + ($60<<1)|0);
$62 = HEAP16[$61>>1]|0;
$63 = ($62<<16>>16)==($0<<16>>16);
if ($63) {
$$017$lcssa = 4;
} else {
$64 = (($3) + 5)|0;
$65 = (1266480 + ($64<<1)|0);
$66 = HEAP16[$65>>1]|0;
$67 = ($66<<16>>16)==($0<<16>>16);
if ($67) {
$$017$lcssa = 5;
} else {
$68 = (($3) + 6)|0;
$69 = (1266480 + ($68<<1)|0);
$70 = HEAP16[$69>>1]|0;
$71 = ($70<<16>>16)==($0<<16>>16);
if ($71) {
$$017$lcssa = 6;
} else {
$72 = (($3) + 7)|0;
$73 = (1266480 + ($72<<1)|0);
$74 = HEAP16[$73>>1]|0;
$75 = ($74<<16>>16)==($0<<16>>16);
if ($75) {
$$017$lcssa = 7;
} else {
$76 = (($3) + 8)|0;
$77 = (1266480 + ($76<<1)|0);
$78 = HEAP16[$77>>1]|0;
$79 = ($78<<16>>16)==($0<<16>>16);
if ($79) {
$$017$lcssa = 8;
} else {
$17 = (1266480 + ($3<<1)|0);
$18 = HEAP16[$17>>1]|0;
$19 = ($18<<16>>16)==(0);
do {
if ($19) {
$$116$lcssa = 0;$$lcssa = $17;
} else {
$20 = (($3) + 1)|0;
$21 = (1266480 + ($20<<1)|0);
$22 = HEAP16[$21>>1]|0;
$23 = ($22<<16>>16)==(0);
if ($23) {
$$116$lcssa = 1;$$lcssa = $21;
} else {
$24 = (($3) + 2)|0;
$25 = (1266480 + ($24<<1)|0);
$26 = HEAP16[$25>>1]|0;
$27 = ($26<<16>>16)==(0);
if ($27) {
$$116$lcssa = 2;$$lcssa = $25;
} else {
$28 = (($3) + 3)|0;
$29 = (1266480 + ($28<<1)|0);
$30 = HEAP16[$29>>1]|0;
$31 = ($30<<16>>16)==(0);
if ($31) {
$$116$lcssa = 3;$$lcssa = $29;
} else {
$32 = (($3) + 4)|0;
$33 = (1266480 + ($32<<1)|0);
$34 = HEAP16[$33>>1]|0;
$35 = ($34<<16>>16)==(0);
if ($35) {
$$116$lcssa = 4;$$lcssa = $33;
} else {
$36 = (($3) + 5)|0;
$37 = (1266480 + ($36<<1)|0);
$38 = HEAP16[$37>>1]|0;
$39 = ($38<<16>>16)==(0);
if ($39) {
$$116$lcssa = 5;$$lcssa = $37;
} else {
$40 = (($3) + 6)|0;
$41 = (1266480 + ($40<<1)|0);
$42 = HEAP16[$41>>1]|0;
$43 = ($42<<16>>16)==(0);
if ($43) {
$$116$lcssa = 6;$$lcssa = $41;
break;
}
$44 = (($3) + 7)|0;
$45 = (1266480 + ($44<<1)|0);
$46 = HEAP16[$45>>1]|0;
$47 = ($46<<16>>16)==(0);
if ($47) {
$$116$lcssa = 7;$$lcssa = $45;
break;
}
$48 = (($3) + 8)|0;
$49 = (1266480 + ($48<<1)|0);
$50 = HEAP16[$49>>1]|0;
$51 = ($50<<16>>16)==(0);
if ($51) {
$$116$lcssa = 8;$$lcssa = $49;
break;
}
_Inventory_SetSelectedBlock($0);
return;
}
}
}
}
}
}
} while(0);
HEAP16[$$lcssa>>1] = $0;
_Inventory_SetSelectedIndex($$116$lcssa);
return;
}
}
}
}
}
}
}
}
}
_Inventory_SetSelectedIndex($$017$lcssa);
return;
}
function _Inventory_AddDefault($0) {
$0 = $0|0;
var $$011 = 0, $$011$sink = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0&65535)>(65);
L1: do {
if ($1) {
$2 = $0&65535;
$3 = (($2) + -1)|0;
$$011$sink = $3;
} else {
$$011 = 0;
while(1) {
$4 = (_Inventory_DefaultMapping($$011)|0);
$5 = ($4<<16>>16)==($0<<16>>16);
if ($5) {
$$011$sink = $$011;
break L1;
}
$6 = (($$011) + 1)|0;
$7 = ($6>>>0)<(65);
if ($7) {
$$011 = $6;
} else {
break;
}
}
return;
}
} while(0);
$8 = (1266642 + ($$011$sink<<1)|0);
HEAP16[$8>>1] = $0;
return;
}
function _Inventory_Remove($0) {
$0 = $0|0;
var $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$06 = 0;
while(1) {
$1 = (1266642 + ($$06<<1)|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==($0<<16>>16);
if ($3) {
HEAP16[$1>>1] = 0;
}
$4 = (($$06) + 1)|0;
$exitcond = ($4|0)==(768);
if ($exitcond) {
break;
} else {
$$06 = $4;
}
}
return;
}
function _IsometricDrawer_BeginBatch($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_IsometricDrawer_InitCache();
HEAP32[317048] = -1;
HEAP32[317049] = $0;
HEAP32[317050] = $0;
HEAP32[317051] = $1;
_Gfx_LoadMatrix(1,1268208);
return;
}
function _IsometricDrawer_InitCache() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0;
$0 = sp + 64|0;
$1 = sp;
$2 = HEAP8[1408273]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
STACKTOP = sp;return;
}
HEAP8[1408273] = 1;
_PackedCol_GetShaded(-1,1268272,1268276,1268280);
_Matrix_RotateY($0,0.78539818525314331);
_Matrix_RotateX($1,-0.52359879016876221);
_Matrix_Mul(1268208,$0,$1);
STACKTOP = sp;return;
}
function _IsometricDrawer_DrawBatch($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $$sroa$0$0$copyload = 0.0, $$sroa$06$0$copyload = 0.0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$48$0$$sroa_idx9 = 0, $$sroa$48$0$copyload = 0.0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$5$0$copyload = 0.0, $$sroa$511$0$$sroa_idx12 = 0, $$sroa$511$0$copyload = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0;
var $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0;
var $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $0&65535;
$5 = (571140 + ($4)|0);
$6 = HEAP8[$5>>0]|0;
$7 = (583428 + ($4)|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(4);
if ($9) {
return;
}
$10 = $1 / 1.4142135381698608;
HEAPF32[317071] = $10;
HEAPF32[317072] = $2;
HEAPF32[317073] = $3;
HEAPF32[317074] = 0.0;
_IsometricDrawer_RotateX();
_IsometricDrawer_RotateY();
$11 = +HEAPF32[317072];
$12 = $11 + -0.5;
HEAPF32[317072] = $12;
$13 = +HEAPF32[317073];
$14 = $13 + -0.5;
HEAPF32[317073] = $14;
$15 = HEAP8[$7>>0]|0;
$16 = ($15<<24>>24)==(5);
if ($16) {
_IsometricDrawer_SpriteXQuad($0,1);
_IsometricDrawer_SpriteZQuad($0,1);
_IsometricDrawer_SpriteZQuad($0,0);
_IsometricDrawer_SpriteXQuad($0,0);
return;
} else {
$17 = (588036 + (($4*12)|0)|0);
;HEAP32[(1241064)>>2]=HEAP32[$17>>2]|0;HEAP32[(1241064)+4>>2]=HEAP32[$17+4>>2]|0;HEAP32[(1241064)+8>>2]=HEAP32[$17+8>>2]|0;
$18 = +HEAPF32[(1241068)>>2];
$19 = 1.0 - $18;
HEAPF32[(1241068)>>2] = $19;
$20 = (597252 + (($4*12)|0)|0);
;HEAP32[(1241076)>>2]=HEAP32[$20>>2]|0;HEAP32[(1241076)+4>>2]=HEAP32[$20+4>>2]|0;HEAP32[(1241076)+8>>2]=HEAP32[$20+8>>2]|0;
$21 = +HEAPF32[(1241080)>>2];
$22 = 1.0 - $21;
HEAPF32[(1241080)>>2] = $22;
$$sroa$06$0$copyload = +HEAPF32[$17>>2];
$$sroa$48$0$$sroa_idx9 = (((588036 + (($4*12)|0)|0)) + 4|0);
$$sroa$48$0$copyload = +HEAPF32[$$sroa$48$0$$sroa_idx9>>2];
$$sroa$511$0$$sroa_idx12 = (((588036 + (($4*12)|0)|0)) + 8|0);
$$sroa$511$0$copyload = +HEAPF32[$$sroa$511$0$$sroa_idx12>>2];
$$sroa$0$0$copyload = +HEAPF32[$20>>2];
$$sroa$4$0$$sroa_idx2 = (((597252 + (($4*12)|0)|0)) + 4|0);
$$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx2>>2];
$$sroa$5$0$$sroa_idx4 = (((597252 + (($4*12)|0)|0)) + 8|0);
$$sroa$5$0$copyload = +HEAPF32[$$sroa$5$0$$sroa_idx4>>2];
$23 = $$sroa$06$0$copyload * 2.0;
$24 = 1.0 - $23;
$25 = $10 * $24;
$26 = $12 + $25;
HEAPF32[(1241088)>>2] = $26;
$27 = $$sroa$0$0$copyload * 2.0;
$28 = 1.0 - $27;
$29 = $10 * $28;
$30 = $12 + $29;
HEAPF32[(1241100)>>2] = $30;
$31 = $$sroa$48$0$copyload * 2.0;
$32 = 1.0 - $31;
$33 = $10 * $32;
$34 = $14 + $33;
HEAPF32[(1241092)>>2] = $34;
$35 = $$sroa$4$0$copyload * 2.0;
$36 = 1.0 - $35;
$37 = $10 * $36;
$38 = $14 + $37;
HEAPF32[(1241104)>>2] = $38;
$39 = $$sroa$511$0$copyload * 2.0;
$40 = 1.0 - $39;
$41 = $10 * $40;
$42 = +HEAPF32[317074];
$43 = $41 + $42;
HEAPF32[(1241096)>>2] = $43;
$44 = $$sroa$5$0$copyload * 2.0;
$45 = 1.0 - $44;
$46 = $10 * $45;
$47 = $46 + $42;
HEAPF32[(1241108)>>2] = $47;
$48 = (585732 + ($4)|0);
$49 = HEAP8[$48>>0]|0;
HEAP8[1241056] = $49;
$50 = (571908 + ($4<<2)|0);
$51 = HEAP32[$50>>2]|0;
HEAP32[(1241060)>>2] = $51;
$52 = ($6<<24>>24)!=(0);
$53 = HEAP32[317068]|0;
$54 = $52 ? -1 : $53;
$55 = (_IsometricDrawer_GetTexLoc($0,1)|0);
_Drawer_XMax(1,$54,$55,1268196);
$56 = HEAP32[317069]|0;
$57 = $52 ? -1 : $56;
$58 = (_IsometricDrawer_GetTexLoc($0,2)|0);
_Drawer_ZMin(1,$57,$58,1268196);
$59 = (_IsometricDrawer_GetTexLoc($0,5)|0);
_Drawer_YMax(1,-1,$59,1268196);
return;
}
}
function _IsometricDrawer_RotateX() {
var $0 = 0.0, $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = +HEAPF32[317073];
$1 = $0 * 0.86602538824081421;
$2 = +HEAPF32[317074];
$3 = $2 * 0.5;
$4 = $1 - $3;
$5 = $0 * 0.5;
$6 = $2 * 0.86602538824081421;
$7 = $5 + $6;
HEAPF32[317074] = $7;
HEAPF32[317073] = $4;
return;
}
function _IsometricDrawer_RotateY() {
var $0 = 0.0, $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = +HEAPF32[317072];
$1 = $0 * 0.70710676908493042;
$2 = +HEAPF32[317074];
$3 = $2 * 0.70710676908493042;
$4 = $1 - $3;
$5 = $1 + $3;
HEAPF32[317074] = $5;
HEAPF32[317072] = $4;
return;
}
function _IsometricDrawer_SpriteXQuad($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$10$0$$sroa_idx33 = 0, $$sroa$10$0$$sroa_idx34 = 0, $$sroa$10$0$$sroa_idx36 = 0, $$sroa$10$0$$sroa_idx39 = 0, $$sroa$12$0 = 0, $$sroa$12$0$$sroa_idx41 = 0, $$sroa$12$0$$sroa_idx42 = 0, $$sroa$12$0$$sroa_idx44 = 0, $$sroa$12$0$$sroa_idx47 = 0, $$sroa$15$0$$sroa_idx49 = 0, $$sroa$15$0$$sroa_idx50 = 0, $$sroa$15$0$$sroa_idx52 = 0, $$sroa$15$0$$sroa_idx55 = 0, $$sroa$17$0$$sroa_idx57 = 0, $$sroa$17$0$$sroa_idx58 = 0, $$sroa$17$0$$sroa_idx60 = 0, $$sroa$17$0$$sroa_idx63 = 0, $$sroa$7$0$$sroa_idx25 = 0, $$sroa$7$0$$sroa_idx26 = 0, $$sroa$7$0$$sroa_idx28 = 0;
var $$sroa$7$0$$sroa_idx31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0;
var $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = $0&65535;
$4 = ($3*6)|0;
$5 = $4 | 1;
$6 = (624900 + ($5<<1)|0);
$7 = HEAP16[$6>>1]|0;
_Atlas1D_TexRec($2,$7,1,1268300);
$8 = HEAP32[317048]|0;
$9 = HEAP32[317075]|0;
$10 = ($8|0)==($9|0);
if (!($10)) {
_IsometricDrawer_Flush();
}
$11 = (585732 + ($3)|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(0);
if ($13) {
$$sroa$12$0 = -1;
} else {
$14 = (571908 + ($3<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = (_PackedCol_Tint(-1,$15)|0);
$$sroa$12$0 = $16;
}
$17 = ($1<<24>>24)!=(0);
$18 = $17 ? 0.0 : 0.5;
HEAPF32[$2>>2] = $18;
$19 = $17 ? 0.49968749284744263 : 0.99937498569488525;
$20 = ((($2)) + 8|0);
HEAPF32[$20>>2] = $19;
$21 = +HEAPF32[317071];
$22 = +HEAPF32[317073];
$23 = $21 + $22;
$24 = $21 * 1.2000000476837158;
$25 = $22 - $24;
$26 = $17 ? 0.0 : 1.2000000476837158;
$27 = $26 * $21;
$28 = +HEAPF32[317074];
$29 = $27 + $28;
$30 = $17 ? -1.2000000476837158 : 0.0;
$31 = $30 * $21;
$32 = $31 + $28;
$33 = HEAP32[317072]|0;
$34 = ((($2)) + 12|0);
$35 = HEAP32[$34>>2]|0;
$36 = HEAP32[317049]|0;
$37 = ((($36)) + 24|0);
HEAP32[317049] = $37;
HEAP32[$36>>2] = $33;
$$sroa$7$0$$sroa_idx31 = ((($36)) + 4|0);
HEAPF32[$$sroa$7$0$$sroa_idx31>>2] = $23;
$$sroa$10$0$$sroa_idx39 = ((($36)) + 8|0);
HEAPF32[$$sroa$10$0$$sroa_idx39>>2] = $29;
$$sroa$12$0$$sroa_idx47 = ((($36)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx47>>2] = $$sroa$12$0;
$$sroa$15$0$$sroa_idx55 = ((($36)) + 16|0);
HEAPF32[$$sroa$15$0$$sroa_idx55>>2] = $19;
$$sroa$17$0$$sroa_idx63 = ((($36)) + 20|0);
HEAP32[$$sroa$17$0$$sroa_idx63>>2] = $35;
$38 = ((($2)) + 4|0);
$39 = HEAP32[$38>>2]|0;
$40 = HEAP32[317049]|0;
$41 = ((($40)) + 24|0);
HEAP32[317049] = $41;
HEAP32[$40>>2] = $33;
$$sroa$7$0$$sroa_idx28 = ((($40)) + 4|0);
HEAPF32[$$sroa$7$0$$sroa_idx28>>2] = $25;
$$sroa$10$0$$sroa_idx36 = ((($40)) + 8|0);
HEAPF32[$$sroa$10$0$$sroa_idx36>>2] = $29;
$$sroa$12$0$$sroa_idx44 = ((($40)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx44>>2] = $$sroa$12$0;
$$sroa$15$0$$sroa_idx52 = ((($40)) + 16|0);
HEAPF32[$$sroa$15$0$$sroa_idx52>>2] = $19;
$$sroa$17$0$$sroa_idx60 = ((($40)) + 20|0);
HEAP32[$$sroa$17$0$$sroa_idx60>>2] = $39;
$42 = HEAP32[$2>>2]|0;
$43 = HEAP32[317049]|0;
$44 = ((($43)) + 24|0);
HEAP32[317049] = $44;
HEAP32[$43>>2] = $33;
$$sroa$7$0$$sroa_idx26 = ((($43)) + 4|0);
HEAPF32[$$sroa$7$0$$sroa_idx26>>2] = $25;
$$sroa$10$0$$sroa_idx34 = ((($43)) + 8|0);
HEAPF32[$$sroa$10$0$$sroa_idx34>>2] = $32;
$$sroa$12$0$$sroa_idx42 = ((($43)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx42>>2] = $$sroa$12$0;
$$sroa$15$0$$sroa_idx50 = ((($43)) + 16|0);
HEAP32[$$sroa$15$0$$sroa_idx50>>2] = $42;
$$sroa$17$0$$sroa_idx58 = ((($43)) + 20|0);
HEAP32[$$sroa$17$0$$sroa_idx58>>2] = $39;
$45 = HEAP32[$34>>2]|0;
$46 = HEAP32[317049]|0;
$47 = ((($46)) + 24|0);
HEAP32[317049] = $47;
HEAP32[$46>>2] = $33;
$$sroa$7$0$$sroa_idx25 = ((($46)) + 4|0);
HEAPF32[$$sroa$7$0$$sroa_idx25>>2] = $23;
$$sroa$10$0$$sroa_idx33 = ((($46)) + 8|0);
HEAPF32[$$sroa$10$0$$sroa_idx33>>2] = $32;
$$sroa$12$0$$sroa_idx41 = ((($46)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx41>>2] = $$sroa$12$0;
$$sroa$15$0$$sroa_idx49 = ((($46)) + 16|0);
HEAP32[$$sroa$15$0$$sroa_idx49>>2] = $42;
$$sroa$17$0$$sroa_idx57 = ((($46)) + 20|0);
HEAP32[$$sroa$17$0$$sroa_idx57>>2] = $45;
STACKTOP = sp;return;
}
function _IsometricDrawer_SpriteZQuad($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$11$0$$sroa_idx33 = 0, $$sroa$11$0$$sroa_idx34 = 0, $$sroa$11$0$$sroa_idx36 = 0, $$sroa$11$0$$sroa_idx39 = 0, $$sroa$12$0 = 0, $$sroa$12$0$$sroa_idx41 = 0, $$sroa$12$0$$sroa_idx42 = 0, $$sroa$12$0$$sroa_idx44 = 0, $$sroa$12$0$$sroa_idx47 = 0, $$sroa$15$0$$sroa_idx49 = 0, $$sroa$15$0$$sroa_idx50 = 0, $$sroa$15$0$$sroa_idx52 = 0, $$sroa$15$0$$sroa_idx55 = 0, $$sroa$17$0$$sroa_idx57 = 0, $$sroa$17$0$$sroa_idx58 = 0, $$sroa$17$0$$sroa_idx60 = 0, $$sroa$17$0$$sroa_idx63 = 0, $$sroa$8$0$$sroa_idx25 = 0, $$sroa$8$0$$sroa_idx26 = 0, $$sroa$8$0$$sroa_idx28 = 0;
var $$sroa$8$0$$sroa_idx31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0;
var $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = $0&65535;
$4 = ($3*6)|0;
$5 = (($4) + 3)|0;
$6 = (624900 + ($5<<1)|0);
$7 = HEAP16[$6>>1]|0;
_Atlas1D_TexRec($2,$7,1,1268300);
$8 = HEAP32[317048]|0;
$9 = HEAP32[317075]|0;
$10 = ($8|0)==($9|0);
if (!($10)) {
_IsometricDrawer_Flush();
}
$11 = (585732 + ($3)|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(0);
if ($13) {
$$sroa$12$0 = -1;
} else {
$14 = (571908 + ($3<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = (_PackedCol_Tint(-1,$15)|0);
$$sroa$12$0 = $16;
}
$17 = ($1<<24>>24)!=(0);
$18 = $17 ? 0.0 : 0.5;
HEAPF32[$2>>2] = $18;
$19 = $17 ? 0.49968749284744263 : 0.99937498569488525;
$20 = ((($2)) + 8|0);
HEAPF32[$20>>2] = $19;
$21 = +HEAPF32[317071];
$22 = $17 ? 0.0 : 1.2000000476837158;
$23 = $22 * $21;
$24 = +HEAPF32[317072];
$25 = $23 + $24;
$26 = $17 ? -1.2000000476837158 : 0.0;
$27 = $26 * $21;
$28 = $27 + $24;
$29 = +HEAPF32[317073];
$30 = $21 + $29;
$31 = $21 * 1.2000000476837158;
$32 = $29 - $31;
$33 = HEAP32[317074]|0;
$34 = ((($2)) + 12|0);
$35 = HEAP32[$34>>2]|0;
$36 = HEAP32[317049]|0;
$37 = ((($36)) + 24|0);
HEAP32[317049] = $37;
HEAPF32[$36>>2] = $25;
$$sroa$8$0$$sroa_idx31 = ((($36)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx31>>2] = $30;
$$sroa$11$0$$sroa_idx39 = ((($36)) + 8|0);
HEAP32[$$sroa$11$0$$sroa_idx39>>2] = $33;
$$sroa$12$0$$sroa_idx47 = ((($36)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx47>>2] = $$sroa$12$0;
$$sroa$15$0$$sroa_idx55 = ((($36)) + 16|0);
HEAPF32[$$sroa$15$0$$sroa_idx55>>2] = $19;
$$sroa$17$0$$sroa_idx63 = ((($36)) + 20|0);
HEAP32[$$sroa$17$0$$sroa_idx63>>2] = $35;
$38 = ((($2)) + 4|0);
$39 = HEAP32[$38>>2]|0;
$40 = HEAP32[317049]|0;
$41 = ((($40)) + 24|0);
HEAP32[317049] = $41;
HEAPF32[$40>>2] = $25;
$$sroa$8$0$$sroa_idx28 = ((($40)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx28>>2] = $32;
$$sroa$11$0$$sroa_idx36 = ((($40)) + 8|0);
HEAP32[$$sroa$11$0$$sroa_idx36>>2] = $33;
$$sroa$12$0$$sroa_idx44 = ((($40)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx44>>2] = $$sroa$12$0;
$$sroa$15$0$$sroa_idx52 = ((($40)) + 16|0);
HEAPF32[$$sroa$15$0$$sroa_idx52>>2] = $19;
$$sroa$17$0$$sroa_idx60 = ((($40)) + 20|0);
HEAP32[$$sroa$17$0$$sroa_idx60>>2] = $39;
$42 = HEAP32[$2>>2]|0;
$43 = HEAP32[317049]|0;
$44 = ((($43)) + 24|0);
HEAP32[317049] = $44;
HEAPF32[$43>>2] = $28;
$$sroa$8$0$$sroa_idx26 = ((($43)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx26>>2] = $32;
$$sroa$11$0$$sroa_idx34 = ((($43)) + 8|0);
HEAP32[$$sroa$11$0$$sroa_idx34>>2] = $33;
$$sroa$12$0$$sroa_idx42 = ((($43)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx42>>2] = $$sroa$12$0;
$$sroa$15$0$$sroa_idx50 = ((($43)) + 16|0);
HEAP32[$$sroa$15$0$$sroa_idx50>>2] = $42;
$$sroa$17$0$$sroa_idx58 = ((($43)) + 20|0);
HEAP32[$$sroa$17$0$$sroa_idx58>>2] = $39;
$45 = HEAP32[$34>>2]|0;
$46 = HEAP32[317049]|0;
$47 = ((($46)) + 24|0);
HEAP32[317049] = $47;
HEAPF32[$46>>2] = $28;
$$sroa$8$0$$sroa_idx25 = ((($46)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx25>>2] = $30;
$$sroa$11$0$$sroa_idx33 = ((($46)) + 8|0);
HEAP32[$$sroa$11$0$$sroa_idx33>>2] = $33;
$$sroa$12$0$$sroa_idx41 = ((($46)) + 12|0);
HEAP32[$$sroa$12$0$$sroa_idx41>>2] = $$sroa$12$0;
$$sroa$15$0$$sroa_idx49 = ((($46)) + 16|0);
HEAP32[$$sroa$15$0$$sroa_idx49>>2] = $42;
$$sroa$17$0$$sroa_idx57 = ((($46)) + 20|0);
HEAP32[$$sroa$17$0$$sroa_idx57>>2] = $45;
STACKTOP = sp;return;
}
function _IsometricDrawer_GetTexLoc($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0&65535;
$3 = ($2*6)|0;
$4 = $1&255;
$5 = (($3) + ($4))|0;
$6 = (624900 + ($5<<1)|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
$9 = HEAP32[(1384652)>>2]|0;
$10 = ($9)?($8 >>> $9):($8);
HEAP32[317075] = $10;
$11 = HEAP32[317048]|0;
$12 = ($11|0)==($10|0);
if ($12) {
return ($7|0);
}
_IsometricDrawer_Flush();
return ($7|0);
}
function _IsometricDrawer_Flush() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[317048]|0;
$1 = ($0|0)==(-1);
if (!($1)) {
$2 = (1384660 + ($0<<2)|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_BindTexture($3);
$4 = HEAP32[317049]|0;
$5 = HEAP32[317050]|0;
$6 = $5;
$7 = (($4) - ($6))|0;
$8 = (($7|0) / 24)&-1;
$9 = HEAP32[317051]|0;
_Gfx_UpdateDynamicVb_IndexedTris($9,$5,$8);
}
$10 = HEAP32[317075]|0;
HEAP32[317048] = $10;
$11 = HEAP32[317050]|0;
HEAP32[317049] = $11;
return;
}
function _IsometricDrawer_EndBatch() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[317049]|0;
$1 = HEAP32[317050]|0;
$2 = ($0|0)==($1|0);
if (!($2)) {
$3 = HEAP32[317075]|0;
HEAP32[317048] = $3;
_IsometricDrawer_Flush();
}
HEAP32[317048] = -1;
_Gfx_LoadIdentityMatrix(1);
return;
}
function _Lighting_Reset() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[317076]|0;
_Mem_Free($0);
HEAP32[317076] = 0;
return;
}
function _Lighting_OnNewMapLoaded() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407464)>>2]|0;
$1 = HEAP32[(1407472)>>2]|0;
$2 = Math_imul($1, $0)|0;
$3 = (_Mem_Alloc($2,2,27548)|0);
HEAP32[317076] = $3;
_Lighting_Refresh();
return;
}
function _Lighting_Refresh() {
var $$04 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407464)>>2]|0;
$1 = HEAP32[(1407472)>>2]|0;
$2 = Math_imul($1, $0)|0;
$3 = ($2|0)>(0);
if (!($3)) {
return;
}
$4 = HEAP32[317076]|0;
$5 = HEAP32[(1407464)>>2]|0;
$6 = HEAP32[(1407472)>>2]|0;
$7 = Math_imul($6, $5)|0;
$$04 = 0;
while(1) {
$8 = (($4) + ($$04<<1)|0);
HEAP16[$8>>1] = 32767;
$9 = (($$04) + 1)|0;
$10 = ($9|0)<($7|0);
if ($10) {
$$04 = $9;
} else {
break;
}
}
return;
}
function _Lighting_IsLit($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_Lighting_GetLightHeight($0,$2)|0);
$4 = ($3|0)<($1|0);
$5 = $4&1;
return ($5|0);
}
function _Lighting_GetLightHeight($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = Math_imul($2, $1)|0;
$4 = (($3) + ($0))|0;
$5 = HEAP32[317076]|0;
$6 = (($5) + ($4<<1)|0);
$7 = HEAP16[$6>>1]|0;
$8 = ($7<<16>>16)==(32767);
if ($8) {
$9 = HEAP32[(1407468)>>2]|0;
$10 = (($9) + -1)|0;
$11 = (_Lighting_CalcHeightAt($0,$10,$1,$4)|0);
$13 = $11;
return ($13|0);
} else {
$12 = $7 << 16 >> 16;
$13 = $12;
return ($13|0);
}
return (0)|0;
}
function _Lighting_CalcHeightAt($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$03643 = 0, $$038 = 0, $$044 = 0, $$13746 = 0, $$147 = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP32[(1407472)>>2]|0;
$5 = Math_imul($4, $1)|0;
$6 = (($5) + ($2))|0;
$7 = HEAP32[(1407464)>>2]|0;
$8 = Math_imul($6, $7)|0;
$9 = (($8) + ($0))|0;
$10 = HEAP32[(1407508)>>2]|0;
$11 = ($10|0)<(256);
$12 = ($1|0)>(-1);
L1: do {
if ($11) {
if ($12) {
$13 = HEAP32[351863]|0;
$14 = HEAP32[(1407488)>>2]|0;
$$03643 = $9;$$044 = $1;
while(1) {
$15 = (($13) + ($$03643)|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = (570372 + ($17)|0);
$19 = HEAP8[$18>>0]|0;
$20 = ($19<<24>>24)==(0);
if (!($20)) {
break;
}
$29 = (($$044) + -1)|0;
$30 = (($$03643) - ($14))|0;
$31 = ($$044|0)>(0);
if ($31) {
$$03643 = $30;$$044 = $29;
} else {
$$038 = -10;$$sink = -10;
break L1;
}
}
$21 = $16&255;
$22 = (582660 + ($21)|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$25 = (5)?($24 >>> 5):($24);
$26 = $25 & 1;
$27 = (($$044) - ($26))|0;
$28 = $27&65535;
$$038 = $27;$$sink = $28;
} else {
$$038 = -10;$$sink = -10;
}
} else {
if ($12) {
$32 = HEAP32[351863]|0;
$33 = HEAP32[(1407456)>>2]|0;
$34 = HEAP32[(1407488)>>2]|0;
$$13746 = $9;$$147 = $1;
while(1) {
$35 = (($32) + ($$13746)|0);
$36 = HEAP8[$35>>0]|0;
$37 = $36&255;
$38 = (($33) + ($$13746)|0);
$39 = HEAP8[$38>>0]|0;
$40 = $39&255;
$41 = $40 << 8;
$42 = $41 | $37;
$43 = (570372 + ($42)|0);
$44 = HEAP8[$43>>0]|0;
$45 = ($44<<24>>24)==(0);
if (!($45)) {
break;
}
$53 = (($$147) + -1)|0;
$54 = (($$13746) - ($34))|0;
$55 = ($$147|0)>(0);
if ($55) {
$$13746 = $54;$$147 = $53;
} else {
$$038 = -10;$$sink = -10;
break L1;
}
}
$46 = (582660 + ($42)|0);
$47 = HEAP8[$46>>0]|0;
$48 = $47&255;
$49 = (5)?($48 >>> 5):($48);
$50 = $49 & 1;
$51 = (($$147) - ($50))|0;
$52 = $51&65535;
$$038 = $51;$$sink = $52;
} else {
$$038 = -10;$$sink = -10;
}
}
} while(0);
$56 = HEAP32[317076]|0;
$57 = (($56) + ($3<<1)|0);
HEAP16[$57>>1] = $$sink;
return ($$038|0);
}
function _Lighting_Col($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_Lighting_GetLightHeight($0,$2)|0);
$4 = ($3|0)<($1|0);
$5 = HEAP32[(1407572)>>2]|0;
$6 = HEAP32[(1407588)>>2]|0;
$7 = $4 ? $5 : $6;
return ($7|0);
}
function _Lighting_Col_XSide($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_Lighting_GetLightHeight($0,$2)|0);
$4 = ($3|0)<($1|0);
$5 = HEAP32[(1407576)>>2]|0;
$6 = HEAP32[(1407592)>>2]|0;
$7 = $4 ? $5 : $6;
return ($7|0);
}
function _Lighting_Col_Sprite_Fast($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[317076]|0;
$4 = HEAP32[(1407464)>>2]|0;
$5 = Math_imul($4, $2)|0;
$6 = (($5) + ($0))|0;
$7 = (($3) + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8 << 16 >> 16;
$10 = ($9|0)<($1|0);
$11 = HEAP32[(1407572)>>2]|0;
$12 = HEAP32[(1407588)>>2]|0;
$13 = $10 ? $11 : $12;
return ($13|0);
}
function _Lighting_Col_YMax_Fast($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[317076]|0;
$4 = HEAP32[(1407464)>>2]|0;
$5 = Math_imul($4, $2)|0;
$6 = (($5) + ($0))|0;
$7 = (($3) + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8 << 16 >> 16;
$10 = ($9|0)<($1|0);
$11 = HEAP32[(1407572)>>2]|0;
$12 = HEAP32[(1407588)>>2]|0;
$13 = $10 ? $11 : $12;
return ($13|0);
}
function _Lighting_Col_YMin_Fast($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[317076]|0;
$4 = HEAP32[(1407464)>>2]|0;
$5 = Math_imul($4, $2)|0;
$6 = (($5) + ($0))|0;
$7 = (($3) + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8 << 16 >> 16;
$10 = ($9|0)<($1|0);
$11 = HEAP32[(1407584)>>2]|0;
$12 = HEAP32[(1407600)>>2]|0;
$13 = $10 ? $11 : $12;
return ($13|0);
}
function _Lighting_Col_XSide_Fast($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[317076]|0;
$4 = HEAP32[(1407464)>>2]|0;
$5 = Math_imul($4, $2)|0;
$6 = (($5) + ($0))|0;
$7 = (($3) + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8 << 16 >> 16;
$10 = ($9|0)<($1|0);
$11 = HEAP32[(1407576)>>2]|0;
$12 = HEAP32[(1407592)>>2]|0;
$13 = $10 ? $11 : $12;
return ($13|0);
}
function _Lighting_Col_ZSide_Fast($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[317076]|0;
$4 = HEAP32[(1407464)>>2]|0;
$5 = Math_imul($4, $2)|0;
$6 = (($5) + ($0))|0;
$7 = (($3) + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8 << 16 >> 16;
$10 = ($9|0)<($1|0);
$11 = HEAP32[(1407580)>>2]|0;
$12 = HEAP32[(1407596)>>2]|0;
$13 = $10 ? $11 : $12;
return ($13|0);
}
function _Lighting_OnBlockChanged($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = HEAP32[(1407464)>>2]|0;
$6 = Math_imul($5, $2)|0;
$7 = (($6) + ($0))|0;
$8 = HEAP32[317076]|0;
$9 = (($8) + ($7<<1)|0);
$10 = HEAP16[$9>>1]|0;
$11 = $10 << 16 >> 16;
$12 = ($10<<16>>16)==(32767);
if ($12) {
return;
}
_Lighting_UpdateLighting($0,$1,$2,$3,$4,$7,$11);
$13 = HEAP32[317076]|0;
$14 = (($13) + ($7<<1)|0);
$15 = HEAP16[$14>>1]|0;
$16 = $15 << 16 >> 16;
$17 = (($16) + 1)|0;
$18 = (($11) + 1)|0;
_Lighting_RefreshAffected($0,$1,$2,$4,$18,$17);
return;
}
function _Lighting_UpdateLighting($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $7 = 0;
var $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = $3&65535;
$8 = (570372 + ($7)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $4&65535;
$11 = (570372 + ($10)|0);
$12 = HEAP8[$11>>0]|0;
$13 = (582660 + ($7)|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = (5)?($15 >>> 5):($15);
$17 = $16 & 1;
$18 = (582660 + ($10)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
$21 = (5)?($20 >>> 5):($20);
$22 = $21 & 1;
$23 = ($9<<24>>24)==($12<<24>>24);
if ($23) {
$24 = ($9<<24>>24)==(0);
$25 = ($17|0)==($22|0);
$or$cond42 = $24 | $25;
if ($or$cond42) {
return;
}
}
$26 = (($1) - ($22))|0;
$27 = ($26|0)<($6|0);
if (!($27)) {
$28 = ($12<<24>>24)==(0);
if ($28) {
(_Lighting_CalcHeightAt($0,$1,$2,$5)|0);
return;
} else {
$29 = $26&65535;
$30 = HEAP32[317076]|0;
$31 = (($30) + ($5<<1)|0);
HEAP16[$31>>1] = $29;
return;
}
}
$32 = ($1|0)==($6|0);
$33 = ($17|0)==(0);
$or$cond = $32 & $33;
if (!($or$cond)) {
return;
}
$34 = HEAP32[(1407468)>>2]|0;
$35 = (($34) + -1)|0;
$36 = ($35|0)==($1|0);
if ($36) {
$40 = 0;
} else {
$37 = (($1) + 1)|0;
$38 = (_World_GetBlock_784($0,$37,$2)|0);
$40 = $38;
}
$39 = $40&65535;
$41 = (570372 + ($39)|0);
$42 = HEAP8[$41>>0]|0;
$43 = ($42<<24>>24)==(0);
if (!($43)) {
return;
}
$44 = ($12<<24>>24)==(0);
if ($44) {
$48 = (($1) + -1)|0;
(_Lighting_CalcHeightAt($0,$48,$2,$5)|0);
return;
} else {
$45 = $26&65535;
$46 = HEAP32[317076]|0;
$47 = (($46) + ($5<<1)|0);
HEAP16[$47>>1] = $45;
return;
}
}
function _Lighting_RefreshAffected($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = (4)?($0 >> 4):($0);
$7 = $0 & 15;
$8 = (4)?($1 >> 4):($1);
$9 = $1 & 15;
$10 = (4)?($2 >> 4):($2);
$11 = $2 & 15;
$12 = ($5|0)<(0);
$13 = (4)?($5 >> 4):($5);
$14 = $12 ? 0 : $13;
$15 = ($4|0)<(0);
$16 = (4)?($4 >> 4):($4);
$17 = $15 ? 0 : $16;
$18 = ($17|0)<($14|0);
$19 = $18 ? $17 : $14;
$20 = ($17|0)>($14|0);
$21 = $20 ? $17 : $14;
_Lighting_ResetColumn($6,$8,$10,$19,$21);
$22 = ($7|0)==(0);
$23 = ($0|0)>(15);
$or$cond = $23 & $22;
if ($or$cond) {
$24 = (($6) + -1)|0;
$25 = (($0) + -1)|0;
_Lighting_ResetNeighbour($25,$1,$2,$3,$24,$8,$10,$19,$21);
}
$26 = ($9|0)==(0);
$27 = ($1|0)>(15);
$or$cond3 = $27 & $26;
if ($or$cond3) {
$28 = (($1) + -1)|0;
$29 = (_World_GetBlock_784($0,$28,$2)|0);
$30 = (_Lighting_Needs($3,$29)|0);
$31 = ($30<<24>>24)==(0);
if (!($31)) {
$32 = (($8) + -1)|0;
_MapRenderer_RefreshChunk($6,$32,$10);
}
}
$33 = ($11|0)==(0);
$34 = ($2|0)>(15);
$or$cond5 = $34 & $33;
if ($or$cond5) {
$35 = (($10) + -1)|0;
$36 = (($2) + -1)|0;
_Lighting_ResetNeighbour($0,$1,$36,$3,$6,$8,$35,$19,$21);
}
$37 = ($7|0)==(15);
if ($37) {
$38 = HEAP32[317092]|0;
$39 = (($38) + -1)|0;
$40 = ($6|0)<($39|0);
if ($40) {
$41 = (($6) + 1)|0;
$42 = (($0) + 1)|0;
_Lighting_ResetNeighbour($42,$1,$2,$3,$41,$8,$10,$19,$21);
}
}
$43 = ($9|0)==(15);
if ($43) {
$44 = HEAP32[317091]|0;
$45 = (($44) + -1)|0;
$46 = ($8|0)<($45|0);
if ($46) {
$47 = (($1) + 1)|0;
$48 = (_World_GetBlock_784($0,$47,$2)|0);
$49 = (_Lighting_Needs($3,$48)|0);
$50 = ($49<<24>>24)==(0);
if (!($50)) {
$51 = (($8) + 1)|0;
_MapRenderer_RefreshChunk($6,$51,$10);
}
}
}
$52 = ($11|0)==(15);
if (!($52)) {
return;
}
$53 = HEAP32[317094]|0;
$54 = (($53) + -1)|0;
$55 = ($10|0)<($54|0);
if (!($55)) {
return;
}
$56 = (($10) + 1)|0;
$57 = (($2) + 1)|0;
_Lighting_ResetNeighbour($0,$1,$57,$3,$6,$8,$56,$19,$21);
return;
}
function _Lighting_ResetColumn($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$012 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ($3|0)==($4|0);
if ($5) {
_MapRenderer_RefreshChunk($0,$1,$2);
return;
}
$6 = ($4|0)<($3|0);
if ($6) {
return;
}
$$012 = $4;
while(1) {
_MapRenderer_RefreshChunk($0,$$012,$2);
$7 = (($$012) + -1)|0;
$8 = ($$012|0)>($3|0);
if ($8) {
$$012 = $7;
} else {
break;
}
}
return;
}
function _Lighting_ResetNeighbour($0,$1,$2,$3,$4,$5,$6,$7,$8) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
$7 = $7|0;
$8 = $8|0;
var $$03334 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$9 = ($7|0)==($8|0);
if ($9) {
$10 = $5 << 4;
$11 = HEAP32[(1407472)>>2]|0;
$12 = Math_imul($11, $1)|0;
$13 = (($12) + ($2))|0;
$14 = HEAP32[(1407464)>>2]|0;
$15 = Math_imul($13, $14)|0;
$16 = (($15) + ($0))|0;
$17 = (_Lighting_NeedsNeighour($3,$16,$10,$1,$1)|0);
$18 = ($17<<24>>24)==(0);
if ($18) {
return;
}
_MapRenderer_RefreshChunk($4,$5,$6);
return;
}
$19 = ($8|0)<($7|0);
if ($19) {
return;
}
$$03334 = $8;
while(1) {
$20 = $$03334 << 4;
$21 = $20 | 15;
$22 = HEAP32[(1407480)>>2]|0;
$23 = ($21|0)>($22|0);
$spec$select = $23 ? $22 : $21;
$24 = HEAP32[(1407472)>>2]|0;
$25 = Math_imul($spec$select, $24)|0;
$26 = (($25) + ($2))|0;
$27 = HEAP32[(1407464)>>2]|0;
$28 = Math_imul($26, $27)|0;
$29 = (($28) + ($0))|0;
$30 = (_Lighting_NeedsNeighour($3,$29,$20,$spec$select,$1)|0);
$31 = ($30<<24>>24)==(0);
if (!($31)) {
_MapRenderer_RefreshChunk($4,$$03334,$6);
}
$32 = (($$03334) + -1)|0;
$33 = ($$03334|0)>($7|0);
if ($33) {
$$03334 = $32;
} else {
break;
}
}
return;
}
function _World_GetBlock_784($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _Lighting_Needs($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0&65535;
$3 = (583428 + ($2)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$10 = 1;
return ($10|0);
}
$6 = $1&65535;
$7 = (583428 + ($6)|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)!=(4);
$phitmp = $9&1;
$10 = $phitmp;
return ($10|0);
}
function _Lighting_NeedsNeighour($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$0 = 0, $$02531 = 0, $$02630 = 0, $$12734 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = HEAP32[(1407508)>>2]|0;
$6 = ($5|0)<(256);
$7 = ($3|0)<($2|0);
if ($6) {
if ($7) {
$$0 = 0;
return ($$0|0);
}
$8 = HEAP32[351863]|0;
$9 = HEAP32[(1407488)>>2]|0;
$$02531 = $3;$$02630 = $1;
while(1) {
$10 = (($8) + ($$02630)|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($$02531|0)==($4|0);
if ($12) {
$13 = $11&255;
$14 = (_Lighting_Needs($0,$13)|0);
$15 = $14&255;
$21 = $15;
} else {
$16 = $11&255;
$17 = (583428 + ($16)|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18<<24>>24)!=(4);
$20 = $19&1;
$21 = $20;
}
$22 = ($21|0)==(0);
if (!($22)) {
$$0 = 1;
label = 16;
break;
}
$23 = (($$02531) + -1)|0;
$24 = (($$02630) - ($9))|0;
$25 = ($$02531|0)>($2|0);
if ($25) {
$$02531 = $23;$$02630 = $24;
} else {
$$0 = 0;
label = 16;
break;
}
}
if ((label|0) == 16) {
return ($$0|0);
}
} else {
if ($7) {
$$0 = 0;
return ($$0|0);
}
$26 = HEAP32[351863]|0;
$27 = HEAP32[(1407456)>>2]|0;
$28 = HEAP32[(1407488)>>2]|0;
$$12734 = $1;$$135 = $3;
while(1) {
$29 = (($26) + ($$12734)|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30&255;
$32 = (($27) + ($$12734)|0);
$33 = HEAP8[$32>>0]|0;
$34 = $33&255;
$35 = $34 << 8;
$36 = $35 | $31;
$37 = ($$135|0)==($4|0);
if ($37) {
$38 = $36&65535;
$39 = (_Lighting_Needs($0,$38)|0);
$40 = $39&255;
$45 = $40;
} else {
$41 = (583428 + ($36)|0);
$42 = HEAP8[$41>>0]|0;
$43 = ($42<<24>>24)!=(4);
$44 = $43&1;
$45 = $44;
}
$46 = ($45|0)==(0);
if (!($46)) {
$$0 = 1;
label = 16;
break;
}
$47 = (($$135) + -1)|0;
$48 = (($$12734) - ($28))|0;
$49 = ($$135|0)>($2|0);
if ($49) {
$$12734 = $48;$$135 = $47;
} else {
$$0 = 0;
label = 16;
break;
}
}
if ((label|0) == 16) {
return ($$0|0);
}
}
return (0)|0;
}
function _Lighting_LightHint($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1296|0;
$2 = sp;
$3 = ($0|0)>(0);
$4 = $3 ? $0 : 0;
$5 = HEAP32[(1407464)>>2]|0;
$6 = (($0) + 18)|0;
$7 = ($5|0)<($6|0);
$8 = $7 ? $5 : $6;
$9 = ($1|0)>(0);
$10 = $9 ? $1 : 0;
$11 = HEAP32[(1407472)>>2]|0;
$12 = (($1) + 18)|0;
$13 = ($11|0)<($12|0);
$14 = $13 ? $11 : $12;
$15 = (($8) - ($4))|0;
$16 = (($14) - ($10))|0;
$17 = (_Lighting_InitialHeightmapCoverage($4,$10,$15,$16,$2)|0);
$18 = (_Lighting_CalculateHeightmapCoverage($4,$10,$15,$16,$17,$2)|0);
$19 = ($18<<24>>24)==(0);
if (!($19)) {
STACKTOP = sp;return;
}
_Lighting_FinishHeightmapCoverage($4,$10,$15,$16);
STACKTOP = sp;return;
}
function _Lighting_InitialHeightmapCoverage($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$0$lcssa = 0, $$03243 = 0, $$03347 = 0, $$03442 = 0, $$03846 = 0, $$048 = 0, $$1$lcssa = 0, $$13641 = 0, $$139$lcssa = 0, $$13940 = 0, $$144 = 0, $$2 = 0, $$237 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond54 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ($3|0)>(0);
if (!($5)) {
$$0$lcssa = 0;
return ($$0$lcssa|0);
}
$6 = ($2|0)>(0);
$7 = HEAP32[317076]|0;
$$03347 = 0;$$03846 = 0;$$048 = 0;
while(1) {
if ($6) {
$8 = HEAP32[(1407464)>>2]|0;
$9 = (($$03347) + ($1))|0;
$10 = Math_imul($8, $9)|0;
$11 = (($10) + ($0))|0;
$$03243 = $11;$$03442 = 0;$$13641 = 0;$$13940 = $$03846;$$144 = $$048;
while(1) {
$12 = (($$03243) + 1)|0;
$13 = (($7) + ($$03243<<1)|0);
$14 = HEAP16[$13>>1]|0;
$15 = (($4) + ($$13940<<2)|0);
HEAP32[$15>>2] = 0;
$16 = ($14<<16>>16)==(32767);
if ($16) {
$17 = (($$144) + 1)|0;
$$2 = $17;$$237 = 0;
} else {
$18 = (($$13940) - ($$13641))|0;
$19 = (($4) + ($18<<2)|0);
$20 = HEAP32[$19>>2]|0;
$21 = (($20) + 1)|0;
HEAP32[$19>>2] = $21;
$22 = (($$13641) + 1)|0;
$$2 = $$144;$$237 = $22;
}
$23 = (($$13940) + 1)|0;
$24 = (($$03442) + 1)|0;
$exitcond = ($24|0)==($2|0);
if ($exitcond) {
break;
} else {
$$03243 = $12;$$03442 = $24;$$13641 = $$237;$$13940 = $23;$$144 = $$2;
}
}
$25 = (($$03846) + ($2))|0;
$$1$lcssa = $$2;$$139$lcssa = $25;
} else {
$$1$lcssa = $$048;$$139$lcssa = $$03846;
}
$26 = (($$03347) + 1)|0;
$exitcond54 = ($26|0)==($3|0);
if ($exitcond54) {
$$0$lcssa = $$1$lcssa;
break;
} else {
$$03347 = $26;$$03846 = $$139$lcssa;$$048 = $$1$lcssa;
}
}
return ($$0$lcssa|0);
}
function _Lighting_CalculateHeightmapCoverage($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0169219 = 0, $$0171208 = 0, $$0173207 = 0, $$0177211 = 0, $$0179210 = 0, $$0183 = 0, $$0191 = 0, $$0192218 = 0, $$0213 = 0, $$1170244 = 0, $$1172 = 0, $$1174 = 0, $$1178236 = 0, $$1180206 = 0, $$1184 = 0, $$1193$lcssa = 0, $$1193209 = 0, $$1238 = 0, $$2175228 = 0, $$2181 = 0;
var $$2187205 = 0, $$2194$lcssa = 0, $$2194204 = 0, $$2229 = 0, $$3 = 0, $$3176 = 0, $$3182235 = 0, $$3188 = 0, $$3195 = 0, $$4196243 = 0, $$4227 = 0, $$5 = 0, $$5197$lcssa = 0, $$5197234 = 0, $$6198$lcssa = 0, $$6198225 = 0, $$6226 = 0, $$7 = 0, $$7199 = 0, $10 = 0;
var $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0;
var $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0;
var $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $exitcond = 0, $exitcond252 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = HEAP32[(1407508)>>2]|0;
$7 = ($6|0)<(256);
$8 = HEAP32[(1407468)>>2]|0;
$9 = (($8) + -1)|0;
$10 = ($8|0)>(0);
if ($7) {
if (!($10)) {
$$0191 = 0;
return ($$0191|0);
}
$11 = ($3|0)>(0);
$12 = ($2|0)>(0);
$$0169219 = $9;$$0192218 = $4;
while(1) {
$13 = ($$0192218|0)<(1);
if ($13) {
$$0191 = 1;
label = 34;
break;
}
$14 = HEAP32[(1407464)>>2]|0;
if ($11) {
$15 = Math_imul($14, $1)|0;
$16 = (($15) + ($0))|0;
$17 = HEAP32[(1407472)>>2]|0;
$18 = Math_imul($17, $$0169219)|0;
$19 = (($18) + ($1))|0;
$20 = Math_imul($19, $14)|0;
$21 = (($20) + ($0))|0;
$$0177211 = $16;$$0179210 = $21;$$0213 = 0;$$1193209 = $$0192218;
while(1) {
if ($12) {
$22 = Math_imul($$0213, $2)|0;
$$0171208 = 0;$$0173207 = $22;$$1180206 = $$0179210;$$2187205 = 0;$$2194204 = $$1193209;
while(1) {
$23 = (($5) + ($$0173207<<2)|0);
$24 = HEAP32[$23>>2]|0;
$25 = (($24) + ($$0171208))|0;
$26 = (($24) + ($$1180206))|0;
$27 = (($24) + ($$0173207))|0;
$28 = ($25|0)<($2|0);
if ($28) {
$29 = HEAP32[351863]|0;
$30 = (($29) + ($26)|0);
$31 = HEAP8[$30>>0]|0;
$32 = $31&255;
$33 = (570372 + ($32)|0);
$34 = HEAP8[$33>>0]|0;
$35 = ($34<<24>>24)==(0);
if ($35) {
$$1172 = $25;$$1174 = $27;$$2181 = $26;$$3188 = 0;$$3195 = $$2194204;
} else {
$36 = (582660 + ($32)|0);
$37 = HEAP8[$36>>0]|0;
$38 = $37&255;
$39 = (5)?($38 >>> 5):($38);
$40 = $39 & 1;
$41 = (($$0169219) - ($40))|0;
$42 = $41&65535;
$43 = HEAP32[317076]|0;
$44 = (($25) + ($$0177211))|0;
$45 = (($43) + ($44<<1)|0);
HEAP16[$45>>1] = $42;
$46 = (($$2194204) + -1)|0;
$47 = (($5) + ($27<<2)|0);
HEAP32[$47>>2] = 0;
$48 = (($24) + ($$2187205))|0;
$49 = (($27) - ($48))|0;
$50 = (($5) + ($49<<2)|0);
$51 = HEAP32[$50>>2]|0;
$52 = (($51) + 1)|0;
$53 = (($25) - ($48))|0;
$54 = (($53) + ($52))|0;
$55 = ($54|0)<($2|0);
if ($55) {
$56 = (($52) + ($49))|0;
$57 = (($5) + ($56<<2)|0);
$58 = HEAP32[$57>>2]|0;
$59 = ($58|0)==(0);
if ($59) {
$$0183 = $52;$64 = 0;
} else {
$60 = (($58) + ($52))|0;
$61 = (($52) + ($49))|0;
$62 = (($5) + ($61<<2)|0);
HEAP32[$62>>2] = 0;
$$0183 = $60;$64 = $58;
}
} else {
$$0183 = $52;$64 = 0;
}
HEAP32[$50>>2] = $$0183;
$63 = (($64) + ($25))|0;
$65 = (($64) + ($27))|0;
$66 = (($64) + ($26))|0;
$$1172 = $63;$$1174 = $65;$$2181 = $66;$$3188 = $$0183;$$3195 = $46;
}
} else {
$$1172 = $25;$$1174 = $27;$$2181 = $26;$$3188 = 0;$$3195 = $$2194204;
}
$67 = (($$1172) + 1)|0;
$68 = (($$2181) + 1)|0;
$69 = (($$1174) + 1)|0;
$70 = ($67|0)<($2|0);
if ($70) {
$$0171208 = $67;$$0173207 = $69;$$1180206 = $68;$$2187205 = $$3188;$$2194204 = $$3195;
} else {
$$2194$lcssa = $$3195;
break;
}
}
} else {
$$2194$lcssa = $$1193209;
}
$71 = HEAP32[(1407464)>>2]|0;
$72 = (($71) + ($$0177211))|0;
$73 = (($71) + ($$0179210))|0;
$74 = (($$0213) + 1)|0;
$exitcond = ($74|0)==($3|0);
if ($exitcond) {
$$1193$lcssa = $$2194$lcssa;
break;
} else {
$$0177211 = $72;$$0179210 = $73;$$0213 = $74;$$1193209 = $$2194$lcssa;
}
}
} else {
$$1193$lcssa = $$0192218;
}
$75 = (($$0169219) + -1)|0;
$76 = ($$0169219|0)>(0);
if ($76) {
$$0169219 = $75;$$0192218 = $$1193$lcssa;
} else {
$$0191 = 0;
label = 34;
break;
}
}
if ((label|0) == 34) {
return ($$0191|0);
}
} else {
if (!($10)) {
$$0191 = 0;
return ($$0191|0);
}
$77 = ($3|0)>(0);
$78 = ($2|0)>(0);
$$1170244 = $9;$$4196243 = $4;
while(1) {
$79 = ($$4196243|0)<(1);
if ($79) {
$$0191 = 1;
label = 34;
break;
}
$80 = HEAP32[(1407464)>>2]|0;
if ($77) {
$81 = Math_imul($80, $1)|0;
$82 = (($81) + ($0))|0;
$83 = HEAP32[(1407472)>>2]|0;
$84 = Math_imul($83, $$1170244)|0;
$85 = (($84) + ($1))|0;
$86 = Math_imul($85, $80)|0;
$87 = (($86) + ($0))|0;
$$1178236 = $82;$$1238 = 0;$$3182235 = $87;$$5197234 = $$4196243;
while(1) {
if ($78) {
$88 = Math_imul($$1238, $2)|0;
$$2175228 = $88;$$2229 = 0;$$4227 = $$3182235;$$6198225 = $$5197234;$$6226 = 0;
while(1) {
$89 = (($5) + ($$2175228<<2)|0);
$90 = HEAP32[$89>>2]|0;
$91 = (($90) + ($$2229))|0;
$92 = (($90) + ($$4227))|0;
$93 = (($90) + ($$2175228))|0;
$94 = ($91|0)<($2|0);
if ($94) {
$95 = HEAP32[351863]|0;
$96 = (($95) + ($92)|0);
$97 = HEAP8[$96>>0]|0;
$98 = $97&255;
$99 = HEAP32[(1407456)>>2]|0;
$100 = (($99) + ($92)|0);
$101 = HEAP8[$100>>0]|0;
$102 = $101&255;
$103 = $102 << 8;
$104 = $103 | $98;
$105 = (570372 + ($104)|0);
$106 = HEAP8[$105>>0]|0;
$107 = ($106<<24>>24)==(0);
if ($107) {
$$3 = $91;$$3176 = $93;$$5 = $92;$$7 = 0;$$7199 = $$6198225;
} else {
$108 = (582660 + ($104)|0);
$109 = HEAP8[$108>>0]|0;
$110 = $109&255;
$111 = (5)?($110 >>> 5):($110);
$112 = $111 & 1;
$113 = (($$1170244) - ($112))|0;
$114 = $113&65535;
$115 = HEAP32[317076]|0;
$116 = (($91) + ($$1178236))|0;
$117 = (($115) + ($116<<1)|0);
HEAP16[$117>>1] = $114;
$118 = (($$6198225) + -1)|0;
$119 = (($5) + ($93<<2)|0);
HEAP32[$119>>2] = 0;
$120 = (($90) + ($$6226))|0;
$121 = (($93) - ($120))|0;
$122 = (($5) + ($121<<2)|0);
$123 = HEAP32[$122>>2]|0;
$124 = (($123) + 1)|0;
$125 = (($91) - ($120))|0;
$126 = (($125) + ($124))|0;
$127 = ($126|0)<($2|0);
if ($127) {
$128 = (($124) + ($121))|0;
$129 = (($5) + ($128<<2)|0);
$130 = HEAP32[$129>>2]|0;
$131 = ($130|0)==(0);
if ($131) {
$$1184 = $124;$136 = 0;
} else {
$132 = (($130) + ($124))|0;
$133 = (($124) + ($121))|0;
$134 = (($5) + ($133<<2)|0);
HEAP32[$134>>2] = 0;
$$1184 = $132;$136 = $130;
}
} else {
$$1184 = $124;$136 = 0;
}
HEAP32[$122>>2] = $$1184;
$135 = (($136) + ($91))|0;
$137 = (($136) + ($93))|0;
$138 = (($136) + ($92))|0;
$$3 = $135;$$3176 = $137;$$5 = $138;$$7 = $$1184;$$7199 = $118;
}
} else {
$$3 = $91;$$3176 = $93;$$5 = $92;$$7 = 0;$$7199 = $$6198225;
}
$139 = (($$3) + 1)|0;
$140 = (($$5) + 1)|0;
$141 = (($$3176) + 1)|0;
$142 = ($139|0)<($2|0);
if ($142) {
$$2175228 = $141;$$2229 = $139;$$4227 = $140;$$6198225 = $$7199;$$6226 = $$7;
} else {
$$6198$lcssa = $$7199;
break;
}
}
} else {
$$6198$lcssa = $$5197234;
}
$143 = HEAP32[(1407464)>>2]|0;
$144 = (($143) + ($$1178236))|0;
$145 = (($143) + ($$3182235))|0;
$146 = (($$1238) + 1)|0;
$exitcond252 = ($146|0)==($3|0);
if ($exitcond252) {
$$5197$lcssa = $$6198$lcssa;
break;
} else {
$$1178236 = $144;$$1238 = $146;$$3182235 = $145;$$5197234 = $$6198$lcssa;
}
}
} else {
$$5197$lcssa = $$4196243;
}
$147 = (($$1170244) + -1)|0;
$148 = ($$1170244|0)>(0);
if ($148) {
$$1170244 = $147;$$4196243 = $$5197$lcssa;
} else {
$$0191 = 0;
label = 34;
break;
}
}
if ((label|0) == 34) {
return ($$0191|0);
}
}
return (0)|0;
}
function _Lighting_FinishHeightmapCoverage($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$02022 = 0, $$02124 = 0, $$023 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond28 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$5 = HEAP32[(1407464)>>2]|0;
$6 = ($2|0)>(0);
$7 = HEAP32[317076]|0;
$$02124 = 0;
while(1) {
if ($6) {
$8 = (($$02124) + ($1))|0;
$9 = Math_imul($5, $8)|0;
$10 = (($9) + ($0))|0;
$$02022 = $10;$$023 = 0;
while(1) {
$11 = (($7) + ($$02022<<1)|0);
$12 = HEAP16[$11>>1]|0;
$13 = ($12<<16>>16)==(32767);
if ($13) {
HEAP16[$11>>1] = -10;
}
$14 = (($$023) + 1)|0;
$15 = (($$02022) + 1)|0;
$exitcond = ($14|0)==($2|0);
if ($exitcond) {
break;
} else {
$$02022 = $15;$$023 = $14;
}
}
}
$16 = (($$02124) + 1)|0;
$exitcond28 = ($16|0)==($3|0);
if ($exitcond28) {
break;
} else {
$$02124 = $16;
}
}
return;
}
function _Logger_DialogWarn($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528|0;
$1 = sp + 512|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 511;
_String_Copy($1,$0);
$5 = HEAP32[$1>>2]|0;
$6 = HEAP16[$3>>1]|0;
$7 = $6&65535;
$8 = (($5) + ($7)|0);
HEAP8[$8>>0] = 0;
$9 = HEAP32[2938]|0;
$10 = HEAP32[$1>>2]|0;
_Window_ShowDialog($9,$10);
STACKTOP = sp;return;
}
function _Logger_SimpleWarn2($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$3 = sp + 256|0;
$4 = sp + 264|0;
$5 = sp;
HEAP32[$3>>2] = $0;
HEAP32[$4>>2] = $5;
$6 = ((($4)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($4)) + 6|0);
HEAP16[$7>>1] = 256;
_String_Format3($4,27590,$3,$1,$2);
$8 = HEAP32[2939]|0;
FUNCTION_TABLE_vi[$8 & 511]($4);
STACKTOP = sp;return;
}
function _Logger_SysWarn($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$3 = sp + 256|0;
$4 = sp + 264|0;
$5 = sp;
HEAP32[$3>>2] = $0;
HEAP32[$4>>2] = $5;
$6 = ((($4)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($4)) + 6|0);
HEAP16[$7>>1] = 256;
_String_Format2($4,27573,$3,$1);
$8 = HEAP32[$3>>2]|0;
_Logger_AppendErrorDesc($4,$8,$2);
$9 = HEAP32[2939]|0;
FUNCTION_TABLE_vi[$9 & 511]($4);
STACKTOP = sp;return;
}
function _Logger_AppendErrorDesc($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$3 = sp + 128|0;
$4 = sp;
HEAP32[$3>>2] = $4;
$5 = ((($3)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($3)) + 6|0);
HEAP16[$6>>1] = 128;
$7 = (_Logger_GetCCErrorDesc($1)|0);
$8 = ($7|0)==(0|0);
if (!($8)) {
_String_Format1($0,27612,$7);
STACKTOP = sp;return;
}
$9 = (FUNCTION_TABLE_iii[$2 & 127]($1,$3)|0);
$10 = ($9<<24>>24)==(0);
if ($10) {
STACKTOP = sp;return;
}
_String_Format1($0,27633,$3);
STACKTOP = sp;return;
}
function _Logger_GetCCErrorDesc($0) {
$0 = $0|0;
var $$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
do {
switch ($0|0) {
case -857812991: {
$$0 = 28271;
break;
}
case -857812990: {
$$0 = 28247;
break;
}
case -857812989: {
$$0 = 28230;
break;
}
case -857812988: {
$$0 = 36269;
break;
}
case -857812987: {
$$0 = 28208;
break;
}
case -857812986: {
$$0 = 28181;
break;
}
case -857812985: {
$$0 = 28162;
break;
}
case -857812984: {
$$0 = 28145;
break;
}
case -857812983: {
$$0 = 28116;
break;
}
case -857812982: {
$$0 = 28100;
break;
}
case -857812962: {
$$0 = 28078;
break;
}
case -857812961: {
$$0 = 28054;
break;
}
case -857812960: {
$$0 = 28035;
break;
}
case -857812959: {
$$0 = 28016;
break;
}
case -857812958: {
$$0 = 27990;
break;
}
case -857812957: {
$$0 = 27963;
break;
}
case -857812956: {
$$0 = 27941;
break;
}
case -857812955: {
$$0 = 27913;
break;
}
case -857812954: {
$$0 = 27884;
break;
}
case -857812953: {
$$0 = 27845;
break;
}
case -857812952: {
$$0 = 27809;
break;
}
case -857812951: {
$$0 = 27788;
break;
}
case -857812950: {
$$0 = 27772;
break;
}
case -857812949: {
$$0 = 27746;
break;
}
case -857812917: {
$$0 = 27716;
break;
}
case -857812916: {
$$0 = 27695;
break;
}
case -857812915: {
$$0 = 27674;
break;
}
case -857812914: {
$$0 = 27654;
break;
}
default: {
$$0 = 0;
}
}
} while(0);
return ($$0|0);
}
function _Logger_SysWarn2($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$4 = sp + 256|0;
$5 = sp + 264|0;
$6 = sp;
HEAP32[$4>>2] = $0;
HEAP32[$5>>2] = $6;
$7 = ((($5)) + 4|0);
HEAP16[$7>>1] = 0;
$8 = ((($5)) + 6|0);
HEAP16[$8>>1] = 256;
_String_Format3($5,27590,$4,$1,$2);
$9 = HEAP32[$4>>2]|0;
_Logger_AppendErrorDesc($5,$9,$3);
$10 = HEAP32[2939]|0;
FUNCTION_TABLE_vi[$10 & 511]($5);
STACKTOP = sp;return;
}
function _Logger_Warn($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Logger_SysWarn($0,$1,51);
return;
}
function _Logger_Warn2($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Logger_SysWarn2($0,$1,$2,51);
return;
}
function _Logger_Hook() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Logger_Abort2($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Logger_AbortCommon($0,$1);
return;
}
function _Logger_AbortCommon($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 3088|0;
$2 = sp + 3072|0;
$3 = sp + 3080|0;
$4 = sp;
HEAP32[$2>>2] = $0;
HEAP32[$3>>2] = $4;
$5 = ((($3)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($3)) + 6|0);
HEAP16[$6>>1] = 3070;
_String_Format1($3,28285,$1);
$7 = HEAP32[$2>>2]|0;
$8 = ($7|0)==(0);
if ($8) {
HEAP32[$2>>2] = 1;
} else {
_String_Format1($3,28317,$2);
}
_Logger_LogCrashHeader();
_String_AppendConst($3,28321);
_String_AppendConst($3,28382);
$9 = HEAP32[(1268340)>>2]|0;
$10 = ($9|0)==(0);
if (!($10)) {
$11 = HEAP32[(1268336)>>2]|0;
(FUNCTION_TABLE_ii[$11 & 31](1268308)|0);
}
$12 = HEAP32[$3>>2]|0;
$13 = HEAP16[$5>>1]|0;
$14 = $13&65535;
$15 = (($12) + ($14)|0);
HEAP8[$15>>0] = 0;
$16 = HEAP32[$3>>2]|0;
_Window_ShowDialog(28452,$16);
$17 = HEAP32[$2>>2]|0;
_Process_Exit($17);
// unreachable;
}
function _Logger_LogCrashHeader() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$0 = sp + 128|0;
$1 = sp;
$2 = sp + 96|0;
HEAP32[$0>>2] = $1;
$3 = ((($0)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($0)) + 6|0);
HEAP16[$4>>1] = 96;
_String_AppendConst($0,28464);
HEAP16[$3>>1] = 0;
_DateTime_CurrentLocal($2);
$5 = ((($2)) + 8|0);
$6 = ((($2)) + 4|0);
_String_Format3($0,28507,$5,$6,$2);
$7 = ((($2)) + 12|0);
$8 = ((($2)) + 16|0);
$9 = ((($2)) + 20|0);
_String_Format3($0,28532,$7,$8,$9);
STACKTOP = sp;return;
}
function _Logger_Log($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Logger_Abort($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Logger_Abort2(0,$0);
return;
}
function _MapRenderer_Init() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
_Event_Register(1250296,0,303);
_Event_Register((1254456),0,70);
_Event_Register((1253416),0,304);
_Event_Register(1251076,0,305);
_Event_Register((1251596),0,305);
_Event_Register((1251856),0,306);
_Event_Register((1252116),0,307);
HEAP32[317093] = 87;
_IVec3_MaxValue_861($0);
;HEAP32[1268424>>2]=HEAP32[$0>>2]|0;HEAP32[1268424+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[1268424+8>>2]=HEAP32[$0+8>>2]|0;
$1 = (_Options_GetInt(28620,4,1024,30)|0);
HEAP32[317112] = $1;
_MapRenderer_CalcViewDists();
STACKTOP = sp;return;
}
function _MapRenderer_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister(1250296,0,303);
_Event_Unregister((1254456),0,70);
_Event_Unregister((1253416),0,304);
_Event_Unregister(1251076,0,305);
_Event_Unregister((1251596),0,305);
_Event_Unregister((1251856),0,306);
_Event_Unregister((1252116),0,307);
_MapRenderer_OnNewMap();
return;
}
function _MapRenderer_OnNewMap() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
HEAP32[(535488)>>2] = 0;
_MapRenderer_DeleteChunks();
_MapRenderer_ResetPartCounts();
_IVec3_MaxValue_861($0);
;HEAP32[1268424>>2]=HEAP32[$0>>2]|0;HEAP32[1268424+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[1268424+8>>2]=HEAP32[$0+8>>2]|0;
_MapRenderer_FreeChunks();
_MapRenderer_FreeParts();
STACKTOP = sp;return;
}
function _MapRenderer_OnNewMapLoaded() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
$1 = HEAP32[(1407464)>>2]|0;
$2 = (($1) + 15)|0;
$3 = (4)?($2 >> 4):($2);
HEAP32[317092] = $3;
$4 = HEAP32[(1407468)>>2]|0;
$5 = (($4) + 15)|0;
$6 = (4)?($5 >> 4):($5);
HEAP32[317091] = $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = (($7) + 15)|0;
$9 = (4)?($8 >> 4):($8);
HEAP32[317094] = $9;
$10 = Math_imul($6, $3)|0;
$11 = Math_imul($10, $9)|0;
HEAP32[317095] = $11;
_MapRenderer_FreeChunks();
_MapRenderer_FreeParts();
_MapRenderer_AllocateChunks();
_MapRenderer_AllocateParts();
_MapRenderer_InitChunks();
_Vec3_BigPos_850($0);
;HEAP32[1268384>>2]=HEAP32[$0>>2]|0;HEAP32[1268384+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[1268384+8>>2]=HEAP32[$0+8>>2]|0;
STACKTOP = sp;return;
}
function _MapRenderer_FreeChunks() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[317099]|0;
_Mem_Free($0);
$1 = HEAP32[317100]|0;
_Mem_Free($1);
$2 = HEAP32[317101]|0;
_Mem_Free($2);
$3 = HEAP32[317102]|0;
_Mem_Free($3);
HEAP32[317099] = 0;
HEAP32[317100] = 0;
HEAP32[317101] = 0;
HEAP32[317102] = 0;
return;
}
function _MapRenderer_FreeParts() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[317103]|0;
_Mem_Free($0);
HEAP32[317103] = 0;
HEAP32[317104] = 0;
HEAP32[317105] = 0;
return;
}
function _MapRenderer_AllocateChunks() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[317095]|0;
$1 = (_Mem_Alloc($0,20,28557)|0);
HEAP32[317099] = $1;
$2 = HEAP32[317095]|0;
$3 = (_Mem_Alloc($2,4,28568)|0);
HEAP32[317100] = $3;
$4 = HEAP32[317095]|0;
$5 = (_Mem_Alloc($4,4,28586)|0);
HEAP32[317101] = $5;
$6 = HEAP32[317095]|0;
$7 = (_Mem_Alloc($6,4,28604)|0);
HEAP32[317102] = $7;
return;
}
function _MapRenderer_AllocateParts() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[317095]|0;
$1 = HEAP32[317093]|0;
$2 = Math_imul($1, $0)|0;
$3 = $2 << 1;
$4 = (_Mem_AllocCleared($3,20,28545)|0);
HEAP32[317103] = $4;
HEAP32[317104] = $4;
$5 = (($4) + (($2*20)|0)|0);
HEAP32[317105] = $5;
return;
}
function _MapRenderer_InitChunks() {
var $$02334 = 0, $$02428 = 0, $$02526 = 0, $$035 = 0, $$1$lcssa = 0, $$129 = 0, $$2$lcssa = 0, $$227 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407472)>>2]|0;
$1 = ($0|0)>(0);
if (!($1)) {
return;
}
$$02334 = 0;$$035 = 0;
while(1) {
$2 = HEAP32[(1407468)>>2]|0;
$3 = ($2|0)>(0);
if ($3) {
$$02428 = 0;$$129 = $$035;
while(1) {
$4 = HEAP32[(1407464)>>2]|0;
$5 = ($4|0)>(0);
if ($5) {
$$02526 = 0;$$227 = $$129;
while(1) {
$6 = HEAP32[317099]|0;
$7 = (($6) + (($$227*20)|0)|0);
_ChunkInfo_Reset($7,$$02526,$$02428,$$02334);
$8 = HEAP32[317099]|0;
$9 = (($8) + (($$227*20)|0)|0);
$10 = HEAP32[317100]|0;
$11 = (($10) + ($$227<<2)|0);
HEAP32[$11>>2] = $9;
$12 = HEAP32[317101]|0;
$13 = (($12) + ($$227<<2)|0);
HEAP32[$13>>2] = $9;
$14 = HEAP32[317102]|0;
$15 = (($14) + ($$227<<2)|0);
HEAP32[$15>>2] = 0;
$16 = (($$227) + 1)|0;
$17 = (($$02526) + 16)|0;
$18 = HEAP32[(1407464)>>2]|0;
$19 = ($17|0)<($18|0);
if ($19) {
$$02526 = $17;$$227 = $16;
} else {
$$2$lcssa = $16;
break;
}
}
} else {
$$2$lcssa = $$129;
}
$20 = (($$02428) + 16)|0;
$21 = HEAP32[(1407468)>>2]|0;
$22 = ($20|0)<($21|0);
if ($22) {
$$02428 = $20;$$129 = $$2$lcssa;
} else {
$$1$lcssa = $$2$lcssa;
break;
}
}
} else {
$$1$lcssa = $$035;
}
$23 = (($$02334) + 16)|0;
$24 = HEAP32[(1407472)>>2]|0;
$25 = ($23|0)<($24|0);
if ($25) {
$$02334 = $23;$$035 = $$1$lcssa;
} else {
break;
}
}
return;
}
function _Vec3_BigPos_850($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[$0>>2]=HEAP32[11784>>2]|0;HEAP32[$0+4>>2]=HEAP32[11784+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[11784+8>>2]|0;
return;
}
function _ChunkInfo_Reset($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (($1) + 8)|0;
$5 = $4&65535;
HEAP16[$0>>1] = $5;
$6 = (($2) + 8)|0;
$7 = $6&65535;
$8 = ((($0)) + 2|0);
HEAP16[$8>>1] = $7;
$9 = (($3) + 8)|0;
$10 = $9&65535;
$11 = ((($0)) + 4|0);
HEAP16[$11>>1] = $10;
$12 = ((($0)) + 8|0);
HEAP32[$12>>2] = 0;
$13 = ((($0)) + 6|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14 & -16;
$16 = $15 | 1;
HEAP8[$13>>0] = $16;
$17 = ((($0)) + 7|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18 & -64;
HEAP8[$17>>0] = $19;
$20 = ((($0)) + 12|0);
HEAP32[$20>>2] = 0;
$21 = ((($0)) + 16|0);
HEAP32[$21>>2] = 0;
return;
}
function _MapRenderer_DeleteChunks() {
var $$04 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[317099]|0;
$1 = ($0|0)==(0|0);
if ($1) {
return;
}
$2 = HEAP32[317095]|0;
$3 = ($2|0)>(0);
if ($3) {
$$04 = 0;
while(1) {
$4 = HEAP32[317099]|0;
$5 = (($4) + (($$04*20)|0)|0);
_MapRenderer_DeleteChunk($5);
$6 = (($$04) + 1)|0;
$7 = HEAP32[317095]|0;
$8 = ($6|0)<($7|0);
if ($8) {
$$04 = $6;
} else {
break;
}
}
}
_MapRenderer_ResetPartCounts();
return;
}
function _MapRenderer_ResetPartCounts() {
var label = 0, sp = 0;
sp = STACKTOP;
_memset((382592|0),0,2048)|0;
_memset((384640|0),0,2048)|0;
return;
}
function _IVec3_MaxValue_861($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[$0>>2]=HEAP32[11796>>2]|0;HEAP32[$0+4>>2]=HEAP32[11796+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[11796+8>>2]|0;
return;
}
function _MapRenderer_DeleteChunk($0) {
$0 = $0|0;
var $$02125 = 0, $$026 = 0, $$12223 = 0, $$124 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
_Gfx_DeleteVb($1);
$2 = ((($0)) + 6|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3 & -11;
HEAP8[$2>>0] = $4;
$5 = ((($0)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0|0);
if (!($7)) {
$8 = HEAP32[317093]|0;
$9 = ($8|0)>(0);
if ($9) {
$10 = HEAP32[317095]|0;
$11 = HEAP32[317093]|0;
$$02125 = $6;$$026 = 0;
while(1) {
$12 = HEAP32[$$02125>>2]|0;
$13 = ($12|0)<(0);
$14 = (382592 + ($$026<<2)|0);
if (!($13)) {
$15 = HEAP32[$14>>2]|0;
$16 = (($15) + -1)|0;
HEAP32[$14>>2] = $16;
}
$17 = (($$026) + 1)|0;
$18 = (($$02125) + (($10*20)|0)|0);
$19 = ($17|0)<($11|0);
if ($19) {
$$02125 = $18;$$026 = $17;
} else {
break;
}
}
}
HEAP32[$5>>2] = 0;
}
$20 = ((($0)) + 16|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)==(0|0);
if ($22) {
return;
}
$23 = HEAP32[317093]|0;
$24 = ($23|0)>(0);
if ($24) {
$25 = HEAP32[317095]|0;
$26 = HEAP32[317093]|0;
$$12223 = $21;$$124 = 0;
while(1) {
$27 = HEAP32[$$12223>>2]|0;
$28 = ($27|0)<(0);
$29 = (384640 + ($$124<<2)|0);
if (!($28)) {
$30 = HEAP32[$29>>2]|0;
$31 = (($30) + -1)|0;
HEAP32[$29>>2] = $31;
}
$32 = (($$124) + 1)|0;
$33 = (($$12223) + (($25*20)|0)|0);
$34 = ($32|0)<($26|0);
if ($34) {
$$12223 = $33;$$124 = $32;
} else {
break;
}
}
}
HEAP32[$20>>2] = 0;
return;
}
function _MapRenderer_TerrainAtlasChanged($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[317093]|0;
$2 = ($1|0)==(0);
if (!($2)) {
$3 = HEAP32[317111]|0;
$4 = HEAP32[(1384644)>>2]|0;
$5 = ($3|0)==($4|0);
if (!($5)) {
_MapRenderer_Refresh();
}
}
$6 = (_MapRenderer_UsedAtlases()|0);
HEAP32[317093] = $6;
$7 = HEAP32[(1384644)>>2]|0;
HEAP32[317111] = $7;
_MapRenderer_ResetPartFlags();
return;
}
function _MapRenderer_EnvVariableChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (($1) + -15)|0;
$3 = ($2>>>0)<(2);
if ($3) {
_MapRenderer_Refresh();
return;
}
$4 = $1 | 1;
$5 = ($4|0)==(3);
if (!($5)) {
return;
}
$6 = HEAP32[307603]|0;
$7 = HEAP32[(1407516)>>2]|0;
$8 = HEAP32[(1407520)>>2]|0;
$9 = (($8) + ($7))|0;
$10 = ($9|0)>(0);
$spec$select = $10 ? $9 : 0;
HEAP32[307602] = $spec$select;
$11 = ($7|0)>(0);
$12 = $11 ? $7 : 0;
HEAP32[307603] = $12;
$13 = ($6|0)>($12|0);
$14 = $13 ? $6 : $12;
_MapRenderer_RefreshBorders($14);
return;
}
function _MapRenderer_BlockDefinitionChanged($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_MapRenderer_Refresh();
$1 = (_MapRenderer_UsedAtlases()|0);
HEAP32[317093] = $1;
_MapRenderer_ResetPartFlags();
return;
}
function _MapRenderer_RecalcVisibility($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Vec3_BigPos_850($1);
;HEAP32[1268384>>2]=HEAP32[$1>>2]|0;HEAP32[1268384+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[1268384+8>>2]=HEAP32[$1+8>>2]|0;
_MapRenderer_CalcViewDists();
STACKTOP = sp;return;
}
function _MapRenderer_DeleteChunks_($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_MapRenderer_DeleteChunks();
return;
}
function _MapRenderer_Refresh_($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_MapRenderer_Refresh();
return;
}
function _MapRenderer_Refresh() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
_IVec3_MaxValue_861($0);
;HEAP32[1268424>>2]=HEAP32[$0>>2]|0;HEAP32[1268424+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[1268424+8>>2]=HEAP32[$0+8>>2]|0;
$1 = HEAP32[317099]|0;
$2 = ($1|0)!=(0|0);
$3 = HEAP32[351863]|0;
$4 = ($3|0)!=(0|0);
$or$cond = $2 & $4;
if ($or$cond) {
_MapRenderer_DeleteChunks();
_MapRenderer_ResetChunks();
$5 = HEAP32[317093]|0;
$6 = (_MapRenderer_UsedAtlases()|0);
HEAP32[317093] = $6;
$7 = ($6|0)==($5|0);
if (!($7)) {
_MapRenderer_FreeParts();
_MapRenderer_AllocateParts();
}
}
_MapRenderer_ResetPartCounts();
STACKTOP = sp;return;
}
function _MapRenderer_ResetChunks() {
var $$01829 = 0, $$01923 = 0, $$02021 = 0, $$030 = 0, $$1$lcssa = 0, $$124 = 0, $$2$lcssa = 0, $$222 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1407472)>>2]|0;
$1 = ($0|0)>(0);
if (!($1)) {
return;
}
$$01829 = 0;$$030 = 0;
while(1) {
$2 = HEAP32[(1407468)>>2]|0;
$3 = ($2|0)>(0);
if ($3) {
$$01923 = 0;$$124 = $$030;
while(1) {
$4 = HEAP32[(1407464)>>2]|0;
$5 = ($4|0)>(0);
if ($5) {
$$02021 = 0;$$222 = $$124;
while(1) {
$6 = HEAP32[317099]|0;
$7 = (($6) + (($$222*20)|0)|0);
_ChunkInfo_Reset($7,$$02021,$$01923,$$01829);
$8 = (($$222) + 1)|0;
$9 = (($$02021) + 16)|0;
$10 = HEAP32[(1407464)>>2]|0;
$11 = ($9|0)<($10|0);
if ($11) {
$$02021 = $9;$$222 = $8;
} else {
$$2$lcssa = $8;
break;
}
}
} else {
$$2$lcssa = $$124;
}
$12 = (($$01923) + 16)|0;
$13 = HEAP32[(1407468)>>2]|0;
$14 = ($12|0)<($13|0);
if ($14) {
$$01923 = $12;$$124 = $$2$lcssa;
} else {
$$1$lcssa = $$2$lcssa;
break;
}
}
} else {
$$1$lcssa = $$030;
}
$15 = (($$01829) + 16)|0;
$16 = HEAP32[(1407472)>>2]|0;
$17 = ($15|0)<($16|0);
if ($17) {
$$01829 = $15;$$030 = $$1$lcssa;
} else {
break;
}
}
return;
}
function _MapRenderer_UsedAtlases() {
var $$ = 0, $$010 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$010 = 0;$3 = 0;
while(1) {
$0 = (624900 + ($$010<<1)|0);
$1 = HEAP16[$0>>1]|0;
$2 = $1&65535;
$4 = ($3>>>0)>($2>>>0);
$$ = $4 ? $3 : $2;
$5 = (($$010) + 1)|0;
$6 = $$ & 65535;
$exitcond = ($5|0)==(4608);
if ($exitcond) {
break;
} else {
$$010 = $5;$3 = $6;
}
}
$7 = HEAP32[(1384652)>>2]|0;
$8 = ($7)?($6 >>> $7):($6);
$9 = (($8) + 1)|0;
return ($9|0);
}
function _MapRenderer_CalcViewDists() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315052]|0;
$1 = (_MapRenderer_AdjustDist($0)|0);
HEAP32[317109] = $1;
$2 = HEAP32[315051]|0;
$3 = (_MapRenderer_AdjustDist($2)|0);
HEAP32[317110] = $3;
return;
}
function _MapRenderer_AdjustDist($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0|0)>(16);
$spec$store$select = $1 ? $0 : 16;
$2 = (+($spec$store$select|0));
$3 = $2 * 1.4142135381698608;
$4 = (~~(($3)));
$5 = (($4) + 24)|0;
$6 = Math_imul($5, $5)|0;
return ($6|0);
}
function _MapRenderer_ResetPartFlags() {
var label = 0, sp = 0;
sp = STACKTOP;
_memset((386688|0),1,512)|0;
_memset((387200|0),0,512)|0;
_memset((387712|0),1,512)|0;
_memset((388224|0),0,512)|0;
return;
}
function _MapRenderer_RefreshBorders($0) {
$0 = $0|0;
var $$02435 = 0, $$02531 = 0, $$030 = 0, $$old = 0, $$old28 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond27 = 0, $or$cond29 = 0, $or$cond3 = 0, $or$cond40 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_IVec3_MaxValue_861($1);
;HEAP32[1268424>>2]=HEAP32[$1>>2]|0;HEAP32[1268424+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[1268424+8>>2]=HEAP32[$1+8>>2]|0;
$2 = HEAP32[317099]|0;
$3 = ($2|0)!=(0|0);
$4 = HEAP32[351863]|0;
$5 = ($4|0)!=(0|0);
$or$cond = $3 & $5;
$6 = HEAP32[317094]|0;
$7 = ($6|0)>(0);
$or$cond40 = $or$cond & $7;
if (!($or$cond40)) {
STACKTOP = sp;return;
}
$$02435 = 0;
while(1) {
$8 = HEAP32[317091]|0;
$9 = ($8|0)>(0);
if ($9) {
$10 = ($$02435|0)==(0);
$$02531 = 0;
while(1) {
$11 = HEAP32[317092]|0;
$12 = ($11|0)>(0);
if ($12) {
$$old = $$02531 << 4;
$$old28 = ($$old|0)<($0|0);
$13 = $$02531 << 4;
$14 = ($13|0)<($0|0);
$$030 = 0;$17 = $11;
while(1) {
$15 = ($$030|0)==(0);
$or$cond3 = $10 | $15;
$16 = (($17) + -1)|0;
$18 = ($$030|0)==($16|0);
$or$cond27 = $or$cond3 | $18;
if ($or$cond27) {
if ($$old28) {
label = 10;
}
} else {
$19 = HEAP32[317094]|0;
$20 = (($19) + -1)|0;
$21 = ($$02435|0)==($20|0);
$or$cond29 = $14 & $21;
if ($or$cond29) {
label = 10;
}
}
if ((label|0) == 10) {
label = 0;
_MapRenderer_RefreshChunk($$030,$$02531,$$02435);
}
$22 = (($$030) + 1)|0;
$23 = HEAP32[317092]|0;
$24 = ($22|0)<($23|0);
if ($24) {
$$030 = $22;$17 = $23;
} else {
break;
}
}
}
$25 = (($$02531) + 1)|0;
$26 = HEAP32[317091]|0;
$27 = ($25|0)<($26|0);
if ($27) {
$$02531 = $25;
} else {
break;
}
}
}
$28 = (($$02435) + 1)|0;
$29 = HEAP32[317094]|0;
$30 = ($28|0)<($29|0);
if ($30) {
$$02435 = $28;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _MapRenderer_RefreshChunk($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $1 | $0;
$4 = $3 | $2;
$5 = ($4|0)<(0);
if ($5) {
return;
}
$6 = HEAP32[317092]|0;
$7 = ($6|0)>($0|0);
if (!($7)) {
return;
}
$8 = HEAP32[317091]|0;
$9 = ($8|0)>($1|0);
$10 = HEAP32[317094]|0;
$11 = ($10|0)>($2|0);
$or$cond = $9 & $11;
if (!($or$cond)) {
return;
}
$12 = HEAP32[317099]|0;
$13 = Math_imul($8, $2)|0;
$14 = (($13) + ($1))|0;
$15 = Math_imul($14, $6)|0;
$16 = (($15) + ($0))|0;
$17 = (((($12) + (($16*20)|0)|0)) + 6|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18 & 8;
$20 = ($19<<24>>24)==(0);
if (!($20)) {
return;
}
$21 = $18 & -7;
$22 = $21 | 4;
HEAP8[$17>>0] = $22;
return;
}
function _MapRenderer_GetChunk($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[317099]|0;
$4 = HEAP32[317091]|0;
$5 = Math_imul($4, $2)|0;
$6 = (($5) + ($1))|0;
$7 = HEAP32[317092]|0;
$8 = Math_imul($6, $7)|0;
$9 = (($8) + ($0))|0;
$10 = (($3) + (($9*20)|0)|0);
return ($10|0);
}
function _MapRenderer_RenderNormal($0) {
$0 = +$0;
var $$09 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[317099]|0;
$2 = ($1|0)==(0|0);
if ($2) {
return;
}
_Gfx_SetVertexFormat(1);
_Gfx_SetAlphaTest(1);
$3 = HEAP32[317093]|0;
$4 = ($3|0)>(0);
if ($4) {
$$09 = 0;
while(1) {
$5 = (382592 + ($$09<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)<(1);
do {
if (!($7)) {
$8 = (387200 + ($$09)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(0);
if ($10) {
$11 = (386688 + ($$09)|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(0);
if ($13) {
break;
}
}
$14 = (1384660 + ($$09<<2)|0);
$15 = HEAP32[$14>>2]|0;
_Gfx_BindTexture($15);
_MapRenderer_RenderNormalBatch($$09);
$16 = (386688 + ($$09)|0);
HEAP8[$16>>0] = 0;
}
} while(0);
$17 = (($$09) + 1)|0;
$18 = HEAP32[317093]|0;
$19 = ($17|0)<($18|0);
if ($19) {
$$09 = $17;
} else {
break;
}
}
}
_MapRenderer_CheckWeather($0);
_Gfx_SetAlphaTest(0);
return;
}
function _MapRenderer_RenderNormalBatch($0) {
$0 = $0|0;
var $$0136 = 0, $$not$demorgan = 0, $$not122$demorgan = 0, $$not123$demorgan = 0, $$not124$demorgan = 0, $$not126$demorgan = 0, $$not127$demorgan = 0, $$sink138 = 0, $$sink141 = 0, $$sink144 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0, $$sroa$16$0$$sroa_idx65 = 0, $$sroa$16$0$copyload = 0, $$sroa$22$0$$sroa_idx72 = 0, $$sroa$22$0$copyload = 0, $$sroa$29$0$$sroa_idx80 = 0, $$sroa$29$0$copyload = 0, $$sroa$35$0$$sroa_idx87 = 0, $$sroa$35$0$copyload = 0;
var $$sroa$41$0$$sroa_idx94 = 0, $$sroa$41$0$copyload = 0, $$sroa$6$0$$sroa_idx53 = 0, $$sroa$6$0$copyload = 0, $$sroa$9$0$$sroa_idx57 = 0, $$sroa$9$0$copyload = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $brmerge$demorgan = 0;
var $brmerge125$demorgan = 0, $brmerge128$demorgan = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[317095]|0;
$2 = Math_imul($1, $0)|0;
$3 = HEAP32[317113]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$5 = (387200 + ($0)|0);
$$0136 = 0;
while(1) {
$6 = HEAP32[317101]|0;
$7 = (($6) + ($$0136<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if (!($11)) {
$$sroa$0$0$$sroa_idx = (($10) + (($2*20)|0)|0);
$$sroa$0$0$copyload = HEAP32[$$sroa$0$0$$sroa_idx>>2]|0;
$$sroa$6$0$$sroa_idx53 = (((($10) + (($2*20)|0)|0)) + 4|0);
$$sroa$6$0$copyload = HEAP32[$$sroa$6$0$$sroa_idx53>>2]|0;
$$sroa$22$0$$sroa_idx72 = (((($10) + (($2*20)|0)|0)) + 12|0);
$$sroa$22$0$copyload = HEAP16[$$sroa$22$0$$sroa_idx72>>1]|0;
$$sroa$29$0$$sroa_idx80 = (((($10) + (($2*20)|0)|0)) + 14|0);
$$sroa$29$0$copyload = HEAP16[$$sroa$29$0$$sroa_idx80>>1]|0;
$$sroa$35$0$$sroa_idx87 = (((($10) + (($2*20)|0)|0)) + 16|0);
$$sroa$35$0$copyload = HEAP16[$$sroa$35$0$$sroa_idx87>>1]|0;
$$sroa$41$0$$sroa_idx94 = (((($10) + (($2*20)|0)|0)) + 18|0);
$$sroa$41$0$copyload = HEAP16[$$sroa$41$0$$sroa_idx94>>1]|0;
$12 = ($$sroa$0$0$copyload|0)<(0);
if (!($12)) {
$$sroa$16$0$$sroa_idx65 = (((($10) + (($2*20)|0)|0)) + 10|0);
$$sroa$16$0$copyload = HEAP16[$$sroa$16$0$$sroa_idx65>>1]|0;
$$sroa$9$0$$sroa_idx57 = (((($10) + (($2*20)|0)|0)) + 8|0);
$$sroa$9$0$copyload = HEAP16[$$sroa$9$0$$sroa_idx57>>1]|0;
HEAP8[$5>>0] = 1;
$13 = ((($8)) + 8|0);
$14 = HEAP32[$13>>2]|0;
_Gfx_BindVb($14);
$15 = (($$sroa$6$0$copyload) + ($$sroa$0$0$copyload))|0;
$16 = ((($8)) + 7|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17 & 1;
$19 = ($18<<24>>24)!=(0);
$20 = $$sroa$9$0$copyload&65535;
$21 = ($$sroa$9$0$copyload<<16>>16)!=(0);
$22 = $17 & 2;
$23 = ($22<<24>>24)!=(0);
$24 = $$sroa$16$0$copyload&65535;
$25 = ($$sroa$16$0$copyload<<16>>16)!=(0);
$26 = $25 & $23;
$$not$demorgan = $21 & $19;
$$not122$demorgan = $25 & $23;
$brmerge$demorgan = $$not$demorgan & $$not122$demorgan;
do {
if ($brmerge$demorgan) {
_Gfx_SetFaceCulling(1);
$27 = (($20) + ($24))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($27,$15);
_Gfx_SetFaceCulling(0);
$$sink138 = $27;
label = 11;
} else {
$28 = $21 & $19;
if ($28) {
_Gfx_DrawIndexedVb_TrisT2fC4b($20,$15);
$$sink138 = $20;
label = 11;
break;
}
if ($26) {
$29 = (($15) + ($20))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($24,$29);
$$sink138 = $24;
label = 11;
}
}
} while(0);
if ((label|0) == 11) {
label = 0;
$30 = HEAP32[315073]|0;
$31 = (($30) + ($$sink138))|0;
HEAP32[315073] = $31;
}
$32 = (($20) + ($24))|0;
$33 = (($32) + ($15))|0;
$34 = HEAP8[$16>>0]|0;
$35 = $34 & 4;
$36 = ($35<<24>>24)!=(0);
$37 = $$sroa$22$0$copyload&65535;
$38 = ($$sroa$22$0$copyload<<16>>16)!=(0);
$39 = $34 & 8;
$40 = ($39<<24>>24)!=(0);
$41 = $$sroa$29$0$copyload&65535;
$42 = ($$sroa$29$0$copyload<<16>>16)!=(0);
$43 = $42 & $40;
$$not123$demorgan = $38 & $36;
$$not124$demorgan = $42 & $40;
$brmerge125$demorgan = $$not123$demorgan & $$not124$demorgan;
do {
if ($brmerge125$demorgan) {
_Gfx_SetFaceCulling(1);
$44 = (($41) + ($37))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($44,$33);
_Gfx_SetFaceCulling(0);
$$sink141 = $44;
label = 18;
} else {
$45 = $38 & $36;
if ($45) {
_Gfx_DrawIndexedVb_TrisT2fC4b($37,$33);
$$sink141 = $37;
label = 18;
break;
}
if ($43) {
$46 = (($33) + ($37))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($41,$46);
$$sink141 = $41;
label = 18;
}
}
} while(0);
if ((label|0) == 18) {
label = 0;
$47 = HEAP32[315073]|0;
$48 = (($47) + ($$sink141))|0;
HEAP32[315073] = $48;
}
$49 = (($41) + ($37))|0;
$50 = (($49) + ($33))|0;
$51 = HEAP8[$16>>0]|0;
$52 = $51 & 16;
$53 = ($52<<24>>24)!=(0);
$54 = $$sroa$35$0$copyload&65535;
$55 = ($$sroa$35$0$copyload<<16>>16)!=(0);
$56 = $51 & 32;
$57 = ($56<<24>>24)!=(0);
$58 = $$sroa$41$0$copyload&65535;
$59 = ($$sroa$41$0$copyload<<16>>16)!=(0);
$60 = $59 & $57;
$$not126$demorgan = $55 & $53;
$$not127$demorgan = $59 & $57;
$brmerge128$demorgan = $$not126$demorgan & $$not127$demorgan;
do {
if ($brmerge128$demorgan) {
_Gfx_SetFaceCulling(1);
$61 = (($58) + ($54))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($61,$50);
_Gfx_SetFaceCulling(0);
$$sink144 = $61;
label = 25;
} else {
$62 = $55 & $53;
if ($62) {
_Gfx_DrawIndexedVb_TrisT2fC4b($54,$50);
$$sink144 = $54;
label = 25;
break;
}
if ($60) {
$63 = (($50) + ($54))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($58,$63);
$$sink144 = $58;
label = 25;
}
}
} while(0);
if ((label|0) == 25) {
label = 0;
$64 = HEAP32[315073]|0;
$65 = (($64) + ($$sink144))|0;
HEAP32[315073] = $65;
}
$66 = ($$sroa$6$0$copyload|0)==(0);
if (!($66)) {
$67 = (2)?($$sroa$6$0$copyload >> 2):($$sroa$6$0$copyload);
_Gfx_SetFaceCulling(1);
$68 = HEAP8[$16>>0]|0;
$69 = $68 & 6;
$70 = ($69<<24>>24)==(0);
if (!($70)) {
_Gfx_DrawIndexedVb_TrisT2fC4b($67,$$sroa$0$0$copyload);
$71 = HEAP32[315073]|0;
$72 = (($71) + ($67))|0;
HEAP32[315073] = $72;
}
$73 = (($67) + ($$sroa$0$0$copyload))|0;
$74 = HEAP8[$16>>0]|0;
$75 = $74 & 9;
$76 = ($75<<24>>24)==(0);
if (!($76)) {
_Gfx_DrawIndexedVb_TrisT2fC4b($67,$73);
$77 = HEAP32[315073]|0;
$78 = (($77) + ($67))|0;
HEAP32[315073] = $78;
}
$79 = (($73) + ($67))|0;
$80 = HEAP8[$16>>0]|0;
$81 = $80 & 5;
$82 = ($81<<24>>24)==(0);
if (!($82)) {
_Gfx_DrawIndexedVb_TrisT2fC4b($67,$79);
$83 = HEAP32[315073]|0;
$84 = (($83) + ($67))|0;
HEAP32[315073] = $84;
}
$85 = HEAP8[$16>>0]|0;
$86 = $85 & 10;
$87 = ($86<<24>>24)==(0);
if (!($87)) {
$88 = (($79) + ($67))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($67,$88);
$89 = HEAP32[315073]|0;
$90 = (($89) + ($67))|0;
HEAP32[315073] = $90;
}
_Gfx_SetFaceCulling(0);
}
}
}
$91 = (($$0136) + 1)|0;
$92 = HEAP32[317113]|0;
$93 = ($91|0)<($92|0);
if ($93) {
$$0136 = $91;
} else {
break;
}
}
return;
}
function _MapRenderer_CheckWeather($0) {
$0 = +$0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $phitmp = 0, $phitmp4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_IVec3_Floor($1,(1230620));
$2 = HEAP32[$1>>2]|0;
$3 = ((($1)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($1)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = (_World_SafeGetBlock($2,$4,$6)|0);
$8 = HEAP32[$3>>2]|0;
$9 = ($8|0)<(0);
if ($9) {
$18 = 1;
} else {
$10 = HEAP32[$1>>2]|0;
$11 = HEAP32[$5>>2]|0;
$12 = (_World_ContainsXZ_872($10,$11)|0);
$13 = ($12<<24>>24)==(0);
$phitmp = $13&1;
$18 = $phitmp;
}
$14 = $7&65535;
$15 = (583428 + ($14)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(3);
if ($17) {
$23 = 1;
} else {
$19 = ($18|0)!=(0);
$20 = HEAP32[(1407516)>>2]|0;
$21 = ($8|0)<($20|0);
$22 = $19 & $21;
$phitmp4 = $22&1;
$23 = $phitmp4;
}
HEAP8[1408274] = $23;
$24 = ($23<<24>>24)==(0);
$25 = HEAP32[(1407540)>>2]|0;
$26 = ($25|0)==(0);
$or$cond = $24 | $26;
if ($or$cond) {
STACKTOP = sp;return;
}
_Gfx_SetAlphaBlending(1);
_EnvRenderer_RenderWeather($0);
_Gfx_SetAlphaBlending(0);
STACKTOP = sp;return;
}
function _World_ContainsXZ_872($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = ($2>>>0)>($0>>>0);
$4 = HEAP32[(1407472)>>2]|0;
$5 = ($4>>>0)>($1>>>0);
$narrow = $3 & $5;
$6 = $narrow&1;
return ($6|0);
}
function _MapRenderer_RenderTranslucent($0) {
$0 = +$0;
var $$019 = 0, $$118 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[317099]|0;
$2 = ($1|0)==(0|0);
if ($2) {
return;
}
$3 = HEAP32[315073]|0;
_Gfx_SetVertexFormat(1);
_Gfx_SetAlphaBlending(0);
_Gfx_SetColWriteMask(0,0,0,0);
$4 = HEAP32[317093]|0;
$5 = ($4|0)>(0);
if ($5) {
$$019 = 0;
while(1) {
$6 = (384640 + ($$019<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)<(1);
do {
if (!($8)) {
$9 = (388224 + ($$019)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(0);
if ($11) {
$12 = (387712 + ($$019)|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(0);
if ($14) {
break;
}
}
_MapRenderer_RenderTranslucentBatch($$019);
$15 = (387712 + ($$019)|0);
HEAP8[$15>>0] = 0;
}
} while(0);
$16 = (($$019) + 1)|0;
$17 = HEAP32[317093]|0;
$18 = ($16|0)<($17|0);
if ($18) {
$$019 = $16;
} else {
break;
}
}
}
HEAP32[315073] = $3;
_Gfx_SetAlphaBlending(1);
_Gfx_SetColWriteMask(1,1,1,1);
_Gfx_SetDepthWrite(0);
$19 = HEAP32[317093]|0;
$20 = ($19|0)>(0);
if ($20) {
$$118 = 0;
while(1) {
$21 = (384640 + ($$118<<2)|0);
$22 = HEAP32[$21>>2]|0;
$23 = ($22|0)<(1);
if (!($23)) {
$24 = (388224 + ($$118)|0);
$25 = HEAP8[$24>>0]|0;
$26 = ($25<<24>>24)==(0);
if (!($26)) {
$27 = (1384660 + ($$118<<2)|0);
$28 = HEAP32[$27>>2]|0;
_Gfx_BindTexture($28);
_MapRenderer_RenderTranslucentBatch($$118);
}
}
$29 = (($$118) + 1)|0;
$30 = HEAP32[317093]|0;
$31 = ($29|0)<($30|0);
if ($31) {
$$118 = $29;
} else {
break;
}
}
}
_Gfx_SetDepthWrite(1);
$32 = HEAP8[1408274]|0;
$33 = ($32<<24>>24)==(0);
$34 = HEAP32[(1407540)>>2]|0;
$35 = ($34|0)!=(0);
$or$cond = $33 & $35;
if ($or$cond) {
_Gfx_SetAlphaTest(1);
_EnvRenderer_RenderWeather($0);
_Gfx_SetAlphaTest(0);
}
_Gfx_SetAlphaBlending(0);
return;
}
function _MapRenderer_RenderTranslucentBatch($0) {
$0 = $0|0;
var $$0121 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0, $$sroa$12$0$$sroa_idx42 = 0, $$sroa$12$0$copyload = 0, $$sroa$18$0$$sroa_idx49 = 0, $$sroa$18$0$copyload = 0, $$sroa$25$0$$sroa_idx57 = 0, $$sroa$25$0$copyload = 0, $$sroa$31$0$$sroa_idx64 = 0, $$sroa$31$0$copyload = 0, $$sroa$37$0$$sroa_idx71 = 0, $$sroa$37$0$copyload = 0, $$sroa$533$0$$sroa_idx34 = 0, $$sroa$533$0$copyload = 0, $1 = 0, $10 = 0, $100 = 0, $11 = 0, $12 = 0;
var $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge$demorgan = 0, $brmerge95$demorgan = 0, $brmerge98$demorgan = 0, $spec$select = 0, $spec$select119 = 0;
var $spec$select120 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[317095]|0;
$2 = Math_imul($1, $0)|0;
$3 = HEAP32[317113]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$5 = (388224 + ($0)|0);
$$0121 = 0;
while(1) {
$6 = HEAP32[317101]|0;
$7 = (($6) + ($$0121<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 16|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
do {
if (!($11)) {
$$sroa$0$0$$sroa_idx = (($10) + (($2*20)|0)|0);
$$sroa$0$0$copyload = HEAP32[$$sroa$0$0$$sroa_idx>>2]|0;
$$sroa$533$0$$sroa_idx34 = (((($10) + (($2*20)|0)|0)) + 8|0);
$$sroa$533$0$copyload = HEAP16[$$sroa$533$0$$sroa_idx34>>1]|0;
$$sroa$12$0$$sroa_idx42 = (((($10) + (($2*20)|0)|0)) + 10|0);
$$sroa$12$0$copyload = HEAP16[$$sroa$12$0$$sroa_idx42>>1]|0;
$$sroa$18$0$$sroa_idx49 = (((($10) + (($2*20)|0)|0)) + 12|0);
$$sroa$18$0$copyload = HEAP16[$$sroa$18$0$$sroa_idx49>>1]|0;
$$sroa$25$0$$sroa_idx57 = (((($10) + (($2*20)|0)|0)) + 14|0);
$$sroa$25$0$copyload = HEAP16[$$sroa$25$0$$sroa_idx57>>1]|0;
$$sroa$31$0$$sroa_idx64 = (((($10) + (($2*20)|0)|0)) + 16|0);
$$sroa$31$0$copyload = HEAP16[$$sroa$31$0$$sroa_idx64>>1]|0;
$$sroa$37$0$$sroa_idx71 = (((($10) + (($2*20)|0)|0)) + 18|0);
$$sroa$37$0$copyload = HEAP16[$$sroa$37$0$$sroa_idx71>>1]|0;
$12 = ($$sroa$0$0$copyload|0)<(0);
if (!($12)) {
HEAP8[$5>>0] = 1;
$13 = ((($8)) + 8|0);
$14 = HEAP32[$13>>2]|0;
_Gfx_BindVb($14);
$15 = HEAP8[1408274]|0;
$16 = ($15<<24>>24)==(0);
if ($16) {
$17 = ((($8)) + 7|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18 & 1;
$20 = ($19<<24>>24)!=(0);
$21 = ($$sroa$533$0$copyload<<16>>16)!=(0);
$spec$select = $21 & $20;
$22 = $18 & 2;
$23 = ($22<<24>>24)==(0);
if ($23) {
if ($spec$select) {
label = 12;
}
} else {
$26 = $spec$select;
label = 9;
}
} else {
$24 = ($$sroa$533$0$copyload<<16>>16)!=(0);
$26 = $24;
label = 9;
}
do {
if ((label|0) == 9) {
label = 0;
$25 = ($$sroa$12$0$copyload<<16>>16)!=(0);
$brmerge$demorgan = $25 & $26;
if ($brmerge$demorgan) {
$27 = $$sroa$533$0$copyload&65535;
$28 = $$sroa$12$0$copyload&65535;
$29 = (($28) + ($27))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($29,$$sroa$0$0$copyload);
$30 = HEAP32[315073]|0;
$31 = (($30) + ($29))|0;
HEAP32[315073] = $31;
break;
}
if ($26) {
label = 12;
} else {
$35 = $$sroa$12$0$copyload&65535;
if ($25) {
$36 = $$sroa$533$0$copyload&65535;
$37 = (($$sroa$0$0$copyload) + ($36))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($35,$37);
$38 = HEAP32[315073]|0;
$39 = (($38) + ($35))|0;
HEAP32[315073] = $39;
}
}
}
} while(0);
if ((label|0) == 12) {
label = 0;
$32 = $$sroa$533$0$copyload&65535;
_Gfx_DrawIndexedVb_TrisT2fC4b($32,$$sroa$0$0$copyload);
$33 = HEAP32[315073]|0;
$34 = (($33) + ($32))|0;
HEAP32[315073] = $34;
}
$40 = $$sroa$533$0$copyload&65535;
$41 = $$sroa$12$0$copyload&65535;
$42 = (($$sroa$0$0$copyload) + ($40))|0;
$43 = (($42) + ($41))|0;
$44 = HEAP8[1408274]|0;
$45 = ($44<<24>>24)==(0);
if ($45) {
$46 = ((($8)) + 7|0);
$47 = HEAP8[$46>>0]|0;
$48 = $47 & 4;
$49 = ($48<<24>>24)!=(0);
$50 = ($$sroa$18$0$copyload<<16>>16)!=(0);
$spec$select119 = $50 & $49;
$51 = $47 & 8;
$52 = ($51<<24>>24)==(0);
if ($52) {
if ($spec$select119) {
label = 22;
}
} else {
$55 = $spec$select119;
label = 19;
}
} else {
$53 = ($$sroa$18$0$copyload<<16>>16)!=(0);
$55 = $53;
label = 19;
}
do {
if ((label|0) == 19) {
label = 0;
$54 = ($$sroa$25$0$copyload<<16>>16)!=(0);
$brmerge95$demorgan = $54 & $55;
if ($brmerge95$demorgan) {
$56 = $$sroa$18$0$copyload&65535;
$57 = $$sroa$25$0$copyload&65535;
$58 = (($57) + ($56))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($58,$43);
$59 = HEAP32[315073]|0;
$60 = (($59) + ($58))|0;
HEAP32[315073] = $60;
break;
}
if ($55) {
label = 22;
} else {
$64 = $$sroa$25$0$copyload&65535;
if ($54) {
$65 = $$sroa$18$0$copyload&65535;
$66 = (($43) + ($65))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($64,$66);
$67 = HEAP32[315073]|0;
$68 = (($67) + ($64))|0;
HEAP32[315073] = $68;
}
}
}
} while(0);
if ((label|0) == 22) {
label = 0;
$61 = $$sroa$18$0$copyload&65535;
_Gfx_DrawIndexedVb_TrisT2fC4b($61,$43);
$62 = HEAP32[315073]|0;
$63 = (($62) + ($61))|0;
HEAP32[315073] = $63;
}
$69 = $$sroa$18$0$copyload&65535;
$70 = $$sroa$25$0$copyload&65535;
$71 = (($70) + ($69))|0;
$72 = (($71) + ($43))|0;
$73 = HEAP8[1408274]|0;
$74 = ($73<<24>>24)==(0);
if ($74) {
$75 = ((($8)) + 7|0);
$76 = HEAP8[$75>>0]|0;
$77 = $76 & 16;
$78 = ($77<<24>>24)!=(0);
$79 = ($$sroa$31$0$copyload<<16>>16)!=(0);
$spec$select120 = $79 & $78;
$80 = $76 & 32;
$81 = ($80<<24>>24)==(0);
if ($81) {
if (!($spec$select120)) {
break;
}
} else {
$84 = $spec$select120;
label = 29;
}
} else {
$82 = ($$sroa$31$0$copyload<<16>>16)!=(0);
$84 = $82;
label = 29;
}
if ((label|0) == 29) {
label = 0;
$83 = ($$sroa$37$0$copyload<<16>>16)!=(0);
$brmerge98$demorgan = $83 & $84;
if ($brmerge98$demorgan) {
$85 = $$sroa$31$0$copyload&65535;
$86 = $$sroa$37$0$copyload&65535;
$87 = (($86) + ($85))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($87,$72);
$88 = HEAP32[315073]|0;
$89 = (($88) + ($87))|0;
HEAP32[315073] = $89;
break;
}
if (!($84)) {
$93 = $$sroa$37$0$copyload&65535;
if (!($83)) {
break;
}
$94 = $$sroa$31$0$copyload&65535;
$95 = (($72) + ($94))|0;
_Gfx_DrawIndexedVb_TrisT2fC4b($93,$95);
$96 = HEAP32[315073]|0;
$97 = (($96) + ($93))|0;
HEAP32[315073] = $97;
break;
}
}
$90 = $$sroa$31$0$copyload&65535;
_Gfx_DrawIndexedVb_TrisT2fC4b($90,$72);
$91 = HEAP32[315073]|0;
$92 = (($91) + ($90))|0;
HEAP32[315073] = $92;
}
}
} while(0);
$98 = (($$0121) + 1)|0;
$99 = HEAP32[317113]|0;
$100 = ($98|0)<($99|0);
if ($100) {
$$0121 = $98;
} else {
break;
}
}
return;
}
function _MapRenderer_Update($0) {
$0 = +$0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[317099]|0;
$2 = ($1|0)==(0|0);
if ($2) {
return;
}
_MapRenderer_UpdateSortOrder();
_MapRenderer_UpdateChunks($0);
return;
}
function _MapRenderer_UpdateSortOrder() {
var $$040 = 0, $$lcssa = 0, $$lobit = 0, $$not = 0, $$not34 = 0, $$not37 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0;
var $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
_IVec3_Floor($0,(1230620));
$1 = HEAP32[$0>>2]|0;
$2 = $1 & -16;
$3 = $2 | 8;
HEAP32[$0>>2] = $3;
$4 = ((($0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & -16;
$7 = $6 | 8;
HEAP32[$4>>2] = $7;
$8 = ((($0)) + 8|0);
$9 = HEAP32[$8>>2]|0;
$10 = $9 & -16;
$11 = $10 | 8;
HEAP32[$8>>2] = $11;
$12 = HEAP32[317106]|0;
$13 = ($3|0)==($12|0);
if ($13) {
$14 = HEAP32[(1268428)>>2]|0;
$15 = ($7|0)==($14|0);
$16 = HEAP32[(1268432)>>2]|0;
$17 = ($11|0)==($16|0);
$or$cond = $15 & $17;
if ($or$cond) {
STACKTOP = sp;return;
}
}
;HEAP32[1268424>>2]=HEAP32[$0>>2]|0;HEAP32[1268424+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[1268424+8>>2]=HEAP32[$0+8>>2]|0;
$18 = HEAP32[317095]|0;
$19 = ($18|0)==(0);
if ($19) {
STACKTOP = sp;return;
}
$20 = HEAP32[317095]|0;
$21 = ($20|0)>(0);
if ($21) {
$22 = HEAP32[317100]|0;
$23 = HEAP32[317102]|0;
$$040 = 0;
while(1) {
$24 = (($22) + ($$040<<2)|0);
$25 = HEAP32[$24>>2]|0;
$26 = HEAP16[$25>>1]|0;
$27 = $26&65535;
$28 = HEAP32[$0>>2]|0;
$29 = (($27) - ($28))|0;
$30 = ((($25)) + 2|0);
$31 = HEAP16[$30>>1]|0;
$32 = $31&65535;
$33 = HEAP32[$4>>2]|0;
$34 = (($32) - ($33))|0;
$35 = ((($25)) + 4|0);
$36 = HEAP16[$35>>1]|0;
$37 = $36&65535;
$38 = HEAP32[$8>>2]|0;
$39 = (($37) - ($38))|0;
$40 = Math_imul($29, $29)|0;
$41 = Math_imul($34, $34)|0;
$42 = (($41) + ($40))|0;
$43 = Math_imul($39, $39)|0;
$44 = (($42) + ($43))|0;
$45 = (($23) + ($$040<<2)|0);
HEAP32[$45>>2] = $44;
$$lobit = (31)?($29 >>> 31):($29);
$46 = $$lobit&255;
$47 = ((($25)) + 7|0);
$48 = HEAP8[$47>>0]|0;
$$not = $46 & 1;
$49 = $48 & -64;
$50 = ($29|0)<(1);
$51 = $50&1;
$52 = ($51 << 1)&255;
$53 = (29)?($39 >>> 29):($39);
$$not34 = $53&255;
$54 = $$not34 & 4;
$55 = ($39|0)<(1);
$56 = $55&1;
$57 = ($56 << 3)&255;
$58 = (27)?($34 >>> 27):($34);
$$not37 = $58&255;
$59 = $$not37 & 16;
$60 = ($34|0)<(1);
$61 = $60&1;
$62 = ($61 << 5)&255;
$63 = $52 | $$not;
$64 = $63 | $59;
$65 = $64 | $62;
$66 = $65 | $49;
$67 = $66 | $54;
$68 = $67 | $57;
$69 = $68 ^ 21;
HEAP8[$47>>0] = $69;
$70 = (($$040) + 1)|0;
$71 = HEAP32[317095]|0;
$72 = ($70|0)<($71|0);
if ($72) {
$$040 = $70;
} else {
$$lcssa = $71;
break;
}
}
} else {
$$lcssa = $20;
}
$73 = (($$lcssa) + -1)|0;
_MapRenderer_QuickSort(0,$73);
_MapRenderer_ResetPartFlags();
STACKTOP = sp;return;
}
function _MapRenderer_UpdateChunks($0) {
$0 = +$0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
HEAP32[$1>>2] = 0;
$2 = $0 < 0.043333333333333335;
$3 = $2 ? 1 : -1;
$4 = HEAP32[2952]|0;
$5 = (($4) + ($3))|0;
$6 = ($5|0)>(4);
$7 = $6 ? $5 : 4;
$8 = HEAP32[317112]|0;
$9 = ($7|0)>($8|0);
$10 = $9 ? $8 : $7;
HEAP32[2952] = $10;
$11 = (_Vec3_Equals()|0);
$12 = ($11<<24>>24)==(0);
if ($12) {
label = 5;
} else {
$13 = +HEAPF32[(1242168)>>2];
$14 = +HEAPF32[317114];
$15 = $13 == $14;
if ($15) {
$16 = +HEAPF32[(1242172)>>2];
$17 = +HEAPF32[317115];
$18 = $16 != $17;
if ($18) {
label = 5;
} else {
$19 = (_MapRenderer_UpdateChunksStill($1)|0);
$21 = $19;$26 = 0;
}
} else {
label = 5;
}
}
if ((label|0) == 5) {
$20 = (_MapRenderer_UpdateChunksAndVisibility($1)|0);
$21 = $20;$26 = 1;
}
HEAP32[317113] = $21;
;HEAP32[1268384>>2]=HEAP32[(1230620)>>2]|0;HEAP32[1268384+4>>2]=HEAP32[(1230620)+4>>2]|0;HEAP32[1268384+8>>2]=HEAP32[(1230620)+8>>2]|0;
$22 = HEAP32[(1242168)>>2]|0;
HEAP32[317114] = $22;
$23 = HEAP32[(1242172)>>2]|0;
HEAP32[317115] = $23;
$24 = HEAP32[$1>>2]|0;
$25 = ($24|0)!=(0);
$or$cond = $26 | $25;
if (!($or$cond)) {
STACKTOP = sp;return;
}
_MapRenderer_ResetPartFlags();
STACKTOP = sp;return;
}
function _Vec3_Equals() {
var $0 = 0.0, $1 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = +HEAPF32[(1230620)>>2];
$1 = +HEAPF32[317096];
$2 = $0 == $1;
if (!($2)) {
$9 = 0;
return ($9|0);
}
$3 = +HEAPF32[(1230624)>>2];
$4 = +HEAPF32[(1268388)>>2];
$5 = $3 == $4;
if (!($5)) {
$9 = 0;
return ($9|0);
}
$6 = +HEAPF32[(1230628)>>2];
$7 = +HEAPF32[(1268392)>>2];
$8 = $6 == $7;
$phitmp = $8&1;
$9 = $phitmp;
return ($9|0);
}
function _MapRenderer_UpdateChunksStill($0) {
$0 = $0|0;
var $$046$lcssa = 0, $$04651 = 0, $$052 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0.0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond48 = 0, $or$cond50 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[317110]|0;
$2 = HEAP32[317109]|0;
$3 = HEAP32[317095]|0;
$4 = ($3|0)>(0);
if (!($4)) {
$$046$lcssa = 0;
return ($$046$lcssa|0);
}
$5 = (($2) + 512)|0;
$$04651 = 0;$$052 = 0;
while(1) {
$6 = HEAP32[317100]|0;
$7 = (($6) + ($$052<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 6|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10 & 2;
$12 = ($11<<24>>24)==(0);
do {
if ($12) {
$13 = HEAP32[317102]|0;
$14 = (($13) + ($$052<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($8)) + 12|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)==(0|0);
if ($18) {
$19 = ((($8)) + 16|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==(0|0);
$23 = $21;
} else {
$23 = 0;
}
$22 = ($15|0)<($5|0);
$or$cond = $22 | $23;
if (!($or$cond)) {
_MapRenderer_DeleteChunk($8);
$$1 = $$04651;
break;
}
$24 = (2)?(($10&255) >>> 2):(($10&255));
$25 = $24 & 1;
$26 = $25&255;
$27 = $23&1;
$28 = $27 | $26;
$29 = ($28|0)==(0);
$30 = ($15|0)>($2|0);
$or$cond48 = $30 | $29;
if (!($or$cond48)) {
$31 = HEAP32[$0>>2]|0;
$32 = HEAP32[2952]|0;
$33 = ($31|0)<($32|0);
if ($33) {
_MapRenderer_DeleteChunk($8);
_MapRenderer_BuildChunk($8,$0);
$34 = ($15|0)>($1|0);
if ($34) {
$46 = 0;
} else {
$35 = HEAP16[$8>>1]|0;
$36 = (+($35&65535));
$37 = ((($8)) + 2|0);
$38 = HEAP16[$37>>1]|0;
$39 = (+($38&65535));
$40 = ((($8)) + 4|0);
$41 = HEAP16[$40>>1]|0;
$42 = (+($41&65535));
$43 = (_FrustumCulling_SphereInFrustum($36,$39,$42,14.0)|0);
$44 = ($43<<24>>24)!=(0);
$46 = $44;
}
$45 = $46&1;
$47 = HEAP8[$9>>0]|0;
$48 = $47 & -2;
$49 = $48 | $45;
HEAP8[$9>>0] = $49;
$50 = $47 & 2;
$51 = ($50<<24>>24)==(0);
$or$cond50 = $46 & $51;
if (!($or$cond50)) {
$$1 = $$04651;
break;
}
$52 = (($$04651) + 1)|0;
$53 = HEAP32[317101]|0;
$54 = (($53) + ($$04651<<2)|0);
HEAP32[$54>>2] = $8;
$$1 = $52;
break;
}
}
$55 = $10 & 1;
$56 = ($55<<24>>24)==(0);
if ($56) {
$$1 = $$04651;
} else {
$57 = (($$04651) + 1)|0;
$58 = HEAP32[317101]|0;
$59 = (($58) + ($$04651<<2)|0);
HEAP32[$59>>2] = $8;
$$1 = $57;
}
} else {
$$1 = $$04651;
}
} while(0);
$60 = (($$052) + 1)|0;
$61 = HEAP32[317095]|0;
$62 = ($60|0)<($61|0);
if ($62) {
$$04651 = $$1;$$052 = $60;
} else {
$$046$lcssa = $$1;
break;
}
}
return ($$046$lcssa|0);
}
function _MapRenderer_UpdateChunksAndVisibility($0) {
$0 = $0|0;
var $$042$lcssa = 0, $$04247 = 0, $$048 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0.0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $or$cond = 0, $or$cond44 = 0, $or$cond46 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[317110]|0;
$2 = HEAP32[317109]|0;
$3 = HEAP32[317095]|0;
$4 = ($3|0)>(0);
if (!($4)) {
$$042$lcssa = 0;
return ($$042$lcssa|0);
}
$5 = (($2) + 512)|0;
$$04247 = 0;$$048 = 0;
while(1) {
$6 = HEAP32[317100]|0;
$7 = (($6) + ($$048<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 6|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10 & 2;
$12 = ($11<<24>>24)==(0);
do {
if ($12) {
$13 = HEAP32[317102]|0;
$14 = (($13) + ($$048<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($8)) + 12|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)==(0|0);
if ($18) {
$19 = ((($8)) + 16|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==(0|0);
$23 = $21;
} else {
$23 = 0;
}
$22 = ($15|0)<($5|0);
$or$cond = $22 | $23;
if (!($or$cond)) {
_MapRenderer_DeleteChunk($8);
$$1 = $$04247;
break;
}
$24 = (2)?(($10&255) >>> 2):(($10&255));
$25 = $24 & 1;
$26 = $25&255;
$27 = $23&1;
$28 = $27 | $26;
$29 = ($28|0)==(0);
$30 = ($15|0)>($2|0);
$or$cond44 = $30 | $29;
if (!($or$cond44)) {
$31 = HEAP32[$0>>2]|0;
$32 = HEAP32[2952]|0;
$33 = ($31|0)<($32|0);
if ($33) {
_MapRenderer_DeleteChunk($8);
_MapRenderer_BuildChunk($8,$0);
}
}
$34 = ($15|0)>($1|0);
if ($34) {
$46 = 0;
} else {
$35 = HEAP16[$8>>1]|0;
$36 = (+($35&65535));
$37 = ((($8)) + 2|0);
$38 = HEAP16[$37>>1]|0;
$39 = (+($38&65535));
$40 = ((($8)) + 4|0);
$41 = HEAP16[$40>>1]|0;
$42 = (+($41&65535));
$43 = (_FrustumCulling_SphereInFrustum($36,$39,$42,14.0)|0);
$44 = ($43<<24>>24)!=(0);
$46 = $44;
}
$45 = $46&1;
$47 = HEAP8[$9>>0]|0;
$48 = $47 & -2;
$49 = $48 | $45;
HEAP8[$9>>0] = $49;
$50 = $47 & 2;
$51 = ($50<<24>>24)==(0);
$or$cond46 = $46 & $51;
if ($or$cond46) {
$52 = (($$04247) + 1)|0;
$53 = HEAP32[317101]|0;
$54 = (($53) + ($$04247<<2)|0);
HEAP32[$54>>2] = $8;
$$1 = $52;
} else {
$$1 = $$04247;
}
} else {
$$1 = $$04247;
}
} while(0);
$55 = (($$048) + 1)|0;
$56 = HEAP32[317095]|0;
$57 = ($55|0)<($56|0);
if ($57) {
$$04247 = $$1;$$048 = $55;
} else {
$$042$lcssa = $$1;
break;
}
}
return ($$042$lcssa|0);
}
function _MapRenderer_BuildChunk($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$02226 = 0, $$027 = 0, $$12324 = 0, $$125 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(535488)>>2]|0;
$3 = (($2) + 1)|0;
HEAP32[(535488)>>2] = $3;
$4 = HEAP32[$1>>2]|0;
$5 = (($4) + 1)|0;
HEAP32[$1>>2] = $5;
$6 = ((($0)) + 6|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7 & -5;
HEAP8[$6>>0] = $8;
_Builder_MakeChunk($0);
$9 = ((($0)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if ($11) {
$12 = ((($0)) + 16|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)==(0|0);
if ($14) {
$15 = HEAP8[$6>>0]|0;
$16 = $15 | 2;
HEAP8[$6>>0] = $16;
return;
}
} else {
$17 = HEAP32[317093]|0;
$18 = ($17|0)>(0);
if ($18) {
$19 = HEAP32[317095]|0;
$20 = HEAP32[317093]|0;
$$02226 = $10;$$027 = 0;
while(1) {
$21 = HEAP32[$$02226>>2]|0;
$22 = ($21|0)>(-1);
$23 = (382592 + ($$027<<2)|0);
if ($22) {
$24 = HEAP32[$23>>2]|0;
$25 = (($24) + 1)|0;
HEAP32[$23>>2] = $25;
}
$26 = (($$027) + 1)|0;
$27 = (($$02226) + (($19*20)|0)|0);
$28 = ($26|0)<($20|0);
if ($28) {
$$02226 = $27;$$027 = $26;
} else {
break;
}
}
}
}
$29 = ((($0)) + 16|0);
$30 = HEAP32[$29>>2]|0;
$31 = ($30|0)!=(0|0);
$32 = HEAP32[317093]|0;
$33 = ($32|0)>(0);
$or$cond = $31 & $33;
if (!($or$cond)) {
return;
}
$34 = HEAP32[317095]|0;
$35 = HEAP32[317093]|0;
$$12324 = $30;$$125 = 0;
while(1) {
$36 = HEAP32[$$12324>>2]|0;
$37 = ($36|0)>(-1);
$38 = (384640 + ($$125<<2)|0);
if ($37) {
$39 = HEAP32[$38>>2]|0;
$40 = (($39) + 1)|0;
HEAP32[$38>>2] = $40;
}
$41 = (($$125) + 1)|0;
$42 = (($$12324) + (($34*20)|0)|0);
$43 = ($41|0)<($35|0);
if ($43) {
$$12324 = $42;$$125 = $41;
} else {
break;
}
}
return;
}
function _MapRenderer_QuickSort($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$065$lcssa = 0, $$06576 = 0, $$067$lcssa = 0, $$06775 = 0, $$07078 = 0, $$079 = 0, $$1 = 0, $$166 = 0, $$168 = 0, $$171 = 0, $$2 = 0, $$269 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[317100]|0;
$3 = HEAP32[317102]|0;
$4 = ($0|0)<($1|0);
if (!($4)) {
return;
}
$$07078 = $1;$$079 = $0;
while(1) {
$5 = (($$079) + ($$07078))|0;
$6 = (1)?($5 >> 1):($5);
$7 = (($3) + ($6<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($$079|0)>($$07078|0);
if ($9) {
$$065$lcssa = $$07078;$$067$lcssa = $$079;
} else {
$$06576 = $$07078;$$06775 = $$079;
while(1) {
$$168 = $$06775;
while(1) {
$10 = (($3) + ($$168<<2)|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($8>>>0)>($11>>>0);
$13 = (($$168) + 1)|0;
if ($12) {
$$168 = $13;
} else {
break;
}
}
$$166 = $$06576;
while(1) {
$14 = (($3) + ($$166<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($8>>>0)<($15>>>0);
$17 = (($$166) + -1)|0;
if ($16) {
$$166 = $17;
} else {
break;
}
}
$18 = ($$168|0)>($$166|0);
if ($18) {
$$2 = $$166;$$269 = $$168;
} else {
HEAP32[$10>>2] = $15;
HEAP32[$14>>2] = $11;
$19 = (($2) + ($$168<<2)|0);
$20 = HEAP32[$19>>2]|0;
$21 = (($2) + ($$166<<2)|0);
$22 = HEAP32[$21>>2]|0;
HEAP32[$19>>2] = $22;
HEAP32[$21>>2] = $20;
$23 = (($$168) + 1)|0;
$24 = (($$166) + -1)|0;
$$2 = $24;$$269 = $23;
}
$25 = ($$269|0)>($$2|0);
if ($25) {
$$065$lcssa = $$2;$$067$lcssa = $$269;
break;
} else {
$$06576 = $$2;$$06775 = $$269;
}
}
}
$26 = (($$065$lcssa) - ($$079))|0;
$27 = (($$07078) - ($$067$lcssa))|0;
$28 = ($26|0)>($27|0);
if ($28) {
$30 = ($$07078|0)>($$067$lcssa|0);
if ($30) {
_MapRenderer_QuickSort($$067$lcssa,$$07078);
$$1 = $$079;$$171 = $$065$lcssa;
} else {
$$1 = $$079;$$171 = $$065$lcssa;
}
} else {
$29 = ($$065$lcssa|0)>($$079|0);
if ($29) {
_MapRenderer_QuickSort($$079,$$065$lcssa);
$$1 = $$067$lcssa;$$171 = $$07078;
} else {
$$1 = $$067$lcssa;$$171 = $$07078;
}
}
$31 = ($$1|0)<($$171|0);
if ($31) {
$$07078 = $$171;$$079 = $$1;
} else {
break;
}
}
return;
}
function _ListScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1268468)>>0] = 1;
HEAP8[(1268470)>>0] = 1;
HEAP32[317116] = 11812;
_Gui_Replace(1268464,50);
return;
}
function _ListScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 4416;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 10;
$3 = ((($0)) + 672|0);
HEAPF32[$3>>2] = 0.0;
$4 = ((($0)) + 676|0);
HEAP32[$4>>2] = 0;
$5 = ((($0)) + 680|0);
$6 = ((($0)) + 20|0);
$7 = HEAP32[$5>>2]|0;
_ButtonWidget_Make($6,300,$7,1,1,0,-100);
$8 = ((($0)) + 100|0);
$9 = HEAP32[$5>>2]|0;
_ButtonWidget_Make($8,300,$9,1,1,0,-50);
$10 = ((($0)) + 180|0);
$11 = HEAP32[$5>>2]|0;
_ButtonWidget_Make($10,300,$11,1,1,0,0);
$12 = ((($0)) + 260|0);
$13 = HEAP32[$5>>2]|0;
_ButtonWidget_Make($12,300,$13,1,1,0,50);
$14 = ((($0)) + 340|0);
$15 = HEAP32[$5>>2]|0;
_ButtonWidget_Make($14,300,$15,1,1,0,100);
$16 = ((($0)) + 420|0);
_ButtonWidget_Make($16,40,71,1,1,-220,0);
$17 = ((($0)) + 500|0);
_ButtonWidget_Make($17,40,72,1,1,220,0);
$18 = ((($0)) + 700|0);
_TextWidget_Make($18,1,1,0,-155);
$19 = ((($0)) + 768|0);
_TextWidget_Make($19,1,2,0,75);
$20 = ((($0)) + 580|0);
$21 = ((($0)) + 684|0);
$22 = HEAP32[$21>>2]|0;
_Menu_MakeBack($20,$22);
$23 = ((($0)) + 688|0);
$24 = HEAP32[$23>>2]|0;
FUNCTION_TABLE_vi[$24 & 511]($0);
return;
}
function _ListScreen_Free($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 836|0);
_StringsBuffer_Clear($1);
return;
}
function _ListScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
_Menu_RenderBounds();
_Screen_Render2Widgets($0,$1);
return;
}
function _ListScreen_BuildMesh($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2496|0;
$1 = sp;
_Screen_BuildMesh($0,$1);
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_SetDynamicVbData($3,$1,104);
STACKTOP = sp;return;
}
function _ListScreen_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1 | 16;
switch ($2|0) {
case 62: {
_ListScreen_PageClick($0,0);
break;
}
case 63: {
_ListScreen_PageClick($0,1);
break;
}
default: {
}
}
return 1;
}
function _Menu_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
(_Menu_DoPointerDown($0,$1,$2,$3)|0);
return 1;
}
function _Menu_PointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
(_Menu_DoPointerMove($0,$2,$3)|0);
return 1;
}
function _ListScreen_MouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 672|0);
$3 = (_Utils_AccumulateWheelDelta($2,$1)|0);
$4 = ($3|0)==(0);
if ($4) {
return 1;
}
$5 = ((($0)) + 676|0);
$6 = HEAP32[$5>>2]|0;
$7 = (($6) - ($3))|0;
_ListScreen_SetCurrentIndex($0,$7);
return 1;
}
function _ListScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Screen_ContextLost($0);
$1 = ((($0)) + 660|0);
_Font_Free($1);
return;
}
function _ListScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Gfx_CreateDynamicVb(1,104)|0);
$2 = ((($0)) + 8|0);
HEAP32[$2>>2] = $1;
$3 = ((($0)) + 660|0);
_Menu_MakeTitleFont($3);
_ListScreen_RedrawEntries($0);
$4 = ((($0)) + 420|0);
_ButtonWidget_SetConst($4,36411,$3);
$5 = ((($0)) + 500|0);
_ButtonWidget_SetConst($5,36413,$3);
$6 = ((($0)) + 700|0);
$7 = ((($0)) + 696|0);
$8 = HEAP32[$7>>2]|0;
_TextWidget_SetConst($6,$8,$3);
$9 = ((($0)) + 580|0);
_ButtonWidget_SetConst($9,28640,$3);
_ListScreen_UpdatePage($0);
return;
}
function _Menu_MakeTitleFont($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Drawer2D_MakeFont($0,16,1);
return;
}
function _ListScreen_RedrawEntries($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
$3 = ((($0)) + 676|0);
$4 = ((($0)) + 692|0);
$5 = HEAP32[$3>>2]|0;
_ListScreen_UNSAFE_Get($2,$0,$5);
$6 = $2;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = $1;
$13 = $12;
HEAP32[$13>>2] = $8;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
$16 = HEAP32[$4>>2]|0;
$17 = ((($0)) + 20|0);
FUNCTION_TABLE_viii[$16 & 31]($0,$17,$1);
$18 = HEAP32[$3>>2]|0;
$19 = (($18) + 1)|0;
_ListScreen_UNSAFE_Get($2,$0,$19);
$20 = $2;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = (($20) + 4)|0;
$24 = $23;
$25 = HEAP32[$24>>2]|0;
$26 = $1;
$27 = $26;
HEAP32[$27>>2] = $22;
$28 = (($26) + 4)|0;
$29 = $28;
HEAP32[$29>>2] = $25;
$30 = HEAP32[$4>>2]|0;
$31 = ((($0)) + 100|0);
FUNCTION_TABLE_viii[$30 & 31]($0,$31,$1);
$32 = HEAP32[$3>>2]|0;
$33 = (($32) + 2)|0;
_ListScreen_UNSAFE_Get($2,$0,$33);
$34 = $2;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = $1;
$41 = $40;
HEAP32[$41>>2] = $36;
$42 = (($40) + 4)|0;
$43 = $42;
HEAP32[$43>>2] = $39;
$44 = HEAP32[$4>>2]|0;
$45 = ((($0)) + 180|0);
FUNCTION_TABLE_viii[$44 & 31]($0,$45,$1);
$46 = HEAP32[$3>>2]|0;
$47 = (($46) + 3)|0;
_ListScreen_UNSAFE_Get($2,$0,$47);
$48 = $2;
$49 = $48;
$50 = HEAP32[$49>>2]|0;
$51 = (($48) + 4)|0;
$52 = $51;
$53 = HEAP32[$52>>2]|0;
$54 = $1;
$55 = $54;
HEAP32[$55>>2] = $50;
$56 = (($54) + 4)|0;
$57 = $56;
HEAP32[$57>>2] = $53;
$58 = HEAP32[$4>>2]|0;
$59 = ((($0)) + 260|0);
FUNCTION_TABLE_viii[$58 & 31]($0,$59,$1);
$60 = HEAP32[$3>>2]|0;
$61 = (($60) + 4)|0;
_ListScreen_UNSAFE_Get($2,$0,$61);
$62 = $2;
$63 = $62;
$64 = HEAP32[$63>>2]|0;
$65 = (($62) + 4)|0;
$66 = $65;
$67 = HEAP32[$66>>2]|0;
$68 = $1;
$69 = $68;
HEAP32[$69>>2] = $64;
$70 = (($68) + 4)|0;
$71 = $70;
HEAP32[$71>>2] = $67;
$72 = HEAP32[$4>>2]|0;
$73 = ((($0)) + 340|0);
FUNCTION_TABLE_viii[$72 & 31]($0,$73,$1);
STACKTOP = sp;return;
}
function _ListScreen_UpdatePage($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 72|0;
$2 = sp;
$3 = sp + 68|0;
$4 = sp + 64|0;
$5 = ((($0)) + 844|0);
$6 = HEAP32[$5>>2]|0;
$7 = (($6) + -5)|0;
$8 = ((($0)) + 676|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)<(1);
$11 = $10&1;
$12 = ((($0)) + 441|0);
HEAP8[$12>>0] = $11;
$13 = ($9|0)>=($7|0);
$14 = $13&1;
$15 = ((($0)) + 521|0);
HEAP8[$15>>0] = $14;
$16 = HEAP8[1408229]|0;
$17 = ($16<<24>>24)==(0);
if (!($17)) {
STACKTOP = sp;return;
}
$18 = (($9|0) / 5)&-1;
$19 = (($18) + 1)|0;
HEAP32[$3>>2] = $19;
$20 = (_Math_CeilDiv($6,5)|0);
$21 = ($20|0)==(0);
$spec$store$select = $21 ? 1 : $20;
HEAP32[$4>>2] = $spec$store$select;
HEAP32[$1>>2] = $2;
$22 = ((($1)) + 4|0);
HEAP16[$22>>1] = 0;
$23 = ((($1)) + 6|0);
HEAP16[$23>>1] = 64;
_String_Format2($1,28645,$3,$4);
$24 = ((($0)) + 768|0);
$25 = ((($0)) + 660|0);
_TextWidget_Set($24,$1,$25);
STACKTOP = sp;return;
}
function _ListScreen_UNSAFE_Get($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($2|0)>(-1);
if ($3) {
$4 = ((($1)) + 844|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>($2|0);
if ($6) {
$7 = ((($1)) + 836|0);
_StringsBuffer_UNSAFE_Get($0,$7,$2);
return;
}
}
$8 = 10520;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $0;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
return;
}
function _ListScreen_SetCurrentIndex($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 844|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>($1|0);
$5 = (($3) + -1)|0;
$spec$select = $4 ? $1 : $5;
$6 = ($spec$select|0)>(0);
$$1 = $6 ? $spec$select : 0;
$7 = ((($0)) + 676|0);
HEAP32[$7>>2] = $$1;
_ListScreen_RedrawEntries($0);
_ListScreen_UpdatePage($0);
return;
}
function _Menu_DoPointerMove($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0345 = 0, $$1354 = 0, $$1354$in = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 12|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 16|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)>(0);
if (!($7)) {
$$2 = -1;
return ($$2|0);
}
$$0345 = 0;
while(1) {
$8 = (($4) + ($$0345<<2)|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0|0);
if (!($10)) {
$11 = ((($9)) + 20|0);
HEAP8[$11>>0] = 0;
}
$12 = (($$0345) + 1)|0;
$exitcond = ($12|0)==($6|0);
if ($exitcond) {
break;
} else {
$$0345 = $12;
}
}
$13 = ($6|0)>(0);
if (!($13)) {
$$2 = -1;
return ($$2|0);
}
$$1354$in = $6;
while(1) {
$$1354 = (($$1354$in) + -1)|0;
$14 = (($4) + ($$1354<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==(0|0);
if (!($16)) {
$17 = (_Widget_Contains($15,$1,$2)|0);
$18 = ($17|0)==(0);
if (!($18)) {
break;
}
}
$20 = ($$1354$in|0)>(1);
if ($20) {
$$1354$in = $$1354;
} else {
$$2 = -1;
label = 12;
break;
}
}
if ((label|0) == 12) {
return ($$2|0);
}
$19 = ((($15)) + 20|0);
HEAP8[$19>>0] = 1;
$$2 = $$1354;
return ($$2|0);
}
function _Menu_DoPointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$03438 = 0, $$03438$in = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 16|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)>(0);
if (!($8)) {
$$2 = -1;
return ($$2|0);
}
$$03438$in = $7;
while(1) {
$$03438 = (($$03438$in) + -1)|0;
$9 = (($5) + ($$03438<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if (!($11)) {
$12 = (_Widget_Contains($10,$2,$3)|0);
$13 = ($12|0)==(0);
if (!($13)) {
break;
}
}
$23 = ($$03438$in|0)>(1);
if ($23) {
$$03438$in = $$03438;
} else {
$$2 = -1;
label = 10;
break;
}
}
if ((label|0) == 10) {
return ($$2|0);
}
$14 = ((($10)) + 21|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(0);
if (!($16)) {
$$2 = $$03438;
return ($$2|0);
}
$17 = ((($10)) + 32|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($18|0)==(0|0);
if ($19) {
$20 = HEAP32[$10>>2]|0;
$21 = ((($20)) + 24|0);
$22 = HEAP32[$21>>2]|0;
(FUNCTION_TABLE_iiiii[$22 & 63]($10,$1,$2,$3)|0);
$$2 = $$03438;
return ($$2|0);
} else {
FUNCTION_TABLE_vii[$18 & 127]($0,$10);
$$2 = $$03438;
return ($$2|0);
}
return (0)|0;
}
function _ListScreen_PageClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)==(0);
$3 = $2 ? -5 : 5;
$4 = ((($0)) + 676|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + ($3))|0;
_ListScreen_SetCurrentIndex($0,$6);
return;
}
function _Menu_RenderBounds() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[351858]|0;
$1 = HEAP32[351859]|0;
_Gfx_Draw2DGradient(0,0,$0,$1,1763186712,-1570622669);
return;
}
function _ListScreen_MoveBackwards($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ListScreen_PageClick($0,0);
return;
}
function _ListScreen_MoveForwards($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ListScreen_PageClick($0,1);
return;
}
function _Menu_MakeBack($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408259]|0;
$3 = ($2<<24>>24)==(0);
$4 = $3 ? 200 : 400;
_ButtonWidget_Make($0,$4,$1,1,2,0,25);
return;
}
function _PauseScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1274448)>>0] = 1;
HEAP8[(1274450)>>0] = 1;
HEAP32[318611] = 11876;
_Gui_Replace(1274444,50);
return;
}
function _PauseScreen_Init($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 388736;
_Event_Register((1252636),$0,308);
$2 = HEAP8[1408259]|0;
$3 = ($2<<24>>24)==(0);
$4 = ((($0)) + 20|0);
if ($3) {
HEAP32[$4>>2] = 4544;
$$0 = 6;
} else {
HEAP32[$4>>2] = 4464;
$5 = HEAP8[1408229]|0;
$6 = ($5<<24>>24)==(0);
$7 = $6 ? 5 : 4;
$$0 = $7;
}
$8 = (($$0) + 2)|0;
$9 = ((($0)) + 16|0);
HEAP32[$9>>2] = $8;
$10 = $3 ? 300 : 400;
$11 = ((($0)) + 24|0);
$12 = HEAP32[$4>>2]|0;
_Menu_Buttons($0,$11,$10,$12,$$0);
$13 = ((($0)) + 504|0);
_Menu_Button($0,$$0,$13,120,73,2,2,5,5);
$14 = (($$0) + 1)|0;
$15 = ((($0)) + 584|0);
_Menu_Back($0,$14,$15,74);
return;
}
function _PauseScreen_Free($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister((1252636),$0,308);
return;
}
function _MenuScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
_Menu_RenderBounds();
_Screen_RenderWidgets($0,$1);
return;
}
function _PauseScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _PauseScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Menu_MakeTitleFont($1);
$2 = ((($0)) + 24|0);
$3 = ((($0)) + 20|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 16|0);
$6 = HEAP32[$5>>2]|0;
$7 = (($6) + -2)|0;
_Menu_SetButtons($2,$1,$4,$7);
$8 = HEAP8[1408259]|0;
$9 = ($8<<24>>24)==(0);
if ($9) {
$10 = ((($0)) + 504|0);
_ButtonWidget_SetConst($10,28667,$1);
}
$11 = ((($0)) + 584|0);
_ButtonWidget_SetConst($11,28677,$1);
$12 = HEAP8[(1384580)>>0]|0;
$13 = ($12<<24>>24)==(0);
if (!($13)) {
_PauseScreen_CheckHacksAllowed($0);
_Font_Free($1);
STACKTOP = sp;return;
}
$14 = ((($0)) + 125|0);
HEAP8[$14>>0] = 1;
$15 = ((($0)) + 205|0);
HEAP8[$15>>0] = 1;
_PauseScreen_CheckHacksAllowed($0);
_Font_Free($1);
STACKTOP = sp;return;
}
function _Menu_SetButtons($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$08 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$$08 = 0;
while(1) {
$5 = (($0) + (($$08*80)|0)|0);
$6 = (((($2) + ($$08<<4)|0)) + 8|0);
$7 = HEAP32[$6>>2]|0;
_ButtonWidget_SetConst($5,$7,$1);
$8 = (($$08) + 1)|0;
$exitcond = ($8|0)==($3|0);
if ($exitcond) {
break;
} else {
$$08 = $8;
}
}
return;
}
function _PauseScreen_CheckHacksAllowed($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408259]|0;
$2 = ($1<<24>>24)==(0);
if (!($2)) {
return;
}
$3 = HEAP8[(1242627)>>0]|0;
$4 = ($3<<24>>24)==(0);
$5 = $4&1;
$6 = ((($0)) + 365|0);
HEAP8[$6>>0] = $5;
return;
}
function _Menu_Buttons($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$014 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ($4|0)>(0);
if (!($5)) {
return;
}
$$014 = 0;
while(1) {
$6 = (($1) + (($$014*80)|0)|0);
$7 = (((($3) + ($$014<<4)|0)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = (($3) + ($$014<<4)|0);
$10 = HEAP32[$9>>2]|0;
$11 = (((($3) + ($$014<<4)|0)) + 4|0);
$12 = HEAP32[$11>>2]|0;
_Menu_Button($0,$$014,$6,$2,$8,1,1,$10,$12);
$13 = (($$014) + 1)|0;
$exitcond = ($13|0)==($4|0);
if ($exitcond) {
break;
} else {
$$014 = $13;
}
}
return;
}
function _PauseScreen_Quit($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Window_Close();
return;
}
function _Menu_Button($0,$1,$2,$3,$4,$5,$6,$7,$8) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
$7 = $7|0;
$8 = $8|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$9 = $5&255;
$10 = $6&255;
_ButtonWidget_Make($2,$3,$4,$9,$10,$7,$8);
$11 = ((($0)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = (($12) + ($1<<2)|0);
HEAP32[$13>>2] = $2;
return;
}
function _PauseScreen_Game($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gui_Remove(1274444);
return;
}
function _Menu_Back($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP8[1408259]|0;
$5 = ($4<<24>>24)==(0);
$6 = $5 ? 200 : 400;
_Menu_Button($0,$1,$2,$6,$3,1,2,0,25);
return;
}
function _Menu_SwitchOptions($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_OptionsGroupScreen_Show();
return;
}
function _Menu_SwitchGenLevel($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_GenLevelScreen_Show();
return;
}
function _Menu_SwitchLoadLevel($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_LoadLevelScreen_Show();
return;
}
function _Menu_SwitchSaveLevel($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_SaveLevelScreen_Show();
return;
}
function _Menu_SwitchTexPacks($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TexturePackScreen_Show();
return;
}
function _Menu_SwitchHotkeys($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_HotkeyListScreen_Show();
return;
}
function _HotkeyListScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1269160)>>2] = 28785;
HEAP32[(1269152)>>2] = 309;
HEAP32[(1269144)>>2] = 75;
HEAP32[(1269148)>>2] = 76;
HEAP32[(1269156)>>2] = 10;
_ListScreen_Show();
return;
}
function _HotkeyListScreen_LoadEntries($0) {
$0 = $0|0;
var $$014 = 0, $$sroa$3$0$$sroa_idx = 0, $$sroa$3$0$copyload = 0, $$sroa$4$0$$sroa_idx = 0, $$sroa$4$0$copyload = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 64;
$5 = HEAP32[(1261344)>>2]|0;
$6 = ($5|0)>(0);
if ($6) {
$7 = ((($0)) + 836|0);
$$014 = 0;
while(1) {
$$sroa$3$0$$sroa_idx = (((379776 + ($$014<<3)|0)) + 4|0);
$$sroa$3$0$copyload = HEAP8[$$sroa$3$0$$sroa_idx>>0]|0;
$$sroa$4$0$$sroa_idx = (((379776 + ($$014<<3)|0)) + 5|0);
$$sroa$4$0$copyload = HEAP8[$$sroa$4$0$$sroa_idx>>0]|0;
HEAP16[$3>>1] = 0;
$8 = $$sroa$3$0$copyload&255;
$9 = (3280 + ($8<<2)|0);
$10 = HEAP32[$9>>2]|0;
_String_AppendConst($1,$10);
$11 = ($$sroa$4$0$copyload<<24>>24)==(0);
if (!($11)) {
$12 = $$sroa$4$0$copyload&255;
_String_AppendConst($1,28964);
_HotkeyListScreen_MakeFlags($12,$1);
}
_StringsBuffer_Add($7,$1);
$13 = (($$014) + 1)|0;
$14 = HEAP32[(1261344)>>2]|0;
$15 = ($13|0)<($14|0);
if ($15) {
$$014 = $13;
} else {
break;
}
}
}
$16 = ((($0)) + 836|0);
_StringsBuffer_Add($16,10520);
_StringsBuffer_Add($16,10520);
_StringsBuffer_Add($16,10520);
_StringsBuffer_Add($16,10520);
_StringsBuffer_Add($16,10520);
STACKTOP = sp;return;
}
function _HotkeyListScreen_EntryClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$03038 = 0, $$1 = 0, $$lobit = 0, $$lobit$not = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0, $$sroa$4$0$$sroa_idx = 0, $$sroa$4$0$$sroa_idx16 = 0, $$sroa$4$0$copyload = 0, $$sroa$5$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx18 = 0, $$sroa$5$0$copyload = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$6$0$$sroa_idx21 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0;
var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $or$cond = 0, $spec$select34 = 0, $tmpcast$byval_copy1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$tmpcast$byval_copy1 = sp + 32|0;
$2 = sp + 8|0;
$3 = sp;
$4 = sp + 24|0;
$5 = sp + 16|0;
$6 = $2;
$7 = $6;
HEAP32[$7>>2] = 0;
$8 = (($6) + 4)|0;
$9 = $8;
HEAP32[$9>>2] = 0;
_ListScreen_UNSAFE_GetCur($3,$0,$1);
$10 = (_String_CaselessEqualsConst($3,28661)|0);
$11 = ($10|0)==(0);
if (!($11)) {
;HEAP32[$tmpcast$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$tmpcast$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;
_EditHotkeyScreen_Show($tmpcast$byval_copy1);
STACKTOP = sp;return;
}
(_String_UNSAFE_Separate($3,43,$4,$5)|0);
$12 = (_String_IndexOfString($5,11940)|0);
$$lobit = (31)?($12 >>> 31):($12);
$$lobit$not = $$lobit ^ 1;
$13 = (_String_IndexOfString($5,11948)|0);
$14 = ($13|0)>(-1);
$15 = $$lobit$not | 2;
$$1 = $14 ? $15 : $$lobit$not;
$16 = (_String_IndexOfString($5,11956)|0);
$17 = ($16|0)>(-1);
$18 = $$1 | 4;
$spec$select34 = $17 ? $18 : $$1;
$19 = (_Utils_ParseEnum($4,0,3280,133)|0);
$20 = HEAP32[(1261344)>>2]|0;
$21 = ($20|0)>(0);
L5: do {
if ($21) {
$22 = HEAP32[(1261344)>>2]|0;
$$03038 = 0;
while(1) {
$$sroa$4$0$$sroa_idx = (((379776 + ($$03038<<3)|0)) + 4|0);
$$sroa$4$0$copyload = HEAP8[$$sroa$4$0$$sroa_idx>>0]|0;
$$sroa$5$0$$sroa_idx = (((379776 + ($$03038<<3)|0)) + 5|0);
$$sroa$5$0$copyload = HEAP8[$$sroa$5$0$$sroa_idx>>0]|0;
$23 = $$sroa$4$0$copyload&255;
$24 = ($19|0)==($23|0);
$25 = $$sroa$5$0$copyload&255;
$26 = ($spec$select34|0)==($25|0);
$or$cond = $24 & $26;
if ($or$cond) {
break;
}
$28 = (($$03038) + 1)|0;
$29 = ($28|0)<($22|0);
if ($29) {
$$03038 = $28;
} else {
break L5;
}
}
$$sroa$6$0$$sroa_idx = (((379776 + ($$03038<<3)|0)) + 6|0);
$27 = HEAP16[$$sroa$6$0$$sroa_idx>>1]|0;
$$sroa$0$0$$sroa_idx = (379776 + ($$03038<<3)|0);
$$sroa$0$0$copyload = HEAP32[$$sroa$0$0$$sroa_idx>>2]|0;
HEAP32[$2>>2] = $$sroa$0$0$copyload;
$$sroa$4$0$$sroa_idx16 = ((($2)) + 4|0);
HEAP8[$$sroa$4$0$$sroa_idx16>>0] = $$sroa$4$0$copyload;
$$sroa$5$0$$sroa_idx18 = ((($2)) + 5|0);
HEAP8[$$sroa$5$0$$sroa_idx18>>0] = $$sroa$5$0$copyload;
$$sroa$6$0$$sroa_idx21 = ((($2)) + 6|0);
HEAP16[$$sroa$6$0$$sroa_idx21>>1] = $27;
}
} while(0);
;HEAP32[$tmpcast$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$tmpcast$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;
_EditHotkeyScreen_Show($tmpcast$byval_copy1);
STACKTOP = sp;return;
}
function _Menu_SwitchPause($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_PauseScreen_Show();
return;
}
function _ListScreen_UpdateEntry($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 660|0);
_ButtonWidget_Set($1,$2,$3);
return;
}
function _ListScreen_UNSAFE_GetCur($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_Menu_Index($1,$2)|0);
$4 = ((($1)) + 676|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + ($3))|0;
_ListScreen_UNSAFE_Get($0,$1,$6);
return;
}
function _EditHotkeyScreen_Show($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(544644)>>0] = 1;
HEAP8[(544646)>>0] = 1;
HEAP32[136160] = 11964;
$1 = $0;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (($1) + 4)|0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (544668);
$8 = $7;
HEAP32[$8>>2] = $3;
$9 = (($7) + 4)|0;
$10 = $9;
HEAP32[$10>>2] = $6;
$11 = (544660);
$12 = $11;
HEAP32[$12>>2] = $3;
$13 = (($11) + 4)|0;
$14 = $13;
HEAP32[$14>>2] = $6;
_Gui_Replace(544640,50);
return;
}
function _EditHotkeyScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $storemerge$in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 16|0;
$2 = sp + 8|0;
$3 = sp;
$4 = ((($0)) + 12|0);
HEAP32[$4>>2] = 388768;
$5 = ((($0)) + 16|0);
HEAP32[$5>>2] = 7;
$6 = ((($0)) + 36|0);
HEAP32[$6>>2] = -1;
HEAP32[$1>>2] = 18176;
_EditHotkeyScreen_Make($0,0,0,-150,77);
_EditHotkeyScreen_Make($0,1,0,-100,78);
_EditHotkeyScreen_Make($0,2,-100,10,79);
_EditHotkeyScreen_Make($0,3,0,80,80);
_EditHotkeyScreen_Make($0,4,0,130,81);
$7 = ((($0)) + 32|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
if ($9) {
$storemerge$in = 1384616;
} else {
$10 = ((($0)) + 28|0);
$11 = HEAP32[$10>>2]|0;
_StringsBuffer_UNSAFE_Get($3,1261336,$11);
$storemerge$in = $3;
}
$12 = $storemerge$in;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (($12) + 4)|0;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = $2;
$19 = $18;
HEAP32[$19>>2] = $14;
$20 = (($18) + 4)|0;
$21 = $20;
HEAP32[$21>>2] = $17;
$22 = ((($0)) + 72|0);
_Menu_Input($0,6,$22,500,$2,$1,-35);
$23 = ((($0)) + 760|0);
_Menu_Back($0,5,$23,18);
_Window_OpenKeyboard();
_Window_SetKeyboardText($2);
STACKTOP = sp;return;
}
function _Menu_CloseKeyboard($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Window_CloseKeyboard();
return;
}
function _EditHotkeyScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
_MenuScreen_Render($0,$1);
$2 = HEAP32[351858]|0;
$3 = (($2|0) / 2)&-1;
$4 = HEAP32[351859]|0;
$5 = (($4|0) / 2)&-1;
$6 = (($3) + -250)|0;
$7 = (($5) + -65)|0;
_Gfx_Draw2DFlat($6,$7,500,2,-6908266);
$8 = (($5) + 45)|0;
_Gfx_Draw2DFlat($6,$8,500,2,-6908266);
return;
}
function _EditHotkeyScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _EditHotkeyScreen_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(-1);
if (!($4)) {
$19 = ((($0)) + 72|0);
$20 = HEAP32[$19>>2]|0;
$21 = ((($20)) + 12|0);
$22 = HEAP32[$21>>2]|0;
$23 = (FUNCTION_TABLE_iii[$22 & 127]($19,$1)|0);
$24 = ($23|0)==(0);
if (!($24)) {
$$0 = 1;
return ($$0|0);
}
$25 = (_Screen_InputDown($0,$1)|0);
$26 = ($25|0)!=(0);
$phitmp = $26&1;
$$0 = $phitmp;
return ($$0|0);
}
L8: do {
switch ($3|0) {
case 0: {
$5 = $1&255;
$6 = ((($0)) + 24|0);
HEAP8[$6>>0] = $5;
break;
}
case 1: {
$7 = $1 | 1;
switch ($7|0) {
case 39: {
$8 = ((($0)) + 25|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9 | 1;
HEAP8[$8>>0] = $10;
break L8;
break;
}
case 37: {
$11 = ((($0)) + 25|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 | 2;
HEAP8[$11>>0] = $13;
break L8;
break;
}
default: {
$14 = ($7|0)==(41);
$15 = ((($0)) + 25|0);
if ($14) {
$16 = HEAP8[$15>>0]|0;
$17 = $16 | 4;
HEAP8[$15>>0] = $17;
break L8;
} else {
HEAP8[$15>>0] = 0;
break L8;
}
}
}
break;
}
default: {
}
}
} while(0);
$18 = ((($0)) + 40|0);
HEAP8[$18>>0] = 1;
HEAP32[$2>>2] = -1;
_EditHotkeyScreen_UpdateBaseKey($0);
_EditHotkeyScreen_UpdateModifiers($0);
$$0 = 1;
return ($$0|0);
}
function _EditHotkeyScreen_KeyPress($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$5 = ((($0)) + 72|0);
_InputWidget_Append($5,$1);
return 1;
} else {
HEAP8[$2>>0] = 0;
return 1;
}
return (0)|0;
}
function _EditHotkeyScreen_TextChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 72|0);
_InputWidget_SetText($2,$1);
return 1;
}
function _EditHotkeyScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 44|0);
_Font_Free($1);
$2 = ((($0)) + 56|0);
_Font_Free($2);
_Screen_ContextLost($0);
return;
}
function _EditHotkeyScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)!=(0);
$4 = ((($0)) + 44|0);
_Menu_MakeTitleFont($4);
$5 = ((($0)) + 56|0);
_Menu_MakeBodyFont($5);
_EditHotkeyScreen_UpdateBaseKey($0);
_EditHotkeyScreen_UpdateModifiers($0);
_EditHotkeyScreen_UpdateLeaveOpen($0);
$6 = ((($0)) + 600|0);
$7 = $3 ? 28815 : 28828;
_ButtonWidget_SetConst($6,$7,$4);
$8 = ((($0)) + 680|0);
$9 = $3 ? 28839 : 36109;
_ButtonWidget_SetConst($8,$9,$4);
$10 = ((($0)) + 72|0);
_MenuInputWidget_SetFont($10,$5);
$11 = ((($0)) + 760|0);
_ButtonWidget_SetConst($11,36109,$4);
return;
}
function _Menu_MakeBodyFont($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Drawer2D_MakeFont($0,16,0);
return;
}
function _EditHotkeyScreen_UpdateBaseKey($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 64;
$5 = ((($0)) + 36|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0);
if ($7) {
_String_AppendConst($1,28939);
} else {
_String_AppendConst($1,28958);
$8 = ((($0)) + 24|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = (3280 + ($10<<2)|0);
$12 = HEAP32[$11>>2]|0;
_String_AppendConst($1,$12);
}
$13 = ((($0)) + 360|0);
$14 = ((($0)) + 44|0);
_ButtonWidget_Set($13,$1,$14);
STACKTOP = sp;return;
}
function _EditHotkeyScreen_UpdateModifiers($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 64;
$5 = ((($0)) + 36|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(1);
if ($7) {
_String_AppendConst($1,28879);
} else {
_String_AppendConst($1,28904);
$8 = ((($0)) + 25|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
_EditHotkeyScreen_MakeFlags($10,$1);
}
$11 = ((($0)) + 440|0);
$12 = ((($0)) + 44|0);
_ButtonWidget_Set($11,$1,$12);
STACKTOP = sp;return;
}
function _EditHotkeyScreen_UpdateLeaveOpen($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 64;
_String_AppendConst($1,28853);
$5 = ((($0)) + 26|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
$8 = $7 ? 28872 : 28876;
_String_AppendConst($1,$8);
$9 = ((($0)) + 520|0);
$10 = ((($0)) + 44|0);
_ButtonWidget_Set($9,$1,$10);
STACKTOP = sp;return;
}
function _EditHotkeyScreen_MakeFlags($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($0|0)==(0);
if ($2) {
_String_AppendConst($1,28915);
}
_HotkeyListScreen_MakeFlags($0,$1);
return;
}
function _HotkeyListScreen_MakeFlags($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0 & 1;
$3 = ($2|0)==(0);
if (!($3)) {
_String_AppendConst($1,28921);
}
$4 = $0 & 2;
$5 = ($4|0)==(0);
if (!($5)) {
_String_AppendConst($1,28927);
}
$6 = $0 & 4;
$7 = ($6|0)==(0);
if ($7) {
return;
}
_String_AppendConst($1,28934);
return;
}
function _EditHotkeyScreen_BaseKey($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
HEAP32[$2>>2] = 0;
$3 = ((($0)) + 40|0);
HEAP8[$3>>0] = 1;
_EditHotkeyScreen_UpdateBaseKey($0);
return;
}
function _EditHotkeyScreen_Make($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = (((($0)) + 360|0) + (($1*80)|0)|0);
_Menu_Button($0,$1,$5,300,$4,1,1,$2,$3);
return;
}
function _EditHotkeyScreen_Modifiers($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
HEAP32[$2>>2] = 1;
$3 = ((($0)) + 40|0);
HEAP8[$3>>0] = 1;
_EditHotkeyScreen_UpdateModifiers($0);
return;
}
function _EditHotkeyScreen_LeaveOpen($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(-1);
if ($4) {
HEAP32[$2>>2] = -1;
$5 = ((($0)) + 40|0);
HEAP8[$5>>0] = 0;
_EditHotkeyScreen_UpdateBaseKey($0);
_EditHotkeyScreen_UpdateModifiers($0);
}
$6 = ((($0)) + 26|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
$9 = $8&1;
HEAP8[$6>>0] = $9;
_EditHotkeyScreen_UpdateLeaveOpen($0);
return;
}
function _EditHotkeyScreen_SaveChanges($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$10$0$copyload = 0, $$sroa$10$0$copyload12 = 0, $$sroa$14$0$copyload17 = 0, $$sroa$4$0$copyload = 0, $$sroa$4$0$copyload5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($0)) + 32|0);
$$sroa$4$0$copyload = HEAP8[$3>>0]|0;
$4 = ((($0)) + 33|0);
$$sroa$10$0$copyload = HEAP8[$4>>0]|0;
$5 = ($$sroa$4$0$copyload<<24>>24)==(0);
$6 = $$sroa$4$0$copyload&255;
if (!($5)) {
(_Hotkeys_Remove($6,$$sroa$10$0$copyload)|0);
_Hotkeys_UserRemovedHotkey($6,$$sroa$10$0$copyload);
}
$7 = ((($0)) + 24|0);
$$sroa$4$0$copyload5 = HEAP8[$7>>0]|0;
$8 = ((($0)) + 25|0);
$$sroa$10$0$copyload12 = HEAP8[$8>>0]|0;
$9 = ((($0)) + 26|0);
$$sroa$14$0$copyload17 = HEAP8[$9>>0]|0;
$10 = ($$sroa$4$0$copyload5<<24>>24)==(0);
if ($10) {
_HotkeyListScreen_Show();
STACKTOP = sp;return;
}
$11 = ((($0)) + 128|0);
$12 = $11;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (($12) + 4)|0;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = $2;
$19 = $18;
HEAP32[$19>>2] = $14;
$20 = (($18) + 4)|0;
$21 = $20;
HEAP32[$21>>2] = $17;
$22 = $$sroa$4$0$copyload5&255;
_Hotkeys_Add($22,$$sroa$10$0$copyload12,$2,$$sroa$14$0$copyload17);
_Hotkeys_UserAddedHotkey($22,$$sroa$10$0$copyload12,$$sroa$14$0$copyload17,$2);
_HotkeyListScreen_Show();
STACKTOP = sp;return;
}
function _EditHotkeyScreen_RemoveHotkey($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$3$0$copyload = 0, $$sroa$6$0$copyload = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
$$sroa$3$0$copyload = HEAP8[$2>>0]|0;
$3 = ((($0)) + 33|0);
$$sroa$6$0$copyload = HEAP8[$3>>0]|0;
$4 = ($$sroa$3$0$copyload<<24>>24)==(0);
$5 = $$sroa$3$0$copyload&255;
if ($4) {
_HotkeyListScreen_Show();
return;
}
(_Hotkeys_Remove($5,$$sroa$6$0$copyload)|0);
_Hotkeys_UserRemovedHotkey($5,$$sroa$6$0$copyload);
_HotkeyListScreen_Show();
return;
}
function _Menu_Input($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $10 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_MenuInputWidget_Create($2,$3,30,$4,$5);
_Widget_SetLocation($2,1,1,0,$6);
$7 = ((($2)) + 138|0);
HEAP8[$7>>0] = 1;
$8 = ((($0)) + 12|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($9) + ($1<<2)|0);
HEAP32[$10>>2] = $2;
return;
}
function _Menu_Index($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$01617 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
$$0 = -1;
return ($$0|0);
}
$$01617 = 0;
while(1) {
$7 = (($3) + ($$01617<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==($1|0);
if ($9) {
$$0 = $$01617;
label = 5;
break;
}
$10 = (($$01617) + 1)|0;
$11 = HEAP32[$4>>2]|0;
$12 = ($10|0)<($11|0);
if ($12) {
$$01617 = $10;
} else {
$$0 = -1;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$0|0);
}
return (0)|0;
}
function _TexturePackScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1269160)>>2] = 28967;
HEAP32[(1269152)>>2] = 310;
HEAP32[(1269144)>>2] = 82;
HEAP32[(1269148)>>2] = 76;
HEAP32[(1269156)>>2] = 10;
_ListScreen_Show();
return;
}
function _TexturePackScreen_LoadEntries($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 836|0);
(_Directory_Enum(12028,$1,83)|0);
_ListScreen_Sort($0);
return;
}
function _TexturePackScreen_EntryClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288|0;
$2 = sp + 272|0;
$3 = sp;
$4 = sp + 264|0;
_ListScreen_UNSAFE_GetCur($4,$0,$1);
HEAP32[$2>>2] = $3;
$5 = ((($2)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($2)) + 6|0);
HEAP16[$6>>1] = 260;
_String_Format1($2,38320,$4);
$7 = (_File_Exists($2)|0);
$8 = ($7|0)==(0);
if ($8) {
STACKTOP = sp;return;
}
_Game_SetDefaultTexturePack($4);
HEAP16[(18832)>>1] = 0;
_TexturePack_ExtractCurrent(1);
STACKTOP = sp;return;
}
function _TexturePackScreen_FilterFiles($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = $0;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $2;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
$13 = (_String_CaselessEnds($0,12036)|0);
$14 = ($13|0)==(0);
if ($14) {
STACKTOP = sp;return;
}
_Utils_UNSAFE_TrimFirstDirectory($2);
_StringsBuffer_Add($1,$2);
STACKTOP = sp;return;
}
function _ListScreen_Sort($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 844|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0);
if ($3) {
return;
}
$4 = (($2) + -1)|0;
_ListScreen_QuickSort(0,$4);
return;
}
function _ListScreen_QuickSort($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$051$lcssa = 0, $$05161 = 0, $$05465 = 0, $$05664 = 0, $$062 = 0, $$1 = 0, $$152 = 0, $$155 = 0, $$157 = 0, $$2 = 0, $$253 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$2 = sp + 32|0;
$3 = sp + 24|0;
$4 = sp + 16|0;
$5 = sp + 8|0;
$6 = sp;
$7 = HEAP32[(1269304)>>2]|0;
$8 = ($0|0)<($1|0);
if (!($8)) {
STACKTOP = sp;return;
}
$$05465 = $0;$$05664 = $1;
while(1) {
$9 = (($$05465) + ($$05664))|0;
$10 = (1)?($9 >> 1):($9);
_StringsBuffer_UNSAFE_Get($2,(1269300),$10);
$11 = ($$05465|0)>($$05664|0);
if ($11) {
$$0$lcssa = $$05664;$$051$lcssa = $$05465;
} else {
$$05161 = $$05465;$$062 = $$05664;
while(1) {
$$152 = $$05161;
while(1) {
_StringsBuffer_UNSAFE_Get($5,(1269300),$$152);
$12 = $5;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (($12) + 4)|0;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = $3;
$19 = $18;
HEAP32[$19>>2] = $14;
$20 = (($18) + 4)|0;
$21 = $20;
HEAP32[$21>>2] = $17;
$22 = (_String_Compare($2,$3)|0);
$23 = ($22|0)>(0);
$24 = (($$152) + 1)|0;
if ($23) {
$$152 = $24;
} else {
break;
}
}
$$1 = $$062;
while(1) {
_StringsBuffer_UNSAFE_Get($6,(1269300),$$1);
$25 = $6;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = $4;
$32 = $31;
HEAP32[$32>>2] = $27;
$33 = (($31) + 4)|0;
$34 = $33;
HEAP32[$34>>2] = $30;
$35 = (_String_Compare($2,$4)|0);
$36 = ($35|0)<(0);
$37 = (($$1) + -1)|0;
if ($36) {
$$1 = $37;
} else {
break;
}
}
$38 = ($$152|0)>($$1|0);
$39 = (($7) + ($$152<<2)|0);
$40 = (($7) + ($$1<<2)|0);
if ($38) {
$$2 = $$1;$$253 = $$152;
} else {
$41 = (($$1) + -1)|0;
$42 = (($$152) + 1)|0;
$43 = HEAP32[$39>>2]|0;
$44 = HEAP32[$40>>2]|0;
HEAP32[$39>>2] = $44;
HEAP32[$40>>2] = $43;
$$2 = $41;$$253 = $42;
}
$45 = ($$253|0)>($$2|0);
if ($45) {
$$0$lcssa = $$2;$$051$lcssa = $$253;
break;
} else {
$$05161 = $$253;$$062 = $$2;
}
}
}
$46 = (($$0$lcssa) - ($$05465))|0;
$47 = (($$05664) - ($$051$lcssa))|0;
$48 = ($46|0)>($47|0);
if ($48) {
$50 = ($$05664|0)>($$051$lcssa|0);
if ($50) {
_ListScreen_QuickSort($$051$lcssa,$$05664);
$$155 = $$05465;$$157 = $$0$lcssa;
} else {
$$155 = $$05465;$$157 = $$0$lcssa;
}
} else {
$49 = ($$0$lcssa|0)>($$05465|0);
if ($49) {
_ListScreen_QuickSort($$05465,$$0$lcssa);
$$155 = $$051$lcssa;$$157 = $$05664;
} else {
$$155 = $$051$lcssa;$$157 = $$05664;
}
}
$51 = ($$155|0)<($$157|0);
if ($51) {
$$05465 = $$155;$$05664 = $$157;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _SaveLevelScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(545484)>>0] = 1;
HEAP8[(545486)>>0] = 1;
HEAP32[136370] = 12044;
_Gui_Replace(545480,50);
return;
}
function _SaveLevelScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 12|0);
HEAP32[$2>>2] = 388800;
$3 = ((($0)) + 16|0);
HEAP32[$3>>2] = 6;
HEAP32[$1>>2] = 18156;
$4 = ((($0)) + 44|0);
_Menu_Button($0,0,$4,300,84,1,1,0,20);
$5 = ((($0)) + 124|0);
_Menu_Button($0,1,$5,300,85,1,1,0,70);
$6 = ((($0)) + 204|0);
_Menu_Back($0,3,$6,76);
$7 = ((($0)) + 288|0);
_Menu_Input($0,4,$7,500,1384616,$1,-30);
$8 = ((($0)) + 644|0);
_Menu_Label($0,5,$8,1,1,0,115);
_Window_OpenKeyboard();
STACKTOP = sp;return;
}
function _SaveLevelScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
_MenuScreen_Render($0,$1);
return;
}
function _SaveLevelScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _SaveLevelScreen_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 288|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = (FUNCTION_TABLE_iii[$5 & 127]($2,$1)|0);
$7 = ($6|0)==(0);
if ($7) {
$8 = (_Screen_InputDown($0,$1)|0);
$$0 = $8;
return ($$0|0);
} else {
_SaveLevelScreen_RemoveOverwrites($0);
$$0 = 1;
return ($$0|0);
}
return (0)|0;
}
function _SaveLevelScreen_KeyPress($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_SaveLevelScreen_RemoveOverwrites($0);
$2 = ((($0)) + 288|0);
_InputWidget_Append($2,$1);
return 1;
}
function _SaveLevelScreen_TextChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_SaveLevelScreen_RemoveOverwrites($0);
$2 = ((($0)) + 288|0);
_InputWidget_SetText($2,$1);
return 1;
}
function _SaveLevelScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_Font_Free($1);
$2 = ((($0)) + 32|0);
_Font_Free($2);
_Screen_ContextLost($0);
return;
}
function _SaveLevelScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_Menu_MakeTitleFont($1);
$2 = ((($0)) + 32|0);
_Menu_MakeBodyFont($2);
_SaveLevelScreen_UpdateSave($0);
_SaveLevelScreen_UpdateAlt($0);
$3 = ((($0)) + 288|0);
_MenuInputWidget_SetFont($3,$2);
$4 = ((($0)) + 204|0);
_ButtonWidget_SetConst($4,36109,$1);
return;
}
function _SaveLevelScreen_UpdateSave($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 44|0);
$2 = ((($0)) + 112|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
$5 = $4 ? 29008 : 29013;
$6 = ((($0)) + 20|0);
_ButtonWidget_SetConst($1,$5,$6);
return;
}
function _SaveLevelScreen_UpdateAlt($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 124|0);
$2 = ((($0)) + 20|0);
_ButtonWidget_SetConst($1,28993,$2);
return;
}
function _SaveLevelScreen_RemoveOverwrites($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 112|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0|0);
if (!($3)) {
HEAP32[$1>>2] = 0;
_SaveLevelScreen_UpdateSave($0);
}
$4 = ((($0)) + 192|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(0|0);
if ($6) {
return;
}
HEAP32[$4>>2] = 0;
_SaveLevelScreen_UpdateAlt($0);
return;
}
function _SaveLevelScreen_Main($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_SaveLevelScreen_Save($0,$1,29110);
return;
}
function _SaveLevelScreen_Alt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_SaveLevelScreen_Save($0,$1,29035);
return;
}
function _Menu_Label($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $10 = 0, $11 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$7 = $3&255;
$8 = $4&255;
_TextWidget_Make($2,$7,$8,$5,$6);
$9 = ((($0)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($10) + ($1<<2)|0);
HEAP32[$11>>2] = $2;
return;
}
function _SaveLevelScreen_Save($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288|0;
$3 = sp + 272|0;
$4 = sp;
$5 = sp + 264|0;
$6 = ((($0)) + 344|0);
$7 = $6;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = $5;
$14 = $13;
HEAP32[$14>>2] = $9;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = $12;
$17 = ((($5)) + 4|0);
$18 = HEAP16[$17>>1]|0;
$19 = ($18<<16>>16)==(0);
if ($19) {
$20 = ((($0)) + 644|0);
$21 = ((($0)) + 32|0);
_TextWidget_SetConst($20,29046,$21);
STACKTOP = sp;return;
}
HEAP32[$3>>2] = $4;
$22 = ((($3)) + 4|0);
HEAP16[$22>>1] = 0;
$23 = ((($3)) + 6|0);
HEAP16[$23>>1] = 260;
_String_Format2($3,29072,$5,$2);
$24 = (_File_Exists($3)|0);
$25 = ($24|0)==(0);
if (!($25)) {
$26 = ((($1)) + 68|0);
$27 = HEAP32[$26>>2]|0;
$28 = ($27|0)==(0|0);
if ($28) {
HEAP32[$26>>2] = 1408293;
_SaveLevelScreen_UpdateSave($0);
_SaveLevelScreen_UpdateAlt($0);
STACKTOP = sp;return;
}
}
_SaveLevelScreen_RemoveOverwrites($0);
_SaveLevelScreen_SaveMap($3);
STACKTOP = sp;return;
}
function _SaveLevelScreen_SaveMap($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 189440|0;
$1 = sp + 189376|0;
$2 = sp + 189320|0;
$3 = sp;
$4 = (_Stream_CreateFile($1,$0)|0);
$5 = ($4|0)==(0);
if (!($5)) {
_Logger_Warn2($4,38533,$0);
STACKTOP = sp;return;
}
_GZip_MakeStream($2,$3,$1);
$6 = (_Cw_Save($2)|0);
$7 = ($6|0)==(0);
if (!($7)) {
$8 = ((($1)) + 28|0);
$9 = HEAP32[$8>>2]|0;
(FUNCTION_TABLE_ii[$9 & 31]($1)|0);
_Logger_Warn2($6,29082,$0);
STACKTOP = sp;return;
}
$10 = ((($2)) + 28|0);
$11 = HEAP32[$10>>2]|0;
$12 = (FUNCTION_TABLE_ii[$11 & 31]($2)|0);
$13 = ($12|0)==(0);
$14 = ((($1)) + 28|0);
$15 = HEAP32[$14>>2]|0;
$16 = (FUNCTION_TABLE_ii[$15 & 31]($1)|0);
if (!($13)) {
_Logger_Warn2($12,38518,$0);
STACKTOP = sp;return;
}
$17 = ($16|0)==(0);
if (!($17)) {
_Logger_Warn2($16,38518,$0);
STACKTOP = sp;return;
}
$18 = (_String_CaselessEnds($0,12108)|0);
$19 = ($18|0)==(0);
if ($19) {
_DownloadMap($0);
} else {
_Chat_Add1(29091,$0);
}
_PauseScreen_Show();
STACKTOP = sp;return;
}
function _DownloadMap($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 672|0;
$1 = sp + 616|0;
$2 = sp + 600|0;
$3 = sp;
$4 = sp + 608|0;
$5 = (_Stream_OpenFile($1,$0)|0);
$6 = ($5|0)==(0);
if (!($6)) {
STACKTOP = sp;return;
}
$7 = ((($1)) + 32|0);
$8 = HEAP32[$7>>2]|0;
$9 = (_File_Length($8,$4)|0);
$10 = ($9|0)==(0);
if ($10) {
$11 = HEAP32[$4>>2]|0;
$12 = (_Mem_TryAlloc($11,1)|0);
$13 = ($12|0)==(0|0);
if ($13) {
$$0 = 0;
} else {
$14 = HEAP32[$4>>2]|0;
$15 = (_Stream_Read($1,$12,$14)|0);
$16 = ($15|0)==(0);
if ($16) {
_String_UNSAFE_SubstringAt($2,$0,5);
$17 = (_String_LastIndexOfAt($2,0,46)|0);
$18 = $17&65535;
$19 = ((($2)) + 4|0);
HEAP16[$19>>1] = $18;
_String_AppendConst($2,29110);
(_Platform_ConvertString($3,$2)|0);
$20 = HEAP32[$4>>2]|0;
$21 = _emscripten_asm_const_iiii(0,($3|0),($12|0),($20|0))|0;
_Chat_Add1(29606,$2);
$$0 = $12;
} else {
$$0 = $12;
}
}
} else {
$$0 = 0;
}
$22 = ((($1)) + 28|0);
$23 = HEAP32[$22>>2]|0;
(FUNCTION_TABLE_ii[$23 & 31]($1)|0);
_Mem_Free($$0);
(_Platform_ConvertString($3,$0)|0);
(_unlink($3)|0);
STACKTOP = sp;return;
}
function _LoadLevelScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1269160)>>2] = 29627;
HEAP32[(1269152)>>2] = 311;
HEAP32[(1269144)>>2] = 86;
HEAP32[(1269148)>>2] = 76;
HEAP32[(1269156)>>2] = 10;
_ListScreen_Show();
return;
}
function _LoadLevelScreen_LoadEntries($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 836|0);
(_Directory_Enum(12116,$1,87)|0);
_ListScreen_Sort($0);
return;
}
function _LoadLevelScreen_EntryClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288|0;
$2 = sp + 272|0;
$3 = sp;
$4 = sp + 264|0;
_ListScreen_UNSAFE_GetCur($4,$0,$1);
$5 = (_String_CaselessEqualsConst($4,28661)|0);
$6 = ($5|0)==(0);
if (!($6)) {
STACKTOP = sp;return;
}
HEAP32[$2>>2] = $3;
$7 = ((($2)) + 4|0);
HEAP16[$7>>1] = 0;
$8 = ((($2)) + 6|0);
HEAP16[$8>>1] = 260;
_String_Format1($2,29642,$4);
_Map_LoadFrom($2);
STACKTOP = sp;return;
}
function _LoadLevelScreen_FilterFiles($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_Map_FindImporter($0)|0);
$4 = $0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $2;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = ($3|0)==(0|0);
if ($14) {
STACKTOP = sp;return;
}
_Utils_UNSAFE_TrimFirstDirectory($2);
_StringsBuffer_Add($1,$2);
STACKTOP = sp;return;
}
function _GenLevelScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(546196)>>0] = 1;
HEAP8[(546198)>>0] = 1;
HEAP32[136548] = 12124;
_Gui_Replace(546192,50);
return;
}
function _GenLevelScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 388832;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 12;
$3 = ((($0)) + 272|0);
HEAP32[$3>>2] = 0;
$4 = HEAP32[(1407464)>>2]|0;
_GenLevelScreen_Make($0,0,-80,$4);
$5 = HEAP32[(1407468)>>2]|0;
_GenLevelScreen_Make($0,1,-40,$5);
$6 = HEAP32[(1407472)>>2]|0;
_GenLevelScreen_Make($0,2,0,$6);
_GenLevelScreen_Make($0,3,40,0);
$7 = ((($0)) + 1704|0);
_Menu_Label($0,8,$7,1,1,0,-130);
$8 = ((($0)) + 32|0);
_Menu_Button($0,9,$8,200,88,1,1,-120,100);
$9 = ((($0)) + 112|0);
_Menu_Button($0,10,$9,200,89,1,1,120,100);
$10 = ((($0)) + 192|0);
_Menu_Back($0,11,$10,76);
_Window_OpenKeyboard();
return;
}
function _GenLevelScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _GenLevelScreen_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 272|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if (!($4)) {
$5 = HEAP32[$3>>2]|0;
$6 = ((($5)) + 12|0);
$7 = HEAP32[$6>>2]|0;
$8 = (FUNCTION_TABLE_iii[$7 & 127]($3,$1)|0);
$9 = ($8|0)==(0);
if (!($9)) {
$$0 = 1;
return ($$0|0);
}
}
$10 = (_Screen_InputDown($0,$1)|0);
$$0 = $10;
return ($$0|0);
}
function _GenLevelScreen_KeyPress($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 272|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if ($4) {
return 1;
}
_InputWidget_Append($3,$1);
return 1;
}
function _GenLevelScreen_TextChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 272|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if ($4) {
return 1;
}
_InputWidget_SetText($3,$1);
return 1;
}
function _GenLevelScreen_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_Menu_DoPointerDown($0,$1,$2,$3)|0);
$5 = ($4|0)==(-1);
$6 = ($4|0)>(3);
$or$cond = $5 | $6;
if ($or$cond) {
return 1;
}
$7 = ((($0)) + 272|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0|0);
if (!($9)) {
$10 = ((($8)) + 138|0);
HEAP8[$10>>0] = 0;
}
$11 = ((($0)) + 280|0);
$12 = (($11) + (($4*288)|0)|0);
HEAP32[$7>>2] = $12;
$13 = (((($11) + (($4*288)|0)|0)) + 138|0);
HEAP8[$13>>0] = 1;
$14 = (((($11) + (($4*288)|0)|0)) + 56|0);
_Window_SetKeyboardText($14);
return 1;
}
function _GenLevelScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_Font_Free($1);
_Screen_ContextLost($0);
return;
}
function _GenLevelScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Menu_MakeTitleFont($1);
$2 = ((($0)) + 20|0);
_Menu_MakeBodyFont($2);
$3 = ((($0)) + 280|0);
_MenuInputWidget_SetFont($3,$2);
$4 = ((($0)) + 568|0);
_MenuInputWidget_SetFont($4,$2);
$5 = ((($0)) + 856|0);
_MenuInputWidget_SetFont($5,$2);
$6 = ((($0)) + 1144|0);
_MenuInputWidget_SetFont($6,$2);
$7 = ((($0)) + 1432|0);
_TextWidget_SetConst($7,29650,$2);
$8 = ((($0)) + 1500|0);
_TextWidget_SetConst($8,29657,$2);
$9 = ((($0)) + 1568|0);
_TextWidget_SetConst($9,29665,$2);
$10 = ((($0)) + 1636|0);
_TextWidget_SetConst($10,29673,$2);
$11 = ((($0)) + 1704|0);
_TextWidget_SetConst($11,29679,$2);
$12 = ((($0)) + 32|0);
_ButtonWidget_SetConst($12,29698,$1);
$13 = ((($0)) + 112|0);
_ButtonWidget_SetConst($13,29708,$1);
$14 = ((($0)) + 192|0);
_ButtonWidget_SetConst($14,36109,$1);
_Font_Free($1);
STACKTOP = sp;return;
}
function _GenLevelScreen_Make($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$4 = sp + 80|0;
$5 = sp;
$6 = sp + 64|0;
$7 = ($1|0)==(3);
if ($7) {
HEAP32[$6>>2] = 18116;
$8 = ((($6)) + 4|0);
HEAP32[$8>>2] = -2147483648;
$9 = ((($6)) + 8|0);
HEAP32[$9>>2] = 2147483647;
} else {
HEAP32[$6>>2] = 18096;
$10 = ((($6)) + 4|0);
HEAP32[$10>>2] = 1;
$11 = ((($6)) + 8|0);
HEAP32[$11>>2] = 8192;
$12 = ((($6)) + 12|0);
HEAP32[$12>>2] = $3;
}
HEAP32[$4>>2] = $5;
$13 = ((($4)) + 4|0);
HEAP16[$13>>1] = 0;
$14 = ((($4)) + 6|0);
HEAP16[$14>>1] = 64;
$15 = HEAP32[$6>>2]|0;
$16 = ((($15)) + 16|0);
$17 = HEAP32[$16>>2]|0;
FUNCTION_TABLE_vii[$17 & 127]($6,$4);
$18 = (((($0)) + 280|0) + (($1*288)|0)|0);
_Menu_Input($0,$1,$18,200,$4,$6,$2);
$19 = (((((($0)) + 280|0) + (($1*288)|0)|0)) + 138|0);
HEAP8[$19>>0] = 0;
$20 = (($1) + 4)|0;
$21 = (((($0)) + 1432|0) + (($1*68)|0)|0);
_Menu_Label($0,$20,$21,4,1,110,$2);
$22 = (((((($0)) + 1432|0) + (($1*68)|0)|0)) + 64|0);
HEAP32[$22>>2] = -2039584;
STACKTOP = sp;return;
}
function _GenLevelScreen_Flatgrass($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_GenLevelScreen_Gen($0,0);
return;
}
function _GenLevelScreen_Notchy($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_GenLevelScreen_Gen($0,1);
return;
}
function _GenLevelScreen_Gen($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_GenLevelScreen_GetInt($0,0)|0);
$3 = (_GenLevelScreen_GetInt($0,1)|0);
$4 = (_GenLevelScreen_GetInt($0,2)|0);
$5 = (_GenLevelScreen_GetSeedInt($0)|0);
$6 = ($2|0)<(0);
$7 = $6 << 31 >> 31;
$8 = ($3|0)<(0);
$9 = $8 << 31 >> 31;
$10 = (___muldi3(($3|0),($9|0),($2|0),($7|0))|0);
$11 = (getTempRet0() | 0);
$12 = ($4|0)<(0);
$13 = $12 << 31 >> 31;
$14 = (___muldi3(($10|0),($11|0),($4|0),($13|0))|0);
$15 = (getTempRet0() | 0);
$16 = ($15>>>0)>(0);
$17 = ($14>>>0)>(2147483647);
$18 = ($15|0)==(0);
$19 = $18 & $17;
$20 = $16 | $19;
if ($20) {
_Chat_AddRaw(29716);
return;
}
$21 = ($2|0)!=(0);
$22 = ($3|0)!=(0);
$or$cond = $21 & $22;
$23 = ($4|0)!=(0);
$or$cond3 = $or$cond & $23;
if ($or$cond3) {
HEAP8[1408240] = $1;
HEAP32[315079] = $5;
_Gui_Remove($0);
_Menu_BeginGen($2,$3,$4);
return;
} else {
_Chat_AddRaw(29757);
return;
}
}
function _GenLevelScreen_GetInt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = sp + 8|0;
$4 = (((((($0)) + 280|0) + (($1*288)|0)|0)) + 56|0);
$5 = $4;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = $2;
$12 = $11;
HEAP32[$12>>2] = $7;
$13 = (($11) + 4)|0;
$14 = $13;
HEAP32[$14>>2] = $10;
$15 = (((((($0)) + 280|0) + (($1*288)|0)|0)) + 208|0);
$16 = HEAP32[$15>>2]|0;
$17 = ((($16)) + 12|0);
$18 = HEAP32[$17>>2]|0;
$19 = (FUNCTION_TABLE_iii[$18 & 127]($15,$2)|0);
$20 = ($19<<24>>24)==(0);
if ($20) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
(_Convert_ParseInt($2,$3)|0);
$21 = HEAP32[$3>>2]|0;
$$0 = $21;
STACKTOP = sp;return ($$0|0);
}
function _GenLevelScreen_GetSeedInt($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 1204|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
_Random_SeedFromCurrentTime($1);
$5 = (_Random_Next($1,2147483647)|0);
$$0 = $5;
STACKTOP = sp;return ($$0|0);
} else {
$6 = (_GenLevelScreen_GetInt($0,3)|0);
$$0 = $6;
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _Menu_BeginGen($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_World_Reset();
_World_SetDimensions($0,$1,$2);
_GeneratingScreen_Show();
return;
}
function _OptionsGroupScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1275112)>>0] = 1;
HEAP8[(1275114)>>0] = 1;
HEAP32[318777] = 12188;
_Gui_Replace(1275108,50);
return;
}
function _OptionsGroupScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Event_Register((1252636),$0,312);
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 6272;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 9;
$3 = ((($0)) + 20|0);
HEAP32[$3>>2] = -1;
$4 = ((($0)) + 36|0);
_Menu_Buttons($0,$4,300,4640,7);
$5 = ((($0)) + 596|0);
_TextWidget_Make($5,1,1,0,100);
$6 = ((($0)) + 664|0);
_Menu_MakeBack($6,76);
return;
}
function _OptionsGroupScreen_Free($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister((1252636),$0,312);
return;
}
function _MenuScreen_Render2($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
_Menu_RenderBounds();
_Screen_Render2Widgets($0,$1);
return;
}
function _OptionsGroupScreen_BuildMesh($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2400|0;
$1 = sp;
_Screen_BuildMesh($0,$1);
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_SetDynamicVbData($3,$1,100);
STACKTOP = sp;return;
}
function _OptionsGroupScreen_PointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_Menu_DoPointerMove($0,$2,$3)|0);
$5 = ($4|0)==(-1);
if ($5) {
return 1;
}
$6 = ((($0)) + 20|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($4|0)==($7|0);
$9 = ($4>>>0)>(6);
$or$cond = $9 | $8;
if ($or$cond) {
return 1;
}
HEAP32[$6>>2] = $4;
_OptionsGroupScreen_UpdateDesc($0);
return 1;
}
function _OptionsGroupScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 24|0);
_Font_Free($1);
_Screen_ContextLost($0);
return;
}
function _OptionsGroupScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = (_Gfx_CreateDynamicVb(1,100)|0);
$3 = ((($0)) + 8|0);
HEAP32[$3>>2] = $2;
_Menu_MakeTitleFont($1);
$4 = ((($0)) + 24|0);
_Menu_MakeBodyFont($4);
$5 = ((($0)) + 36|0);
_Menu_SetButtons($5,$1,4640,7);
$6 = ((($0)) + 664|0);
_ButtonWidget_SetConst($6,28640,$1);
$7 = ((($0)) + 20|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)>(-1);
if (!($9)) {
_OptionsGroupScreen_CheckHacksAllowed($0);
_Font_Free($1);
STACKTOP = sp;return;
}
_OptionsGroupScreen_UpdateDesc($0);
_OptionsGroupScreen_CheckHacksAllowed($0);
_Font_Free($1);
STACKTOP = sp;return;
}
function _OptionsGroupScreen_UpdateDesc($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 596|0);
$2 = ((($0)) + 20|0);
$3 = HEAP32[$2>>2]|0;
$4 = (4752 + ($3<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 24|0);
_TextWidget_SetConst($1,$5,$6);
return;
}
function _OptionsGroupScreen_CheckHacksAllowed($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242627)>>0]|0;
$2 = ($1<<24>>24)==(0);
$3 = $2&1;
$4 = ((($0)) + 457|0);
HEAP8[$4>>0] = $3;
$5 = ((($0)) + 7|0);
HEAP8[$5>>0] = 1;
return;
}
function _Menu_SwitchMisc($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_MiscOptionsScreen_Show();
return;
}
function _Menu_SwitchGui($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_GuiOptionsScreen_Show();
return;
}
function _Menu_SwitchGfx($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_GraphicsOptionsScreen_Show();
return;
}
function _Menu_SwitchKeysNormal($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_NormalKeyBindingsScreen_Show();
return;
}
function _Menu_SwitchHacks($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_HacksSettingsScreen_Show();
return;
}
function _Menu_SwitchEnv($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_EnvSettingsScreen_Show();
return;
}
function _Menu_SwitchNostalgia($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_NostalgiaScreen_Show();
return;
}
function _NostalgiaScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
_MenuOptionsScreen_Show(0,0,0,313);
return;
}
function _NostalgiaScreen_InitWidgets($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16|0);
HEAP32[$1>>2] = 13;
$2 = ((($0)) + 44|0);
HEAP32[$2>>2] = 314;
_MenuOptionsScreen_InitButtons($0,4784,8,90);
_Menu_Label($0,8,1275852,1,1,0,100);
return;
}
function _MenuOptionsScreen_Show($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(547972)>>0] = 1;
HEAP8[(547974)>>0] = 1;
HEAP32[136992] = 12252;
HEAP32[(547988)>>2] = $0;
HEAP32[(547992)>>2] = $1;
HEAP32[(548004)>>2] = $2;
HEAP32[(548008)>>2] = $3;
HEAP32[(548012)>>2] = 0;
HEAP32[(548016)>>2] = 0;
_Gui_Replace(547968,50);
return;
}
function _MenuOptionsScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 388880;
HEAP32[97220] = 0;
HEAP32[(388884)>>2] = 0;
HEAP32[(388888)>>2] = 0;
HEAP32[(388892)>>2] = 0;
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 16|0);
HEAP32[$3>>2] = 0;
$4 = HEAP32[$1>>2]|0;
$5 = ((($4)) + 20|0);
HEAP32[$5>>2] = 0;
$6 = HEAP32[$1>>2]|0;
$7 = ((($6)) + 24|0);
HEAP32[$7>>2] = 0;
$8 = HEAP32[$1>>2]|0;
$9 = ((($8)) + 28|0);
HEAP32[$9>>2] = 0;
$10 = HEAP32[$1>>2]|0;
$11 = ((($10)) + 32|0);
HEAP32[$11>>2] = 0;
$12 = HEAP32[$1>>2]|0;
$13 = ((($12)) + 36|0);
HEAP32[$13>>2] = 0;
$14 = HEAP32[$1>>2]|0;
$15 = ((($14)) + 40|0);
HEAP32[$15>>2] = 0;
$16 = HEAP32[$1>>2]|0;
$17 = ((($16)) + 44|0);
HEAP32[$17>>2] = 0;
$18 = HEAP32[$1>>2]|0;
$19 = ((($18)) + 48|0);
HEAP32[$19>>2] = 0;
$20 = HEAP32[$1>>2]|0;
$21 = ((($20)) + 52|0);
HEAP32[$21>>2] = 0;
$22 = ((($0)) + 28|0);
HEAP32[$22>>2] = -1;
$23 = ((($0)) + 32|0);
HEAP32[$23>>2] = -1;
$24 = ((($0)) + 40|0);
$25 = HEAP32[$24>>2]|0;
FUNCTION_TABLE_vi[$25 & 511]($0);
_Event_Register((1252636),$0,315);
return;
}
function _MenuOptionsScreen_Free($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister((1252636),$0,315);
$1 = ((($0)) + 28|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)>(-1);
if (!($3)) {
return;
}
_Window_CloseKeyboard();
return;
}
function _MenuOptionsScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_MenuScreen_Render($0,$1);
$2 = ((($0)) + 528|0);
$3 = ((($0)) + 564|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==(0);
if ($5) {
return;
}
$6 = ((($0)) + 532|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($7) + -5)|0;
$9 = ((($0)) + 536|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($10) + -5)|0;
$12 = ((($0)) + 540|0);
$13 = HEAP32[$12>>2]|0;
$14 = (($13) + 10)|0;
$15 = ((($0)) + 544|0);
$16 = HEAP32[$15>>2]|0;
$17 = (($16) + 10)|0;
_Gfx_Draw2DFlat($8,$11,$14,$17,-938208236);
$18 = HEAP32[$2>>2]|0;
$19 = HEAP32[$18>>2]|0;
FUNCTION_TABLE_vid[$19 & 63]($2,$1);
return;
}
function _MenuOptionsScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _MenuOptionsScreen_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 28|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(-1);
L1: do {
if ($4) {
$5 = ((($0)) + 240|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = (FUNCTION_TABLE_iii[$8 & 127]($5,$1)|0);
$10 = ($9|0)==(0);
if (!($10)) {
$$0 = 1;
return ($$0|0);
}
switch ($1|0) {
case 91: case 116: {
break;
}
default: {
break L1;
}
}
_MenuOptionsScreen_EnterInput($0);
$$0 = 1;
return ($$0|0);
}
} while(0);
$11 = (_Screen_InputDown($0,$1)|0);
$$0 = $11;
return ($$0|0);
}
function _MenuOptionsScreen_KeyPress($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 28|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(-1);
if (!($4)) {
return 1;
}
$5 = ((($0)) + 240|0);
_InputWidget_Append($5,$1);
return 1;
}
function _MenuOptionsScreen_TextChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 28|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(-1);
if (!($4)) {
return 1;
}
$5 = ((($0)) + 240|0);
_InputWidget_SetText($5,$1);
return 1;
}
function _MenuOptionsScreen_PointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_Menu_DoPointerMove($0,$2,$3)|0);
$5 = ($4|0)==(-1);
if ($5) {
return 1;
}
$6 = ((($0)) + 32|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($4|0)==($7|0);
if ($8) {
return 1;
}
$9 = ((($0)) + 24|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if ($11) {
return 1;
}
$12 = ((($0)) + 36|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($4|0)<($13|0);
if (!($14)) {
return 1;
}
HEAP32[$6>>2] = $4;
$15 = ((($0)) + 28|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)==(-1);
if (!($17)) {
return 1;
}
_MenuOptionsScreen_SelectExtHelp($0,$4);
return 1;
}
function _MenuOptionsScreen_Layout($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Screen_Layout($0);
_MenuOptionsScreen_RepositionExtHelp($0);
return;
}
function _MenuOptionsScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
_Font_Free($1);
$2 = ((($0)) + 68|0);
_Font_Free($2);
_Screen_ContextLost($0);
$3 = ((($0)) + 528|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($4)) + 4|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$6 & 511]($3);
return;
}
function _MenuOptionsScreen_ContextRecreated($0) {
$0 = $0|0;
var $$020 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
_Menu_MakeTitleFont($1);
$2 = ((($0)) + 68|0);
_Menu_MakeBodyFont($2);
$3 = ((($0)) + 52|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if ($5) {
$6 = ((($0)) + 12|0);
$$020 = 0;
while(1) {
$7 = HEAP32[$6>>2]|0;
$8 = (($7) + ($$020<<2)|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0|0);
if (!($10)) {
_MenuOptionsScreen_Update($0,$$020);
}
$11 = (($$020) + 1)|0;
$12 = HEAP32[$3>>2]|0;
$13 = ($11|0)<($12|0);
if ($13) {
$$020 = $11;
} else {
break;
}
}
}
$14 = ((($0)) + 1560|0);
_ButtonWidget_SetConst($14,28640,$1);
$15 = ((($0)) + 44|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)==(0|0);
if ($17) {
$18 = ((($0)) + 528|0);
_TextGroupWidget_SetFont($18,$2);
_TextGroupWidget_RedrawAll($18);
_MenuOptionsScreen_RedrawInput($0);
return;
}
FUNCTION_TABLE_vi[$16 & 511]($0);
$18 = ((($0)) + 528|0);
_TextGroupWidget_SetFont($18,$2);
_TextGroupWidget_RedrawAll($18);
_MenuOptionsScreen_RedrawInput($0);
return;
}
function _MenuOptionsScreen_Update($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp + 64|0;
$3 = sp;
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 64;
$6 = (((($0)) + 760|0) + (($1*80)|0)|0);
$7 = (((((($0)) + 760|0) + (($1*80)|0)|0)) + 68|0);
$8 = HEAP32[$7>>2]|0;
_String_AppendConst($2,$8);
$9 = (((((($0)) + 760|0) + (($1*80)|0)|0)) + 72|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if ($11) {
$13 = ((($0)) + 56|0);
_ButtonWidget_Set($6,$2,$13);
STACKTOP = sp;return;
}
_String_AppendConst($2,30257);
$12 = HEAP32[$9>>2]|0;
FUNCTION_TABLE_vi[$12 & 511]($2);
$13 = ((($0)) + 56|0);
_ButtonWidget_Set($6,$2,$13);
STACKTOP = sp;return;
}
function _MenuOptionsScreen_RedrawInput($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 28|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(-1);
if ($3) {
return;
}
$4 = ((($0)) + 240|0);
$5 = ((($0)) + 68|0);
_MenuInputWidget_SetFont($4,$5);
$6 = ((($0)) + 80|0);
$7 = ((($0)) + 56|0);
_ButtonWidget_SetConst($6,30240,$7);
$8 = ((($0)) + 160|0);
_ButtonWidget_SetConst($8,30243,$7);
return;
}
function _MenuOptionsScreen_RepositionExtHelp($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[351858]|0;
$2 = (($1|0) / 2)&-1;
$3 = ((($0)) + 528|0);
$4 = ((($0)) + 540|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5|0) / 2)&-1;
$7 = (($2) - ($6))|0;
$8 = ((($0)) + 552|0);
HEAP32[$8>>2] = $7;
$9 = HEAP32[$3>>2]|0;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
FUNCTION_TABLE_vi[$11 & 511]($3);
return;
}
function _MenuOptionsScreen_SelectExtHelp($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$2 = sp + 40|0;
$3 = sp;
_MenuOptionsScreen_FreeExtHelp($0);
$4 = ((($0)) + 24|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(0|0);
if ($6) {
STACKTOP = sp;return;
}
$7 = ((($0)) + 28|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)>(-1);
if ($9) {
STACKTOP = sp;return;
}
$10 = (($5) + ($1<<2)|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)==(0|0);
if ($12) {
STACKTOP = sp;return;
}
_String_FromReadonly($2,$11);
$13 = (_String_UNSAFE_Split($2,10,$3,5)|0);
$14 = ((($0)) + 528|0);
$15 = ((($0)) + 564|0);
HEAP32[$15>>2] = $13;
$16 = ((($0)) + 616|0);
HEAP32[$16>>2] = $11;
_TextGroupWidget_RedrawAll($14);
_MenuOptionsScreen_RepositionExtHelp($0);
STACKTOP = sp;return;
}
function _MenuOptionsScreen_FreeExtHelp($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 528|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0|0);
if (!($3)) {
$4 = ((($2)) + 4|0);
$5 = HEAP32[$4>>2]|0;
FUNCTION_TABLE_vi[$5 & 511]($1);
}
$6 = ((($0)) + 564|0);
HEAP32[$6>>2] = 0;
return;
}
function _MenuOptionsScreen_EnterInput($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 448|0);
$3 = ((($0)) + 296|0);
$4 = $3;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $1;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = HEAP32[$2>>2]|0;
$15 = ((($14)) + 12|0);
$16 = HEAP32[$15>>2]|0;
$17 = (FUNCTION_TABLE_iii[$16 & 127]($2,$1)|0);
$18 = ($17<<24>>24)==(0);
if (!($18)) {
$19 = ((($0)) + 28|0);
$20 = HEAP32[$19>>2]|0;
_MenuOptionsScreen_Set($0,$20,$1);
}
$21 = ((($0)) + 28|0);
$22 = HEAP32[$21>>2]|0;
_MenuOptionsScreen_SelectExtHelp($0,$22);
_MenuOptionsScreen_FreeInput($0);
HEAP32[$21>>2] = -1;
STACKTOP = sp;return;
}
function _MenuOptionsScreen_Set($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (((((($0)) + 760|0) + (($1*80)|0)|0)) + 76|0);
$4 = HEAP32[$3>>2]|0;
FUNCTION_TABLE_vi[$4 & 511]($2);
_MenuOptionsScreen_Update($0,$1);
return;
}
function _MenuOptionsScreen_FreeInput($0) {
$0 = $0|0;
var $$015 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 28|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(-1);
if ($3) {
return;
}
$4 = ((($0)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + -3)|0;
$7 = ((($0)) + 12|0);
$$015 = $6;
while(1) {
$8 = HEAP32[$7>>2]|0;
$9 = (($8) + ($$015<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if (!($11)) {
$12 = HEAP32[$10>>2]|0;
$13 = ($12|0)==(0|0);
if (!($13)) {
$14 = ((($12)) + 4|0);
$15 = HEAP32[$14>>2]|0;
FUNCTION_TABLE_vi[$15 & 511]($10);
}
$16 = HEAP32[$7>>2]|0;
$17 = (($16) + ($$015<<2)|0);
HEAP32[$17>>2] = 0;
}
$18 = (($$015) + 1)|0;
$19 = HEAP32[$4>>2]|0;
$20 = ($18|0)<($19|0);
if ($20) {
$$015 = $18;
} else {
break;
}
}
_Window_CloseKeyboard();
return;
}
function _MenuOptionsScreen_OnHacksChanged($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 48|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0|0);
if ($3) {
return;
}
FUNCTION_TABLE_vi[$2 & 511]($0);
return;
}
function _NostalgiaScreen_RecreateExtra($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 68|0);
_TextWidget_SetConst(1275852,30559,$1);
return;
}
function _NostalgiaScreen_SwitchBack($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408259]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
_Menu_SwitchOptions($0,$1);
return;
} else {
_Menu_SwitchPause($0,$1);
return;
}
}
function _MenuOptionsScreen_InitButtons($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$035 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($2|0)>(0);
if ($4) {
$$035 = 0;
while(1) {
$5 = (((($0)) + 760|0) + (($$035*80)|0)|0);
$6 = (((($1) + (($$035*20)|0)|0)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($1) + (($$035*20)|0)|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9 << 16 >> 16;
$11 = ($10*160)|0;
$12 = (((($1) + (($$035*20)|0)|0)) + 2|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13 << 16 >> 16;
_Menu_Button($0,$$035,$5,300,$7,1,1,$11,$14);
$15 = (((($1) + (($$035*20)|0)|0)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = (((((($0)) + 760|0) + (($$035*80)|0)|0)) + 68|0);
HEAP32[$17>>2] = $16;
$18 = (((($1) + (($$035*20)|0)|0)) + 12|0);
$19 = HEAP32[$18>>2]|0;
$20 = (((((($0)) + 760|0) + (($$035*80)|0)|0)) + 72|0);
HEAP32[$20>>2] = $19;
$21 = (((($1) + (($$035*20)|0)|0)) + 16|0);
$22 = HEAP32[$21>>2]|0;
$23 = (((((($0)) + 760|0) + (($$035*80)|0)|0)) + 76|0);
HEAP32[$23>>2] = $22;
$24 = (($$035) + 1)|0;
$exitcond = ($24|0)==($2|0);
if ($exitcond) {
break;
} else {
$$035 = $24;
}
}
}
$25 = ((($0)) + 52|0);
HEAP32[$25>>2] = $2;
$26 = ((($0)) + 16|0);
$27 = HEAP32[$26>>2]|0;
$28 = (($27) + -4)|0;
$29 = ((($0)) + 1560|0);
_Menu_Back($0,$28,$29,$3);
$30 = ((($0)) + 528|0);
$31 = ((($0)) + 620|0);
_TextGroupWidget_Create($30,5,$31,11);
$32 = ((($0)) + 564|0);
HEAP32[$32>>2] = 0;
_Widget_SetLocation($30,0,3,0,100);
return;
}
function _MenuOptionsScreen_GetDesc($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$3 = sp + 40|0;
$4 = sp;
_String_FromReadonly($3,$1);
(_String_UNSAFE_Split($3,10,$4,5)|0);
$5 = (($4) + ($2<<3)|0);
$6 = $5;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = $0;
$13 = $12;
HEAP32[$13>>2] = $8;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
STACKTOP = sp;return;
}
function _MenuOptionsScreen_Bool($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp + 72|0;
$3 = sp;
$4 = sp + 64|0;
HEAP32[$2>>2] = $3;
$5 = ((($2)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($2)) + 6|0);
HEAP16[$6>>1] = 64;
$7 = ((($1)) + 72|0);
$8 = HEAP32[$7>>2]|0;
FUNCTION_TABLE_vi[$8 & 511]($2);
$9 = (_String_CaselessEqualsConst($2,28876)|0);
$10 = $9 & 255;
$11 = ($10|0)==(0);
$12 = $11 ? 28876 : 28872;
_String_FromReadonly($4,$12);
$13 = $4;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$19 = $2;
$20 = $19;
HEAP32[$20>>2] = $15;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = $18;
$23 = (_Menu_Index($0,$1)|0);
_MenuOptionsScreen_Set($0,$23,$2);
STACKTOP = sp;return;
}
function _NostalgiaScreen_GetHand($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1280014)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _NostalgiaScreen_SetHand($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,34260)|0);
HEAP8[(1280014)>>0] = $1;
return;
}
function _NostalgiaScreen_GetAnim($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408232]|0;
$2 = ($1<<24>>24)==(0);
$3 = $2&1;
_Menu_GetBool($0,$3);
return;
}
function _NostalgiaScreen_SetAnim($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_String_CaselessEqualsConst($0,28872)|0);
$2 = $1&255;
HEAP8[1408232] = $2;
_Options_SetBool(30538,$2);
return;
}
function _NostalgiaScreen_GetGui($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408257]|0;
_Menu_GetBool($0,$1);
return;
}
function _NostalgiaScreen_SetGui($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,30517)|0);
HEAP8[1408257] = $1;
return;
}
function _NostalgiaScreen_GetList($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408258]|0;
_Menu_GetBool($0,$1);
return;
}
function _NostalgiaScreen_SetList($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,30492)|0);
HEAP8[1408258] = $1;
return;
}
function _NostalgiaScreen_GetOpts($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408259]|0;
_Menu_GetBool($0,$1);
return;
}
function _NostalgiaScreen_SetOpts($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,30467)|0);
HEAP8[1408259] = $1;
return;
}
function _NostalgiaScreen_GetCustom($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408234]|0;
_Menu_GetBool($0,$1);
return;
}
function _NostalgiaScreen_SetCustom($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,30444)|0);
HEAP8[1408234] = $1;
return;
}
function _NostalgiaScreen_GetCPE($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408235]|0;
_Menu_GetBool($0,$1);
return;
}
function _NostalgiaScreen_SetCPE($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,30427)|0);
HEAP8[1408235] = $1;
return;
}
function _NostalgiaScreen_GetTexs($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408236]|0;
_Menu_GetBool($0,$1);
return;
}
function _NostalgiaScreen_SetTexs($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,30402)|0);
HEAP8[1408236] = $1;
return;
}
function _Menu_SetBool($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_String_CaselessEqualsConst($0,28876)|0);
$3 = $2&255;
_Options_SetBool($1,$3);
return ($3|0);
}
function _Menu_GetBool($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)==(0);
$3 = $2 ? 28872 : 28876;
_String_AppendConst($0,$3);
return;
}
function _EnvSettingsScreen_Show() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[97236] = 18076;
HEAP32[(388948)>>2] = -1;
HEAP32[(388960)>>2] = 18076;
HEAP32[(388964)>>2] = -13159;
HEAP32[(388976)>>2] = 18076;
HEAP32[(388980)>>2] = -1;
HEAP32[(388992)>>2] = 18136;
HEAPF32[(388996)>>2] = 0.0;
HEAPF32[(389000)>>2] = 1000.0;
HEAPF32[(389004)>>2] = 1.0;
HEAP32[(389008)>>2] = 18096;
HEAP32[(389012)>>2] = -10000;
HEAP32[(389016)>>2] = 10000;
$0 = HEAP32[(1407468)>>2]|0;
$1 = (($0) + 2)|0;
HEAP32[(389020)>>2] = $1;
HEAP32[(389024)>>2] = 18076;
HEAP32[(389028)>>2] = -1;
HEAP32[(389040)>>2] = 18076;
HEAP32[(389044)>>2] = -6579301;
HEAP32[(389056)>>2] = 0;
HEAP32[(389060)>>2] = 18816;
HEAP32[(389064)>>2] = 3;
HEAP32[(389072)>>2] = 18136;
HEAPF32[(389076)>>2] = -100.0;
HEAPF32[(389080)>>2] = 100.0;
HEAPF32[(389084)>>2] = 1.0;
HEAP32[(389088)>>2] = 18096;
HEAP32[(389092)>>2] = -2048;
HEAP32[(389096)>>2] = 2048;
$2 = (($0|0) / 2)&-1;
HEAP32[(389100)>>2] = $2;
_MenuOptionsScreen_Show(388944,0,0,316);
return;
}
function _EnvSettingsScreen_InitWidgets($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16|0);
HEAP32[$1>>2] = 14;
_MenuOptionsScreen_InitButtons($0,4944,10,15);
return;
}
function _MenuOptionsScreen_Input($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp + 64|0;
$3 = sp;
$4 = (_Menu_Index($0,$1)|0);
$5 = ((($0)) + 28|0);
HEAP32[$5>>2] = $4;
_MenuOptionsScreen_FreeExtHelp($0);
_MenuOptionsScreen_FreeInput($0);
HEAP32[$2>>2] = $3;
$6 = ((($2)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($2)) + 6|0);
HEAP16[$7>>1] = 64;
$8 = ((($1)) + 72|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_vi[$9 & 511]($2);
$10 = ((($0)) + 16|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($11) + -1)|0;
$13 = ((($0)) + 240|0);
$14 = ((($0)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$16 = HEAP32[$5>>2]|0;
$17 = (($15) + ($16<<4)|0);
_Menu_Input($0,$12,$13,400,$2,$17,110);
$18 = (($11) + -2)|0;
$19 = ((($0)) + 80|0);
_Menu_Button($0,$18,$19,40,91,1,1,240,110);
$20 = (($11) + -3)|0;
$21 = ((($0)) + 160|0);
_Menu_Button($0,$20,$21,200,92,1,1,0,150);
_MenuOptionsScreen_RedrawInput($0);
_Window_OpenKeyboard();
_Window_SetKeyboardText($2);
STACKTOP = sp;return;
}
function _EnvSettingsScreen_GetCloudsCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407564)>>2]|0;
_PackedCol_ToHex($0,$1);
return;
}
function _EnvSettingsScreen_SetCloudsCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_HexCol($0)|0);
_Env_SetCloudsCol($1);
return;
}
function _EnvSettingsScreen_GetSkyCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407556)>>2]|0;
_PackedCol_ToHex($0,$1);
return;
}
function _EnvSettingsScreen_SetSkyCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_HexCol($0)|0);
_Env_SetSkyCol($1);
return;
}
function _EnvSettingsScreen_GetFogCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407560)>>2]|0;
_PackedCol_ToHex($0,$1);
return;
}
function _EnvSettingsScreen_SetFogCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_HexCol($0)|0);
_Env_SetFogCol($1);
return;
}
function _EnvSettingsScreen_GetCloudsSpeed($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1407528)>>2];
_String_AppendFloat($0,$1,2);
return;
}
function _EnvSettingsScreen_SetCloudsSpeed($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_Menu_Float($0));
_Env_SetCloudsSpeed($1);
return;
}
function _EnvSettingsScreen_GetCloudsHeight($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407524)>>2]|0;
_String_AppendInt($0,$1);
return;
}
function _EnvSettingsScreen_SetCloudsHeight($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_Int($0)|0);
_Env_SetCloudsHeight($1);
return;
}
function _EnvSettingsScreen_GetSunCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407572)>>2]|0;
_PackedCol_ToHex($0,$1);
return;
}
function _EnvSettingsScreen_SetSunCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_HexCol($0)|0);
_Env_SetSunCol($1);
return;
}
function _EnvSettingsScreen_GetShadowCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407588)>>2]|0;
_PackedCol_ToHex($0,$1);
return;
}
function _EnvSettingsScreen_SetShadowCol($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_HexCol($0)|0);
_Env_SetShadowCol($1);
return;
}
function _MenuOptionsScreen_Enum($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp + 72|0;
$3 = sp;
$4 = sp + 64|0;
$5 = (_Menu_Index($0,$1)|0);
HEAP32[$2>>2] = $3;
$6 = ((($2)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($2)) + 6|0);
HEAP16[$7>>1] = 64;
$8 = ((($1)) + 72|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_vi[$9 & 511]($2);
$10 = ((($0)) + 20|0);
$11 = HEAP32[$10>>2]|0;
$12 = (((($11) + ($5<<4)|0)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = (((($11) + ($5<<4)|0)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$16 = (_Utils_ParseEnum($2,0,$13,$15)|0);
$17 = (($16) + 1)|0;
$18 = (($17|0) % ($15|0))&-1;
$19 = (($13) + ($18<<2)|0);
$20 = HEAP32[$19>>2]|0;
_String_FromReadonly($4,$20);
$21 = $4;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = $2;
$28 = $27;
HEAP32[$28>>2] = $23;
$29 = (($27) + 4)|0;
$30 = $29;
HEAP32[$30>>2] = $26;
_MenuOptionsScreen_Set($0,$5,$2);
STACKTOP = sp;return;
}
function _EnvSettingsScreen_GetWeather($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407540)>>2]|0;
$2 = (18816 + ($1<<2)|0);
$3 = HEAP32[$2>>2]|0;
_String_AppendConst($0,$3);
return;
}
function _EnvSettingsScreen_SetWeather($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Utils_ParseEnum($0,0,18816,3)|0);
_Env_SetWeather($1);
return;
}
function _EnvSettingsScreen_GetWeatherSpeed($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1407532)>>2];
_String_AppendFloat($0,$1,2);
return;
}
function _EnvSettingsScreen_SetWeatherSpeed($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_Menu_Float($0));
_Env_SetWeatherSpeed($1);
return;
}
function _EnvSettingsScreen_GetEdgeHeight($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407516)>>2]|0;
_String_AppendInt($0,$1);
return;
}
function _EnvSettingsScreen_SetEdgeHeight($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_Int($0)|0);
_Env_SetEdgeHeight($1);
return;
}
function _Menu_Int($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
(_Convert_ParseInt($0,$1)|0);
$2 = HEAP32[$1>>2]|0;
STACKTOP = sp;return ($2|0);
}
function _Menu_Float($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
(_Convert_ParseFloat($0,$1)|0);
$2 = +HEAPF32[$1>>2];
STACKTOP = sp;return (+$2);
}
function _Menu_HexCol($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
(_PackedCol_TryParseHex($0,$1)|0);
$2 = HEAP8[$1>>0]|0;
$3 = $2&255;
$4 = ((($1)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
$7 = $6 << 8;
$8 = ((($1)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $10 << 16;
$12 = $7 | $3;
$13 = $12 | $11;
$14 = $13 | -16777216;
STACKTOP = sp;return ($14|0);
}
function _MenuOptionsScreen_OK($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_MenuOptionsScreen_EnterInput($0);
return;
}
function _MenuOptionsScreen_Default($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp + 64|0;
$3 = sp;
$4 = ((($0)) + 20|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + ($7<<4)|0);
HEAP32[$2>>2] = $3;
$9 = ((($2)) + 4|0);
HEAP16[$9>>1] = 0;
$10 = ((($2)) + 6|0);
HEAP16[$10>>1] = 64;
$11 = HEAP32[$8>>2]|0;
$12 = ((($11)) + 16|0);
$13 = HEAP32[$12>>2]|0;
FUNCTION_TABLE_vii[$13 & 127]($8,$2);
$14 = ((($0)) + 240|0);
_InputWidget_SetText($14,$2);
STACKTOP = sp;return;
}
function _HacksSettingsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(389128)>>2] = 30720;
HEAP32[(389132)>>2] = 30823;
HEAP32[(389148)>>2] = 30938;
HEAP32[(389152)>>2] = 31121;
HEAP32[(389184)>>2] = 18136;
HEAPF32[(389188)>>2] = 0.10000000149011612;
HEAPF32[(389192)>>2] = 50.0;
HEAPF32[(389196)>>2] = 10.0;
HEAP32[(389216)>>2] = 18136;
HEAPF32[(389220)>>2] = 0.10000000149011612;
HEAPF32[(389224)>>2] = 2048.0;
HEAPF32[(389228)>>2] = 1.2330000400543213;
HEAP32[(389312)>>2] = 18096;
HEAP32[(389316)>>2] = 1;
HEAP32[(389320)>>2] = 179;
HEAP32[(389324)>>2] = 70;
_MenuOptionsScreen_Show(389168,389120,11,317);
return;
}
function _HacksSettingsScreen_InitWidgets($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16|0);
HEAP32[$1>>2] = 14;
$2 = ((($0)) + 48|0);
HEAP32[$2>>2] = 318;
_MenuOptionsScreen_InitButtons($0,5152,10,15);
_HacksSettingsScreen_CheckHacksAllowed($0);
return;
}
function _HacksSettingsScreen_CheckHacksAllowed($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $narrow19 = 0, $narrow20 = 0, $narrow21 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
$2 = HEAP32[$1>>2]|0;
$3 = HEAP8[(1242626)>>0]|0;
$4 = ($3<<24>>24)==(0);
$5 = HEAP8[(1242629)>>0]|0;
$6 = ($5<<24>>24)==(0);
$narrow = $4 | $6;
$7 = $narrow&1;
$8 = ((($2)) + 12|0);
$9 = HEAP32[$8>>2]|0;
$10 = ((($9)) + 21|0);
HEAP8[$10>>0] = $7;
$11 = HEAP8[(1242629)>>0]|0;
$12 = ($11<<24>>24)==(0);
$narrow19 = $4 | $12;
$13 = $narrow19&1;
$14 = ((($2)) + 16|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($15)) + 21|0);
HEAP8[$16>>0] = $13;
$17 = HEAP8[(1242629)>>0]|0;
$18 = ($17<<24>>24)==(0);
$narrow20 = $4 | $18;
$19 = $narrow20&1;
$20 = ((($2)) + 20|0);
$21 = HEAP32[$20>>2]|0;
$22 = ((($21)) + 21|0);
HEAP8[$22>>0] = $19;
$23 = HEAP8[(1242633)>>0]|0;
$24 = ($23<<24>>24)==(0);
$narrow21 = $4 | $24;
$25 = $narrow21&1;
$26 = ((($2)) + 28|0);
$27 = HEAP32[$26>>2]|0;
$28 = ((($27)) + 21|0);
HEAP8[$28>>0] = $25;
return;
}
function _HacksSettingsScreen_GetHacks($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242626)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _HacksSettingsScreen_SetHacks($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31551)|0);
HEAP8[(1242626)>>0] = $1;
_HacksComp_Update((1242616));
return;
}
function _HacksSettingsScreen_GetSpeed($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1242620)>>2];
_String_AppendFloat($0,$1,2);
return;
}
function _HacksSettingsScreen_SetSpeed($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_Menu_Float($0));
HEAPF32[(1242620)>>2] = $1;
_Options_Set(31529,$0);
return;
}
function _HacksSettingsScreen_GetClipping($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1230545)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _HacksSettingsScreen_SetClipping($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31508)|0);
HEAP8[(1230545)>>0] = $1;
return;
}
function _HacksSettingsScreen_GetJump($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_LocalPlayer_JumpHeight());
_String_AppendFloat($0,$1,3);
return;
}
function _HacksSettingsScreen_SetJump($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
$3 = (+_Menu_Float($0));
$4 = (+_PhysicsComp_CalcJumpVelocity($3));
HEAPF32[(1242968)>>2] = $4;
HEAPF32[(1242972)>>2] = $4;
HEAP32[$1>>2] = $2;
$5 = ((($1)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($1)) + 6|0);
HEAP16[$6>>1] = 64;
_String_AppendFloat($1,$4,8);
_Options_Set(31489,$1);
STACKTOP = sp;return;
}
function _HacksSettingsScreen_GetWOMHacks($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242649)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _HacksSettingsScreen_SetWOMHacks($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31469)|0);
HEAP8[(1242649)>>0] = $1;
return;
}
function _HacksSettingsScreen_GetFullStep($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242625)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _HacksSettingsScreen_SetFullStep($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31449)|0);
HEAP8[(1242625)>>0] = $1;
return;
}
function _HacksSettingsScreen_GetLiquids($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408230]|0;
_Menu_GetBool($0,$1);
return;
}
function _HacksSettingsScreen_SetLiquids($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31426)|0);
HEAP8[1408230] = $1;
return;
}
function _HacksSettingsScreen_GetPushback($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242624)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _HacksSettingsScreen_SetPushback($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31404)|0);
HEAP8[(1242624)>>0] = $1;
return;
}
function _HacksSettingsScreen_GetSlide($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242648)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _HacksSettingsScreen_SetSlide($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31386)|0);
HEAP8[(1242648)>>0] = $1;
return;
}
function _HacksSettingsScreen_GetFOV($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315053]|0;
_String_AppendInt($0,$1);
return;
}
function _HacksSettingsScreen_SetFOV($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_Int($0)|0);
$2 = HEAP32[315072]|0;
$3 = ($2|0)>($1|0);
if ($3) {
HEAP32[315072] = $1;
}
HEAP32[315071] = $1;
_Options_Set(31376,$0);
_Game_SetFov($1);
return;
}
function _NormalKeyBindingsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
_KeyBindingsScreen_Show(12,31570,5360,319);
return;
}
function _NormalKeyBindingsScreen_Init($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 40|0);
HEAP32[$1>>2] = 93;
_KeyBindingsScreen_InitWidgets($0,-140,10,6,250,31600);
return;
}
function _KeyBindingsScreen_Show($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1275924)>>0] = 1;
HEAP8[(1275926)>>0] = 1;
HEAP32[318980] = 12316;
HEAP32[(1275944)>>2] = $0;
HEAP32[(1275952)>>2] = $1;
HEAP32[(1275948)>>2] = $2;
HEAP32[(1275964)>>2] = $3;
_Gui_Replace(1275920,50);
return;
}
function _KeyBindingsScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 389344;
$2 = ((($0)) + 24|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($3) + 5)|0;
$5 = ((($0)) + 16|0);
HEAP32[$5>>2] = $4;
$6 = ((($0)) + 20|0);
HEAP32[$6>>2] = -1;
$7 = ((($0)) + 36|0);
HEAP32[$7>>2] = 0;
$8 = ((($0)) + 40|0);
HEAP32[$8>>2] = 0;
$9 = ((($0)) + 48|0);
HEAP32[$9>>2] = 0;
$10 = ((($0)) + 52|0);
HEAP32[$10>>2] = 1408293;
$11 = ((($0)) + 44|0);
$12 = HEAP32[$11>>2]|0;
FUNCTION_TABLE_vi[$12 & 511]($0);
return;
}
function _KeyBindingsScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _KeyBindingsScreen_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 20|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(-1);
if ($4) {
$5 = (_Screen_InputDown($0,$1)|0);
$$0 = $5;
return ($$0|0);
}
$6 = ((($0)) + 32|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($7) + ($3)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = ($1|0)==(92);
if ($11) {
$12 = (3824 + ($10)|0);
$13 = HEAP8[$12>>0]|0;
$14 = $13&255;
$$019 = $14;
} else {
$$019 = $1;
}
_KeyBind_Set($10,$$019);
$15 = HEAP32[$2>>2]|0;
HEAP32[$2>>2] = -1;
$16 = ((($0)) + 6|0);
HEAP8[$16>>0] = 1;
_KeyBindingsScreen_Update($0,$15);
$$0 = 1;
return ($$0|0);
}
function _KeyBindingsScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
_Font_Free($1);
_Screen_ContextLost($0);
return;
}
function _KeyBindingsScreen_ContextRecreated($0) {
$0 = $0|0;
var $$021 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 56|0);
_Menu_MakeTitleFont($2);
_Menu_MakeBodyFont($1);
$3 = ((($0)) + 24|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if ($5) {
$$021 = 0;
while(1) {
_KeyBindingsScreen_Update($0,$$021);
$6 = (($$021) + 1)|0;
$7 = HEAP32[$3>>2]|0;
$8 = ($6|0)<($7|0);
if ($8) {
$$021 = $6;
} else {
break;
}
}
}
$9 = ((($0)) + 68|0);
$10 = ((($0)) + 48|0);
$11 = HEAP32[$10>>2]|0;
_TextWidget_SetConst($9,$11,$2);
$12 = ((($0)) + 136|0);
$13 = ((($0)) + 52|0);
$14 = HEAP32[$13>>2]|0;
_TextWidget_SetConst($12,$14,$1);
$15 = ((($0)) + 204|0);
_ButtonWidget_SetConst($15,28640,$2);
_Font_Free($1);
$16 = ((($0)) + 36|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)==(0|0);
if ($18) {
$19 = ((($0)) + 40|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==(0|0);
if ($21) {
STACKTOP = sp;return;
}
}
$22 = ((($0)) + 284|0);
_ButtonWidget_SetConst($22,36411,$2);
$23 = ((($0)) + 364|0);
_ButtonWidget_SetConst($23,36413,$2);
STACKTOP = sp;return;
}
function _KeyBindingsScreen_Update($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp + 64|0;
$3 = sp;
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 64;
$6 = ((($0)) + 20|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==($1|0);
$9 = $8 ? 31582 : 31593;
$10 = ((($0)) + 28|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($11) + ($1<<2)|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($0)) + 32|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($15) + ($1)|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = (379728 + ($18)|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = (3280 + ($21<<2)|0);
$23 = HEAP32[$22>>2]|0;
_String_Format2($2,$9,$13,$23);
$24 = (((($0)) + 444|0) + (($1*80)|0)|0);
$25 = ((($0)) + 56|0);
_ButtonWidget_Set($24,$2,$25);
STACKTOP = sp;return;
}
function _Menu_SwitchKeysHacks($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_HacksKeyBindingsScreen_Show();
return;
}
function _KeyBindingsScreen_InitWidgets($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$060$lcssa = 0, $$06061 = 0, $$062 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = (($4|0) / 2)&-1;
$7 = (($6) + 5)|0;
$8 = ((($0)) + 48|0);
HEAP32[$8>>2] = $5;
$9 = ((($0)) + 24|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)>(0);
if ($11) {
$12 = ($3|0)==(-1);
$$06061 = 0;$$062 = $1;
while(1) {
$13 = ($$06061|0)==($3|0);
$spec$select = $13 ? $1 : $$062;
$14 = ($$06061|0)<($3|0);
$15 = $14 ? -1 : 1;
$16 = $12 ? 0 : $15;
$17 = (((($0)) + 444|0) + (($$06061*80)|0)|0);
$18 = Math_imul($16, $7)|0;
_Menu_Button($0,$$06061,$17,$4,94,1,1,$18,$spec$select);
$19 = (($spec$select) + 50)|0;
$20 = (($$06061) + 1)|0;
$21 = HEAP32[$9>>2]|0;
$22 = ($20|0)<($21|0);
if ($22) {
$$06061 = $20;$$062 = $19;
} else {
$$060$lcssa = $20;
break;
}
}
} else {
$$060$lcssa = 0;
}
$23 = ((($0)) + 68|0);
_Menu_Label($0,$$060$lcssa,$23,1,1,0,-180);
$24 = (($$060$lcssa) + 1)|0;
$25 = ((($0)) + 136|0);
_Menu_Label($0,$24,$25,1,1,0,100);
$26 = (($$060$lcssa) + 2)|0;
$27 = ((($0)) + 204|0);
$28 = HEAP8[1408259]|0;
$29 = ($28<<24>>24)==(0);
$30 = $29 ? 15 : 10;
_Menu_Back($0,$26,$27,$30);
$31 = (($$060$lcssa) + 3)|0;
$32 = ((($0)) + 36|0);
$33 = HEAP32[$32>>2]|0;
$34 = ($33|0)==(0|0);
if ($34) {
$35 = ((($0)) + 40|0);
$36 = HEAP32[$35>>2]|0;
$37 = ($36|0)==(0|0);
if ($37) {
return;
}
}
$38 = ((($0)) + 284|0);
$39 = (-35 - ($4))|0;
_Menu_Button($0,$31,$38,40,$33,1,1,$39,$2);
$40 = (($$060$lcssa) + 4)|0;
$41 = ((($0)) + 364|0);
$42 = ((($0)) + 40|0);
$43 = HEAP32[$42>>2]|0;
$44 = (($4) + 35)|0;
_Menu_Button($0,$40,$41,40,$43,1,1,$44,$2);
$45 = HEAP32[$32>>2]|0;
$46 = ($45|0)==(0|0);
$47 = $46&1;
$48 = ((($0)) + 305|0);
HEAP8[$48>>0] = $47;
$49 = HEAP32[$42>>2]|0;
$50 = ($49|0)==(0|0);
$51 = $50&1;
$52 = ((($0)) + 385|0);
HEAP8[$52>>0] = $51;
return;
}
function _KeyBindingsScreen_OnBindingClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 20|0);
$3 = HEAP32[$2>>2]|0;
$4 = (_Menu_Index($0,$1)|0);
HEAP32[$2>>2] = $4;
$5 = ((($0)) + 6|0);
HEAP8[$5>>0] = 0;
_KeyBindingsScreen_Update($0,$4);
$6 = ($3|0)>(-1);
if (!($6)) {
return;
}
_KeyBindingsScreen_Update($0,$3);
return;
}
function _Menu_SwitchClassicOptions($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ClassicOptionsScreen_Show();
return;
}
function _ClassicOptionsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(389456)>>2] = 0;
HEAP32[(389460)>>2] = 5408;
HEAP32[(389464)>>2] = 4;
HEAP32[(389536)>>2] = 0;
HEAP32[(389540)>>2] = 2640;
HEAP32[(389544)>>2] = 6;
_MenuOptionsScreen_Show(389424,0,0,320);
return;
}
function _ClassicOptionsScreen_InitWidgets($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16|0);
HEAP32[$1>>2] = 14;
$2 = ((($0)) + 44|0);
HEAP32[$2>>2] = 321;
_MenuOptionsScreen_InitButtons($0,5424,9,76);
$3 = ((($0)) + 1480|0);
_Menu_Button($0,9,$3,400,95,1,2,0,95);
$4 = HEAP8[(1384580)>>0]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
_Menu_Remove($0,3);
}
$6 = HEAP8[1408233]|0;
$7 = ($6<<24>>24)==(0);
if (!($7)) {
return;
}
_Menu_Remove($0,8);
return;
}
function _ClassicOptionsScreen_RecreateExtra($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 1480|0);
$2 = ((($0)) + 56|0);
_ButtonWidget_SetConst($1,30173,$2);
return;
}
function _Menu_SwitchKeysClassic($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ClassicKeyBindingsScreen_Show();
return;
}
function _Menu_Remove($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($3) + ($1<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(0|0);
if (!($6)) {
$7 = HEAP32[$5>>2]|0;
$8 = ($7|0)==(0|0);
if (!($8)) {
$9 = ((($7)) + 4|0);
$10 = HEAP32[$9>>2]|0;
FUNCTION_TABLE_vi[$10 & 511]($5);
}
}
HEAP32[$4>>2] = 0;
return;
}
function _ClassicKeyBindingsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
_KeyBindingsScreen_Show(10,31616,5616,322);
return;
}
function _ClassicKeyBindingsScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408233]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
_KeyBindingsScreen_InitWidgets($0,-140,-40,5,300,31626);
return;
} else {
$3 = ((($0)) + 40|0);
HEAP32[$3>>2] = 96;
_KeyBindingsScreen_InitWidgets($0,-140,-40,5,260,31600);
return;
}
}
function _Menu_SwitchKeysClassicHacks($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ClassicHacksKeyBindingsScreen_Show();
return;
}
function _ClassicHacksKeyBindingsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
_KeyBindingsScreen_Show(6,31635,5664,323);
return;
}
function _ClassicHacksKeyBindingsScreen_Init($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
HEAP32[$1>>2] = 95;
_KeyBindingsScreen_InitWidgets($0,-90,-40,3,260,31641);
return;
}
function _ClassicOptionsScreen_GetMusic($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (0)>(0);
$2 = $1&1;
_Menu_GetBool($0,$2);
return;
}
function _ClassicOptionsScreen_SetMusic($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_String_CaselessEqualsConst($0,28876)|0);
$2 = ($1|0)==(0);
$3 = $2 ? 0 : 100;
_Audio_SetMusic($3);
_Options_SetInt(31950,0);
return;
}
function _ClassicOptionsScreen_GetInvert($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1230546)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _ClassicOptionsScreen_SetInvert($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31938)|0);
HEAP8[(1230546)>>0] = $1;
return;
}
function _ClassicOptionsScreen_GetViewDist($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315051]|0;
$2 = ($1|0)>(511);
if ($2) {
_String_AppendConst($0,31916);
return;
}
$3 = ($1|0)>(127);
if ($3) {
_String_AppendConst($0,31920);
return;
}
$4 = ($1|0)>(31);
if ($4) {
_String_AppendConst($0,31927);
return;
} else {
_String_AppendConst($0,31933);
return;
}
}
function _ClassicOptionsScreen_SetViewDist($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Utils_ParseEnum($0,0,5408,4)|0);
switch ($1|0) {
case 3: {
$4 = 512;
break;
}
case 2: {
$4 = 128;
break;
}
default: {
$2 = ($1|0)==(1);
$3 = $2 ? 32 : 8;
$4 = $3;
}
}
_Game_UserSetViewDistance($4);
return;
}
function _ClassicOptionsScreen_GetPhysics($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1226244]|0;
_Menu_GetBool($0,$1);
return;
}
function _ClassicOptionsScreen_SetPhysics($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31896)|0);
_Physics_SetEnabled($1);
return;
}
function _ClassicOptionsScreen_GetSounds($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (0)>(0);
$2 = $1&1;
_Menu_GetBool($0,$2);
return;
}
function _ClassicOptionsScreen_SetSounds($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_String_CaselessEqualsConst($0,28876)|0);
$2 = ($1|0)==(0);
$3 = $2 ? 0 : 100;
_Audio_SetSounds($3);
_Options_SetInt(31883,0);
return;
}
function _ClassicOptionsScreen_GetShowFPS($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408260]|0;
_Menu_GetBool($0,$1);
return;
}
function _ClassicOptionsScreen_SetShowFPS($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31871)|0);
HEAP8[1408260] = $1;
return;
}
function _ClassicOptionsScreen_GetViewBob($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408237]|0;
_Menu_GetBool($0,$1);
return;
}
function _ClassicOptionsScreen_SetViewBob($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31859)|0);
HEAP8[1408237] = $1;
return;
}
function _MenuOptionsScreen_GetFPS($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315054]|0;
$2 = (2640 + ($1<<2)|0);
$3 = HEAP32[$2>>2]|0;
_String_AppendConst($0,$3);
return;
}
function _MenuOptionsScreen_SetFPS($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Utils_ParseEnum($0,0,2640,6)|0);
_Options_Set(31850,$0);
_Game_SetFpsLimit($1);
return;
}
function _ClassicOptionsScreen_GetHacks($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242626)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _ClassicOptionsScreen_SetHacks($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31551)|0);
HEAP8[(1242626)>>0] = $1;
_HacksComp_Update((1242616));
return;
}
function _HacksKeyBindingsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
_KeyBindingsScreen_Show(8,31962,5696,324);
return;
}
function _HacksKeyBindingsScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
HEAP32[$1>>2] = 22;
$2 = ((($0)) + 40|0);
HEAP32[$2>>2] = 97;
_KeyBindingsScreen_InitWidgets($0,-40,10,4,260,31641);
return;
}
function _Menu_SwitchKeysOther($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_OtherKeyBindingsScreen_Show();
return;
}
function _OtherKeyBindingsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
_KeyBindingsScreen_Show(12,31970,5728,325);
return;
}
function _OtherKeyBindingsScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
HEAP32[$1>>2] = 93;
$2 = ((($0)) + 40|0);
HEAP32[$2>>2] = 98;
_KeyBindingsScreen_InitWidgets($0,-140,10,6,260,31982);
return;
}
function _Menu_SwitchKeysMouse($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_MouseKeyBindingsScreen_Show();
return;
}
function _MouseKeyBindingsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
_KeyBindingsScreen_Show(3,31997,12380,326);
return;
}
function _MouseKeyBindingsScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
HEAP32[$1>>2] = 97;
$2 = ((($0)) + 52|0);
HEAP32[$2>>2] = 32000;
_KeyBindingsScreen_InitWidgets($0,-40,10,-1,260,32036);
return;
}
function _GraphicsOptionsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[97400] = 32302;
HEAP32[(389608)>>2] = 32549;
HEAP32[(389612)>>2] = 32633;
HEAP32[(389616)>>2] = 32930;
HEAP32[97408] = 0;
HEAP32[(389636)>>2] = 2640;
HEAP32[(389640)>>2] = 6;
HEAP32[(389648)>>2] = 18096;
HEAP32[(389652)>>2] = 8;
HEAP32[(389656)>>2] = 4096;
HEAP32[(389660)>>2] = 512;
HEAP32[(389680)>>2] = 0;
HEAP32[(389684)>>2] = 1312;
HEAP32[(389688)>>2] = 5;
HEAP32[(389696)>>2] = 0;
HEAP32[(389700)>>2] = 1344;
HEAP32[(389704)>>2] = 4;
_MenuOptionsScreen_Show(389632,389600,7,327);
return;
}
function _GraphicsOptionsScreen_InitWidgets($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16|0);
HEAP32[$1>>2] = 10;
_MenuOptionsScreen_InitButtons($0,5776,6,15);
return;
}
function _GraphicsOptionsScreen_GetViewDist($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315051]|0;
_String_AppendInt($0,$1);
return;
}
function _GraphicsOptionsScreen_SetViewDist($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_Int($0)|0);
_Game_UserSetViewDistance($1);
return;
}
function _GraphicsOptionsScreen_GetSmooth($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408208]|0;
_Menu_GetBool($0,$1);
return;
}
function _GraphicsOptionsScreen_SetSmooth($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,33272)|0);
HEAP8[1408208] = $1;
_Builder_ApplyActive();
_MapRenderer_Refresh();
return;
}
function _GraphicsOptionsScreen_GetNames($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242148)>>0]|0;
$2 = $1&255;
$3 = (1312 + ($2<<2)|0);
$4 = HEAP32[$3>>2]|0;
_String_AppendConst($0,$4);
return;
}
function _GraphicsOptionsScreen_SetNames($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Utils_ParseEnum($0,0,1312,5)|0);
$2 = $1&255;
HEAP8[(1242148)>>0] = $2;
_Options_Set(33262,$0);
return;
}
function _GraphicsOptionsScreen_GetShadows($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242149)>>0]|0;
$2 = $1&255;
$3 = (1344 + ($2<<2)|0);
$4 = HEAP32[$3>>2]|0;
_String_AppendConst($0,$4);
return;
}
function _GraphicsOptionsScreen_SetShadows($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Utils_ParseEnum($0,0,1344,4)|0);
$2 = $1&255;
HEAP8[(1242149)>>0] = $2;
_Options_Set(33249,$0);
return;
}
function _GraphicsOptionsScreen_GetMipmaps($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1260361)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _GraphicsOptionsScreen_SetMipmaps($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,33237)|0);
HEAP8[(1260361)>>0] = $1;
_TexturePack_ExtractCurrent(1);
return;
}
function _GuiOptionsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(389776)>>2] = 18136;
HEAPF32[(389780)>>2] = 0.25;
HEAPF32[(389784)>>2] = 4.0;
HEAPF32[(389788)>>2] = 1.0;
HEAP32[(389792)>>2] = 18136;
HEAPF32[(389796)>>2] = 0.25;
HEAPF32[(389800)>>2] = 4.0;
HEAPF32[(389804)>>2] = 1.0;
HEAP32[(389840)>>2] = 18136;
HEAPF32[(389844)>>2] = 0.25;
HEAPF32[(389848)>>2] = 4.0;
HEAPF32[(389852)>>2] = 1.0;
HEAP32[(389856)>>2] = 18096;
HEAP32[(389860)>>2] = 0;
HEAP32[(389864)>>2] = 30;
HEAP32[(389868)>>2] = 10;
_MenuOptionsScreen_Show(389744,0,0,328);
return;
}
function _GuiOptionsScreen_InitWidgets($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16|0);
HEAP32[$1>>2] = 14;
_MenuOptionsScreen_InitButtons($0,5904,10,15);
return;
}
function _GuiOptionsScreen_GetShadows($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408217]|0;
_Menu_GetBool($0,$1);
return;
}
function _GuiOptionsScreen_SetShadows($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,33588)|0);
HEAP8[1408217] = $1;
_Event_RaiseVoid(1254716);
return;
}
function _GuiOptionsScreen_GetShowFPS($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408260]|0;
_Menu_GetBool($0,$1);
return;
}
function _GuiOptionsScreen_SetShowFPS($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31871)|0);
HEAP8[1408260] = $1;
return;
}
function _GuiOptionsScreen_GetHotbar($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[315047];
_String_AppendFloat($0,$1,1);
return;
}
function _GuiOptionsScreen_SetHotbar($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_GuiOptionsScreen_SetScale($0,1260188,33572);
return;
}
function _GuiOptionsScreen_GetInventory($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[315048];
_String_AppendFloat($0,$1,1);
return;
}
function _GuiOptionsScreen_SetInventory($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_GuiOptionsScreen_SetScale($0,1260192,33553);
return;
}
function _GuiOptionsScreen_GetTabAuto($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408256]|0;
_Menu_GetBool($0,$1);
return;
}
function _GuiOptionsScreen_SetTabAuto($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,33532)|0);
HEAP8[1408256] = $1;
return;
}
function _GuiOptionsScreen_GetClickable($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408255]|0;
_Menu_GetBool($0,$1);
return;
}
function _GuiOptionsScreen_SetClickable($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,33514)|0);
HEAP8[1408255] = $1;
return;
}
function _GuiOptionsScreen_GetChatScale($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[315049];
_String_AppendFloat($0,$1,1);
return;
}
function _GuiOptionsScreen_SetChatScale($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_GuiOptionsScreen_SetScale($0,1260196,33500);
return;
}
function _GuiOptionsScreen_GetChatlines($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315202]|0;
_String_AppendInt($0,$1);
return;
}
function _GuiOptionsScreen_SetChatlines($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_Int($0)|0);
HEAP32[315202] = $1;
_ChatScreen_SetChatlines($1);
_Options_Set(33486,$0);
return;
}
function _GuiOptionsScreen_GetUseFont($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408216]|0;
$2 = ($1<<24>>24)==(0);
$3 = $2&1;
_Menu_GetBool($0,$3);
return;
}
function _GuiOptionsScreen_SetUseFont($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,33468)|0);
$2 = ($1<<24>>24)==(0);
$3 = $2&1;
HEAP8[1408216] = $3;
_Event_RaiseVoid(1254716);
return;
}
function _Menu_SwitchFont($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_FontListScreen_Show();
return;
}
function _FontListScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1269160)>>2] = 33429;
HEAP32[(1269152)>>2] = 329;
HEAP32[(1269144)>>2] = 99;
HEAP32[(1269148)>>2] = 20;
HEAP32[(1269156)>>2] = 12;
_ListScreen_Show();
return;
}
function _FontListScreen_LoadEntries($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ListScreen_Sort($0);
_ListScreen_Select($0);
return;
}
function _FontListScreen_EntryClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
_ListScreen_UNSAFE_GetCur($2,$0,$1);
$3 = (_String_CaselessEqualsConst($2,28661)|0);
$4 = ($3|0)==(0);
if (!($4)) {
STACKTOP = sp;return;
}
_String_Copy(11204,$2);
_Options_Set(33455,$2);
_Event_RaiseVoid(1254716);
STACKTOP = sp;return;
}
function _FontListScreen_UpdateEntry($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = (_String_CaselessEqualsConst($2,28661)|0);
$5 = ($4|0)==(0);
if (!($5)) {
$6 = ((($0)) + 660|0);
_ButtonWidget_Set($1,$2,$6);
STACKTOP = sp;return;
}
$7 = (_Font_Make($3,$2,16,0)|0);
$8 = ($7|0)==(0);
if ($8) {
_ButtonWidget_Set($1,$2,$3);
} else {
_Logger_SimpleWarn2($7,33443,$2);
$9 = ((($0)) + 660|0);
_ButtonWidget_Set($1,$2,$9);
}
_Font_Free($3);
STACKTOP = sp;return;
}
function _ListScreen_Select($0) {
$0 = $0|0;
var $$03 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
$3 = ((($0)) + 844|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
STACKTOP = sp;return;
}
$6 = ((($0)) + 836|0);
$$03 = 0;
while(1) {
_StringsBuffer_UNSAFE_Get($2,$6,$$03);
$7 = $2;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = $1;
$14 = $13;
HEAP32[$14>>2] = $9;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = $12;
$17 = (_String_CaselessEquals($1,11204)|0);
$18 = ($17|0)==(0);
if (!($18)) {
break;
}
$20 = (($$03) + 1)|0;
$21 = HEAP32[$3>>2]|0;
$22 = ($20|0)<($21|0);
if ($22) {
$$03 = $20;
} else {
label = 6;
break;
}
}
if ((label|0) == 6) {
STACKTOP = sp;return;
}
$19 = ((($0)) + 676|0);
HEAP32[$19>>2] = $$03;
STACKTOP = sp;return;
}
function _GuiOptionsScreen_SetScale($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (+_Menu_Float($0));
HEAPF32[$1>>2] = $3;
_Options_Set($2,$0);
_Gui_RefreshChat();
return;
}
function _MiscOptionsScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[97480] = 18136;
HEAPF32[(389924)>>2] = 1.0;
HEAPF32[(389928)>>2] = 1024.0;
HEAPF32[(389932)>>2] = 5.0;
HEAP32[(389936)>>2] = 18096;
HEAP32[(389940)>>2] = 0;
HEAP32[(389944)>>2] = 100;
HEAP32[(389948)>>2] = 0;
HEAP32[(389952)>>2] = 18096;
HEAP32[(389956)>>2] = 0;
HEAP32[(389960)>>2] = 100;
HEAP32[(389964)>>2] = 0;
HEAP32[(390032)>>2] = 18096;
HEAP32[(390036)>>2] = 1;
HEAP32[(390040)>>2] = 200;
HEAP32[(390044)>>2] = 30;
_MenuOptionsScreen_Show(389920,0,0,330);
return;
}
function _MiscSettingsScreen_InitWidgets($0) {
$0 = $0|0;
var $$pr = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16|0);
HEAP32[$1>>2] = 12;
_MenuOptionsScreen_InitButtons($0,6112,8,15);
$2 = HEAP8[(1384580)>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
return;
}
_Menu_Remove($0,0);
$$pr = HEAP8[(1384580)>>0]|0;
$4 = ($$pr<<24>>24)==(0);
if (!($4)) {
return;
}
_Menu_Remove($0,4);
return;
}
function _MiscOptionsScreen_GetReach($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1242612)>>2];
_String_AppendFloat($0,$1,2);
return;
}
function _MiscOptionsScreen_SetReach($0) {
$0 = $0|0;
var $1 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_Menu_Float($0));
HEAPF32[(1242612)>>2] = $1;
return;
}
function _MiscOptionsScreen_GetMusic($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_AppendInt($0,0);
return;
}
function _MiscOptionsScreen_SetMusic($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Options_Set(31950,$0);
$1 = (_Menu_Int($0)|0);
_Audio_SetMusic($1);
return;
}
function _MiscOptionsScreen_GetSounds($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_AppendInt($0,0);
return;
}
function _MiscOptionsScreen_SetSounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Options_Set(31883,$0);
$1 = (_Menu_Int($0)|0);
_Audio_SetSounds($1);
return;
}
function _MiscOptionsScreen_GetViewBob($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408237]|0;
_Menu_GetBool($0,$1);
return;
}
function _MiscOptionsScreen_SetViewBob($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31859)|0);
HEAP8[1408237] = $1;
return;
}
function _MiscOptionsScreen_GetPhysics($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1226244]|0;
_Menu_GetBool($0,$1);
return;
}
function _MiscOptionsScreen_SetPhysics($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31896)|0);
_Physics_SetEnabled($1);
return;
}
function _MiscOptionsScreen_GetAutoClose($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Options_GetBool(33706,0)|0);
_Menu_GetBool($0,$1);
return;
}
function _MiscOptionsScreen_SetAutoClose($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
(_Menu_SetBool($0,33706)|0);
return;
}
function _MiscOptionsScreen_GetInvert($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1230546)>>0]|0;
_Menu_GetBool($0,$1);
return;
}
function _MiscOptionsScreen_SetInvert($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_SetBool($0,31938)|0);
HEAP8[(1230546)>>0] = $1;
return;
}
function _MiscOptionsScreen_GetSensitivity($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[307635]|0;
_String_AppendInt($0,$1);
return;
}
function _MiscOptionsScreen_SetSensitivity($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Menu_Int($0)|0);
HEAP32[307635] = $1;
_Options_Set(33689,$0);
return;
}
function _Menu_SwitchClassicGenLevel($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ClassicGenScreen_Show();
return;
}
function _ClassicGenScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1277328)>>0] = 1;
HEAP8[(1277330)>>0] = 1;
HEAP32[319331] = 12392;
_Gui_Replace(1277324,50);
return;
}
function _ClassicGenScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 6320;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 4;
_ClassicGenScreen_Make($0,0,-100,100);
_ClassicGenScreen_Make($0,1,-50,101);
_ClassicGenScreen_Make($0,2,0,102);
$3 = ((($0)) + 260|0);
_Menu_MakeBack($3,76);
return;
}
function _ClassicGenScreen_BuildMesh($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1152|0;
$1 = sp;
_Screen_BuildMesh($0,$1);
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_SetDynamicVbData($3,$1,48);
STACKTOP = sp;return;
}
function _ClassicGenScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = (_Gfx_CreateDynamicVb(1,48)|0);
$3 = ((($0)) + 8|0);
HEAP32[$3>>2] = $2;
_Menu_MakeTitleFont($1);
$4 = ((($0)) + 20|0);
_ButtonWidget_SetConst($4,33724,$1);
$5 = ((($0)) + 100|0);
_ButtonWidget_SetConst($5,33730,$1);
$6 = ((($0)) + 180|0);
_ButtonWidget_SetConst($6,33737,$1);
$7 = ((($0)) + 260|0);
_ButtonWidget_SetConst($7,36109,$1);
_Font_Free($1);
STACKTOP = sp;return;
}
function _ClassicGenScreen_Small($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ClassicGenScreen_Gen(128);
return;
}
function _ClassicGenScreen_Make($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (((($0)) + 20|0) + (($1*80)|0)|0);
_ButtonWidget_Make($4,400,$3,1,1,0,$2);
return;
}
function _ClassicGenScreen_Medium($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ClassicGenScreen_Gen(256);
return;
}
function _ClassicGenScreen_Huge($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_ClassicGenScreen_Gen(512);
return;
}
function _ClassicGenScreen_Gen($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Random_SeedFromCurrentTime($1);
HEAP8[1408240] = 1;
$2 = (_Random_Next($1,2147483647)|0);
HEAP32[315079] = $2;
_Gui_Remove(1277324);
_Menu_BeginGen($0,64,$0);
STACKTOP = sp;return;
}
function _TexIdsOverlay_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1277668)>>0] = 1;
HEAP8[(1277670)>>0] = 1;
HEAP32[319416] = 12456;
_Gui_Replace(1277664,30);
return;
}
function _TexIdsOverlay_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 1277876;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 1;
$3 = ((($0)) + 144|0);
_Menu_Label($0,0,$3,1,0,0,0);
return;
}
function _TexIdsOverlay_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$018 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Menu_RenderBounds();
_Gfx_SetVertexFormat(1);
_Screen_RenderWidgets($0,$1);
$2 = ((($0)) + 24|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 36|0);
HEAP32[$4>>2] = 0;
$5 = HEAP32[(1386724)>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
HEAP32[$2>>2] = $3;
return;
}
$7 = ((($0)) + 32|0);
$$018 = $5;
while(1) {
_TexIdsOverlay_RenderTerrain($0);
_TexIdsOverlay_RenderTextOverlay($0);
$8 = HEAP32[$7>>2]|0;
$9 = $8 << 4;
$10 = HEAP32[$2>>2]|0;
$11 = (($10) + ($9))|0;
HEAP32[$2>>2] = $11;
$12 = HEAP32[$4>>2]|0;
$13 = (($12) + 256)|0;
HEAP32[$4>>2] = $13;
$14 = (($$018) + -16)|0;
$15 = ($$018|0)>(16);
if ($15) {
$$018 = $14;
} else {
break;
}
}
HEAP32[$2>>2] = $3;
return;
}
function _TexIdsOverlay_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _TexIdsOverlay_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(379761)>>0]|0;
$3 = $2&255;
$4 = ($3|0)==($1|0);
if (!($4)) {
$$0 = 0;
return ($$0|0);
}
_Gui_Remove($0);
$$0 = 1;
return ($$0|0);
}
function _TexIdsOverlay_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Screen_ContextLost($0);
$1 = ((($0)) + 20|0);
_Gfx_DeleteVb($1);
$2 = ((($0)) + 40|0);
_TextAtlas_Free($2);
return;
}
function _TexIdsOverlay_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 12|0;
$2 = sp;
$3 = HEAP32[351859]|0;
$4 = (($3|0) / 128)&-1;
$5 = $4 << 3;
$6 = ($5|0)>(8);
$7 = $6 ? $5 : 8;
$8 = ($7|0)<(40);
$9 = $8 ? $7 : 40;
$10 = (_Gfx_CreateDynamicVb(1,1024)|0);
$11 = ((($0)) + 20|0);
HEAP32[$11>>2] = $10;
_Drawer2D_MakeFont($1,8,0);
_Font_ReducePadding($1,4);
$12 = ((($0)) + 40|0);
_TextAtlas_Make($12,12520,$1,12528);
_Font_Free($1);
$13 = HEAP32[(1386724)>>2]|0;
$14 = Math_imul($13, $9)|0;
$15 = HEAP32[351858]|0;
$16 = (_Gui_CalcPos(1,0,$14,$15)|0);
$17 = ((($0)) + 24|0);
HEAP32[$17>>2] = $16;
$18 = $9 << 4;
$19 = HEAP32[351859]|0;
$20 = (_Gui_CalcPos(1,0,$18,$19)|0);
$21 = ((($0)) + 28|0);
HEAP32[$21>>2] = $20;
$22 = ((($0)) + 32|0);
HEAP32[$22>>2] = $9;
$23 = (($20) + -30)|0;
$24 = ((($0)) + 144|0);
$25 = ((($0)) + 172|0);
HEAP32[$25>>2] = $23;
_Menu_MakeTitleFont($2);
_TextWidget_SetConst($24,33742,$2);
_Font_Free($2);
STACKTOP = sp;return;
}
function _TexIdsOverlay_RenderTerrain($0) {
$0 = $0|0;
var $$034 = 0, $$1$lcssa = 0, $$133 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0.0;
var $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 24608|0;
$1 = sp;
$2 = sp + 24604|0;
$3 = sp + 24576|0;
$4 = ((($0)) + 32|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($3)) + 12|0);
HEAPF32[$6>>2] = 0.0;
$7 = ((($3)) + 20|0);
HEAPF32[$7>>2] = 0.99937498569488525;
$8 = $5&65535;
$9 = ((($3)) + 8|0);
HEAP16[$9>>1] = $8;
$10 = ((($3)) + 10|0);
HEAP16[$10>>1] = $8;
$11 = ((($0)) + 36|0);
$12 = ((($0)) + 24|0);
$13 = ((($3)) + 4|0);
$14 = ((($0)) + 28|0);
$15 = ((($3)) + 6|0);
$16 = ((($3)) + 16|0);
$17 = ((($3)) + 24|0);
$18 = $1;
$19 = ((($0)) + 20|0);
$$034 = 0;
while(1) {
HEAP32[$2>>2] = $1;
$20 = HEAP32[$11>>2]|0;
$21 = (($20) + ($$034))|0;
$22 = HEAP32[(1384652)>>2]|0;
$23 = ($22)?($21 >> $22):($21);
$24 = HEAP32[(1384644)>>2]|0;
$25 = (($24) + ($$034))|0;
$26 = ($25|0)<(256);
$spec$select = $26 ? $25 : 256;
$27 = ($$034|0)<($spec$select|0);
if ($27) {
$$133 = $$034;
while(1) {
$28 = HEAP32[$12>>2]|0;
$29 = $$133 & 15;
$30 = Math_imul($29, $5)|0;
$31 = (($28) + ($30))|0;
$32 = $31&65535;
HEAP16[$13>>1] = $32;
$33 = HEAP32[$14>>2]|0;
$34 = (4)?($$133 >> 4):($$133);
$35 = Math_imul($34, $5)|0;
$36 = (($33) + ($35))|0;
$37 = $36&65535;
HEAP16[$15>>1] = $37;
$38 = HEAP32[$11>>2]|0;
$39 = (($38) + ($$133))|0;
$40 = HEAP32[(1384648)>>2]|0;
$41 = $39 & $40;
$42 = (+($41|0));
$43 = +HEAPF32[(1384656)>>2];
$44 = $43 * $42;
HEAPF32[$16>>2] = $44;
$45 = $43 * 0.99937498569488525;
$46 = $45 + $44;
HEAPF32[$17>>2] = $46;
_Gfx_Make2DQuad($3,-1,$2);
$47 = (($$133) + 1)|0;
$48 = ($47|0)<($spec$select|0);
if ($48) {
$$133 = $47;
} else {
$$1$lcssa = $spec$select;
break;
}
}
} else {
$$1$lcssa = $$034;
}
$49 = (1384660 + ($23<<2)|0);
$50 = HEAP32[$49>>2]|0;
_Gfx_BindTexture($50);
$51 = HEAP32[$2>>2]|0;
$52 = (($51) - ($18))|0;
$53 = (($52|0) / 24)&-1;
$54 = HEAP32[$19>>2]|0;
_Gfx_UpdateDynamicVb_IndexedTris($54,$1,$53);
$55 = ($$1$lcssa|0)<(256);
if ($55) {
$$034 = $$1$lcssa;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _TexIdsOverlay_RenderTextOverlay($0) {
$0 = $0|0;
var $$03537 = 0, $$036 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $exitcond = 0, $exitcond38 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 24592|0;
$1 = sp;
$2 = sp + 24576|0;
HEAP32[$2>>2] = $1;
$3 = ((($0)) + 32|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 40|0);
$6 = ((($0)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($0)) + 50|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = (($7) + ($4))|0;
$12 = (($11) - ($10))|0;
$13 = $12&65535;
$14 = ((($0)) + 46|0);
HEAP16[$14>>1] = $13;
$15 = ((($0)) + 24|0);
$16 = ((($0)) + 72|0);
$17 = ((($0)) + 36|0);
$18 = $1;
$19 = ((($0)) + 20|0);
$$03537 = 0;
while(1) {
$20 = $$03537 << 4;
$$036 = 0;
while(1) {
$21 = HEAP32[$15>>2]|0;
$22 = Math_imul($$036, $4)|0;
$23 = (($22) + 3)|0;
$24 = (($23) + ($21))|0;
HEAP32[$16>>2] = $24;
$25 = (($$036) + ($20))|0;
$26 = HEAP32[$17>>2]|0;
$27 = (($25) + ($26))|0;
_TextAtlas_AddInt($5,$27,$2);
$28 = (($$036) + 1)|0;
$exitcond = ($28|0)==(16);
if ($exitcond) {
break;
} else {
$$036 = $28;
}
}
$29 = HEAP16[$14>>1]|0;
$30 = $29&65535;
$31 = (($4) + ($30))|0;
$32 = $31&65535;
HEAP16[$14>>1] = $32;
$33 = $$03537 & 3;
$34 = ($33|0)==(3);
if ($34) {
$35 = HEAP32[$5>>2]|0;
_Gfx_BindTexture($35);
$36 = HEAP32[$2>>2]|0;
$37 = (($36) - ($18))|0;
$38 = (($37|0) / 24)&-1;
$39 = HEAP32[$19>>2]|0;
_Gfx_UpdateDynamicVb_IndexedTris($39,$1,$38);
HEAP32[$2>>2] = $1;
}
$40 = (($$03537) + 1)|0;
$exitcond38 = ($40|0)==(16);
if ($exitcond38) {
break;
} else {
$$03537 = $40;
}
}
STACKTOP = sp;return;
}
function _UrlWarningOverlay_Show($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1277884)>>0] = 1;
HEAP8[(1277886)>>0] = 1;
HEAP32[319470] = 12536;
HEAP32[(1277900)>>2] = (1278340);
HEAP16[(1277904)>>1] = 0;
HEAP16[(1277906)>>1] = 256;
_String_Copy((1277900),$0);
_Gui_Replace(1277880,40);
return;
}
function _UrlWarningOverlay_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 6336;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 6;
$3 = ((($0)) + 188|0);
_Overlay_MakeLabels($3);
$4 = ((($0)) + 28|0);
_Overlay_MakeMainButtons($4);
$5 = ((($0)) + 60|0);
HEAP32[$5>>2] = 103;
$6 = ((($0)) + 140|0);
HEAP32[$6>>2] = 104;
return;
}
function _UrlWarningOverlay_BuildMesh($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 960|0;
$1 = sp;
_Screen_BuildMesh($0,$1);
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_SetDynamicVbData($3,$1,40);
STACKTOP = sp;return;
}
function _UrlWarningOverlay_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 12|0;
$2 = sp;
$3 = (_Gfx_CreateDynamicVb(1,40)|0);
$4 = ((($0)) + 8|0);
HEAP32[$4>>2] = $3;
_Menu_MakeTitleFont($1);
_Menu_MakeBodyFont($2);
$5 = ((($0)) + 188|0);
_TextWidget_SetConst($5,33782,$1);
$6 = ((($0)) + 256|0);
$7 = ((($0)) + 20|0);
_TextWidget_Set($6,$7,$2);
$8 = ((($0)) + 324|0);
_TextWidget_SetConst($8,33825,$2);
$9 = ((($0)) + 392|0);
_TextWidget_SetConst($9,33880,$2);
$10 = ((($0)) + 28|0);
_ButtonWidget_SetConst($10,33935,$1);
$11 = ((($0)) + 108|0);
_ButtonWidget_SetConst($11,33939,$1);
_Font_Free($1);
_Font_Free($2);
STACKTOP = sp;return;
}
function _Overlay_MakeLabels($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_TextWidget_Make($0,1,1,0,-120);
$1 = ((($0)) + 68|0);
_TextWidget_Make($1,1,1,0,-50);
$2 = ((($0)) + 132|0);
HEAP32[$2>>2] = -2039584;
$3 = ((($0)) + 136|0);
_TextWidget_Make($3,1,1,0,-30);
$4 = ((($0)) + 200|0);
HEAP32[$4>>2] = -2039584;
$5 = ((($0)) + 204|0);
_TextWidget_Make($5,1,1,0,-10);
$6 = ((($0)) + 268|0);
HEAP32[$6>>2] = -2039584;
return;
}
function _Overlay_MakeMainButtons($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_ButtonWidget_Make($0,160,0,1,1,-110,30);
$1 = ((($0)) + 80|0);
_ButtonWidget_Make($1,160,0,1,1,110,30);
return;
}
function _UrlWarningOverlay_OpenUrl($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 20|0);
_Process_StartOpen($2);
_Gui_Remove($0);
return;
}
function _UrlWarningOverlay_AppendUrl($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408255]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
$4 = ((($0)) + 20|0);
_ChatScreen_AppendInput($4);
}
_Gui_Remove($0);
return;
}
function _TexPackOverlay_Show($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
HEAP8[(1278600)>>0] = 1;
HEAP8[(1278602)>>0] = 1;
HEAP32[319649] = 12600;
HEAP32[(1278632)>>2] = (1279244);
HEAP16[(1278636)>>1] = 0;
HEAP16[(1278638)>>1] = 68;
_String_Format1((1278632),33942,$0);
_String_UNSAFE_SubstringAt($1,(1278632),3);
$2 = $1;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 4)|0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (1278624);
$9 = $8;
HEAP32[$9>>2] = $4;
$10 = (($8) + 4)|0;
$11 = $10;
HEAP32[$11>>2] = $7;
_Http_AsyncGetHeaders($0,1,(1278632));
_Gui_Replace(1278596,35);
STACKTOP = sp;return;
}
function _TexPackOverlay_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 6368;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 8;
$3 = ((($0)) + 24|0);
HEAP32[$3>>2] = 0;
$4 = ((($0)) + 20|0);
HEAP8[$4>>0] = 0;
$5 = ((($0)) + 376|0);
_Overlay_MakeLabels($5);
$6 = ((($0)) + 56|0);
_Overlay_MakeMainButtons($6);
$7 = ((($0)) + 216|0);
_ButtonWidget_Make($7,160,0,1,1,-110,85);
$8 = ((($0)) + 296|0);
_ButtonWidget_Make($8,160,0,1,1,110,85);
return;
}
function _TexPackOverlay_Update($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 432|0;
$2 = sp;
$3 = ((($0)) + 36|0);
$4 = (_Http_GetResult($3,$2)|0);
$5 = ($4<<24>>24)==(0);
if ($5) {
STACKTOP = sp;return;
}
$6 = ((($0)) + 7|0);
HEAP8[$6>>0] = 1;
$7 = ((($2)) + 276|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($0)) + 24|0);
HEAP32[$9>>2] = $8;
_TexPackOverlay_UpdateLine3($0);
STACKTOP = sp;return;
}
function _TexPackOverlay_BuildMesh($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1536|0;
$1 = sp;
_Screen_BuildMesh($0,$1);
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_SetDynamicVbData($3,$1,64);
STACKTOP = sp;return;
}
function _TexPackOverlay_ContextLost($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 44|0);
_Font_Free($1);
_Screen_ContextLost($0);
return;
}
function _TexPackOverlay_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = (_Gfx_CreateDynamicVb(1,64)|0);
$3 = ((($0)) + 8|0);
HEAP32[$3>>2] = $2;
_Menu_MakeTitleFont($1);
$4 = ((($0)) + 44|0);
_Menu_MakeBodyFont($4);
$5 = ((($0)) + 376|0);
$6 = ((($0)) + 20|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
$9 = $8 ? 33948 : 33999;
_TextWidget_SetConst($5,$9,$1);
$10 = ((($0)) + 444|0);
$11 = HEAP8[$6>>0]|0;
$12 = ($11<<24>>24)==(0);
$13 = $12 ? 34027 : 34045;
_TextWidget_SetConst($10,$13,$4);
_TexPackOverlay_UpdateLine2($0);
_TexPackOverlay_UpdateLine3($0);
$14 = ((($0)) + 56|0);
$15 = HEAP8[$6>>0]|0;
$16 = ($15<<24>>24)==(0);
$17 = $16 ? 33935 : 34111;
_ButtonWidget_SetConst($14,$17,$1);
$18 = ((($0)) + 136|0);
$19 = HEAP8[$6>>0]|0;
$20 = ($19<<24>>24)==(0);
$21 = $20 ? 33939 : 34120;
_ButtonWidget_SetConst($18,$21,$1);
$22 = HEAP8[$6>>0]|0;
$23 = ($22<<24>>24)==(0);
$24 = $23 ? 106 : 105;
$25 = ((($0)) + 88|0);
HEAP32[$25>>2] = $24;
$26 = $23 ? 108 : 107;
$27 = ((($0)) + 168|0);
HEAP32[$27>>2] = $26;
if (!($23)) {
$32 = HEAP8[$6>>0]|0;
$33 = ($32<<24>>24)==(0);
$34 = $33 ? 8 : 6;
$35 = ((($0)) + 16|0);
HEAP32[$35>>2] = $34;
_Font_Free($1);
STACKTOP = sp;return;
}
$28 = ((($0)) + 216|0);
_ButtonWidget_SetConst($28,34128,$1);
$29 = ((($0)) + 296|0);
_ButtonWidget_SetConst($29,34139,$1);
$30 = ((($0)) + 248|0);
HEAP32[$30>>2] = 106;
$31 = ((($0)) + 328|0);
HEAP32[$31>>2] = 108;
$32 = HEAP8[$6>>0]|0;
$33 = ($32<<24>>24)==(0);
$34 = $33 ? 8 : 6;
$35 = ((($0)) + 16|0);
HEAP32[$35>>2] = $34;
_Font_Free($1);
STACKTOP = sp;return;
}
function _TexPackOverlay_UpdateLine2($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 16|0;
$2 = sp + 8|0;
$3 = sp;
$4 = 1384616;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $1;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = ((($0)) + 20|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(0);
if (!($16)) {
$52 = ((($0)) + 512|0);
$53 = ((($0)) + 44|0);
_TextWidget_Set($52,$1,$53);
STACKTOP = sp;return;
}
$17 = ((($0)) + 28|0);
$18 = $17;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = (($18) + 4)|0;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = $1;
$25 = $24;
HEAP32[$25>>2] = $20;
$26 = (($24) + 4)|0;
$27 = $26;
HEAP32[$27>>2] = $23;
$28 = (_String_CaselessStarts($1,12664)|0);
$29 = ($28|0)==(0);
if (!($29)) {
_String_UNSAFE_SubstringAt($2,$1,8);
$30 = $2;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = (($30) + 4)|0;
$34 = $33;
$35 = HEAP32[$34>>2]|0;
$36 = $1;
$37 = $36;
HEAP32[$37>>2] = $32;
$38 = (($36) + 4)|0;
$39 = $38;
HEAP32[$39>>2] = $35;
}
$40 = (_String_CaselessStarts($1,12672)|0);
$41 = ($40|0)==(0);
if ($41) {
$52 = ((($0)) + 512|0);
$53 = ((($0)) + 44|0);
_TextWidget_Set($52,$1,$53);
STACKTOP = sp;return;
}
_String_UNSAFE_SubstringAt($3,$1,7);
$42 = $3;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = (($42) + 4)|0;
$46 = $45;
$47 = HEAP32[$46>>2]|0;
$48 = $1;
$49 = $48;
HEAP32[$49>>2] = $44;
$50 = (($48) + 4)|0;
$51 = $50;
HEAP32[$51>>2] = $47;
$52 = ((($0)) + 512|0);
$53 = ((($0)) + 44|0);
_TextWidget_Set($52,$1,$53);
STACKTOP = sp;return;
}
function _TexPackOverlay_UpdateLine3($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 72|0;
$2 = sp;
$3 = sp + 64|0;
$4 = ((($0)) + 20|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if (!($6)) {
$7 = ((($0)) + 580|0);
$8 = ((($0)) + 44|0);
_TextWidget_SetConst($7,34149,$8);
STACKTOP = sp;return;
}
$9 = ((($0)) + 24|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0);
if ($11) {
$18 = ((($0)) + 580|0);
$19 = ((($0)) + 44|0);
_TextWidget_SetConst($18,34221,$19);
STACKTOP = sp;return;
} else {
HEAP32[$1>>2] = $2;
$12 = ((($1)) + 4|0);
HEAP16[$12>>1] = 0;
$13 = ((($1)) + 6|0);
HEAP16[$13>>1] = 64;
$14 = (+($10>>>0));
$15 = $14 * 9.5367431640625E-7;
HEAPF32[$3>>2] = $15;
_String_Format1($1,34199,$3);
$16 = ((($0)) + 580|0);
$17 = ((($0)) + 44|0);
_TextWidget_Set($16,$1,$17);
STACKTOP = sp;return;
}
}
function _TexPackOverlay_YesClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 28|0);
_World_ApplyTexturePack($2);
$3 = (_TexPackOverlay_IsAlways($0,$1)|0);
$4 = ($3<<24>>24)==(0);
if ($4) {
_Gui_Remove($0);
return;
}
_TextureCache_Accept($2);
_Gui_Remove($0);
return;
}
function _TexPackOverlay_ConfirmNoClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 21|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
_Gui_Remove($0);
return;
}
$5 = ((($0)) + 28|0);
_TextureCache_Deny($5);
_Gui_Remove($0);
return;
}
function _TexPackOverlay_NoClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_TexPackOverlay_IsAlways($0,$1)|0);
$3 = ((($0)) + 21|0);
HEAP8[$3>>0] = $2;
$4 = ((($0)) + 20|0);
HEAP8[$4>>0] = 1;
_Gui_Refresh($0);
return;
}
function _TexPackOverlay_GoBackClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 20|0);
HEAP8[$2>>0] = 0;
_Gui_Refresh($0);
return;
}
function _TexPackOverlay_IsAlways($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Menu_Index($0,$1)|0);
$3 = ($2|0)>(5);
$4 = $3&1;
return ($4|0);
}
function _TouchMoreOverlay_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1279316)>>0] = 1;
HEAP8[(1279318)>>0] = 1;
HEAP32[319828] = 12680;
_Gui_Replace(1279312,45);
return;
}
function _TouchMoreOverlay_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 390064;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 8;
$3 = ((($0)) + 20|0);
_Menu_Buttons($0,$3,300,6400,8);
return;
}
function _TouchMoreOverlay_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _TouchMoreOverlay_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Menu_MakeTitleFont($1);
$2 = ((($0)) + 20|0);
_Menu_SetButtons($2,$1,6400,8);
_Font_Free($1);
STACKTOP = sp;return;
}
function _TouchMore_Chat($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TouchMore_Toggle(7);
return;
}
function _TouchMore_Speed($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TouchMore_Toggle(12);
return;
}
function _TouchMore_Fly($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TouchMore_Toggle(14);
return;
}
function _TouchMore_Menu($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gui_Remove(1279312);
_PauseScreen_Show();
return;
}
function _TouchMore_Inv($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TouchMore_Toggle(8);
return;
}
function _TouchMore_Screen($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TouchMore_Toggle(20);
return;
}
function _TouchMore_Noclip($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TouchMore_Toggle(13);
return;
}
function _TouchMore_Fog($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(379737)>>0]|0;
$3 = $2&255;
_Input_SetPressed($3,1);
$4 = HEAP8[(379737)>>0]|0;
$5 = $4&255;
_Input_SetPressed($5,0);
return;
}
function _TouchMore_Toggle($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (379728 + ($0)|0);
$2 = HEAP8[$1>>0]|0;
$3 = $2&255;
_Gui_Remove(1279312);
$4 = (379584 + ($3)|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
$7 = $6&1;
_Input_SetPressed($3,$7);
return;
}
function _Models_Init() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1280024)>>2] = 390096;
HEAP32[(1280028)>>2] = 288;
_Model_RegisterDefaultModels();
_Models_ContextRecreated(0);
$0 = HEAP8[1408229]|0;
$1 = (_Options_GetBool(34260,$0)|0);
HEAP8[(1280014)>>0] = $1;
_Event_Register((1250816),0,13);
_Event_Register((1251856),0,331);
_Event_Register((1252116),0,332);
return;
}
function _Models_Free() {
var $$0 = 0, $$04 = 0, $$05 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$04 = HEAP32[320009]|0;
$0 = ($$04|0)==(0|0);
if (!($0)) {
$$05 = $$04;
while(1) {
$1 = ((($$05)) + 8|0);
_Gfx_DeleteTexture($1);
$2 = ((($$05)) + 12|0);
$$0 = HEAP32[$2>>2]|0;
$3 = ($$0|0)==(0|0);
if ($3) {
break;
} else {
$$05 = $$0;
}
}
}
_Models_ContextLost(0);
_Event_Unregister((1250816),0,13);
_Event_Unregister((1251856),0,331);
_Event_Unregister((1252116),0,332);
return;
}
function _Models_ContextLost($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteVb((1280020));
return;
}
function _Models_TextureChanged($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $$010 = 0, $$09 = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$09 = HEAP32[320009]|0;
$3 = ($$09|0)==(0|0);
if ($3) {
return;
}
$$010 = $$09;
while(1) {
$4 = HEAP32[$$010>>2]|0;
$5 = (_String_CaselessEqualsConst($2,$4)|0);
$6 = ($5|0)==(0);
if (!($6)) {
break;
}
$9 = ((($$010)) + 12|0);
$$0 = HEAP32[$9>>2]|0;
$10 = ($$0|0)==(0|0);
if ($10) {
label = 6;
break;
} else {
$$010 = $$0;
}
}
if ((label|0) == 6) {
return;
}
$7 = ((($$010)) + 8|0);
$8 = ((($$010)) + 4|0);
(_Game_UpdateTexture($7,$1,$2,$8)|0);
return;
}
function _Models_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1280028)>>2]|0;
$2 = (_Gfx_CreateDynamicVb(1,$1)|0);
HEAP32[(1280020)>>2] = $2;
return;
}
function _Model_RegisterDefaultModels() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_RegisterTexture(12768);
_Model_RegisterTexture(12784);
_Model_RegisterTexture(12800);
_Model_RegisterTexture(12816);
_Model_RegisterTexture(12832);
_Model_RegisterTexture(12848);
_Model_RegisterTexture(12864);
_Model_RegisterTexture(12880);
_Model_RegisterTexture(12896);
_HumanoidModel_GetInstance();
_Model_Register(12912);
_Model_Make(12912);
HEAP32[(1280032)>>2] = 12912;
_ChickenModel_GetInstance();
_Model_Register(13012);
_CreeperModel_GetInstance();
_Model_Register(13112);
_PigModel_GetInstance();
_Model_Register(13212);
_SheepModel_GetInstance();
_Model_Register(13312);
_NoFurModel_GetInstance();
_Model_Register(13412);
_SkeletonModel_GetInstance();
_Model_Register(13512);
_SpiderModel_GetInstance();
_Model_Register(13612);
_ZombieModel_GetInstance();
_Model_Register(13712);
_BlockModel_GetInstance();
_Model_Register(13812);
_ChibiModel_GetInstance();
_Model_Register(13912);
_HeadModel_GetInstance();
_Model_Register(14012);
_SittingModel_GetInstance();
_Model_Register(14112);
_CorpseModel_GetInstance();
_Model_Register(1280040);
return;
}
function _Model_RegisterTexture($0) {
$0 = $0|0;
var $$sink = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[320009]|0;
$2 = ($1|0)==(0|0);
$3 = HEAP32[320435]|0;
$4 = ((($3)) + 12|0);
$$sink = $2 ? 1280036 : $4;
HEAP32[$$sink>>2] = $0;
HEAP32[320435] = $0;
$5 = ((($0)) + 12|0);
HEAP32[$5>>2] = 0;
return;
}
function _HumanoidModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(12912);
HEAP32[(12992)>>2] = 333;
HEAP8[(12957)>>0] = 1;
HEAP8[(12958)>>0] = 1;
return;
}
function _Model_Register($0) {
$0 = $0|0;
var $$sink = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[320433]|0;
$2 = ($1|0)==(0|0);
$3 = HEAP32[320434]|0;
$4 = ((($3)) + 96|0);
$$sink = $2 ? 1281732 : $4;
HEAP32[$$sink>>2] = $0;
HEAP32[320434] = $0;
$5 = ((($0)) + 96|0);
HEAP32[$5>>2] = 0;
return;
}
function _Model_Make($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1280016)>>2]|0;
HEAP32[(1280016)>>2] = $0;
$2 = ((($0)) + 12|0);
$3 = HEAP32[$2>>2]|0;
FUNCTION_TABLE_v[$3 & 127]();
$4 = ((($0)) + 42|0);
HEAP8[$4>>0] = 1;
$5 = ((($0)) + 36|0);
HEAP32[$5>>2] = 0;
HEAP32[(1280016)>>2] = $1;
return;
}
function _ChickenModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13012);
return;
}
function _CreeperModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13112);
return;
}
function _PigModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13212);
return;
}
function _SheepModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13312);
return;
}
function _NoFurModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13412);
return;
}
function _SkeletonModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13512);
HEAP32[(13592)>>2] = 334;
HEAP8[(13552)>>0] = 5;
return;
}
function _SpiderModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13612);
return;
}
function _ZombieModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13712);
HEAP32[(13792)>>2] = 335;
return;
}
function _BlockModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13812);
HEAP8[(13855)>>0] = 0;
HEAP8[(13856)>>0] = 0;
HEAP8[(13859)>>0] = 0;
return;
}
function _ChibiModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(13912);
HEAP32[(13992)>>2] = 336;
HEAP8[(13952)>>0] = 3;
HEAP8[(13953)>>0] = 6;
HEAP8[(13957)>>0] = 1;
HEAP8[(13958)>>0] = 1;
HEAPF32[(13996)>>2] = 3.0;
HEAPF32[(14000)>>2] = 0.5;
return;
}
function _HeadModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(14012);
HEAP8[(14058)>>0] = 1;
HEAP8[(14059)>>0] = 0;
HEAP32[(14088)>>2] = 14;
return;
}
function _SittingModel_GetInstance() {
var label = 0, sp = 0;
sp = STACKTOP;
_Model_Init(14112);
HEAP32[(14192)>>2] = 333;
HEAP8[(14157)>>0] = 1;
HEAP8[(14158)>>0] = 1;
HEAPF32[(14200)>>2] = 0.5;
HEAP32[(14188)>>2] = 15;
return;
}
function _CorpseModel_GetInstance() {
var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
dest=1280040; src=12912; stop=dest+100|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
HEAP32[320010] = 34281;
HEAP32[(1280052)>>2] = 53;
HEAP32[(1280056)>>2] = 337;
return;
}
function _Model_NoParts() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _CorpseModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 240|0);
HEAPF32[$1>>2] = 0.02500000037252903;
$2 = ((($0)) + 248|0);
HEAPF32[$2>>2] = 0.02500000037252903;
$3 = ((($0)) + 256|0);
HEAPF32[$3>>2] = 0.02500000037252903;
$4 = ((($0)) + 264|0);
HEAPF32[$4>>2] = 0.02500000037252903;
$5 = ((($0)) + 244|0);
HEAPF32[$5>>2] = -0.15000000596046448;
$6 = ((($0)) + 252|0);
HEAPF32[$6>>2] = 0.15000000596046448;
$7 = ((($0)) + 260|0);
HEAPF32[$7>>2] = -0.20000000298023224;
$8 = ((($0)) + 268|0);
HEAPF32[$8>>2] = 0.20000000298023224;
_HumanModel_Draw($0);
return;
}
function _HumanModel_Draw($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_HumanModel_DrawCore($0,1280140,1);
return;
}
function _HumanModel_DrawCore($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
_Model_ApplyTexture($0);
$3 = ($2<<24>>24)!=(0);
if ($3) {
_Gfx_SetAlphaTest(0);
}
$4 = HEAP8[(1280013)>>0]|0;
$5 = $4 & 3;
$6 = $5&255;
$7 = ((($0)) + 16|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 * -0.01745329238474369;
_Model_DrawRotate($9,0.0,0.0,$1,1);
$10 = ((($1)) + 16|0);
_Model_DrawPart($10);
$11 = ((($0)) + 240|0);
$12 = +HEAPF32[$11>>2];
$13 = ((($0)) + 244|0);
$14 = +HEAPF32[$13>>2];
$15 = (((($1)) + 64|0) + ($6<<7)|0);
_Model_DrawRotate($12,0.0,$14,$15,0);
$16 = ((($0)) + 248|0);
$17 = +HEAPF32[$16>>2];
$18 = ((($0)) + 252|0);
$19 = +HEAPF32[$18>>2];
$20 = (((((($1)) + 64|0) + ($6<<7)|0)) + 16|0);
_Model_DrawRotate($17,0.0,$19,$20,0);
HEAP8[(1280012)>>0] = 1;
$21 = ((($0)) + 256|0);
$22 = +HEAPF32[$21>>2];
$23 = ((($0)) + 260|0);
$24 = +HEAPF32[$23>>2];
$25 = (((((($1)) + 64|0) + ($6<<7)|0)) + 32|0);
_Model_DrawRotate($22,0.0,$24,$25,0);
$26 = ((($0)) + 264|0);
$27 = +HEAPF32[$26>>2];
$28 = ((($0)) + 268|0);
$29 = +HEAPF32[$28>>2];
$30 = (((((($1)) + 64|0) + ($6<<7)|0)) + 48|0);
_Model_DrawRotate($27,0.0,$29,$30,0);
HEAP8[(1280012)>>0] = 0;
if ($3) {
_Model_UpdateVB();
_Gfx_SetAlphaTest(1);
}
$31 = ($4<<24>>24)==(0);
if ($31) {
$45 = +HEAPF32[$7>>2];
$46 = $45 * -0.01745329238474369;
$47 = ((($1)) + 32|0);
_Model_DrawRotate($46,0.0,0.0,$47,1);
_Model_UpdateVB();
return;
}
$32 = ((($1)) + 48|0);
_Model_DrawPart($32);
$33 = +HEAPF32[$11>>2];
$34 = +HEAPF32[$13>>2];
$35 = (((((($1)) + 64|0) + ($6<<7)|0)) + 64|0);
_Model_DrawRotate($33,0.0,$34,$35,0);
$36 = +HEAPF32[$16>>2];
$37 = +HEAPF32[$18>>2];
$38 = (((((($1)) + 64|0) + ($6<<7)|0)) + 80|0);
_Model_DrawRotate($36,0.0,$37,$38,0);
HEAP8[(1280012)>>0] = 1;
$39 = +HEAPF32[$21>>2];
$40 = +HEAPF32[$23>>2];
$41 = (((((($1)) + 64|0) + ($6<<7)|0)) + 96|0);
_Model_DrawRotate($39,0.0,$40,$41,0);
$42 = +HEAPF32[$26>>2];
$43 = +HEAPF32[$28>>2];
$44 = (((((($1)) + 64|0) + ($6<<7)|0)) + 112|0);
_Model_DrawRotate($42,0.0,$43,$44,0);
HEAP8[(1280012)>>0] = 0;
$45 = +HEAPF32[$7>>2];
$46 = $45 * -0.01745329238474369;
$47 = ((($1)) + 32|0);
_Model_DrawRotate($46,0.0,0.0,$47,1);
_Model_UpdateVB();
return;
}
function _Model_ApplyTexture($0) {
$0 = $0|0;
var $$0 = 0, $$in = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $storemerge = 0, $storemerge$in = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1280016)>>2]|0;
$2 = ((($1)) + 46|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
$5 = ((($0)) + 112|0);
$6 = ((($0)) + 116|0);
$$in = $4 ? $6 : $5;
$7 = HEAP32[$$in>>2]|0;
$8 = ($7|0)==(0);
if ($8) {
$10 = ((($1)) + 8|0);
$11 = HEAP32[$10>>2]|0;
$12 = ((($11)) + 8|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($11)) + 4|0);
$$0 = $13;$storemerge$in = $14;
} else {
$9 = ((($0)) + 108|0);
$$0 = $7;$storemerge$in = $9;
}
$storemerge = HEAP8[$storemerge$in>>0]|0;
HEAP8[(1280013)>>0] = $storemerge;
_Gfx_BindTexture($$0);
$15 = HEAP8[(1280013)>>0]|0;
$16 = ($15<<24>>24)==(0);
$17 = ((($0)) + 120|0);
$18 = +HEAPF32[$17>>2];
$19 = $18 * 0.015625;
HEAPF32[(1279996)>>2] = $19;
$20 = ((($0)) + 124|0);
$21 = +HEAPF32[$20>>2];
$22 = $16 ? 0.03125 : 0.015625;
$23 = $22 * $21;
HEAPF32[(1280000)>>2] = $23;
return;
}
function _Model_DrawRotate($0,$1,$2,$3,$4) {
$0 = +$0;
$1 = +$1;
$2 = +$2;
$3 = $3|0;
$4 = $4|0;
var $$0163166 = 0, $$0164165 = 0, $$0167 = 0, $$sroa$0$0 = 0.0, $$sroa$0$0$copyload = 0.0, $$sroa$0$1 = 0.0, $$sroa$27$0 = 0.0, $$sroa$27$0$$sroa_idx25 = 0, $$sroa$27$0$copyload = 0.0, $$sroa$48$0 = 0.0, $$sroa$48$0$$sroa_idx40 = 0, $$sroa$48$0$copyload = 0.0, $$sroa$48$1 = 0.0, $$sroa$72$0$$sroa_idx57 = 0, $$sroa$72$0$copyload = 0, $$sroa$74$0$$sroa_idx60 = 0, $$sroa$74$0$copyload = 0, $10 = 0, $100 = 0.0, $101 = 0.0;
var $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0;
var $120 = 0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0, $136 = 0.0, $137 = 0.0, $138 = 0.0;
var $139 = 0.0, $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0;
var $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0.0;
var $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0;
var $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0;
var $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $exitcond = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$5 = HEAP32[(1280016)>>2]|0;
$6 = ((($5)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = HEAP16[$3>>1]|0;
$9 = HEAP32[(1280024)>>2]|0;
$10 = ((($5)) + 36|0);
$11 = HEAP32[$10>>2]|0;
$12 = - $0;
$13 = $12;
$14 = (+_Math_Cos($13));
$15 = $14;
$16 = (+_Math_Sin($13));
$17 = $16;
$18 = - $1;
$19 = $18;
$20 = (+_Math_Cos($19));
$21 = $20;
$22 = (+_Math_Sin($19));
$23 = $22;
$24 = - $2;
$25 = $24;
$26 = (+_Math_Cos($25));
$27 = $26;
$28 = (+_Math_Sin($25));
$29 = $28;
$30 = ((($3)) + 4|0);
$31 = +HEAPF32[$30>>2];
$32 = ((($3)) + 8|0);
$33 = +HEAPF32[$32>>2];
$34 = ((($3)) + 12|0);
$35 = +HEAPF32[$34>>2];
$36 = ((($3)) + 2|0);
$37 = HEAP16[$36>>1]|0;
$38 = $37&65535;
$39 = ($37<<16>>16)==(0);
if ($39) {
$144 = HEAP32[$10>>2]|0;
$145 = (($144) + ($38))|0;
HEAP32[$10>>2] = $145;
return;
}
$40 = (($9) + (($11*24)|0)|0);
$41 = $8&65535;
$42 = (($7) + ($41<<4)|0);
$43 = ($4<<24>>24)==(0);
$$0163166 = 0;$$0164165 = $40;$$0167 = $42;
while(1) {
$$sroa$0$0$copyload = +HEAPF32[$$0167>>2];
$$sroa$27$0$$sroa_idx25 = ((($$0167)) + 4|0);
$$sroa$27$0$copyload = +HEAPF32[$$sroa$27$0$$sroa_idx25>>2];
$$sroa$48$0$$sroa_idx40 = ((($$0167)) + 8|0);
$$sroa$48$0$copyload = +HEAPF32[$$sroa$48$0$$sroa_idx40>>2];
$$sroa$72$0$$sroa_idx57 = ((($$0167)) + 12|0);
$$sroa$72$0$copyload = HEAP16[$$sroa$72$0$$sroa_idx57>>1]|0;
$$sroa$74$0$$sroa_idx60 = ((($$0167)) + 14|0);
$$sroa$74$0$copyload = HEAP16[$$sroa$74$0$$sroa_idx60>>1]|0;
$44 = $$sroa$0$0$copyload - $31;
$45 = $$sroa$27$0$copyload - $33;
$46 = $$sroa$48$0$copyload - $35;
$47 = HEAP8[(1280012)>>0]|0;
switch ($47<<24>>24) {
case 0: {
$48 = $44 * $27;
$49 = $45 * $29;
$50 = $48 + $49;
$51 = $44 * $29;
$52 = $45 * $27;
$53 = $52 - $51;
$54 = $50 * $21;
$55 = $46 * $23;
$56 = $54 - $55;
$57 = $50 * $23;
$58 = $46 * $21;
$59 = $58 + $57;
$60 = $53 * $15;
$61 = $59 * $17;
$62 = $60 + $61;
$63 = $53 * $17;
$64 = $59 * $15;
$65 = $64 - $63;
$$sroa$0$0 = $56;$$sroa$27$0 = $62;$$sroa$48$0 = $65;
break;
}
case 1: {
$66 = $45 * $15;
$67 = $46 * $17;
$68 = $66 + $67;
$69 = $45 * $17;
$70 = $46 * $15;
$71 = $70 - $69;
$72 = $44 * $27;
$73 = $68 * $29;
$74 = $72 + $73;
$75 = $44 * $29;
$76 = $68 * $27;
$77 = $76 - $75;
$78 = $74 * $21;
$79 = $71 * $23;
$80 = $78 - $79;
$81 = $74 * $23;
$82 = $71 * $21;
$83 = $82 + $81;
$$sroa$0$0 = $80;$$sroa$27$0 = $77;$$sroa$48$0 = $83;
break;
}
case 2: {
$84 = $44 * $21;
$85 = $46 * $23;
$86 = $84 - $85;
$87 = $44 * $23;
$88 = $46 * $21;
$89 = $87 + $88;
$90 = $86 * $27;
$91 = $45 * $29;
$92 = $91 + $90;
$93 = $86 * $29;
$94 = $45 * $27;
$95 = $94 - $93;
$96 = $95 * $15;
$97 = $89 * $17;
$98 = $97 + $96;
$99 = $95 * $17;
$100 = $89 * $15;
$101 = $100 - $99;
$$sroa$0$0 = $92;$$sroa$27$0 = $98;$$sroa$48$0 = $101;
break;
}
default: {
$$sroa$0$0 = $44;$$sroa$27$0 = $45;$$sroa$48$0 = $46;
}
}
if ($43) {
$$sroa$0$1 = $$sroa$0$0;$$sroa$48$1 = $$sroa$48$0;
} else {
$102 = +HEAPF32[(1280004)>>2];
$103 = $$sroa$0$0 * $102;
$104 = +HEAPF32[(1280008)>>2];
$105 = $$sroa$48$0 * $104;
$106 = $103 - $105;
$107 = $$sroa$0$0 * $104;
$108 = $$sroa$48$0 * $102;
$109 = $108 + $107;
$$sroa$0$1 = $106;$$sroa$48$1 = $109;
}
$110 = $31 + $$sroa$0$1;
HEAPF32[$$0164165>>2] = $110;
$111 = $33 + $$sroa$27$0;
$112 = ((($$0164165)) + 4|0);
HEAPF32[$112>>2] = $111;
$113 = $35 + $$sroa$48$1;
$114 = ((($$0164165)) + 8|0);
HEAPF32[$114>>2] = $113;
$115 = (2)?($$0163166 >>> 2):($$0163166);
$116 = (1279972 + ($115<<2)|0);
$117 = HEAP32[$116>>2]|0;
$118 = ((($$0164165)) + 12|0);
HEAP32[$118>>2] = $117;
$119 = $$sroa$72$0$copyload&65535;
$120 = $119 & 32767;
$121 = (+($120|0));
$122 = +HEAPF32[(1279996)>>2];
$123 = $122 * $121;
$124 = (15)?($119 >>> 15):($119);
$125 = (+($124|0));
$126 = $125 * 0.0099999997764825821;
$127 = $126 * $122;
$128 = $123 - $127;
$129 = ((($$0164165)) + 16|0);
HEAPF32[$129>>2] = $128;
$130 = $$sroa$74$0$copyload&65535;
$131 = $130 & 32767;
$132 = (+($131|0));
$133 = +HEAPF32[(1280000)>>2];
$134 = $133 * $132;
$135 = (15)?($130 >>> 15):($130);
$136 = (+($135|0));
$137 = $136 * 0.0099999997764825821;
$138 = $137 * $133;
$139 = $134 - $138;
$140 = ((($$0164165)) + 20|0);
HEAPF32[$140>>2] = $139;
$141 = ((($$0167)) + 16|0);
$142 = ((($$0164165)) + 24|0);
$143 = (($$0163166) + 1)|0;
$exitcond = ($143|0)==($38|0);
if ($exitcond) {
break;
} else {
$$0163166 = $143;$$0164165 = $142;$$0167 = $141;
}
}
$144 = HEAP32[$10>>2]|0;
$145 = (($144) + ($38))|0;
HEAP32[$10>>2] = $145;
return;
}
function _Model_DrawPart($0) {
$0 = $0|0;
var $$03844 = 0, $$03943 = 0, $$045 = 0, $$sroa$0$0$copyload40 = 0, $$sroa$4$0$$sroa_idx9 = 0, $$sroa$4$0$copyload41 = 0, $$sroa$5$0$$sroa_idx11 = 0, $$sroa$5$0$copyload42 = 0, $$sroa$6$0$$sroa_idx13 = 0, $$sroa$6$0$copyload = 0, $$sroa$8$0$$sroa_idx16 = 0, $$sroa$8$0$copyload = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0.0;
var $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1280016)>>2]|0;
$2 = ((($1)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 2|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = ($5<<16>>16)==(0);
if ($7) {
$46 = (($3) + ($6))|0;
HEAP32[$2>>2] = $46;
return;
}
$8 = HEAP32[(1280024)>>2]|0;
$9 = (($8) + (($3*24)|0)|0);
$10 = ((($1)) + 4|0);
$11 = HEAP32[$10>>2]|0;
$12 = HEAP16[$0>>1]|0;
$13 = $12&65535;
$14 = (($11) + ($13<<4)|0);
$$03844 = 0;$$03943 = $9;$$045 = $14;
while(1) {
$$sroa$0$0$copyload40 = HEAP32[$$045>>2]|0;
$$sroa$4$0$$sroa_idx9 = ((($$045)) + 4|0);
$$sroa$4$0$copyload41 = HEAP32[$$sroa$4$0$$sroa_idx9>>2]|0;
$$sroa$5$0$$sroa_idx11 = ((($$045)) + 8|0);
$$sroa$5$0$copyload42 = HEAP32[$$sroa$5$0$$sroa_idx11>>2]|0;
$$sroa$6$0$$sroa_idx13 = ((($$045)) + 12|0);
$$sroa$6$0$copyload = HEAP16[$$sroa$6$0$$sroa_idx13>>1]|0;
$$sroa$8$0$$sroa_idx16 = ((($$045)) + 14|0);
$$sroa$8$0$copyload = HEAP16[$$sroa$8$0$$sroa_idx16>>1]|0;
HEAP32[$$03943>>2] = $$sroa$0$0$copyload40;
$15 = ((($$03943)) + 4|0);
HEAP32[$15>>2] = $$sroa$4$0$copyload41;
$16 = ((($$03943)) + 8|0);
HEAP32[$16>>2] = $$sroa$5$0$copyload42;
$17 = (2)?($$03844 >>> 2):($$03844);
$18 = (1279972 + ($17<<2)|0);
$19 = HEAP32[$18>>2]|0;
$20 = ((($$03943)) + 12|0);
HEAP32[$20>>2] = $19;
$21 = $$sroa$6$0$copyload&65535;
$22 = $21 & 32767;
$23 = (+($22|0));
$24 = +HEAPF32[(1279996)>>2];
$25 = $24 * $23;
$26 = (15)?($21 >>> 15):($21);
$27 = (+($26|0));
$28 = $27 * 0.0099999997764825821;
$29 = $28 * $24;
$30 = $25 - $29;
$31 = ((($$03943)) + 16|0);
HEAPF32[$31>>2] = $30;
$32 = $$sroa$8$0$copyload&65535;
$33 = $32 & 32767;
$34 = (+($33|0));
$35 = +HEAPF32[(1280000)>>2];
$36 = $35 * $34;
$37 = (15)?($32 >>> 15):($32);
$38 = (+($37|0));
$39 = $38 * 0.0099999997764825821;
$40 = $39 * $35;
$41 = $36 - $40;
$42 = ((($$03943)) + 20|0);
HEAPF32[$42>>2] = $41;
$43 = ((($$045)) + 16|0);
$44 = ((($$03943)) + 24|0);
$45 = (($$03844) + 1)|0;
$exitcond = ($45|0)==($6|0);
if ($exitcond) {
break;
} else {
$$03844 = $45;$$03943 = $44;$$045 = $43;
}
}
$46 = (($3) + ($6))|0;
HEAP32[$2>>2] = $46;
return;
}
function _Model_UpdateVB() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1280016)>>2]|0;
$1 = HEAP32[(1280020)>>2]|0;
$2 = HEAP32[(1280024)>>2]|0;
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
_Gfx_UpdateDynamicVb_IndexedTris($1,$2,$4);
HEAP32[$3>>2] = 0;
return;
}
function _SittingModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 240|0);
HEAPF32[$1>>2] = 1.5;
$2 = ((($0)) + 248|0);
HEAPF32[$2>>2] = 1.5;
$3 = ((($0)) + 244|0);
HEAPF32[$3>>2] = -0.10000000149011612;
$4 = ((($0)) + 252|0);
HEAPF32[$4>>2] = 0.10000000149011612;
_HumanModel_Draw($0);
return;
}
function _HumanModel_GetNameY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +2.03125;
}
function _SittingModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1;
}
function _SittingModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[14236>>2]|0;HEAP32[$1+4>>2]=HEAP32[14236+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14236+8>>2]|0;
return;
}
function _SittingModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[14212>>2]|0;HEAP32[$1+4>>2]=HEAP32[14212+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14212+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[14212+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[14212+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[14212+20>>2]|0;
return;
}
function _Model_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 43|0);
HEAP8[$1>>0] = 1;
$2 = ((($0)) + 44|0);
HEAP8[$2>>0] = 1;
$3 = ((($0)) + 45|0);
HEAP8[$3>>0] = 0;
$4 = ((($0)) + 46|0);
HEAP8[$4>>0] = 0;
$5 = ((($0)) + 47|0);
HEAP8[$5>>0] = 1;
$6 = ((($0)) + 48|0);
HEAPF32[$6>>2] = 0.079999998211860657;
$7 = ((($0)) + 52|0);
HEAPF32[$7>>2] = 0.9100000262260437;
$8 = ((($0)) + 56|0);
HEAPF32[$8>>2] = 0.98000001907348633;
$9 = ((($0)) + 60|0);
HEAPF32[$9>>2] = 0.9100000262260437;
$10 = ((($0)) + 64|0);
HEAPF32[$10>>2] = 0.60000002384185791;
$11 = ((($0)) + 68|0);
HEAPF32[$11>>2] = 1.0;
$12 = ((($0)) + 72|0);
HEAPF32[$12>>2] = 0.60000002384185791;
$13 = ((($0)) + 84|0);
HEAPF32[$13>>2] = 2.0;
$14 = ((($0)) + 88|0);
HEAPF32[$14>>2] = 1.0;
$15 = ((($0)) + 92|0);
HEAPF32[$15>>2] = 1.0;
$16 = ((($0)) + 40|0);
HEAP8[$16>>0] = 6;
$17 = ((($0)) + 41|0);
HEAP8[$17>>0] = 12;
$18 = ((($0)) + 76|0);
HEAP32[$18>>2] = 16;
$19 = ((($0)) + 80|0);
HEAP32[$19>>2] = 338;
return;
}
function _HumanModel_DrawArm($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_HumanModel_DrawArmCore(1280140);
return;
}
function _SittingModel_GetTransform($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy1 = sp + 12|0;
$$byval_copy = sp;
$3 = ((($0)) + 80|0);
$4 = ((($0)) + 84|0);
$5 = +HEAPF32[$4>>2];
$6 = $5 * 0.625;
$7 = ((($1)) + 4|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 - $6;
HEAPF32[$7>>2] = $9;
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0;
_Entity_GetTransform($0,$$byval_copy,$$byval_copy1,$2);
STACKTOP = sp;return;
}
function _HumanModel_DrawArmCore($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1280013)>>0]|0;
$2 = $1 & 3;
$3 = $2&255;
$4 = (((((($0)) + 64|0) + ($3<<7)|0)) + 48|0);
_Model_DrawArmPart($4);
$5 = ($1<<24>>24)==(0);
if ($5) {
_Model_UpdateVB();
return;
}
$6 = (((((($0)) + 64|0) + ($3<<7)|0)) + 112|0);
_Model_DrawArmPart($6);
_Model_UpdateVB();
return;
}
function _Model_DrawArmPart($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP32[(1280016)>>2]|0;
;HEAP32[$1>>2]=HEAP32[$0>>2]|0;HEAP32[$1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[$0+12>>2]|0;
$3 = ((($2)) + 40|0);
$4 = HEAP8[$3>>0]|0;
$5 = (+($4&255));
$6 = $5 * 0.0625;
$7 = ((($1)) + 4|0);
HEAPF32[$7>>2] = $6;
$8 = ((($2)) + 41|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = (1)?($10 >>> 1):($10);
$12 = (($11) + ($10))|0;
$13 = (+($12|0));
$14 = $13 * 0.0625;
$15 = ((($1)) + 8|0);
HEAPF32[$15>>2] = $14;
$16 = HEAP8[(1280014)>>0]|0;
$17 = ($16<<24>>24)==(0);
if ($17) {
_Model_DrawRotate(-0.34906584024429321,-1.2217304706573486,2.3561944961547852,$1,0);
STACKTOP = sp;return;
} else {
_Model_DrawRotate(0.0,-1.5707963705062866,2.0943951606750488,$1,0);
STACKTOP = sp;return;
}
}
function _Model_GetTransform($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy1 = sp + 12|0;
$$byval_copy = sp;
$3 = ((($0)) + 80|0);
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0;
_Entity_GetTransform($0,$$byval_copy,$$byval_copy1,$2);
STACKTOP = sp;return;
}
function _Model_NullFunc($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _HeadModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Model_ApplyTexture($0);
;HEAP32[$1>>2]=HEAP32[1280140>>2]|0;HEAP32[$1+4>>2]=HEAP32[1280140+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[1280140+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[1280140+12>>2]|0;
$2 = ((($1)) + 8|0);
$3 = +HEAPF32[$2>>2];
$4 = $3 + 0.25;
HEAPF32[$2>>2] = $4;
$5 = ((($0)) + 16|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 * -0.01745329238474369;
_Model_DrawRotate($7,0.0,0.0,$1,1);
;HEAP32[$1>>2]=HEAP32[(1280172)>>2]|0;HEAP32[$1+4>>2]=HEAP32[(1280172)+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[(1280172)+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[(1280172)+12>>2]|0;
$8 = +HEAPF32[$2>>2];
$9 = $8 + 0.25;
HEAPF32[$2>>2] = $9;
$10 = +HEAPF32[$5>>2];
$11 = $10 * -0.01745329238474369;
_Model_DrawRotate($11,0.0,0.0,$1,1);
_Model_UpdateVB();
STACKTOP = sp;return;
}
function _HeadModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +0.375;
}
function _HeadModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[14272>>2]|0;HEAP32[$1+4>>2]=HEAP32[14272+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14272+8>>2]|0;
return;
}
function _HeadModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[14248>>2]|0;HEAP32[$1+4>>2]=HEAP32[14248+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14248+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[14248+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[14248+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[14248+20>>2]|0;
return;
}
function _HeadModel_GetTransform($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy1 = sp + 12|0;
$$byval_copy = sp;
$3 = ((($0)) + 80|0);
$4 = ((($0)) + 84|0);
$5 = +HEAPF32[$4>>2];
$6 = $5 * 1.5;
$7 = ((($1)) + 4|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 - $6;
HEAPF32[$7>>2] = $9;
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0;
_Entity_GetTransform($0,$$byval_copy,$$byval_copy1,$2);
STACKTOP = sp;return;
}
function _ChibiModel_MakeParts() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
_ChibiModel_ScalePart((1280604),(1280156));
_ChibiModel_ScalePart((1280636),(1280188));
_ChibiModel_ScaleLimbs((1280652),(1280204));
_ChibiModel_ScaleLimbs((1280780),(1280332));
_ChibiModel_ScaleLimbs((1280908),(1280460));
$0 = HEAP16[640070]|0;
$1 = $0&65535;
$2 = HEAP32[(1280016)>>2]|0;
$3 = ((($2)) + 36|0);
HEAP32[$3>>2] = $1;
_BoxDesc_BuildBox(1280588,14320);
$4 = HEAP16[(1280172)>>1]|0;
$5 = $4&65535;
$6 = HEAP32[(1280016)>>2]|0;
$7 = ((($6)) + 36|0);
HEAP32[$7>>2] = $5;
_BoxDesc_BuildBox((1280620),14364);
return;
}
function _ChibiModel_Draw($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_HumanModel_DrawCore($0,1280588,1);
return;
}
function _ChibiModel_GetNameY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.2625000476837158;
}
function _ChibiModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +0.875;
}
function _ChibiModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[14308>>2]|0;HEAP32[$1+4>>2]=HEAP32[14308+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14308+8>>2]|0;
return;
}
function _ChibiModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[14284>>2]|0;HEAP32[$1+4>>2]=HEAP32[14284+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14284+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[14284+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[14284+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[14284+20>>2]|0;
return;
}
function _ChibiModel_ScalePart($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$021 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0;
var $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0, $41 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1280016)>>2]|0;
;HEAP32[$0>>2]=HEAP32[$1>>2]|0;HEAP32[$0+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$1+12>>2]|0;
$3 = ((($0)) + 4|0);
$4 = +HEAPF32[$3>>2];
$5 = $4 * 0.5;
HEAPF32[$3>>2] = $5;
$6 = ((($0)) + 8|0);
$7 = +HEAPF32[$6>>2];
$8 = $7 * 0.5;
HEAPF32[$6>>2] = $8;
$9 = ((($0)) + 12|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 * 0.5;
HEAPF32[$9>>2] = $11;
$12 = HEAP16[$1>>1]|0;
$13 = $12&65535;
$14 = $12&65535;
$15 = ((($1)) + 2|0);
$16 = HEAP16[$15>>1]|0;
$17 = $16&65535;
$18 = (($17) + ($14))|0;
$19 = ($18>>>0)>($13>>>0);
if (!($19)) {
return;
}
$20 = ((($2)) + 4|0);
$$021 = $13;
while(1) {
$21 = HEAP32[$20>>2]|0;
$22 = (($21) + ($$021<<4)|0);
$23 = HEAP32[(12916)>>2]|0;
$24 = (($23) + ($$021<<4)|0);
;HEAP32[$22>>2]=HEAP32[$24>>2]|0;HEAP32[$22+4>>2]=HEAP32[$24+4>>2]|0;HEAP32[$22+8>>2]=HEAP32[$24+8>>2]|0;HEAP32[$22+12>>2]=HEAP32[$24+12>>2]|0;
$25 = HEAP32[$20>>2]|0;
$26 = (($25) + ($$021<<4)|0);
$27 = +HEAPF32[$26>>2];
$28 = $27 * 0.5;
HEAPF32[$26>>2] = $28;
$29 = (((($25) + ($$021<<4)|0)) + 4|0);
$30 = +HEAPF32[$29>>2];
$31 = $30 * 0.5;
HEAPF32[$29>>2] = $31;
$32 = (((($25) + ($$021<<4)|0)) + 8|0);
$33 = +HEAPF32[$32>>2];
$34 = $33 * 0.5;
HEAPF32[$32>>2] = $34;
$35 = (($$021) + 1)|0;
$36 = HEAP16[$1>>1]|0;
$37 = $36&65535;
$38 = HEAP16[$15>>1]|0;
$39 = $38&65535;
$40 = (($39) + ($37))|0;
$41 = ($35>>>0)<($40>>>0);
if ($41) {
$$021 = $35;
} else {
break;
}
}
return;
}
function _ChibiModel_ScaleLimbs($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_ChibiModel_ScalePart($0,$1);
$2 = ((($0)) + 16|0);
$3 = ((($1)) + 16|0);
_ChibiModel_ScalePart($2,$3);
$4 = ((($0)) + 32|0);
$5 = ((($1)) + 32|0);
_ChibiModel_ScalePart($4,$5);
$6 = ((($0)) + 48|0);
$7 = ((($1)) + 48|0);
_ChibiModel_ScalePart($6,$7);
$8 = ((($0)) + 64|0);
$9 = ((($1)) + 64|0);
_ChibiModel_ScalePart($8,$9);
$10 = ((($0)) + 80|0);
$11 = ((($1)) + 80|0);
_ChibiModel_ScalePart($10,$11);
$12 = ((($0)) + 96|0);
$13 = ((($1)) + 96|0);
_ChibiModel_ScalePart($12,$13);
$14 = ((($0)) + 112|0);
$15 = ((($1)) + 112|0);
_ChibiModel_ScalePart($14,$15);
return;
}
function _BoxDesc_BuildBox($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 6|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = ((($1)) + 4|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = ((($1)) + 5|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = ((($1)) + 8|0);
$12 = +HEAPF32[$11>>2];
$13 = ((($1)) + 12|0);
$14 = +HEAPF32[$13>>2];
$15 = ((($1)) + 16|0);
$16 = +HEAPF32[$15>>2];
$17 = ((($1)) + 20|0);
$18 = +HEAPF32[$17>>2];
$19 = ((($1)) + 24|0);
$20 = +HEAPF32[$19>>2];
$21 = ((($1)) + 28|0);
$22 = +HEAPF32[$21>>2];
$23 = HEAP16[$1>>1]|0;
$24 = $23&65535;
$25 = ((($1)) + 2|0);
$26 = HEAP16[$25>>1]|0;
$27 = $26&65535;
$28 = HEAP32[(1280016)>>2]|0;
$29 = (($24) + ($4))|0;
_BoxDesc_YQuad($28,$29,$27,$7,$4,$12,$18,$22,$16,$20,1);
$30 = (($29) + ($7))|0;
_BoxDesc_YQuad($28,$30,$27,$7,$4,$18,$12,$22,$16,$14,0);
$31 = (($27) + ($4))|0;
_BoxDesc_ZQuad($28,$29,$31,$7,$10,$12,$18,$14,$20,$16,1);
$32 = (($30) + ($4))|0;
_BoxDesc_ZQuad($28,$32,$31,$7,$10,$18,$12,$14,$20,$22,1);
_BoxDesc_XQuad($28,$24,$31,$4,$10,$16,$22,$14,$20,$18,1);
_BoxDesc_XQuad($28,$30,$31,$4,$10,$22,$16,$14,$20,$12,1);
$33 = ((($28)) + 36|0);
$34 = HEAP32[$33>>2]|0;
$35 = (($34) + -24)|0;
$36 = ((($1)) + 32|0);
$37 = +HEAPF32[$36>>2];
$38 = ((($1)) + 36|0);
$39 = +HEAPF32[$38>>2];
$40 = ((($1)) + 40|0);
$41 = +HEAPF32[$40>>2];
_ModelPart_Init($0,$35,24,$37,$39,$41);
return;
}
function _BoxDesc_YQuad($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = +$5;
$6 = +$6;
$7 = +$7;
$8 = +$8;
$9 = +$9;
$10 = $10|0;
var $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $spec$select = 0, $spec$select46 = 0, label = 0, sp = 0;
sp = STACKTOP;
$11 = (($3) + ($1))|0;
$12 = $11 | 32768;
$13 = ($10<<24>>24)==(0);
$spec$select = $13 ? $12 : $1;
$spec$select46 = $13 ? $1 : $12;
$14 = ((($0)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($0)) + 36|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + ($17<<4)|0);
$19 = (($4) + ($2))|0;
$20 = $19 | 32768;
_ModelVertex_Init($18,$5,$9,$8,$spec$select46,$20);
$21 = HEAP32[$16>>2]|0;
$22 = (($21) + 1)|0;
HEAP32[$16>>2] = $22;
$23 = HEAP32[$14>>2]|0;
$24 = (($23) + ($22<<4)|0);
_ModelVertex_Init($24,$5,$9,$7,$spec$select46,$2);
$25 = HEAP32[$16>>2]|0;
$26 = (($25) + 1)|0;
HEAP32[$16>>2] = $26;
$27 = HEAP32[$14>>2]|0;
$28 = (($27) + ($26<<4)|0);
_ModelVertex_Init($28,$6,$9,$7,$spec$select,$2);
$29 = HEAP32[$16>>2]|0;
$30 = (($29) + 1)|0;
HEAP32[$16>>2] = $30;
$31 = HEAP32[$14>>2]|0;
$32 = (($31) + ($30<<4)|0);
_ModelVertex_Init($32,$6,$9,$8,$spec$select,$20);
$33 = HEAP32[$16>>2]|0;
$34 = (($33) + 1)|0;
HEAP32[$16>>2] = $34;
return;
}
function _BoxDesc_ZQuad($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = +$5;
$6 = +$6;
$7 = +$7;
$8 = +$8;
$9 = +$9;
$10 = $10|0;
var $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $spec$select = 0, $spec$select46 = 0, label = 0, sp = 0;
sp = STACKTOP;
$11 = (($3) + ($1))|0;
$12 = $11 | 32768;
$13 = ($10<<24>>24)==(0);
$spec$select = $13 ? $12 : $1;
$spec$select46 = $13 ? $1 : $12;
$14 = ((($0)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($0)) + 36|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + ($17<<4)|0);
$19 = (($4) + ($2))|0;
$20 = $19 | 32768;
_ModelVertex_Init($18,$5,$7,$9,$spec$select46,$20);
$21 = HEAP32[$16>>2]|0;
$22 = (($21) + 1)|0;
HEAP32[$16>>2] = $22;
$23 = HEAP32[$14>>2]|0;
$24 = (($23) + ($22<<4)|0);
_ModelVertex_Init($24,$5,$8,$9,$spec$select46,$2);
$25 = HEAP32[$16>>2]|0;
$26 = (($25) + 1)|0;
HEAP32[$16>>2] = $26;
$27 = HEAP32[$14>>2]|0;
$28 = (($27) + ($26<<4)|0);
_ModelVertex_Init($28,$6,$8,$9,$spec$select,$2);
$29 = HEAP32[$16>>2]|0;
$30 = (($29) + 1)|0;
HEAP32[$16>>2] = $30;
$31 = HEAP32[$14>>2]|0;
$32 = (($31) + ($30<<4)|0);
_ModelVertex_Init($32,$6,$7,$9,$spec$select,$20);
$33 = HEAP32[$16>>2]|0;
$34 = (($33) + 1)|0;
HEAP32[$16>>2] = $34;
return;
}
function _BoxDesc_XQuad($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = +$5;
$6 = +$6;
$7 = +$7;
$8 = +$8;
$9 = +$9;
$10 = $10|0;
var $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $spec$select = 0, $spec$select46 = 0, label = 0, sp = 0;
sp = STACKTOP;
$11 = (($3) + ($1))|0;
$12 = $11 | 32768;
$13 = ($10<<24>>24)==(0);
$spec$select = $13 ? $12 : $1;
$spec$select46 = $13 ? $1 : $12;
$14 = ((($0)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($0)) + 36|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + ($17<<4)|0);
$19 = (($4) + ($2))|0;
$20 = $19 | 32768;
_ModelVertex_Init($18,$9,$7,$5,$spec$select46,$20);
$21 = HEAP32[$16>>2]|0;
$22 = (($21) + 1)|0;
HEAP32[$16>>2] = $22;
$23 = HEAP32[$14>>2]|0;
$24 = (($23) + ($22<<4)|0);
_ModelVertex_Init($24,$9,$8,$5,$spec$select46,$2);
$25 = HEAP32[$16>>2]|0;
$26 = (($25) + 1)|0;
HEAP32[$16>>2] = $26;
$27 = HEAP32[$14>>2]|0;
$28 = (($27) + ($26<<4)|0);
_ModelVertex_Init($28,$9,$8,$6,$spec$select,$2);
$29 = HEAP32[$16>>2]|0;
$30 = (($29) + 1)|0;
HEAP32[$16>>2] = $30;
$31 = HEAP32[$14>>2]|0;
$32 = (($31) + ($30<<4)|0);
_ModelVertex_Init($32,$9,$7,$6,$spec$select,$20);
$33 = HEAP32[$16>>2]|0;
$34 = (($33) + 1)|0;
HEAP32[$16>>2] = $34;
return;
}
function _ModelPart_Init($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = +$3;
$4 = +$4;
$5 = +$5;
var $10 = 0, $11 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$6 = $1&65535;
HEAP16[$0>>1] = $6;
$7 = $2&65535;
$8 = ((($0)) + 2|0);
HEAP16[$8>>1] = $7;
$9 = ((($0)) + 4|0);
HEAPF32[$9>>2] = $3;
$10 = ((($0)) + 8|0);
HEAPF32[$10>>2] = $4;
$11 = ((($0)) + 12|0);
HEAPF32[$11>>2] = $5;
return;
}
function _ModelVertex_Init($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$0>>2] = $1;
$6 = ((($0)) + 4|0);
HEAPF32[$6>>2] = $2;
$7 = ((($0)) + 8|0);
HEAPF32[$7>>2] = $3;
$8 = $4&65535;
$9 = ((($0)) + 12|0);
HEAP16[$9>>1] = $8;
$10 = $5&65535;
$11 = ((($0)) + 14|0);
HEAP16[$11>>1] = $10;
return;
}
function _ChibiModel_DrawArm($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_HumanModel_DrawArmCore(1280588);
return;
}
function _BlockModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 52|0);
$2 = HEAP16[$1>>1]|0;
HEAP16[704102] = $2;
$3 = $2&65535;
$4 = (583428 + ($3)|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(4);
if ($6) {
return;
}
$7 = (571140 + ($3)|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
if (!($9)) {
;HEAP32[1279972>>2]=4294967295|0;HEAP32[1279972+4>>2]=4294967295|0;HEAP32[1279972+8>>2]=4294967295|0;HEAP32[1279972+12>>2]=4294967295|0;HEAP32[1279972+16>>2]=4294967295|0;HEAP32[1279972+20>>2]=4294967295|0;
}
$10 = ($5<<24>>24)==(5);
$11 = $10&1;
HEAP32[3605] = -1;
_BlockModel_DrawParts($11);
$12 = HEAP32[320259]|0;
$13 = ($12|0)==(0);
if ($13) {
return;
}
if ($10) {
_Gfx_SetFaceCulling(1);
$14 = HEAP32[320260]|0;
HEAP32[3605] = $14;
_BlockModel_Flush();
_Gfx_SetFaceCulling(0);
return;
} else {
$15 = HEAP32[320260]|0;
HEAP32[3605] = $15;
_BlockModel_Flush();
return;
}
}
function _BlockModel_GetNameY($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 52|0);
$2 = HEAP16[$1>>1]|0;
$3 = $2&65535;
$4 = (((597252 + (($3*12)|0)|0)) + 4|0);
$5 = +HEAPF32[$4>>2];
$6 = $5 + 0.075000002980232239;
return (+$6);
}
function _BlockModel_GetEyeY($0) {
$0 = $0|0;
var $1 = 0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 52|0);
$2 = HEAP16[$1>>1]|0;
$3 = $2&65535;
$4 = ($2<<16>>16)==(0);
if ($4) {
$11 = 1.0;
return (+$11);
}
$5 = (((588036 + (($3*12)|0)|0)) + 4|0);
$6 = (((597252 + (($3*12)|0)|0)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = +HEAPF32[$5>>2];
$9 = $7 + $8;
$10 = $9 * 0.5;
$11 = $10;
return (+$11);
}
function _BlockModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
$2 = ((($0)) + 52|0);
$3 = HEAP16[$2>>1]|0;
$4 = $3&65535;
$5 = (597252 + (($4*12)|0)|0);
$6 = (588036 + (($4*12)|0)|0);
_Vec3_Sub_1078($1,$5,$6);
_Vec3_Sub_1078($1,$1,14408);
$7 = +HEAPF32[$1>>2];
$8 = $7 > 0.0078125;
$9 = $8 ? $7 : 0.0078125;
HEAPF32[$1>>2] = $9;
$10 = ((($0)) + 96|0);
$11 = +HEAPF32[$10>>2];
$12 = $11 > 0.0078125;
$13 = $12 ? $11 : 0.0078125;
HEAPF32[$10>>2] = $13;
$14 = ((($0)) + 100|0);
$15 = +HEAPF32[$14>>2];
$16 = $15 > 0.0078125;
$17 = $16 ? $15 : 0.0078125;
HEAPF32[$14>>2] = $17;
return;
}
function _BlockModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 52|0);
$2 = HEAP16[$1>>1]|0;
$3 = ((($0)) + 56|0);
$4 = $2&65535;
$5 = (588036 + (($4*12)|0)|0);
_Vec3_Add_1077($3,$5);
$6 = ((($0)) + 68|0);
$7 = (597252 + (($4*12)|0)|0);
_Vec3_Add_1077($6,$7);
return;
}
function _Vec3_Add_1077($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0.0, $11 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[$1>>2];
$3 = $2 + -0.5;
HEAPF32[$0>>2] = $3;
$4 = ((($1)) + 4|0);
$5 = +HEAPF32[$4>>2];
$6 = $5 + 0.0;
$7 = ((($0)) + 4|0);
HEAPF32[$7>>2] = $6;
$8 = ((($1)) + 8|0);
$9 = +HEAPF32[$8>>2];
$10 = $9 + -0.5;
$11 = ((($0)) + 8|0);
HEAPF32[$11>>2] = $10;
return;
}
function _Vec3_Sub_1078($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 - $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 - $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 - $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _BlockModel_DrawParts($0) {
$0 = $0|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$012$0$$sroa_idx = 0, $$sroa$012$0$copyload = 0.0, $$sroa$4$0$$sroa_idx8 = 0, $$sroa$4$0$copyload22 = 0, $$sroa$414$0$$sroa_idx15 = 0, $$sroa$414$0$copyload21 = 0, $$sroa$5$0$$sroa_idx10 = 0, $$sroa$5$0$copyload = 0.0, $$sroa$517$0$$sroa_idx18 = 0, $$sroa$517$0$copyload = 0.0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0;
var $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0;
var $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
HEAP32[$1>>2] = 0;
$2 = ($0<<24>>24)==(0);
if ($2) {
$3 = HEAP16[704102]|0;
$4 = $3&65535;
$5 = (588036 + (($4*12)|0)|0);
;HEAP32[(1241064)>>2]=HEAP32[$5>>2]|0;HEAP32[(1241064)+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[(1241064)+8>>2]=HEAP32[$5+8>>2]|0;
$6 = +HEAPF32[(1241068)>>2];
$7 = 1.0 - $6;
HEAPF32[(1241068)>>2] = $7;
$8 = (597252 + (($4*12)|0)|0);
;HEAP32[(1241076)>>2]=HEAP32[$8>>2]|0;HEAP32[(1241076)+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[(1241076)+8>>2]=HEAP32[$8+8>>2]|0;
$9 = +HEAPF32[(1241080)>>2];
$10 = 1.0 - $9;
HEAPF32[(1241080)>>2] = $10;
$11 = (585732 + ($4)|0);
$12 = HEAP8[$11>>0]|0;
HEAP8[1241056] = $12;
$13 = (571908 + ($4<<2)|0);
$14 = HEAP32[$13>>2]|0;
HEAP32[(1241060)>>2] = $14;
$$sroa$012$0$$sroa_idx = (606468 + (($4*12)|0)|0);
$$sroa$012$0$copyload = +HEAPF32[$$sroa$012$0$$sroa_idx>>2];
$$sroa$414$0$$sroa_idx15 = (((606468 + (($4*12)|0)|0)) + 4|0);
$$sroa$414$0$copyload21 = HEAP32[$$sroa$414$0$$sroa_idx15>>2]|0;
$$sroa$517$0$$sroa_idx18 = (((606468 + (($4*12)|0)|0)) + 8|0);
$$sroa$517$0$copyload = +HEAPF32[$$sroa$517$0$$sroa_idx18>>2];
$$sroa$0$0$$sroa_idx = (615684 + (($4*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$4$0$$sroa_idx8 = (((615684 + (($4*12)|0)|0)) + 4|0);
$$sroa$4$0$copyload22 = HEAP32[$$sroa$4$0$$sroa_idx8>>2]|0;
$$sroa$5$0$$sroa_idx10 = (((615684 + (($4*12)|0)|0)) + 8|0);
$$sroa$5$0$copyload = +HEAPF32[$$sroa$5$0$$sroa_idx10>>2];
$15 = $$sroa$012$0$copyload + -0.5;
HEAPF32[(1241088)>>2] = $15;
HEAP32[(1241092)>>2] = $$sroa$414$0$copyload21;
$16 = $$sroa$517$0$copyload + -0.5;
HEAPF32[(1241096)>>2] = $16;
$17 = $$sroa$0$0$copyload + -0.5;
HEAPF32[(1241100)>>2] = $17;
HEAP32[(1241104)>>2] = $$sroa$4$0$copyload22;
$18 = $$sroa$5$0$copyload + -0.5;
HEAPF32[(1241108)>>2] = $18;
$19 = (_BlockModel_GetTex(4,$1)|0);
$20 = HEAP32[(1279976)>>2]|0;
_Drawer_YMin(1,$20,$19,$1);
$21 = (_BlockModel_GetTex(2,$1)|0);
$22 = HEAP32[(1279984)>>2]|0;
_Drawer_ZMin(1,$22,$21,$1);
$23 = (_BlockModel_GetTex(1,$1)|0);
$24 = HEAP32[(1279992)>>2]|0;
_Drawer_XMax(1,$24,$23,$1);
$25 = (_BlockModel_GetTex(3,$1)|0);
$26 = HEAP32[(1279980)>>2]|0;
_Drawer_ZMax(1,$26,$25,$1);
$27 = (_BlockModel_GetTex(0,$1)|0);
$28 = HEAP32[(1279988)>>2]|0;
_Drawer_XMin(1,$28,$27,$1);
$29 = (_BlockModel_GetTex(5,$1)|0);
$30 = HEAP32[319993]|0;
_Drawer_YMax(1,$30,$29,$1);
STACKTOP = sp;return;
} else {
_BlockModel_SpriteXQuad(0,0);
_BlockModel_SpriteXQuad(0,1);
_BlockModel_SpriteZQuad(0,0);
_BlockModel_SpriteZQuad(0,1);
_BlockModel_SpriteZQuad(1,0);
_BlockModel_SpriteZQuad(1,1);
_BlockModel_SpriteXQuad(1,0);
_BlockModel_SpriteXQuad(1,1);
STACKTOP = sp;return;
}
}
function _BlockModel_Flush() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[3605]|0;
$1 = ($0|0)==(-1);
if (!($1)) {
$2 = (1384660 + ($0<<2)|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_BindTexture($3);
$4 = HEAP32[320259]|0;
$5 = HEAP32[(1280016)>>2]|0;
$6 = ((($5)) + 36|0);
HEAP32[$6>>2] = $4;
_Model_UpdateVB();
}
$7 = HEAP32[320260]|0;
HEAP32[3605] = $7;
HEAP32[320259] = 0;
return;
}
function _BlockModel_SpriteXQuad($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$072 = 0.0, $$073 = 0.0, $$074 = 0.0, $$075 = 0.0, $$sink = 0, $$sroa$11$0$$sroa_idx33 = 0, $$sroa$11$0$$sroa_idx34 = 0, $$sroa$11$0$$sroa_idx36 = 0, $$sroa$11$0$$sroa_idx38 = 0, $$sroa$13$0$$sroa_idx41 = 0, $$sroa$13$0$$sroa_idx42 = 0, $$sroa$13$0$$sroa_idx44 = 0, $$sroa$13$0$$sroa_idx46 = 0, $$sroa$14$0$$sroa_idx49 = 0, $$sroa$14$0$$sroa_idx50 = 0, $$sroa$14$0$$sroa_idx52 = 0, $$sroa$14$0$$sroa_idx54 = 0, $$sroa$16$0$$sroa_idx57 = 0, $$sroa$16$0$$sroa_idx58 = 0;
var $$sroa$16$0$$sroa_idx60 = 0, $$sroa$16$0$$sroa_idx62 = 0, $$sroa$8$0$$sroa_idx25 = 0, $$sroa$8$0$$sroa_idx26 = 0, $$sroa$8$0$$sroa_idx28 = 0, $$sroa$8$0$$sroa_idx30 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = HEAP16[704102]|0;
$4 = $3&65535;
$5 = ($4*6)|0;
$6 = $5 | 1;
$7 = (624900 + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
_Atlas1D_TexRec($2,$8,1,1281040);
$9 = HEAP32[3605]|0;
$10 = HEAP32[320260]|0;
$11 = ($9|0)==($10|0);
if (!($11)) {
_BlockModel_Flush();
}
$12 = HEAP32[319993]|0;
$13 = HEAP16[704102]|0;
$14 = $13&65535;
$15 = (585732 + ($14)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(0);
if ($17) {
$$0 = $12;
} else {
$18 = (571908 + ($14<<2)|0);
$19 = HEAP32[$18>>2]|0;
$20 = (_PackedCol_Tint($12,$19)|0);
$$0 = $20;
}
$21 = ($0<<24>>24)==(0);
$22 = ($1<<24>>24)!=(0);
do {
if ($21) {
if ($22) {
$$072 = 0.0;$$073 = -0.34375;$$074 = 0.0;$$075 = 0.34375;$$sink = $2;
break;
} else {
$24 = ((($2)) + 8|0);
$$072 = -0.34375;$$073 = 0.0;$$074 = 0.34375;$$075 = 0.0;$$sink = $24;
break;
}
} else {
if ($22) {
$23 = ((($2)) + 8|0);
$$072 = 0.34375;$$073 = 0.0;$$074 = -0.34375;$$075 = 0.0;$$sink = $23;
break;
} else {
$$072 = 0.0;$$073 = 0.34375;$$074 = 0.0;$$075 = -0.34375;$$sink = $2;
break;
}
}
} while(0);
HEAPF32[$$sink>>2] = 0.5;
$25 = HEAP32[(1280024)>>2]|0;
$26 = HEAP32[320259]|0;
$27 = (($25) + (($26*24)|0)|0);
$28 = ((($2)) + 8|0);
$29 = HEAP32[$28>>2]|0;
$30 = ((($2)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = ((($27)) + 24|0);
HEAPF32[$27>>2] = $$075;
$$sroa$8$0$$sroa_idx26 = (((($25) + (($26*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx26>>2] = 0.0;
$$sroa$11$0$$sroa_idx34 = (((($25) + (($26*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$11$0$$sroa_idx34>>2] = $$073;
$$sroa$13$0$$sroa_idx42 = (((($25) + (($26*24)|0)|0)) + 12|0);
HEAP32[$$sroa$13$0$$sroa_idx42>>2] = $$0;
$$sroa$14$0$$sroa_idx50 = (((($25) + (($26*24)|0)|0)) + 16|0);
HEAP32[$$sroa$14$0$$sroa_idx50>>2] = $29;
$$sroa$16$0$$sroa_idx58 = (((($25) + (($26*24)|0)|0)) + 20|0);
HEAP32[$$sroa$16$0$$sroa_idx58>>2] = $31;
$33 = ((($2)) + 4|0);
$34 = HEAP32[$33>>2]|0;
$35 = ((($32)) + 24|0);
HEAPF32[$32>>2] = $$075;
$$sroa$8$0$$sroa_idx28 = ((($32)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx28>>2] = 1.0;
$$sroa$11$0$$sroa_idx36 = ((($32)) + 8|0);
HEAPF32[$$sroa$11$0$$sroa_idx36>>2] = $$073;
$$sroa$13$0$$sroa_idx44 = ((($32)) + 12|0);
HEAP32[$$sroa$13$0$$sroa_idx44>>2] = $$0;
$$sroa$14$0$$sroa_idx52 = ((($32)) + 16|0);
HEAP32[$$sroa$14$0$$sroa_idx52>>2] = $29;
$$sroa$16$0$$sroa_idx60 = ((($32)) + 20|0);
HEAP32[$$sroa$16$0$$sroa_idx60>>2] = $34;
$36 = HEAP32[$2>>2]|0;
$37 = ((($35)) + 24|0);
HEAPF32[$35>>2] = $$074;
$$sroa$8$0$$sroa_idx30 = ((($35)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx30>>2] = 1.0;
$$sroa$11$0$$sroa_idx38 = ((($35)) + 8|0);
HEAPF32[$$sroa$11$0$$sroa_idx38>>2] = $$072;
$$sroa$13$0$$sroa_idx46 = ((($35)) + 12|0);
HEAP32[$$sroa$13$0$$sroa_idx46>>2] = $$0;
$$sroa$14$0$$sroa_idx54 = ((($35)) + 16|0);
HEAP32[$$sroa$14$0$$sroa_idx54>>2] = $36;
$$sroa$16$0$$sroa_idx62 = ((($35)) + 20|0);
HEAP32[$$sroa$16$0$$sroa_idx62>>2] = $34;
$38 = HEAP32[$30>>2]|0;
HEAPF32[$37>>2] = $$074;
$$sroa$8$0$$sroa_idx25 = ((($37)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx25>>2] = 0.0;
$$sroa$11$0$$sroa_idx33 = ((($37)) + 8|0);
HEAPF32[$$sroa$11$0$$sroa_idx33>>2] = $$072;
$$sroa$13$0$$sroa_idx41 = ((($37)) + 12|0);
HEAP32[$$sroa$13$0$$sroa_idx41>>2] = $$0;
$$sroa$14$0$$sroa_idx49 = ((($37)) + 16|0);
HEAP32[$$sroa$14$0$$sroa_idx49>>2] = $36;
$$sroa$16$0$$sroa_idx57 = ((($37)) + 20|0);
HEAP32[$$sroa$16$0$$sroa_idx57>>2] = $38;
$39 = (($26) + 4)|0;
HEAP32[320259] = $39;
STACKTOP = sp;return;
}
function _BlockModel_SpriteZQuad($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$068 = 0.0, $$069 = 0.0, $$sink = 0, $$sroa$11$0$$sroa_idx29 = 0, $$sroa$11$0$$sroa_idx30 = 0, $$sroa$11$0$$sroa_idx32 = 0, $$sroa$11$0$$sroa_idx34 = 0, $$sroa$13$0$$sroa_idx37 = 0, $$sroa$13$0$$sroa_idx38 = 0, $$sroa$13$0$$sroa_idx40 = 0, $$sroa$13$0$$sroa_idx42 = 0, $$sroa$14$0$$sroa_idx45 = 0, $$sroa$14$0$$sroa_idx46 = 0, $$sroa$14$0$$sroa_idx48 = 0, $$sroa$14$0$$sroa_idx50 = 0, $$sroa$16$0$$sroa_idx53 = 0, $$sroa$16$0$$sroa_idx54 = 0, $$sroa$16$0$$sroa_idx56 = 0, $$sroa$16$0$$sroa_idx58 = 0;
var $$sroa$8$0$$sroa_idx21 = 0, $$sroa$8$0$$sroa_idx22 = 0, $$sroa$8$0$$sroa_idx24 = 0, $$sroa$8$0$$sroa_idx26 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = HEAP16[704102]|0;
$4 = $3&65535;
$5 = ($4*6)|0;
$6 = (($5) + 3)|0;
$7 = (624900 + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
_Atlas1D_TexRec($2,$8,1,1281040);
$9 = HEAP32[3605]|0;
$10 = HEAP32[320260]|0;
$11 = ($9|0)==($10|0);
if (!($11)) {
_BlockModel_Flush();
}
$12 = HEAP32[319993]|0;
$13 = HEAP16[704102]|0;
$14 = $13&65535;
$15 = (585732 + ($14)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(0);
if ($17) {
$$0 = $12;
} else {
$18 = (571908 + ($14<<2)|0);
$19 = HEAP32[$18>>2]|0;
$20 = (_PackedCol_Tint($12,$19)|0);
$$0 = $20;
}
$21 = ($0<<24>>24)==(0);
$22 = ($1<<24>>24)!=(0);
do {
if ($21) {
if ($22) {
$24 = ((($2)) + 8|0);
$$068 = 0.34375;$$069 = 0.0;$$sink = $24;
break;
} else {
$$068 = 0.0;$$069 = 0.34375;$$sink = $2;
break;
}
} else {
if ($22) {
$$068 = 0.0;$$069 = -0.34375;$$sink = $2;
break;
} else {
$23 = ((($2)) + 8|0);
$$068 = -0.34375;$$069 = 0.0;$$sink = $23;
break;
}
}
} while(0);
HEAPF32[$$sink>>2] = 0.5;
$25 = HEAP32[(1280024)>>2]|0;
$26 = HEAP32[320259]|0;
$27 = (($25) + (($26*24)|0)|0);
$28 = ((($2)) + 8|0);
$29 = HEAP32[$28>>2]|0;
$30 = ((($2)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = ((($27)) + 24|0);
HEAPF32[$27>>2] = $$069;
$$sroa$8$0$$sroa_idx22 = (((($25) + (($26*24)|0)|0)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx22>>2] = 0.0;
$$sroa$11$0$$sroa_idx30 = (((($25) + (($26*24)|0)|0)) + 8|0);
HEAPF32[$$sroa$11$0$$sroa_idx30>>2] = $$069;
$$sroa$13$0$$sroa_idx38 = (((($25) + (($26*24)|0)|0)) + 12|0);
HEAP32[$$sroa$13$0$$sroa_idx38>>2] = $$0;
$$sroa$14$0$$sroa_idx46 = (((($25) + (($26*24)|0)|0)) + 16|0);
HEAP32[$$sroa$14$0$$sroa_idx46>>2] = $29;
$$sroa$16$0$$sroa_idx54 = (((($25) + (($26*24)|0)|0)) + 20|0);
HEAP32[$$sroa$16$0$$sroa_idx54>>2] = $31;
$33 = ((($2)) + 4|0);
$34 = HEAP32[$33>>2]|0;
$35 = ((($32)) + 24|0);
HEAPF32[$32>>2] = $$069;
$$sroa$8$0$$sroa_idx24 = ((($32)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx24>>2] = 1.0;
$$sroa$11$0$$sroa_idx32 = ((($32)) + 8|0);
HEAPF32[$$sroa$11$0$$sroa_idx32>>2] = $$069;
$$sroa$13$0$$sroa_idx40 = ((($32)) + 12|0);
HEAP32[$$sroa$13$0$$sroa_idx40>>2] = $$0;
$$sroa$14$0$$sroa_idx48 = ((($32)) + 16|0);
HEAP32[$$sroa$14$0$$sroa_idx48>>2] = $29;
$$sroa$16$0$$sroa_idx56 = ((($32)) + 20|0);
HEAP32[$$sroa$16$0$$sroa_idx56>>2] = $34;
$36 = HEAP32[$2>>2]|0;
$37 = ((($35)) + 24|0);
HEAPF32[$35>>2] = $$068;
$$sroa$8$0$$sroa_idx26 = ((($35)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx26>>2] = 1.0;
$$sroa$11$0$$sroa_idx34 = ((($35)) + 8|0);
HEAPF32[$$sroa$11$0$$sroa_idx34>>2] = $$068;
$$sroa$13$0$$sroa_idx42 = ((($35)) + 12|0);
HEAP32[$$sroa$13$0$$sroa_idx42>>2] = $$0;
$$sroa$14$0$$sroa_idx50 = ((($35)) + 16|0);
HEAP32[$$sroa$14$0$$sroa_idx50>>2] = $36;
$$sroa$16$0$$sroa_idx58 = ((($35)) + 20|0);
HEAP32[$$sroa$16$0$$sroa_idx58>>2] = $34;
$38 = HEAP32[$30>>2]|0;
HEAPF32[$37>>2] = $$068;
$$sroa$8$0$$sroa_idx21 = ((($37)) + 4|0);
HEAPF32[$$sroa$8$0$$sroa_idx21>>2] = 0.0;
$$sroa$11$0$$sroa_idx29 = ((($37)) + 8|0);
HEAPF32[$$sroa$11$0$$sroa_idx29>>2] = $$068;
$$sroa$13$0$$sroa_idx37 = ((($37)) + 12|0);
HEAP32[$$sroa$13$0$$sroa_idx37>>2] = $$0;
$$sroa$14$0$$sroa_idx45 = ((($37)) + 16|0);
HEAP32[$$sroa$14$0$$sroa_idx45>>2] = $36;
$$sroa$16$0$$sroa_idx53 = ((($37)) + 20|0);
HEAP32[$$sroa$16$0$$sroa_idx53>>2] = $38;
$39 = (($26) + 4)|0;
HEAP32[320259] = $39;
STACKTOP = sp;return;
}
function _BlockModel_GetTex($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP16[704102]|0;
$3 = $2&65535;
$4 = ($3*6)|0;
$5 = $0&255;
$6 = (($4) + ($5))|0;
$7 = (624900 + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$10 = HEAP32[(1384652)>>2]|0;
$11 = ($10)?($9 >>> $10):($9);
HEAP32[320260] = $11;
$12 = HEAP32[3605]|0;
$13 = ($12|0)==($11|0);
if (!($13)) {
_BlockModel_Flush();
}
$14 = HEAP32[(1280024)>>2]|0;
$15 = HEAP32[320259]|0;
$16 = (($14) + (($15*24)|0)|0);
HEAP32[$1>>2] = $16;
$17 = (($15) + 4)|0;
HEAP32[320259] = $17;
return ($8|0);
}
function _ZombieModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 256|0);
HEAPF32[$1>>2] = 1.5707963705062866;
$2 = ((($0)) + 264|0);
HEAPF32[$2>>2] = 1.5707963705062866;
_HumanModel_DrawCore($0,1280140,0);
return;
}
function _HumanModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.625;
}
function _HumanModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[14424>>2]|0;HEAP32[$1+4>>2]=HEAP32[14424+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14424+8>>2]|0;
return;
}
function _ZombieModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[14692>>2]|0;HEAP32[$1+4>>2]=HEAP32[14692+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14692+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[14692+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[14692+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[14692+20>>2]|0;
return;
}
function _ZombieModel_DrawArm($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_HumanModel_DrawArmCore(1280140);
return;
}
function _SpiderModel_MakeParts() {
var label = 0, sp = 0;
sp = STACKTOP;
_BoxDesc_BuildBox(1281044,14472);
_BoxDesc_BuildBox(1281060,14516);
_BoxDesc_BuildBox(1281076,14560);
_BoxDesc_BuildBox(1281092,14604);
_BoxDesc_BuildBox(1281108,14648);
return;
}
function _SpiderModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0;
var $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $5 = 0.0, $6 = 0.0;
var $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Model_ApplyTexture($0);
$1 = ((($0)) + 16|0);
$2 = +HEAPF32[$1>>2];
$3 = $2 * -0.01745329238474369;
_Model_DrawRotate($3,0.0,0.0,1281044,1);
_Model_DrawPart(1281060);
_Model_DrawPart(1281076);
$4 = ((($0)) + 204|0);
$5 = +HEAPF32[$4>>2];
$6 = $5;
$7 = (+_Math_Sin($6));
$8 = $7;
$9 = ((($0)) + 208|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 * $8;
$12 = $11 * 3.1415927410125732;
$13 = +HEAPF32[$4>>2];
$14 = $13 * 2.0;
$15 = $14;
$16 = (+_Math_Cos($15));
$17 = $16;
$18 = +HEAPF32[$9>>2];
$19 = $18 * $17;
$20 = $19 * 3.1415927410125732;
$21 = $20 * 0.0625;
$22 = +HEAPF32[$4>>2];
$23 = $22 * 2.0;
$24 = $23;
$25 = (+_Math_Sin($24));
$26 = $25;
$27 = +HEAPF32[$9>>2];
$28 = $27 * $26;
$29 = $28 * 3.1415927410125732;
$30 = $29 * 0.03125;
HEAP8[(1280012)>>0] = 1;
$31 = $30 + 0.78539818525314331;
$32 = $21 + 0.39269909262657166;
_Model_DrawRotate($12,$31,$32,1281092,0);
$33 = - $12;
$34 = $30 + 0.39269909262657166;
_Model_DrawRotate($33,$34,$32,1281092,0);
$35 = -0.39269909262657166 - $30;
$36 = 0.39269909262657166 - $21;
_Model_DrawRotate($12,$35,$36,1281092,0);
$37 = -0.78539818525314331 - $30;
_Model_DrawRotate($33,$37,$36,1281092,0);
$38 = $30 + -0.78539818525314331;
$39 = $21 + -0.39269909262657166;
_Model_DrawRotate($12,$38,$39,1281108,0);
$40 = $30 + -0.39269909262657166;
_Model_DrawRotate($33,$40,$39,1281108,0);
$41 = 0.39269909262657166 - $30;
$42 = -0.39269909262657166 - $21;
_Model_DrawRotate($12,$41,$42,1281108,0);
$43 = 0.78539818525314331 - $30;
_Model_DrawRotate($33,$43,$42,1281108,0);
HEAP8[(1280012)>>0] = 0;
_Model_UpdateVB();
return;
}
function _SpiderModel_GetNameY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.0125000476837158;
}
function _SpiderModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +0.5;
}
function _SpiderModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[14460>>2]|0;HEAP32[$1+4>>2]=HEAP32[14460+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14460+8>>2]|0;
return;
}
function _SpiderModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[14436>>2]|0;HEAP32[$1+4>>2]=HEAP32[14436+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14436+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[14436+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[14436+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[14436+20>>2]|0;
return;
}
function _SkeletonModel_MakeParts() {
var label = 0, sp = 0;
sp = STACKTOP;
_BoxDesc_BuildBox(1281124,14728);
_BoxDesc_BuildBox(1281140,14772);
_BoxDesc_BuildBox(1281156,14816);
_BoxDesc_BuildBox(1281172,14860);
_BoxDesc_BuildBox(1281188,14904);
_BoxDesc_BuildBox(1281204,14948);
return;
}
function _SkeletonModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
_Model_ApplyTexture($0);
$1 = ((($0)) + 16|0);
$2 = +HEAPF32[$1>>2];
$3 = $2 * -0.01745329238474369;
_Model_DrawRotate($3,0.0,0.0,1281124,1);
_Model_DrawPart(1281140);
$4 = ((($0)) + 240|0);
$5 = +HEAPF32[$4>>2];
_Model_DrawRotate($5,0.0,0.0,1281156,0);
$6 = ((($0)) + 248|0);
$7 = +HEAPF32[$6>>2];
_Model_DrawRotate($7,0.0,0.0,1281172,0);
$8 = ((($0)) + 260|0);
$9 = +HEAPF32[$8>>2];
_Model_DrawRotate(1.5707963705062866,0.0,$9,1281188,0);
$10 = ((($0)) + 268|0);
$11 = +HEAPF32[$10>>2];
_Model_DrawRotate(1.5707963705062866,0.0,$11,1281204,0);
_Model_UpdateVB();
return;
}
function _SkeletonModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[14716>>2]|0;HEAP32[$1+4>>2]=HEAP32[14716+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14716+8>>2]|0;
return;
}
function _SkeletonModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[14692>>2]|0;HEAP32[$1+4>>2]=HEAP32[14692+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14692+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[14692+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[14692+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[14692+20>>2]|0;
return;
}
function _SkeletonModel_DrawArm($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Model_DrawArmPart(1281204);
_Model_UpdateVB();
return;
}
function _SheepModel_MakeParts() {
var label = 0, sp = 0;
sp = STACKTOP;
_BoxDesc_BuildBox(1281220,15028);
_BoxDesc_BuildRotatedBox(1281236,15072);
_BoxDesc_BuildBox(1281252,15116);
_BoxDesc_BuildBox(1281268,15160);
_BoxDesc_BuildBox(1281284,15204);
_BoxDesc_BuildBox(1281300,15248);
_BoxDesc_BuildBox(1281316,15292);
_BoxDesc_BuildRotatedBox(1281332,15336);
_BoxDesc_BuildBox(1281348,15380);
_BoxDesc_BuildBox(1281364,15424);
_BoxDesc_BuildBox(1281380,15468);
_BoxDesc_BuildBox(1281396,15512);
return;
}
function _FurlessModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
_Model_ApplyTexture($0);
$1 = ((($0)) + 16|0);
$2 = +HEAPF32[$1>>2];
$3 = $2 * -0.01745329238474369;
_Model_DrawRotate($3,0.0,0.0,1281220,1);
_Model_DrawPart(1281236);
$4 = ((($0)) + 240|0);
$5 = +HEAPF32[$4>>2];
_Model_DrawRotate($5,0.0,0.0,1281252,0);
$6 = ((($0)) + 248|0);
$7 = +HEAPF32[$6>>2];
_Model_DrawRotate($7,0.0,0.0,1281268,0);
$8 = +HEAPF32[$6>>2];
_Model_DrawRotate($8,0.0,0.0,1281284,0);
$9 = +HEAPF32[$4>>2];
_Model_DrawRotate($9,0.0,0.0,1281300,0);
_Model_UpdateVB();
return;
}
function _SheepModel_GetNameY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.4812500476837158;
}
function _SheepModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.25;
}
function _SheepModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[15016>>2]|0;HEAP32[$1+4>>2]=HEAP32[15016+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[15016+8>>2]|0;
return;
}
function _SheepModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[14992>>2]|0;HEAP32[$1+4>>2]=HEAP32[14992+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[14992+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[14992+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[14992+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[14992+20>>2]|0;
return;
}
function _BoxDesc_BuildRotatedBox($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0146 = 0, $$sroa$4$0$$sroa_idx5 = 0, $$sroa$4$0$copyload143 = 0, $$sroa$6$0$$sroa_idx9 = 0, $$sroa$6$0$copyload144 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0.0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 5|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = ((($1)) + 4|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = ((($1)) + 6|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = ((($1)) + 8|0);
$12 = +HEAPF32[$11>>2];
$13 = ((($1)) + 12|0);
$14 = +HEAPF32[$13>>2];
$15 = ((($1)) + 16|0);
$16 = +HEAPF32[$15>>2];
$17 = ((($1)) + 20|0);
$18 = +HEAPF32[$17>>2];
$19 = ((($1)) + 24|0);
$20 = +HEAPF32[$19>>2];
$21 = ((($1)) + 28|0);
$22 = +HEAPF32[$21>>2];
$23 = HEAP16[$1>>1]|0;
$24 = $23&65535;
$25 = ((($1)) + 2|0);
$26 = HEAP16[$25>>1]|0;
$27 = $26&65535;
$28 = HEAP32[(1280016)>>2]|0;
$29 = (($24) + ($4))|0;
$30 = (($29) + ($7))|0;
$31 = (($30) + ($4))|0;
$32 = (($27) + ($4))|0;
_BoxDesc_YQuad($28,$31,$32,$7,$10,$12,$18,$16,$22,$20,0);
_BoxDesc_YQuad($28,$29,$32,$7,$10,$18,$12,$16,$22,$14,0);
_BoxDesc_ZQuad($28,$29,$27,$7,$4,$18,$12,$14,$20,$16,0);
_BoxDesc_ZQuad($28,$30,$27,$7,$4,$12,$18,$20,$14,$22,0);
_BoxDesc_XQuad($28,$24,$32,$4,$10,$20,$14,$22,$16,$18,0);
_BoxDesc_XQuad($28,$30,$32,$4,$10,$14,$20,$22,$16,$12,0);
$33 = ((($28)) + 36|0);
$34 = HEAP32[$33>>2]|0;
$35 = (($34) + -8)|0;
$36 = ((($28)) + 4|0);
$$0146 = $35;
while(1) {
$37 = HEAP32[$36>>2]|0;
$$sroa$4$0$$sroa_idx5 = (((($37) + ($$0146<<4)|0)) + 4|0);
$$sroa$4$0$copyload143 = HEAP32[$$sroa$4$0$$sroa_idx5>>2]|0;
$$sroa$6$0$$sroa_idx9 = (((($37) + ($$0146<<4)|0)) + 8|0);
$$sroa$6$0$copyload144 = HEAP32[$$sroa$6$0$$sroa_idx9>>2]|0;
HEAP32[$$sroa$4$0$$sroa_idx5>>2] = $$sroa$6$0$copyload144;
HEAP32[$$sroa$6$0$$sroa_idx9>>2] = $$sroa$4$0$copyload143;
$38 = (($$0146) + 1)|0;
$39 = HEAP32[$33>>2]|0;
$40 = ($38|0)<($39|0);
if ($40) {
$$0146 = $38;
} else {
break;
}
}
$41 = (($39) + -24)|0;
$42 = ((($1)) + 32|0);
$43 = +HEAPF32[$42>>2];
$44 = ((($1)) + 36|0);
$45 = +HEAPF32[$44>>2];
$46 = ((($1)) + 40|0);
$47 = +HEAPF32[$46>>2];
_ModelPart_Init($0,$41,24,$43,$45,$47);
return;
}
function _SheepModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $10 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
_FurlessModel_Draw($0);
$1 = HEAP32[(12856)>>2]|0;
_Gfx_BindTexture($1);
$2 = ((($0)) + 16|0);
$3 = +HEAPF32[$2>>2];
$4 = $3 * -0.01745329238474369;
_Model_DrawRotate($4,0.0,0.0,1281316,1);
_Model_DrawPart(1281332);
$5 = ((($0)) + 240|0);
$6 = +HEAPF32[$5>>2];
_Model_DrawRotate($6,0.0,0.0,1281348,0);
$7 = ((($0)) + 248|0);
$8 = +HEAPF32[$7>>2];
_Model_DrawRotate($8,0.0,0.0,1281364,0);
$9 = +HEAPF32[$7>>2];
_Model_DrawRotate($9,0.0,0.0,1281380,0);
$10 = +HEAPF32[$5>>2];
_Model_DrawRotate($10,0.0,0.0,1281396,0);
_Model_UpdateVB();
return;
}
function _PigModel_MakeParts() {
var label = 0, sp = 0;
sp = STACKTOP;
_BoxDesc_BuildBox(1281412,15592);
_BoxDesc_BuildRotatedBox(1281428,15636);
_BoxDesc_BuildBox(1281444,15680);
_BoxDesc_BuildBox(1281460,15724);
_BoxDesc_BuildBox(1281476,15768);
_BoxDesc_BuildBox(1281492,15812);
return;
}
function _PigModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
_Model_ApplyTexture($0);
$1 = ((($0)) + 16|0);
$2 = +HEAPF32[$1>>2];
$3 = $2 * -0.01745329238474369;
_Model_DrawRotate($3,0.0,0.0,1281412,1);
_Model_DrawPart(1281428);
$4 = ((($0)) + 240|0);
$5 = +HEAPF32[$4>>2];
_Model_DrawRotate($5,0.0,0.0,1281444,0);
$6 = ((($0)) + 248|0);
$7 = +HEAPF32[$6>>2];
_Model_DrawRotate($7,0.0,0.0,1281460,0);
$8 = +HEAPF32[$6>>2];
_Model_DrawRotate($8,0.0,0.0,1281476,0);
$9 = +HEAPF32[$4>>2];
_Model_DrawRotate($9,0.0,0.0,1281492,0);
_Model_UpdateVB();
return;
}
function _PigModel_GetNameY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.0750000476837158;
}
function _PigModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +0.75;
}
function _PigModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[15580>>2]|0;HEAP32[$1+4>>2]=HEAP32[15580+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[15580+8>>2]|0;
return;
}
function _PigModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[15556>>2]|0;HEAP32[$1+4>>2]=HEAP32[15556+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[15556+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[15556+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[15556+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[15556+20>>2]|0;
return;
}
function _CreeperModel_MakeParts() {
var label = 0, sp = 0;
sp = STACKTOP;
_BoxDesc_BuildBox(1281508,15892);
_BoxDesc_BuildBox(1281524,15936);
_BoxDesc_BuildBox(1281540,15980);
_BoxDesc_BuildBox(1281556,16024);
_BoxDesc_BuildBox(1281572,16068);
_BoxDesc_BuildBox(1281588,16112);
return;
}
function _CreeperModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
_Model_ApplyTexture($0);
$1 = ((($0)) + 16|0);
$2 = +HEAPF32[$1>>2];
$3 = $2 * -0.01745329238474369;
_Model_DrawRotate($3,0.0,0.0,1281508,1);
_Model_DrawPart(1281524);
$4 = ((($0)) + 240|0);
$5 = +HEAPF32[$4>>2];
_Model_DrawRotate($5,0.0,0.0,1281540,0);
$6 = ((($0)) + 248|0);
$7 = +HEAPF32[$6>>2];
_Model_DrawRotate($7,0.0,0.0,1281556,0);
$8 = +HEAPF32[$6>>2];
_Model_DrawRotate($8,0.0,0.0,1281572,0);
$9 = +HEAPF32[$4>>2];
_Model_DrawRotate($9,0.0,0.0,1281588,0);
_Model_UpdateVB();
return;
}
function _CreeperModel_GetNameY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.7000000476837158;
}
function _CreeperModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.375;
}
function _CreeperModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[15880>>2]|0;HEAP32[$1+4>>2]=HEAP32[15880+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[15880+8>>2]|0;
return;
}
function _CreeperModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[15856>>2]|0;HEAP32[$1+4>>2]=HEAP32[15856+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[15856+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[15856+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[15856+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[15856+20>>2]|0;
return;
}
function _ChickenModel_MakeParts() {
var label = 0, sp = 0;
sp = STACKTOP;
_BoxDesc_BuildBox(1281604,16192);
_BoxDesc_BuildBox(1281620,16236);
_BoxDesc_BuildBox(1281636,16280);
_BoxDesc_BuildRotatedBox(1281652,16324);
_BoxDesc_BuildBox(1281668,16368);
_BoxDesc_BuildBox(1281684,16412);
_ChickenModel_MakeLeg(1281700,-3,0,-2,-1);
_ChickenModel_MakeLeg(1281716,0,3,1,2);
return;
}
function _ChickenModel_Draw($0) {
$0 = $0|0;
var $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0;
var $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[319993]|0;
_Model_ApplyTexture($0);
$2 = ((($0)) + 16|0);
$3 = +HEAPF32[$2>>2];
$4 = $3 * -0.01745329238474369;
_Model_DrawRotate($4,0.0,0.0,1281604,1);
$5 = +HEAPF32[$2>>2];
$6 = $5 * -0.01745329238474369;
_Model_DrawRotate($6,0.0,0.0,1281620,1);
$7 = +HEAPF32[$2>>2];
$8 = $7 * -0.01745329238474369;
_Model_DrawRotate($8,0.0,0.0,1281636,1);
_Model_DrawPart(1281652);
$9 = ((($0)) + 256|0);
$10 = +HEAPF32[$9>>2];
$11 = (+_Math_AbsF($10));
$12 = - $11;
_Model_DrawRotate(0.0,0.0,$12,1281668,0);
$13 = +HEAPF32[$9>>2];
$14 = (+_Math_AbsF($13));
_Model_DrawRotate(0.0,0.0,$14,1281684,0);
$15 = (_PackedCol_Scale($1,0.69999998807907104)|0);
HEAP32[319993] = $15;
$16 = (_PackedCol_Scale($1,0.69999998807907104)|0);
HEAP32[(1279976)>>2] = $16;
$17 = (_PackedCol_Scale($1,0.69999998807907104)|0);
HEAP32[(1279980)>>2] = $17;
$18 = (_PackedCol_Scale($1,0.69999998807907104)|0);
HEAP32[(1279984)>>2] = $18;
$19 = (_PackedCol_Scale($1,0.69999998807907104)|0);
HEAP32[(1279988)>>2] = $19;
$20 = (_PackedCol_Scale($1,0.69999998807907104)|0);
HEAP32[(1279992)>>2] = $20;
$21 = ((($0)) + 240|0);
$22 = +HEAPF32[$21>>2];
_Model_DrawRotate($22,0.0,0.0,1281700,0);
$23 = ((($0)) + 248|0);
$24 = +HEAPF32[$23>>2];
_Model_DrawRotate($24,0.0,0.0,1281716,0);
_Model_UpdateVB();
return;
}
function _ChickenModel_GetNameY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +1.0125000476837158;
}
function _ChickenModel_GetEyeY($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return +0.875;
}
function _ChickenModel_GetSize($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 92|0);
;HEAP32[$1>>2]=HEAP32[16180>>2]|0;HEAP32[$1+4>>2]=HEAP32[16180+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[16180+8>>2]|0;
return;
}
function _ChickenModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[16156>>2]|0;HEAP32[$1+4>>2]=HEAP32[16156+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[16156+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[16156+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[16156+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[16156+20>>2]|0;
return;
}
function _ChickenModel_MakeLeg($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$5 = HEAP32[(1280016)>>2]|0;
$6 = (+($2|0));
$7 = $6 * 0.0625;
$8 = (+($1|0));
$9 = $8 * 0.0625;
_BoxDesc_YQuad($5,32,0,3,3,$7,$9,-0.125,0.0625,0.015625,0);
$10 = (+($3|0));
$11 = $10 * 0.0625;
$12 = (+($4|0));
$13 = $12 * 0.0625;
_BoxDesc_ZQuad($5,36,3,1,5,$11,$13,0.015625,0.3125,0.0625,0);
$14 = ((($5)) + 36|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($15) + -8)|0;
_ModelPart_Init($0,$16,8,0.0,0.3125,0.0625);
return;
}
function _HumanModel_MakeParts() {
var $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_BoxDesc_BuildBox(1280140,16480);
_BoxDesc_BuildBox((1280156),16524);
_BoxDesc_BuildBox((1280172),16568);
_BoxDesc_BuildBox((1280188),16612);
_BoxDesc_BuildBox((1280204),16656);
_BoxDesc_BuildBox((1280220),16700);
_BoxDesc_BuildBox((1280236),16744);
_BoxDesc_BuildBox((1280252),16788);
_BoxDesc_BuildBox((1280332),16832);
;HEAP32[(1280348)>>2]=HEAP32[(1280220)>>2]|0;HEAP32[(1280348)+4>>2]=HEAP32[(1280220)+4>>2]|0;HEAP32[(1280348)+8>>2]=HEAP32[(1280220)+8>>2]|0;HEAP32[(1280348)+12>>2]=HEAP32[(1280220)+12>>2]|0;
_BoxDesc_BuildBox((1280364),16876);
;HEAP32[(1280380)>>2]=HEAP32[(1280252)>>2]|0;HEAP32[(1280380)+4>>2]=HEAP32[(1280252)+4>>2]|0;HEAP32[(1280380)+8>>2]=HEAP32[(1280252)+8>>2]|0;HEAP32[(1280380)+12>>2]=HEAP32[(1280252)+12>>2]|0;
$0 = HEAP8[(16880)>>0]|0;
$1 = $0&255;
$2 = (($1) + 255)|0;
$3 = $2&255;
HEAP8[(16880)>>0] = $3;
$4 = +HEAPF32[(16884)>>2];
$5 = $4 + 0.0625;
HEAPF32[(16884)>>2] = $5;
$6 = HEAP8[(16792)>>0]|0;
$7 = $6&255;
$8 = (($7) + 255)|0;
$9 = $8&255;
HEAP8[(16792)>>0] = $9;
$10 = +HEAPF32[(16808)>>2];
$11 = $10 + -0.0625;
HEAPF32[(16808)>>2] = $11;
;HEAP32[(1280460)>>2]=HEAP32[(1280332)>>2]|0;HEAP32[(1280460)+4>>2]=HEAP32[(1280332)+4>>2]|0;HEAP32[(1280460)+8>>2]=HEAP32[(1280332)+8>>2]|0;HEAP32[(1280460)+12>>2]=HEAP32[(1280332)+12>>2]|0;
;HEAP32[(1280476)>>2]=HEAP32[(1280348)>>2]|0;HEAP32[(1280476)+4>>2]=HEAP32[(1280348)+4>>2]|0;HEAP32[(1280476)+8>>2]=HEAP32[(1280348)+8>>2]|0;HEAP32[(1280476)+12>>2]=HEAP32[(1280348)+12>>2]|0;
_BoxDesc_BuildBox((1280492),16876);
_BoxDesc_BuildBox((1280508),16788);
_BoxDesc_BuildBox((1280396),16920);
_BoxDesc_BuildBox((1280412),16964);
_BoxDesc_BuildBox((1280428),17008);
_BoxDesc_BuildBox((1280444),17052);
$12 = HEAP8[(17012)>>0]|0;
$13 = $12&255;
$14 = (($13) + 255)|0;
$15 = $14&255;
HEAP8[(17012)>>0] = $15;
$16 = +HEAPF32[(17016)>>2];
$17 = $16 + 0.0625;
HEAPF32[(17016)>>2] = $17;
$18 = HEAP8[(17056)>>0]|0;
$19 = $18&255;
$20 = (($19) + 255)|0;
$21 = $20&255;
HEAP8[(17056)>>0] = $21;
$22 = +HEAPF32[(17072)>>2];
$23 = $22 + -0.0625;
HEAPF32[(17072)>>2] = $23;
;HEAP32[(1280524)>>2]=HEAP32[(1280396)>>2]|0;HEAP32[(1280524)+4>>2]=HEAP32[(1280396)+4>>2]|0;HEAP32[(1280524)+8>>2]=HEAP32[(1280396)+8>>2]|0;HEAP32[(1280524)+12>>2]=HEAP32[(1280396)+12>>2]|0;
;HEAP32[(1280540)>>2]=HEAP32[(1280412)>>2]|0;HEAP32[(1280540)+4>>2]=HEAP32[(1280412)+4>>2]|0;HEAP32[(1280540)+8>>2]=HEAP32[(1280412)+8>>2]|0;HEAP32[(1280540)+12>>2]=HEAP32[(1280412)+12>>2]|0;
_BoxDesc_BuildBox((1280556),17008);
_BoxDesc_BuildBox((1280572),17052);
return;
}
function _HumanModel_GetBounds($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
;HEAP32[$1>>2]=HEAP32[16456>>2]|0;HEAP32[$1+4>>2]=HEAP32[16456+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[16456+8>>2]|0;HEAP32[$1+12>>2]=HEAP32[16456+12>>2]|0;HEAP32[$1+16>>2]=HEAP32[16456+16>>2]|0;HEAP32[$1+20>>2]=HEAP32[16456+20>>2]|0;
return;
}
function _Model_ShouldRender($0) {
$0 = $0|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$4$0$$sroa_idx20 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$7$0$$sroa_idx23 = 0, $$sroa$7$0$copyload = 0.0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0;
var $22 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
$$sroa$0$0$$sroa_idx = ((($0)) + 4|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$4$0$$sroa_idx20 = ((($0)) + 8|0);
$$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx20>>2];
$$sroa$7$0$$sroa_idx23 = ((($0)) + 12|0);
$$sroa$7$0$copyload = +HEAPF32[$$sroa$7$0$$sroa_idx23>>2];
_Entity_GetPickingBounds($0,$1);
$2 = ((($1)) + 12|0);
$3 = +HEAPF32[$2>>2];
$4 = +HEAPF32[$1>>2];
$5 = $3 - $4;
$6 = ((($1)) + 16|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($1)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 - $9;
$11 = ((($1)) + 20|0);
$12 = +HEAPF32[$11>>2];
$13 = ((($1)) + 8|0);
$14 = +HEAPF32[$13>>2];
$15 = $12 - $14;
$16 = $10 > $15;
$17 = $16 ? $10 : $15;
$18 = $5 > $17;
$19 = $18 ? $5 : $17;
$20 = $10 * 0.5;
$21 = $$sroa$4$0$copyload + $20;
$22 = (_FrustumCulling_SphereInFrustum($$sroa$0$0$copyload,$21,$$sroa$7$0$copyload,$19)|0);
STACKTOP = sp;return ($22|0);
}
function _Model_RenderDistance($0) {
$0 = $0|0;
var $$sroa$0$0$copyload = 0.0, $$sroa$024$0$$sroa_idx = 0, $$sroa$024$0$copyload = 0.0, $$sroa$4$0$copyload = 0.0, $$sroa$426$0$$sroa_idx27 = 0, $$sroa$426$0$copyload = 0.0, $$sroa$5$0$copyload = 0.0, $$sroa$7$0$$sroa_idx30 = 0, $$sroa$7$0$copyload = 0.0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0;
var $2 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0;
var $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$sroa$024$0$$sroa_idx = ((($0)) + 4|0);
$$sroa$024$0$copyload = +HEAPF32[$$sroa$024$0$$sroa_idx>>2];
$$sroa$426$0$$sroa_idx27 = ((($0)) + 8|0);
$$sroa$426$0$copyload = +HEAPF32[$$sroa$426$0$$sroa_idx27>>2];
$$sroa$7$0$$sroa_idx30 = ((($0)) + 12|0);
$$sroa$7$0$copyload = +HEAPF32[$$sroa$7$0$$sroa_idx30>>2];
$$sroa$0$0$copyload = +HEAPF32[(1230620)>>2];
$$sroa$4$0$copyload = +HEAPF32[(1230624)>>2];
$$sroa$5$0$copyload = +HEAPF32[(1230628)>>2];
$1 = ((($0)) + 72|0);
$2 = +HEAPF32[$1>>2];
$3 = ((($0)) + 60|0);
$4 = +HEAPF32[$3>>2];
$5 = $2 - $4;
$6 = $5 * 0.5;
$7 = $$sroa$426$0$copyload + $6;
$8 = $$sroa$0$0$copyload - $$sroa$024$0$copyload;
$9 = ((($0)) + 68|0);
$10 = +HEAPF32[$9>>2];
$11 = ((($0)) + 56|0);
$12 = +HEAPF32[$11>>2];
$13 = $10 - $12;
$14 = $13 * 0.5;
$15 = (+_Model_MinDist($8,$14));
$16 = $$sroa$4$0$copyload - $7;
$17 = +HEAPF32[$1>>2];
$18 = +HEAPF32[$3>>2];
$19 = $17 - $18;
$20 = $19 * 0.5;
$21 = (+_Model_MinDist($16,$20));
$22 = $$sroa$5$0$copyload - $$sroa$7$0$copyload;
$23 = ((($0)) + 76|0);
$24 = +HEAPF32[$23>>2];
$25 = ((($0)) + 64|0);
$26 = +HEAPF32[$25>>2];
$27 = $24 - $26;
$28 = $27 * 0.5;
$29 = (+_Model_MinDist($22,$28));
$30 = $15 * $15;
$31 = $21 * $21;
$32 = $30 + $31;
$33 = $29 * $29;
$34 = $32 + $33;
return (+$34);
}
function _Model_MinDist($0,$1) {
$0 = +$0;
$1 = +$1;
var $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0 - $1;
$3 = (+_Math_AbsF($2));
$4 = $0 + $1;
$5 = (+_Math_AbsF($4));
$6 = $3 < $5;
$7 = $6 ? $3 : $5;
$8 = (+_Math_AbsF($0));
$9 = $8 < $7;
if (!($9)) {
$11 = $7;
return (+$11);
}
$10 = (+_Math_AbsF($0));
$11 = $10;
return (+$11);
}
function _Model_Render($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$byval_copy = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$$byval_copy = sp + 80|0;
$2 = sp + 16|0;
$3 = sp;
$4 = ((($1)) + 4|0);
;HEAP32[$3>>2]=HEAP32[$4>>2]|0;HEAP32[$3+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$4+8>>2]|0;
$5 = ((($0)) + 43|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if (!($7)) {
$8 = ((($1)) + 200|0);
$9 = +HEAPF32[$8>>2];
$10 = ((($3)) + 4|0);
$11 = +HEAPF32[$10>>2];
$12 = $9 + $11;
HEAPF32[$10>>2] = $12;
}
_Model_SetupState($0,$1);
_Gfx_SetVertexFormat(1);
$13 = ((($0)) + 76|0);
$14 = HEAP32[$13>>2]|0;
$15 = ((($1)) + 128|0);
;HEAP32[$$byval_copy>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$3+8>>2]|0;
FUNCTION_TABLE_viii[$14 & 31]($1,$$byval_copy,$15);
_Matrix_Mul($2,$15,(1260364));
_Gfx_LoadMatrix(1,$2);
$16 = ((($0)) + 16|0);
$17 = HEAP32[$16>>2]|0;
FUNCTION_TABLE_vi[$17 & 511]($1);
_Gfx_LoadMatrix(1,(1260364));
STACKTOP = sp;return;
}
function _Model_SetupState($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, $storemerge = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
HEAP32[$2>>2] = 0;
$3 = HEAP32[$1>>2]|0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = (FUNCTION_TABLE_ii[$5 & 31]($1)|0);
$7 = ((($1)) + 108|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)!=(0);
$10 = ((($0)) + 46|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if ($12) {
$13 = ((($1)) + 116|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($14|0)!=(0);
$phitmp = $15&1;
$18 = $phitmp;
} else {
$18 = 1;
}
$16 = $9&1;
$17 = $18 & $16;
$19 = ((($1)) + 120|0);
$20 = +HEAPF32[$19>>2];
$21 = $20 * 0.015625;
HEAPF32[(1279996)>>2] = $21;
$22 = ((($1)) + 124|0);
$23 = +HEAPF32[$22>>2];
$24 = ($17|0)==(0);
$25 = $24 ? 0.03125 : 0.015625;
$26 = $23 * $25;
HEAPF32[(1280000)>>2] = $26;
HEAP32[319993] = $6;
$27 = ((($1)) + 110|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28<<24>>24)==(0);
if ($29) {
$30 = (_PackedCol_Scale($6,0.5)|0);
HEAP32[(1279976)>>2] = $30;
$31 = (_PackedCol_Scale($6,0.80000001192092896)|0);
HEAP32[(1279980)>>2] = $31;
$32 = (_PackedCol_Scale($6,0.60000002384185791)|0);
$storemerge = $32;
} else {
HEAP32[(1279976)>>2] = $6;
HEAP32[(1279980)>>2] = $6;
$storemerge = $6;
}
HEAP32[(1279988)>>2] = $storemerge;
$33 = HEAP32[(1279980)>>2]|0;
HEAP32[(1279984)>>2] = $33;
HEAP32[(1279992)>>2] = $storemerge;
$34 = ((($1)) + 20|0);
$35 = +HEAPF32[$34>>2];
$36 = ((($1)) + 28|0);
$37 = +HEAPF32[$36>>2];
$38 = $35 - $37;
$39 = $38 * 0.01745329238474369;
$40 = $39;
$41 = (+_Math_Cos($40));
$42 = $41;
HEAPF32[(1280004)>>2] = $42;
$43 = (+_Math_Sin($40));
$44 = $43;
HEAPF32[(1280008)>>2] = $44;
HEAP32[(1280016)>>2] = $0;
return;
}
function _Model_RenderArm($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0;
var $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176|0;
$$byval_copy1 = sp + 156|0;
$$byval_copy = sp + 144|0;
$2 = sp + 80|0;
$3 = sp + 16|0;
$4 = sp;
$5 = ((($1)) + 4|0);
;HEAP32[$4>>2]=HEAP32[$5>>2]|0;HEAP32[$4+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$4+8>>2]=HEAP32[$5+8>>2]|0;
$6 = ((($0)) + 43|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if (!($8)) {
$9 = ((($1)) + 200|0);
$10 = +HEAPF32[$9>>2];
$11 = ((($4)) + 4|0);
$12 = +HEAPF32[$11>>2];
$13 = $10 + $12;
HEAPF32[$11>>2] = $13;
}
_Model_SetupState($0,$1);
_Gfx_SetVertexFormat(1);
_Model_ApplyTexture($1);
$14 = HEAP8[(1280014)>>0]|0;
$15 = ($14<<24>>24)==(0);
$16 = ((($0)) + 40|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = (0 - ($18))|0;
$20 = (+($19|0));
$21 = $20 * 0.0625;
if ($15) {
$29 = $21 + 0.10000000149011612;
$30 = ((($0)) + 41|0);
$31 = HEAP8[$30>>0]|0;
$32 = $31&255;
$33 = (0 - ($32))|0;
$34 = (+($33|0));
$35 = $34 * 0.0625;
$36 = $35 + -0.25999999046325684;
_Matrix_Translate($3,$29,$36,0.0);
} else {
$22 = ((($0)) + 41|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$25 = (0 - ($24))|0;
$26 = (+($25|0));
$27 = $26 * 0.0625;
$28 = $27 + -0.10000000149011612;
_Matrix_Translate($3,$21,$28,0.0);
}
$37 = ((($1)) + 80|0);
;HEAP32[$$byval_copy>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$4+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$37>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$37+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$37+8>>2]|0;
_Entity_GetTransform($1,$$byval_copy,$$byval_copy1,$2);
_Matrix_Mul($2,$2,(1260364));
_Matrix_Mul($2,$3,$2);
_Gfx_LoadMatrix(1,$2);
HEAP8[(1280012)>>0] = 2;
$38 = ((($0)) + 80|0);
$39 = HEAP32[$38>>2]|0;
FUNCTION_TABLE_vi[$39 & 511]($1);
HEAP8[(1280012)>>0] = 0;
_Gfx_LoadMatrix(1,(1260364));
STACKTOP = sp;return;
}
function _Model_Get($0) {
$0 = $0|0;
var $$0 = 0, $$010 = 0, $$011 = 0, $$08 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$010 = HEAP32[320433]|0;
$1 = ($$010|0)==(0|0);
if ($1) {
$$08 = 0;
return ($$08|0);
}
$$011 = $$010;
while(1) {
$2 = HEAP32[$$011>>2]|0;
$3 = (_String_CaselessEqualsConst($0,$2)|0);
$4 = ($3|0)==(0);
if (!($4)) {
break;
}
$8 = ((($$011)) + 96|0);
$$0 = HEAP32[$8>>2]|0;
$9 = ($$0|0)==(0|0);
if ($9) {
$$08 = 0;
label = 7;
break;
} else {
$$011 = $$0;
}
}
if ((label|0) == 7) {
return ($$08|0);
}
$5 = ((($$011)) + 42|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if (!($7)) {
$$08 = $$011;
return ($$08|0);
}
_Model_Make($$011);
$$08 = $$011;
return ($$08|0);
}
function _Options_ChangedCount() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1286904)>>2]|0;
return ($0|0);
}
function _Options_HasChanged($0) {
$0 = $0|0;
var $$05 = 0, $$07 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
$3 = HEAP32[(1286904)>>2]|0;
$4 = ($3|0)>(0);
if (!($4)) {
$$05 = 0;
STACKTOP = sp;return ($$05|0);
}
$$07 = 0;
while(1) {
_StringsBuffer_UNSAFE_Get($2,1286896,$$07);
$8 = $2;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $1;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = (_String_CaselessEquals($1,$0)|0);
$19 = ($18|0)==(0);
$6 = (($$07) + 1)|0;
if (!($19)) {
$$05 = 1;
label = 5;
break;
}
$5 = HEAP32[(1286904)>>2]|0;
$7 = ($6|0)<($5|0);
if ($7) {
$$07 = $6;
} else {
$$05 = 0;
label = 5;
break;
}
}
if ((label|0) == 5) {
STACKTOP = sp;return ($$05|0);
}
return (0)|0;
}
function _Options_UNSAFE_Get($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 24|0;
$3 = sp + 16|0;
$4 = sp + 8|0;
$5 = sp;
_String_FromReadonly($2,$0);
_EntryList_UNSAFE_Get($3,1281744,$2);
$6 = $3;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = $1;
$13 = $12;
HEAP32[$13>>2] = $8;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
$16 = ((($1)) + 4|0);
$17 = HEAP16[$16>>1]|0;
$18 = ($17<<16>>16)==(0);
if (!($18)) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$19 = (_String_IndexOfAt($2,0,45)|0);
$20 = ($19|0)==(-1);
if ($20) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$21 = (($19) + 1)|0;
_String_UNSAFE_SubstringAt($4,$2,$21);
$22 = $4;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = (($22) + 4)|0;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = $2;
$29 = $28;
HEAP32[$29>>2] = $24;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP32[$31>>2] = $27;
_EntryList_UNSAFE_Get($5,1281744,$2);
$32 = $5;
$33 = $32;
$34 = HEAP32[$33>>2]|0;
$35 = (($32) + 4)|0;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = $1;
$39 = $38;
HEAP32[$39>>2] = $34;
$40 = (($38) + 4)|0;
$41 = $40;
HEAP32[$41>>2] = $37;
$42 = HEAP16[$16>>1]|0;
$43 = ($42<<16>>16)!=(0);
$44 = $43&1;
$$0 = $44;
STACKTOP = sp;return ($$0|0);
}
function _Options_Get($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
(_Options_UNSAFE_Get($0,$3)|0);
$4 = ((($1)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($3)) + 4|0);
$6 = HEAP16[$5>>1]|0;
$7 = ($6<<16>>16)==(0);
if ($7) {
_String_AppendConst($1,$2);
STACKTOP = sp;return;
} else {
_String_AppendString($1,$3);
STACKTOP = sp;return;
}
}
function _Options_GetInt($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp + 8|0;
$5 = sp;
$6 = (_Options_UNSAFE_Get($0,$4)|0);
$7 = ($6<<24>>24)==(0);
if ($7) {
$$0 = $3;
STACKTOP = sp;return ($$0|0);
}
$8 = (_Convert_ParseInt($4,$5)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
$$0 = $3;
STACKTOP = sp;return ($$0|0);
}
$10 = HEAP32[$5>>2]|0;
$11 = ($10|0)<($1|0);
$12 = $11 ? $1 : $10;
$13 = ($12|0)>($2|0);
$14 = $13 ? $2 : $12;
HEAP32[$5>>2] = $14;
$$0 = $14;
STACKTOP = sp;return ($$0|0);
}
function _Options_GetBool($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = sp + 8|0;
$4 = (_Options_UNSAFE_Get($0,$2)|0);
$5 = ($4<<24>>24)==(0);
if ($5) {
$$0 = $1;
STACKTOP = sp;return ($$0|0);
}
$6 = (_Convert_ParseBool($2,$3)|0);
$7 = ($6<<24>>24)==(0);
$8 = HEAP8[$3>>0]|0;
$spec$select = $7 ? $1 : $8;
$$0 = $spec$select;
STACKTOP = sp;return ($$0|0);
}
function _Options_GetFloat($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $$0 = 0.0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp + 8|0;
$5 = sp;
$6 = (_Options_UNSAFE_Get($0,$4)|0);
$7 = ($6<<24>>24)==(0);
if ($7) {
$$0 = $3;
STACKTOP = sp;return (+$$0);
}
$8 = (_Convert_ParseFloat($4,$5)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
$$0 = $3;
STACKTOP = sp;return (+$$0);
}
$10 = +HEAPF32[$5>>2];
$11 = $10 < $1;
$12 = $11 ? $1 : $10;
$13 = $12 > $2;
$14 = $13 ? $2 : $12;
HEAPF32[$5>>2] = $14;
$$0 = $14;
STACKTOP = sp;return (+$$0);
}
function _Options_GetEnum($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = (_Options_UNSAFE_Get($0,$4)|0);
$6 = ($5<<24>>24)==(0);
if ($6) {
$$0 = $1;
} else {
$7 = (_Utils_ParseEnum($4,$1,$2,$3)|0);
$$0 = $7;
}
STACKTOP = sp;return ($$0|0);
}
function _Options_SetBool($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)==(0);
$3 = $2 ? 17096 : 17104;
_Options_Set($0,$3);
return;
}
function _Options_Set($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
_String_FromReadonly($2,$0);
_Options_SetString($2,$1);
STACKTOP = sp;return;
}
function _Options_SetString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0|0);
if ($2) {
label = 3;
} else {
$3 = ((($1)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)==(0);
if ($5) {
label = 3;
} else {
_EntryList_Set(1281744,$0,$1);
}
}
if ((label|0) == 3) {
$6 = (_EntryList_Remove(1281744,$0)|0);
$7 = ($6|0)==(-1);
if ($7) {
return;
}
}
_Options_Save();
$8 = (_Options_HasChanged($0)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
return;
}
_StringsBuffer_Add(1286896,$0);
return;
}
function _Options_Save() {
var label = 0, sp = 0;
sp = STACKTOP;
_EntryList_Save(1281744);
_StringsBuffer_Clear(1286896);
return;
}
function _Options_SetInt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 24|0;
$3 = sp;
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 24;
_String_AppendInt($2,$1);
_Options_Set($0,$2);
STACKTOP = sp;return;
}
function _Options_Load() {
var $$07 = 0, $$07$in = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$0 = sp + 8|0;
$1 = sp + 24|0;
$2 = sp + 16|0;
$3 = sp;
$4 = HEAP32[320436]|0;
$5 = ($4|0)==(0|0);
if ($5) {
_EntryList_Init(1281744,34479,61);
_EntryList_Init(1281744,34499,61);
STACKTOP = sp;return;
}
$6 = HEAP32[(1281760)>>2]|0;
$7 = ($6|0)>(0);
if ($7) {
$$07$in = $6;
while(1) {
$$07 = (($$07$in) + -1)|0;
_StringsBuffer_UNSAFE_Get($3,(1281752),$$07);
$8 = $3;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $0;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
(_String_UNSAFE_Separate($0,61,$1,$2)|0);
$18 = (_Options_HasChanged($1)|0);
$19 = ($18<<24>>24)==(0);
if ($19) {
_StringsBuffer_Remove((1281752),$$07);
}
$20 = ($$07$in|0)>(1);
if ($20) {
$$07$in = $$07;
} else {
break;
}
}
}
_EntryList_Load(1281744,16);
STACKTOP = sp;return;
}
function _Options_LoadFilter($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
(_String_UNSAFE_Separate($0,61,$1,$2)|0);
$3 = (_Options_HasChanged($1)|0);
$4 = ($3<<24>>24)==(0);
$5 = $4&1;
STACKTOP = sp;return ($5|0);
}
function _PackedCol_Scale($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0 & 255;
$3 = (+($2|0));
$4 = $3 * $1;
$5 = (~~(($4))&255);
$6 = (8)?($0 >>> 8):($0);
$7 = $6 & 255;
$8 = (+($7|0));
$9 = $8 * $1;
$10 = (~~(($9))&255);
$11 = (16)?($0 >>> 16):($0);
$12 = $11 & 255;
$13 = (+($12|0));
$14 = $13 * $1;
$15 = (~~(($14))&255);
$16 = $0 & -16777216;
$17 = $5&255;
$18 = $16 | $17;
$19 = $10&255;
$20 = $19 << 8;
$21 = $18 | $20;
$22 = $15&255;
$23 = $22 << 16;
$24 = $21 | $23;
return ($24|0);
}
function _PackedCol_Lerp($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $0&255;
$4 = (+($3&255));
$5 = $1&255;
$6 = (+($5&255));
$7 = (+_Math_Lerp($4,$6,$2));
$8 = (~~(($7))&255);
$9 = (8)?($0 >>> 8):($0);
$10 = $9&255;
$11 = (+($10&255));
$12 = (8)?($1 >>> 8):($1);
$13 = $12&255;
$14 = (+($13&255));
$15 = (+_Math_Lerp($11,$14,$2));
$16 = (~~(($15))&255);
$17 = (16)?($0 >>> 16):($0);
$18 = $17&255;
$19 = (+($18&255));
$20 = (16)?($1 >>> 16):($1);
$21 = $20&255;
$22 = (+($21&255));
$23 = (+_Math_Lerp($19,$22,$2));
$24 = (~~(($23))&255);
$25 = $0 & -16777216;
$26 = $8&255;
$27 = $25 | $26;
$28 = $16&255;
$29 = $28 << 8;
$30 = $27 | $29;
$31 = $24&255;
$32 = $31 << 16;
$33 = $30 | $32;
return ($33|0);
}
function _PackedCol_Tint($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0 & 255;
$3 = $1 & 255;
$4 = Math_imul($3, $2)|0;
$5 = (($4>>>0) / 255)&-1;
$6 = (8)?($0 >>> 8):($0);
$7 = $6 & 255;
$8 = (8)?($1 >>> 8):($1);
$9 = $8 & 255;
$10 = Math_imul($9, $7)|0;
$11 = (($10>>>0) / 255)&-1;
$12 = (16)?($0 >>> 16):($0);
$13 = $12 & 255;
$14 = (16)?($1 >>> 16):($1);
$15 = $14 & 255;
$16 = Math_imul($15, $13)|0;
$17 = (($16>>>0) / 255)&-1;
$18 = $0 & -16777216;
$19 = $5 | $18;
$20 = $11 << 8;
$21 = $19 | $20;
$22 = $17 << 16;
$23 = $21 | $22;
return ($23|0);
}
function _PackedCol_GetShaded($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_PackedCol_Scale($0,0.60000002384185791)|0);
HEAP32[$1>>2] = $4;
$5 = (_PackedCol_Scale($0,0.80000001192092896)|0);
HEAP32[$2>>2] = $5;
$6 = (_PackedCol_Scale($0,0.5)|0);
HEAP32[$3>>2] = $6;
return;
}
function _PackedCol_Unhex($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$010 = 0, $$011 = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($2|0)>(0);
if (!($3)) {
$$010 = 1;
return ($$010|0);
}
$$011 = 0;
while(1) {
$6 = (($0) + ($$011)|0);
$7 = HEAP8[$6>>0]|0;
$8 = (_PackedCol_DeHex($7)|0);
$9 = (($1) + ($$011<<2)|0);
HEAP32[$9>>2] = $8;
$10 = ($8|0)==(-1);
$4 = (($$011) + 1)|0;
if ($10) {
$$010 = 0;
label = 5;
break;
}
$5 = ($4|0)<($2|0);
if ($5) {
$$011 = $4;
} else {
$$010 = 1;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$010|0);
}
return (0)|0;
}
function _PackedCol_DeHex($0) {
$0 = $0|0;
var $$off = 0, $$off12 = 0, $$off13 = 0, $$sink = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0 << 24 >> 24;
$$off = (($0) + -48)<<24>>24;
$2 = ($$off&255)<(10);
if ($2) {
$$sink = -48;
$6 = (($$sink) + ($1))|0;
return ($6|0);
}
$$off12 = (($0) + -97)<<24>>24;
$3 = ($$off12&255)<(6);
if ($3) {
$$sink = -87;
$6 = (($$sink) + ($1))|0;
return ($6|0);
} else {
$$off13 = (($0) + -65)<<24>>24;
$4 = ($$off13&255)<(6);
$5 = (($1) + -55)|0;
$spec$select = $4 ? $5 : -1;
return ($spec$select|0);
}
return (0)|0;
}
function _PackedCol_ToHex($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1&255;
_String_AppendHex($0,$2);
$3 = (8)?($1 >>> 8):($1);
$4 = $3&255;
_String_AppendHex($0,$4);
$5 = (16)?($1 >>> 16):($1);
$6 = $5&255;
_String_AppendHex($0,$6);
return;
}
function _PackedCol_TryParseHex($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$012 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $spec$select = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
$3 = HEAP32[$0>>2]|0;
$4 = ((($0)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = ($5&65535)<(6);
if ($6) {
$$012 = 0;
STACKTOP = sp;return ($$012|0);
}
$7 = ($5<<16>>16)==(6);
if (!($7)) {
$8 = HEAP8[$3>>0]|0;
$9 = ($8<<24>>24)!=(35);
$10 = ($5&65535)>(7);
$or$cond = $10 | $9;
if ($or$cond) {
$$012 = 0;
STACKTOP = sp;return ($$012|0);
}
}
$11 = HEAP8[$3>>0]|0;
$12 = ($11<<24>>24)==(35);
$13 = ((($3)) + 1|0);
$spec$select = $12 ? $13 : $3;
$14 = (_PackedCol_Unhex($spec$select,$2,6)|0);
$15 = ($14<<24>>24)==(0);
if ($15) {
$$012 = 0;
STACKTOP = sp;return ($$012|0);
}
$16 = HEAP32[$2>>2]|0;
$17 = $16 << 4;
$18 = ((($2)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = $17 | $19;
$21 = $20&255;
HEAP8[$1>>0] = $21;
$22 = ((($2)) + 8|0);
$23 = HEAP32[$22>>2]|0;
$24 = $23 << 4;
$25 = ((($2)) + 12|0);
$26 = HEAP32[$25>>2]|0;
$27 = $24 | $26;
$28 = $27&255;
$29 = ((($1)) + 1|0);
HEAP8[$29>>0] = $28;
$30 = ((($2)) + 16|0);
$31 = HEAP32[$30>>2]|0;
$32 = $31 << 4;
$33 = ((($2)) + 20|0);
$34 = HEAP32[$33>>2]|0;
$35 = $32 | $34;
$36 = $35&255;
$37 = ((($1)) + 2|0);
HEAP8[$37>>0] = $36;
$$012 = 1;
STACKTOP = sp;return ($$012|0);
}
function _Particles_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
(_ScheduledTask_Add(0.050000000000000003,339)|0);
_Random_SeedFromCurrentTime(549608);
_OnContextRecreated_1158(0);
_Event_Register(1252376,0,20);
_Event_Register((1250816),0,17);
_Event_Register((1251856),0,340);
_Event_Register((1252116),0,341);
return;
}
function _Particles_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteTexture(1292048);
_OnContextLost_1156(0);
_Event_Unregister(1252376,0,20);
_Event_Unregister((1250816),0,17);
_Event_Unregister((1251856),0,340);
_Event_Unregister((1252116),0,341);
return;
}
function _Particles_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[323010] = 0;
HEAP32[323011] = 0;
return;
}
function _OnContextLost_1156($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteVb(1292052);
return;
}
function _OnBreakBlockEffect_Handler($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$byval_copy = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$$byval_copy = sp;
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
_Particles_BreakBlockEffect($$byval_copy,$2,$3);
STACKTOP = sp;return;
}
function _OnFileChanged_1157($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_String_CaselessEqualsConst($2,34511)|0);
$4 = ($3|0)==(0);
if ($4) {
return;
}
(_Game_UpdateTexture(1292048,$1,$2,0)|0);
return;
}
function _OnContextRecreated_1158($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Gfx_CreateDynamicVb(1,2400)|0);
HEAP32[323013] = $1;
return;
}
function _Particles_BreakBlockEffect($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0160168 = 0, $$0161169 = 0, $$0163 = 0, $$0167 = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0.0, $$sroa$0103$0$$sroa_idx = 0, $$sroa$0103$0$copyload = 0.0, $$sroa$0114$0$$sroa_idx115 = 0, $$sroa$0132$0$copyload = 0.0, $$sroa$12$0$$sroa_idx128 = 0, $$sroa$5$0$$sroa_idx97 = 0, $$sroa$5$0$copyload = 0.0, $$sroa$5106$0$$sroa_idx107 = 0, $$sroa$5106$0$copyload = 0.0, $$sroa$6$0$$sroa_idx119 = 0, $$sroa$6135$0$$sroa_idx136 = 0, $$sroa$6135$0$copyload = 0.0;
var $$sroa$7$0$$sroa_idx100 = 0, $$sroa$7$0$copyload = 0.0, $$sroa$7110$0$$sroa_idx111 = 0, $$sroa$7110$0$copyload = 0.0, $$sroa$8$0$$sroa_idx123 = 0, $10 = 0, $100 = 0.0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0, $112 = 0;
var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0.0;
var $22 = 0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0;
var $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0.0, $75 = 0.0, $76 = 0.0;
var $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0, $93 = 0.0, $94 = 0.0;
var $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0, $99 = 0.0, $exitcond = 0, $exitcond170 = 0, $exitcond171 = 0, $or$cond = 0, $or$cond164 = 0, $or$cond165 = 0, $or$cond166 = 0, $or$cond3 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$$byval_copy1 = sp + 80|0;
$$byval_copy = sp + 68|0;
$3 = sp + 64|0;
$4 = sp + 52|0;
$5 = sp + 40|0;
$6 = sp + 28|0;
$7 = sp + 16|0;
$8 = sp;
$9 = ($2<<16>>16)==(0);
if (!($9)) {
STACKTOP = sp;return;
}
$10 = $1&65535;
$11 = (583428 + ($10)|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12<<24>>24)==(4);
if ($13) {
STACKTOP = sp;return;
}
_IVec3_ToVec3($4,$0);
$14 = ($10*6)|0;
$15 = (624900 + ($14<<1)|0);
$16 = HEAP16[$15>>1]|0;
_Atlas1D_TexRec($8,$16,1,$3);
$$sroa$0132$0$copyload = +HEAPF32[$8>>2];
$$sroa$6135$0$$sroa_idx136 = ((($8)) + 4|0);
$$sroa$6135$0$copyload = +HEAPF32[$$sroa$6135$0$$sroa_idx136>>2];
$17 = +HEAPF32[(1384656)>>2];
$18 = $17 * 0.0625;
$$sroa$0103$0$$sroa_idx = (588036 + (($10*12)|0)|0);
$$sroa$0103$0$copyload = +HEAPF32[$$sroa$0103$0$$sroa_idx>>2];
$$sroa$5106$0$$sroa_idx107 = (((588036 + (($10*12)|0)|0)) + 4|0);
$$sroa$5106$0$copyload = +HEAPF32[$$sroa$5106$0$$sroa_idx107>>2];
$$sroa$7110$0$$sroa_idx111 = (((588036 + (($10*12)|0)|0)) + 8|0);
$$sroa$7110$0$copyload = +HEAPF32[$$sroa$7110$0$$sroa_idx111>>2];
$$sroa$0$0$$sroa_idx = (597252 + (($10*12)|0)|0);
$$sroa$0$0$copyload = +HEAPF32[$$sroa$0$0$$sroa_idx>>2];
$$sroa$5$0$$sroa_idx97 = (((597252 + (($10*12)|0)|0)) + 4|0);
$$sroa$5$0$copyload = +HEAPF32[$$sroa$5$0$$sroa_idx97>>2];
$$sroa$7$0$$sroa_idx100 = (((597252 + (($10*12)|0)|0)) + 8|0);
$$sroa$7$0$copyload = +HEAPF32[$$sroa$7$0$$sroa_idx100>>2];
$19 = $$sroa$0103$0$copyload * 16.0;
$20 = (~~(($19)));
$21 = $$sroa$0$0$copyload * 16.0;
$22 = (~~(($21)));
$23 = $$sroa$7110$0$copyload * 16.0;
$24 = (~~(($23)));
$25 = $$sroa$7$0$copyload * 16.0;
$26 = (~~(($25)));
$27 = ($20|0)<($24|0);
$28 = $27 ? $20 : $24;
$29 = $$sroa$5$0$copyload * 16.0;
$30 = 16.0 - $29;
$31 = (~~(($30)));
$32 = ($22|0)<($26|0);
$33 = $32 ? $22 : $26;
$34 = $$sroa$5106$0$copyload * 16.0;
$35 = 16.0 - $34;
$36 = (~~(($35)));
$37 = ($28|0)<(12);
$38 = ($33|0)>(12);
$or$cond = $37 & $38;
$spec$select = $or$cond ? 12 : $33;
$39 = ($31|0)<(12);
$40 = ($36|0)>(12);
$or$cond3 = $40 & $39;
$$0163 = $or$cond3 ? 12 : $36;
$41 = (+($33|0));
$42 = $41 * 0.0625;
$43 = $$sroa$0132$0$copyload + $42;
$44 = (+($36|0));
$45 = $18 * $44;
$46 = $$sroa$6135$0$copyload + $45;
$47 = ((($5)) + 4|0);
$48 = ((($5)) + 8|0);
$49 = ((($7)) + 4|0);
$50 = ((($7)) + 8|0);
$51 = $18 * 4.0;
$52 = $18 * 0.0099999997764825821;
$$0161169 = 0;
while(1) {
$53 = (+($$0161169|0));
$54 = $53 * 0.25;
$55 = $54 + 0.125;
$56 = $54 + -0.5;
$57 = $56 + 0.125;
$$0160168 = 0;
while(1) {
$58 = (+($$0160168|0));
$59 = $58 * 0.25;
$60 = $59 + 0.0625;
$61 = $59 + 0.125;
$$0167 = 0;
while(1) {
$62 = (+($$0167|0));
$63 = $62 * 0.25;
$64 = $63 + 0.125;
_Vec3_Create3_1160($5,$55,$60,$64);
$65 = +HEAPF32[$5>>2];
$66 = $65 < $$sroa$0103$0$copyload;
$67 = $65 > $$sroa$0$0$copyload;
$or$cond164 = $66 | $67;
if (!($or$cond164)) {
$68 = +HEAPF32[$47>>2];
$69 = $68 < $$sroa$5106$0$copyload;
$70 = $68 > $$sroa$5$0$copyload;
$or$cond165 = $69 | $70;
if (!($or$cond165)) {
$71 = +HEAPF32[$48>>2];
$72 = $71 < $$sroa$7110$0$copyload;
$73 = $71 > $$sroa$7$0$copyload;
$or$cond166 = $72 | $73;
if (!($or$cond166)) {
$74 = (+_Random_Float(549608));
$75 = $74 * 0.40000000596046448;
$76 = $75 + -0.20000000298023224;
$77 = $57 + $76;
HEAPF32[$7>>2] = $77;
$78 = (+_Random_Float(549608));
$79 = $78 * 0.40000000596046448;
$80 = $79 + -0.20000000298023224;
$81 = $61 + $80;
HEAPF32[$49>>2] = $81;
$82 = $63 + -0.5;
$83 = $82 + 0.125;
$84 = (+_Random_Float(549608));
$85 = $84 * 0.40000000596046448;
$86 = $85 + -0.20000000298023224;
$87 = $83 + $86;
HEAPF32[$50>>2] = $87;
$88 = (_Random_Range_1162($28,$spec$select)|0);
$89 = (+($88|0));
$90 = $89 * 0.0625;
$91 = $$sroa$0132$0$copyload + $90;
$92 = (_Random_Range_1162($31,$$0163)|0);
$93 = (+($92|0));
$94 = $18 * $93;
$95 = $$sroa$6135$0$copyload + $94;
$96 = $91 + 0.25;
$97 = $51 + $95;
$98 = $96 < $43;
$99 = $98 ? $96 : $43;
$100 = $99 + -6.2499998603016138E-4;
$101 = $97 < $46;
$102 = $101 ? $97 : $46;
$103 = $102 - $52;
$104 = HEAP32[323011]|0;
$105 = ($104|0)==(600);
if ($105) {
_Terrain_RemoveAt(0);
}
$106 = HEAP32[323011]|0;
$107 = (($106) + 1)|0;
HEAP32[323011] = $107;
$108 = (+_Random_Float(549608));
$109 = $108 * 1.2000000476837158;
$110 = $109 + 0.30000001192092896;
_Vec3_Add_1163($6,$4,$5);
$111 = (426832 + ($106<<6)|0);
;HEAP32[$$byval_copy>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$6+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$7+8>>2]|0;
_Particle_Reset($111,$$byval_copy,$$byval_copy1,$110);
$$sroa$0114$0$$sroa_idx115 = (((426832 + ($106<<6)|0)) + 44|0);
HEAPF32[$$sroa$0114$0$$sroa_idx115>>2] = $91;
$$sroa$6$0$$sroa_idx119 = (((426832 + ($106<<6)|0)) + 48|0);
HEAPF32[$$sroa$6$0$$sroa_idx119>>2] = $95;
$$sroa$8$0$$sroa_idx123 = (((426832 + ($106<<6)|0)) + 52|0);
HEAPF32[$$sroa$8$0$$sroa_idx123>>2] = $100;
$$sroa$12$0$$sroa_idx128 = (((426832 + ($106<<6)|0)) + 56|0);
HEAPF32[$$sroa$12$0$$sroa_idx128>>2] = $103;
$112 = (((426832 + ($106<<6)|0)) + 60|0);
HEAP16[$112>>1] = $16;
$113 = (((426832 + ($106<<6)|0)) + 62|0);
HEAP16[$113>>1] = $1;
$114 = (_Random_Next(549608,30)|0);
$115 = ($114|0)>(27);
$116 = ($114|0)>(24);
$117 = $116 ? 10 : 8;
$118 = $115 ? 12 : $117;
$119 = (((426832 + ($106<<6)|0)) + 40|0);
HEAP8[$119>>0] = $118;
}
}
}
$120 = (($$0167) + 1)|0;
$exitcond = ($120|0)==(4);
if ($exitcond) {
break;
} else {
$$0167 = $120;
}
}
$121 = (($$0160168) + 1)|0;
$exitcond170 = ($121|0)==(4);
if ($exitcond170) {
break;
} else {
$$0160168 = $121;
}
}
$122 = (($$0161169) + 1)|0;
$exitcond171 = ($122|0)==(4);
if ($exitcond171) {
break;
} else {
$$0161169 = $122;
}
}
STACKTOP = sp;return;
}
function _Vec3_Create3_1160($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $2;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0);
HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $3;
return;
}
function _Random_Range_1162($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (($1) - ($0))|0;
$3 = (_Random_Next(549608,$2)|0);
$4 = (($3) + ($0))|0;
return ($4|0);
}
function _Terrain_RemoveAt($0) {
$0 = $0|0;
var $$010 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp;
$2 = (426832 + ($0<<6)|0);
dest=$1; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$3 = HEAP32[323011]|0;
$4 = (($3) + -1)|0;
$5 = ($4|0)>($0|0);
if ($5) {
$6 = HEAP32[323011]|0;
$7 = (($6) + -1)|0;
$$010 = $0;
while(1) {
$8 = (426832 + ($$010<<6)|0);
$9 = (($$010) + 1)|0;
$10 = (426832 + ($9<<6)|0);
dest=$8; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$11 = ($9|0)<($7|0);
if ($11) {
$$010 = $9;
} else {
$$lcssa = $7;
break;
}
}
} else {
$$lcssa = $4;
}
$12 = (426832 + ($$lcssa<<6)|0);
dest=$12; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
HEAP32[323011] = $$lcssa;
STACKTOP = sp;return;
}
function _Vec3_Add_1163($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _Particle_Reset($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = +$3;
var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 16|0);
;HEAP32[$4>>2]=HEAP32[$1>>2]|0;HEAP32[$4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$4+8>>2]=HEAP32[$1+8>>2]|0;
$5 = ((($0)) + 28|0);
;HEAP32[$5>>2]=HEAP32[$1>>2]|0;HEAP32[$5+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$0>>2]=HEAP32[$2>>2]|0;HEAP32[$0+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$2+8>>2]|0;
$6 = ((($0)) + 12|0);
HEAPF32[$6>>2] = $3;
return;
}
function _Particles_Tick($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
$2 = +HEAPF64[$1>>3];
_Terrain_Tick($2);
$3 = +HEAPF64[$1>>3];
_Rain_Tick($3);
return;
}
function _Terrain_Tick($0) {
$0 = +$0;
var $$06 = 0, $$1 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[323011]|0;
$2 = ($1|0)>(0);
if (!($2)) {
return;
}
$$06 = 0;
while(1) {
$3 = (426832 + ($$06<<6)|0);
$4 = (_TerrainParticle_Tick($3,$0)|0);
$5 = ($4<<24>>24)==(0);
if ($5) {
$$1 = $$06;
} else {
$6 = (($$06) + -1)|0;
_Terrain_RemoveAt($$06);
$$1 = $6;
}
$7 = (($$1) + 1)|0;
$8 = HEAP32[323011]|0;
$9 = ($7|0)<($8|0);
if ($9) {
$$06 = $7;
} else {
break;
}
}
return;
}
function _Rain_Tick($0) {
$0 = +$0;
var $$06 = 0, $$1 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[323010]|0;
$2 = ($1|0)>(0);
if (!($2)) {
return;
}
$$06 = 0;
while(1) {
$3 = (465232 + (($$06*44)|0)|0);
$4 = (_RainParticle_Tick($3,$0)|0);
$5 = ($4<<24>>24)==(0);
if ($5) {
$$1 = $$06;
} else {
$6 = (($$06) + -1)|0;
_Rain_RemoveAt($$06);
$$1 = $6;
}
$7 = (($$1) + 1)|0;
$8 = HEAP32[323010]|0;
$9 = ($7|0)<($8|0);
if ($9) {
$$06 = $7;
} else {
break;
}
}
return;
}
function _RainParticle_Tick($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408275] = 0;
$2 = (_Particle_PhysicsTick($0,3.5,0,$1)|0);
$3 = HEAP8[1408275]|0;
$4 = $3 | $2;
$5 = ($4<<24>>24)!=(0);
$6 = $5&1;
return ($6|0);
}
function _Rain_RemoveAt($0) {
$0 = $0|0;
var $$014 = 0, $$lcssa = 0, $$sroa$0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$$sroa$0 = sp;
$1 = (465232 + (($0*44)|0)|0);
dest=$$sroa$0; src=$1; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$2 = HEAP32[323010]|0;
$3 = (($2) + -1)|0;
$4 = ($3|0)>($0|0);
if ($4) {
$5 = HEAP32[323010]|0;
$6 = (($5) + -1)|0;
$$014 = $0;
while(1) {
$7 = (465232 + (($$014*44)|0)|0);
$8 = (($$014) + 1)|0;
$9 = (465232 + (($8*44)|0)|0);
dest=$7; src=$9; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$10 = ($8|0)<($6|0);
if ($10) {
$$014 = $8;
} else {
$$lcssa = $6;
break;
}
}
} else {
$$lcssa = $3;
}
$11 = (465232 + (($$lcssa*44)|0)|0);
dest=$11; src=$$sroa$0; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
HEAP32[323010] = $$lcssa;
STACKTOP = sp;return;
}
function _Particle_PhysicsTick($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = $2|0;
$3 = +$3;
var $$0 = 0, $$05558 = 0, $$05558$in = 0, $$160 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0;
var $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0;
var $45 = 0.0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0;
var $or$cond = 0, $or$cond63 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = ((($0)) + 16|0);
$6 = ((($0)) + 28|0);
;HEAP32[$5>>2]=HEAP32[$6>>2]|0;HEAP32[$5+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$6+8>>2]|0;
$7 = +HEAPF32[$6>>2];
$8 = (~~(($7)));
$9 = ((($0)) + 32|0);
$10 = +HEAPF32[$9>>2];
$11 = (~~(($10)));
$12 = ((($0)) + 36|0);
$13 = +HEAPF32[$12>>2];
$14 = (~~(($13)));
$15 = (_Particle_GetBlock($8,$11,$14)|0);
$16 = (_Math_Floor($10)|0);
$17 = $15&65535;
$18 = (((588036 + (($17*12)|0)|0)) + 4|0);
$19 = +HEAPF32[$18>>2];
$20 = +HEAPF32[$9>>2];
$21 = (_Math_Floor($20)|0);
$22 = (_Particle_CanPass($15,$2)|0);
$23 = ($22<<24>>24)==(0);
if ($23) {
$24 = (((597252 + (($17*12)|0)|0)) + 4|0);
$25 = +HEAPF32[$24>>2];
$26 = (+($21|0));
$27 = $25 + $26;
$28 = (+($16|0));
$29 = $19 + $28;
$30 = +HEAPF32[$9>>2];
$31 = $30 >= $29;
$32 = $30 < $27;
$or$cond = $31 & $32;
if ($or$cond) {
$33 = (_Particle_CollideHor($6,$15)|0);
$34 = ($33<<24>>24)==(0);
if (!($34)) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
}
}
$35 = $3;
$36 = $35 * $1;
$37 = ((($0)) + 4|0);
$38 = +HEAPF32[$37>>2];
$39 = $38 - $36;
HEAPF32[$37>>2] = $39;
$40 = +HEAPF32[$9>>2];
$41 = (_Math_Floor($40)|0);
$42 = $35 * 3.0;
_Vec3_Mul1_1164($4,$0,$42);
_Vec3_Add_1163($6,$6,$4);
$43 = +HEAPF32[$9>>2];
$44 = (_Math_Floor($43)|0);
$45 = +HEAPF32[$37>>2];
$46 = $45 > 0.0;
$47 = ($41|0)<($44|0);
L6: do {
if ($46) {
if ($47) {
$$05558$in = $41;
while(1) {
$$05558 = (($$05558$in) + 1)|0;
$48 = (_Particle_TestY($0,$$05558,0,$2)|0);
$49 = ($48<<24>>24)!=(0);
$50 = ($$05558|0)<($44|0);
$or$cond63 = $49 & $50;
if ($or$cond63) {
$$05558$in = $$05558;
} else {
break;
}
}
}
} else {
if (!($47)) {
$$160 = $41;
while(1) {
$53 = (_Particle_TestY($0,$$160,1,$2)|0);
$54 = ($53<<24>>24)==(0);
if ($54) {
break L6;
}
$51 = (($$160) + -1)|0;
$52 = ($$160|0)>($44|0);
if ($52) {
$$160 = $51;
} else {
break;
}
}
}
}
} while(0);
$55 = ((($0)) + 12|0);
$56 = +HEAPF32[$55>>2];
$57 = $56 - $35;
HEAPF32[$55>>2] = $57;
$58 = $57 < 0.0;
$59 = $58&1;
$$0 = $59;
STACKTOP = sp;return ($$0|0);
}
function _Particle_GetBlock($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_World_Contains_1165($0,$1,$2)|0);
$4 = ($3<<24>>24)==(0);
if (!($4)) {
$5 = (_World_GetBlock_1166($0,$1,$2)|0);
$$0 = $5;
return ($$0|0);
}
$6 = HEAP32[(1407516)>>2]|0;
$7 = ($6|0)>($1|0);
if (!($7)) {
$$0 = 0;
return ($$0|0);
}
$8 = HEAP32[(1407520)>>2]|0;
$9 = (($8) + ($6))|0;
$10 = ($9|0)>($1|0);
if ($10) {
$12 = HEAP16[(1407514)>>1]|0;
$$0 = $12;
return ($$0|0);
} else {
$11 = HEAP16[703756]|0;
$$0 = $11;
return ($$0|0);
}
return (0)|0;
}
function _Particle_CanPass($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0&65535;
$3 = (583428 + ($2)|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4 & -2;
$switch = ($5<<24>>24)==(4);
if ($switch) {
$10 = 1;
return ($10|0);
}
$6 = ($1<<24>>24)==(0);
if ($6) {
$10 = 0;
return ($10|0);
}
$7 = (569604 + ($2)|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)!=(0);
$phitmp = $9&1;
$10 = $phitmp;
return ($10|0);
}
function _Particle_CollideHor($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0, $3 = 0;
var $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$2 = sp + 24|0;
$3 = sp + 12|0;
$4 = sp;
$5 = +HEAPF32[$0>>2];
$6 = (_Math_Floor($5)|0);
$7 = (+($6|0));
$8 = ((($0)) + 8|0);
$9 = +HEAPF32[$8>>2];
$10 = (_Math_Floor($9)|0);
$11 = (+($10|0));
_Vec3_Create3_1160($2,$7,0.0,$11);
$12 = $1&65535;
$13 = (588036 + (($12*12)|0)|0);
_Vec3_Add_1163($3,$13,$2);
$14 = (597252 + (($12*12)|0)|0);
_Vec3_Add_1163($4,$14,$2);
$15 = +HEAPF32[$0>>2];
$16 = +HEAPF32[$3>>2];
$17 = !($15 >= $16);
if ($17) {
$27 = 0;
STACKTOP = sp;return ($27|0);
}
$18 = +HEAPF32[$8>>2];
$19 = ((($3)) + 8|0);
$20 = +HEAPF32[$19>>2];
$21 = !($18 >= $20);
if ($21) {
$27 = 0;
STACKTOP = sp;return ($27|0);
}
$22 = +HEAPF32[$4>>2];
$23 = $15 < $22;
if (!($23)) {
$27 = 0;
STACKTOP = sp;return ($27|0);
}
$24 = ((($4)) + 8|0);
$25 = +HEAPF32[$24>>2];
$26 = $18 < $25;
$phitmp = $26&1;
$27 = $phitmp;
STACKTOP = sp;return ($27|0);
}
function _Vec3_Mul1_1164($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0.0, $11 = 0.0, $12 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = $3 * $2;
HEAPF32[$0>>2] = $4;
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 * $2;
$8 = ((($0)) + 4|0);
HEAPF32[$8>>2] = $7;
$9 = ((($1)) + 8|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 * $2;
$12 = ((($0)) + 8|0);
HEAPF32[$12>>2] = $11;
return;
}
function _Particle_TestY($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$sroa$3$0$$sroa_idx7 = 0, $$sroa$3$0$copyload = 0.0, $$sroa$313$0$$sroa_idx14 = 0, $$sroa$313$0$copyload = 0.0, $$v = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0;
var $24 = 0.0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0.0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($1|0)<(0);
$5 = ((($0)) + 28|0);
if ($4) {
$6 = ((($0)) + 32|0);
HEAPF32[$6>>2] = 0.0010000000474974513;
$7 = ((($0)) + 20|0);
HEAPF32[$7>>2] = 0.0010000000474974513;
HEAPF32[$0>>2] = 0.0;
$8 = ((($0)) + 4|0);
HEAPF32[$8>>2] = 0.0;
$9 = ((($0)) + 8|0);
HEAPF32[$9>>2] = 0.0;
HEAP8[1408275] = 1;
$$0 = 0;
return ($$0|0);
}
$10 = +HEAPF32[$5>>2];
$11 = (~~(($10)));
$12 = ((($0)) + 36|0);
$13 = +HEAPF32[$12>>2];
$14 = (~~(($13)));
$15 = (_Particle_GetBlock($11,$1,$14)|0);
$16 = (_Particle_CanPass($15,$3)|0);
$17 = ($16<<24>>24)==(0);
if (!($17)) {
$$0 = 1;
return ($$0|0);
}
$18 = $15&65535;
$$sroa$313$0$$sroa_idx14 = (((588036 + (($18*12)|0)|0)) + 4|0);
$$sroa$313$0$copyload = +HEAPF32[$$sroa$313$0$$sroa_idx14>>2];
$$sroa$3$0$$sroa_idx7 = (((597252 + (($18*12)|0)|0)) + 4|0);
$$sroa$3$0$copyload = +HEAPF32[$$sroa$3$0$$sroa_idx7>>2];
$19 = (+($1|0));
$20 = ($2<<24>>24)!=(0);
$21 = $20 ? $$sroa$3$0$copyload : $$sroa$313$0$copyload;
$22 = $21 + $19;
$23 = ((($0)) + 32|0);
$24 = +HEAPF32[$23>>2];
$25 = $24 < $22;
$26 = $24 > $22;
$$v = $20 ? $25 : $26;
if (!($$v)) {
$$0 = 1;
return ($$0|0);
}
$27 = (_Particle_CollideHor($5,$15)|0);
$28 = ($27<<24>>24)==(0);
if ($28) {
$$0 = 1;
return ($$0|0);
}
$29 = $20 ? 0.0010000000474974513 : -0.0010000000474974513;
$30 = $29 + $22;
$31 = ((($0)) + 20|0);
HEAPF32[$31>>2] = $30;
HEAPF32[$23>>2] = $30;
HEAPF32[$0>>2] = 0.0;
$32 = ((($0)) + 4|0);
HEAPF32[$32>>2] = 0.0;
$33 = ((($0)) + 8|0);
HEAPF32[$33>>2] = 0.0;
HEAP8[1408275] = 1;
$$0 = 0;
return ($$0|0);
}
function _World_Contains_1165($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _World_GetBlock_1166($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _TerrainParticle_Tick($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Particle_PhysicsTick($0,5.4000000953674316,1,$1)|0);
return ($2|0);
}
function _Particle_DoRender($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$sroa$0$0$copyload = 0.0, $$sroa$13$0$$sroa_idx45 = 0, $$sroa$13$0$copyload = 0.0, $$sroa$7$0$$sroa_idx39 = 0, $$sroa$7$0$copyload = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0;
var $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0, $39 = 0.0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0.0, $60 = 0, $61 = 0, $62 = 0.0;
var $63 = 0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$5 = +HEAPF32[$0>>2];
$6 = $5 * 0.5;
$7 = ((($0)) + 4|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 * 0.5;
$$sroa$0$0$copyload = +HEAPF32[$1>>2];
$$sroa$7$0$$sroa_idx39 = ((($1)) + 4|0);
$$sroa$7$0$copyload = +HEAPF32[$$sroa$7$0$$sroa_idx39>>2];
$$sroa$13$0$$sroa_idx45 = ((($1)) + 8|0);
$$sroa$13$0$copyload = +HEAPF32[$$sroa$13$0$$sroa_idx45>>2];
$10 = $9 + $$sroa$7$0$copyload;
$11 = +HEAPF32[(1260364)>>2];
$12 = $6 * $11;
$13 = +HEAPF32[(1260380)>>2];
$14 = $6 * $13;
$15 = +HEAPF32[(1260396)>>2];
$16 = $6 * $15;
$17 = +HEAPF32[(1260368)>>2];
$18 = $9 * $17;
$19 = +HEAPF32[(1260384)>>2];
$20 = $9 * $19;
$21 = +HEAPF32[(1260400)>>2];
$22 = $9 * $21;
$23 = $$sroa$0$0$copyload - $12;
$24 = $23 - $18;
HEAPF32[$4>>2] = $24;
$25 = $10 - $14;
$26 = $25 - $20;
$27 = ((($4)) + 4|0);
HEAPF32[$27>>2] = $26;
$28 = $$sroa$13$0$copyload - $16;
$29 = $28 - $22;
$30 = ((($4)) + 8|0);
HEAPF32[$30>>2] = $29;
$31 = ((($4)) + 12|0);
HEAP32[$31>>2] = $3;
$32 = HEAP32[$2>>2]|0;
$33 = ((($4)) + 16|0);
HEAP32[$33>>2] = $32;
$34 = ((($2)) + 12|0);
$35 = HEAP32[$34>>2]|0;
$36 = ((($4)) + 20|0);
HEAP32[$36>>2] = $35;
$37 = $23 + $18;
$38 = ((($4)) + 24|0);
HEAPF32[$38>>2] = $37;
$39 = $25 + $20;
$40 = ((($4)) + 28|0);
HEAPF32[$40>>2] = $39;
$41 = $28 + $22;
$42 = ((($4)) + 32|0);
HEAPF32[$42>>2] = $41;
$43 = ((($4)) + 36|0);
HEAP32[$43>>2] = $3;
$44 = ((($4)) + 40|0);
HEAP32[$44>>2] = $32;
$45 = ((($2)) + 4|0);
$46 = HEAP32[$45>>2]|0;
$47 = ((($4)) + 44|0);
HEAP32[$47>>2] = $46;
$48 = $$sroa$0$0$copyload + $12;
$49 = $48 + $18;
$50 = ((($4)) + 48|0);
HEAPF32[$50>>2] = $49;
$51 = $10 + $14;
$52 = $51 + $20;
$53 = ((($4)) + 52|0);
HEAPF32[$53>>2] = $52;
$54 = $$sroa$13$0$copyload + $16;
$55 = $54 + $22;
$56 = ((($4)) + 56|0);
HEAPF32[$56>>2] = $55;
$57 = ((($4)) + 60|0);
HEAP32[$57>>2] = $3;
$58 = ((($2)) + 8|0);
$59 = HEAP32[$58>>2]|0;
$60 = ((($4)) + 64|0);
HEAP32[$60>>2] = $59;
$61 = ((($4)) + 68|0);
HEAP32[$61>>2] = $46;
$62 = $48 - $18;
$63 = ((($4)) + 72|0);
HEAPF32[$63>>2] = $62;
$64 = $51 - $20;
$65 = ((($4)) + 76|0);
HEAPF32[$65>>2] = $64;
$66 = $54 - $22;
$67 = ((($4)) + 80|0);
HEAPF32[$67>>2] = $66;
$68 = ((($4)) + 84|0);
HEAP32[$68>>2] = $3;
$69 = ((($4)) + 88|0);
HEAP32[$69>>2] = $59;
$70 = ((($4)) + 92|0);
HEAP32[$70>>2] = $35;
return;
}
function _Particles_Render($0) {
$0 = +$0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[323011]|0;
$2 = HEAP32[323010]|0;
$3 = $2 | $1;
$4 = ($3|0)==(0);
$5 = HEAP8[(1260360)>>0]|0;
$6 = ($5<<24>>24)!=(0);
$or$cond3 = $4 | $6;
if ($or$cond3) {
return;
}
_Gfx_SetAlphaTest(1);
_Gfx_SetVertexFormat(1);
_Terrain_Render($0);
_Rain_Render($0);
_Gfx_SetAlphaTest(0);
return;
}
function _Terrain_Render($0) {
$0 = +$0;
var $$02731 = 0, $$030 = 0, $$1 = 0, $$12829 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 57600|0;
$1 = sp;
$2 = HEAP32[323011]|0;
$3 = ($2|0)==(0);
if ($3) {
STACKTOP = sp;return;
}
_Terrain_Update1DCounts();
$4 = HEAP32[323011]|0;
$5 = ($4|0)>(0);
if ($5) {
$$02731 = 0;
while(1) {
$6 = (426832 + ($$02731<<6)|0);
$7 = (((426832 + ($$02731<<6)|0)) + 60|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$10 = HEAP32[(1384652)>>2]|0;
$11 = ($10)?($9 >>> $10):($9);
$12 = (491632 + ($11<<1)|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13&65535;
$15 = (($1) + (($14*24)|0)|0);
_TerrainParticle_Render($6,$0,$15);
$16 = HEAP16[$12>>1]|0;
$17 = $16&65535;
$18 = (($17) + 4)|0;
$19 = $18&65535;
HEAP16[$12>>1] = $19;
$20 = (($$02731) + 1)|0;
$21 = HEAP32[323011]|0;
$22 = ($20|0)<($21|0);
if ($22) {
$$02731 = $20;
} else {
$$lcssa = $21;
break;
}
}
} else {
$$lcssa = $4;
}
$23 = HEAP32[323013]|0;
$24 = $$lcssa << 2;
_Gfx_SetDynamicVbData($23,$1,$24);
$25 = HEAP32[346160]|0;
$26 = ($25|0)>(0);
if (!($26)) {
STACKTOP = sp;return;
}
$$030 = 0;$$12829 = 0;
while(1) {
$27 = (492656 + ($$12829<<1)|0);
$28 = HEAP16[$27>>1]|0;
$29 = $28&65535;
$30 = ($28<<16>>16)==(0);
if ($30) {
$$1 = $$030;
} else {
$31 = (($$030) + ($29))|0;
$32 = (1384660 + ($$12829<<2)|0);
$33 = HEAP32[$32>>2]|0;
_Gfx_BindTexture($33);
_Gfx_DrawVb_IndexedTris_Range($29,$$030);
$$1 = $31;
}
$34 = (($$12829) + 1)|0;
$35 = HEAP32[346160]|0;
$36 = ($34|0)<($35|0);
if ($36) {
$$030 = $$1;$$12829 = $34;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _Rain_Render($0) {
$0 = +$0;
var $$010 = 0, $$089 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 57600|0;
$1 = sp;
$2 = HEAP32[323010]|0;
$3 = ($2|0)==(0);
if ($3) {
STACKTOP = sp;return;
}
$4 = HEAP32[323010]|0;
$5 = ($4|0)>(0);
if ($5) {
$$010 = 0;$$089 = $1;
while(1) {
$6 = (465232 + (($$010*44)|0)|0);
_RainParticle_Render($6,$0,$$089);
$7 = ((($$089)) + 96|0);
$8 = (($$010) + 1)|0;
$9 = HEAP32[323010]|0;
$10 = ($8|0)<($9|0);
if ($10) {
$$010 = $8;$$089 = $7;
} else {
break;
}
}
}
$11 = HEAP32[323012]|0;
_Gfx_BindTexture($11);
$12 = HEAP32[323013]|0;
$13 = HEAP32[323010]|0;
$14 = $13 << 2;
_Gfx_UpdateDynamicVb_IndexedTris($12,$1,$14);
STACKTOP = sp;return;
}
function _RainParticle_Render($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp + 8|0;
$4 = sp;
$5 = ((($0)) + 16|0);
$6 = ((($0)) + 28|0);
_Vec3_Lerp($3,$5,$6,$1);
$7 = ((($0)) + 40|0);
$8 = HEAP8[$7>>0]|0;
$9 = (+($8&255));
$10 = $9 * 0.015625;
HEAPF32[$4>>2] = $10;
$11 = ((($4)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = +HEAPF32[$3>>2];
$13 = (_Math_Floor($12)|0);
$14 = ((($3)) + 4|0);
$15 = +HEAPF32[$14>>2];
$16 = (_Math_Floor($15)|0);
$17 = ((($3)) + 8|0);
$18 = +HEAPF32[$17>>2];
$19 = (_Math_Floor($18)|0);
$20 = (_World_Contains_1165($13,$16,$19)|0);
$21 = ($20<<24>>24)==(0);
if ($21) {
$23 = HEAP32[(1407572)>>2]|0;
$24 = $23;
_Particle_DoRender($4,$3,17136,$24,$2);
STACKTOP = sp;return;
} else {
$22 = (_Lighting_Col($13,$16,$19)|0);
$24 = $22;
_Particle_DoRender($4,$3,17136,$24,$2);
STACKTOP = sp;return;
}
}
function _Terrain_Update1DCounts() {
var $$117 = 0, $$216 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $load_initial = 0, $store_forwarded = 0, label = 0, sp = 0;
sp = STACKTOP;
_memset((492656|0),0,1024)|0;
_memset((491632|0),0,1024)|0;
$0 = HEAP32[323011]|0;
$1 = ($0|0)>(0);
if ($1) {
$2 = HEAP32[(1384652)>>2]|0;
$3 = HEAP32[323011]|0;
$$117 = 0;
while(1) {
$4 = (((426832 + ($$117<<6)|0)) + 60|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = ($2)?($6 >>> $2):($6);
$8 = (492656 + ($7<<1)|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = (($10) + 4)|0;
$12 = $11&65535;
HEAP16[$8>>1] = $12;
$13 = (($$117) + 1)|0;
$14 = ($13|0)<($3|0);
if ($14) {
$$117 = $13;
} else {
break;
}
}
}
$15 = HEAP32[346160]|0;
$16 = ($15|0)>(1);
if (!($16)) {
return;
}
$17 = HEAP32[346160]|0;
$load_initial = HEAP16[245816]|0;
$$216 = 1;$store_forwarded = $load_initial;
while(1) {
$18 = (($$216) + -1)|0;
$19 = $store_forwarded&65535;
$20 = (492656 + ($18<<1)|0);
$21 = HEAP16[$20>>1]|0;
$22 = $21&65535;
$23 = (($22) + ($19))|0;
$24 = $23&65535;
$25 = (491632 + ($$216<<1)|0);
HEAP16[$25>>1] = $24;
$26 = (($$216) + 1)|0;
$27 = ($26|0)<($17|0);
if ($27) {
$$216 = $26;$store_forwarded = $24;
} else {
break;
}
}
return;
}
function _TerrainParticle_Render($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = $2|0;
var $$0 = 0, $$1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp + 8|0;
$4 = sp;
$5 = ((($0)) + 16|0);
$6 = ((($0)) + 28|0);
_Vec3_Lerp($3,$5,$6,$1);
$7 = ((($0)) + 40|0);
$8 = HEAP8[$7>>0]|0;
$9 = (+($8&255));
$10 = $9 * 0.015625;
HEAPF32[$4>>2] = $10;
$11 = ((($4)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($0)) + 62|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13&65535;
$15 = (571140 + ($14)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(0);
do {
if ($17) {
$18 = +HEAPF32[$3>>2];
$19 = (_Math_Floor($18)|0);
$20 = ((($3)) + 4|0);
$21 = +HEAPF32[$20>>2];
$22 = (_Math_Floor($21)|0);
$23 = ((($3)) + 8|0);
$24 = +HEAPF32[$23>>2];
$25 = (_Math_Floor($24)|0);
$26 = (_World_Contains_1165($19,$22,$25)|0);
$27 = ($26<<24>>24)==(0);
if ($27) {
$29 = HEAP32[(1407576)>>2]|0;
$$0 = $29;
break;
} else {
$28 = (_Lighting_Col_XSide($19,$22,$25)|0);
$$0 = $28;
break;
}
} else {
$$0 = -1;
}
} while(0);
$30 = HEAP16[$12>>1]|0;
$31 = $30&65535;
$32 = (585732 + ($31)|0);
$33 = HEAP8[$32>>0]|0;
$34 = ($33<<24>>24)==(0);
if ($34) {
$$1 = $$0;
$38 = ((($0)) + 44|0);
_Particle_DoRender($4,$3,$38,$$1,$2);
STACKTOP = sp;return;
}
$35 = (571908 + ($31<<2)|0);
$36 = HEAP32[$35>>2]|0;
$37 = (_PackedCol_Tint($$0,$36)|0);
$$1 = $37;
$38 = ((($0)) + 44|0);
_Particle_DoRender($4,$3,$38,$$1,$2);
STACKTOP = sp;return;
}
function _Particles_RainSnowEffect($0) {
$0 = $0|0;
var $$byval_copy2 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0;
var $44 = 0.0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$$byval_copy3 = sp + 48|0;
$$byval_copy2 = sp + 36|0;
$1 = sp + 24|0;
$2 = sp + 12|0;
$3 = sp;
;HEAP32[$1>>2]=HEAP32[$0>>2]|0;HEAP32[$1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$0+8>>2]|0;
$4 = ((($3)) + 8|0);
$5 = ((($3)) + 4|0);
$6 = ((($2)) + 4|0);
$7 = ((($2)) + 8|0);
$8 = (+_Random_Float(549608));
$9 = $8 * 0.80000001192092896;
$10 = $9 + -0.40000000596046448;
HEAPF32[$3>>2] = $10;
$11 = (+_Random_Float(549608));
$12 = $11 * 0.80000001192092896;
$13 = $12 + -0.40000000596046448;
HEAPF32[$4>>2] = $13;
$14 = (+_Random_Float(549608));
$15 = $14 + 0.40000000596046448;
HEAPF32[$5>>2] = $15;
$16 = (+_Random_Float(549608));
HEAPF32[$2>>2] = $16;
$17 = (+_Random_Float(549608));
$18 = $17 * 0.10000000149011612;
$19 = $18 + 0.0099999997764825821;
HEAPF32[$6>>2] = $19;
$20 = (+_Random_Float(549608));
HEAPF32[$7>>2] = $20;
$21 = HEAP32[323010]|0;
$22 = ($21|0)==(600);
if ($22) {
_Rain_RemoveAt(0);
}
$23 = HEAP32[323010]|0;
$24 = (($23) + 1)|0;
HEAP32[323010] = $24;
_Vec3_Add_1163($0,$1,$2);
$25 = (465232 + (($23*44)|0)|0);
;HEAP32[$$byval_copy2>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$0+8>>2]|0;
;HEAP32[$$byval_copy3>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$3+8>>2]|0;
_Particle_Reset($25,$$byval_copy2,$$byval_copy3,40.0);
$26 = (_Random_Next(549608,30)|0);
$27 = ($26|0)>(27);
$28 = ($26|0)>(24);
$29 = $28 ? 4 : 3;
$30 = $27 ? 2 : $29;
$31 = (((465232 + (($23*44)|0)|0)) + 40|0);
HEAP8[$31>>0] = $30;
$32 = (+_Random_Float(549608));
$33 = $32 * 0.80000001192092896;
$34 = $33 + -0.40000000596046448;
HEAPF32[$3>>2] = $34;
$35 = (+_Random_Float(549608));
$36 = $35 * 0.80000001192092896;
$37 = $36 + -0.40000000596046448;
HEAPF32[$4>>2] = $37;
$38 = (+_Random_Float(549608));
$39 = $38 + 0.40000000596046448;
HEAPF32[$5>>2] = $39;
$40 = (+_Random_Float(549608));
HEAPF32[$2>>2] = $40;
$41 = (+_Random_Float(549608));
$42 = $41 * 0.10000000149011612;
$43 = $42 + 0.0099999997764825821;
HEAPF32[$6>>2] = $43;
$44 = (+_Random_Float(549608));
HEAPF32[$7>>2] = $44;
$45 = HEAP32[323010]|0;
$46 = ($45|0)==(600);
if ($46) {
_Rain_RemoveAt(0);
}
$47 = HEAP32[323010]|0;
$48 = (($47) + 1)|0;
HEAP32[323010] = $48;
_Vec3_Add_1163($0,$1,$2);
$49 = (465232 + (($47*44)|0)|0);
;HEAP32[$$byval_copy2>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$0+8>>2]|0;
;HEAP32[$$byval_copy3>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$3+8>>2]|0;
_Particle_Reset($49,$$byval_copy2,$$byval_copy3,40.0);
$50 = (_Random_Next(549608,30)|0);
$51 = ($50|0)>(27);
$52 = ($50|0)>(24);
$53 = $52 ? 4 : 3;
$54 = $51 ? 2 : $53;
$55 = (((465232 + (($47*44)|0)|0)) + 40|0);
HEAP8[$55>>0] = $54;
STACKTOP = sp;return;
}
function _AABB_Make($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0;
var $3 = 0.0, $30 = 0.0, $31 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $4 * 0.5;
$6 = $3 - $5;
HEAPF32[$0>>2] = $6;
$7 = ((($1)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($0)) + 4|0);
HEAP32[$9>>2] = $8;
$10 = ((($1)) + 8|0);
$11 = +HEAPF32[$10>>2];
$12 = ((($2)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = $13 * 0.5;
$15 = $11 - $14;
$16 = ((($0)) + 8|0);
HEAPF32[$16>>2] = $15;
$17 = +HEAPF32[$1>>2];
$18 = +HEAPF32[$2>>2];
$19 = $18 * 0.5;
$20 = $17 + $19;
$21 = ((($0)) + 12|0);
HEAPF32[$21>>2] = $20;
$22 = +HEAPF32[$7>>2];
$23 = ((($2)) + 4|0);
$24 = +HEAPF32[$23>>2];
$25 = $22 + $24;
$26 = ((($0)) + 16|0);
HEAPF32[$26>>2] = $25;
$27 = +HEAPF32[$10>>2];
$28 = +HEAPF32[$12>>2];
$29 = $28 * 0.5;
$30 = $27 + $29;
$31 = ((($0)) + 20|0);
HEAPF32[$31>>2] = $30;
return;
}
function _AABB_Offset($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Vec3_Add_1179($0,$1,$2);
$3 = ((($0)) + 12|0);
$4 = ((($1)) + 12|0);
_Vec3_Add_1179($3,$4,$2);
return;
}
function _Vec3_Add_1179($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _AABB_Intersects($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0;
var $29 = 0, $3 = 0.0, $30 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = +HEAPF32[$2>>2];
$4 = +HEAPF32[$1>>2];
$5 = !($3 >= $4);
if ($5) {
$30 = 0;
return ($30|0);
}
$6 = +HEAPF32[$0>>2];
$7 = ((($1)) + 12|0);
$8 = +HEAPF32[$7>>2];
$9 = !($6 <= $8);
if ($9) {
$30 = 0;
return ($30|0);
}
$10 = ((($0)) + 16|0);
$11 = +HEAPF32[$10>>2];
$12 = ((($1)) + 4|0);
$13 = +HEAPF32[$12>>2];
$14 = !($11 >= $13);
if ($14) {
$30 = 0;
return ($30|0);
}
$15 = ((($0)) + 4|0);
$16 = +HEAPF32[$15>>2];
$17 = ((($1)) + 16|0);
$18 = +HEAPF32[$17>>2];
$19 = !($16 <= $18);
if ($19) {
$30 = 0;
return ($30|0);
}
$20 = ((($0)) + 20|0);
$21 = +HEAPF32[$20>>2];
$22 = ((($1)) + 8|0);
$23 = +HEAPF32[$22>>2];
$24 = !($21 >= $23);
if ($24) {
$30 = 0;
return ($30|0);
}
$25 = ((($0)) + 8|0);
$26 = +HEAPF32[$25>>2];
$27 = ((($1)) + 20|0);
$28 = +HEAPF32[$27>>2];
$29 = $26 <= $28;
$phitmp = $29&1;
$30 = $phitmp;
return ($30|0);
}
function _AABB_ContainsPoint($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0;
var $7 = 0, $8 = 0.0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[$1>>2];
$3 = +HEAPF32[$0>>2];
$4 = !($2 >= $3);
if ($4) {
$24 = 0;
return ($24|0);
}
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = ((($0)) + 4|0);
$8 = +HEAPF32[$7>>2];
$9 = !($6 >= $8);
if ($9) {
$24 = 0;
return ($24|0);
}
$10 = ((($1)) + 8|0);
$11 = +HEAPF32[$10>>2];
$12 = ((($0)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = !($11 >= $13);
if ($14) {
$24 = 0;
return ($24|0);
}
$15 = ((($0)) + 12|0);
$16 = +HEAPF32[$15>>2];
$17 = !($2 <= $16);
if ($17) {
$24 = 0;
return ($24|0);
}
$18 = ((($0)) + 16|0);
$19 = +HEAPF32[$18>>2];
$20 = !($6 <= $19);
if ($20) {
$24 = 0;
return ($24|0);
}
$21 = ((($0)) + 20|0);
$22 = +HEAPF32[$21>>2];
$23 = $11 <= $22;
$phitmp = $23&1;
$24 = $phitmp;
return ($24|0);
}
function _Intersection_RayIntersectsRotatedBox($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $10 = 0, $11 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0;
$$byval_copy5 = sp + 96|0;
$$byval_copy4 = sp + 84|0;
$$byval_copy3 = sp + 72|0;
$$byval_copy2 = sp + 60|0;
$5 = sp + 36|0;
$6 = sp;
$7 = sp + 48|0;
$8 = sp + 24|0;
$9 = ((($2)) + 4|0);
_Vec3_Sub_1186($5,$0,$9);
;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0;
_Intersection_InverseRotate($7,$$byval_copy5,$2);
;HEAP32[$5>>2]=HEAP32[$7>>2]|0;HEAP32[$5+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$7+8>>2]|0;
_Vec3_Add_1179($0,$5,$9);
;HEAP32[$$byval_copy5>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$1+8>>2]|0;
_Intersection_InverseRotate($8,$$byval_copy5,$2);
;HEAP32[$1>>2]=HEAP32[$8>>2]|0;HEAP32[$1+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$8+8>>2]|0;
_Entity_GetPickingBounds($2,$6);
$10 = ((($6)) + 12|0);
;HEAP32[$$byval_copy2>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$0+8>>2]|0;
;HEAP32[$$byval_copy3>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy4>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$6+8>>2]|0;
;HEAP32[$$byval_copy5>>2]=HEAP32[$10>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$10+8>>2]|0;
$11 = (_Intersection_RayIntersectsBox($$byval_copy2,$$byval_copy3,$$byval_copy4,$$byval_copy5,$3,$4)|0);
STACKTOP = sp;return ($11|0);
}
function _Vec3_Sub_1186($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 - $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 - $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 - $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _Intersection_InverseRotate($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$byval_copy2 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$$byval_copy2 = sp + 36|0;
$3 = sp + 24|0;
$4 = sp + 12|0;
$5 = sp;
$6 = ((($2)) + 28|0);
$7 = +HEAPF32[$6>>2];
$8 = $7 * -0.01745329238474369;
;HEAP32[$$byval_copy2>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$1+8>>2]|0;
_Vec3_RotateY($3,$$byval_copy2,$8);
;HEAP32[$1>>2]=HEAP32[$3>>2]|0;HEAP32[$1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$3+8>>2]|0;
$9 = ((($2)) + 32|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 * -0.01745329238474369;
;HEAP32[$$byval_copy2>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$3+8>>2]|0;
_Vec3_RotateZ($4,$$byval_copy2,$11);
;HEAP32[$1>>2]=HEAP32[$4>>2]|0;HEAP32[$1+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[$4+8>>2]|0;
$12 = ((($2)) + 24|0);
$13 = +HEAPF32[$12>>2];
$14 = $13 * -0.01745329238474369;
;HEAP32[$$byval_copy2>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$4+8>>2]|0;
_Vec3_RotateX($5,$$byval_copy2,$14);
;HEAP32[$0>>2]=HEAP32[$5>>2]|0;HEAP32[$0+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$5+8>>2]|0;
STACKTOP = sp;return;
}
function _Intersection_RayIntersectsBox($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$0 = 0, $$059 = 0.0, $$060 = 0.0, $$063 = 0.0, $$064 = 0.0, $$065 = 0.0, $$066 = 0.0, $$1 = 0.0, $$161 = 0.0, $$2 = 0.0, $$262 = 0.0, $$pn67 = 0.0, $$pn68 = 0.0, $$pn70 = 0.0, $$sink = 0, $$sink73 = 0.0, $$sink76 = 0.0, $$sink78 = 0, $$sink80 = 0.0, $$sink82 = 0;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0;
var $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0.0, $49 = 0;
var $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0.0, $60 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, $or$cond = 0, $or$cond72 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$4>>2] = 0.0;
HEAPF32[$5>>2] = 0.0;
$6 = +HEAPF32[$1>>2];
$7 = 1.0 / $6;
$8 = !($7 >= 0.0);
if ($8) {
$12 = +HEAPF32[$3>>2];
$13 = +HEAPF32[$0>>2];
$14 = $12 - $13;
$$pn67 = $14;$$sink = $2;$$sink73 = $13;
} else {
$9 = +HEAPF32[$2>>2];
$10 = +HEAPF32[$0>>2];
$11 = $9 - $10;
$$pn67 = $11;$$sink = $3;$$sink73 = $10;
}
$15 = +HEAPF32[$$sink>>2];
$16 = $15 - $$sink73;
$$059 = $7 * $$pn67;
$$060 = $7 * $16;
$17 = ((($1)) + 4|0);
$18 = +HEAPF32[$17>>2];
$19 = 1.0 / $18;
$20 = !($19 >= 0.0);
if ($20) {
$26 = ((($3)) + 4|0);
$27 = +HEAPF32[$26>>2];
$28 = ((($0)) + 4|0);
$29 = +HEAPF32[$28>>2];
$30 = $27 - $29;
$$pn68 = $30;$$sink76 = $29;$$sink78 = $2;
} else {
$21 = ((($2)) + 4|0);
$22 = +HEAPF32[$21>>2];
$23 = ((($0)) + 4|0);
$24 = +HEAPF32[$23>>2];
$25 = $22 - $24;
$$pn68 = $25;$$sink76 = $24;$$sink78 = $3;
}
$31 = ((($$sink78)) + 4|0);
$32 = +HEAPF32[$31>>2];
$33 = $32 - $$sink76;
$$065 = $19 * $33;
$$066 = $19 * $$pn68;
$34 = $$059 > $$065;
$35 = $$066 > $$060;
$or$cond = $35 | $34;
if ($or$cond) {
$$0 = 0;
return ($$0|0);
}
$36 = $$066 > $$059;
$$1 = $36 ? $$066 : $$059;
$37 = $$065 < $$060;
$$161 = $37 ? $$065 : $$060;
$38 = ((($1)) + 8|0);
$39 = +HEAPF32[$38>>2];
$40 = 1.0 / $39;
$41 = !($40 >= 0.0);
if ($41) {
$47 = ((($3)) + 8|0);
$48 = +HEAPF32[$47>>2];
$49 = ((($0)) + 8|0);
$50 = +HEAPF32[$49>>2];
$51 = $48 - $50;
$$pn70 = $51;$$sink80 = $50;$$sink82 = $2;
} else {
$42 = ((($2)) + 8|0);
$43 = +HEAPF32[$42>>2];
$44 = ((($0)) + 8|0);
$45 = +HEAPF32[$44>>2];
$46 = $43 - $45;
$$pn70 = $46;$$sink80 = $45;$$sink82 = $3;
}
$52 = ((($$sink82)) + 8|0);
$53 = +HEAPF32[$52>>2];
$54 = $53 - $$sink80;
$$063 = $40 * $54;
$$064 = $40 * $$pn70;
$55 = $$1 > $$063;
$56 = $$064 > $$161;
$or$cond72 = $56 | $55;
$57 = $$064 > $$1;
$$2 = $57 ? $$064 : $$1;
if ($or$cond72) {
$$0 = 0;
return ($$0|0);
}
$58 = $$2 >= 0.0;
$59 = $58&1;
$60 = $$063 < $$161;
$$262 = $60 ? $$063 : $$161;
HEAPF32[$4>>2] = $$2;
HEAPF32[$5>>2] = $$262;
$$0 = $59;
return ($$0|0);
}
function _Searcher_FindReachableBlocks($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$07993 = 0, $$08085 = 0, $$081$lcssa = 0, $$08192 = 0, $$087 = 0, $$1$lcssa = 0, $$186 = 0, $$2$lcssa = 0, $$284 = 0, $$3 = 0, $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0;
var $109 = 0.0, $11 = 0.0, $110 = 0, $111 = 0, $112 = 0.0, $113 = 0, $114 = 0.0, $115 = 0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0;
var $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0;
var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0.0, $150 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0;
var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0;
var $47 = 0.0, $48 = 0.0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0.0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0.0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0.0, $96 = 0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, $or$cond3 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$3 = sp + 64|0;
$4 = sp + 52|0;
$5 = sp + 40|0;
$6 = sp + 16|0;
$7 = sp + 8|0;
$8 = sp + 4|0;
$9 = sp;
$10 = ((($0)) + 36|0);
;HEAP32[$3>>2]=HEAP32[$10>>2]|0;HEAP32[$3+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$10+8>>2]|0;
_Entity_GetBounds($0,$1);
$11 = +HEAPF32[$1>>2];
$12 = +HEAPF32[$3>>2];
$13 = $12 < 0.0;
$14 = $13 ? $12 : 0.0;
$15 = $11 + $14;
HEAPF32[$2>>2] = $15;
$16 = ((($1)) + 4|0);
$17 = +HEAPF32[$16>>2];
$18 = ((($3)) + 4|0);
$19 = +HEAPF32[$18>>2];
$20 = $19 < 0.0;
$21 = $20 ? $19 : 0.0;
$22 = $17 + $21;
$23 = ((($2)) + 4|0);
HEAPF32[$23>>2] = $22;
$24 = ((($1)) + 8|0);
$25 = +HEAPF32[$24>>2];
$26 = ((($3)) + 8|0);
$27 = +HEAPF32[$26>>2];
$28 = $27 < 0.0;
$29 = $28 ? $27 : 0.0;
$30 = $25 + $29;
$31 = ((($2)) + 8|0);
HEAPF32[$31>>2] = $30;
$32 = ((($1)) + 12|0);
$33 = +HEAPF32[$32>>2];
$34 = $12 > 0.0;
$35 = $34 ? $12 : 0.0;
$36 = $35 + $33;
$37 = ((($2)) + 12|0);
HEAPF32[$37>>2] = $36;
$38 = ((($1)) + 16|0);
$39 = +HEAPF32[$38>>2];
$40 = $19 > 0.0;
$41 = $40 ? $19 : 0.0;
$42 = $41 + $39;
$43 = ((($2)) + 16|0);
HEAPF32[$43>>2] = $42;
$44 = ((($1)) + 20|0);
$45 = +HEAPF32[$44>>2];
$46 = $27 > 0.0;
$47 = $46 ? $27 : 0.0;
$48 = $47 + $45;
$49 = ((($2)) + 20|0);
HEAPF32[$49>>2] = $48;
_IVec3_Floor($4,$2);
_IVec3_Floor($5,$37);
$50 = HEAP32[$5>>2]|0;
$51 = HEAP32[$4>>2]|0;
$52 = (($50) + 1)|0;
$53 = (($52) - ($51))|0;
$54 = ((($5)) + 4|0);
$55 = HEAP32[$54>>2]|0;
$56 = ((($4)) + 4|0);
$57 = HEAP32[$56>>2]|0;
$58 = (($55) + 1)|0;
$59 = (($58) - ($57))|0;
$60 = Math_imul($59, $53)|0;
$61 = ((($5)) + 8|0);
$62 = HEAP32[$61>>2]|0;
$63 = ((($4)) + 8|0);
$64 = HEAP32[$63>>2]|0;
$65 = (($62) + 1)|0;
$66 = (($65) - ($64))|0;
$67 = Math_imul($60, $66)|0;
$68 = HEAP32[4289]|0;
$69 = ($67>>>0)>($68>>>0);
if ($69) {
_Searcher_Free();
HEAP32[4289] = $67;
$70 = (_Mem_Alloc($67,16,34525)|0);
HEAP32[4288] = $70;
}
$71 = HEAP32[4288]|0;
$72 = HEAP32[$56>>2]|0;
$73 = HEAP32[$54>>2]|0;
$74 = ($72|0)>($73|0);
if ($74) {
$$081$lcssa = $71;
} else {
$75 = ((($6)) + 4|0);
$76 = ((($6)) + 8|0);
$77 = ((($6)) + 12|0);
$78 = ((($6)) + 16|0);
$79 = ((($6)) + 20|0);
$$07993 = $72;$$08192 = $71;
while(1) {
$80 = HEAP32[$63>>2]|0;
$81 = HEAP32[$61>>2]|0;
$82 = ($80|0)>($81|0);
if ($82) {
$$1$lcssa = $$08192;
} else {
$83 = (+($$07993|0));
$84 = $$07993 << 4;
$$087 = $80;$$186 = $$08192;
while(1) {
$85 = HEAP32[$4>>2]|0;
$86 = HEAP32[$5>>2]|0;
$87 = ($85|0)>($86|0);
if ($87) {
$$2$lcssa = $$186;
} else {
$88 = (+($$087|0));
$89 = $$087 << 3;
$$08085 = $85;$$284 = $$186;
while(1) {
$90 = (_World_GetPhysicsBlock($$08085,$$07993,$$087)|0);
$91 = $90&65535;
$92 = (578052 + ($91)|0);
$93 = HEAP8[$92>>0]|0;
$94 = ($93<<24>>24)==(2);
if ($94) {
$95 = (+($$08085|0));
$96 = (588036 + (($91*12)|0)|0);
;HEAP32[$6>>2]=HEAP32[$96>>2]|0;HEAP32[$6+4>>2]=HEAP32[$96+4>>2]|0;HEAP32[$6+8>>2]=HEAP32[$96+8>>2]|0;
$97 = +HEAPF32[$6>>2];
$98 = $97 + $95;
HEAPF32[$6>>2] = $98;
$99 = +HEAPF32[$75>>2];
$100 = $99 + $83;
HEAPF32[$75>>2] = $100;
$101 = +HEAPF32[$76>>2];
$102 = $101 + $88;
HEAPF32[$76>>2] = $102;
$103 = (597252 + (($91*12)|0)|0);
;HEAP32[$77>>2]=HEAP32[$103>>2]|0;HEAP32[$77+4>>2]=HEAP32[$103+4>>2]|0;HEAP32[$77+8>>2]=HEAP32[$103+8>>2]|0;
$104 = +HEAPF32[$77>>2];
$105 = $104 + $95;
HEAPF32[$77>>2] = $105;
$106 = +HEAPF32[$78>>2];
$107 = $106 + $83;
HEAPF32[$78>>2] = $107;
$108 = +HEAPF32[$79>>2];
$109 = $108 + $88;
HEAPF32[$79>>2] = $109;
$110 = (_AABB_Intersects($2,$6)|0);
$111 = ($110<<24>>24)==(0);
if ($111) {
$$3 = $$284;
} else {
_Searcher_CalcTime($3,$1,$6,$7,$8,$9);
$112 = +HEAPF32[$7>>2];
$113 = $112 > 1.0;
$114 = +HEAPF32[$8>>2];
$115 = $114 > 1.0;
$or$cond = $113 | $115;
$116 = +HEAPF32[$9>>2];
$117 = $116 > 1.0;
$or$cond3 = $or$cond | $117;
if ($or$cond3) {
$$3 = $$284;
} else {
$118 = $$08085 << 3;
$119 = $91 & 7;
$120 = $119 | $118;
HEAP32[$$284>>2] = $120;
$121 = (3)?($91 >>> 3):($91);
$122 = $121 & 15;
$123 = $122 | $84;
$124 = ((($$284)) + 4|0);
HEAP32[$124>>2] = $123;
$125 = (7)?($91 >>> 7):($91);
$126 = $125 & 7;
$127 = $126 | $89;
$128 = ((($$284)) + 8|0);
HEAP32[$128>>2] = $127;
$129 = $112 * $112;
$130 = $114 * $114;
$131 = $129 + $130;
$132 = $116 * $116;
$133 = $131 + $132;
$134 = ((($$284)) + 12|0);
HEAPF32[$134>>2] = $133;
$135 = ((($$284)) + 16|0);
$$3 = $135;
}
}
} else {
$$3 = $$284;
}
$136 = (($$08085) + 1)|0;
$137 = HEAP32[$5>>2]|0;
$138 = ($$08085|0)<($137|0);
if ($138) {
$$08085 = $136;$$284 = $$3;
} else {
$$2$lcssa = $$3;
break;
}
}
}
$139 = (($$087) + 1)|0;
$140 = HEAP32[$61>>2]|0;
$141 = ($$087|0)<($140|0);
if ($141) {
$$087 = $139;$$186 = $$2$lcssa;
} else {
$$1$lcssa = $$2$lcssa;
break;
}
}
}
$142 = (($$07993) + 1)|0;
$143 = HEAP32[$54>>2]|0;
$144 = ($$07993|0)<($143|0);
if ($144) {
$$07993 = $142;$$08192 = $$1$lcssa;
} else {
$$081$lcssa = $$1$lcssa;
break;
}
}
}
$145 = HEAP32[4288]|0;
$146 = $$081$lcssa;
$147 = (($146) - ($145))|0;
$148 = (4)?($147 >> 4):($147);
$149 = ($147|0)==(0);
if ($149) {
STACKTOP = sp;return ($148|0);
}
$150 = (($148) + -1)|0;
_Searcher_QuickSort(0,$150);
STACKTOP = sp;return ($148|0);
}
function _Searcher_Free() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[4288]|0;
$1 = ($0|0)==(493680|0);
if (!($1)) {
_Mem_Free($0);
}
HEAP32[4288] = 493680;
HEAP32[4289] = 64;
return;
}
function _Searcher_CalcTime($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$sink = 0, $$sink49 = 0, $$sink54 = 0, $$sink56 = 0, $$sink60 = 0, $$sink62 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0.0;
var $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0;
var $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0, $48 = 0.0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0.0, $60 = 0, $61 = 0.0, $62 = 0;
var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0, $68 = 0.0, $69 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$6 = +HEAPF32[$0>>2];
$7 = $6 > 0.0;
$8 = ((($0)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $9 > 0.0;
$$sink56 = $10 ? $2 : $1;
$$sink54 = $10 ? $1 : $2;
$11 = ((($$sink56)) + 4|0);
$12 = +HEAPF32[$11>>2];
$13 = ((($$sink54)) + 16|0);
$14 = +HEAPF32[$13>>2];
$15 = $12 - $14;
$16 = ((($0)) + 8|0);
$17 = +HEAPF32[$16>>2];
$18 = $17 > 0.0;
$$sink62 = $18 ? $2 : $1;
$$sink60 = $18 ? $1 : $2;
$19 = ((($$sink62)) + 8|0);
$20 = +HEAPF32[$19>>2];
$21 = ((($$sink60)) + 20|0);
$22 = +HEAPF32[$21>>2];
$23 = $20 - $22;
$24 = $6 == 0.0;
if ($24) {
$31 = inf;
} else {
$$sink = $7 ? $2 : $1;
$25 = +HEAPF32[$$sink>>2];
$$sink49 = $7 ? $1 : $2;
$26 = ((($$sink49)) + 12|0);
$27 = +HEAPF32[$26>>2];
$28 = $25 - $27;
$29 = $28 / $6;
$30 = (+_Math_AbsF($29));
$31 = $30;
}
HEAPF32[$3>>2] = $31;
$32 = +HEAPF32[$8>>2];
$33 = $32 == 0.0;
if ($33) {
$36 = inf;
} else {
$34 = $15 / $32;
$35 = (+_Math_AbsF($34));
$36 = $35;
}
HEAPF32[$4>>2] = $36;
$37 = +HEAPF32[$16>>2];
$38 = $37 == 0.0;
if ($38) {
$41 = inf;
} else {
$39 = $23 / $37;
$40 = (+_Math_AbsF($39));
$41 = $40;
}
HEAPF32[$5>>2] = $41;
$42 = ((($1)) + 12|0);
$43 = +HEAPF32[$42>>2];
$44 = +HEAPF32[$2>>2];
$45 = !($43 >= $44);
if (!($45)) {
$46 = +HEAPF32[$1>>2];
$47 = ((($2)) + 12|0);
$48 = +HEAPF32[$47>>2];
$49 = !($46 <= $48);
if (!($49)) {
HEAPF32[$3>>2] = 0.0;
}
}
$50 = ((($1)) + 16|0);
$51 = +HEAPF32[$50>>2];
$52 = ((($2)) + 4|0);
$53 = +HEAPF32[$52>>2];
$54 = !($51 >= $53);
if (!($54)) {
$55 = ((($1)) + 4|0);
$56 = +HEAPF32[$55>>2];
$57 = ((($2)) + 16|0);
$58 = +HEAPF32[$57>>2];
$59 = !($56 <= $58);
if (!($59)) {
HEAPF32[$4>>2] = 0.0;
}
}
$60 = ((($1)) + 20|0);
$61 = +HEAPF32[$60>>2];
$62 = ((($2)) + 8|0);
$63 = +HEAPF32[$62>>2];
$64 = !($61 >= $63);
if ($64) {
return;
}
$65 = ((($1)) + 8|0);
$66 = +HEAPF32[$65>>2];
$67 = ((($2)) + 20|0);
$68 = +HEAPF32[$67>>2];
$69 = !($66 <= $68);
if ($69) {
return;
}
HEAPF32[$5>>2] = 0.0;
return;
}
function _Searcher_QuickSort($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$051$lcssa = 0, $$05161 = 0, $$053$lcssa = 0, $$05360 = 0, $$05663 = 0, $$064 = 0, $$1 = 0, $$152 = 0, $$154 = 0, $$157 = 0, $$2 = 0, $$255 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0;
var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = HEAP32[4288]|0;
$4 = ($0|0)<($1|0);
if (!($4)) {
STACKTOP = sp;return;
}
$$05663 = $1;$$064 = $0;
while(1) {
$5 = (($$064) + ($$05663))|0;
$6 = (1)?($5 >> 1):($5);
$7 = (((($3) + ($6<<4)|0)) + 12|0);
$8 = +HEAPF32[$7>>2];
$9 = ($$064|0)>($$05663|0);
if ($9) {
$$051$lcssa = $$05663;$$053$lcssa = $$064;
} else {
$$05161 = $$05663;$$05360 = $$064;
while(1) {
$$154 = $$05360;
while(1) {
$10 = (((($3) + ($$154<<4)|0)) + 12|0);
$11 = +HEAPF32[$10>>2];
$12 = $8 > $11;
$13 = (($$154) + 1)|0;
if ($12) {
$$154 = $13;
} else {
break;
}
}
$$152 = $$05161;
while(1) {
$14 = (((($3) + ($$152<<4)|0)) + 12|0);
$15 = +HEAPF32[$14>>2];
$16 = $8 < $15;
$17 = (($$152) + -1)|0;
if ($16) {
$$152 = $17;
} else {
break;
}
}
$18 = (($3) + ($$154<<4)|0);
$19 = (($3) + ($$152<<4)|0);
$20 = ($$154|0)>($$152|0);
if ($20) {
$$2 = $$152;$$255 = $$154;
} else {
$21 = (($$152) + -1)|0;
$22 = (($$154) + 1)|0;
;HEAP32[$2>>2]=HEAP32[$18>>2]|0;HEAP32[$2+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$18+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$18+12>>2]|0;
;HEAP32[$18>>2]=HEAP32[$19>>2]|0;HEAP32[$18+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$18+8>>2]=HEAP32[$19+8>>2]|0;HEAP32[$18+12>>2]=HEAP32[$19+12>>2]|0;
;HEAP32[$19>>2]=HEAP32[$2>>2]|0;HEAP32[$19+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$19+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$19+12>>2]=HEAP32[$2+12>>2]|0;
$$2 = $21;$$255 = $22;
}
$23 = ($$255|0)>($$2|0);
if ($23) {
$$051$lcssa = $$2;$$053$lcssa = $$255;
break;
} else {
$$05161 = $$2;$$05360 = $$255;
}
}
}
$24 = (($$051$lcssa) - ($$064))|0;
$25 = (($$05663) - ($$053$lcssa))|0;
$26 = ($24|0)>($25|0);
if ($26) {
$28 = ($$05663|0)>($$053$lcssa|0);
if ($28) {
_Searcher_QuickSort($$053$lcssa,$$05663);
$$1 = $$064;$$157 = $$051$lcssa;
} else {
$$1 = $$064;$$157 = $$051$lcssa;
}
} else {
$27 = ($$051$lcssa|0)>($$064|0);
if ($27) {
_Searcher_QuickSort($$064,$$051$lcssa);
$$1 = $$053$lcssa;$$157 = $$05663;
} else {
$$1 = $$053$lcssa;$$157 = $$05663;
}
}
$29 = ($$1|0)<($$157|0);
if ($29) {
$$05663 = $$157;$$064 = $$1;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _PickedPosRenderer_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_OnContextRecreated_1195(0);
_Event_Register((1251856),0,342);
_Event_Register((1252116),0,343);
return;
}
function _PickedPosRenderer_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_OnContextLost_1194(0);
_Event_Unregister((1251856),0,342);
_Event_Unregister((1252116),0,343);
return;
}
function _OnContextLost_1194($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteVb(1292056);
return;
}
function _OnContextRecreated_1195($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Gfx_CreateDynamicVb(0,96)|0);
HEAP32[323014] = $1;
return;
}
function _PickedPosRenderer_Render() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1260360)>>0]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
return;
}
_Gfx_SetAlphaBlending(1);
_Gfx_SetDepthWrite(0);
_Gfx_SetVertexFormat(0);
$2 = HEAP32[323014]|0;
_Gfx_UpdateDynamicVb_IndexedTris($2,494704,96);
_Gfx_SetDepthWrite(1);
_Gfx_SetAlphaBlending(0);
return;
}
function _PickedPosRenderer_Update($0) {
$0 = $0|0;
var $$0 = 0.0, $$035 = 0.0, $$03740 = 0, $$03839 = 0, $$1 = 0.0, $$136 = 0.0, $$2 = 0.0, $$3 = 0.0, $$4 = 0.0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp + 48|0;
$2 = sp;
_Vec3_Sub_1200($1,$0);
$3 = (+_Vec3_LengthSquared_1201($1));
$4 = $3 < 16.0;
$$035 = $4 ? 0.0062500000931322575 : 0.0099999997764825821;
$5 = $3 < 4.0;
$$136 = $5 ? 0.004999999888241291 : $$035;
$6 = $3 < 1024.0;
$$0 = $6 ? 0.03125 : 0.0625;
$7 = $3 < 256.0;
$$1 = $7 ? 0.015625 : $$0;
$8 = $3 < 64.0;
$$2 = $8 ? 0.010416666977107525 : $$1;
$$3 = $4 ? 0.0078125 : $$2;
$$4 = $5 ? 0.0052083334885537624 : $$3;
$9 = - $$136;
_Vec3_Add1_1202($2,$0,$9);
$10 = ((($2)) + 12|0);
_Vec3_Add1_1202($10,$2,$$4);
$11 = ((($2)) + 36|0);
$12 = ((($0)) + 12|0);
_Vec3_Add1_1202($11,$12,$$136);
$13 = ((($2)) + 24|0);
$14 = - $$4;
_Vec3_Add1_1202($13,$11,$14);
$$03740 = 494704;$$03839 = 0;
while(1) {
$15 = (6528 + ($$03839)|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = (($2) + (($17*12)|0)|0);
$19 = HEAP32[$18>>2]|0;
HEAP32[$$03740>>2] = $19;
$20 = (($$03839) + 1)|0;
$21 = (6528 + ($20)|0);
$22 = HEAP8[$21>>0]|0;
$23 = $22&255;
$24 = (((($2) + (($23*12)|0)|0)) + 4|0);
$25 = HEAP32[$24>>2]|0;
$26 = ((($$03740)) + 4|0);
HEAP32[$26>>2] = $25;
$27 = (($$03839) + 2)|0;
$28 = (6528 + ($27)|0);
$29 = HEAP8[$28>>0]|0;
$30 = $29&255;
$31 = (((($2) + (($30*12)|0)|0)) + 8|0);
$32 = HEAP32[$31>>2]|0;
$33 = ((($$03740)) + 8|0);
HEAP32[$33>>2] = $32;
$34 = ((($$03740)) + 12|0);
HEAP32[$34>>2] = 1711276032;
$35 = (($$03839) + 3)|0;
$36 = ((($$03740)) + 16|0);
$37 = ($35>>>0)<(288);
if ($37) {
$$03740 = $36;$$03839 = $35;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _Vec3_Sub_1200($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[(1230620)>>2];
$3 = +HEAPF32[$1>>2];
$4 = $2 - $3;
HEAPF32[$0>>2] = $4;
$5 = +HEAPF32[(1230624)>>2];
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = $5 - $7;
$9 = ((($0)) + 4|0);
HEAPF32[$9>>2] = $8;
$10 = +HEAPF32[(1230628)>>2];
$11 = ((($1)) + 8|0);
$12 = +HEAPF32[$11>>2];
$13 = $10 - $12;
$14 = ((($0)) + 8|0);
HEAPF32[$14>>2] = $13;
return;
}
function _Vec3_LengthSquared_1201($0) {
$0 = $0|0;
var $1 = 0.0, $10 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[$0>>2];
$2 = $1 * $1;
$3 = ((($0)) + 4|0);
$4 = +HEAPF32[$3>>2];
$5 = $4 * $4;
$6 = $2 + $5;
$7 = ((($0)) + 8|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 * $8;
$10 = $6 + $9;
return (+$10);
}
function _Vec3_Add1_1202($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0.0, $11 = 0.0, $12 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = $3 + $2;
HEAPF32[$0>>2] = $4;
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 + $2;
$8 = ((($0)) + 4|0);
HEAPF32[$8>>2] = $7;
$9 = ((($1)) + 8|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 + $2;
$12 = ((($0)) + 8|0);
HEAPF32[$12>>2] = $11;
return;
}
function _PickedPos_SetAsValid($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$sink = 0, $$sink37 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0;
var $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[$1>>2]|0;
$4 = ((($0)) + 36|0);
HEAP32[$4>>2] = $3;
$5 = ((($1)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($0)) + 40|0);
HEAP32[$7>>2] = $6;
$8 = ((($1)) + 8|0);
$9 = HEAP32[$8>>2]|0;
$10 = ((($0)) + 44|0);
HEAP32[$10>>2] = $9;
$11 = ((($0)) + 48|0);
;HEAP32[$11>>2]=HEAP32[$4>>2]|0;HEAP32[$11+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$11+8>>2]=HEAP32[$4+8>>2]|0;
$12 = ((($0)) + 60|0);
HEAP8[$12>>0] = 1;
$13 = ((($1)) + 60|0);
$14 = HEAP16[$13>>1]|0;
$15 = ((($0)) + 62|0);
HEAP16[$15>>1] = $14;
$16 = ((($0)) + 24|0);
;HEAP32[$16>>2]=HEAP32[$2>>2]|0;HEAP32[$16+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$16+8>>2]=HEAP32[$2+8>>2]|0;
$17 = ((($1)) + 36|0);
;HEAP32[$0>>2]=HEAP32[$17>>2]|0;HEAP32[$0+4>>2]=HEAP32[$17+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$17+8>>2]|0;
$18 = ((($0)) + 12|0);
$19 = ((($1)) + 48|0);
;HEAP32[$18>>2]=HEAP32[$19>>2]|0;HEAP32[$18+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$18+8>>2]=HEAP32[$19+8>>2]|0;
HEAPF32[323015] = 1.0E+9;
$20 = +HEAPF32[$2>>2];
$21 = +HEAPF32[$17>>2];
$22 = $20 - $21;
_PickedPos_TestAxis($0,$22,0);
$23 = +HEAPF32[$19>>2];
$24 = $20 - $23;
_PickedPos_TestAxis($0,$24,1);
$25 = ((($2)) + 4|0);
$26 = +HEAPF32[$25>>2];
$27 = ((($1)) + 40|0);
$28 = +HEAPF32[$27>>2];
$29 = $26 - $28;
_PickedPos_TestAxis($0,$29,4);
$30 = ((($1)) + 52|0);
$31 = +HEAPF32[$30>>2];
$32 = $26 - $31;
_PickedPos_TestAxis($0,$32,5);
$33 = ((($2)) + 8|0);
$34 = +HEAPF32[$33>>2];
$35 = ((($1)) + 44|0);
$36 = +HEAPF32[$35>>2];
$37 = $34 - $36;
_PickedPos_TestAxis($0,$37,2);
$38 = ((($1)) + 56|0);
$39 = +HEAPF32[$38>>2];
$40 = $34 - $39;
_PickedPos_TestAxis($0,$40,3);
$41 = ((($0)) + 61|0);
$42 = HEAP8[$41>>0]|0;
switch ($42<<24>>24) {
case 0: {
$$sink = $11;$$sink37 = -1;
break;
}
case 1: {
$$sink = $11;$$sink37 = 1;
break;
}
case 2: {
$43 = ((($0)) + 56|0);
$$sink = $43;$$sink37 = -1;
break;
}
case 3: {
$44 = ((($0)) + 56|0);
$$sink = $44;$$sink37 = 1;
break;
}
case 4: {
$45 = ((($0)) + 52|0);
$$sink = $45;$$sink37 = -1;
break;
}
case 5: {
$46 = ((($0)) + 52|0);
$$sink = $46;$$sink37 = 1;
break;
}
default: {
return;
}
}
$47 = HEAP32[$$sink>>2]|0;
$48 = (($47) + ($$sink37))|0;
HEAP32[$$sink>>2] = $48;
return;
}
function _PickedPos_TestAxis($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = $2|0;
var $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (+_Math_AbsF($1));
$4 = +HEAPF32[323015];
$5 = !($3 >= $4);
if (!($5)) {
return;
}
HEAPF32[323015] = $3;
$6 = ((($0)) + 61|0);
HEAP8[$6>>0] = $2;
return;
}
function _PickedPos_SetAsInvalid($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
;HEAP32[$1>>2]=HEAP32[17184>>2]|0;HEAP32[$1+4>>2]=HEAP32[17184+4>>2]|0;HEAP32[$1+8>>2]=HEAP32[17184+8>>2]|0;
$2 = ((($0)) + 48|0);
;HEAP32[$2>>2]=HEAP32[17184>>2]|0;HEAP32[$2+4>>2]=HEAP32[17184+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[17184+8>>2]|0;
$3 = ((($0)) + 60|0);
HEAP8[$3>>0] = 0;
$4 = ((($0)) + 62|0);
HEAP16[$4>>1] = 0;
$5 = ((($0)) + 61|0);
HEAP8[$5>>0] = 6;
return;
}
function _RayTracer_Init($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0.0;
var $48 = 0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0;
var $66 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = ((($0)) + 12|0);
;HEAP32[$4>>2]=HEAP32[$1>>2]|0;HEAP32[$4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$4+8>>2]=HEAP32[$1+8>>2]|0;
$5 = ((($0)) + 24|0);
;HEAP32[$5>>2]=HEAP32[$2>>2]|0;HEAP32[$5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$2+8>>2]|0;
_IVec3_Floor($3,$1);
$6 = HEAP32[$3>>2]|0;
HEAP32[$0>>2] = $6;
$7 = ((($3)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($0)) + 4|0);
HEAP32[$9>>2] = $8;
$10 = ((($3)) + 8|0);
$11 = HEAP32[$10>>2]|0;
$12 = ((($0)) + 8|0);
HEAP32[$12>>2] = $11;
$13 = +HEAPF32[$2>>2];
$14 = (_Math_Sign($13)|0);
$15 = ((($0)) + 64|0);
HEAP32[$15>>2] = $14;
$16 = ((($2)) + 4|0);
$17 = +HEAPF32[$16>>2];
$18 = (_Math_Sign($17)|0);
$19 = ((($0)) + 68|0);
HEAP32[$19>>2] = $18;
$20 = ((($2)) + 8|0);
$21 = +HEAPF32[$20>>2];
$22 = (_Math_Sign($21)|0);
$23 = ((($0)) + 72|0);
HEAP32[$23>>2] = $22;
$24 = HEAP32[$3>>2]|0;
$25 = HEAP32[$15>>2]|0;
$26 = ($25|0)>(0);
$27 = $26&1;
$28 = (($24) + ($27))|0;
$29 = HEAP32[$7>>2]|0;
$30 = HEAP32[$19>>2]|0;
$31 = ($30|0)>(0);
$32 = $31&1;
$33 = (($29) + ($32))|0;
$34 = HEAP32[$10>>2]|0;
$35 = ($22|0)>(0);
$36 = $35&1;
$37 = (($34) + ($36))|0;
$38 = (+($28|0));
$39 = +HEAPF32[$1>>2];
$40 = $38 - $39;
$41 = (+_RayTracer_Div($40,$13));
$42 = ((($0)) + 76|0);
HEAPF32[$42>>2] = $41;
$43 = (+($33|0));
$44 = ((($1)) + 4|0);
$45 = +HEAPF32[$44>>2];
$46 = $43 - $45;
$47 = (+_RayTracer_Div($46,$17));
$48 = ((($0)) + 80|0);
HEAPF32[$48>>2] = $47;
$49 = (+($37|0));
$50 = ((($1)) + 8|0);
$51 = +HEAPF32[$50>>2];
$52 = $49 - $51;
$53 = (+_RayTracer_Div($52,$21));
$54 = ((($0)) + 84|0);
HEAPF32[$54>>2] = $53;
$55 = HEAP32[$15>>2]|0;
$56 = (+($55|0));
$57 = (+_RayTracer_Div($56,$13));
$58 = ((($0)) + 88|0);
HEAPF32[$58>>2] = $57;
$59 = HEAP32[$19>>2]|0;
$60 = (+($59|0));
$61 = (+_RayTracer_Div($60,$17));
$62 = ((($0)) + 92|0);
HEAPF32[$62>>2] = $61;
$63 = HEAP32[$23>>2]|0;
$64 = (+($63|0));
$65 = (+_RayTracer_Div($64,$21));
$66 = ((($0)) + 96|0);
HEAPF32[$66>>2] = $65;
STACKTOP = sp;return;
}
function _RayTracer_Div($0,$1) {
$0 = +$0;
$1 = +$1;
var $$0 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (+_Math_AbsF($1));
$3 = $2 < 9.9999999747524271E-7;
$4 = $0 / $1;
$$0 = $3 ? 1.0E+9 : $4;
return (+$$0);
}
function _RayTracer_Step($0) {
$0 = $0|0;
var $$sink = 0, $$sink17 = 0, $$sink18 = 0.0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0.0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 76|0);
$2 = +HEAPF32[$1>>2];
$3 = ((($0)) + 80|0);
$4 = +HEAPF32[$3>>2];
$5 = $2 < $4;
if ($5) {
$6 = ((($0)) + 84|0);
$7 = +HEAPF32[$6>>2];
$8 = $2 < $7;
if ($8) {
$9 = ((($0)) + 64|0);
$10 = HEAP32[$9>>2]|0;
$11 = HEAP32[$0>>2]|0;
$12 = (($11) + ($10))|0;
HEAP32[$0>>2] = $12;
$13 = ((($0)) + 88|0);
$$sink = $13;$$sink17 = $1;$$sink18 = $2;
} else {
label = 4;
}
} else {
label = 4;
}
do {
if ((label|0) == 4) {
$14 = ((($0)) + 84|0);
$15 = +HEAPF32[$14>>2];
$16 = $4 < $15;
if ($16) {
$17 = ((($0)) + 68|0);
$18 = HEAP32[$17>>2]|0;
$19 = ((($0)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$21 = (($20) + ($18))|0;
HEAP32[$19>>2] = $21;
$22 = ((($0)) + 92|0);
$$sink = $22;$$sink17 = $3;$$sink18 = $4;
break;
} else {
$23 = ((($0)) + 72|0);
$24 = HEAP32[$23>>2]|0;
$25 = ((($0)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = (($26) + ($24))|0;
HEAP32[$25>>2] = $27;
$28 = ((($0)) + 96|0);
$$sink = $28;$$sink17 = $14;$$sink18 = $15;
break;
}
}
} while(0);
$29 = +HEAPF32[$$sink>>2];
$30 = $$sink18 + $29;
HEAPF32[$$sink17>>2] = $30;
return;
}
function _Picking_CalculatePickedBlock($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
$3 = $3|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy1 = sp + 12|0;
$$byval_copy = sp;
;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;
$4 = (_Picking_RayTrace($$byval_copy,$$byval_copy1,$2,$3,17)|0);
$5 = ($4<<24>>24)==(0);
if (!($5)) {
STACKTOP = sp;return;
}
_PickedPos_SetAsInvalid($3);
STACKTOP = sp;return;
}
function _Picking_ClipBlock($0) {
$0 = $0|0;
var $$0 = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy4 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$$byval_copy4 = sp + 68|0;
$$byval_copy2 = sp + 56|0;
$$byval_copy1 = sp + 44|0;
$$byval_copy = sp + 32|0;
$1 = sp + 20|0;
$2 = sp + 8|0;
$3 = sp + 4|0;
$4 = sp;
$5 = HEAP16[(1292124)>>1]|0;
$6 = (_Game_CanPick($5)|0);
$7 = ($6<<24>>24)==(0);
if ($7) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
;HEAP32[$$byval_copy>>2]=HEAP32[(1292076)>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[(1292076)+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[(1292076)+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[(1292088)>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[(1292088)+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[(1292088)+8>>2]|0;
;HEAP32[$$byval_copy2>>2]=HEAP32[(1292100)>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[(1292100)+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[(1292100)+8>>2]|0;
;HEAP32[$$byval_copy4>>2]=HEAP32[(1292112)>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[(1292112)+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[(1292112)+8>>2]|0;
$8 = (_Intersection_RayIntersectsBox($$byval_copy,$$byval_copy1,$$byval_copy2,$$byval_copy4,$3,$4)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$10 = +HEAPF32[$3>>2];
_Vec3_Mul1_1211($1,(1292088),$10);
_Vec3_Add_1208($2,(1292076),$1);
$11 = (+_Vec3_LengthSquared_1214($1));
$12 = +HEAPF32[(1242612)>>2];
$13 = $12 * $12;
$14 = !($11 <= $13);
if ($14) {
_PickedPos_SetAsInvalid($0);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
} else {
;HEAP32[$$byval_copy4>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$2+8>>2]|0;
_PickedPos_SetAsValid($0,1292064,$$byval_copy4);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _Picking_RayTrace($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
$3 = $3|0;
$4 = $4|0;
var $$0 = 0, $$05960 = 0, $$byval_copy = 0, $$byval_copy2 = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0;
var $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0;
var $63 = 0.0, $64 = 0, $65 = 0.0, $66 = 0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$$byval_copy2 = sp + 60|0;
$$byval_copy = sp + 48|0;
$5 = sp + 36|0;
$6 = sp + 24|0;
$7 = sp + 12|0;
$8 = sp;
;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;
;HEAP32[$$byval_copy2>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$1+8>>2]|0;
_RayTracer_Init(1292064,$$byval_copy,$$byval_copy2);
_IVec3_Floor($5,$0);
$9 = HEAP32[$5>>2]|0;
$10 = ((($5)) + 4|0);
$11 = HEAP32[$10>>2]|0;
$12 = ((($5)) + 8|0);
$13 = HEAP32[$12>>2]|0;
$14 = (_World_Contains_1207($9,$11,$13)|0);
$15 = $2 * $2;
$16 = ((($6)) + 4|0);
$17 = ((($6)) + 8|0);
$18 = ($14<<24>>24)==(0);
$19 = ((($0)) + 4|0);
$20 = ((($7)) + 4|0);
$21 = ((($8)) + 4|0);
$22 = ((($0)) + 8|0);
$23 = ((($7)) + 8|0);
$24 = ((($8)) + 8|0);
$$05960 = 0;
while(1) {
$25 = HEAP32[323016]|0;
$26 = HEAP32[(1292068)>>2]|0;
$27 = HEAP32[(1292072)>>2]|0;
$28 = (+($25|0));
HEAPF32[$6>>2] = $28;
$29 = (+($26|0));
HEAPF32[$16>>2] = $29;
$30 = (+($27|0));
HEAPF32[$17>>2] = $30;
if ($18) {
;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0;
$32 = (_Picking_GetOutside($25,$26,$27,$$byval_copy2)|0);
$$sink = $32;
} else {
$31 = (_Picking_GetInside($25,$26,$27)|0);
$$sink = $31;
}
$33 = $$sink&65535;
HEAP16[(1292124)>>1] = $$sink;
$34 = (606468 + (($33*12)|0)|0);
_Vec3_Add_1208($7,$6,$34);
$35 = HEAP16[(1292124)>>1]|0;
$36 = $35&65535;
$37 = (615684 + (($36*12)|0)|0);
_Vec3_Add_1208($8,$6,$37);
$38 = +HEAPF32[$0>>2];
$39 = +HEAPF32[$7>>2];
$40 = $38 - $39;
$41 = (+_Math_AbsF($40));
$42 = +HEAPF32[$0>>2];
$43 = +HEAPF32[$8>>2];
$44 = $42 - $43;
$45 = (+_Math_AbsF($44));
$46 = +HEAPF32[$19>>2];
$47 = +HEAPF32[$20>>2];
$48 = $46 - $47;
$49 = (+_Math_AbsF($48));
$50 = +HEAPF32[$19>>2];
$51 = +HEAPF32[$21>>2];
$52 = $50 - $51;
$53 = (+_Math_AbsF($52));
$54 = +HEAPF32[$22>>2];
$55 = +HEAPF32[$23>>2];
$56 = $54 - $55;
$57 = (+_Math_AbsF($56));
$58 = +HEAPF32[$22>>2];
$59 = +HEAPF32[$24>>2];
$60 = $58 - $59;
$61 = (+_Math_AbsF($60));
$62 = $41 < $45;
$63 = $62 ? $41 : $45;
$64 = $49 < $53;
$65 = $64 ? $49 : $53;
$66 = $57 < $61;
$67 = $66 ? $57 : $61;
$68 = $63 * $63;
$69 = $65 * $65;
$70 = $68 + $69;
$71 = $67 * $67;
$72 = $70 + $71;
$73 = $72 > $15;
if ($73) {
$$0 = 0;
label = 9;
break;
}
;HEAP32[(1292100)>>2]=HEAP32[$7>>2]|0;HEAP32[(1292100)+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[(1292100)+8>>2]=HEAP32[$7+8>>2]|0;
;HEAP32[(1292112)>>2]=HEAP32[$8>>2]|0;HEAP32[(1292112)+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[(1292112)+8>>2]=HEAP32[$8+8>>2]|0;
$74 = (FUNCTION_TABLE_ii[$4 & 31]($3)|0);
$75 = ($74<<24>>24)==(0);
if (!($75)) {
$$0 = 1;
label = 9;
break;
}
_RayTracer_Step(1292064);
$76 = (($$05960) + 1)|0;
$77 = ($76>>>0)<(25000);
if ($77) {
$$05960 = $76;
} else {
label = 8;
break;
}
}
if ((label|0) == 8) {
_Logger_Abort(34549);
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
else if ((label|0) == 9) {
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _World_Contains_1207($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _Picking_GetInside($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp13 = 0, $spec$select = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_World_ContainsXZ_1212($0,$2)|0);
$4 = ($3<<24>>24)==(0);
if (!($4)) {
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5|0)>($1|0);
if (!($6)) {
$$0 = 0;
return ($$0|0);
}
$7 = ($1|0)>(-1);
if ($7) {
$8 = (_World_GetBlock_1213($0,$1,$2)|0);
$$0 = $8;
return ($$0|0);
}
}
$9 = HEAP16[(1407514)>>1]|0;
$10 = ($9<<16>>16)==(0);
$11 = HEAP32[(1407516)>>2]|0;
$12 = HEAP32[(1407520)>>2]|0;
$13 = (($12) + ($11))|0;
$14 = ($13|0)>(1);
$spec$store$select = $14 ? $13 : 1;
$15 = ($spec$store$select|0)>($1|0);
$phitmp13 = $15 ? 7 : 0;
$spec$select = $10 ? 0 : $phitmp13;
return ($spec$select|0);
}
function _Picking_GetOutside($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$mux = 0, $$not55 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $brmerge = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond54 = 0, $or$cond9 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_World_ContainsXZ_1212($0,$2)|0);
$5 = ($4<<24>>24)!=(0);
$6 = HEAP32[(1407468)>>2]|0;
$7 = ($6|0)>($1|0);
$or$cond54 = $5 & $7;
if (!($or$cond54)) {
$$0 = 0;
return ($$0|0);
}
$8 = HEAP16[(1407514)>>1]|0;
$9 = ($8<<16>>16)!=(0);
$10 = ($1|0)==(-1);
$or$cond = $10 & $9;
if ($or$cond) {
$11 = ((($3)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)>(0);
if ($13) {
$$0 = 7;
return ($$0|0);
}
} else {
$14 = ($1|0)==(0);
$or$cond3 = $14 & $9;
if ($or$cond3) {
$15 = ((($3)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)<(0);
if ($17) {
$$0 = 7;
return ($$0|0);
}
}
}
$18 = HEAP32[(1407516)>>2]|0;
$19 = HEAP32[(1407520)>>2]|0;
$20 = (($19) + ($18))|0;
$21 = ($20|0)>(1);
$spec$store$select = $21 ? $20 : 1;
$22 = ($0|0)==(0);
$or$cond5 = $22 & $9;
$23 = ($1|0)>(-1);
$24 = ($spec$store$select>>>0)>($1>>>0);
$25 = $or$cond5 & $24;
if ($25) {
$26 = HEAP32[$3>>2]|0;
$27 = ($26|0)<(0);
if ($27) {
$$0 = 7;
return ($$0|0);
}
}
$28 = ($2|0)==(0);
$or$cond9 = $28 & $9;
$29 = ($spec$store$select>>>0)>($1>>>0);
$30 = $or$cond9 & $29;
if ($30) {
$31 = ((($3)) + 8|0);
$32 = HEAP32[$31>>2]|0;
$33 = ($32|0)<(0);
if ($33) {
$$0 = 7;
return ($$0|0);
}
}
if ($9) {
$34 = HEAP32[(1407476)>>2]|0;
$35 = ($34|0)==($0|0);
$36 = ($spec$store$select>>>0)>($1>>>0);
$37 = $36 & $35;
if ($37) {
$38 = HEAP32[$3>>2]|0;
$39 = HEAP32[(1407464)>>2]|0;
$40 = ($38|0)<($39|0);
if (!($40)) {
$$0 = 7;
return ($$0|0);
}
}
$41 = HEAP32[(1407484)>>2]|0;
$42 = ($41|0)==($2|0);
$43 = ($spec$store$select>>>0)>($1>>>0);
$44 = $43 & $42;
if ($44) {
$45 = ((($3)) + 8|0);
$46 = HEAP32[$45>>2]|0;
$47 = HEAP32[(1407472)>>2]|0;
$48 = ($46|0)>=($47|0);
$$not55 = $23 ^ 1;
$brmerge = $48 | $$not55;
$$mux = $48 ? 7 : 0;
if ($brmerge) {
$$0 = $$mux;
return ($$0|0);
}
} else {
label = 15;
}
} else {
label = 15;
}
if ((label|0) == 15) {
if (!($23)) {
$$0 = 0;
return ($$0|0);
}
}
$49 = (_World_GetBlock_1213($0,$1,$2)|0);
$$0 = $49;
return ($$0|0);
}
function _Vec3_Add_1208($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _Picking_ClipCamera($0) {
$0 = $0|0;
var $$0 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$byval_copy6 = 0, $$byval_copy8 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$$byval_copy8 = sp + 56|0;
$$byval_copy6 = sp + 44|0;
$$byval_copy5 = sp + 32|0;
$$byval_copy4 = sp + 20|0;
$1 = sp + 8|0;
$2 = sp + 4|0;
$3 = sp;
$4 = HEAP16[(1292124)>>1]|0;
$5 = $4&65535;
$6 = (583428 + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(4);
if ($8) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$9 = (578052 + ($5)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(2);
if (!($11)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
;HEAP32[$$byval_copy4>>2]=HEAP32[(1292076)>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[(1292076)+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[(1292076)+8>>2]|0;
;HEAP32[$$byval_copy5>>2]=HEAP32[(1292088)>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[(1292088)+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[(1292088)+8>>2]|0;
;HEAP32[$$byval_copy6>>2]=HEAP32[(1292100)>>2]|0;HEAP32[$$byval_copy6+4>>2]=HEAP32[(1292100)+4>>2]|0;HEAP32[$$byval_copy6+8>>2]=HEAP32[(1292100)+8>>2]|0;
;HEAP32[$$byval_copy8>>2]=HEAP32[(1292112)>>2]|0;HEAP32[$$byval_copy8+4>>2]=HEAP32[(1292112)+4>>2]|0;HEAP32[$$byval_copy8+8>>2]=HEAP32[(1292112)+8>>2]|0;
$12 = (_Intersection_RayIntersectsBox($$byval_copy4,$$byval_copy5,$$byval_copy6,$$byval_copy8,$2,$3)|0);
$13 = ($12<<24>>24)==(0);
if ($13) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
_Vec3_Sub_1210();
_Vec3_Add_1208((1292112),(1292112),17196);
;HEAP32[$$byval_copy4>>2]=HEAP32[(1292076)>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[(1292076)+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[(1292076)+8>>2]|0;
;HEAP32[$$byval_copy5>>2]=HEAP32[(1292088)>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[(1292088)+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[(1292088)+8>>2]|0;
;HEAP32[$$byval_copy6>>2]=HEAP32[(1292100)>>2]|0;HEAP32[$$byval_copy6+4>>2]=HEAP32[(1292100)+4>>2]|0;HEAP32[$$byval_copy6+8>>2]=HEAP32[(1292100)+8>>2]|0;
;HEAP32[$$byval_copy8>>2]=HEAP32[(1292112)>>2]|0;HEAP32[$$byval_copy8+4>>2]=HEAP32[(1292112)+4>>2]|0;HEAP32[$$byval_copy8+8>>2]=HEAP32[(1292112)+8>>2]|0;
(_Intersection_RayIntersectsBox($$byval_copy4,$$byval_copy5,$$byval_copy6,$$byval_copy8,$2,$3)|0);
$14 = +HEAPF32[$2>>2];
_Vec3_Mul1_1211($1,(1292088),$14);
_Vec3_Add_1208($1,(1292076),$1);
;HEAP32[$$byval_copy8>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy8+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy8+8>>2]=HEAP32[$1+8>>2]|0;
_PickedPos_SetAsValid($0,1292064,$$byval_copy8);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _Vec3_Sub_1210() {
var $0 = 0.0, $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = +HEAPF32[(1292100)>>2];
$1 = $0 + -0.10000000149011612;
HEAPF32[(1292100)>>2] = $1;
$2 = +HEAPF32[(1292104)>>2];
$3 = $2 + -0.10000000149011612;
HEAPF32[(1292104)>>2] = $3;
$4 = +HEAPF32[(1292108)>>2];
$5 = $4 + -0.10000000149011612;
HEAPF32[(1292108)>>2] = $5;
return;
}
function _Vec3_Mul1_1211($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0.0, $11 = 0.0, $12 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = $3 * $2;
HEAPF32[$0>>2] = $4;
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 * $2;
$8 = ((($0)) + 4|0);
HEAPF32[$8>>2] = $7;
$9 = ((($1)) + 8|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 * $2;
$12 = ((($0)) + 8|0);
HEAPF32[$12>>2] = $11;
return;
}
function _World_ContainsXZ_1212($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = ($2>>>0)>($0>>>0);
$4 = HEAP32[(1407472)>>2]|0;
$5 = ($4>>>0)>($1>>>0);
$narrow = $3 & $5;
$6 = $narrow&1;
return ($6|0);
}
function _World_GetBlock_1213($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _Vec3_LengthSquared_1214($0) {
$0 = $0|0;
var $1 = 0.0, $10 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[$0>>2];
$2 = $1 * $1;
$3 = ((($0)) + 4|0);
$4 = +HEAPF32[$3>>2];
$5 = $4 * $4;
$6 = $2 + $5;
$7 = ((($0)) + 8|0);
$8 = +HEAPF32[$7>>2];
$9 = $8 * $8;
$10 = $6 + $9;
return (+$10);
}
function _Picking_ClipCameraPos($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
$3 = $3|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$$byval_copy1 = sp + 12|0;
$$byval_copy = sp;
$4 = HEAP8[(1230545)>>0]|0;
$5 = ($4<<24>>24)==(0);
$6 = HEAP8[(1242650)>>0]|0;
$7 = ($6<<24>>24)!=(0);
$8 = $5 | $7;
if (!($8)) {
;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;
$9 = (_Picking_RayTrace($$byval_copy,$$byval_copy1,$2,$3,18)|0);
$10 = ($9<<24>>24)==(0);
if (!($10)) {
STACKTOP = sp;return;
}
}
_PickedPos_SetAsInvalid($3);
$11 = ((($3)) + 24|0);
_Vec3_Mul1_1211($11,$1,$2);
_Vec3_Add_1208($11,$0,$11);
STACKTOP = sp;return;
}
function _Mem_Set($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_memset(($0|0),($1|0),($2|0))|0;
return;
}
function _Mem_Copy($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_memcpy(($0|0),($1|0),($2|0))|0;
return;
}
function _Mem_TryAlloc($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = Math_imul($1, $0)|0;
$3 = (_malloc($2)|0);
return ($3|0);
}
function _Mem_Alloc($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = Math_imul($1, $0)|0;
$4 = (_malloc($3)|0);
$5 = ($4|0)==(0|0);
if (!($5)) {
return ($4|0);
}
_Platform_AllocFailed($2);
return ($4|0);
}
function _Platform_AllocFailed($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$1 = sp + 88|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 84;
_String_Format1($1,34620,$0);
$5 = HEAP32[$1>>2]|0;
$6 = HEAP16[$3>>1]|0;
$7 = $6&65535;
$8 = (($5) + ($7)|0);
HEAP8[$8>>0] = 0;
$9 = HEAP32[$1>>2]|0;
_Logger_Abort($9);
STACKTOP = sp;return;
}
function _Mem_AllocCleared($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_calloc($0,$1)|0);
$4 = ($3|0)==(0|0);
if (!($4)) {
return ($3|0);
}
_Platform_AllocFailed($2);
return ($3|0);
}
function _Mem_Realloc($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = Math_imul($2, $1)|0;
$5 = (_realloc($0,$4)|0);
$6 = ($5|0)==(0|0);
if (!($6)) {
return ($5|0);
}
_Platform_AllocFailed($3);
return ($5|0);
}
function _Mem_Free($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0|0)==(0|0);
if (!($1)) {
_free($0);
}
return;
}
function _Platform_Log1($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Platform_Log4($0,$1,0,0,0);
return;
}
function _Platform_Log4($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528|0;
$5 = sp + 512|0;
$6 = sp;
HEAP32[$5>>2] = $6;
$7 = ((($5)) + 4|0);
HEAP16[$7>>1] = 0;
$8 = ((($5)) + 6|0);
HEAP16[$8>>1] = 512;
_String_Format4($5,$0,$1,$2,$3,$4);
_Platform_Log($5);
STACKTOP = sp;return;
}
function _Platform_Log($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = $3&65535;
(_write(1,$1,$4)|0);
(_write(1,34656,1)|0);
return;
}
function _Platform_Log2($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Platform_Log4($0,$1,$2,0,0);
return;
}
function _Platform_Log3($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Platform_Log4($0,$1,$2,$3,0);
return;
}
function _Platform_LogConst($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_String_FromReadonly($1,$0);
_Platform_Log($1);
STACKTOP = sp;return;
}
function _Stopwatch_ElapsedMicroseconds($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($3>>>0)<($1>>>0);
$5 = ($2>>>0)<($0>>>0);
$6 = ($3|0)==($1|0);
$7 = $6 & $5;
$8 = $4 | $7;
$9 = (_i64Subtract(($2|0),($3|0),($0|0),($1|0))|0);
$10 = (getTempRet0() | 0);
$11 = $8 ? 0 : $9;
$12 = $8 ? 0 : $10;
setTempRet0(($12) | 0);
return ($11|0);
}
function _DateTime_CurrentUTC_MS() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
(_gettimeofday(($0|0),(0|0))|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)<(0);
$3 = $2 << 31 >> 31;
$4 = (___muldi3(($1|0),($3|0),1000,0)|0);
$5 = (getTempRet0() | 0);
$6 = (_i64Add(($4|0),($5|0),304928768,14467)|0);
$7 = (getTempRet0() | 0);
$8 = ((($0)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($9|0) / 1000)&-1;
$11 = ($10|0)<(0);
$12 = $11 << 31 >> 31;
$13 = (_i64Add(($6|0),($7|0),($10|0),($12|0))|0);
$14 = (getTempRet0() | 0);
setTempRet0(($14) | 0);
STACKTOP = sp;return ($13|0);
}
function _Platform_FromSysTime($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 20|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($3) + 1900)|0;
HEAP32[$0>>2] = $4;
$5 = ((($1)) + 16|0);
$6 = HEAP32[$5>>2]|0;
$7 = (($6) + 1)|0;
$8 = ((($0)) + 4|0);
HEAP32[$8>>2] = $7;
$9 = ((($1)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($0)) + 8|0);
HEAP32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($0)) + 12|0);
HEAP32[$14>>2] = $13;
$15 = ((($1)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = ((($0)) + 16|0);
HEAP32[$17>>2] = $16;
$18 = HEAP32[$1>>2]|0;
$19 = ((($0)) + 20|0);
HEAP32[$19>>2] = $18;
return;
}
function _DateTime_CurrentLocal($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp + 48|0;
$2 = sp;
(_gettimeofday(($1|0),(0|0))|0);
(_localtime_r(($1|0),($2|0))|0);
_Platform_FromSysTime($0,$2);
$3 = ((($1)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4|0) / 1000)&-1;
$6 = ((($0)) + 24|0);
HEAP32[$6>>2] = $5;
STACKTOP = sp;return;
}
function _Stopwatch_Measure() {
var $0 = 0.0, $1 = 0.0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (+_emscripten_get_now());
$1 = $0 * 1000.0;
$2 = (~~$1)>>>0;
$3 = +Math_abs($1) >= 1.0 ? $1 > 0.0 ? (~~+Math_min(+Math_floor($1 / 4294967296.0), 4294967295.0)) >>> 0 : ~~+Math_ceil(($1 - +(~~$1 >>> 0)) / 4294967296.0) >>> 0 : 0;
setTempRet0(($3) | 0);
return ($2|0);
}
function _Directory_Exists($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 688|0;
$1 = sp;
$2 = sp + 600|0;
(_Platform_ConvertString($1,$0)|0);
$3 = (_stat($1,$2)|0);
$4 = ($3|0)==(0);
if (!($4)) {
$9 = 0;
STACKTOP = sp;return ($9|0);
}
$5 = ((($2)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6 & 61440;
$8 = ($7|0)==(16384);
$phitmp = $8&1;
$9 = $phitmp;
STACKTOP = sp;return ($9|0);
}
function _Platform_ConvertString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$01819 = 0, $$020 = 0, $$lcssa = 0, $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3&65535)>(260);
if ($4) {
_Logger_Abort(34658);
$$pr = HEAP16[$2>>1]|0;
$5 = $$pr;
} else {
$5 = $3;
}
$6 = ($5<<16>>16)==(0);
if ($6) {
$$0$lcssa = 0;$$lcssa = $0;
HEAP8[$$lcssa>>0] = 0;
return ($$0$lcssa|0);
}
$$01819 = 0;$$020 = 0;$10 = $0;
while(1) {
$7 = HEAP32[$1>>2]|0;
$8 = (($7) + ($$01819)|0);
$9 = HEAP8[$8>>0]|0;
$11 = (_Convert_CP437ToUtf8($9,$10)|0);
$12 = (($11) + ($$020))|0;
$13 = (($$01819) + 1)|0;
$14 = HEAP16[$2>>1]|0;
$15 = $14&65535;
$16 = ($13>>>0)<($15>>>0);
$17 = (($0) + ($12)|0);
if ($16) {
$$01819 = $13;$$020 = $12;$10 = $17;
} else {
$$0$lcssa = $12;$$lcssa = $17;
break;
}
}
HEAP8[$$lcssa>>0] = 0;
return ($$0$lcssa|0);
}
function _Directory_Create($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 608|0;
$1 = sp;
(_Platform_ConvertString($1,$0)|0);
$2 = (_mkdir($1,509)|0);
$3 = ($2|0)==(-1);
if (!($3)) {
$6 = 0;
STACKTOP = sp;return ($6|0);
}
$4 = (___errno_location()|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5;
STACKTOP = sp;return ($6|0);
}
function _File_Exists($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 688|0;
$1 = sp;
$2 = sp + 600|0;
(_Platform_ConvertString($1,$0)|0);
$3 = (_stat($1,$2)|0);
$4 = ($3|0)==(0);
if (!($4)) {
$9 = 0;
STACKTOP = sp;return ($9|0);
}
$5 = ((($2)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6 & 61440;
$8 = ($7|0)==(32768);
$phitmp = $8&1;
$9 = $phitmp;
STACKTOP = sp;return ($9|0);
}
function _Directory_Enum($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 880|0;
$3 = sp + 872|0;
$4 = sp + 608|0;
$5 = sp;
(_Platform_ConvertString($5,$0)|0);
$6 = (_opendir($5)|0);
$7 = ($6|0)==(0|0);
$8 = (___errno_location()|0);
if ($7) {
$9 = HEAP32[$8>>2]|0;
$$0 = $9;
STACKTOP = sp;return ($$0|0);
}
HEAP32[$8>>2] = 0;
HEAP32[$3>>2] = $4;
$10 = ((($3)) + 4|0);
HEAP16[$10>>1] = 0;
$11 = ((($3)) + 6|0);
HEAP16[$11>>1] = 260;
$12 = (_readdir($6)|0);
$13 = ($12|0)==(0|0);
L5: do {
if (!($13)) {
$15 = $12;
while(1) {
HEAP16[$10>>1] = 0;
_String_Format1($3,34684,$0);
$14 = ((($15)) + 11|0);
$16 = HEAP8[$14>>0]|0;
$17 = ($16<<24>>24)==(46);
if ($17) {
$18 = ((($15)) + 12|0);
$19 = HEAP8[$18>>0]|0;
$20 = ($19<<24>>24)==(0);
if (!($20)) {
$23 = ((($15)) + 12|0);
$24 = HEAP8[$23>>0]|0;
$25 = ($24<<24>>24)==(46);
if ($25) {
$26 = ((($15)) + 13|0);
$27 = HEAP8[$26>>0]|0;
$28 = ($27<<24>>24)==(0);
if (!($28)) {
label = 10;
}
} else {
label = 10;
}
}
} else {
label = 10;
}
if ((label|0) == 10) {
label = 0;
$29 = (_String_CalcLen($14,65535)|0);
_String_AppendUtf8($3,$14,$29);
$30 = ((($15)) + 10|0);
$31 = HEAP8[$30>>0]|0;
$32 = ($31<<24>>24)==(4);
if ($32) {
$33 = (_Directory_Enum($3,$1,$2)|0);
$34 = ($33|0)==(0);
if (!($34)) {
break;
}
} else {
FUNCTION_TABLE_vii[$2 & 127]($3,$1);
}
$35 = (___errno_location()|0);
HEAP32[$35>>2] = 0;
}
$21 = (_readdir($6)|0);
$22 = ($21|0)==(0|0);
if ($22) {
break L5;
} else {
$15 = $21;
}
}
(_closedir($6)|0);
$$0 = $33;
STACKTOP = sp;return ($$0|0);
}
} while(0);
$36 = (___errno_location()|0);
$37 = HEAP32[$36>>2]|0;
(_closedir($6)|0);
$$0 = $37;
STACKTOP = sp;return ($$0|0);
}
function _File_Open($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_File_Do($0,$1,0)|0);
return ($2|0);
}
function _File_Do($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 608|0;
$vararg_buffer = sp + 600|0;
$3 = sp;
(_Platform_ConvertString($3,$1)|0);
HEAP32[$vararg_buffer>>2] = 420;
$4 = (_open($3,$2,$vararg_buffer)|0);
HEAP32[$0>>2] = $4;
$5 = ($4|0)==(-1);
if (!($5)) {
$8 = 0;
STACKTOP = sp;return ($8|0);
}
$6 = (___errno_location()|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7;
STACKTOP = sp;return ($8|0);
}
function _File_Create($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_File_Do($0,$1,578)|0);
return ($2|0);
}
function _File_Read($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_read($0,$1,$2)|0);
HEAP32[$3>>2] = $4;
$5 = ($4|0)==(-1);
if (!($5)) {
$8 = 0;
return ($8|0);
}
$6 = (___errno_location()|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7;
return ($8|0);
}
function _File_Write($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_write($0,$1,$2)|0);
HEAP32[$3>>2] = $4;
$5 = ($4|0)==(-1);
if (!($5)) {
$8 = 0;
return ($8|0);
}
$6 = (___errno_location()|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7;
return ($8|0);
}
function _File_Close($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_close($0)|0);
$2 = ($1|0)==(-1);
if ($2) {
$3 = (___errno_location()|0);
$4 = HEAP32[$3>>2]|0;
$6 = $4;
} else {
$6 = 0;
}
$5 = _emscripten_asm_const_i(1)|0;
return ($6|0);
}
function _File_Seek($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (34752 + ($2)|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$6 = (_lseek($0,$1,$5)|0);
$7 = ($6|0)==(-1);
if (!($7)) {
$10 = 0;
return ($10|0);
}
$8 = (___errno_location()|0);
$9 = HEAP32[$8>>2]|0;
$10 = $9;
return ($10|0);
}
function _File_Position($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_lseek($0,0,1)|0);
HEAP32[$1>>2] = $2;
$3 = ($2|0)==(-1);
if (!($3)) {
$6 = 0;
return ($6|0);
}
$4 = (___errno_location()|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5;
return ($6|0);
}
function _File_Length($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp;
$3 = (_fstat($0,$2)|0);
$4 = ($3|0)==(-1);
if ($4) {
HEAP32[$1>>2] = -1;
$5 = (___errno_location()|0);
$6 = HEAP32[$5>>2]|0;
$$0 = $6;
STACKTOP = sp;return ($$0|0);
} else {
$7 = ((($2)) + 36|0);
$8 = HEAP32[$7>>2]|0;
HEAP32[$1>>2] = $8;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _Thread_Sleep($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Thread_Start($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
FUNCTION_TABLE_v[$0 & 127]();
return (0|0);
}
function _Mutex_Create() {
var label = 0, sp = 0;
sp = STACKTOP;
return (0|0);
}
function _Mutex_Free($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Mutex_Lock($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Mutex_Unlock($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Waitable_Create() {
var label = 0, sp = 0;
sp = STACKTOP;
return (0|0);
}
function _Waitable_Free($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Waitable_Signal($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Socket_Create($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_socket(2,1,6)|0);
HEAP32[$0>>2] = $1;
$2 = ($1|0)==(-1);
if (!($2)) {
return;
}
$3 = (___errno_location()|0);
$4 = HEAP32[$3>>2]|0;
_Logger_Abort2($4,34755);
return;
}
function _Socket_Available($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Socket_ioctl($0,$1)|0);
return ($2|0);
}
function _Socket_ioctl($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer>>2] = $1;
$2 = (_ioctl($0,21531,$vararg_buffer)|0);
STACKTOP = sp;return ($2|0);
}
function _Socket_SetBlocking($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return -857812990;
}
function _Socket_GetError($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
HEAP32[$2>>2] = 4;
$3 = (_getsockopt($0,1,4,$1,$2)|0);
STACKTOP = sp;return ($3|0);
}
function _Socket_Connect($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
HEAP16[$3>>1] = 2;
$4 = ((($3)) + 2|0);
$5 = $2&65535;
_Stream_SetU16_BE($4,$5);
$6 = ((($3)) + 4|0);
(_Utils_ParseIP($1,$6)|0);
$7 = (_connect($0,$3,16)|0);
$8 = ($7|0)==(-1);
if (!($8)) {
$11 = 0;
STACKTOP = sp;return ($11|0);
}
$9 = (___errno_location()|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10;
STACKTOP = sp;return ($11|0);
}
function _Socket_Read($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$01619 = 0, $$01718 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
HEAP32[$3>>2] = 0;
$5 = ($2|0)==(0);
if ($5) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$$01619 = $2;$$01718 = $1;
while(1) {
$6 = (_Socket_Available($0,$4)|0);
$7 = ($6|0)==(0);
$8 = HEAP32[$4>>2]|0;
$9 = ($8|0)!=(0);
$or$cond = $7 & $9;
if (!($or$cond)) {
$$0 = 0;
label = 7;
break;
}
$10 = (_recv($0,$$01718,$$01619,0)|0);
$11 = ($10|0)==(-1);
if ($11) {
label = 5;
break;
}
$14 = HEAP32[$3>>2]|0;
$15 = (($14) + ($10))|0;
HEAP32[$3>>2] = $15;
$16 = (($$01718) + ($10)|0);
$17 = (($$01619) - ($10))|0;
$18 = ($17|0)==(0);
if ($18) {
$$0 = 0;
label = 7;
break;
} else {
$$01619 = $17;$$01718 = $16;
}
}
if ((label|0) == 5) {
$12 = (___errno_location()|0);
$13 = HEAP32[$12>>2]|0;
$$0 = $13;
STACKTOP = sp;return ($$0|0);
}
else if ((label|0) == 7) {
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _Socket_Write($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_send($0,$1,$2,0)|0);
$5 = ($4|0)==(-1);
if ($5) {
HEAP32[$3>>2] = 0;
$6 = (___errno_location()|0);
$7 = HEAP32[$6>>2]|0;
$$0 = $7;
return ($$0|0);
} else {
HEAP32[$3>>2] = $4;
$$0 = 0;
return ($$0|0);
}
return (0)|0;
}
function _Socket_Close($0) {
$0 = $0|0;
var $$1 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_close($0)|0);
$2 = ($1|0)==(-1);
if (!($2)) {
$$1 = 0;
return ($$1|0);
}
$3 = (___errno_location()|0);
$4 = HEAP32[$3>>2]|0;
$$1 = $4;
return ($$1|0);
}
function _Socket_Poll($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
HEAP32[$3>>2] = $0;
$4 = ($1|0)==(0);
$5 = $4 ? 1 : 4;
$6 = ((($3)) + 4|0);
HEAP16[$6>>1] = $5;
$7 = (_poll($3,1,0)|0);
$8 = ($7|0)==(-1);
if ($8) {
HEAP8[$2>>0] = 0;
$9 = (___errno_location()|0);
$10 = HEAP32[$9>>2]|0;
$$0 = $10;
STACKTOP = sp;return ($$0|0);
} else {
$11 = $4 ? 17 : 4;
$12 = ((($3)) + 6|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13 << 16 >> 16;
$15 = $11 & $14;
$16 = ($15|0)!=(0);
$17 = $16&1;
HEAP8[$2>>0] = $17;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _Process_Exit($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_exit(($0|0));
// unreachable;
}
function _Process_StartOpen($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 608|0;
$1 = sp;
(_Platform_ConvertString($1,$0)|0);
$2 = _emscripten_asm_const_ii(2,($1|0))|0;
STACKTOP = sp;return;
}
function _Platform_DescribeError($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 608|0;
$2 = sp;
$3 = (_strerror_r($0,$2,600)|0);
$4 = ($3|0)==(-1);
if ($4) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$5 = (_String_CalcLen($2,600)|0);
_String_AppendUtf8($1,$2,$5);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _Platform_Init() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = _emscripten_asm_const_i(3)|0;
return;
}
function _Platform_GetCommandLineArgs($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$014 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = (($0) + -1)|0;
$5 = ((($1)) + 4|0);
$6 = ($4|0)<(5);
$7 = $6 ? $4 : 5;
$8 = ($0|0)>(1);
if (!($8)) {
STACKTOP = sp;return ($7|0);
}
$$014 = 0;
while(1) {
$9 = (($2) + ($$014<<3)|0);
$10 = (($5) + ($$014<<2)|0);
$11 = HEAP32[$10>>2]|0;
_String_FromReadonly($3,$11);
$12 = $3;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (($12) + 4)|0;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = $9;
$19 = $18;
HEAP32[$19>>2] = $14;
$20 = (($18) + 4)|0;
$21 = $20;
HEAP32[$21>>2] = $17;
$22 = (($$014) + 1)|0;
$23 = ($22|0)<($7|0);
if ($23) {
$$014 = $22;
} else {
break;
}
}
STACKTOP = sp;return ($7|0);
}
function _Platform_SetDefaultCurrentDirectory($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_chdir(34865)|0);
$3 = ($2|0)==(-1);
if (!($3)) {
$6 = 0;
return ($6|0);
}
$4 = (___errno_location()|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5;
return ($6|0);
}
function _main($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Platform_Init();
_Window_Init();
$2 = (_Platform_SetDefaultCurrentDirectory($0,$1)|0);
$3 = ($2|0)==(0);
if (!($3)) {
_Logger_Warn($2,34877);
}
_Platform_LogConst(34903);
HEAP32[(1384588)>>2] = 496240;
HEAP16[(1384592)>>1] = 0;
HEAP16[(1384594)>>1] = 64;
(_Utils_EnsureDirectory(34937)|0);
(_Utils_EnsureDirectory(34942)|0);
(_Utils_EnsureDirectory(34951)|0);
(_Utils_EnsureDirectory(34964)|0);
_Options_Load();
$4 = (_Program_Run($0,$1)|0);
return ($4|0);
}
function _Program_Run($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$2 = sp;
$3 = sp + 44|0;
$4 = sp + 40|0;
$5 = (_Platform_GetCommandLineArgs($0,$1,$2)|0);
switch ($5|0) {
case 0: {
_String_AppendConst(11488,34972);
_RunGame();
_Process_Exit(0);
// unreachable;
break;
}
case 1: {
_String_Copy(11488,$2);
_RunGame();
_Process_Exit(0);
// unreachable;
break;
}
default: {
$6 = ($5|0)<(4);
if ($6) {
_ExitMissingArgs($5,$2);
STACKTOP = sp;return 1;
}
_String_Copy(11488,$2);
$7 = ((($2)) + 8|0);
_String_Copy(11496,$7);
$8 = ((($2)) + 16|0);
_String_Copy((1384588),$8);
$9 = (_Utils_ParseIP($8,$3)|0);
$10 = ($9<<24>>24)==(0);
if ($10) {
_ExitInvalidArg(34981,$8);
STACKTOP = sp;return 1;
}
$11 = ((($2)) + 24|0);
$12 = (_Convert_ParseUInt16($11,$4)|0);
$13 = ($12<<24>>24)==(0);
if ($13) {
_ExitInvalidArg(34992,$11);
STACKTOP = sp;return 1;
} else {
$14 = HEAP16[$4>>1]|0;
$15 = $14&65535;
HEAP32[(1384596)>>2] = $15;
_RunGame();
_Process_Exit(0);
// unreachable;
}
}
}
return (0)|0;
}
function _RunGame() {
var $$0 = 0, $$08 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$0 = sp + 64|0;
$1 = sp;
$2 = HEAP32[352047]|0;
$3 = (_Options_GetInt(35055,0,$2,0)|0);
$4 = HEAP32[352048]|0;
$5 = (_Options_GetInt(35068,0,$4,0)|0);
$6 = ($3|0)==(0);
$7 = ($5|0)==(0);
$or$cond = $6 | $7;
if ($or$cond) {
$8 = HEAP32[352047]|0;
$9 = ($8|0)<(854);
$spec$select = $9 ? 640 : 854;
$$0 = 480;$$08 = $spec$select;
} else {
$$0 = $5;$$08 = $3;
}
HEAP32[$0>>2] = $1;
$10 = ((($0)) + 4|0);
HEAP16[$10>>1] = 0;
$11 = ((($0)) + 6|0);
HEAP16[$11>>1] = 64;
_String_Format2($0,35082,35090,11488);
_Game_Run($$08,$$0,$0);
STACKTOP = sp;return;
}
function _ExitMissingArgs($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$05 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$2 = sp + 256|0;
$3 = sp;
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 256;
_String_AppendConst($2,35029);
$6 = ($0|0)>(0);
if ($6) {
$$05 = 0;
while(1) {
$7 = (($1) + ($$05<<3)|0);
_String_AppendString($2,$7);
_String_Append($2,32);
$8 = (($$05) + 1)|0;
$exitcond = ($8|0)==($0|0);
if ($exitcond) {
break;
} else {
$$05 = $8;
}
}
}
HEAP32[2938] = 35013;
_Logger_DialogWarn($2);
_Process_Exit(1);
// unreachable;
}
function _ExitInvalidArg($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$2 = sp + 256|0;
$3 = sp;
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 256;
_String_Format2($2,35005,$0,$1);
HEAP32[2938] = 35013;
_Logger_DialogWarn($2);
_Process_Exit(1);
// unreachable;
}
function _Protocol_RemoveEntity($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&255;
$2 = (1241124 + ($1<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if ($4) {
return;
}
$5 = ($0<<24>>24)==(-1);
if (!($5)) {
_Entities_Remove($0);
}
$6 = (3)?($1 >>> 3):($1);
$7 = (496592 + ($6)|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = $1 & 7;
$11 = 1 << $10;
$12 = $11 & $9;
$13 = ($12|0)==(0);
if ($13) {
return;
}
_TabList_Remove($0);
$14 = $11 ^ 255;
$15 = HEAP8[$7>>0]|0;
$16 = $15&255;
$17 = $14 & $16;
$18 = $17&255;
HEAP8[$7>>0] = $18;
return;
}
function _Classic_SendChat($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp;
HEAP8[$2>>0] = 13;
$3 = HEAP8[(1384584)>>0]|0;
$4 = ($3<<24>>24)==(0);
$5 = $4 ? -1 : $1;
$6 = ((($2)) + 1|0);
HEAP8[$6>>0] = $5;
$7 = ((($2)) + 2|0);
_Protocol_WriteString($7,$0);
$8 = HEAP32[(1384548)>>2]|0;
FUNCTION_TABLE_vii[$8 & 127]($2,66);
STACKTOP = sp;return;
}
function _Protocol_WriteString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa23 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, $spec$select17 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3&65535)<(64);
$spec$select17 = $4 ? $3 : 64;
$5 = $spec$select17&65535;
$6 = ($spec$select17<<16>>16)==(0);
if ($6) {
$$0$lcssa23 = 0;
} else {
$$019 = 0;
while(1) {
$7 = HEAP32[$1>>2]|0;
$8 = (($7) + ($$019)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(38);
$spec$store$select = $10 ? 37 : $9;
$11 = (($0) + ($$019)|0);
HEAP8[$11>>0] = $spec$store$select;
$12 = (($$019) + 1)|0;
$13 = ($12>>>0)<($5>>>0);
if ($13) {
$$019 = $12;
} else {
break;
}
}
if ($4) {
$$0$lcssa23 = $5;
} else {
return;
}
}
$scevgep = (($0) + ($$0$lcssa23)|0);
$14 = (64 - ($$0$lcssa23))|0;
_memset(($scevgep|0),32,($14|0))|0;
return;
}
function _Classic_WritePosition($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $$0 = 0, $$pn = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1384576)>>2]|0;
$4 = ((($3)) + 1|0);
HEAP8[$3>>0] = 8;
$5 = HEAP8[1408277]|0;
$6 = ($5<<24>>24)==(0);
if ($6) {
$14 = 255;
} else {
$7 = HEAP32[(1268184)>>2]|0;
$8 = HEAP32[(1268180)>>2]|0;
$9 = (($8) + ($7))|0;
$10 = (1266480 + ($9<<1)|0);
$11 = HEAP16[$10>>1]|0;
$14 = $11;
}
$12 = HEAP8[1408278]|0;
$13 = ($12<<24>>24)==(0);
if ($13) {
$15 = $14&255;
HEAP8[$4>>0] = $15;
$$pn = $3;
} else {
_Stream_SetU16_BE($4,$14);
$$pn = $4;
}
$$0 = ((($$pn)) + 2|0);
$16 = +HEAPF32[$0>>2];
$17 = $16 * 32.0;
$18 = (~~(($17)));
$19 = ((($0)) + 4|0);
$20 = +HEAPF32[$19>>2];
$21 = $20 * 32.0;
$22 = (~~(($21)));
$23 = (($22) + 51)|0;
$24 = ((($0)) + 8|0);
$25 = +HEAPF32[$24>>2];
$26 = $25 * 32.0;
$27 = (~~(($26)));
$28 = HEAP8[1408279]|0;
$29 = ($28<<24>>24)==(0);
if ($29) {
$32 = $18&65535;
_Stream_SetU16_BE($$0,$32);
$33 = ((($$pn)) + 4|0);
$34 = $23&65535;
_Stream_SetU16_BE($33,$34);
$35 = ((($$pn)) + 6|0);
$36 = $27&65535;
_Stream_SetU16_BE($35,$36);
$$sink = 8;
} else {
_Stream_SetU32_BE($$0,$18);
$30 = ((($$pn)) + 6|0);
_Stream_SetU32_BE($30,$23);
$31 = ((($$pn)) + 10|0);
_Stream_SetU32_BE($31,$27);
$$sink = 14;
}
$37 = (($$pn) + ($$sink)|0);
$38 = $1 * 256.0;
$39 = $38 / 360.0;
$40 = (~~(($39))&255);
$41 = ((($37)) + 1|0);
HEAP8[$37>>0] = $40;
$42 = $2 * 256.0;
$43 = $42 / 360.0;
$44 = (~~(($43))&255);
$45 = ((($37)) + 2|0);
HEAP8[$41>>0] = $44;
HEAP32[(1384576)>>2] = $45;
return;
}
function _Classic_WriteSetBlock($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = HEAP32[(1384576)>>2]|0;
$6 = ((($5)) + 1|0);
HEAP8[$5>>0] = 5;
$7 = $0&65535;
_Stream_SetU16_BE($6,$7);
$8 = ((($5)) + 3|0);
$9 = $1&65535;
_Stream_SetU16_BE($8,$9);
$10 = ((($5)) + 5|0);
$11 = $2&65535;
_Stream_SetU16_BE($10,$11);
$12 = ((($5)) + 7|0);
$13 = ((($5)) + 8|0);
HEAP8[$12>>0] = $3;
$14 = HEAP8[1408278]|0;
$15 = ($14<<24>>24)==(0);
if ($15) {
$17 = $4&255;
$18 = ((($5)) + 9|0);
HEAP8[$13>>0] = $17;
$$0 = $18;
HEAP32[(1384576)>>2] = $$0;
return;
} else {
_Stream_SetU16_BE($13,$4);
$16 = ((($5)) + 10|0);
$$0 = $16;
HEAP32[(1384576)>>2] = $$0;
return;
}
}
function _Classic_SendLogin($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$2 = sp;
HEAP8[$2>>0] = 0;
$3 = ((($2)) + 1|0);
HEAP8[$3>>0] = 7;
$4 = ((($2)) + 2|0);
_Protocol_WriteString($4,$0);
$5 = ((($2)) + 66|0);
_Protocol_WriteString($5,$1);
$6 = HEAP8[1408235]|0;
$7 = ($6<<24>>24)==(0);
$8 = $7 ? 0 : 66;
$9 = ((($2)) + 130|0);
HEAP8[$9>>0] = $8;
$10 = HEAP32[(1384548)>>2]|0;
FUNCTION_TABLE_vii[$10 & 127]($2,131);
STACKTOP = sp;return;
}
function _CPE_SendPlayerClick($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
HEAP8[$4>>0] = 34;
$5 = $0&255;
$6 = ((($4)) + 1|0);
HEAP8[$6>>0] = $5;
$7 = ($1<<24>>24)==(0);
$8 = $7&1;
$9 = ((($4)) + 2|0);
HEAP8[$9>>0] = $8;
$10 = ((($4)) + 3|0);
$11 = +HEAPF32[(1242172)>>2];
$12 = $11 * 65536.0;
$13 = $12 / 360.0;
$14 = (~~(($13)));
$15 = $14&65535;
_Stream_SetU16_BE($10,$15);
$16 = ((($4)) + 5|0);
$17 = +HEAPF32[(1242168)>>2];
$18 = $17 * 65536.0;
$19 = $18 / 360.0;
$20 = (~~(($19)));
$21 = $20&65535;
_Stream_SetU16_BE($16,$21);
$22 = ((($4)) + 7|0);
HEAP8[$22>>0] = $2;
$23 = ((($4)) + 8|0);
$24 = ((($3)) + 36|0);
$25 = HEAP32[$24>>2]|0;
$26 = $25&65535;
_Stream_SetU16_BE($23,$26);
$27 = ((($4)) + 10|0);
$28 = ((($3)) + 40|0);
$29 = HEAP32[$28>>2]|0;
$30 = $29&65535;
_Stream_SetU16_BE($27,$30);
$31 = ((($4)) + 12|0);
$32 = ((($3)) + 44|0);
$33 = HEAP32[$32>>2]|0;
$34 = $33&65535;
_Stream_SetU16_BE($31,$34);
$35 = ((($4)) + 14|0);
HEAP8[$35>>0] = -1;
$36 = ((($3)) + 61|0);
$37 = HEAP8[$36>>0]|0;
switch ($37<<24>>24) {
case 1: {
$$sink = 0;
break;
}
case 0: {
$$sink = 1;
break;
}
case 5: {
$$sink = 2;
break;
}
case 4: {
$$sink = 3;
break;
}
case 3: {
$$sink = 4;
break;
}
case 2: {
$$sink = 5;
break;
}
default: {
$38 = HEAP32[(1384548)>>2]|0;
FUNCTION_TABLE_vii[$38 & 127]($4,15);
STACKTOP = sp;return;
}
}
HEAP8[$35>>0] = $$sink;
$38 = HEAP32[(1384548)>>2]|0;
FUNCTION_TABLE_vii[$38 & 127]($4,15);
STACKTOP = sp;return;
}
function _Protocol_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
_Classic_Reset();
_CPE_Reset();
_BlockDefs_Reset();
_WoM_Reset();
return;
}
function _Classic_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408288] = 0;
HEAP8[1408286] = 0;
HEAP32[124100] = 344;
HEAP16[248152] = 131;
HEAP32[(496404)>>2] = 345;
HEAP16[(496306)>>1] = 1;
HEAP32[(496408)>>2] = 346;
HEAP16[(496308)>>1] = 1;
HEAP32[(496412)>>2] = 347;
HEAP16[(496310)>>1] = 1028;
HEAP32[(496416)>>2] = 348;
HEAP16[(496312)>>1] = 7;
HEAP32[(496424)>>2] = 349;
HEAP16[(496316)>>1] = 8;
HEAP32[(496428)>>2] = 350;
HEAP16[(496318)>>1] = 74;
HEAP32[(496432)>>2] = 351;
HEAP16[(496320)>>1] = 10;
HEAP32[(496436)>>2] = 352;
HEAP16[(496322)>>1] = 7;
HEAP32[(496440)>>2] = 353;
HEAP16[(496324)>>1] = 5;
HEAP32[(496444)>>2] = 354;
HEAP16[(496326)>>1] = 4;
HEAP32[(496448)>>2] = 355;
HEAP16[(496328)>>1] = 2;
HEAP32[(496452)>>2] = 356;
HEAP16[(496330)>>1] = 66;
HEAP32[(496456)>>2] = 357;
HEAP16[(496332)>>1] = 65;
HEAP32[(496460)>>2] = 358;
HEAP16[(496334)>>1] = 2;
return;
}
function _CPE_Reset() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[323042] = 0;
HEAP32[323043] = 0;
HEAP8[1408277] = 0;
HEAP8[1408283] = 0;
HEAP32[4308] = 2;
HEAP32[4307] = 2;
HEAP8[1408276] = 0;
HEAP8[1408279] = 0;
HEAP8[1408284] = 0;
HEAP8[1408282] = 0;
HEAP8[1408285] = 0;
HEAP8[1408278] = 0;
HEAP8[1408231] = 0;
$0 = HEAP8[1408235]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
HEAP32[(496464)>>2] = 359;
HEAP16[(496336)>>1] = 67;
HEAP32[(496468)>>2] = 360;
HEAP16[(496338)>>1] = 69;
HEAP32[(496472)>>2] = 361;
HEAP16[(496340)>>1] = 3;
HEAP32[(496476)>>2] = 362;
HEAP16[(496342)>>1] = 2;
HEAP32[(496480)>>2] = 363;
HEAP16[(496344)>>1] = 3;
HEAP32[(496484)>>2] = 364;
HEAP16[(496346)>>1] = 134;
HEAP32[(496488)>>2] = 365;
HEAP16[(496348)>>1] = 196;
HEAP32[(496492)>>2] = 366;
HEAP16[(496350)>>1] = 130;
HEAP32[(496496)>>2] = 367;
HEAP16[(496352)>>1] = 3;
HEAP32[(496500)>>2] = 368;
HEAP16[(496354)>>1] = 8;
HEAP32[(496504)>>2] = 369;
HEAP16[(496356)>>1] = 86;
HEAP32[(496508)>>2] = 370;
HEAP16[(496358)>>1] = 2;
HEAP32[(496512)>>2] = 371;
HEAP16[(496360)>>1] = 4;
HEAP32[(496516)>>2] = 372;
HEAP16[(496362)>>1] = 66;
HEAP32[(496520)>>2] = 373;
HEAP16[(496364)>>1] = 69;
HEAP32[(496524)>>2] = 374;
HEAP16[(496366)>>1] = 2;
HEAP32[(496528)>>2] = 375;
HEAP16[(496368)>>1] = 8;
HEAP32[(496532)>>2] = 376;
HEAP16[(496370)>>1] = 138;
HEAP32[(496552)>>2] = 377;
HEAP16[(496380)>>1] = 1282;
HEAP32[(496556)>>2] = 378;
HEAP16[(496382)>>1] = 6;
HEAP32[(496560)>>2] = 379;
HEAP16[(496384)>>1] = 65;
HEAP32[(496564)>>2] = 380;
HEAP16[(496386)>>1] = 6;
HEAP32[(496568)>>2] = 381;
HEAP16[(496388)>>1] = 7;
HEAP32[(496572)>>2] = 382;
HEAP16[(496390)>>1] = 4;
HEAP32[(496576)>>2] = 383;
HEAP16[(496392)>>1] = 3;
HEAP32[(496580)>>2] = 384;
HEAP16[(496394)>>1] = 3;
HEAP32[(496584)>>2] = 385;
HEAP16[(496396)>>1] = 9;
HEAP32[(496588)>>2] = 386;
HEAP16[(496398)>>1] = 16;
return;
}
function _BlockDefs_Reset() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408235]|0;
$1 = ($0<<24>>24)!=(0);
$2 = HEAP8[1408234]|0;
$3 = ($2<<24>>24)!=(0);
$or$cond = $1 & $3;
if (!($or$cond)) {
return;
}
HEAP32[(496540)>>2] = 387;
HEAP16[(496374)>>1] = 80;
HEAP32[(496544)>>2] = 388;
HEAP16[(496376)>>1] = 2;
HEAP32[(496548)>>2] = 389;
HEAP16[(496378)>>1] = 85;
return;
}
function _WoM_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[323041] = 0;
_WoM_UpdateIdentifier();
HEAP8[1408280] = 0;
HEAP8[1408281] = 0;
return;
}
function _WoM_UpdateIdentifier() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP16[(17224)>>1] = 0;
_String_Format1(17220,35101,1292164);
return;
}
function _BlockDefs_DefineBlock($0) {
$0 = $0|0;
var $$off = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
HEAP32[$1>>2] = $0;
$2 = (_BlockDefs_DefineBlockCommonStart($1,0)|0);
$3 = HEAP32[$1>>2]|0;
$4 = ((($3)) + 1|0);
HEAP32[$1>>2] = $4;
$5 = HEAP8[$3>>0]|0;
$$off = (($5) + -1)<<24>>24;
$6 = ($$off&255)<(16);
if ($6) {
$7 = $2&65535;
$8 = (((597252 + (($7*12)|0)|0)) + 4|0);
$9 = (+($5&255));
$10 = $9 * 0.0625;
HEAPF32[$8>>2] = $10;
}
_BlockDefs_DefineBlockCommonEnd($4,$5,$2);
$11 = $2&65535;
$12 = (583428 + ($11)|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(5);
if (!($14)) {
STACKTOP = sp;return;
}
_Block_RecalculateBB($2);
STACKTOP = sp;return;
}
function _BlockDefs_UndefineBlock($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408278]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
$4 = HEAP8[$0>>0]|0;
$5 = $4&255;
$$0 = $5;
} else {
$3 = (_Stream_GetU16_BE($0)|0);
$$0 = $3;
}
$6 = $$0&65535;
$7 = (570372 + ($6)|0);
$8 = HEAP8[$7>>0]|0;
_Block_ResetProps($$0);
_BlockDefs_OnBlockUpdated($$0,$8);
_Block_UpdateCulling($$0);
_Inventory_Remove($$0);
$9 = ($$0&65535)<(66);
if (!($9)) {
_Block_SetCustomDefined($$0,0);
_Event_RaiseVoid((1253416));
return;
}
_Inventory_AddDefault($$0);
_Block_SetCustomDefined($$0,0);
_Event_RaiseVoid((1253416));
return;
}
function _BlockDefs_DefineBlockExt($0) {
$0 = $0|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$09$0$$sroa_idx = 0, $$sroa$4$0$$sroa_idx5 = 0, $$sroa$411$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx7 = 0, $$sroa$514$0$$sroa_idx15 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0.0;
var $22 = 0.0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
HEAP32[$1>>2] = $0;
$2 = HEAP32[4307]|0;
$3 = ($2|0)>(1);
$4 = $3&1;
$5 = (_BlockDefs_DefineBlockCommonStart($1,$4)|0);
$6 = HEAP32[$1>>2]|0;
$7 = ((($6)) + 1|0);
$8 = HEAP8[$6>>0]|0;
$9 = (+($8<<24>>24));
$10 = $9 * 0.0625;
$11 = ((($6)) + 2|0);
$12 = HEAP8[$7>>0]|0;
$13 = (+($12<<24>>24));
$14 = $13 * 0.0625;
$15 = ((($6)) + 3|0);
$16 = HEAP8[$11>>0]|0;
$17 = (+($16<<24>>24));
$18 = $17 * 0.0625;
$19 = ((($6)) + 4|0);
$20 = HEAP8[$15>>0]|0;
$21 = (+($20<<24>>24));
$22 = $21 * 0.0625;
$23 = ((($6)) + 5|0);
$24 = HEAP8[$19>>0]|0;
$25 = (+($24<<24>>24));
$26 = $25 * 0.0625;
$27 = ((($6)) + 6|0);
$28 = HEAP8[$23>>0]|0;
$29 = (+($28<<24>>24));
$30 = $29 * 0.0625;
$31 = $5&65535;
$$sroa$09$0$$sroa_idx = (588036 + (($31*12)|0)|0);
HEAPF32[$$sroa$09$0$$sroa_idx>>2] = $10;
$$sroa$411$0$$sroa_idx12 = (((588036 + (($31*12)|0)|0)) + 4|0);
HEAPF32[$$sroa$411$0$$sroa_idx12>>2] = $14;
$$sroa$514$0$$sroa_idx15 = (((588036 + (($31*12)|0)|0)) + 8|0);
HEAPF32[$$sroa$514$0$$sroa_idx15>>2] = $18;
$$sroa$0$0$$sroa_idx = (597252 + (($31*12)|0)|0);
HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $22;
$$sroa$4$0$$sroa_idx5 = (((597252 + (($31*12)|0)|0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx5>>2] = $26;
$$sroa$5$0$$sroa_idx7 = (((597252 + (($31*12)|0)|0)) + 8|0);
HEAPF32[$$sroa$5$0$$sroa_idx7>>2] = $30;
_BlockDefs_DefineBlockCommonEnd($27,1,$5);
STACKTOP = sp;return;
}
function _BlockDefs_DefineBlockCommonStart($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0;
var $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = sp + 8|0;
$4 = HEAP32[$0>>2]|0;
HEAP32[$3>>2] = $4;
$5 = HEAP8[1408278]|0;
$6 = ($5<<24>>24)==(0);
if ($6) {
$10 = ((($4)) + 1|0);
HEAP32[$3>>2] = $10;
$11 = HEAP8[$4>>0]|0;
$12 = $11&255;
$$0 = $12;
} else {
$7 = (_Stream_GetU16_BE($4)|0);
$8 = HEAP32[$3>>2]|0;
$9 = ((($8)) + 2|0);
HEAP32[$3>>2] = $9;
$$0 = $7;
}
$13 = $$0&65535;
$14 = (570372 + ($13)|0);
$15 = HEAP8[$14>>0]|0;
_Block_ResetProps($$0);
$16 = HEAP32[$3>>2]|0;
_Protocol_UNSAFE_GetString($2,$16);
$17 = HEAP32[$3>>2]|0;
$18 = ((($17)) + 64|0);
HEAP32[$3>>2] = $18;
_Block_SetName($$0,$2);
$19 = HEAP32[$3>>2]|0;
$20 = ((($19)) + 1|0);
HEAP32[$3>>2] = $20;
$21 = HEAP8[$19>>0]|0;
_Block_SetCollide($$0,$21);
$22 = HEAP32[$3>>2]|0;
$23 = ((($22)) + 1|0);
HEAP32[$3>>2] = $23;
$24 = HEAP8[$22>>0]|0;
$25 = $24&255;
$26 = (($25) + -128)|0;
$27 = (+($26|0));
$28 = $27 * 0.015625;
$29 = $28;
$30 = $29 * 0.69314718055994495;
$31 = (+_Math_Exp($30));
$32 = $31;
$33 = (579588 + ($13<<2)|0);
HEAPF32[$33>>2] = $32;
$34 = (_BlockDefs_Tex($3)|0);
$35 = ($13*6)|0;
$36 = (($35) + 5)|0;
$37 = (624900 + ($36<<1)|0);
HEAP16[$37>>1] = $34;
$38 = ($1<<24>>24)==(0);
$39 = (_BlockDefs_Tex($3)|0);
if ($38) {
_Block_SetSide($39,$$0);
} else {
$40 = (624900 + ($35<<1)|0);
HEAP16[$40>>1] = $39;
$41 = (_BlockDefs_Tex($3)|0);
$42 = $35 | 1;
$43 = (624900 + ($42<<1)|0);
HEAP16[$43>>1] = $41;
$44 = (_BlockDefs_Tex($3)|0);
$45 = (($35) + 2)|0;
$46 = (624900 + ($45<<1)|0);
HEAP16[$46>>1] = $44;
$47 = (_BlockDefs_Tex($3)|0);
$48 = (($35) + 3)|0;
$49 = (624900 + ($48<<1)|0);
HEAP16[$49>>1] = $47;
}
$50 = (_BlockDefs_Tex($3)|0);
$51 = (($35) + 4)|0;
$52 = (624900 + ($51<<1)|0);
HEAP16[$52>>1] = $50;
$53 = HEAP32[$3>>2]|0;
$54 = ((($53)) + 1|0);
HEAP32[$3>>2] = $54;
$55 = HEAP8[$53>>0]|0;
$56 = ($55<<24>>24)==(0);
$57 = $56&1;
HEAP8[$14>>0] = $57;
_BlockDefs_OnBlockUpdated($$0,$15);
$58 = HEAP32[$3>>2]|0;
$59 = ((($58)) + 1|0);
HEAP32[$3>>2] = $59;
$60 = HEAP8[$58>>0]|0;
$61 = (584964 + ($13)|0);
HEAP8[$61>>0] = $60;
$62 = (584196 + ($13)|0);
HEAP8[$62>>0] = $60;
$63 = ($60<<24>>24)==(6);
if (!($63)) {
$64 = ((($58)) + 2|0);
HEAP32[$3>>2] = $64;
$65 = HEAP8[$59>>0]|0;
$66 = ($65<<24>>24)!=(0);
$67 = $66&1;
$68 = (571140 + ($13)|0);
HEAP8[$68>>0] = $67;
$69 = HEAP32[$3>>2]|0;
HEAP32[$0>>2] = $69;
STACKTOP = sp;return ($$0|0);
}
HEAP8[$61>>0] = 4;
$64 = ((($58)) + 2|0);
HEAP32[$3>>2] = $64;
$65 = HEAP8[$59>>0]|0;
$66 = ($65<<24>>24)!=(0);
$67 = $66&1;
$68 = (571140 + ($13)|0);
HEAP8[$68>>0] = $67;
$69 = HEAP32[$3>>2]|0;
HEAP32[$0>>2] = $69;
STACKTOP = sp;return ($$0|0);
}
function _BlockDefs_DefineBlockCommonEnd($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP8[$0>>0]|0;
$4 = ($1<<24>>24)==(0);
if ($4) {
$5 = $2&65535;
$6 = (587268 + ($5)|0);
HEAP8[$6>>0] = $3;
$$0 = 5;
} else {
$$0 = $3;
}
$7 = $2&65535;
$8 = (583428 + ($7)|0);
HEAP8[$8>>0] = $$0;
$9 = ((($0)) + 1|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(0);
$12 = $10&255;
$13 = (($12) + 1)|0;
$14 = (+($13|0));
$15 = $14 * 0.0078125;
$spec$select = $11 ? 0.0 : $15;
$16 = (574980 + ($7<<2)|0);
HEAPF32[$16>>2] = $spec$select;
$17 = ((($0)) + 2|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18&255;
$20 = ((($0)) + 3|0);
$21 = HEAP8[$20>>0]|0;
$22 = $21&255;
$23 = $22 << 8;
$24 = ((($0)) + 4|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25&255;
$27 = $26 << 16;
$28 = $23 | $19;
$29 = $28 | $27;
$30 = $29 | -16777216;
$31 = (571908 + ($7<<2)|0);
HEAP32[$31>>2] = $30;
_Block_DefineCustom($2);
return;
}
function _Protocol_UNSAFE_GetString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$01216 = 0, $$2 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$01216 = 63;
L1: while(1) {
$2 = (($1) + ($$01216)|0);
$3 = HEAP8[$2>>0]|0;
switch ($3<<24>>24) {
case 32: case 0: {
break;
}
default: {
label = 3;
break L1;
}
}
$5 = (($$01216) + -1)|0;
$6 = ($$01216|0)==(0);
if ($6) {
$$2 = 0;
break;
} else {
$$01216 = $5;
}
}
if ((label|0) == 3) {
$4 = (($$01216) + 1)|0;
$$2 = $4;
}
_String_Init_1307($0,$1,$$2);
return;
}
function _BlockDefs_Tex($0) {
$0 = $0|0;
var $$0 = 0, $$08 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = HEAP8[1408282]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
$4 = ((($1)) + 1|0);
$5 = HEAP8[$1>>0]|0;
$6 = $5&255;
$$0 = $4;$$08 = $6;
HEAP32[$0>>2] = $$0;
return ($$08|0);
} else {
$7 = (_Stream_GetU16_BE($1)|0);
$8 = $7 & 511;
$9 = ((($1)) + 2|0);
$$0 = $9;$$08 = $8;
HEAP32[$0>>2] = $$0;
return ($$08|0);
}
return (0)|0;
}
function _BlockDefs_OnBlockUpdated($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[351863]|0;
$3 = ($2|0)==(0|0);
if ($3) {
return;
}
$4 = $0&65535;
$5 = (570372 + ($4)|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==($1<<24>>24);
if ($7) {
return;
}
_Lighting_Refresh();
return;
}
function _String_Init_1307($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $2&65535;
HEAP32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP16[$$sroa$4$0$$sroa_idx2>>1] = $3;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 6|0);
HEAP16[$$sroa$5$0$$sroa_idx4>>1] = 64;
return;
}
function _CPE_ExtInfo($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Protocol_UNSAFE_GetString($1,$0);
$2 = (_String_CaselessStarts($1,17236)|0);
$3 = $2&255;
HEAP8[1408276] = $3;
_Chat_Add1(35617,$1);
$4 = ((($0)) + 64|0);
$5 = (_Stream_GetU16_BE($4)|0);
$6 = $5&65535;
$7 = HEAP32[323042]|0;
$8 = (($7) + ($6))|0;
HEAP32[323042] = $8;
_CPE_SendCpeExtInfoReply();
STACKTOP = sp;return;
}
function _CPE_ExtEntry($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $12 = 0, $13 = 0, $14 = 0;
var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0;
var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0;
var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0;
var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
_Protocol_UNSAFE_GetString($1,$0);
$3 = ((($0)) + 67|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
HEAP32[$2>>2] = $5;
_Platform_Log2(35152,$1,$2);
$6 = HEAP32[323042]|0;
$7 = (($6) + -1)|0;
HEAP32[323042] = $7;
_CPE_SendCpeExtInfoReply();
$8 = (_String_CaselessEqualsConst($1,35168)|0);
$9 = ($8|0)==(0);
if (!($9)) {
HEAP8[1408277] = 1;
STACKTOP = sp;return;
}
$10 = (_String_CaselessEqualsConst($1,35178)|0);
$11 = ($10|0)==(0);
if (!($11)) {
HEAP8[1408283] = 1;
STACKTOP = sp;return;
}
$12 = (_String_CaselessEqualsConst($1,35191)|0);
$13 = ($12|0)==(0);
if (!($13)) {
HEAP8[(1384582)>>0] = 1;
STACKTOP = sp;return;
}
$14 = (_String_CaselessEqualsConst($1,35205)|0);
$15 = ($14|0)==(0);
if (!($15)) {
HEAP8[1408287] = 1;
STACKTOP = sp;return;
}
$16 = (_String_CaselessEqualsConst($1,35222)|0);
$17 = ($16|0)==(0);
if (!($17)) {
HEAP8[(1384583)>>0] = 1;
STACKTOP = sp;return;
}
$18 = (_String_CaselessEqualsConst($1,35234)|0);
$19 = ($18|0)==(0);
if (!($19)) {
$20 = HEAP32[$2>>2]|0;
HEAP32[4308] = $20;
$21 = ($20|0)==(1);
if ($21) {
STACKTOP = sp;return;
}
$22 = HEAP16[(496364)>>1]|0;
$23 = $22&65535;
$24 = (($23) + 4)|0;
$25 = $24&65535;
HEAP16[(496364)>>1] = $25;
STACKTOP = sp;return;
}
$26 = (_String_CaselessEqualsConst($1,35251)|0);
$27 = ($26|0)==(0);
if (!($27)) {
HEAP8[(1384584)>>0] = 1;
STACKTOP = sp;return;
}
$28 = (_String_CaselessEqualsConst($1,35266)|0);
$29 = ($28|0)==(0);
if (!($29)) {
HEAP8[(1384585)>>0] = 1;
STACKTOP = sp;return;
}
$30 = (_String_CaselessEqualsConst($1,35276)|0);
$31 = ($30|0)==(0);
if (!($31)) {
$32 = HEAP32[$2>>2]|0;
HEAP32[4307] = $32;
$33 = ($32|0)==(1);
if ($33) {
STACKTOP = sp;return;
}
$34 = HEAP16[(496378)>>1]|0;
$35 = $34&65535;
$36 = (($35) + 3)|0;
$37 = $36&65535;
HEAP16[(496378)>>1] = $37;
STACKTOP = sp;return;
}
$38 = (_String_CaselessEqualsConst($1,35296)|0);
$39 = ($38|0)==(0);
if (!($39)) {
$40 = HEAP16[(496320)>>1]|0;
$41 = $40&65535;
$42 = (($41) + 6)|0;
$43 = $42&65535;
HEAP16[(496320)>>1] = $43;
$44 = HEAP16[(496318)>>1]|0;
$45 = $44&65535;
$46 = (($45) + 6)|0;
$47 = $46&65535;
HEAP16[(496318)>>1] = $47;
$48 = HEAP16[(496370)>>1]|0;
$49 = $48&65535;
$50 = (($49) + 6)|0;
$51 = $50&65535;
HEAP16[(496370)>>1] = $51;
$52 = HEAP16[(496396)>>1]|0;
$53 = $52&65535;
$54 = (($53) + 6)|0;
$55 = $54&65535;
HEAP16[(496396)>>1] = $55;
HEAP8[1408279] = 1;
STACKTOP = sp;return;
}
$56 = (_String_CaselessEqualsConst($1,35315)|0);
$57 = ($56|0)==(0);
if (!($57)) {
HEAP8[1408284] = 1;
STACKTOP = sp;return;
}
$58 = (_String_CaselessEqualsConst($1,35326)|0);
$59 = ($58|0)==(0);
if (!($59)) {
$60 = HEAP16[(496308)>>1]|0;
$61 = $60&65535;
$62 = (($61) + 4)|0;
$63 = $62&65535;
HEAP16[(496308)>>1] = $63;
HEAP8[1408285] = 1;
STACKTOP = sp;return;
}
$64 = (_String_CaselessEqualsConst($1,35334)|0);
$65 = ($64|0)==(0);
if (!($65)) {
$66 = HEAP16[(496374)>>1]|0;
$67 = $66&65535;
$68 = (($67) + 3)|0;
$69 = $68&65535;
HEAP16[(496374)>>1] = $69;
$70 = HEAP16[(496378)>>1]|0;
$71 = $70&65535;
$72 = (($71) + 6)|0;
$73 = $72&65535;
HEAP16[(496378)>>1] = $73;
HEAP8[1408282] = 1;
STACKTOP = sp;return;
}
$74 = (_String_CaselessEqualsConst($1,35351)|0);
$75 = ($74|0)==(0);
$76 = HEAP8[1408234]|0;
$77 = ($76<<24>>24)==(0);
$or$cond = $75 | $77;
if ($or$cond) {
STACKTOP = sp;return;
}
HEAP8[1408278] = 1;
$78 = HEAP16[(496316)>>1]|0;
$79 = $78&65535;
$80 = (($79) + 1)|0;
$81 = $80&65535;
HEAP16[(496316)>>1] = $81;
$82 = HEAP16[(496344)>>1]|0;
$83 = $82&65535;
$84 = (($83) + 1)|0;
$85 = $84&65535;
HEAP16[(496344)>>1] = $85;
$86 = HEAP16[(496360)>>1]|0;
$87 = $86&65535;
$88 = (($87) + 1)|0;
$89 = $88&65535;
HEAP16[(496360)>>1] = $89;
$90 = HEAP16[(496374)>>1]|0;
$91 = $90&65535;
$92 = (($91) + 1)|0;
$93 = $92&65535;
HEAP16[(496374)>>1] = $93;
$94 = HEAP16[(496376)>>1]|0;
$95 = $94&65535;
$96 = (($95) + 1)|0;
$97 = $96&65535;
HEAP16[(496376)>>1] = $97;
$98 = HEAP16[(496378)>>1]|0;
$99 = $98&65535;
$100 = (($99) + 1)|0;
$101 = $100&65535;
HEAP16[(496378)>>1] = $101;
$102 = HEAP16[(496392)>>1]|0;
$103 = $102&65535;
$104 = (($103) + 2)|0;
$105 = $104&65535;
HEAP16[(496392)>>1] = $105;
$106 = HEAP16[(496380)>>1]|0;
$107 = $106&65535;
$108 = (($107) + 64)|0;
$109 = $108&65535;
HEAP16[(496380)>>1] = $109;
$110 = HEAP16[(496394)>>1]|0;
$111 = $110&65535;
$112 = (($111) + 1)|0;
$113 = $112&65535;
HEAP16[(496394)>>1] = $113;
STACKTOP = sp;return;
}
function _CPE_SetClickDistance($0) {
$0 = $0|0;
var $1 = 0, $2 = 0.0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Stream_GetU16_BE($0)|0);
$2 = (+($1&65535));
$3 = $2 * 0.03125;
HEAPF32[(1242612)>>2] = $3;
return;
}
function _CPE_CustomBlockLevel($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
HEAP16[$1>>1] = 275;
$2 = HEAP32[(1384548)>>2]|0;
FUNCTION_TABLE_vii[$2 & 127]($1,2);
HEAP8[1408231] = 1;
_Event_RaiseVoid(1253156);
STACKTOP = sp;return;
}
function _CPE_HoldThis($0) {
$0 = $0|0;
var $$0 = 0, $$05 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408278]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
$5 = ((($0)) + 1|0);
$6 = HEAP8[$0>>0]|0;
$7 = $6&255;
$$0 = $5;$$05 = $7;
} else {
$3 = (_Stream_GetU16_BE($0)|0);
$4 = ((($0)) + 2|0);
$$0 = $4;$$05 = $3;
}
$8 = HEAP8[$$0>>0]|0;
$9 = ($8<<24>>24)==(0);
$10 = $9&1;
HEAP8[(1268188)>>0] = 1;
_Inventory_SetSelectedBlock($$05);
HEAP8[(1268188)>>0] = $10;
return;
}
function _CPE_SetTextHotkey($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = sp + 8|0;
$3 = ((($0)) + 64|0);
_Protocol_UNSAFE_GetString($1,$3);
$4 = ((($0)) + 128|0);
$5 = (_Stream_GetU32_BE($4)|0);
$6 = ((($0)) + 132|0);
$7 = HEAP8[$6>>0]|0;
HEAP8[$2>>0] = $7;
$8 = ($5>>>0)>(255);
if ($8) {
STACKTOP = sp;return;
}
$9 = (3872 + ($5)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = ($10<<24>>24)==(0);
if ($12) {
STACKTOP = sp;return;
}
$13 = (3280 + ($11<<2)|0);
$14 = HEAP32[$13>>2]|0;
_Platform_Log3(35123,$14,$2,$1);
$15 = ((($1)) + 4|0);
$16 = HEAP16[$15>>1]|0;
$17 = ($16<<16>>16)==(0);
if ($17) {
$18 = HEAP8[$2>>0]|0;
(_Hotkeys_Remove($11,$18)|0);
STACKTOP = sp;return;
}
$19 = HEAP32[$1>>2]|0;
$20 = $16&65535;
$21 = (($20) + -1)|0;
$22 = (($19) + ($21)|0);
$23 = HEAP8[$22>>0]|0;
$24 = ($23<<24>>24)==(10);
if ($24) {
$25 = (($16) + -1)<<16>>16;
HEAP16[$15>>1] = $25;
$26 = HEAP8[$2>>0]|0;
_Hotkeys_Add($11,$26,$1,0);
STACKTOP = sp;return;
} else {
$27 = HEAP8[$2>>0]|0;
_Hotkeys_Add($11,$27,$1,1);
STACKTOP = sp;return;
}
}
function _CPE_ExtAddPlayerName($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 16|0;
$2 = sp + 8|0;
$3 = sp;
$4 = ((($0)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = ((($0)) + 2|0);
_Protocol_UNSAFE_GetString($1,$6);
$7 = ((($0)) + 66|0);
_Protocol_UNSAFE_GetString($2,$7);
$8 = ((($0)) + 130|0);
_Protocol_UNSAFE_GetString($3,$8);
$9 = ((($0)) + 194|0);
$10 = HEAP8[$9>>0]|0;
_Protocol_RemoveEndPlus($1);
_Protocol_RemoveEndPlus($2);
$11 = $5&255;
$12 = $11 & 7;
$13 = 1 << $12;
$14 = $13 ^ 255;
$15 = (3)?($11 >>> 3):($11);
$16 = (496592 + ($15)|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = $14 & $18;
$20 = $19&255;
HEAP8[$16>>0] = $20;
_Protocol_AddTablistEntry($5,$1,$2,$3,$10);
STACKTOP = sp;return;
}
function _CPE_ExtAddEntity($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0;
$1 = sp + 136|0;
$2 = sp + 144|0;
$3 = sp + 64|0;
$4 = sp + 128|0;
$5 = sp;
HEAP32[$2>>2] = $3;
$6 = ((($2)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($2)) + 6|0);
HEAP16[$7>>1] = 64;
HEAP32[$4>>2] = $5;
$8 = ((($4)) + 4|0);
HEAP16[$8>>1] = 0;
$9 = ((($4)) + 6|0);
HEAP16[$9>>1] = 64;
$10 = ((($0)) + 1|0);
HEAP32[$1>>2] = $10;
$11 = HEAP8[$0>>0]|0;
_Protocol_ReadString($1,$2);
_Protocol_ReadString($1,$4);
_Protocol_CheckName($11,$2,$4);
$12 = HEAP32[$1>>2]|0;
_Protocol_AddEntity($12,$11,$2,$4,0);
STACKTOP = sp;return;
}
function _CPE_ExtRemovePlayerName($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 1|0);
$2 = HEAP8[$1>>0]|0;
_TabList_Remove($2);
return;
}
function _CPE_SetEnvCol($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = ((($0)) + 1|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$5 = ((($0)) + 3|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if ($7) {
$8 = ((($0)) + 5|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)!=(0);
$phitmp = $10&1;
$25 = $phitmp;
} else {
$25 = 1;
}
} else {
$25 = 1;
}
$11 = ((($0)) + 2|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = ((($0)) + 4|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = ((($0)) + 6|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
$21 = $20 << 16;
$22 = $17 | $13;
$23 = $22 | $21;
$24 = $23 | -16777216;
switch ($1<<24>>24) {
case 0: {
$26 = ($25<<24>>24)==(0);
$27 = $26 ? $24 : -13159;
_Env_SetSkyCol($27);
return;
break;
}
case 1: {
$28 = ($25<<24>>24)==(0);
$29 = $28 ? $24 : -1;
_Env_SetCloudsCol($29);
return;
break;
}
case 2: {
$30 = ($25<<24>>24)==(0);
$31 = $30 ? $24 : -1;
_Env_SetFogCol($31);
return;
break;
}
case 3: {
$32 = ($25<<24>>24)==(0);
$33 = $32 ? $24 : -6579301;
_Env_SetShadowCol($33);
return;
break;
}
case 4: {
$34 = ($25<<24>>24)==(0);
$35 = $34 ? $24 : -1;
_Env_SetSunCol($35);
return;
break;
}
case 5: {
$36 = ($25<<24>>24)==(0);
$37 = $36 ? $24 : -1;
_Env_SetSkyboxCol($37);
return;
break;
}
default: {
return;
}
}
}
function _CPE_MakeSelection($0) {
$0 = $0|0;
var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$$byval_copy1 = sp + 36|0;
$$byval_copy = sp + 24|0;
$1 = sp + 12|0;
$2 = sp;
$3 = ((($0)) + 65|0);
$4 = (_Stream_GetU16_BE($3)|0);
$5 = $4 << 16 >> 16;
HEAP32[$1>>2] = $5;
$6 = ((($0)) + 67|0);
$7 = (_Stream_GetU16_BE($6)|0);
$8 = $7 << 16 >> 16;
$9 = ((($1)) + 4|0);
HEAP32[$9>>2] = $8;
$10 = ((($0)) + 69|0);
$11 = (_Stream_GetU16_BE($10)|0);
$12 = $11 << 16 >> 16;
$13 = ((($1)) + 8|0);
HEAP32[$13>>2] = $12;
$14 = ((($0)) + 71|0);
$15 = (_Stream_GetU16_BE($14)|0);
$16 = $15 << 16 >> 16;
HEAP32[$2>>2] = $16;
$17 = ((($0)) + 73|0);
$18 = (_Stream_GetU16_BE($17)|0);
$19 = $18 << 16 >> 16;
$20 = ((($2)) + 4|0);
HEAP32[$20>>2] = $19;
$21 = ((($0)) + 75|0);
$22 = (_Stream_GetU16_BE($21)|0);
$23 = $22 << 16 >> 16;
$24 = ((($2)) + 8|0);
HEAP32[$24>>2] = $23;
$25 = ((($0)) + 78|0);
$26 = HEAP8[$25>>0]|0;
$27 = $26&255;
$28 = ((($0)) + 80|0);
$29 = HEAP8[$28>>0]|0;
$30 = $29&255;
$31 = $30 << 8;
$32 = $31 | $27;
$33 = ((($0)) + 82|0);
$34 = HEAP8[$33>>0]|0;
$35 = $34&255;
$36 = $35 << 16;
$37 = $32 | $36;
$38 = ((($0)) + 84|0);
$39 = HEAP8[$38>>0]|0;
$40 = $39&255;
$41 = $40 << 24;
$42 = $37 | $41;
$43 = HEAP8[$0>>0]|0;
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;
_Selections_Add($43,$$byval_copy,$$byval_copy1,$42);
STACKTOP = sp;return;
}
function _CPE_RemoveSelection($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
_Selections_Remove($1);
return;
}
function _CPE_SetBlockPermission($0) {
$0 = $0|0;
var $$0 = 0, $$06 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408278]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
$5 = ((($0)) + 1|0);
$6 = HEAP8[$0>>0]|0;
$7 = $6&255;
$$0 = $7;$$06 = $5;
} else {
$3 = (_Stream_GetU16_BE($0)|0);
$4 = ((($0)) + 2|0);
$$0 = $3;$$06 = $4;
}
$8 = ((($$06)) + 1|0);
$9 = HEAP8[$$06>>0]|0;
$10 = ($9<<24>>24)!=(0);
$11 = $10&1;
$12 = $$0&65535;
$13 = (634116 + ($12)|0);
HEAP8[$13>>0] = $11;
$14 = HEAP8[$8>>0]|0;
$15 = ($14<<24>>24)!=(0);
$16 = $15&1;
$17 = (634884 + ($12)|0);
HEAP8[$17>>0] = $16;
_Event_RaiseVoid(1253156);
return;
}
function _CPE_ChangeModel($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP8[$0>>0]|0;
$3 = ((($0)) + 1|0);
_Protocol_UNSAFE_GetString($1,$3);
$4 = $2&255;
$5 = (1241124 + ($4<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0|0);
if ($7) {
STACKTOP = sp;return;
}
_Entity_SetModel($6,$1);
STACKTOP = sp;return;
}
function _CPE_EnvSetMapAppearance($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
_CPE_SetMapEnvUrl($0);
$1 = ((($0)) + 64|0);
$2 = HEAP8[$1>>0]|0;
$3 = $2&255;
_Env_SetSidesBlock($3);
$4 = ((($0)) + 65|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
_Env_SetEdgeBlock($6);
$7 = ((($0)) + 66|0);
$8 = (_Stream_GetU16_BE($7)|0);
$9 = $8 << 16 >> 16;
_Env_SetEdgeHeight($9);
$10 = HEAP32[4308]|0;
$11 = ($10|0)==(1);
if ($11) {
return;
}
$12 = ((($0)) + 68|0);
$13 = (_Stream_GetU16_BE($12)|0);
$14 = $13 << 16 >> 16;
_Env_SetCloudsHeight($14);
$15 = ((($0)) + 70|0);
$16 = (_Stream_GetU16_BE($15)|0);
$17 = $16 << 16 >> 16;
$18 = ($16<<16>>16)<(1);
$19 = $18 ? 32768 : $17;
HEAP32[315050] = $19;
$20 = HEAP32[315052]|0;
_Game_SetViewDistance($20);
return;
}
function _CPE_EnvWeatherType($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = $1&255;
_Env_SetWeather($2);
return;
}
function _CPE_HackControl($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0.0;
var $28 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0.0, $storemerge = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = ($1<<24>>24)!=(0);
$3 = $2&1;
HEAP8[(1242630)>>0] = $3;
$4 = ((($0)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)!=(0);
$7 = $6&1;
HEAP8[(1242632)>>0] = $7;
$8 = ((($0)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)!=(0);
$11 = $10&1;
HEAP8[(1242629)>>0] = $11;
$12 = ((($0)) + 3|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)!=(0);
$15 = $14&1;
HEAP8[(1242631)>>0] = $15;
$16 = ((($0)) + 4|0);
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)!=(0);
$19 = $18&1;
HEAP8[(1242628)>>0] = $19;
_HacksComp_Update((1242616));
$20 = ((($0)) + 5|0);
$21 = (_Stream_GetU16_BE($20)|0);
$22 = ($21<<16>>16)==(-1);
if ($22) {
$23 = (_HacksComp_CanJumpHigher((1242616))|0);
$24 = ($23<<24>>24)==(0);
$25 = +HEAPF32[(1242972)>>2];
$spec$select = $24 ? 0.41999998688697815 : $25;
$storemerge = $spec$select;
HEAPF32[(1242968)>>2] = $storemerge;
HEAPF32[(1242976)>>2] = $storemerge;
return;
} else {
$26 = (+($21&65535));
$27 = $26 * 0.03125;
$28 = (+_PhysicsComp_CalcJumpVelocity($27));
$storemerge = $28;
HEAPF32[(1242968)>>2] = $storemerge;
HEAPF32[(1242976)>>2] = $storemerge;
return;
}
}
function _CPE_ExtAddEntity2($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0;
$1 = sp + 136|0;
$2 = sp + 144|0;
$3 = sp + 64|0;
$4 = sp + 128|0;
$5 = sp;
HEAP32[$2>>2] = $3;
$6 = ((($2)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($2)) + 6|0);
HEAP16[$7>>1] = 64;
HEAP32[$4>>2] = $5;
$8 = ((($4)) + 4|0);
HEAP16[$8>>1] = 0;
$9 = ((($4)) + 6|0);
HEAP16[$9>>1] = 64;
$10 = ((($0)) + 1|0);
HEAP32[$1>>2] = $10;
$11 = HEAP8[$0>>0]|0;
_Protocol_ReadString($1,$2);
_Protocol_ReadString($1,$4);
_Protocol_CheckName($11,$2,$4);
$12 = HEAP32[$1>>2]|0;
_Protocol_AddEntity($12,$11,$2,$4,1);
STACKTOP = sp;return;
}
function _CPE_BulkBlockUpdate($0) {
$0 = $0|0;
var $$05560 = 0, $$061 = 0, $$159 = 0, $$258 = 0, $$357 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0;
var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0;
var $8 = 0, $9 = 0, $exitcond = 0, $exitcond62 = 0, $exitcond63 = 0, $or$cond = 0, $scevgep = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1536|0;
$1 = sp + 512|0;
$2 = sp;
$3 = ((($0)) + 1|0);
$4 = HEAP8[$0>>0]|0;
$5 = $4&255;
$6 = $5 << 2;
$7 = (($6) + 5)|0;
$$05560 = 0;$$061 = $3;
while(1) {
$8 = (_Stream_GetU32_BE($$061)|0);
$9 = (($1) + ($$05560<<2)|0);
HEAP32[$9>>2] = $8;
$10 = ((($$061)) + 4|0);
$11 = (($$05560) + 1)|0;
$exitcond63 = ($$05560|0)==($5|0);
if ($exitcond63) {
break;
} else {
$$05560 = $11;$$061 = $10;
}
}
$scevgep = (($0) + ($7)|0);
$12 = $5 << 2;
$13 = $12 ^ 1020;
$14 = (($scevgep) + ($13)|0);
$$159 = 0;
while(1) {
$15 = (($14) + ($$159)|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = (($2) + ($$159<<1)|0);
HEAP16[$18>>1] = $17;
$19 = (($$159) + 1)|0;
$exitcond62 = ($$159|0)==($5|0);
if ($exitcond62) {
break;
} else {
$$159 = $19;
}
}
$20 = ((($14)) + 256|0);
$21 = HEAP8[1408278]|0;
$22 = ($21<<24>>24)==(0);
if (!($22)) {
$$258 = 0;
while(1) {
$23 = (2)?($$258 >>> 2):($$258);
$24 = (($20) + ($23)|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25&255;
$27 = $26 << 8;
$28 = $27 & 768;
$29 = (($2) + ($$258<<1)|0);
$30 = HEAP16[$29>>1]|0;
$31 = $30&65535;
$32 = $28 | $31;
$33 = $32&65535;
HEAP16[$29>>1] = $33;
$34 = $26 << 6;
$35 = $34 & 768;
$36 = $$258 | 1;
$37 = (($2) + ($36<<1)|0);
$38 = HEAP16[$37>>1]|0;
$39 = $38&65535;
$40 = $35 | $39;
$41 = $40&65535;
HEAP16[$37>>1] = $41;
$42 = $26 << 4;
$43 = $42 & 768;
$44 = $$258 | 2;
$45 = (($2) + ($44<<1)|0);
$46 = HEAP16[$45>>1]|0;
$47 = $46&65535;
$48 = $43 | $47;
$49 = $48&65535;
HEAP16[$45>>1] = $49;
$50 = $26 << 2;
$51 = $50 & 768;
$52 = $$258 | 3;
$53 = (($2) + ($52<<1)|0);
$54 = HEAP16[$53>>1]|0;
$55 = $54&65535;
$56 = $51 | $55;
$57 = $56&65535;
HEAP16[$53>>1] = $57;
$58 = (($$258) + 4)|0;
$59 = ($58>>>0)>($5>>>0);
if ($59) {
break;
} else {
$$258 = $58;
}
}
}
$$357 = 0;
while(1) {
$60 = (($1) + ($$357<<2)|0);
$61 = HEAP32[$60>>2]|0;
$62 = ($61|0)>(-1);
$63 = HEAP32[(1407460)>>2]|0;
$64 = ($61|0)<($63|0);
$or$cond = $62 & $64;
if ($or$cond) {
$65 = HEAP32[(1407464)>>2]|0;
$66 = (($61|0) / ($65|0))&-1;
$67 = Math_imul($66, $65)|0;
$68 = (($61) - ($67))|0;
$69 = HEAP32[(1407472)>>2]|0;
$70 = (($66|0) / ($69|0))&-1;
$71 = Math_imul($70, $69)|0;
$72 = (($66) - ($71))|0;
$73 = (_World_Contains_1309($68,$70,$72)|0);
$74 = ($73<<24>>24)==(0);
if (!($74)) {
$75 = (($2) + ($$357<<1)|0);
$76 = HEAP16[$75>>1]|0;
_Game_UpdateBlock($68,$70,$72,$76);
}
}
$77 = (($$357) + 1)|0;
$exitcond = ($$357|0)==($5|0);
if ($exitcond) {
break;
} else {
$$357 = $77;
}
}
STACKTOP = sp;return;
}
function _CPE_SetTextColor($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP8[$1>>0]|0;
$3 = $2&255;
switch ($2<<24>>24) {
case 38: case 37: case -1: case 32: case 0: {
return;
break;
}
default: {
}
}
$4 = ((($0)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
$7 = $6 << 8;
$8 = HEAP8[$0>>0]|0;
$9 = $8&255;
$10 = $7 | $9;
$11 = ((($0)) + 2|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = $13 << 16;
$15 = $10 | $14;
$16 = ((($0)) + 3|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = $18 << 24;
$20 = $15 | $19;
$21 = (154320 + ($3<<2)|0);
HEAP32[$21>>2] = $20;
_Event_RaiseInt((1255496),$3);
return;
}
function _CPE_SetMapEnvUrl($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Protocol_UNSAFE_GetString($1,$0);
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if (!($4)) {
$5 = (_Utils_IsUrlPrefix($1)|0);
$6 = ($5<<24>>24)==(0);
if ($6) {
_Platform_Log1(35111,$1);
STACKTOP = sp;return;
}
}
_Server_RetrieveTexturePack($1);
_Platform_Log1(35111,$1);
STACKTOP = sp;return;
}
function _CPE_SetMapEnvProperty($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0.0;
var $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 1|0);
$2 = (_Stream_GetU32_BE($1)|0);
$3 = ($2|0)>(-16777215);
$4 = $3 ? $2 : -16777215;
$5 = ($4|0)<(16777215);
$6 = $5 ? $4 : 16777215;
$7 = HEAP8[$0>>0]|0;
do {
switch ($7<<24>>24) {
case 0: {
$8 = ($6|0)>(0);
$9 = $8 ? $6 : 0;
$10 = ($9|0)<(767);
$11 = $10 ? $9 : 767;
$12 = $11&65535;
_Env_SetSidesBlock($12);
return;
break;
}
case 1: {
$13 = ($6|0)>(0);
$14 = $13 ? $6 : 0;
$15 = ($14|0)<(767);
$16 = $15 ? $14 : 767;
$17 = $16&65535;
_Env_SetEdgeBlock($17);
return;
break;
}
case 2: {
_Env_SetEdgeHeight($6);
return;
break;
}
case 3: {
_Env_SetCloudsHeight($6);
return;
break;
}
case 4: {
$18 = ($6|0)>(-32767);
$19 = $18 ? $6 : -32767;
$20 = ($19|0)<(32767);
$21 = $20 ? $19 : 32767;
$22 = ($21|0)<(1);
$23 = $22 ? 32768 : $21;
HEAP32[315050] = $23;
$24 = HEAP32[315052]|0;
_Game_SetViewDistance($24);
return;
break;
}
case 5: {
$25 = (+($6|0));
$26 = $25 * 0.00390625;
_Env_SetCloudsSpeed($26);
return;
break;
}
case 6: {
$27 = (+($6|0));
$28 = $27 * 0.00390625;
_Env_SetWeatherSpeed($28);
return;
break;
}
case 7: {
$29 = (+($6|0));
$30 = $29 * 0.0078125;
_Env_SetWeatherFade($30);
return;
break;
}
case 8: {
$31 = ($6|0)!=(0);
$32 = $31&1;
_Env_SetExpFog($32);
return;
break;
}
case 9: {
_Env_SetSidesOffset($6);
return;
break;
}
case 10: {
$33 = (+($6|0));
$34 = $33 * 9.765625E-4;
_Env_SetSkyboxHorSpeed($34);
return;
break;
}
case 11: {
$35 = (+($6|0));
$36 = $35 * 9.765625E-4;
_Env_SetSkyboxVerSpeed($36);
return;
break;
}
default: {
return;
}
}
} while(0);
}
function _CPE_SetEntityProperty($0) {
$0 = $0|0;
var $$ = 0.0, $$0 = 0.0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
;HEAP32[$1>>2]=0|0;HEAP32[$1+4>>2]=0|0;HEAP32[$1+8>>2]=0|0;HEAP32[$1+12>>2]=0|0;HEAP32[$1+16>>2]=0|0;HEAP32[$1+20>>2]=0|0;HEAP32[$1+24>>2]=0|0;HEAP32[$1+28>>2]=0|0;
$2 = HEAP8[$0>>0]|0;
$3 = ((($0)) + 1|0);
$4 = HEAP8[$3>>0]|0;
$5 = ((($0)) + 2|0);
$6 = (_Stream_GetU32_BE($5)|0);
$7 = $2&255;
$8 = (1241124 + ($7<<2)|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0|0);
if ($10) {
STACKTOP = sp;return;
}
switch ($4<<24>>24) {
case 0: {
$11 = ((($1)) + 28|0);
HEAP8[$11>>0] = 8;
$12 = (+($6|0));
$13 = (+_LocationUpdate_Clamp($12));
$14 = ((($1)) + 20|0);
HEAPF32[$14>>2] = $13;
break;
}
case 1: {
$15 = ((($1)) + 28|0);
HEAP8[$15>>0] = 4;
$16 = (+($6|0));
$17 = (+_LocationUpdate_Clamp($16));
$18 = ((($1)) + 16|0);
HEAPF32[$18>>2] = $17;
break;
}
case 2: {
$19 = ((($1)) + 28|0);
HEAP8[$19>>0] = 16;
$20 = (+($6|0));
$21 = (+_LocationUpdate_Clamp($20));
$22 = ((($1)) + 24|0);
HEAPF32[$22>>2] = $21;
break;
}
case 5: case 4: case 3: {
$23 = (+($6|0));
$24 = $23 / 1000.0;
$25 = ((($9)) + 54|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26<<24>>24)==(0);
if ($27) {
$$0 = $24;
} else {
$28 = $24 < 0.0099999997764825821;
$29 = $28 ? 0.0099999997764825821 : $24;
$30 = ((($9)) + 48|0);
$31 = HEAP32[$30>>2]|0;
$32 = ((($31)) + 84|0);
$33 = +HEAPF32[$32>>2];
$34 = $29 > $33;
$$ = $34 ? $33 : $29;
$$0 = $$;
}
switch ($4<<24>>24) {
case 3: {
$35 = ((($9)) + 80|0);
$$sink = $35;
label = 12;
break;
}
case 4: {
$36 = ((($9)) + 84|0);
$$sink = $36;
label = 12;
break;
}
case 5: {
$37 = ((($9)) + 88|0);
$$sink = $37;
label = 12;
break;
}
default: {
}
}
if ((label|0) == 12) {
HEAPF32[$$sink>>2] = $$0;
}
_Entity_UpdateModelBounds($9);
STACKTOP = sp;return;
break;
}
default: {
STACKTOP = sp;return;
}
}
$38 = HEAP32[$9>>2]|0;
$39 = ((($38)) + 8|0);
$40 = HEAP32[$39>>2]|0;
FUNCTION_TABLE_viii[$40 & 31]($9,$1,1);
STACKTOP = sp;return;
}
function _CPE_TwoWayPing($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = ((($0)) + 1|0);
$3 = (_Stream_GetU16_BE($2)|0);
$4 = $3&65535;
$5 = ($1<<24>>24)==(0);
if ($5) {
_Ping_Update($4);
return;
} else {
_CPE_WriteTwoWayPing(1,$4);
_Net_SendPacket();
return;
}
}
function _CPE_SetInventoryOrder($0) {
$0 = $0|0;
var $$0 = 0, $$010 = 0, $$011 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408278]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
$5 = ((($0)) + 1|0);
$6 = HEAP8[$0>>0]|0;
$7 = $6&255;
$$010 = $7;$$011 = $5;
} else {
$3 = (_Stream_GetU16_BE($0)|0);
$4 = ((($0)) + 2|0);
$$010 = $3;$$011 = $4;
}
$8 = HEAP8[1408278]|0;
$9 = ($8<<24>>24)==(0);
if ($9) {
$11 = HEAP8[$$011>>0]|0;
$12 = $11&255;
$$0 = $12;
} else {
$10 = (_Stream_GetU16_BE($$011)|0);
$$0 = $10;
}
_Inventory_Remove($$010);
$13 = ($$0<<16>>16)==(0);
if ($13) {
return;
}
$14 = $$0&65535;
$15 = (($14) + -1)|0;
$16 = (1266642 + ($15<<1)|0);
HEAP16[$16>>1] = $$010;
return;
}
function _CPE_SetHotbar($0) {
$0 = $0|0;
var $$0 = 0, $$06 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408278]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
$5 = ((($0)) + 1|0);
$6 = HEAP8[$0>>0]|0;
$7 = $6&255;
$$0 = $5;$$06 = $7;
} else {
$3 = (_Stream_GetU16_BE($0)|0);
$4 = ((($0)) + 2|0);
$$0 = $4;$$06 = $3;
}
$8 = HEAP8[$$0>>0]|0;
$9 = ($8&255)>(8);
if ($9) {
return;
}
$10 = $8&255;
$11 = HEAP32[(1268184)>>2]|0;
$12 = (($11) + ($10))|0;
$13 = (1266480 + ($12<<1)|0);
HEAP16[$13>>1] = $$06;
return;
}
function _CPE_SetSpawnPoint($0) {
$0 = $0|0;
var $$0 = 0, $$024 = 0, $$025 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0.0;
var $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408279]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
$8 = (_Stream_GetU16_BE($0)|0);
$9 = $8 << 16 >> 16;
$10 = ((($0)) + 2|0);
$11 = (_Stream_GetU16_BE($10)|0);
$12 = $11 << 16 >> 16;
$13 = ((($0)) + 4|0);
$14 = (_Stream_GetU16_BE($13)|0);
$15 = $14 << 16 >> 16;
$$0 = $15;$$024 = $12;$$025 = $9;$$sink = 6;
} else {
$3 = (_Stream_GetU32_BE($0)|0);
$4 = ((($0)) + 4|0);
$5 = (_Stream_GetU32_BE($4)|0);
$6 = ((($0)) + 8|0);
$7 = (_Stream_GetU32_BE($6)|0);
$$0 = $7;$$024 = $5;$$025 = $3;$$sink = 12;
}
$16 = (($0) + ($$sink)|0);
$17 = ((($16)) + 1|0);
$18 = HEAP8[$16>>0]|0;
$19 = (+($18&255));
$20 = $19 * 360.0;
$21 = $20 * 0.00390625;
HEAPF32[(1242604)>>2] = $21;
$22 = HEAP8[$17>>0]|0;
$23 = (+($22&255));
$24 = $23 * 360.0;
$25 = $24 * 0.00390625;
HEAPF32[(1242608)>>2] = $25;
$26 = (($$024) + -51)|0;
$27 = (+($$025|0));
$28 = $27 * 0.03125;
HEAPF32[(1242580)>>2] = $28;
$29 = (+($26|0));
$30 = $29 * 0.03125;
HEAPF32[(1242584)>>2] = $30;
$31 = (+($$0|0));
$32 = $31 * 0.03125;
HEAPF32[(1242588)>>2] = $32;
return;
}
function _CPE_VelocityControl($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
$2 = HEAP8[$1>>0]|0;
_CalcVelocity((1242188),$0,$2);
$3 = ((($0)) + 4|0);
$4 = ((($0)) + 13|0);
$5 = HEAP8[$4>>0]|0;
_CalcVelocity((1242192),$3,$5);
$6 = ((($0)) + 8|0);
$7 = ((($0)) + 14|0);
$8 = HEAP8[$7>>0]|0;
_CalcVelocity((1242196),$6,$8);
return;
}
function _CalcVelocity($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$sink = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_Stream_GetU32_BE($1)|0);
$4 = (+($3|0));
$5 = $4 / 1.0E+4;
$6 = (+_Math_AbsF($5));
$7 = (_Math_Sign($4)|0);
$8 = (+($7|0));
$9 = (+_PhysicsComp_CalcJumpVelocity($6));
$10 = $9 * $8;
switch ($2<<24>>24) {
case 0: {
$11 = +HEAPF32[$0>>2];
$12 = $10 + $11;
$$sink = $12;
break;
}
case 1: {
$$sink = $10;
break;
}
default: {
return;
}
}
HEAPF32[$0>>2] = $$sink;
return;
}
function _CPE_WriteTwoWayPing($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1384576)>>2]|0;
$3 = ((($2)) + 1|0);
HEAP8[$2>>0] = 43;
$4 = ((($2)) + 2|0);
HEAP8[$3>>0] = $0;
$5 = $1&65535;
_Stream_SetU16_BE($4,$5);
$6 = ((($2)) + 4|0);
HEAP32[(1384576)>>2] = $6;
return;
}
function _World_Contains_1309($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _Protocol_ReadString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$02127 = 0, $$126 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[$0>>2]|0;
$$02127 = 63;
L1: while(1) {
$3 = (($2) + ($$02127)|0);
$4 = HEAP8[$3>>0]|0;
switch ($4<<24>>24) {
case 32: case 0: {
break;
}
default: {
label = 4;
break L1;
}
}
$5 = (($$02127) + -1)|0;
$6 = ($$02127|0)==(0);
if ($6) {
break;
} else {
$$02127 = $5;
}
}
if ((label|0) == 4) {
$7 = ($$02127|0)>(-1);
if ($7) {
$$126 = 0;
while(1) {
$8 = (($2) + ($$126)|0);
$9 = HEAP8[$8>>0]|0;
_String_Append($1,$9);
$10 = (($$126) + 1)|0;
$exitcond = ($$126|0)==($$02127|0);
if ($exitcond) {
break;
} else {
$$126 = $10;
}
}
}
}
$11 = ((($2)) + 64|0);
HEAP32[$0>>2] = $11;
return;
}
function _Protocol_CheckName($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$3 = sp + 64|0;
$4 = sp;
_Protocol_RemoveEndPlus($1);
$5 = ($0<<24>>24)==(-1);
if ($5) {
HEAP32[$3>>2] = $4;
$6 = ((($3)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($3)) + 6|0);
HEAP16[$7>>1] = 64;
_String_AppendColorless($3,$1);
$8 = (_String_Equals($3,11488)|0);
$9 = ($8|0)==(0);
if ($9) {
_String_Copy($1,11488);
}
}
$10 = ((($2)) + 4|0);
$11 = HEAP16[$10>>1]|0;
$12 = ($11<<16>>16)==(0);
if (!($12)) {
_Protocol_RemoveEndPlus($2);
_String_StripCols($2);
STACKTOP = sp;return;
}
_String_Copy($2,$1);
_Protocol_RemoveEndPlus($2);
_String_StripCols($2);
STACKTOP = sp;return;
}
function _Protocol_AddEntity($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = $1&255;
$6 = ($1<<24>>24)!=(-1);
if ($6) {
$7 = (1241124 + ($5<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0|0);
if (!($9)) {
_Entities_Remove($1);
}
$10 = (156368 + (($5*872)|0)|0);
_NetPlayer_Init($10);
HEAP32[$7>>2] = $10;
_Event_RaiseInt(1248996,$5);
$$0 = $10;
} else {
$$0 = 1242152;
}
_Entity_SetSkin($$0,$3);
_Entity_SetName($$0,$2);
$11 = ($4<<24>>24)==(0);
if ($11) {
return;
}
_Classic_ReadAbsoluteLocation($0,$1,0);
if ($6) {
return;
}
;HEAP32[(1242580)>>2]=HEAP32[(1242156)>>2]|0;HEAP32[(1242580)+4>>2]=HEAP32[(1242156)+4>>2]|0;HEAP32[(1242580)+8>>2]=HEAP32[(1242156)+8>>2]|0;
$12 = HEAP32[(1242172)>>2]|0;
HEAP32[(1242604)>>2] = $12;
$13 = HEAP32[(1242168)>>2]|0;
HEAP32[(1242608)>>2] = $13;
return;
}
function _Classic_ReadAbsoluteLocation($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$028 = 0, $$029 = 0, $$030 = 0, $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0.0;
var $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $spec$select = 0, $spec$select$v = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$$byval_copy = sp + 48|0;
$3 = sp + 16|0;
$4 = sp;
$5 = HEAP8[1408279]|0;
$6 = ($5<<24>>24)==(0);
if ($6) {
$12 = (_Stream_GetU16_BE($0)|0);
$13 = $12 << 16 >> 16;
$14 = ((($0)) + 2|0);
$15 = (_Stream_GetU16_BE($14)|0);
$16 = $15 << 16 >> 16;
$17 = ((($0)) + 4|0);
$18 = (_Stream_GetU16_BE($17)|0);
$19 = $18 << 16 >> 16;
$$028 = $13;$$029 = $19;$$030 = $16;$$sink = 6;
} else {
$7 = (_Stream_GetU32_BE($0)|0);
$8 = ((($0)) + 4|0);
$9 = (_Stream_GetU32_BE($8)|0);
$10 = ((($0)) + 8|0);
$11 = (_Stream_GetU32_BE($10)|0);
$$028 = $7;$$029 = $11;$$030 = $9;$$sink = 12;
}
$20 = (($0) + ($$sink)|0);
$21 = ($1<<24>>24)==(-1);
$spec$select$v = $21 ? -29 : -51;
$spec$select = (($$030) + ($spec$select$v))|0;
$22 = (+($$028|0));
$23 = $22 * 0.03125;
HEAPF32[$4>>2] = $23;
$24 = (+($spec$select|0));
$25 = $24 * 0.03125;
$26 = ((($4)) + 4|0);
HEAPF32[$26>>2] = $25;
$27 = (+($$029|0));
$28 = $27 * 0.03125;
$29 = ((($4)) + 8|0);
HEAPF32[$29>>2] = $28;
$30 = ((($20)) + 1|0);
$31 = HEAP8[$20>>0]|0;
$32 = (+($31&255));
$33 = $32 * 360.0;
$34 = $33 * 0.00390625;
$35 = HEAP8[$30>>0]|0;
$36 = (+($35&255));
$37 = $36 * 360.0;
$38 = $37 * 0.00390625;
if (!($21)) {
;HEAP32[$$byval_copy>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$4+8>>2]|0;
_LocationUpdate_MakePosAndOri($3,$$byval_copy,$34,$38,0);
_Protocol_UpdateLocation($1,$3,$2);
STACKTOP = sp;return;
}
HEAP8[1408286] = 1;
;HEAP32[$$byval_copy>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$4+8>>2]|0;
_LocationUpdate_MakePosAndOri($3,$$byval_copy,$34,$38,0);
_Protocol_UpdateLocation($1,$3,$2);
STACKTOP = sp;return;
}
function _Protocol_UpdateLocation($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $0&255;
$4 = (1241124 + ($3<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(0|0);
if ($6) {
return;
}
$7 = HEAP32[$5>>2]|0;
$8 = ((($7)) + 8|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_viii[$9 & 31]($5,$1,$2);
return;
}
function _Protocol_RemoveEndPlus($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if ($3) {
return;
}
$4 = HEAP32[$0>>2]|0;
$5 = $2&65535;
$6 = (($5) + -1)|0;
$7 = (($4) + ($6)|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(43);
if (!($9)) {
return;
}
$10 = (($2) + -1)<<16>>16;
HEAP16[$1>>1] = $10;
return;
}
function _Protocol_AddTablistEntry($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$5 = sp + 64|0;
$6 = sp;
HEAP32[$5>>2] = $6;
$7 = ((($5)) + 4|0);
HEAP16[$7>>1] = 0;
$8 = ((($5)) + 6|0);
HEAP16[$8>>1] = 64;
_String_AppendColorless($5,$1);
_TabList_Set($0,$5,$2,$3,$4);
STACKTOP = sp;return;
}
function _CPE_SendCpeExtInfoReply() {
var $$01116 = 0, $$1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $spec$select = 0, $spec$select14 = 0;
var $spec$select15 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp + 8|0;
$1 = sp;
$2 = HEAP32[323042]|0;
$3 = ($2|0)==(0);
if (!($3)) {
STACKTOP = sp;return;
}
$4 = HEAP8[1408234]|0;
$5 = ($4<<24>>24)==(0);
$spec$select = $5 ? 30 : 33;
_CPE_SendExtInfo($spec$select);
$$01116 = 0;
while(1) {
$6 = (6816 + ($$01116<<2)|0);
$7 = HEAP32[$6>>2]|0;
_String_FromReadonly($1,$7);
$8 = $1;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $0;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = (_String_CaselessEqualsConst($0,35191)|0);
$19 = ($18|0)==(0);
$spec$select14 = $19 ? 1 : 2;
$20 = (_String_CaselessEqualsConst($0,35234)|0);
$21 = ($20|0)==(0);
$22 = HEAP32[4308]|0;
$$1 = $21 ? $spec$select14 : $22;
$23 = (_String_CaselessEqualsConst($0,35276)|0);
$24 = ($23|0)==(0);
$25 = HEAP32[4307]|0;
$spec$select15 = $24 ? $$1 : $25;
$26 = HEAP8[1408234]|0;
$27 = ($26<<24>>24)==(0);
if ($27) {
$28 = (_String_CaselessEqualsConst($0,35276)|0);
$29 = ($28|0)==(0);
if ($29) {
$30 = (_String_CaselessEqualsConst($0,35366)|0);
$31 = ($30|0)==(0);
if ($31) {
$32 = (_String_CaselessEqualsConst($0,35351)|0);
$33 = ($32|0)==(0);
if ($33) {
label = 7;
}
}
}
} else {
label = 7;
}
if ((label|0) == 7) {
label = 0;
_CPE_SendExtEntry($0,$spec$select15);
}
$34 = (($$01116) + 1)|0;
$exitcond = ($34|0)==(33);
if ($exitcond) {
break;
} else {
$$01116 = $34;
}
}
STACKTOP = sp;return;
}
function _CPE_SendExtInfo($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp;
HEAP8[$1>>0] = 16;
$2 = ((($1)) + 1|0);
_Protocol_WriteString($2,(1384568));
$3 = ((($1)) + 65|0);
$4 = $0&65535;
_Stream_SetU16_BE($3,$4);
$5 = HEAP32[(1384548)>>2]|0;
FUNCTION_TABLE_vii[$5 & 127]($1,67);
STACKTOP = sp;return;
}
function _CPE_SendExtEntry($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp;
HEAP8[$2>>0] = 17;
$3 = ((($2)) + 1|0);
_Protocol_WriteString($3,$0);
$4 = ((($2)) + 65|0);
_Stream_SetU32_BE($4,$1);
$5 = HEAP32[(1384548)>>2]|0;
FUNCTION_TABLE_vii[$5 & 127]($2,69);
STACKTOP = sp;return;
}
function _Classic_Handshake($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
HEAP16[(1384556)>>1] = 0;
HEAP16[(1384564)>>1] = 0;
$2 = ((($0)) + 1|0);
HEAP32[$1>>2] = $2;
_Protocol_ReadString($1,(1384552));
_Protocol_ReadString($1,(1384560));
$3 = HEAP32[$1>>2]|0;
$4 = HEAP8[$3>>0]|0;
$5 = HEAP8[1408287]|0;
$6 = $5 ^ 1;
_HacksComp_SetUserType((1242616),$4,$6);
_String_Copy((1242660),(1384552));
_String_AppendString((1242660),(1384560));
_HacksComp_RecheckFlags((1242616));
STACKTOP = sp;return;
}
function _Classic_Ping($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Classic_LevelInit($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408288]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
_Classic_StartLoading();
}
$3 = HEAP8[1408285]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
return;
}
$5 = (_Stream_GetU32_BE($0)|0);
HEAP32[345446] = $5;
HEAP8[(1381845)>>0] = 1;
HEAP32[345463] = 4;
return;
}
function _Classic_LevelDataChunk($0) {
$0 = $0|0;
var $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $switch$split2D = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP8[1408288]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
_Classic_StartLoading();
}
$4 = (_Stream_GetU16_BE($0)|0);
$5 = $4&65535;
$6 = ((($0)) + 2|0);
HEAP32[(1381820)>>2] = $6;
HEAP32[(1381832)>>2] = $6;
HEAP32[(1381824)>>2] = $5;
HEAP32[(1381828)>>2] = $5;
$7 = ((($0)) + 1026|0);
$8 = HEAP8[$7>>0]|0;
$9 = HEAP8[(1381845)>>0]|0;
$10 = ($9<<24>>24)==(0);
if ($10) {
$11 = (_GZipHeader_Read(1381788,1381844)|0);
$switch$split2D = ($11|0)<(0);
if ($switch$split2D) {
switch ($11|0) {
case -857812991: {
break;
}
default: {
label = 5;
}
}
} else {
switch ($11|0) {
case 0: {
break;
}
default: {
label = 5;
}
}
}
if ((label|0) == 5) {
_Logger_Abort2($11,35776);
}
$$pr = HEAP8[(1381845)>>0]|0;
$12 = ($$pr<<24>>24)==(0);
if (!($12)) {
label = 7;
}
} else {
label = 7;
}
do {
if ((label|0) == 7) {
$13 = HEAP32[345463]|0;
$14 = ($13|0)<(4);
if ($14) {
$15 = (4 - ($13))|0;
$16 = HEAP32[(1336912)>>2]|0;
$17 = (1408289 + ($13)|0);
(FUNCTION_TABLE_iiiii[$16 & 63]((1336912),$17,$15,$1)|0);
$18 = HEAP32[$1>>2]|0;
$19 = HEAP32[345463]|0;
$20 = (($19) + ($18))|0;
HEAP32[345463] = $20;
$21 = $20;
} else {
$21 = $13;
}
$22 = ($21|0)==(4);
if ($22) {
$23 = HEAP32[345446]|0;
$24 = ($23|0)==(0);
if ($24) {
$25 = (_Stream_GetU32_BE(1408289)|0);
HEAP32[345446] = $25;
}
$26 = HEAP8[1408278]|0;
$27 = ($26<<24>>24)==(0);
$28 = ($8<<24>>24)==(0);
$or$cond = $28 | $27;
if ($or$cond) {
_MapState_Read(1292176);
break;
} else {
_MapState_Read(1336980);
break;
}
}
}
} while(0);
$29 = HEAP32[(1336968)>>2]|0;
$30 = ($29|0)==(0|0);
if ($30) {
$36 = 0.0;
_Event_RaiseFloat((1253936),$36);
STACKTOP = sp;return;
}
$31 = HEAP32[(1336972)>>2]|0;
$32 = (+($31|0));
$33 = HEAP32[345446]|0;
$34 = (+($33|0));
$35 = $32 / $34;
$36 = $35;
_Event_RaiseFloat((1253936),$36);
STACKTOP = sp;return;
}
function _Classic_LevelFinalise($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Gui_Remove(1381856);
_Camera_CheckFocus();
$2 = (_DateTime_CurrentUTC_MS()|0);
$3 = (getTempRet0() | 0);
$4 = 549616;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (_i64Subtract(($2|0),($3|0),($6|0),($9|0))|0);
$11 = (getTempRet0() | 0);
HEAP32[$1>>2] = $10;
_Platform_Log1(35685,$1);
HEAP8[1408288] = 0;
_WoM_CheckSendWomID();
$12 = HEAP8[(1336976)>>0]|0;
$13 = ($12<<24>>24)==(0);
if (!($13)) {
STACKTOP = sp;return;
}
$14 = HEAP8[(1381780)>>0]|0;
$15 = ($14<<24>>24)==(0);
if (!($15)) {
$16 = HEAP32[(1336968)>>2]|0;
_Mem_Free($16);
HEAP32[(1336968)>>2] = 0;
STACKTOP = sp;return;
}
$17 = (_Stream_GetU16_BE($0)|0);
$18 = $17&65535;
$19 = ((($0)) + 2|0);
$20 = (_Stream_GetU16_BE($19)|0);
$21 = $20&65535;
$22 = ((($0)) + 4|0);
$23 = (_Stream_GetU16_BE($22)|0);
$24 = $23&65535;
$25 = HEAP32[345446]|0;
$26 = Math_imul($21, $18)|0;
$27 = Math_imul($26, $24)|0;
$28 = ($25|0)==($27|0);
if (!($28)) {
_Logger_Abort(35706);
}
$29 = HEAP32[(1336968)>>2]|0;
_World_SetNewMap($29,$18,$21,$24);
$30 = HEAP8[1408278]|0;
$31 = ($30<<24>>24)!=(0);
$32 = HEAP32[(1381772)>>2]|0;
$33 = ($32|0)!=(0|0);
$or$cond = $31 & $33;
if ($or$cond) {
_World_SetMapUpper($32);
}
_Event_RaiseVoid((1254196));
STACKTOP = sp;return;
}
function _Classic_SetBlock($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_Stream_GetU16_BE($0)|0);
$2 = $1&65535;
$3 = ((($0)) + 2|0);
$4 = (_Stream_GetU16_BE($3)|0);
$5 = $4&65535;
$6 = ((($0)) + 4|0);
$7 = (_Stream_GetU16_BE($6)|0);
$8 = $7&65535;
$9 = ((($0)) + 6|0);
$10 = HEAP8[1408278]|0;
$11 = ($10<<24>>24)==(0);
if ($11) {
$13 = HEAP8[$9>>0]|0;
$14 = $13&255;
$$0 = $14;
} else {
$12 = (_Stream_GetU16_BE($9)|0);
$$0 = $12;
}
$15 = (_World_Contains_1309($2,$5,$8)|0);
$16 = ($15<<24>>24)==(0);
if ($16) {
return;
}
_Game_UpdateBlock($2,$5,$8,$$0);
return;
}
function _Classic_AddEntity($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0;
$1 = sp + 136|0;
$2 = sp + 144|0;
$3 = sp + 64|0;
$4 = sp + 128|0;
$5 = sp;
HEAP32[$2>>2] = $3;
$6 = ((($2)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($2)) + 6|0);
HEAP16[$7>>1] = 64;
HEAP32[$4>>2] = $5;
$8 = ((($4)) + 4|0);
HEAP16[$8>>1] = 0;
$9 = ((($4)) + 6|0);
HEAP16[$9>>1] = 64;
$10 = ((($0)) + 1|0);
HEAP32[$1>>2] = $10;
$11 = HEAP8[$0>>0]|0;
_Protocol_ReadString($1,$2);
_Protocol_CheckName($11,$2,$4);
$12 = HEAP32[$1>>2]|0;
_Protocol_AddEntity($12,$11,$2,$4,1);
_Protocol_AddTablistEntry($11,$2,$2,17268,0);
$13 = $11&255;
$14 = $13 & 7;
$15 = 1 << $14;
$16 = (3)?($13 >>> 3):($13);
$17 = (496592 + ($16)|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18&255;
$20 = $15 | $19;
$21 = $20&255;
HEAP8[$17>>0] = $21;
STACKTOP = sp;return;
}
function _Classic_EntityTeleport($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 1|0);
$2 = HEAP8[$0>>0]|0;
_Classic_ReadAbsoluteLocation($1,$2,1);
return;
}
function _Classic_RelPosAndOrientationUpdate($0) {
$0 = $0|0;
var $$byval_copy = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0;
var $27 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$$byval_copy = sp + 48|0;
$1 = sp + 16|0;
$2 = sp;
$3 = HEAP8[$0>>0]|0;
$4 = ((($0)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = (+($5<<24>>24));
$7 = $6 * 0.03125;
HEAPF32[$2>>2] = $7;
$8 = ((($0)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = (+($9<<24>>24));
$11 = $10 * 0.03125;
$12 = ((($2)) + 4|0);
HEAPF32[$12>>2] = $11;
$13 = ((($0)) + 3|0);
$14 = HEAP8[$13>>0]|0;
$15 = (+($14<<24>>24));
$16 = $15 * 0.03125;
$17 = ((($2)) + 8|0);
HEAPF32[$17>>2] = $16;
$18 = ((($0)) + 4|0);
$19 = HEAP8[$18>>0]|0;
$20 = (+($19&255));
$21 = $20 * 360.0;
$22 = $21 * 0.00390625;
$23 = ((($0)) + 5|0);
$24 = HEAP8[$23>>0]|0;
$25 = (+($24&255));
$26 = $25 * 360.0;
$27 = $26 * 0.00390625;
;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;
_LocationUpdate_MakePosAndOri($1,$$byval_copy,$22,$27,1);
_Protocol_UpdateLocation($3,$1,1);
STACKTOP = sp;return;
}
function _Classic_RelPositionUpdate($0) {
$0 = $0|0;
var $$byval_copy = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$$byval_copy = sp + 48|0;
$1 = sp + 16|0;
$2 = sp;
$3 = HEAP8[$0>>0]|0;
$4 = ((($0)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = (+($5<<24>>24));
$7 = $6 * 0.03125;
HEAPF32[$2>>2] = $7;
$8 = ((($0)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = (+($9<<24>>24));
$11 = $10 * 0.03125;
$12 = ((($2)) + 4|0);
HEAPF32[$12>>2] = $11;
$13 = ((($0)) + 3|0);
$14 = HEAP8[$13>>0]|0;
$15 = (+($14<<24>>24));
$16 = $15 * 0.03125;
$17 = ((($2)) + 8|0);
HEAPF32[$17>>2] = $16;
;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;
_LocationUpdate_MakePos($1,$$byval_copy,1);
_Protocol_UpdateLocation($3,$1,1);
STACKTOP = sp;return;
}
function _Classic_OrientationUpdate($0) {
$0 = $0|0;
var $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp;
$2 = HEAP8[$0>>0]|0;
$3 = ((($0)) + 1|0);
$4 = HEAP8[$3>>0]|0;
$5 = (+($4&255));
$6 = $5 * 360.0;
$7 = $6 * 0.00390625;
$8 = ((($0)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = (+($9&255));
$11 = $10 * 360.0;
$12 = $11 * 0.00390625;
_LocationUpdate_MakeOri($1,$7,$12);
_Protocol_UpdateLocation($2,$1,1);
STACKTOP = sp;return;
}
function _Classic_RemoveEntity($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
_Protocol_RemoveEntity($1);
return;
}
function _Classic_Message($0) {
$0 = $0|0;
var $$0 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$1 = sp + 88|0;
$2 = sp + 80|0;
$3 = sp;
$4 = sp + 72|0;
$5 = ((($0)) + 1|0);
HEAP32[$1>>2] = $5;
$6 = HEAP8[$0>>0]|0;
HEAP32[$2>>2] = $3;
$7 = ((($2)) + 4|0);
HEAP16[$7>>1] = 0;
$8 = ((($2)) + 6|0);
HEAP16[$8>>1] = 66;
$9 = HEAP8[1408283]|0;
$10 = ($9<<24>>24)==(0);
if ($10) {
$11 = ($6<<24>>24)==(-1);
if ($11) {
_String_AppendConst($2,35647);
$$0 = 0;
} else {
$$0 = 0;
}
} else {
$$0 = $6;
}
_Protocol_ReadString($1,$2);
$12 = (_String_CaselessStarts($2,17252)|0);
$13 = ($12|0)==(0);
if ($13) {
$$1 = $$0;
} else {
_String_UNSAFE_SubstringAt($4,$2,13);
$14 = $4;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = $2;
$21 = $20;
HEAP32[$21>>2] = $16;
$22 = (($20) + 4)|0;
$23 = $22;
HEAP32[$23>>2] = $19;
$$1 = 3;
}
$24 = (_String_CaselessStarts($2,17260)|0);
$25 = ($24|0)==(0);
if (!($25)) {
STACKTOP = sp;return;
}
$26 = $$1&255;
_Chat_AddOf($2,$26);
STACKTOP = sp;return;
}
function _Classic_Kick($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_Protocol_UNSAFE_GetString($1,$0);
_Game_Disconnect(17244,$1);
STACKTOP = sp;return;
}
function _Classic_SetPermission($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = HEAP8[1408287]|0;
$3 = $2 ^ 1;
_HacksComp_SetUserType((1242616),$1,$3);
_HacksComp_RecheckFlags((1242616));
return;
}
function _WoM_CheckSendWomID() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408280]|0;
$1 = ($0<<24>>24)==(0);
$2 = HEAP8[1408281]|0;
$3 = ($2<<24>>24)!=(0);
$or$cond = $1 | $3;
if ($or$cond) {
return;
}
_Chat_Send(17276,0);
HEAP8[1408281] = 1;
return;
}
function _Classic_StartLoading() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
_World_Reset();
_Event_RaiseVoid(1253676);
_Stream_ReadonlyMemory(1381788,0,0);
_LoadingScreen_Show((1384552),(1384560));
_WoM_CheckMotd();
HEAP8[1408286] = 0;
_GZipHeader_Init(1381844);
HEAP8[1408288] = 1;
HEAP32[345463] = 0;
$0 = (_DateTime_CurrentUTC_MS()|0);
$1 = (getTempRet0() | 0);
$2 = 549616;
$3 = $2;
HEAP32[$3>>2] = $0;
$4 = (($2) + 4)|0;
$5 = $4;
HEAP32[$5>>2] = $1;
HEAP32[345446] = 0;
_MapState_Init(1292176);
_MapState_Init(1336980);
return;
}
function _MapState_Read($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 44800|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
STACKTOP = sp;return;
}
$5 = ((($0)) + 44792|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0|0);
if ($7) {
$8 = HEAP32[345446]|0;
$9 = (_Mem_TryAlloc($8,1)|0);
HEAP32[$5>>2] = $9;
$10 = ($9|0)==(0|0);
if ($10) {
_Window_ShowDialog(36269,35793);
HEAP8[$2>>0] = 1;
STACKTOP = sp;return;
}
}
$11 = HEAP32[345446]|0;
$12 = ((($0)) + 44796|0);
$13 = HEAP32[$12>>2]|0;
$14 = (($11) - ($13))|0;
$15 = ((($0)) + 44736|0);
$16 = HEAP32[$15>>2]|0;
$17 = HEAP32[$5>>2]|0;
$18 = (($17) + ($13)|0);
(FUNCTION_TABLE_iiiii[$16 & 63]($15,$18,$14,$1)|0);
$19 = HEAP32[$1>>2]|0;
$20 = HEAP32[$12>>2]|0;
$21 = (($20) + ($19))|0;
HEAP32[$12>>2] = $21;
STACKTOP = sp;return;
}
function _WoM_CheckMotd() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond$not = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$0 = sp + 80|0;
$1 = sp;
$2 = sp + 72|0;
$3 = sp + 64|0;
$4 = (1384560);
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $2;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = ((($2)) + 4|0);
$15 = HEAP16[$14>>1]|0;
$16 = ($15<<16>>16)==(0);
if ($16) {
STACKTOP = sp;return;
}
$17 = (_String_IndexOfString($2,17284)|0);
$18 = HEAP8[1408229]|0;
$19 = ($18<<24>>24)!=(0);
$20 = HEAP8[1408233]|0;
$21 = ($20<<24>>24)==(0);
$or$cond$not = $19 & $21;
$22 = ($17|0)==(-1);
$or$cond3 = $22 | $or$cond$not;
if ($or$cond3) {
STACKTOP = sp;return;
}
$23 = (($17) + 4)|0;
_String_UNSAFE_SubstringAt($3,$2,$23);
HEAP32[$0>>2] = $1;
$24 = ((($0)) + 4|0);
HEAP16[$24>>1] = 0;
$25 = ((($0)) + 6|0);
HEAP16[$25>>1] = 64;
_String_Format1($0,35863,$3);
$26 = HEAP32[323041]|0;
$27 = (($26) + 1)|0;
HEAP32[323041] = $27;
_WoM_UpdateIdentifier();
_Http_AsyncGetData($0,1,17220);
HEAP8[1408280] = 1;
STACKTOP = sp;return;
}
function _MapState_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 44736|0);
_Inflate_MakeStream($1,$0,1381788);
$2 = ((($0)) + 44796|0);
HEAP32[$2>>2] = 0;
$3 = ((($0)) + 44792|0);
HEAP32[$3>>2] = 0;
$4 = ((($0)) + 44800|0);
HEAP8[$4>>0] = 0;
return;
}
function _Protocol_Tick() {
var label = 0, sp = 0;
sp = STACKTOP;
_Classic_Tick();
_CPE_Tick();
_WoM_Tick();
return;
}
function _Classic_Tick() {
var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0.0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$$byval_copy = sp;
$0 = HEAP8[1408286]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
STACKTOP = sp;return;
}
$2 = +HEAPF32[(1242172)>>2];
$3 = +HEAPF32[(1242168)>>2];
;HEAP32[$$byval_copy>>2]=HEAP32[(1242156)>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[(1242156)+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[(1242156)+8>>2]|0;
_Classic_WritePosition($$byval_copy,$2,$3);
STACKTOP = sp;return;
}
function _CPE_Tick() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[323043]|0;
$1 = (($0) + 1)|0;
HEAP32[323043] = $1;
$2 = ($0|0)<(19);
$3 = HEAP8[1408284]|0;
$4 = ($3<<24>>24)==(0);
$or$cond = $2 | $4;
if ($or$cond) {
return;
}
$5 = (_Ping_NextPingId()|0);
_CPE_WriteTwoWayPing(0,$5);
HEAP32[323043] = 0;
return;
}
function _WoM_Tick() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 432|0;
$0 = sp;
$1 = (_Http_GetResult(17220,$0)|0);
$2 = ($1<<24>>24)==(0);
if (!($2)) {
$3 = ((($0)) + 421|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
_WoM_ParseConfig($0);
_HttpRequest_Free($0);
}
}
STACKTOP = sp;return;
}
function _WoM_ParseConfig($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224|0;
$1 = sp + 208|0;
$2 = sp;
$3 = sp + 152|0;
$4 = sp + 144|0;
$5 = sp + 136|0;
$6 = sp + 128|0;
HEAP32[$1>>2] = $2;
$7 = ((($1)) + 4|0);
HEAP16[$7>>1] = 0;
$8 = ((($1)) + 6|0);
HEAP16[$8>>1] = 128;
$9 = ((($0)) + 284|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($0)) + 288|0);
$12 = HEAP32[$11>>2]|0;
_Stream_ReadonlyMemory($3,$10,$12);
$13 = (_Stream_ReadLine($3,$1)|0);
$14 = ($13|0)==(0);
if (!($14)) {
STACKTOP = sp;return;
}
while(1) {
_Platform_Log($1);
$15 = (_String_UNSAFE_Separate($1,61,$4,$5)|0);
$16 = ($15|0)==(0);
do {
if (!($16)) {
$19 = (_String_CaselessEqualsConst($4,35878)|0);
$20 = ($19|0)==(0);
if (!($20)) {
$21 = (_WoM_ParseCol($5,-1)|0);
_Env_SetCloudsCol($21);
break;
}
$22 = (_String_CaselessEqualsConst($4,35896)|0);
$23 = ($22|0)==(0);
if (!($23)) {
$24 = (_WoM_ParseCol($5,-13159)|0);
_Env_SetSkyCol($24);
break;
}
$25 = (_String_CaselessEqualsConst($4,35912)|0);
$26 = ($25|0)==(0);
if (!($26)) {
$27 = (_WoM_ParseCol($5,-1)|0);
_Env_SetFogCol($27);
break;
}
$28 = (_String_CaselessEqualsConst($4,35928)|0);
$29 = ($28|0)==(0);
if ($29) {
$33 = (_String_CaselessEqualsConst($4,35946)|0);
$34 = ($33|0)==(0);
$35 = HEAP8[1408283]|0;
$36 = ($35<<24>>24)!=(0);
$or$cond = $34 | $36;
if ($or$cond) {
break;
}
_Chat_AddOf($5,2);
break;
} else {
$30 = (_Convert_ParseInt($5,$6)|0);
$31 = ($30<<24>>24)==(0);
if ($31) {
break;
}
$32 = HEAP32[$6>>2]|0;
_Env_SetEdgeHeight($32);
break;
}
}
} while(0);
$17 = (_Stream_ReadLine($3,$1)|0);
$18 = ($17|0)==(0);
if (!($18)) {
break;
}
}
STACKTOP = sp;return;
}
function _WoM_ParseCol($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_Convert_ParseInt($0,$2)|0);
$4 = ($3<<24>>24)==(0);
if ($4) {
$$0 = $1;
STACKTOP = sp;return ($$0|0);
}
$5 = HEAP32[$2>>2]|0;
$6 = (16)?($5 >>> 16):($5);
$7 = $6 & 255;
$8 = $5 & 65280;
$9 = $5 << 16;
$10 = $8 | $9;
$11 = $10 | $7;
$12 = $11 | -16777216;
$$0 = $12;
STACKTOP = sp;return ($$0|0);
}
function _Screen_FInput($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Screen_FKeyPress($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Screen_FText($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Screen_FMouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Screen_FPointer($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Screen_TInput($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _Screen_TKeyPress($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _Screen_TText($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _Screen_TMouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _Screen_TPointer($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _Screen_NullFunc($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Screen_NullUpdate($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Screen_InputDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$off = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$off = (($1) + -1)|0;
$2 = ($$off>>>0)>(34);
$3 = $2&1;
return ($3|0);
}
function _Screen_RenderWidgets($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$016 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
return;
}
$$016 = 0;
while(1) {
$7 = (($3) + ($$016<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0|0);
if (!($9)) {
$10 = HEAP32[$8>>2]|0;
$11 = HEAP32[$10>>2]|0;
FUNCTION_TABLE_vid[$11 & 63]($8,$1);
}
$12 = (($$016) + 1)|0;
$13 = HEAP32[$4>>2]|0;
$14 = ($12|0)<($13|0);
if ($14) {
$$016 = $12;
} else {
break;
}
}
return;
}
function _Screen_Render2Widgets($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$01920 = 0, $$021 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_SetVertexFormat(1);
$4 = ((($0)) + 8|0);
$5 = HEAP32[$4>>2]|0;
_Gfx_BindVb($5);
$6 = ((($0)) + 16|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)>(0);
if (!($8)) {
return;
}
$$01920 = 0;$$021 = 0;
while(1) {
$9 = (($3) + ($$01920<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if ($11) {
$$1 = $$021;
} else {
$12 = HEAP32[$10>>2]|0;
$13 = ((($12)) + 40|0);
$14 = HEAP32[$13>>2]|0;
$15 = (FUNCTION_TABLE_iii[$14 & 127]($10,$$021)|0);
$$1 = $15;
}
$16 = (($$01920) + 1)|0;
$17 = HEAP32[$6>>2]|0;
$18 = ($16|0)<($17|0);
if ($18) {
$$01920 = $16;$$021 = $$1;
} else {
break;
}
}
return;
}
function _Screen_Layout($0) {
$0 = $0|0;
var $$015 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 16|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
return;
}
$$015 = 0;
while(1) {
$6 = (($2) + ($$015<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(0|0);
if (!($8)) {
$9 = HEAP32[$7>>2]|0;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
FUNCTION_TABLE_vi[$11 & 511]($7);
}
$12 = (($$015) + 1)|0;
$13 = HEAP32[$3>>2]|0;
$14 = ($12|0)<($13|0);
if ($14) {
$$015 = $12;
} else {
break;
}
}
return;
}
function _Screen_ContextLost($0) {
$0 = $0|0;
var $$016 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 8|0);
_Gfx_DeleteVb($3);
$4 = ((($0)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
return;
}
$$016 = 0;
while(1) {
$7 = (($2) + ($$016<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0|0);
if (!($9)) {
$10 = HEAP32[$8>>2]|0;
$11 = ((($10)) + 4|0);
$12 = HEAP32[$11>>2]|0;
FUNCTION_TABLE_vi[$12 & 511]($8);
}
$13 = (($$016) + 1)|0;
$14 = HEAP32[$4>>2]|0;
$15 = ($13|0)<($14|0);
if ($15) {
$$016 = $13;
} else {
break;
}
}
return;
}
function _Screen_BuildMesh($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$018 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
HEAP32[$2>>2] = $1;
$3 = ((($0)) + 12|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 16|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)>(0);
if (!($7)) {
STACKTOP = sp;return;
}
$$018 = 0;
while(1) {
$8 = (($4) + ($$018<<2)|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0|0);
if (!($10)) {
$11 = HEAP32[$9>>2]|0;
$12 = ((($11)) + 36|0);
$13 = HEAP32[$12>>2]|0;
FUNCTION_TABLE_vii[$13 & 127]($9,$2);
}
$14 = (($$018) + 1)|0;
$15 = HEAP32[$5>>2]|0;
$16 = ($14|0)<($15|0);
if ($16) {
$$018 = $14;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _HUDScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[137406] = 17292;
_Gui_Replace(549624,15);
return;
}
function _HUDScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
_HUDScreen_Update($0,$1);
$2 = HEAP8[1408238]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
return;
}
$4 = HEAP8[1408260]|0;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$6 = ((($0)) + 32|0);
$7 = HEAP32[$6>>2]|0;
$8 = HEAP32[$7>>2]|0;
FUNCTION_TABLE_vid[$8 & 63]($6,$1);
}
$9 = HEAP8[1408229]|0;
$10 = ($9<<24>>24)==(0);
if ($10) {
$14 = (_IsOnlyHudActive()|0);
$15 = ($14<<24>>24)==(0);
$16 = HEAP8[1408260]|0;
$17 = ($16<<24>>24)==(0);
$or$cond = $15 | $17;
if (!($or$cond)) {
$18 = (_HUDScreen_HacksChanged($0)|0);
$19 = ($18<<24>>24)==(0);
if (!($19)) {
_HUDScreen_UpdateHackState($0);
}
_HUDScreen_DrawPosition($0);
$20 = ((($0)) + 100|0);
$21 = HEAP32[$20>>2]|0;
$22 = HEAP32[$21>>2]|0;
FUNCTION_TABLE_vid[$22 & 63]($20,$1);
}
} else {
$11 = ((($0)) + 100|0);
$12 = HEAP32[$11>>2]|0;
$13 = HEAP32[$12>>2]|0;
FUNCTION_TABLE_vid[$13 & 63]($11,$1);
}
return;
}
function _HUDScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _HUDScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_Font_Free($1);
$2 = ((($0)) + 168|0);
_TextAtlas_Free($2);
$3 = ((($0)) + 32|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==(0|0);
if (!($5)) {
$6 = ((($4)) + 4|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vi[$7 & 511]($3);
}
$8 = ((($0)) + 100|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0|0);
if ($10) {
return;
}
$11 = ((($9)) + 4|0);
$12 = HEAP32[$11>>2]|0;
FUNCTION_TABLE_vi[$12 & 511]($8);
return;
}
function _HUDScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
$2 = ((($0)) + 100|0);
$3 = ((($0)) + 20|0);
_Drawer2D_MakeFont($3,16,0);
_Font_ReducePadding($3,4);
_TextWidget_Make($1,0,0,2,2);
_HUDScreen_Update($0,1.0);
$4 = ((($0)) + 48|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + 2)|0;
$7 = ((($0)) + 168|0);
_TextAtlas_Make($7,17356,$3,17364);
$8 = $6&65535;
$9 = ((($0)) + 174|0);
HEAP16[$9>>1] = $8;
$10 = ((($0)) + 178|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
$13 = (($6) + ($12))|0;
_TextWidget_Make($2,0,0,2,0);
$14 = ((($0)) + 128|0);
HEAP32[$14>>2] = $13;
$15 = HEAP8[1408229]|0;
$16 = ($15<<24>>24)==(0);
if ($16) {
_HUDScreen_UpdateHackState($0);
return;
} else {
HEAP32[$14>>2] = 2;
$17 = HEAP16[$9>>1]|0;
$18 = $17 << 16 >> 16;
$19 = ((($0)) + 60|0);
HEAP32[$19>>2] = $18;
_TextWidget_SetConst($2,35958,$3);
$20 = HEAP32[$1>>2]|0;
$21 = ((($20)) + 8|0);
$22 = HEAP32[$21>>2]|0;
FUNCTION_TABLE_vi[$22 & 511]($1);
$23 = HEAP32[$2>>2]|0;
$24 = ((($23)) + 8|0);
$25 = HEAP32[$24>>2]|0;
FUNCTION_TABLE_vi[$25 & 511]($2);
return;
}
}
function _HUDScreen_Update($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$2 = sp + 128|0;
$3 = sp;
$4 = ((($0)) + 280|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + 1)|0;
HEAP32[$4>>2] = $6;
$7 = ((($0)) + 272|0);
$8 = +HEAPF64[$7>>3];
$9 = $8 + $1;
HEAPF64[$7>>3] = $9;
$10 = $9 < 1.0;
if ($10) {
STACKTOP = sp;return;
}
HEAP32[$2>>2] = $3;
$11 = ((($2)) + 4|0);
HEAP16[$11>>1] = 0;
$12 = ((($2)) + 6|0);
HEAP16[$12>>1] = 128;
_HUDScreen_MakeText($0,$2);
$13 = ((($0)) + 32|0);
$14 = ((($0)) + 20|0);
_TextWidget_Set($13,$2,$14);
HEAPF64[$7>>3] = 0.0;
HEAP32[$4>>2] = 0;
HEAP32[(535488)>>2] = 0;
STACKTOP = sp;return;
}
function _HUDScreen_UpdateHackState($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$1 = sp + 128|0;
$2 = sp;
$3 = HEAP8[(1242654)>>0]|0;
$4 = ((($0)) + 288|0);
HEAP8[$4>>0] = $3;
$5 = HEAP8[(1242655)>>0]|0;
$6 = ((($0)) + 289|0);
HEAP8[$6>>0] = $5;
$7 = HEAP8[(1242651)>>0]|0;
$8 = ((($0)) + 291|0);
HEAP8[$8>>0] = $7;
$9 = HEAP8[(1242650)>>0]|0;
$10 = ((($0)) + 290|0);
HEAP8[$10>>0] = $9;
$11 = HEAP32[315053]|0;
$12 = ((($0)) + 296|0);
HEAP32[$12>>2] = $11;
$13 = HEAP8[(1242629)>>0]|0;
$14 = ((($0)) + 292|0);
HEAP8[$14>>0] = $13;
HEAP32[$1>>2] = $2;
$15 = ((($1)) + 4|0);
HEAP16[$15>>1] = 0;
$16 = ((($1)) + 6|0);
HEAP16[$16>>1] = 128;
$17 = HEAP32[315071]|0;
$18 = ($11|0)==($17|0);
if (!($18)) {
_String_Format1($1,35963,1260212);
}
$19 = HEAP8[(1242654)>>0]|0;
$20 = HEAP8[(1242655)>>0]|0;
$21 = $20 | $19;
$22 = ($21<<24>>24)==(0);
$23 = HEAP8[(1242629)>>0]|0;
$24 = ($23<<24>>24)==(0);
$25 = HEAP8[(1242651)>>0]|0;
$26 = ($25<<24>>24)==(0);
if (!($26)) {
_String_AppendConst($1,35977);
}
$27 = $22 | $24;
if (!($27)) {
_String_AppendConst($1,35987);
}
$28 = HEAP8[(1242650)>>0]|0;
$29 = ($28<<24>>24)==(0);
if ($29) {
$30 = ((($0)) + 100|0);
$31 = ((($0)) + 20|0);
_TextWidget_Set($30,$1,$31);
STACKTOP = sp;return;
}
_String_AppendConst($1,35999);
$30 = ((($0)) + 100|0);
$31 = ((($0)) + 20|0);
_TextWidget_Set($30,$1,$31);
STACKTOP = sp;return;
}
function _HUDScreen_MakeText($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 4|0;
$3 = sp;
$4 = ((($0)) + 280|0);
$5 = HEAP32[$4>>2]|0;
$6 = (+($5|0));
$7 = ((($0)) + 272|0);
$8 = +HEAPF64[$7>>3];
$9 = $6 / $8;
$10 = (~~(($9)));
$11 = ((($0)) + 284|0);
HEAP32[$11>>2] = $10;
_String_Format1($1,36039,$11);
$12 = HEAP8[1408229]|0;
$13 = ($12<<24>>24)==(0);
if (!($13)) {
_String_Format1($1,36048,(535488));
STACKTOP = sp;return;
}
$14 = HEAP32[(535488)>>2]|0;
$15 = ($14|0)==(0);
if (!($15)) {
_String_Format1($1,36065,(535488));
}
$16 = HEAP32[315073]|0;
$17 = (2)?($16 >> 2):($16);
$18 = ($17*6)|0;
HEAP32[$2>>2] = $18;
_String_Format1($1,36079,$2);
$19 = (_Ping_AveragePingMS()|0);
HEAP32[$3>>2] = $19;
$20 = ($19|0)==(0);
if ($20) {
STACKTOP = sp;return;
}
_String_Format1($1,36091,$3);
STACKTOP = sp;return;
}
function _IsOnlyHudActive() {
var $$010 = 0, $$08 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[315198]|0;
$1 = ($0|0)>(0);
if (!($1)) {
$$08 = 1;
return ($$08|0);
}
$2 = HEAP32[315197]|0;
$3 = HEAP32[315198]|0;
$$010 = 0;
while(1) {
$6 = (379280 + ($$010<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($7)) + 4|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(0);
$11 = ($7|0)==($2|0);
$or$cond = $10 | $11;
$4 = (($$010) + 1)|0;
if (!($or$cond)) {
$$08 = 0;
label = 5;
break;
}
$5 = ($4|0)<($3|0);
if ($5) {
$$010 = $4;
} else {
$$08 = 1;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$08|0);
}
return (0)|0;
}
function _HUDScreen_HacksChanged($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1242654)>>0]|0;
$2 = ((($0)) + 288|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($1<<24>>24)==($3<<24>>24);
if (!($4)) {
$25 = 1;
return ($25|0);
}
$5 = HEAP8[(1242655)>>0]|0;
$6 = ((($0)) + 289|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($5<<24>>24)==($7<<24>>24);
if (!($8)) {
$25 = 1;
return ($25|0);
}
$9 = HEAP8[(1242651)>>0]|0;
$10 = ((($0)) + 291|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($9<<24>>24)==($11<<24>>24);
if (!($12)) {
$25 = 1;
return ($25|0);
}
$13 = HEAP8[(1242650)>>0]|0;
$14 = ((($0)) + 290|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($13<<24>>24)==($15<<24>>24);
if (!($16)) {
$25 = 1;
return ($25|0);
}
$17 = HEAP32[315053]|0;
$18 = ((($0)) + 296|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($17|0)==($19|0);
if (!($20)) {
$25 = 1;
return ($25|0);
}
$21 = HEAP8[(1242629)>>0]|0;
$22 = ((($0)) + 292|0);
$23 = HEAP8[$22>>0]|0;
$24 = ($21<<24>>24)!=($23<<24>>24);
$phitmp = $24&1;
$25 = $phitmp;
return ($25|0);
}
function _HUDScreen_DrawPosition($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 6192|0;
$1 = sp;
$2 = sp + 6184|0;
$3 = sp + 6156|0;
$4 = sp + 6144|0;
HEAP32[$2>>2] = $1;
$5 = ((($0)) + 168|0);
;HEAP32[$3>>2]=HEAP32[$5>>2]|0;HEAP32[$3+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$3+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$3+16>>2]=HEAP32[$5+16>>2]|0;HEAP32[$3+20>>2]=HEAP32[$5+20>>2]|0;HEAP32[$3+24>>2]=HEAP32[$5+24>>2]|0;
$6 = ((($3)) + 4|0);
HEAP16[$6>>1] = 2;
$7 = ((($0)) + 196|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8&65535;
$10 = ((($3)) + 8|0);
HEAP16[$10>>1] = $9;
_Gfx_Make2DQuad($3,-1,$2);
_IVec3_Floor($4,(1242156));
$11 = HEAP32[$7>>2]|0;
$12 = (($11) + 2)|0;
$13 = ((($0)) + 200|0);
HEAP32[$13>>2] = $12;
_TextAtlas_Add($5,13,$2);
$14 = HEAP32[$4>>2]|0;
_TextAtlas_AddInt($5,$14,$2);
_TextAtlas_Add($5,11,$2);
$15 = ((($4)) + 4|0);
$16 = HEAP32[$15>>2]|0;
_TextAtlas_AddInt($5,$16,$2);
_TextAtlas_Add($5,11,$2);
$17 = ((($4)) + 8|0);
$18 = HEAP32[$17>>2]|0;
_TextAtlas_AddInt($5,$18,$2);
_TextAtlas_Add($5,14,$2);
$19 = HEAP32[$5>>2]|0;
_Gfx_BindTexture($19);
$20 = HEAP32[$2>>2]|0;
$21 = $1;
$22 = (($20) - ($21))|0;
$23 = (($22|0) / 24)&-1;
$24 = HEAP32[(1280020)>>2]|0;
_Gfx_UpdateDynamicVb_IndexedTris($24,$1,$23);
STACKTOP = sp;return;
}
function _ChatScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(565572)>>2] = -2147483648;
HEAP32[137482] = 17372;
HEAP32[315197] = 549928;
_Gui_Replace(549928,10);
return;
}
function _ChatScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_HotbarWidget_Create($1);
_ChatScreen_ChatInit($0);
_Event_Register((1254976),$0,18);
_Event_Register((1255496),$0,109);
_Event_Register(1249516,$0,110);
_Event_Register((1249776),$0,111);
_Event_Register((1250036),$0,112);
$2 = HEAP8[1408267]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
return;
}
$4 = ((($0)) + 17976|0);
_ButtonWidget_Make($4,100,0,2,0,10,10);
$5 = ((($0)) + 18056|0);
_ButtonWidget_Make($5,100,0,2,0,10,60);
return;
}
function _ChatScreen_Free($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 15628|0);
HEAP8[$1>>0] = 0;
_Event_Unregister((1254976),$0,18);
_Event_Unregister((1255496),$0,109);
_Event_Unregister(1249516,$0,110);
_Event_Unregister((1249776),$0,111);
_Event_Unregister((1250036),$0,112);
return;
}
function _ChatScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0;
var $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408238]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
$4 = ((($0)) + 4|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if (!($6)) {
$7 = ((($0)) + 15744|0);
$8 = HEAP32[$7>>2]|0;
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_vid[$9 & 63]($7,$1);
}
$$pr = HEAP8[1408238]|0;
$10 = ($$pr<<24>>24)==(0);
if (!($10)) {
return;
}
}
$11 = (_Gui_GetBlocksWorld()|0);
$12 = ($11|0)!=(0|0);
$13 = ((($0)) + 15628|0);
$14 = HEAP8[$13>>0]|0;
$15 = ($14<<24>>24)!=(0);
$or$cond = $12 | $15;
if (!($or$cond)) {
_ChatScreen_DrawCrosshairs();
}
$16 = ((($0)) + 4|0);
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)==(0);
if (!($18)) {
$19 = HEAP8[1408229]|0;
$20 = ($19<<24>>24)==(0);
$21 = HEAP8[1408233]|0;
$22 = ($21<<24>>24)!=(0);
$or$cond3 = $20 | $22;
if ($or$cond3) {
_ChatScreen_DrawChatBackground($0);
}
}
if (!($12)) {
$23 = ((($0)) + 20|0);
$24 = HEAP32[$23>>2]|0;
$25 = HEAP32[$24>>2]|0;
FUNCTION_TABLE_vid[$25 & 63]($23,$1);
}
_ChatScreen_DrawChat($0,$1);
$26 = HEAP8[$13>>0]|0;
$27 = ($26<<24>>24)==(0);
if (!($27)) {
$28 = (_IsOnlyHudActive()|0);
$29 = ($28<<24>>24)==(0);
if (!($29)) {
$30 = HEAP8[$16>>0]|0;
$31 = ((($0)) + 136|0);
$32 = ((($0)) + 156|0);
HEAP8[$32>>0] = $30;
$33 = HEAP32[$31>>2]|0;
$34 = HEAP32[$33>>2]|0;
FUNCTION_TABLE_vid[$34 & 63]($31,$1);
$35 = (_KeyBind_IsPressed(11)|0);
$36 = ($35<<24>>24)==(0);
if ($36) {
HEAP8[$13>>0] = 0;
$37 = HEAP32[$31>>2]|0;
$38 = ((($37)) + 4|0);
$39 = HEAP32[$38>>2]|0;
FUNCTION_TABLE_vi[$39 & 511]($31);
}
}
}
return;
}
function _ChatScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _ChatScreen_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond35 = 0, $or$cond5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(379739)>>0]|0;
$3 = $2&255;
$4 = ($2<<24>>24)==(95);
$5 = HEAP8[1408256]|0;
$6 = ($5<<24>>24)!=(0);
$or$cond = $4 & $6;
if ($or$cond) {
$7 = ((($0)) + 4|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)!=(0);
$11 = $9;
} else {
$11 = 0;
}
$10 = ($3|0)!=($1|0);
$or$cond35 = $10 | $11;
if (!($or$cond35)) {
$12 = ((($0)) + 15628|0);
$13 = HEAP8[$12>>0]|0;
$14 = HEAP8[(1384580)>>0]|0;
$15 = $14 | $13;
$16 = ($15<<24>>24)==(0);
if (!($16)) {
$$0 = 1;
return ($$0|0);
}
_ChatScreen_RemakePlayerList($0);
$$0 = 1;
return ($$0|0);
}
$17 = ((($0)) + 15636|0);
HEAP8[$17>>0] = 0;
$18 = ((($0)) + 4|0);
$19 = HEAP8[$18>>0]|0;
$20 = ($19<<24>>24)==(0);
if (!($20)) {
$21 = HEAP8[(379738)>>0]|0;
$22 = $21&255;
$23 = ($22|0)==($1|0);
$24 = ($1|0)==(116);
$or$cond5 = $24 | $23;
L13: do {
if ($or$cond5) {
_ChatScreen_EnterChatInput($0,0);
} else {
switch ($1|0) {
case 62: {
$25 = HEAP32[315202]|0;
$26 = (0 - ($25))|0;
_ChatScreen_ScrollChatBy($0,$26);
break L13;
break;
}
case 63: {
$27 = HEAP32[315202]|0;
_ChatScreen_ScrollChatBy($0,$27);
break L13;
break;
}
default: {
$28 = ((($0)) + 15744|0);
$29 = HEAP32[$28>>2]|0;
$30 = ((($29)) + 12|0);
$31 = HEAP32[$30>>2]|0;
(FUNCTION_TABLE_iii[$31 & 127]($28,$1)|0);
_ChatScreen_UpdateChatYOffsets($0);
break L13;
}
}
}
} while(0);
$$off = (($1) + -1)|0;
$32 = ($$off>>>0)>(34);
$33 = $32&1;
$$0 = $33;
return ($$0|0);
}
$34 = HEAP8[(379735)>>0]|0;
$35 = $34&255;
$36 = ($35|0)==($1|0);
if ($36) {
_ChatScreen_OpenInput(1384616);
$$0 = 1;
return ($$0|0);
}
$37 = ($1|0)==(122);
if ($37) {
_ChatScreen_OpenInput(17436);
$$0 = 1;
return ($$0|0);
}
$38 = HEAP8[(379736)>>0]|0;
$39 = $38&255;
$40 = ($39|0)==($1|0);
if ($40) {
_InventoryScreen_Show();
$$0 = 1;
return ($$0|0);
} else {
$41 = ((($0)) + 20|0);
$42 = HEAP32[$41>>2]|0;
$43 = ((($42)) + 12|0);
$44 = HEAP32[$43>>2]|0;
$45 = (FUNCTION_TABLE_iii[$44 & 127]($41,$1)|0);
$$0 = $45;
return ($$0|0);
}
return (0)|0;
}
function _ChatScreen_KeyUp($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(379739)>>0]|0;
$3 = $2&255;
$4 = ($3|0)==($1|0);
if ($4) {
$5 = ((($0)) + 15628|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if (!($7)) {
HEAP8[$5>>0] = 0;
$8 = ((($0)) + 136|0);
$9 = HEAP32[$8>>2]|0;
$10 = ((($9)) + 4|0);
$11 = HEAP32[$10>>2]|0;
FUNCTION_TABLE_vi[$11 & 511]($8);
$$0 = 1;
return ($$0|0);
}
}
$12 = ((($0)) + 4|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(0);
if ($14) {
$15 = ((($0)) + 20|0);
$16 = HEAP32[$15>>2]|0;
$17 = ((($16)) + 16|0);
$18 = HEAP32[$17>>2]|0;
$19 = (FUNCTION_TABLE_iii[$18 & 127]($15,$1)|0);
$$0 = $19;
return ($$0|0);
}
$20 = ($1|0)==(92);
if ($20) {
_ChatScreen_EnterChatInput($0,1);
}
$21 = HEAP8[(1384585)>>0]|0;
$22 = ($21<<24>>24)==(0);
if ($22) {
$$0 = 1;
return ($$0|0);
}
$23 = HEAP8[(379745)>>0]|0;
$24 = $23&255;
$25 = ($24|0)!=($1|0);
$26 = HEAP8[1408301]|0;
$27 = ($26<<24>>24)==(0);
$or$cond = $25 | $27;
if ($or$cond) {
$$0 = 1;
return ($$0|0);
}
$28 = ((($0)) + 16712|0);
$29 = ((($0)) + 16732|0);
$30 = HEAP8[$29>>0]|0;
$31 = ($30<<24>>24)==(0);
$32 = $31&1;
_SpecialInputWidget_SetActive($28,$32);
_ChatScreen_UpdateChatYOffsets($0);
$$0 = 1;
return ($$0|0);
}
function _ChatScreen_KeyPress($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$$0 = 0;
return ($$0|0);
}
$5 = ((($0)) + 15636|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if ($7) {
$8 = ((($0)) + 15744|0);
_InputWidget_Append($8,$1);
_ChatScreen_UpdateChatYOffsets($0);
$$0 = 1;
return ($$0|0);
} else {
HEAP8[$5>>0] = 0;
$$0 = 0;
return ($$0|0);
}
return (0)|0;
}
function _ChatScreen_TextChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$$0 = 0;
return ($$0|0);
}
$5 = ((($0)) + 15744|0);
_InputWidget_SetText($5,$1);
_ChatScreen_UpdateChatYOffsets($0);
$$0 = 1;
return ($$0|0);
}
function _ChatScreen_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$4 = sp + 256|0;
$5 = sp;
$6 = ((($0)) + 4|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if ($8) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$9 = ((($0)) + 15628|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(0);
if (!($11)) {
HEAP32[$4>>2] = $5;
$12 = ((($4)) + 4|0);
HEAP16[$12>>1] = 0;
$13 = ((($4)) + 6|0);
HEAP16[$13>>1] = 256;
$14 = ((($0)) + 136|0);
_PlayerListWidget_GetNameAt($14,$2,$3,$4);
$15 = HEAP16[$12>>1]|0;
$16 = ($15<<16>>16)==(0);
if (!($16)) {
_String_Append($4,32);
_ChatScreen_AppendInput($4);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
}
$17 = HEAP8[1408238]|0;
$18 = ($17<<24>>24)==(0);
if (!($18)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$19 = ((($0)) + 17976|0);
$20 = (_Widget_Contains($19,$2,$3)|0);
$21 = ($20|0)==(0);
if (!($21)) {
_ChatScreen_EnterChatInput($0,0);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$22 = ((($0)) + 18056|0);
$23 = (_Widget_Contains($22,$2,$3)|0);
$24 = ($23|0)==(0);
if (!($24)) {
_ChatScreen_EnterChatInput($0,1);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$25 = ((($0)) + 16528|0);
$26 = (_Widget_Contains($25,$2,$3)|0);
$27 = ($26|0)==(0);
if ($27) {
$28 = ((($0)) + 16712|0);
$29 = ((($0)) + 16732|0);
$30 = HEAP8[$29>>0]|0;
$31 = ($30<<24>>24)==(0);
if (!($31)) {
$32 = (_Widget_Contains($28,$2,$3)|0);
$33 = ($32|0)==(0);
if (!($33)) {
$34 = HEAP32[$28>>2]|0;
$35 = ((($34)) + 24|0);
$36 = HEAP32[$35>>2]|0;
(FUNCTION_TABLE_iiiii[$36 & 63]($28,$1,$2,$3)|0);
_ChatScreen_UpdateChatYOffsets($0);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
}
$37 = ((($0)) + 15744|0);
$38 = HEAP32[$37>>2]|0;
$39 = ((($38)) + 24|0);
$40 = HEAP32[$39>>2]|0;
(FUNCTION_TABLE_iiiii[$40 & 63]($37,$1,$2,$3)|0);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$41 = (_TextGroupWidget_UsedHeight($25)|0);
$42 = ((($0)) + 16536|0);
$43 = HEAP32[$42>>2]|0;
$44 = ((($0)) + 16544|0);
$45 = HEAP32[$44>>2]|0;
$46 = (($43) - ($41))|0;
$47 = (($46) + ($45))|0;
$48 = ((($0)) + 16532|0);
$49 = HEAP32[$48>>2]|0;
$50 = ((($0)) + 16540|0);
$51 = HEAP32[$50>>2]|0;
$52 = (_Gui_Contains($49,$47,$51,$41,$2,$3)|0);
$53 = ($52|0)==(0);
if ($53) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
HEAP32[$4>>2] = $5;
$54 = ((($4)) + 4|0);
HEAP16[$54>>1] = 0;
$55 = ((($4)) + 6|0);
HEAP16[$55>>1] = 256;
_TextGroupWidget_GetSelected($25,$4,$2,$3);
$56 = HEAP16[$54>>1]|0;
$57 = ($56<<16>>16)==(0);
if ($57) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$58 = (_Utils_IsUrlPrefix($4)|0);
$59 = ($58<<24>>24)==(0);
if (!($59)) {
_UrlWarningOverlay_Show($4);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$60 = HEAP8[1408255]|0;
$61 = ($60<<24>>24)==(0);
if ($61) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
_ChatScreen_AppendInput($4);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _ChatScreen_MouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$$0 = 0;
return ($$0|0);
}
$5 = ((($0)) + 15632|0);
$6 = (_Utils_AccumulateWheelDelta($5,$1)|0);
$7 = (0 - ($6))|0;
_ChatScreen_ScrollChatBy($0,$7);
$$0 = 1;
return ($$0|0);
}
function _ChatScreen_Layout($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 8|0);
$4 = HEAP32[$3>>2]|0;
FUNCTION_TABLE_vi[$4 & 511]($1);
$5 = (_ChatScreen_ChatUpdateFont($0)|0);
$6 = ($5<<24>>24)==(0);
if (!($6)) {
_ChatScreen_Redraw($0);
}
_ChatScreen_ChatUpdateLayout($0);
$7 = ((($0)) + 15628|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
if (!($9)) {
$10 = ((($0)) + 136|0);
$11 = HEAP32[$10>>2]|0;
$12 = ((($11)) + 8|0);
$13 = HEAP32[$12>>2]|0;
FUNCTION_TABLE_vi[$13 & 511]($10);
}
$14 = HEAP8[1408267]|0;
$15 = ($14<<24>>24)==(0);
if ($15) {
return;
}
$16 = ((($0)) + 17976|0);
$17 = HEAP32[$16>>2]|0;
$18 = ((($17)) + 8|0);
$19 = HEAP32[$18>>2]|0;
FUNCTION_TABLE_vi[$19 & 511]($16);
$20 = ((($0)) + 18056|0);
$21 = HEAP32[$20>>2]|0;
$22 = ((($21)) + 8|0);
$23 = HEAP32[$22>>2]|0;
FUNCTION_TABLE_vi[$23 & 511]($20);
return;
}
function _ChatScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 15616|0);
_Font_Free($1);
_ChatScreen_FreeChatFonts($0);
$2 = ((($0)) + 15628|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
$5 = ((($0)) + 136|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
FUNCTION_TABLE_vi[$8 & 511]($5);
}
$9 = ((($0)) + 16528|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if (!($11)) {
$12 = ((($10)) + 4|0);
$13 = HEAP32[$12>>2]|0;
FUNCTION_TABLE_vi[$13 & 511]($9);
}
$14 = ((($0)) + 15744|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==(0|0);
if (!($16)) {
$17 = ((($15)) + 4|0);
$18 = HEAP32[$17>>2]|0;
FUNCTION_TABLE_vi[$18 & 511]($14);
}
$19 = ((($0)) + 16712|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==(0|0);
if (!($21)) {
$22 = ((($20)) + 4|0);
$23 = HEAP32[$22>>2]|0;
FUNCTION_TABLE_vi[$23 & 511]($19);
}
$24 = ((($0)) + 16344|0);
$25 = HEAP32[$24>>2]|0;
$26 = ($25|0)==(0|0);
if (!($26)) {
$27 = ((($25)) + 4|0);
$28 = HEAP32[$27>>2]|0;
FUNCTION_TABLE_vi[$28 & 511]($24);
}
$29 = ((($0)) + 16436|0);
$30 = HEAP32[$29>>2]|0;
$31 = ($30|0)==(0|0);
if (!($31)) {
$32 = ((($30)) + 4|0);
$33 = HEAP32[$32>>2]|0;
FUNCTION_TABLE_vi[$33 & 511]($29);
}
$34 = ((($0)) + 16620|0);
$35 = HEAP32[$34>>2]|0;
$36 = ($35|0)==(0|0);
if (!($36)) {
$37 = ((($35)) + 4|0);
$38 = HEAP32[$37>>2]|0;
FUNCTION_TABLE_vi[$38 & 511]($34);
}
$39 = ((($0)) + 15672|0);
$40 = HEAP32[$39>>2]|0;
$41 = ($40|0)==(0|0);
if (!($41)) {
$42 = ((($40)) + 4|0);
$43 = HEAP32[$42>>2]|0;
FUNCTION_TABLE_vi[$43 & 511]($39);
}
$44 = ((($0)) + 17976|0);
$45 = HEAP32[$44>>2]|0;
$46 = ($45|0)==(0|0);
if (!($46)) {
$47 = ((($45)) + 4|0);
$48 = HEAP32[$47>>2]|0;
FUNCTION_TABLE_vi[$48 & 511]($44);
}
$49 = ((($0)) + 18056|0);
$50 = HEAP32[$49>>2]|0;
$51 = ($50|0)==(0|0);
if ($51) {
return;
}
$52 = ((($50)) + 4|0);
$53 = HEAP32[$52>>2]|0;
FUNCTION_TABLE_vi[$53 & 511]($49);
return;
}
function _ChatScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP8[1408216]|0;
$3 = ($2<<24>>24)==(0);
$4 = $3 ? 11 : 16;
$5 = ((($0)) + 15616|0);
_Drawer2D_MakeFont($5,$4,0);
(_ChatScreen_ChatUpdateFont($0)|0);
_ChatScreen_Redraw($0);
$6 = ((($0)) + 20|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($7)) + 8|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_vi[$9 & 511]($6);
_ChatScreen_ChatUpdateLayout($0);
$10 = ((($0)) + 15628|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if (!($12)) {
_ChatScreen_RemakePlayerList($0);
}
$13 = HEAP8[1408267]|0;
$14 = ($13<<24>>24)==(0);
if ($14) {
STACKTOP = sp;return;
}
_Drawer2D_MakeFont($1,16,1);
$15 = ((($0)) + 17976|0);
_ButtonWidget_SetConst($15,36104,$1);
$16 = ((($0)) + 18056|0);
_ButtonWidget_SetConst($16,36109,$1);
_Font_Free($1);
STACKTOP = sp;return;
}
function _ChatScreen_ChatUpdateFont($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_Game_GetChatScale());
$2 = $1 * 8.0;
$3 = (~~(($2)));
$4 = ($3|0)>(8);
$5 = $4 ? $3 : 8;
$6 = ($5|0)<(60);
$7 = $6 ? $5 : 60;
$8 = ((($0)) + 15648|0);
$9 = ((($0)) + 15652|0);
$10 = HEAP16[$9>>1]|0;
$11 = $10&65535;
$12 = ($7|0)==($11|0);
if ($12) {
$$0 = 0;
return ($$0|0);
}
_ChatScreen_FreeChatFonts($0);
_Drawer2D_MakeFont($8,$7,0);
$13 = (+_Game_GetChatScale());
$14 = $13 * 16.0;
$15 = (~~(($14)));
$16 = ($15|0)>(8);
$17 = $16 ? $15 : 8;
$18 = ($17|0)<(60);
$19 = $18 ? $17 : 60;
$20 = ((($0)) + 15660|0);
_Drawer2D_MakeFont($20,$19,0);
$21 = ((($0)) + 15744|0);
_ChatInputWidget_SetFont($21,$8);
$22 = ((($0)) + 16344|0);
_TextGroupWidget_SetFont($22,$8);
$23 = ((($0)) + 16436|0);
_TextGroupWidget_SetFont($23,$8);
$24 = ((($0)) + 16528|0);
_TextGroupWidget_SetFont($24,$8);
$25 = ((($0)) + 16620|0);
_TextGroupWidget_SetFont($25,$8);
$$0 = 1;
return ($$0|0);
}
function _ChatScreen_Redraw($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16528|0);
_TextGroupWidget_RedrawAll($1);
$2 = ((($0)) + 15672|0);
$3 = ((($0)) + 15660|0);
_TextWidget_Set($2,10832,$3);
$4 = ((($0)) + 16344|0);
_TextGroupWidget_RedrawAll($4);
$5 = ((($0)) + 16436|0);
_TextGroupWidget_RedrawAll($5);
$6 = ((($0)) + 16620|0);
_TextGroupWidget_RedrawAll($6);
$7 = ((($0)) + 4|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(0);
if ($9) {
$11 = ((($0)) + 16712|0);
_SpecialInputWidget_Redraw($11);
return;
}
$10 = ((($0)) + 15744|0);
_InputWidget_UpdateText($10);
$11 = ((($0)) + 16712|0);
_SpecialInputWidget_Redraw($11);
return;
}
function _ChatScreen_ChatUpdateLayout($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
$2 = HEAP32[$1>>2]|0;
$3 = (($2) + 15)|0;
$4 = ((($0)) + 15744|0);
_Widget_SetLocation($4,0,2,5,5);
$5 = ((($0)) + 16712|0);
_Widget_SetLocation($5,0,2,5,5);
$6 = ((($0)) + 16344|0);
_Widget_SetLocation($6,2,0,0,0);
$7 = ((($0)) + 16436|0);
_Widget_SetLocation($7,2,2,0,$3);
$8 = ((($0)) + 16528|0);
_Widget_SetLocation($8,0,2,10,0);
$9 = ((($0)) + 16620|0);
_Widget_SetLocation($9,0,2,10,0);
_ChatScreen_UpdateChatYOffsets($0);
return;
}
function _ChatScreen_RemakePlayerList($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408258]|0;
$2 = ($1<<24>>24)!=(0);
$3 = HEAP8[(1384582)>>0]|0;
$4 = ($3<<24>>24)==(0);
$narrow = $2 | $4;
$5 = $narrow&1;
$6 = ((($0)) + 136|0);
$7 = ((($0)) + 15616|0);
_PlayerListWidget_Create($6,$7,$5);
$8 = ((($0)) + 15628|0);
HEAP8[$8>>0] = 1;
$9 = HEAP32[$6>>2]|0;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
FUNCTION_TABLE_vi[$11 & 511]($6);
return;
}
function _ChatScreen_UpdateChatYOffsets($0) {
$0 = $0|0;
var $$ = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 15752|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 28|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($2|0)<($4|0);
$$ = $5 ? $2 : $4;
$6 = ((($0)) + 15772|0);
$7 = HEAP32[$6>>2]|0;
$8 = HEAP32[351859]|0;
$9 = (($7) - ($$))|0;
$10 = (($9) + ($8))|0;
$11 = ((($0)) + 16712|0);
$12 = ((($0)) + 16740|0);
HEAP32[$12>>2] = $10;
$13 = HEAP32[$11>>2]|0;
$14 = ((($13)) + 8|0);
$15 = HEAP32[$14>>2]|0;
FUNCTION_TABLE_vi[$15 & 511]($11);
$16 = ((($0)) + 16732|0);
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)==(0);
$19 = $18 ? 10 : 5;
$20 = HEAP32[351859]|0;
$21 = ((($0)) + 16720|0);
$22 = HEAP32[$21>>2]|0;
$23 = (($20) - ($22))|0;
$24 = (($23) + ($19))|0;
$25 = ((($0)) + 16620|0);
$26 = ((($0)) + 16648|0);
HEAP32[$26>>2] = $24;
$27 = HEAP32[$25>>2]|0;
$28 = ((($27)) + 8|0);
$29 = HEAP32[$28>>2]|0;
FUNCTION_TABLE_vi[$29 & 511]($25);
$30 = HEAP32[$26>>2]|0;
$31 = ((($0)) + 16636|0);
$32 = HEAP32[$31>>2]|0;
$33 = (($32) + ($30))|0;
$34 = ((($0)) + 16528|0);
$35 = ((($0)) + 16556|0);
HEAP32[$35>>2] = $33;
$36 = HEAP32[$34>>2]|0;
$37 = ((($36)) + 8|0);
$38 = HEAP32[$37>>2]|0;
FUNCTION_TABLE_vi[$38 & 511]($34);
return;
}
function _ChatScreen_FreeChatFonts($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 15648|0);
_Font_Free($1);
$2 = ((($0)) + 15660|0);
_Font_Free($2);
return;
}
function _ChatScreen_ScrollChatBy($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$011 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 15640|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($3) + ($1))|0;
$5 = (_ChatScreen_ClampChatIndex($4)|0);
$6 = (($5) - ($3))|0;
$7 = ($6|0)==(0);
if ($7) {
return;
}
$8 = ((($0)) + 16528|0);
$9 = ((($0)) + 16528|0);
$$011 = $6;
while(1) {
$10 = ($$011|0)<(0);
$11 = HEAP32[$2>>2]|0;
if ($10) {
$12 = (($11) + -1)|0;
HEAP32[$2>>2] = $12;
$13 = (($$011) + 1)|0;
_TextGroupWidget_ShiftDown($8);
$$1 = $13;
} else {
$14 = (($11) + 1)|0;
HEAP32[$2>>2] = $14;
$15 = (($$011) + -1)|0;
_TextGroupWidget_ShiftUp($9);
$$1 = $15;
}
$16 = ($$1|0)==(0);
if ($16) {
break;
} else {
$$011 = $$1;
}
}
return;
}
function _ChatScreen_ClampChatIndex($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1230740)>>2]|0;
$2 = HEAP32[315202]|0;
$3 = (($1) - ($2))|0;
$4 = ($3|0)<(0);
$5 = $4 ? $3 : 0;
$6 = ($5|0)>($0|0);
$7 = $6 ? $5 : $0;
$8 = ($7|0)>($3|0);
$9 = $8 ? $3 : $7;
return ($9|0);
}
function _ChatScreen_AppendInput($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_InputWidget_AppendText((565672),$0);
_ChatScreen_UpdateChatYOffsets(549928);
return;
}
function _ChatScreen_EnterChatInput($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
HEAP8[$2>>0] = 0;
_Camera_CheckFocus();
_Window_CloseKeyboard();
$3 = ($1<<24>>24)==(0);
if (!($3)) {
$4 = ((($0)) + 15744|0);
_InputWidget_Clear($4);
}
$5 = ((($0)) + 15744|0);
$6 = ((($0)) + 15792|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vi[$7 & 511]($5);
$8 = ((($0)) + 16712|0);
_SpecialInputWidget_SetActive($8,0);
_ChatScreen_UpdateChatYOffsets($0);
$9 = HEAP32[(1230740)>>2]|0;
$10 = HEAP32[315202]|0;
$11 = (($9) - ($10))|0;
$12 = ((($0)) + 15640|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)==($11|0);
if ($14) {
return;
}
HEAP32[$12>>2] = $11;
$15 = ((($0)) + 16528|0);
_TextGroupWidget_RedrawAll($15);
return;
}
function _ChatScreen_OpenInput($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(565564)>>0] = 1;
HEAP8[(549932)>>0] = 1;
_Camera_CheckFocus();
_Window_OpenKeyboard();
_Window_SetKeyboardText($0);
_String_Copy((565728),$0);
_InputWidget_UpdateText((565672));
return;
}
function _InventoryScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[(1382180)>>0] = 1;
HEAP8[(1382182)>>0] = 1;
HEAP32[345544] = 17444;
_Gui_Replace(1382176,20);
return;
}
function _InventoryScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
_TableWidget_Create($1);
$2 = ((($0)) + 20|0);
$3 = ((($0)) + 84|0);
HEAP32[$3>>2] = $2;
$4 = HEAP8[1408229]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
$9 = 10;
} else {
$6 = HEAP8[1408233]|0;
$7 = ($6<<24>>24)==(0);
$phitmp = $7 ? 9 : 10;
$9 = $phitmp;
}
$8 = ((($0)) + 72|0);
HEAP32[$8>>2] = $9;
_TableWidget_RecreateBlocks($1);
$10 = ((($0)) + 1737|0);
HEAP8[$10>>0] = 1;
_Event_Register(1253156,$0,390);
_Event_Register((1253416),$0,390);
return;
}
function _InventoryScreen_Free($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister(1253156,$0,390);
_Event_Unregister((1253416),$0,390);
return;
}
function _InventoryScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 1737|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
_InventoryScreen_MoveToSelected($0);
}
$5 = ((($0)) + 32|0);
$6 = HEAP32[$5>>2]|0;
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vid[$7 & 63]($5,$1);
return;
}
function _InventoryScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _InventoryScreen_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
$3 = HEAP8[(379736)>>0]|0;
$4 = $3&255;
$5 = ($4|0)==($1|0);
if ($5) {
$6 = ((($0)) + 1736|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if (!($8)) {
_Gui_Remove($0);
$$0 = 1;
return ($$0|0);
}
}
$9 = ($1|0)==(91);
if ($9) {
$10 = ((($0)) + 88|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)==(-1);
if (!($12)) {
$13 = ((($0)) + 106|0);
$14 = (($13) + ($11<<1)|0);
$15 = HEAP16[$14>>1]|0;
_Inventory_SetSelectedBlock($15);
_Gui_Remove($0);
$$0 = 1;
return ($$0|0);
}
}
$16 = HEAP32[$2>>2]|0;
$17 = ((($16)) + 12|0);
$18 = HEAP32[$17>>2]|0;
$19 = (FUNCTION_TABLE_iii[$18 & 127]($2,$1)|0);
$20 = ($19|0)==(0);
if (!($20)) {
$$0 = 1;
return ($$0|0);
}
$21 = HEAP32[315197]|0;
$22 = ((($21)) + 20|0);
$23 = HEAP32[(549948)>>2]|0;
$24 = ((($23)) + 12|0);
$25 = HEAP32[$24>>2]|0;
$26 = (FUNCTION_TABLE_iii[$25 & 127]($22,$1)|0);
$$0 = $26;
return ($$0|0);
}
function _InventoryScreen_KeyUp($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(379736)>>0]|0;
$3 = $2&255;
$4 = ($3|0)==($1|0);
if ($4) {
$5 = ((($0)) + 1736|0);
HEAP8[$5>>0] = 1;
$$0 = 1;
return ($$0|0);
} else {
$6 = HEAP32[315197]|0;
$7 = ((($6)) + 20|0);
$8 = HEAP32[(549948)>>2]|0;
$9 = ((($8)) + 16|0);
$10 = HEAP32[$9>>2]|0;
$11 = (FUNCTION_TABLE_iii[$10 & 127]($7,$1)|0);
$$0 = $11;
return ($$0|0);
}
return (0)|0;
}
function _InventoryScreen_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = ((($0)) + 1696|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==($1|0);
if ($7) {
return 1;
}
$8 = HEAP32[315197]|0;
$9 = ((($8)) + 20|0);
$10 = HEAP32[(549948)>>2]|0;
$11 = ((($10)) + 24|0);
$12 = HEAP32[$11>>2]|0;
$13 = (FUNCTION_TABLE_iiiii[$12 & 63]($9,$1,$2,$3)|0);
$14 = ($13|0)==(0);
if (!($14)) {
return 1;
}
$15 = HEAP32[$4>>2]|0;
$16 = ((($15)) + 24|0);
$17 = HEAP32[$16>>2]|0;
$18 = (FUNCTION_TABLE_iiiii[$17 & 63]($4,$1,$2,$3)|0);
$19 = $18&255;
$20 = ($19<<24>>24)==(0);
if (!($20)) {
$21 = ((($0)) + 104|0);
$22 = HEAP8[$21>>0]|0;
$23 = ($22<<24>>24)==(0);
if ($23) {
return 1;
}
}
$24 = HEAP8[(379622)>>0]|0;
$25 = HEAP8[(379623)>>0]|0;
$26 = $25 | $24;
$27 = ($26<<24>>24)==(0);
if (!($27)) {
return 1;
}
$28 = HEAP8[(379620)>>0]|0;
$29 = HEAP8[(379621)>>0]|0;
$30 = $29 | $28;
$31 = ($30<<24>>24)==(0);
if (!($31)) {
return 1;
}
_Gui_Remove($0);
return 1;
}
function _InventoryScreen_PointerUp($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = (FUNCTION_TABLE_iiiii[$7 & 63]($4,$1,$2,$3)|0);
return ($8|0);
}
function _InventoryScreen_PointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 32|0);
$7 = HEAP32[$6>>2]|0;
$8 = (FUNCTION_TABLE_iiiii[$7 & 63]($4,$1,$2,$3)|0);
return ($8|0);
}
function _InventoryScreen_MouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(379624)>>0]|0;
$3 = HEAP8[(379625)>>0]|0;
$4 = $3 | $2;
$5 = HEAP8[(379622)>>0]|0;
$6 = $4 | $5;
$7 = HEAP8[(379623)>>0]|0;
$8 = $6 | $7;
$9 = ($8<<24>>24)==(0);
if (!($9)) {
$$0 = 0;
return ($$0|0);
}
$10 = HEAP8[(379620)>>0]|0;
$11 = HEAP8[(379621)>>0]|0;
$12 = $11 | $10;
$13 = ($12<<24>>24)==(0);
if (!($13)) {
$$0 = 0;
return ($$0|0);
}
$14 = ((($0)) + 32|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($15)) + 20|0);
$17 = HEAP32[$16>>2]|0;
$18 = (FUNCTION_TABLE_iid[$17 & 15]($14,$1)|0);
$$0 = $18;
return ($$0|0);
}
function _InventoryScreen_Layout($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 8|0);
$4 = HEAP32[$3>>2]|0;
FUNCTION_TABLE_vi[$4 & 511]($1);
return;
}
function _InventoryScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_Font_Free($1);
$2 = ((($0)) + 32|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if ($4) {
return;
}
$5 = ((($3)) + 4|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$6 & 511]($2);
return;
}
function _InventoryScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_Drawer2D_MakeFont($1,16,0);
$2 = ((($0)) + 32|0);
_TableWidget_Recreate($2);
return;
}
function _InventoryScreen_MoveToSelected($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
$2 = HEAP32[(1268184)>>2]|0;
$3 = HEAP32[(1268180)>>2]|0;
$4 = (($3) + ($2))|0;
$5 = (1266480 + ($4<<1)|0);
$6 = HEAP16[$5>>1]|0;
_TableWidget_SetBlockTo($1,$6);
_TableWidget_Recreate($1);
$7 = ((($0)) + 1737|0);
HEAP8[$7>>0] = 0;
$8 = ((($0)) + 88|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(-1);
if (!($10)) {
return;
}
$11 = HEAP32[(1268184)>>2]|0;
$12 = HEAP32[(1268180)>>2]|0;
$13 = (($12) + ($11))|0;
$14 = (1266480 + ($13<<1)|0);
$15 = HEAP16[$14>>1]|0;
_TableWidget_MakeDescTex($1,$15);
return;
}
function _InventoryScreen_OnBlockChanged($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
_TableWidget_OnInventoryChanged($1);
return;
}
function _ChatScreen_DrawCrosshairs() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$0 = HEAP32[315201]|0;
$1 = ($0|0)==(0);
if ($1) {
return;
}
$2 = HEAP32[351859]|0;
$3 = (+($2|0));
$4 = $3 / 480.0;
$5 = (+_Game_Scale($4));
$6 = $5 * 16.0;
$7 = (~~(($6)));
$8 = HEAP32[315201]|0;
HEAP32[4379] = $8;
$9 = HEAP32[351858]|0;
$10 = (($9|0) / 2)&-1;
$11 = (($10) - ($7))|0;
$12 = $11&65535;
HEAP16[(17520)>>1] = $12;
$13 = HEAP32[351859]|0;
$14 = (($13|0) / 2)&-1;
$15 = (($14) - ($7))|0;
$16 = $15&65535;
HEAP16[(17522)>>1] = $16;
$17 = $7 << 1;
$18 = $17&65535;
HEAP16[(17524)>>1] = $18;
HEAP16[(17526)>>1] = $18;
_Texture_Render(17516);
return;
}
function _ChatScreen_DrawChatBackground($0) {
$0 = $0|0;
var $$ = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 16528|0);
$2 = (_TextGroupWidget_UsedHeight($1)|0);
$3 = ((($0)) + 16632|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 16540|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($0)) + 16636|0);
$8 = HEAP32[$7>>2]|0;
$9 = (($8) + ($2))|0;
$10 = ($9|0)>(0);
if (!($10)) {
return;
}
$11 = (($9) + 10)|0;
$12 = ($4|0)>($6|0);
$$ = $12 ? $4 : $6;
$13 = (($$) + 10)|0;
$14 = ((($0)) + 16536|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($0)) + 16544|0);
$17 = HEAP32[$16>>2]|0;
$18 = (-5 - ($2))|0;
$19 = (($18) + ($15))|0;
$20 = (($19) + ($17))|0;
$21 = ((($0)) + 16532|0);
$22 = HEAP32[$21>>2]|0;
$23 = (($22) + -5)|0;
_Gfx_Draw2DFlat($23,$20,$13,$11,2130706432);
return;
}
function _ChatScreen_DrawChat($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond55 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
_ChatScreen_UpdateTexpackStatus($0);
$3 = HEAP8[1408229]|0;
$4 = ($3<<24>>24)==(0);
$5 = HEAP8[1408233]|0;
$6 = ($5<<24>>24)!=(0);
$or$cond = $4 | $6;
if ($or$cond) {
$7 = ((($0)) + 16344|0);
$8 = HEAP32[$7>>2]|0;
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_vid[$9 & 63]($7,$1);
}
$10 = ((($0)) + 16436|0);
$11 = HEAP32[$10>>2]|0;
$12 = HEAP32[$11>>2]|0;
FUNCTION_TABLE_vid[$12 & 63]($10,$1);
$13 = ((($0)) + 16620|0);
$14 = HEAP32[$13>>2]|0;
$15 = HEAP32[$14>>2]|0;
FUNCTION_TABLE_vid[$15 & 63]($13,$1);
$16 = (_DateTime_CurrentUTC_MS()|0);
$17 = (getTempRet0() | 0);
$18 = ((($0)) + 4|0);
$19 = HEAP8[$18>>0]|0;
$20 = ($19<<24>>24)==(0);
if ($20) {
$24 = ((($0)) + 16564|0);
$25 = HEAP32[$24>>2]|0;
$26 = ($25|0)>(0);
if ($26) {
$27 = ((($0)) + 16608|0);
$28 = ((($0)) + 15640|0);
$$056 = 0;
while(1) {
$29 = HEAP32[$27>>2]|0;
$30 = (($29) + (($$056*28)|0)|0);
;HEAP32[$2>>2]=HEAP32[$30>>2]|0;HEAP32[$2+4>>2]=HEAP32[$30+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$30+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$30+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$30+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$30+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$30+24>>2]|0;
$31 = HEAP32[$28>>2]|0;
$32 = (($31) + ($$056))|0;
$33 = HEAP32[$2>>2]|0;
$34 = ($33|0)!=(0);
$35 = ($32|0)>(-1);
$or$cond3$not = $35 & $34;
$36 = HEAP32[(1230740)>>2]|0;
$37 = ($32|0)<($36|0);
$or$cond55 = $or$cond3$not & $37;
if ($or$cond55) {
$38 = HEAP32[2710]|0;
$39 = (($38) + ($32<<3)|0);
$40 = $39;
$41 = $40;
$42 = HEAP32[$41>>2]|0;
$43 = (($40) + 4)|0;
$44 = $43;
$45 = HEAP32[$44>>2]|0;
$46 = (_i64Add(($42|0),($45|0),10000,0)|0);
$47 = (getTempRet0() | 0);
$48 = ($47>>>0)<($17>>>0);
$49 = ($46>>>0)<($16>>>0);
$50 = ($47|0)==($17|0);
$51 = $50 & $49;
$52 = $48 | $51;
if (!($52)) {
_Texture_Render($2);
}
}
$53 = (($$056) + 1)|0;
$54 = HEAP32[$24>>2]|0;
$55 = ($53|0)<($54|0);
if ($55) {
$$056 = $53;
} else {
break;
}
}
}
} else {
$21 = ((($0)) + 16528|0);
$22 = HEAP32[$21>>2]|0;
$23 = HEAP32[$22>>2]|0;
FUNCTION_TABLE_vid[$23 & 63]($21,$1);
}
$56 = ((($0)) + 15672|0);
$57 = ((($0)) + 15708|0);
$58 = HEAP32[$57>>2]|0;
$59 = ($58|0)==(0);
if (!($59)) {
$60 = 535456;
$61 = $60;
$62 = HEAP32[$61>>2]|0;
$63 = (($60) + 4)|0;
$64 = $63;
$65 = HEAP32[$64>>2]|0;
$66 = (_i64Add(($62|0),($65|0),5000,0)|0);
$67 = (getTempRet0() | 0);
$68 = ($17>>>0)>($67>>>0);
$69 = ($16>>>0)>($66>>>0);
$70 = ($17|0)==($67|0);
$71 = $70 & $69;
$72 = $68 | $71;
if ($72) {
$73 = HEAP32[$56>>2]|0;
$74 = ($73|0)==(0|0);
if (!($74)) {
$75 = ((($73)) + 4|0);
$76 = HEAP32[$75>>2]|0;
FUNCTION_TABLE_vi[$76 & 511]($56);
}
}
}
$77 = HEAP32[$56>>2]|0;
$78 = HEAP32[$77>>2]|0;
FUNCTION_TABLE_vid[$78 & 63]($56,$1);
$79 = HEAP8[$18>>0]|0;
$80 = ($79<<24>>24)==(0);
if ($80) {
STACKTOP = sp;return;
}
$81 = ((($0)) + 15744|0);
$82 = HEAP32[$81>>2]|0;
$83 = HEAP32[$82>>2]|0;
FUNCTION_TABLE_vid[$83 & 63]($81,$1);
$84 = ((($0)) + 16712|0);
$85 = ((($0)) + 16732|0);
$86 = HEAP8[$85>>0]|0;
$87 = ($86<<24>>24)==(0);
if (!($87)) {
$88 = HEAP32[$84>>2]|0;
$89 = HEAP32[$88>>2]|0;
FUNCTION_TABLE_vid[$89 & 63]($84,$1);
}
$90 = HEAP8[1408267]|0;
$91 = ($90<<24>>24)==(0);
if ($91) {
STACKTOP = sp;return;
}
$92 = ((($0)) + 17976|0);
$93 = HEAP32[$92>>2]|0;
$94 = HEAP32[$93>>2]|0;
FUNCTION_TABLE_vid[$94 & 63]($92,$1);
$95 = ((($0)) + 18056|0);
$96 = HEAP32[$95>>2]|0;
$97 = HEAP32[$96>>2]|0;
FUNCTION_TABLE_vid[$97 & 63]($95,$1);
STACKTOP = sp;return;
}
function _ChatScreen_UpdateTexpackStatus($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 448|0;
$1 = sp + 8|0;
$2 = sp + 440|0;
$3 = sp;
$4 = (_Http_GetCurrent($1,$2)|0);
$5 = ((($1)) + 128|0);
_String_FromRaw($3,$5,128);
$6 = ($4<<24>>24)==(0);
if (!($6)) {
$7 = (_String_Equals($3,17508)|0);
$8 = ($7|0)==(0);
if (!($8)) {
$15 = HEAP32[$2>>2]|0;
$16 = ((($0)) + 15644|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($15|0)==($17|0);
if ($18) {
STACKTOP = sp;return;
}
HEAP32[$16>>2] = $15;
HEAP16[(484)>>1] = 0;
switch ($15|0) {
case -2: {
_String_AppendConst(480,36116);
break;
}
case -1: {
_String_AppendConst(480,36144);
break;
}
default: {
$19 = ($15>>>0)<(101);
if ($19) {
_String_Format1(480,36171,$2);
}
}
}
$20 = ((($0)) + 16344|0);
_TextGroupWidget_Redraw($20,0);
STACKTOP = sp;return;
}
}
$9 = ((($0)) + 16424|0);
$10 = HEAP32[$9>>2]|0;
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)==(0);
if (!($12)) {
$13 = ((($0)) + 16344|0);
HEAP16[(484)>>1] = 0;
_TextGroupWidget_Redraw($13,0);
}
$14 = ((($0)) + 15644|0);
HEAP32[$14>>2] = -2147483648;
STACKTOP = sp;return;
}
function _ChatScreen_ChatReceived($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$off = 0, $$off26 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP8[(1260360)>>0]|0;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
return;
}
$5 = ($2|0)==(0);
if ($5) {
$6 = ((($0)) + 15640|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($7) + 1)|0;
HEAP32[$6>>2] = $8;
$9 = HEAP32[315202]|0;
$10 = ($9|0)==(0);
if ($10) {
return;
}
$11 = ((($0)) + 16528|0);
_TextGroupWidget_ShiftUp($11);
return;
}
$$off = (($2) + -1)|0;
$12 = ($$off>>>0)<(3);
if ($12) {
$13 = ((($0)) + 16344|0);
_TextGroupWidget_Redraw($13,$2);
return;
}
$$off26 = (($2) + -11)|0;
$14 = ($$off26>>>0)<(3);
if ($14) {
$15 = ((($0)) + 16436|0);
$16 = (13 - ($2))|0;
_TextGroupWidget_Redraw($15,$16);
return;
}
$17 = ($2|0)==(100);
if ($17) {
$18 = ((($0)) + 15672|0);
$19 = ((($0)) + 15660|0);
_TextWidget_Set($18,$1,$19);
return;
}
$20 = $2 & -2;
$21 = ($20|0)==(256);
if (!($21)) {
return;
}
$22 = (($2) + -256)|0;
$23 = ((($0)) + 16620|0);
_TextGroupWidget_Redraw($23,$22);
_ChatScreen_UpdateChatYOffsets($0);
return;
}
function _ChatScreen_ColCodeChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(1260360)>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
return;
}
$4 = ((($0)) + 16712|0);
_SpecialInputWidget_UpdateCols($4);
$5 = ((($0)) + 16528|0);
$6 = $1&255;
_TextGroupWidget_RedrawAllWithCol($5,$6);
$7 = ((($0)) + 16344|0);
_TextGroupWidget_RedrawAllWithCol($7,$6);
$8 = ((($0)) + 16436|0);
_TextGroupWidget_RedrawAllWithCol($8,$6);
$9 = ((($0)) + 16620|0);
_TextGroupWidget_RedrawAllWithCol($9,$6);
$10 = ((($0)) + 15744|0);
$11 = ((($0)) + 15936|0);
$12 = +HEAPF64[$11>>3];
_InputWidget_UpdateText($10);
HEAPF64[$11>>3] = $12;
return;
}
function _ChatScreen_TabEntryAdded($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 15628|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 136|0);
_PlayerListWidget_Add($5,$1);
return;
}
function _ChatScreen_TabEntryChanged($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 15628|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 136|0);
_PlayerListWidget_Update($5,$1);
return;
}
function _ChatScreen_TabEntryRemoved($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 15628|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 136|0);
_PlayerListWidget_Remove($5,$1);
return;
}
function _ChatScreen_ChatInit($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 15744|0);
_ChatInputWidget_Create($1);
$2 = ((($0)) + 16712|0);
$3 = ((($0)) + 15648|0);
_SpecialInputWidget_Create($2,$3,$1);
$4 = ((($0)) + 16344|0);
$5 = ((($0)) + 18136|0);
_TextGroupWidget_Create($4,4,$5,19);
$6 = ((($0)) + 16436|0);
$7 = ((($0)) + 18248|0);
_TextGroupWidget_Create($6,3,$7,20);
$8 = ((($0)) + 16528|0);
$9 = HEAP32[315202]|0;
$10 = ((($0)) + 18388|0);
_TextGroupWidget_Create($8,$9,$10,21);
$11 = ((($0)) + 16620|0);
$12 = ((($0)) + 18332|0);
_TextGroupWidget_Create($11,2,$12,22);
$13 = ((($0)) + 15672|0);
$14 = HEAP32[351859]|0;
$15 = (($14|0) / -4)&-1;
_TextWidget_Make($13,1,1,0,$15);
$16 = ((($0)) + 16392|0);
HEAP8[$16>>0] = 1;
$17 = ((($0)) + 16668|0);
HEAP8[$17>>0] = 1;
$18 = ((($0)) + 16669|0);
HEAP8[$18>>0] = 1;
$19 = HEAP8[1408229]|0;
$20 = ($19<<24>>24)==(0);
$21 = $20&1;
$22 = ((($0)) + 16606|0);
HEAP8[$22>>0] = $21;
$23 = HEAP32[(1230740)>>2]|0;
$24 = HEAP32[315202]|0;
$25 = (($23) - ($24))|0;
$26 = ((($0)) + 15640|0);
HEAP32[$26>>2] = $25;
return;
}
function _ChatScreen_GetStatus($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (480 + ($2<<3)|0);
$4 = $3;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $0;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
return;
}
function _ChatScreen_GetBottomRight($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (2 - ($2))|0;
$4 = (512 + ($3<<3)|0);
$5 = $4;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = $0;
$12 = $11;
HEAP32[$12>>2] = $7;
$13 = (($11) + 4)|0;
$14 = $13;
HEAP32[$14>>2] = $10;
return;
}
function _ChatScreen_GetChat($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(565568)>>2]|0;
$4 = (($3) + ($2))|0;
$5 = ($4|0)>(-1);
$6 = HEAP32[(1230740)>>2]|0;
$7 = ($4|0)<($6|0);
$or$cond = $5 & $7;
if ($or$cond) {
_StringsBuffer_UNSAFE_Get($0,1230732,$4);
return;
} else {
$8 = 1384616;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $0;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
return;
}
}
function _ChatScreen_GetClientStatus($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (544 + ($2<<3)|0);
$4 = $3;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $0;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
return;
}
function _ChatScreen_SetChatlines($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(566456)>>2]|0;
$2 = ((($1)) + 4|0);
$3 = HEAP32[$2>>2]|0;
FUNCTION_TABLE_vi[$3 & 511]((566456));
$4 = HEAP32[(566492)>>2]|0;
$5 = (($4) - ($0))|0;
$6 = HEAP32[(565568)>>2]|0;
$7 = (($5) + ($6))|0;
HEAP32[(565568)>>2] = $7;
HEAP32[(566492)>>2] = $0;
_TextGroupWidget_RedrawAll((566456));
return;
}
function _ChatScreen_GetHotbar() {
var label = 0, sp = 0;
sp = STACKTOP;
return ((549948)|0);
}
function _LoadingScreen_Show($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[345464] = 17544;
_LoadingScreen_ShowCommon($0,$1);
return;
}
function _LoadingScreen_ShowCommon($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1382044)>>2] = 0;
HEAPF32[(1381888)>>2] = 0.0;
HEAP32[(1382028)>>2] = (1382048);
HEAP16[(1382032)>>1] = 0;
HEAP16[(1382034)>>1] = 64;
_String_AppendString((1382028),$0);
HEAP32[(1382036)>>2] = (1382112);
HEAP16[(1382040)>>1] = 0;
HEAP16[(1382042)>>1] = 64;
_String_AppendString((1382036),$1);
HEAP8[(1381860)>>0] = 1;
HEAP8[(1381861)>>0] = 1;
$2 = HEAP8[1408229]|0;
$3 = ($2<<24>>24)==(0);
$4 = $3 ? 5 : 55;
_Gui_Replace(1381856,$4);
return;
}
function _LoadingScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
_TextWidget_Make($1,1,1,0,-31);
$2 = ((($0)) + 104|0);
_TextWidget_Make($2,1,1,0,17);
_Gfx_SetFog(0);
_Event_Register((1253936),$0,33);
return;
}
function _LoadingScreen_Free($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Unregister((1253936),$0,33);
return;
}
function _LoadingScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_LoadingScreen_DrawBackground();
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = HEAP32[$3>>2]|0;
FUNCTION_TABLE_vid[$4 & 63]($2,$1);
$5 = ((($0)) + 104|0);
$6 = HEAP32[$5>>2]|0;
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_vid[$7 & 63]($5,$1);
$8 = HEAP32[351858]|0;
$9 = (_Gui_CalcPos(1,0,200,$8)|0);
$10 = HEAP32[351859]|0;
$11 = (_Gui_CalcPos(1,34,4,$10)|0);
$12 = ((($0)) + 32|0);
$13 = +HEAPF32[$12>>2];
$14 = $13 * 200.0;
$15 = (~~(($14)));
_Gfx_Draw2DFlat($9,$11,200,4,-8355712);
_Gfx_Draw2DFlat($9,$11,$15,4,-8323200);
return;
}
function _LoadingScreen_BuildMesh($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _LoadingScreen_Layout($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0|0);
if ($3) {
return;
}
$4 = ((($2)) + 8|0);
$5 = HEAP32[$4>>2]|0;
FUNCTION_TABLE_vi[$5 & 511]($1);
$6 = ((($0)) + 104|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($7)) + 8|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_vi[$9 & 511]($6);
return;
}
function _LoadingScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_Font_Free($1);
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0|0);
if ($4) {
return;
}
$5 = ((($3)) + 4|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$6 & 511]($2);
$7 = ((($0)) + 104|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 4|0);
$10 = HEAP32[$9>>2]|0;
FUNCTION_TABLE_vi[$10 & 511]($7);
return;
}
function _LoadingScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
_Drawer2D_MakeFont($1,16,0);
_LoadingScreen_SetTitle($0);
_LoadingScreen_SetMessage($0);
return;
}
function _LoadingScreen_SetTitle($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
$2 = ((($0)) + 172|0);
$3 = ((($0)) + 20|0);
_TextWidget_Set($1,$2,$3);
return;
}
function _LoadingScreen_SetMessage($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 104|0);
$2 = ((($0)) + 180|0);
$3 = ((($0)) + 20|0);
_TextWidget_Set($1,$2,$3);
return;
}
function _LoadingScreen_DrawBackground() {
var $$01718 = 0, $$019 = 0, $$1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 3520|0;
$0 = sp;
$1 = sp + 3508|0;
$2 = sp + 3456|0;
$3 = sp + 3504|0;
$4 = sp + 3512|0;
$5 = sp + 3488|0;
HEAP32[$1>>2] = $0;
HEAP8[$4>>0] = 0;
$6 = HEAP16[(624946)>>1]|0;
$7 = ((($2)) + 6|0);
$8 = $2;
$9 = $8;
HEAP32[$9>>2] = 0;
$10 = (($8) + 4)|0;
$11 = $10;
HEAP32[$11>>2] = 0;
$12 = HEAP32[351858]|0;
$13 = $12&65535;
$14 = ((($2)) + 8|0);
HEAP16[$14>>1] = $13;
$15 = ((($2)) + 10|0);
HEAP16[$15>>1] = 64;
$16 = ((($2)) + 12|0);
_Atlas1D_TexRec($5,$6,1,$3);
;HEAP32[$16>>2]=HEAP32[$5>>2]|0;HEAP32[$16+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$16+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$16+12>>2]=HEAP32[$5+12>>2]|0;
$17 = HEAP32[351858]|0;
$18 = (+($17|0));
$19 = $18 * 0.015625;
$20 = ((($2)) + 20|0);
HEAPF32[$20>>2] = $19;
$21 = HEAP32[351859]|0;
$22 = ($21|0)>(0);
if (!($22)) {
STACKTOP = sp;return;
}
$$01718 = 0;$$019 = 0;
while(1) {
$23 = $$019&65535;
HEAP16[$7>>1] = $23;
_Gfx_Make2DQuad($2,-12566464,$1);
$24 = (($$01718) + 4)|0;
$25 = ($24>>>0)<(144);
if ($25) {
$$1 = $24;
} else {
$26 = HEAP32[$3>>2]|0;
_LoadingScreen_UpdateBackgroundVB($0,$24,$26,$4);
HEAP32[$1>>2] = $0;
$$1 = 0;
}
$27 = (($$019) + 64)|0;
$28 = HEAP32[351859]|0;
$29 = ($27|0)<($28|0);
if ($29) {
$$01718 = $$1;$$019 = $27;
} else {
break;
}
}
$30 = ($$1|0)==(0);
if ($30) {
STACKTOP = sp;return;
}
$31 = HEAP32[$3>>2]|0;
_LoadingScreen_UpdateBackgroundVB($0,$$1,$31,$4);
STACKTOP = sp;return;
}
function _LoadingScreen_UpdateBackgroundVB($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
$6 = (1384660 + ($2<<2)|0);
HEAP8[$3>>0] = 1;
$7 = HEAP32[$6>>2]|0;
_Gfx_BindTexture($7);
}
_Gfx_SetVertexFormat(1);
$8 = HEAP32[(1280020)>>2]|0;
_Gfx_UpdateDynamicVb_IndexedTris($8,$0,$1);
return;
}
function _LoadingScreen_MapLoading($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
HEAPF32[$2>>2] = $1;
return;
}
function _GeneratingScreen_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[345464] = 17608;
_LoadingScreen_ShowCommon(17672,17680);
return;
}
function _GeneratingScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408239] = 0;
_LoadingScreen_Init($0);
_Event_RaiseVoid(1253676);
$1 = HEAP32[(1407460)>>2]|0;
$2 = (_Mem_TryAlloc($1,1)|0);
HEAP32[315083] = $2;
$3 = ($2|0)==(0|0);
if ($3) {
_Window_ShowDialog(36269,36283);
HEAP8[1408239] = 1;
return;
}
$4 = HEAP8[1408240]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
(_Thread_Start(73,1)|0);
return;
} else {
(_Thread_Start(72,1)|0);
return;
}
}
function _GeneratingScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_LoadingScreen_Render($0,$1);
$2 = HEAP8[1408239]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
_GeneratingScreen_EndGeneration();
return;
}
$4 = HEAP32[315078]|0;
$5 = +HEAPF32[315082];
$6 = ((($0)) + 32|0);
HEAPF32[$6>>2] = $5;
$7 = ((($0)) + 188|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($4|0)==($8|0);
if ($9) {
return;
}
$10 = ((($0)) + 180|0);
$11 = ((($0)) + 184|0);
HEAP16[$11>>1] = 0;
_String_AppendConst($10,$4);
_LoadingScreen_SetMessage($0);
return;
}
function _GeneratingScreen_EndGeneration() {
var $$byval_copy1 = 0, $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$$byval_copy1 = sp + 60|0;
$0 = sp + 16|0;
$1 = sp + 48|0;
$2 = sp;
_Gui_Remove(1381856);
HEAP8[1408239] = 0;
$3 = HEAP32[315083]|0;
$4 = ($3|0)==(0|0);
if ($4) {
_Chat_AddRaw(36239);
STACKTOP = sp;return;
} else {
$5 = HEAP32[(1407464)>>2]|0;
$6 = HEAP32[(1407468)>>2]|0;
$7 = HEAP32[(1407472)>>2]|0;
_World_SetNewMap($3,$5,$6,$7);
HEAP32[315083] = 0;
$8 = HEAP32[(1407464)>>2]|0;
$9 = (($8|0) / 2)&-1;
$10 = (+($9|0));
$11 = $10 + 0.5;
$12 = HEAP32[(1407472)>>2]|0;
$13 = (($12|0) / 2)&-1;
$14 = (+($13|0));
$15 = $14 + 0.5;
;HEAP32[$$byval_copy1>>2]=HEAP32[(1242244)>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[(1242244)+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[(1242244)+8>>2]|0;
_Respawn_FindSpawnPosition($1,$11,$15,$$byval_copy1);
;HEAP32[(1242580)>>2]=HEAP32[$1>>2]|0;HEAP32[(1242580)+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[(1242580)+8>>2]=HEAP32[$1+8>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;
_LocationUpdate_MakePosAndOri($0,$$byval_copy1,0.0,0.0,0);
$16 = HEAP32[310538]|0;
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
FUNCTION_TABLE_viii[$18 & 31](1242152,$0,0);
$19 = HEAP32[(1230632)>>2]|0;
$20 = ((($19)) + 16|0);
$21 = HEAP32[$20>>2]|0;
FUNCTION_TABLE_vid[$21 & 63]($2,0.0);
;HEAP32[(1230620)>>2]=HEAP32[$2>>2]|0;HEAP32[(1230620)+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[(1230620)+8>>2]=HEAP32[$2+8>>2]|0;
_Event_RaiseVoid((1254196));
STACKTOP = sp;return;
}
}
function _DisconnectScreen_Show($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$2 = sp + 64|0;
$3 = sp;
HEAP8[(569164)>>0] = 1;
HEAP8[(569165)>>0] = 1;
HEAP32[(569568)>>2] = (569440);
HEAP16[(569572)>>1] = 0;
HEAP16[(569574)>>1] = 64;
_String_AppendString((569568),$0);
HEAP32[(569576)>>2] = (569504);
HEAP16[(569580)>>1] = 0;
HEAP16[(569582)>>1] = 64;
_String_AppendString((569576),$1);
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 64;
_String_AppendColorless($2,$1);
$6 = (_String_CaselessStarts($2,17688)|0);
$7 = ($6|0)==(0);
if ($7) {
$8 = (_String_CaselessStarts($2,17696)|0);
$9 = ($8|0)==(0);
$phitmp = $9&1;
$10 = $phitmp;
} else {
$10 = 0;
}
HEAP8[(569192)>>0] = $10;
HEAP32[142290] = 17704;
$11 = HEAP32[315198]|0;
$12 = ($11|0)==(0);
if ($12) {
_Gui_Replace(569160,60);
STACKTOP = sp;return;
}
while(1) {
$13 = HEAP32[94820]|0;
_Gui_Remove($13);
$14 = HEAP32[315198]|0;
$15 = ($14|0)==(0);
if ($15) {
break;
}
}
_Gui_Replace(569160,60);
STACKTOP = sp;return;
}
function _DisconnectScreen_Init($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 144|0);
_TextWidget_Make($1,1,1,0,-30);
$2 = ((($0)) + 212|0);
_TextWidget_Make($2,1,1,0,10);
$3 = ((($0)) + 40|0);
_ButtonWidget_Make($3,300,0,1,1,0,80);
$4 = ((($0)) + 32|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
$7 = $6&1;
$8 = ((($0)) + 61|0);
HEAP8[$8>>0] = $7;
$9 = HEAP32[315054]|0;
$10 = ($9|0)==(0);
$11 = $10&1;
_Gfx_SetFpsLimit($11,200.0);
$12 = (_DateTime_CurrentUTC_MS()|0);
$13 = (getTempRet0() | 0);
$14 = ((($0)) + 24|0);
$15 = $14;
$16 = $15;
HEAP32[$16>>2] = $12;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $13;
$19 = ((($0)) + 36|0);
HEAP32[$19>>2] = 5;
$20 = ((($0)) + 12|0);
HEAP32[$20>>2] = 17768;
$21 = HEAP8[$4>>0]|0;
$22 = ($21<<24>>24)==(0);
$23 = $22 ? 2 : 3;
$24 = ((($0)) + 16|0);
HEAP32[$24>>2] = $23;
return;
}
function _DisconnectScreen_Update($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
return;
}
_DisconnectScreen_UpdateDelayLeft($0);
return;
}
function _DisconnectScreen_Free($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[315054]|0;
_Game_SetFpsLimit($1);
return;
}
function _DisconnectScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[351858]|0;
$3 = HEAP32[351859]|0;
_Gfx_Draw2DGradient(0,0,$2,$3,-14671808,-15724464);
_Screen_Render2Widgets($0,0.0);
return;
}
function _DisconnectScreen_BuildMesh($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 480|0;
$1 = sp;
_Screen_BuildMesh($0,$1);
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_SetDynamicVbData($3,$1,20);
STACKTOP = sp;return;
}
function _DisconnectScreen_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 61|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if (!($6)) {
return 1;
}
$7 = ((($0)) + 40|0);
$8 = (_Widget_Contains($7,$2,$3)|0);
$9 = ($8|0)==(0);
if ($9) {
return 1;
}
_Gui_Remove($0);
_Gui_ShowDefault();
$10 = HEAP32[346132]|0;
FUNCTION_TABLE_v[$10 & 127]();
return 1;
}
function _DisconnectScreen_PointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 61|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if ($6) {
$7 = ((($0)) + 40|0);
$8 = (_Widget_Contains($7,$2,$3)|0);
$9 = ($8|0)!=(0);
$phitmp = $9&1;
$11 = $phitmp;
} else {
$11 = 0;
}
$10 = ((($0)) + 60|0);
HEAP8[$10>>0] = $11;
return 1;
}
function _DisconnectScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 120|0);
_Font_Free($1);
$2 = ((($0)) + 132|0);
_Font_Free($2);
_Screen_ContextLost($0);
return;
}
function _DisconnectScreen_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
$3 = (_Gfx_CreateDynamicVb(1,20)|0);
$4 = ((($0)) + 8|0);
HEAP32[$4>>2] = $3;
$5 = ((($0)) + 120|0);
_Drawer2D_MakeFont($5,16,1);
$6 = ((($0)) + 132|0);
_Drawer2D_MakeFont($6,16,0);
$7 = ((($0)) + 144|0);
$8 = ((($0)) + 408|0);
_TextWidget_Set($7,$8,$5);
$9 = ((($0)) + 212|0);
$10 = ((($0)) + 416|0);
_TextWidget_Set($9,$10,$6);
HEAP32[$1>>2] = $2;
$11 = ((($1)) + 4|0);
HEAP16[$11>>1] = 0;
$12 = ((($1)) + 6|0);
HEAP16[$12>>1] = 64;
_DisconnectScreen_ReconnectMessage($0,$1);
$13 = ((($0)) + 40|0);
_ButtonWidget_Set($13,$1,$5);
STACKTOP = sp;return;
}
function _DisconnectScreen_ReconnectMessage($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($0)) + 32|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(0);
do {
if (!($5)) {
$6 = (_DateTime_CurrentUTC_MS()|0);
$7 = (getTempRet0() | 0);
$8 = ((($0)) + 24|0);
$9 = $8;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (_i64Subtract(($6|0),($7|0),($11|0),($14|0))|0);
$16 = (getTempRet0() | 0);
$17 = (5000 - ($15))|0;
$18 = (($17|0) / 1000)&-1;
HEAP32[$2>>2] = $18;
$19 = ($17|0)>(999);
if (!($19)) {
break;
}
_String_Format1($1,36356,$2);
STACKTOP = sp;return;
}
} while(0);
_String_AppendConst($1,36372);
STACKTOP = sp;return;
}
function _DisconnectScreen_UpdateDelayLeft($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 64|0;
$2 = sp;
$3 = (_DateTime_CurrentUTC_MS()|0);
$4 = (getTempRet0() | 0);
$5 = ((($0)) + 24|0);
$6 = $5;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (_i64Subtract(($3|0),($4|0),($8|0),($11|0))|0);
$13 = (getTempRet0() | 0);
$14 = (5000 - ($12))|0;
$15 = (($14|0) / 1000)&-1;
$16 = ($14|0)>(999);
$spec$store$select = $16 ? $15 : 0;
$17 = ((($0)) + 36|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($18|0)==($spec$store$select|0);
if ($19) {
$20 = ((($0)) + 60|0);
$21 = HEAP8[$20>>0]|0;
$22 = ((($0)) + 33|0);
$23 = HEAP8[$22>>0]|0;
$24 = ($21<<24>>24)==($23<<24>>24);
if ($24) {
STACKTOP = sp;return;
}
}
HEAP32[$1>>2] = $2;
$25 = ((($1)) + 4|0);
HEAP16[$25>>1] = 0;
$26 = ((($1)) + 6|0);
HEAP16[$26>>1] = 64;
_DisconnectScreen_ReconnectMessage($0,$1);
$27 = ((($0)) + 40|0);
$28 = ((($0)) + 120|0);
_ButtonWidget_Set($27,$1,$28);
$29 = $16&1;
$30 = ((($0)) + 61|0);
HEAP8[$30>>0] = $29;
HEAP32[$17>>2] = $spec$store$select;
$31 = ((($0)) + 60|0);
$32 = HEAP8[$31>>0]|0;
$33 = ((($0)) + 33|0);
HEAP8[$33>>0] = $32;
$34 = ((($0)) + 7|0);
HEAP8[$34>>0] = 1;
STACKTOP = sp;return;
}
function _TouchScreen_Show() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[345979] = 17780;
$0 = HEAP8[1408267]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
_Gui_Replace(1383916,25);
return;
}
function _TouchScreen_Init($0) {
$0 = $0|0;
var $$022 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 7056;
$2 = ((($0)) + 16|0);
HEAP32[$2>>2] = 7;
$3 = ((($0)) + 40|0);
$4 = ((($0)) + 20|0);
$$022 = 0;
while(1) {
$5 = (($3) + (($$022*80)|0)|0);
$6 = (((6960 + (($$022*12)|0)|0)) + 5|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = ($$022>>>0)<(4);
$10 = $9 ? 0 : 2;
$11 = (((6960 + (($$022*12)|0)|0)) + 6|0);
$12 = HEAP16[$11>>1]|0;
$13 = $12 << 16 >> 16;
$14 = (((6960 + (($$022*12)|0)|0)) + 8|0);
$15 = HEAP16[$14>>1]|0;
$16 = $15 << 16 >> 16;
_ButtonWidget_Make($5,$8,0,$10,0,$13,$16);
$17 = (((6960 + (($$022*12)|0)|0)) + 4|0);
$18 = HEAP8[$17>>0]|0;
$19 = (($4) + ($$022)|0);
HEAP8[$19>>0] = $18;
$20 = (($$022) + 1)|0;
$21 = HEAP32[$2>>2]|0;
$22 = ($20|0)<($21|0);
if ($22) {
$$022 = $20;
} else {
break;
}
}
$23 = ((($0)) + 472|0);
HEAP32[$23>>2] = 113;
$24 = ((($0)) + 552|0);
HEAP32[$24>>2] = 114;
return;
}
function _TouchScreen_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Gui_GetInputGrab()|0);
$3 = ($2|0)==(0|0);
if (!($3)) {
return;
}
_Screen_Render2Widgets($0,0.0);
return;
}
function _TouchScreen_BuildMesh($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2016|0;
$1 = sp;
_Screen_BuildMesh($0,$1);
$2 = ((($0)) + 8|0);
$3 = HEAP32[$2>>2]|0;
_Gfx_SetDynamicVbData($3,$1,84);
STACKTOP = sp;return;
}
function _TouchScreen_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$022 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_Gui_GetInputGrab()|0);
$5 = ($4|0)==(0|0);
if (!($5)) {
$$022 = 0;
return ($$022|0);
}
$6 = ((($0)) + 16|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)>(0);
if (!($8)) {
$$022 = 0;
return ($$022|0);
}
$9 = ((($0)) + 40|0);
$$025 = 0;
while(1) {
$10 = (($9) + (($$025*80)|0)|0);
$11 = (_Widget_Contains($10,$2,$3)|0);
$12 = ($11|0)==(0);
if (!($12)) {
break;
}
$28 = (($$025) + 1)|0;
$29 = HEAP32[$6>>2]|0;
$30 = ($28|0)<($29|0);
if ($30) {
$$025 = $28;
} else {
$$022 = 0;
label = 10;
break;
}
}
if ((label|0) == 10) {
return ($$022|0);
}
$13 = ((($0)) + 20|0);
$14 = (($13) + ($$025)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15&255)<(35);
if ($16) {
$17 = $15&255;
$18 = (379728 + ($17)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
_Input_SetPressed($20,1);
} else {
$21 = (((($9) + (($$025*80)|0)|0)) + 32|0);
$22 = HEAP32[$21>>2]|0;
FUNCTION_TABLE_vii[$22 & 127]($0,$10);
}
$23 = (((($9) + (($$025*80)|0)|0)) + 20|0);
$24 = HEAP8[$23>>0]|0;
$25 = $24&255;
$26 = $25 | $1;
$27 = $26&255;
HEAP8[$23>>0] = $27;
$$022 = 1;
return ($$022|0);
}
function _TouchScreen_PointerUp($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$017 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
$$017 = 0;
return ($$017|0);
}
$7 = ((($0)) + 40|0);
$$019 = 0;
while(1) {
$8 = (((($7) + (($$019*80)|0)|0)) + 20|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $10 & $1;
$12 = ($11|0)==(0);
if (!($12)) {
break;
}
$26 = (($$019) + 1)|0;
$27 = HEAP32[$4>>2]|0;
$28 = ($26|0)<($27|0);
if ($28) {
$$019 = $26;
} else {
$$017 = 0;
label = 8;
break;
}
}
if ((label|0) == 8) {
return ($$017|0);
}
$13 = ((($0)) + 20|0);
$14 = (($13) + ($$019)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15&255)<(35);
if ($16) {
$17 = $15&255;
$18 = (379728 + ($17)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
_Input_SetPressed($20,0);
}
$21 = $1 ^ 255;
$22 = HEAP8[$8>>0]|0;
$23 = $22&255;
$24 = $21 & $23;
$25 = $24&255;
HEAP8[$8>>0] = $25;
$$017 = 1;
return ($$017|0);
}
function _TouchScreen_ContextLost($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 28|0);
_Font_Free($1);
_Screen_ContextLost($0);
return;
}
function _TouchScreen_ContextRecreated($0) {
$0 = $0|0;
var $$016 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 28|0);
_Drawer2D_MakeFont($1,16,1);
$2 = (_Gfx_CreateDynamicVb(1,84)|0);
$3 = ((($0)) + 8|0);
HEAP32[$3>>2] = $2;
$4 = ((($0)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
_TouchScreen_UpdateModeText($0);
return;
}
$7 = ((($0)) + 40|0);
$$016 = 0;
while(1) {
$8 = (($7) + (($$016*80)|0)|0);
$9 = (6960 + (($$016*12)|0)|0);
$10 = HEAP32[$9>>2]|0;
_ButtonWidget_SetConst($8,$10,$1);
$11 = (($$016) + 1)|0;
$12 = HEAP32[$4>>2]|0;
$13 = ($11|0)<($12|0);
if ($13) {
$$016 = $11;
} else {
break;
}
}
_TouchScreen_UpdateModeText($0);
return;
}
function _TouchScreen_UpdateModeText($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 440|0);
$2 = HEAP8[1408268]|0;
$3 = ($2<<24>>24)==(0);
$4 = $3 ? 36398 : 36405;
$5 = ((($0)) + 28|0);
_ButtonWidget_SetConst($1,$4,$5);
return;
}
function _TouchScreen_ModeClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408268]|0;
$3 = ($2<<24>>24)==(0);
$4 = $3&1;
HEAP8[1408268] = $4;
_TouchScreen_UpdateModeText($0);
return;
}
function _TouchScreen_MoreClick($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TouchMoreOverlay_Show();
return;
}
function _Selections_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_Event_Register((1251856),0,391);
_Event_Register((1252116),0,392);
return;
}
function _Selections_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Selections_ContextLost(0);
_Event_Unregister((1251856),0,391);
_Event_Unregister((1252116),0,392);
return;
}
function _Selections_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[346129] = 0;
return;
}
function _Selections_ContextLost($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_DeleteVb(1384520);
_Gfx_DeleteVb(1384524);
return;
}
function _Selections_ContextRecreated($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408294]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
return;
}
$3 = (_Gfx_CreateDynamicVb(0,6144)|0);
HEAP32[346130] = $3;
$4 = (_Gfx_CreateDynamicVb(0,6144)|0);
HEAP32[346131] = $4;
return;
}
function _Selections_Add($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$4 = sp + 24|0;
$5 = sp + 12|0;
$6 = sp;
_IVec3_Min($5,$1,$2);
_IVec3_ToVec3($4,$5);
_IVec3_Max($6,$1,$2);
$7 = ((($4)) + 12|0);
_IVec3_ToVec3($7,$6);
$8 = ((($4)) + 24|0);
HEAP32[$8>>2] = $3;
_Selections_Remove($0);
$9 = HEAP32[346129]|0;
$10 = (496656 + (($9*36)|0)|0);
dest=$10; src=$4; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$11 = (505872 + ($9)|0);
HEAP8[$11>>0] = $0;
$12 = (($9) + 1)|0;
HEAP32[346129] = $12;
STACKTOP = sp;return;
}
function _Selections_Remove($0) {
$0 = $0|0;
var $$015 = 0, $$114 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0;
var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
$1 = HEAP32[346129]|0;
$2 = ($1|0)>(0);
if (!($2)) {
return;
}
$3 = HEAP32[346129]|0;
$$015 = 0;$8 = $1;
while(1) {
$4 = (505872 + ($$015)|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==($0<<24>>24);
if ($6) {
break;
}
$16 = (($$015) + 1)|0;
$17 = ($16|0)<($3|0);
if ($17) {
$$015 = $16;$8 = $3;
} else {
label = 9;
break;
}
}
if ((label|0) == 9) {
return;
}
$7 = (($8) + -1)|0;
$9 = ($$015|0)<($7|0);
if ($9) {
$$114 = $$015;
while(1) {
$10 = (496656 + (($$114*36)|0)|0);
$11 = (($$114) + 1)|0;
$12 = (496656 + (($11*36)|0)|0);
dest=$10; src=$12; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$13 = (505872 + ($11)|0);
$14 = HEAP8[$13>>0]|0;
$15 = (505872 + ($$114)|0);
HEAP8[$15>>0] = $14;
$exitcond = ($11|0)==($7|0);
if ($exitcond) {
break;
} else {
$$114 = $11;
}
}
}
HEAP32[346129] = $7;
return;
}
function _Selections_Render() {
var $$09 = 0, $$18 = 0, $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 196640|0;
$$byval_copy = sp + 196628|0;
$0 = sp + 98304|0;
$1 = sp + 196624|0;
$2 = sp;
$3 = sp + 196620|0;
$4 = sp + 196608|0;
$5 = HEAP32[346129]|0;
$6 = ($5|0)!=(0);
$7 = HEAP8[(1260360)>>0]|0;
$8 = ($7<<24>>24)==(0);
$or$cond = $6 & $8;
if (!($or$cond)) {
STACKTOP = sp;return;
}
;HEAP32[$4>>2]=HEAP32[(1230620)>>2]|0;HEAP32[$4+4>>2]=HEAP32[(1230620)+4>>2]|0;HEAP32[$4+8>>2]=HEAP32[(1230620)+8>>2]|0;
$9 = ($5|0)>(0);
if ($9) {
$$09 = 0;
while(1) {
$10 = (496656 + (($$09*36)|0)|0);
;HEAP32[$$byval_copy>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$4+8>>2]|0;
_SelectionBox_Intersect($10,$$byval_copy);
$11 = (($$09) + 1)|0;
$exitcond = ($11|0)==($5|0);
if ($exitcond) {
break;
} else {
$$09 = $11;
}
}
}
$12 = (($5) + -1)|0;
_Selections_QuickSort(0,$12);
$13 = HEAP32[346130]|0;
$14 = ($13|0)==(0);
if ($14) {
HEAP8[1408294] = 1;
_Selections_ContextRecreated(0);
}
HEAP32[$1>>2] = $0;
HEAP32[$3>>2] = $2;
$15 = HEAP32[346129]|0;
$16 = ($15|0)>(0);
if ($16) {
$17 = HEAP32[346129]|0;
$$18 = 0;
while(1) {
$18 = (496656 + (($$18*36)|0)|0);
_SelectionBox_Render($18,$1,$3);
$19 = (($$18) + 1)|0;
$20 = ($19|0)<($17|0);
if ($20) {
$$18 = $19;
} else {
break;
}
}
}
_Gfx_SetVertexFormat(0);
$21 = HEAP32[346131]|0;
$22 = HEAP32[346129]|0;
$23 = ($22*24)|0;
_Gfx_UpdateDynamicVb_Lines($21,$2,$23);
_Gfx_SetDepthWrite(0);
_Gfx_SetAlphaBlending(1);
$24 = HEAP32[346130]|0;
$25 = HEAP32[346129]|0;
$26 = ($25*24)|0;
_Gfx_UpdateDynamicVb_IndexedTris($24,$0,$26);
_Gfx_SetDepthWrite(1);
_Gfx_SetAlphaBlending(0);
STACKTOP = sp;return;
}
function _SelectionBox_Intersect($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0;
var $29 = 0.0, $3 = 0.0, $30 = 0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0, $45 = 0.0, $46 = 0.0;
var $47 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[$1>>2];
$3 = +HEAPF32[$0>>2];
$4 = $2 - $3;
$5 = $4 * $4;
$6 = ((($0)) + 12|0);
$7 = +HEAPF32[$6>>2];
$8 = $2 - $7;
$9 = $8 * $8;
$10 = ((($1)) + 4|0);
$11 = +HEAPF32[$10>>2];
$12 = ((($0)) + 4|0);
$13 = +HEAPF32[$12>>2];
$14 = $11 - $13;
$15 = $14 * $14;
$16 = ((($0)) + 16|0);
$17 = +HEAPF32[$16>>2];
$18 = $11 - $17;
$19 = $18 * $18;
$20 = ((($1)) + 8|0);
$21 = +HEAPF32[$20>>2];
$22 = ((($0)) + 8|0);
$23 = +HEAPF32[$22>>2];
$24 = $21 - $23;
$25 = $24 * $24;
$26 = ((($0)) + 20|0);
$27 = +HEAPF32[$26>>2];
$28 = $21 - $27;
$29 = $28 * $28;
$30 = $5 < $9;
$31 = $30 ? $5 : $9;
$32 = $15 < $19;
$33 = $32 ? $15 : $19;
$34 = $31 + $33;
$35 = $25 < $29;
$36 = $35 ? $25 : $29;
$37 = $34 + $36;
$38 = ((($0)) + 28|0);
HEAPF32[$38>>2] = $37;
$39 = $5 > $9;
$40 = $39 ? $5 : $9;
$41 = $15 > $19;
$42 = $41 ? $15 : $19;
$43 = $40 + $42;
$44 = $25 > $29;
$45 = $44 ? $25 : $29;
$46 = $43 + $45;
$47 = ((($0)) + 32|0);
HEAPF32[$47>>2] = $46;
return;
}
function _Selections_QuickSort($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$062$lcssa = 0, $$06272 = 0, $$064$lcssa = 0, $$06471 = 0, $$06774 = 0, $$075 = 0, $$1 = 0, $$163 = 0, $$165 = 0, $$168 = 0, $$2 = 0, $$266 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$2 = sp;
$3 = ($0|0)<($1|0);
if (!($3)) {
STACKTOP = sp;return;
}
$$06774 = $1;$$075 = $0;
while(1) {
$4 = (($$075) + ($$06774))|0;
$5 = (1)?($4 >> 1):($4);
$6 = (496656 + (($5*36)|0)|0);
$7 = ($$075|0)>($$06774|0);
if ($7) {
$$062$lcssa = $$06774;$$064$lcssa = $$075;
} else {
$$06272 = $$06774;$$06471 = $$075;
while(1) {
$$165 = $$06471;
while(1) {
$8 = (496656 + (($$165*36)|0)|0);
$9 = (_SelectionBox_Compare($6,$8)|0);
$10 = ($9|0)>(0);
$11 = (($$165) + 1)|0;
if ($10) {
$$165 = $11;
} else {
break;
}
}
$$163 = $$06272;
while(1) {
$12 = (496656 + (($$163*36)|0)|0);
$13 = (_SelectionBox_Compare($6,$12)|0);
$14 = ($13|0)<(0);
$15 = (($$163) + -1)|0;
if ($14) {
$$163 = $15;
} else {
break;
}
}
$16 = ($$165|0)>($$163|0);
if ($16) {
$$2 = $$163;$$266 = $$165;
} else {
dest=$2; src=$8; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
dest=$8; src=$12; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
dest=$12; src=$2; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$17 = (505872 + ($$165)|0);
$18 = HEAP8[$17>>0]|0;
$19 = (505872 + ($$163)|0);
$20 = HEAP8[$19>>0]|0;
HEAP8[$17>>0] = $20;
HEAP8[$19>>0] = $18;
$21 = (($$165) + 1)|0;
$22 = (($$163) + -1)|0;
$$2 = $22;$$266 = $21;
}
$23 = ($$266|0)>($$2|0);
if ($23) {
$$062$lcssa = $$2;$$064$lcssa = $$266;
break;
} else {
$$06272 = $$2;$$06471 = $$266;
}
}
}
$24 = (($$062$lcssa) - ($$075))|0;
$25 = (($$06774) - ($$064$lcssa))|0;
$26 = ($24|0)>($25|0);
if ($26) {
$28 = ($$06774|0)>($$064$lcssa|0);
if ($28) {
_Selections_QuickSort($$064$lcssa,$$06774);
$$1 = $$075;$$168 = $$062$lcssa;
} else {
$$1 = $$075;$$168 = $$062$lcssa;
}
} else {
$27 = ($$062$lcssa|0)>($$075|0);
if ($27) {
_Selections_QuickSort($$075,$$062$lcssa);
$$1 = $$064$lcssa;$$168 = $$06774;
} else {
$$1 = $$064$lcssa;$$168 = $$06774;
}
}
$29 = ($$1|0)<($$168|0);
if ($29) {
$$06774 = $$168;$$075 = $$1;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _SelectionBox_Render($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$04246 = 0, $$047 = 0, $$14344 = 0, $$145 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $7 = 0.0, $8 = 0.0, $9 = 0, $scevgep = 0, $scevgep49 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp;
$4 = ((($0)) + 28|0);
$5 = +HEAPF32[$4>>2];
$6 = $5 < 1024.0;
$7 = $6 ? 0.03125 : 0.0625;
$8 = - $7;
_Vec3_Add1_1464($3,$0,$8);
$9 = ((($3)) + 12|0);
$10 = ((($0)) + 12|0);
_Vec3_Add1_1464($9,$10,$7);
$11 = ((($0)) + 24|0);
$12 = HEAP32[$11>>2]|0;
$13 = HEAP32[$1>>2]|0;
$$04246 = 0;$$047 = $13;
while(1) {
$14 = (7088 + ($$04246)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = (($3) + (($16*12)|0)|0);
$18 = HEAP32[$17>>2]|0;
HEAP32[$$047>>2] = $18;
$19 = (($$04246) + 1)|0;
$20 = (7088 + ($19)|0);
$21 = HEAP8[$20>>0]|0;
$22 = $21&255;
$23 = (((($3) + (($22*12)|0)|0)) + 4|0);
$24 = HEAP32[$23>>2]|0;
$25 = ((($$047)) + 4|0);
HEAP32[$25>>2] = $24;
$26 = (($$04246) + 2)|0;
$27 = (7088 + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = $28&255;
$30 = (((($3) + (($29*12)|0)|0)) + 8|0);
$31 = HEAP32[$30>>2]|0;
$32 = ((($$047)) + 8|0);
HEAP32[$32>>2] = $31;
$33 = ((($$047)) + 12|0);
HEAP32[$33>>2] = $12;
$34 = (($$04246) + 3)|0;
$35 = ((($$047)) + 16|0);
$36 = ($34>>>0)<(72);
if ($36) {
$$04246 = $34;$$047 = $35;
} else {
break;
}
}
$scevgep49 = ((($13)) + 384|0);
HEAP32[$1>>2] = $scevgep49;
$37 = $12 ^ 16777215;
$38 = HEAP32[$2>>2]|0;
$$14344 = 0;$$145 = $38;
while(1) {
$39 = (7168 + ($$14344)|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40&255;
$42 = (($3) + (($41*12)|0)|0);
$43 = HEAP32[$42>>2]|0;
HEAP32[$$145>>2] = $43;
$44 = (($$14344) + 1)|0;
$45 = (7168 + ($44)|0);
$46 = HEAP8[$45>>0]|0;
$47 = $46&255;
$48 = (((($3) + (($47*12)|0)|0)) + 4|0);
$49 = HEAP32[$48>>2]|0;
$50 = ((($$145)) + 4|0);
HEAP32[$50>>2] = $49;
$51 = (($$14344) + 2)|0;
$52 = (7168 + ($51)|0);
$53 = HEAP8[$52>>0]|0;
$54 = $53&255;
$55 = (((($3) + (($54*12)|0)|0)) + 8|0);
$56 = HEAP32[$55>>2]|0;
$57 = ((($$145)) + 8|0);
HEAP32[$57>>2] = $56;
$58 = ((($$145)) + 12|0);
HEAP32[$58>>2] = $37;
$59 = (($$14344) + 3)|0;
$60 = ((($$145)) + 16|0);
$61 = ($59>>>0)<(72);
if ($61) {
$$14344 = $59;$$145 = $60;
} else {
break;
}
}
$scevgep = ((($38)) + 384|0);
HEAP32[$2>>2] = $scevgep;
STACKTOP = sp;return;
}
function _Vec3_Add1_1464($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0.0, $11 = 0.0, $12 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = $3 + $2;
HEAPF32[$0>>2] = $4;
$5 = ((($1)) + 4|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 + $2;
$8 = ((($0)) + 4|0);
HEAPF32[$8>>2] = $7;
$9 = ((($1)) + 8|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 + $2;
$12 = ((($0)) + 8|0);
HEAPF32[$12>>2] = $11;
return;
}
function _SelectionBox_Compare($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$ = 0, $$0 = 0.0, $$012 = 0.0, $$013 = 0, $10 = 0.0, $11 = 0, $12 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 28|0);
$3 = +HEAPF32[$2>>2];
$4 = ((($1)) + 28|0);
$5 = +HEAPF32[$4>>2];
$6 = $3 == $5;
if ($6) {
$7 = ((($0)) + 32|0);
$8 = +HEAPF32[$7>>2];
$9 = ((($1)) + 32|0);
$10 = +HEAPF32[$9>>2];
$$0 = $10;$$012 = $8;
} else {
$$0 = $5;$$012 = $3;
}
$11 = $$012 < $$0;
$12 = $$012 > $$0;
$$ = $12 << 31 >> 31;
$$013 = $11 ? 1 : $$;
return ($$013|0);
}
function _Server_Init() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1384552)>>2] = 506128;
HEAP16[(1384556)>>1] = 0;
HEAP16[(1384558)>>1] = 64;
HEAP32[(1384560)>>2] = 506192;
HEAP16[(1384564)>>1] = 0;
HEAP16[(1384566)>>1] = 64;
HEAP32[(1384568)>>2] = 506256;
HEAP16[(1384572)>>1] = 0;
HEAP16[(1384574)>>1] = 64;
$0 = HEAP16[(1384592)>>1]|0;
$1 = ($0<<16>>16)==(0);
if ($1) {
_SPConnection_Init();
} else {
_MPConnection_Init();
}
$2 = HEAP32[(1384532)>>2]|0;
(_ScheduledTask_Add(0.016666666666666666,$2)|0);
_String_AppendConst((1384568),36430);
return;
}
function _Server_Free() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1384580)>>0]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
_Physics_Free();
return;
}
$2 = HEAP8[(1384581)>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
return;
}
$4 = HEAP32[346150]|0;
(_Socket_Close($4)|0);
HEAP8[(1384581)>>0] = 1;
return;
}
function _MPConnection_Reset() {
var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
$0 = HEAP8[(1384580)>>0]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
return;
}
_memset((496400|0),0,192)|0;
dest=496304; stop=dest+96|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
HEAP8[1408295] = 0;
_Protocol_Reset();
_Server_Free();
return;
}
function _MPConnection_OnNewMap() {
var $$04 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[(1384580)>>0]|0;
$1 = ($0<<24>>24)==(0);
if (!($1)) {
return;
}
$$04 = 0;
while(1) {
$2 = $$04&255;
_Protocol_RemoveEntity($2);
$3 = (($$04) + 1)|0;
$exitcond = ($3|0)==(256);
if ($exitcond) {
break;
} else {
$$04 = $3;
}
}
return;
}
function _SPConnection_Init() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Server_ResetState();
_Physics_Init();
HEAP32[346132] = 74;
HEAP32[(1384532)>>2] = 393;
HEAP32[(1384536)>>2] = 1;
HEAP32[(1384540)>>2] = 394;
HEAP32[(1384544)>>2] = 3;
HEAP32[(1384548)>>2] = 115;
$0 = HEAP8[1408229]|0;
$1 = ($0<<24>>24)==(0);
$2 = $1&1;
HEAP8[(1384585)>>0] = $2;
HEAP8[(1384584)>>0] = 1;
HEAP8[(1384580)>>0] = 1;
HEAP32[(1384576)>>2] = 0;
return;
}
function _MPConnection_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_Server_ResetState();
HEAP8[(1384580)>>0] = 0;
HEAP32[346132] = 75;
HEAP32[(1384532)>>2] = 395;
HEAP32[(1384536)>>2] = 2;
HEAP32[(1384540)>>2] = 396;
HEAP32[(1384544)>>2] = 4;
HEAP32[(1384548)>>2] = 116;
HEAP32[346151] = 506320;
HEAP32[(1384576)>>2] = 526800;
return;
}
function _Server_ResetState() {
var label = 0, sp = 0;
sp = STACKTOP;
;HEAP8[(1384581)>>0]=0|0;HEAP8[(1384581)+1>>0]=0|0;HEAP8[(1384581)+2>>0]=0|0;HEAP8[(1384581)+3>>0]=0|0;HEAP8[(1384581)+4>>0]=0|0;
return;
}
function _MPConnection_BeginConnect() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $or$cond = 0, $or$cond7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$0 = sp + 64|0;
$1 = sp;
HEAP32[$0>>2] = $1;
$2 = ((($0)) + 4|0);
HEAP16[$2>>1] = 0;
$3 = ((($0)) + 6|0);
HEAP16[$3>>1] = 64;
_Socket_Create(1384600);
HEAP8[(1384581)>>0] = 0;
HEAP8[1408296] = 1;
$4 = (_DateTime_CurrentUTC_MS()|0);
$5 = (getTempRet0() | 0);
$6 = (_i64Add(($4|0),($5|0),15000,0)|0);
$7 = (getTempRet0() | 0);
$8 = 569592;
$9 = $8;
HEAP32[$9>>2] = $6;
$10 = (($8) + 4)|0;
$11 = $10;
HEAP32[$11>>2] = $7;
$12 = HEAP32[346150]|0;
$13 = HEAP32[(1384596)>>2]|0;
$14 = (_Socket_Connect($12,(1384588),$13)|0);
$15 = ($14|0)==(0);
$16 = HEAP32[4303]|0;
$17 = ($14|0)==($16|0);
$or$cond = $15 | $17;
$18 = HEAP32[4304]|0;
$19 = ($14|0)==($18|0);
$or$cond7 = $or$cond | $19;
if ($or$cond7) {
_String_Format2($0,36881,(1384588),(1384596));
_LoadingScreen_Show($0,1384616);
STACKTOP = sp;return;
} else {
_MPConnection_FailConnect($14);
STACKTOP = sp;return;
}
}
function _MPConnection_Tick($0) {
$0 = $0|0;
var $$0 = 0, $$03641 = 0, $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, $or$cond38 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$1 = sp + 136|0;
$2 = sp;
$3 = sp + 132|0;
$4 = sp + 128|0;
$5 = HEAP8[(1384581)>>0]|0;
$6 = ($5<<24>>24)==(0);
if (!($6)) {
STACKTOP = sp;return;
}
$7 = HEAP8[1408296]|0;
$8 = ($7<<24>>24)==(0);
if (!($8)) {
_MPConnection_TickConnect();
STACKTOP = sp;return;
}
$9 = (_DateTime_CurrentUTC_MS()|0);
$10 = (getTempRet0() | 0);
$11 = 569584;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = (($11) + 4)|0;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (_i64Add(($13|0),($16|0),30000,0)|0);
$18 = (getTempRet0() | 0);
$19 = ($18>>>0)<($10>>>0);
$20 = ($17>>>0)<($9>>>0);
$21 = ($18|0)==($10|0);
$22 = $21 & $20;
$23 = $19 | $22;
if ($23) {
_MPConnection_CheckDisconnection();
}
$24 = HEAP8[(1384581)>>0]|0;
$25 = ($24<<24>>24)==(0);
if (!($25)) {
STACKTOP = sp;return;
}
HEAP32[$3>>2] = 0;
$26 = HEAP32[346150]|0;
$27 = (_Socket_Available($26,$3)|0);
HEAP32[$4>>2] = $27;
$28 = HEAP32[346151]|0;
$29 = ($27|0)==(0);
$30 = HEAP32[$3>>2]|0;
$31 = ($30|0)!=(0);
$or$cond = $29 & $31;
if ($or$cond) {
$32 = HEAP32[346150]|0;
$33 = (_Socket_Read($32,$28,16384,$3)|0);
HEAP32[$4>>2] = $33;
$34 = HEAP32[$3>>2]|0;
$35 = (($28) + ($34)|0);
$$0 = $35;$36 = $33;
} else {
$$pr = HEAP32[$4>>2]|0;
$$0 = $28;$36 = $$pr;
}
$37 = ($36|0)==(0);
if (!($37)) {
HEAP32[$1>>2] = $2;
$38 = ((($1)) + 4|0);
HEAP16[$38>>1] = 0;
$39 = ((($1)) + 6|0);
HEAP16[$39>>1] = 128;
_String_Format3($1,36452,(1384588),(1384596),$4);
_Game_Disconnect(17892,17900);
STACKTOP = sp;return;
}
HEAP32[346151] = 506320;
$40 = ($$0>>>0)>(506320>>>0);
L22: do {
if ($40) {
$42 = 506320;
while(1) {
$41 = HEAP8[$42>>0]|0;
$43 = HEAP8[1408276]|0;
$44 = ($43<<24>>24)!=(0);
$45 = HEAP8[1408297]|0;
$46 = ($45<<24>>24)==(32);
$or$cond38 = $44 & $46;
L26: do {
if ($or$cond38) {
switch ($41<<24>>24) {
case -1: case 0: {
break;
}
default: {
label = 17;
break L26;
}
}
_Platform_LogConst(36482);
$47 = HEAP32[346151]|0;
$48 = ((($47)) + 1|0);
HEAP32[346151] = $48;
HEAPF32[(1242968)>>2] = 0.41999998688697815;
HEAPF32[(1242976)>>2] = 0.41999998688697815;
} else {
label = 17;
}
} while(0);
if ((label|0) == 17) {
label = 0;
$49 = $41&255;
$50 = ($41&255)>(47);
if ($50) {
label = 18;
break;
}
$51 = (496304 + ($49<<1)|0);
$52 = HEAP16[$51>>1]|0;
$53 = $52&65535;
$54 = (($42) + ($53)|0);
$55 = ($54>>>0)>($$0>>>0);
if ($55) {
break L22;
}
HEAP8[1408297] = $41;
$56 = (_DateTime_CurrentUTC_MS()|0);
$57 = (getTempRet0() | 0);
$58 = 569584;
$59 = $58;
HEAP32[$59>>2] = $56;
$60 = (($58) + 4)|0;
$61 = $60;
HEAP32[$61>>2] = $57;
$62 = (496400 + ($49<<2)|0);
$63 = HEAP32[$62>>2]|0;
$64 = ($63|0)==(0|0);
if ($64) {
label = 21;
break;
}
$65 = HEAP32[346151]|0;
$66 = ((($65)) + 1|0);
FUNCTION_TABLE_vi[$63 & 511]($66);
$67 = HEAP16[$51>>1]|0;
$68 = $67&65535;
$69 = HEAP32[346151]|0;
$70 = (($69) + ($68)|0);
HEAP32[346151] = $70;
}
$71 = HEAP32[346151]|0;
$72 = ($71>>>0)<($$0>>>0);
if ($72) {
$42 = $71;
} else {
break L22;
}
}
if ((label|0) == 18) {
_Game_Disconnect(17908,17916);
STACKTOP = sp;return;
}
else if ((label|0) == 21) {
_Game_Disconnect(17908,17916);
STACKTOP = sp;return;
}
}
} while(0);
$73 = HEAP32[346151]|0;
$74 = $$0;
$75 = (($74) - ($73))|0;
$76 = ($75|0)>(0);
if ($76) {
$77 = HEAP32[346151]|0;
$$03641 = 0;
while(1) {
$78 = (($77) + ($$03641)|0);
$79 = HEAP8[$78>>0]|0;
$80 = (506320 + ($$03641)|0);
HEAP8[$80>>0] = $79;
$81 = (($$03641) + 1)|0;
$exitcond = ($81|0)==($75|0);
if ($exitcond) {
break;
} else {
$$03641 = $81;
}
}
}
$82 = (506320 + ($75)|0);
HEAP32[346151] = $82;
$83 = HEAP32[346152]|0;
$84 = (($83|0) % 3)&-1;
$85 = ($84|0)==(0);
if ($85) {
_Server_CheckAsyncResources();
_Protocol_Tick();
$86 = HEAP32[(1384576)>>2]|0;
$87 = ($86|0)==(526800|0);
if (!($87)) {
_Net_SendPacket();
}
}
$88 = HEAP32[346152]|0;
$89 = (($88) + 1)|0;
HEAP32[346152] = $89;
STACKTOP = sp;return;
}
function _MPConnection_SendBlock($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ($4<<16>>16)==(0);
if ($5) {
$6 = HEAP32[(1268184)>>2]|0;
$7 = HEAP32[(1268180)>>2]|0;
$8 = (($7) + ($6))|0;
$9 = (1266480 + ($8<<1)|0);
$10 = HEAP16[$9>>1]|0;
_Classic_WriteSetBlock($0,$1,$2,0,$10);
_Net_SendPacket();
return;
} else {
_Classic_WriteSetBlock($0,$1,$2,1,$4);
_Net_SendPacket();
return;
}
}
function _MPConnection_SendChat($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
$3 = ((($0)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)!=(0);
$6 = HEAP8[1408296]|0;
$7 = ($6<<24>>24)==(0);
$or$cond = $5 & $7;
if (!($or$cond)) {
STACKTOP = sp;return;
}
$8 = $0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $1;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = ((($1)) + 4|0);
$19 = HEAP16[$18>>1]|0;
$20 = ($19&65535)>(64);
if ($20) {
while(1) {
_Classic_SendChat($1,1);
_String_UNSAFE_SubstringAt($2,$1,64);
$21 = $2;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = $1;
$28 = $27;
HEAP32[$28>>2] = $23;
$29 = (($27) + 4)|0;
$30 = $29;
HEAP32[$30>>2] = $26;
$31 = HEAP16[$18>>1]|0;
$32 = ($31&65535)>(64);
if (!($32)) {
break;
}
}
}
_Classic_SendChat($1,0);
STACKTOP = sp;return;
}
function _MPConnection_SendPosition($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $$byval_copy = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$$byval_copy = sp;
;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;
_Classic_WritePosition($$byval_copy,$1,$2);
_Net_SendPacket();
STACKTOP = sp;return;
}
function _MPConnection_SendData($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$078 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond10 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = HEAP8[(1384581)>>0]|0;
$4 = ($3<<24>>24)!=(0);
$5 = ($1|0)==(0);
$or$cond10 = $4 | $5;
if ($or$cond10) {
STACKTOP = sp;return;
}
$$078 = $1;$$09 = $0;
while(1) {
$6 = HEAP32[346150]|0;
$7 = (_Socket_Write($6,$$09,$$078,$2)|0);
$8 = ($7|0)==(0);
$9 = HEAP32[$2>>2]|0;
$10 = ($9|0)!=(0);
$or$cond = $8 & $10;
if (!($or$cond)) {
break;
}
$11 = (($$09) + ($9)|0);
$12 = (($$078) - ($9))|0;
$13 = ($12|0)==(0);
if ($13) {
label = 6;
break;
} else {
$$078 = $12;$$09 = $11;
}
}
if ((label|0) == 6) {
STACKTOP = sp;return;
}
HEAP8[1408295] = 1;
STACKTOP = sp;return;
}
function _Net_SendPacket() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1384576)>>2]|0;
$1 = (($0) - (526800))|0;
HEAP32[(1384576)>>2] = 526800;
$2 = HEAP32[(1384548)>>2]|0;
FUNCTION_TABLE_vii[$2 & 127](526800,$1);
return;
}
function _MPConnection_TickConnect() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0.0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
$1 = sp + 4|0;
HEAP32[$0>>2] = 0;
$2 = HEAP32[346150]|0;
(_Socket_GetError($2,$0)|0);
$3 = HEAP32[$0>>2]|0;
$4 = ($3|0)==(0);
if (!($4)) {
_MPConnection_FailConnect($3);
STACKTOP = sp;return;
}
$5 = (_DateTime_CurrentUTC_MS()|0);
$6 = (getTempRet0() | 0);
$7 = HEAP32[346150]|0;
(_Socket_Poll($7,1,$1)|0);
$8 = HEAP8[$1>>0]|0;
$9 = ($8<<24>>24)==(0);
if (!($9)) {
_MPConnection_FinishConnect();
STACKTOP = sp;return;
}
$10 = 569592;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = (($10) + 4)|0;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = ($15>>>0)<($6>>>0);
$17 = ($12>>>0)<($5>>>0);
$18 = ($15|0)==($6|0);
$19 = $18 & $17;
$20 = $16 | $19;
if ($20) {
_MPConnection_FailConnect(0);
STACKTOP = sp;return;
} else {
$21 = (_i64Subtract(($12|0),($15|0),($5|0),($6|0))|0);
$22 = (getTempRet0() | 0);
$23 = (+($21|0));
$24 = $23 / 15000.0;
_Event_RaiseFloat((1253936),$24);
STACKTOP = sp;return;
}
}
function _MPConnection_CheckDisconnection() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
$1 = sp + 4|0;
HEAP32[$0>>2] = 0;
$2 = HEAP32[346150]|0;
$3 = (_Socket_Available($2,$0)|0);
$4 = HEAP32[346150]|0;
$5 = (_Socket_Poll($4,0,$1)|0);
$6 = HEAP8[1408295]|0;
$7 = ($6<<24>>24)!=(0);
$8 = $5 | $3;
$9 = ($8|0)!=(0);
$10 = $9 | $7;
if (!($10)) {
$11 = HEAP32[$0>>2]|0;
$12 = ($11|0)!=(0);
$13 = HEAP8[$1>>0]|0;
$14 = ($13<<24>>24)==(0);
$or$cond = $12 | $14;
if ($or$cond) {
STACKTOP = sp;return;
}
}
_Game_Disconnect(17932,17940);
STACKTOP = sp;return;
}
function _Server_CheckAsyncResources() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 448|0;
$0 = sp;
$1 = sp + 432|0;
$2 = (_Http_GetResult(17924,$0)|0);
$3 = ($2<<24>>24)==(0);
L1: do {
if (!($3)) {
$4 = ((($0)) + 421|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if (!($6)) {
_TextureCache_Update($0);
_TexturePack_Extract_Req($0);
_HttpRequest_Free($0);
break;
}
$7 = ((($0)) + 280|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0);
if (!($9)) {
_Logger_SysWarn($8,36531,52);
break;
}
$10 = ((($0)) + 272|0);
$11 = HEAP32[$10>>2]|0;
HEAP32[$1>>2] = $11;
switch ($11|0) {
case 200: case 304: {
break L1;
break;
}
default: {
_Chat_Add1(36563,$1);
break L1;
}
}
}
} while(0);
STACKTOP = sp;return;
}
function _MPConnection_FailConnect($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$1 = sp + 128|0;
$2 = sp + 136|0;
$3 = sp;
HEAP32[$1>>2] = $0;
HEAP8[1408296] = 0;
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 128;
$6 = ($0|0)==(0);
if (!($6)) {
_String_Format3($2,36766,(1384588),(1384596),$1);
HEAP16[$4>>1] = 0;
}
_String_Format2($2,36797,(1384588),(1384596));
_Game_Disconnect($2,17948);
_Server_Free();
STACKTOP = sp;return;
}
function _MPConnection_FinishConnect() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408296] = 0;
_Event_RaiseVoid(1259656);
_Event_RaiseFloat((1253936),0.0);
HEAP32[346151] = 506320;
HEAP32[(1384576)>>2] = 526800;
_Protocol_Reset();
_Classic_SendLogin(11488,11496);
$0 = (_DateTime_CurrentUTC_MS()|0);
$1 = (getTempRet0() | 0);
$2 = 569584;
$3 = $2;
HEAP32[$3>>2] = $0;
$4 = (($2) + 4)|0;
$5 = $4;
HEAP32[$5>>2] = $1;
return;
}
function _SPConnection_BeginConnect() {
var $$08 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp + 8|0;
$1 = sp;
$2 = HEAP8[1408235]|0;
HEAP8[1408231] = $2;
$3 = ($2<<24>>24)==(0);
$4 = $3 ? 50 : 66;
$$08 = 1;
while(1) {
$5 = (634116 + ($$08)|0);
HEAP8[$5>>0] = 1;
$6 = (634884 + ($$08)|0);
HEAP8[$6>>0] = 1;
$7 = (($$08) + 1)|0;
$exitcond = ($7|0)==($4|0);
if ($exitcond) {
break;
} else {
$$08 = $7;
}
}
_Event_RaiseVoid(1253156);
$8 = 11488;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $0;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = (_String_IndexOfAt($0,0,47)|0);
$19 = ($18|0)>(-1);
if ($19) {
label = 5;
} else {
$20 = (_String_IndexOfAt($0,0,92)|0);
$21 = ($20|0)>(-1);
if ($21) {
label = 5;
}
}
if ((label|0) == 5) {
$22 = (_File_Exists($0)|0);
$23 = ($22|0)==(0);
if (!($23)) {
_Map_LoadFrom($0);
STACKTOP = sp;return;
}
}
_Random_SeedFromCurrentTime($1);
_World_SetDimensions(128,64,128);
HEAP8[1408240] = 1;
$24 = (_Random_Next($1,2147483647)|0);
HEAP32[315079] = $24;
_GeneratingScreen_Show();
STACKTOP = sp;return;
}
function _SPConnection_Tick($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(1384581)>>0]|0;
$2 = ($1<<24>>24)==(0);
if (!($2)) {
return;
}
$3 = HEAP32[346152]|0;
$4 = (($3|0) % 3)&-1;
$5 = ($4|0)==(0);
if ($5) {
_Physics_Tick();
_Server_CheckAsyncResources();
}
$6 = HEAP32[346152]|0;
$7 = (($6) + 1)|0;
HEAP32[346152] = $7;
return;
}
function _SPConnection_SendBlock($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Physics_OnBlockChanged($0,$1,$2,$3,$4);
return;
}
function _SPConnection_SendChat($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$1 = sp + 24|0;
$2 = sp + 16|0;
$3 = sp + 8|0;
$4 = sp;
$5 = ((($0)) + 4|0);
$6 = HEAP16[$5>>1]|0;
$7 = ($6<<16>>16)==(0);
if ($7) {
STACKTOP = sp;return;
}
HEAP8[1408298] = 0;
$8 = $0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $1;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = ((($1)) + 4|0);
$19 = HEAP16[$18>>1]|0;
$20 = ($19&65535)>(64);
if ($20) {
while(1) {
_String_UNSAFE_Substring($3,$1,0,64);
$21 = $3;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = $2;
$28 = $27;
HEAP32[$28>>2] = $23;
$29 = (($27) + 4)|0;
$30 = $29;
HEAP32[$30>>2] = $26;
_SPConnection_AddPart($2);
_String_UNSAFE_SubstringAt($4,$1,64);
$31 = $4;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = (($31) + 4)|0;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = $1;
$38 = $37;
HEAP32[$38>>2] = $33;
$39 = (($37) + 4)|0;
$40 = $39;
HEAP32[$40>>2] = $36;
$41 = HEAP16[$18>>1]|0;
$42 = ($41&65535)>(64);
if (!($42)) {
break;
}
}
}
_SPConnection_AddPart($1);
STACKTOP = sp;return;
}
function _SPConnection_SendPosition($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _SPConnection_SendData($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _SPConnection_AddPart($0) {
$0 = $0|0;
var $$07 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0;
$1 = sp + 128|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 128;
$5 = HEAP8[1408298]|0;
$6 = (_Drawer2D_IsWhiteCol($5)|0);
$7 = ($6<<24>>24)==(0);
if ($7) {
_String_Append($1,38);
$8 = HEAP8[1408298]|0;
_String_Append($1,$8);
}
_String_AppendString($1,$0);
$9 = HEAP16[$3>>1]|0;
$10 = ($9<<16>>16)==(0);
if (!($10)) {
$$07 = 0;
while(1) {
$11 = HEAP32[$1>>2]|0;
$12 = (($11) + ($$07)|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(37);
if ($14) {
HEAP8[$12>>0] = 38;
}
$15 = (($$07) + 1)|0;
$16 = HEAP16[$3>>1]|0;
$17 = $16&65535;
$18 = ($15>>>0)<($17>>>0);
if ($18) {
$$07 = $15;
} else {
break;
}
}
}
_String_UNSAFE_TrimEnd($1);
$19 = HEAP16[$3>>1]|0;
$20 = $19&65535;
$21 = (_Drawer2D_LastCol($1,$20)|0);
$22 = ($21<<24>>24)==(0);
if ($22) {
_Chat_Add($1);
STACKTOP = sp;return;
}
HEAP8[1408298] = $21;
_Chat_Add($1);
STACKTOP = sp;return;
}
function _Server_RetrieveTexturePack($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408236]|0;
$2 = ($1<<24>>24)==(0);
if ($2) {
return;
}
$3 = (_TextureCache_HasDenied($0)|0);
$4 = ($3<<24>>24)==(0);
if (!($4)) {
return;
}
$5 = ((($0)) + 4|0);
$6 = HEAP16[$5>>1]|0;
$7 = ($6<<16>>16)==(0);
if (!($7)) {
$8 = (_TextureCache_HasAccepted($0)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
_TexPackOverlay_Show($0);
return;
}
}
_World_ApplyTexturePack($0);
return;
}
function _Ping_NextPingId() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[346153]|0;
$1 = (((526944 + (($0*24)|0)|0)) + 16|0);
$2 = HEAP16[$1>>1]|0;
$3 = $2&65535;
$4 = (($3) + 1)|0;
$5 = (($0) + 1)|0;
$6 = (($5>>>0) % 10)&-1;
$7 = $4&65535;
$8 = (((526944 + (($6*24)|0)|0)) + 16|0);
HEAP16[$8>>1] = $7;
$9 = (_DateTime_CurrentUTC_MS()|0);
$10 = (getTempRet0() | 0);
$11 = (526944 + (($6*24)|0)|0);
$12 = $11;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (((526944 + (($6*24)|0)|0)) + 8|0);
$17 = $16;
$18 = $17;
HEAP32[$18>>2] = 0;
$19 = (($17) + 4)|0;
$20 = $19;
HEAP32[$20>>2] = 0;
HEAP32[346153] = $6;
return ($4|0);
}
function _Ping_Update($0) {
$0 = $0|0;
var $$07$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP16[(526960)>>1]|0;
$2 = $1&65535;
$3 = ($2|0)==($0|0);
if ($3) {
$$07$lcssa = 0;
} else {
$11 = HEAP16[(526984)>>1]|0;
$12 = $11&65535;
$13 = ($12|0)==($0|0);
if ($13) {
$$07$lcssa = 1;
} else {
$14 = HEAP16[(527008)>>1]|0;
$15 = $14&65535;
$16 = ($15|0)==($0|0);
if ($16) {
$$07$lcssa = 2;
} else {
$17 = HEAP16[(527032)>>1]|0;
$18 = $17&65535;
$19 = ($18|0)==($0|0);
if ($19) {
$$07$lcssa = 3;
} else {
$20 = HEAP16[(527056)>>1]|0;
$21 = $20&65535;
$22 = ($21|0)==($0|0);
if ($22) {
$$07$lcssa = 4;
} else {
$23 = HEAP16[(527080)>>1]|0;
$24 = $23&65535;
$25 = ($24|0)==($0|0);
if ($25) {
$$07$lcssa = 5;
} else {
$26 = HEAP16[(527104)>>1]|0;
$27 = $26&65535;
$28 = ($27|0)==($0|0);
if ($28) {
$$07$lcssa = 6;
} else {
$29 = HEAP16[(527128)>>1]|0;
$30 = $29&65535;
$31 = ($30|0)==($0|0);
if ($31) {
$$07$lcssa = 7;
} else {
$32 = HEAP16[(527152)>>1]|0;
$33 = $32&65535;
$34 = ($33|0)==($0|0);
if ($34) {
$$07$lcssa = 8;
} else {
$35 = HEAP16[(527176)>>1]|0;
$36 = $35&65535;
$37 = ($36|0)==($0|0);
if ($37) {
$$07$lcssa = 9;
} else {
return;
}
}
}
}
}
}
}
}
}
}
$4 = (_DateTime_CurrentUTC_MS()|0);
$5 = (getTempRet0() | 0);
$6 = (((526944 + (($$07$lcssa*24)|0)|0)) + 8|0);
$7 = $6;
$8 = $7;
HEAP32[$8>>2] = $4;
$9 = (($7) + 4)|0;
$10 = $9;
HEAP32[$10>>2] = $5;
return;
}
function _Ping_AveragePingMS() {
var $$025 = 0, $$1$1 = 0, $$1$2 = 0, $$1$3 = 0, $$1$4 = 0, $$1$5 = 0, $$1$6 = 0, $$1$7 = 0, $$1$8 = 0, $$1$9 = 0, $$129$1 = 0, $$129$2 = 0, $$129$3 = 0, $$129$4 = 0, $$129$5 = 0, $$129$6 = 0, $$129$7 = 0, $$129$8 = 0, $$129$9 = 0, $0 = 0;
var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0;
var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0;
var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0;
var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0;
var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $not$or$cond = 0, $not$or$cond$1 = 0, $not$or$cond$2 = 0, $not$or$cond$3 = 0, $not$or$cond$4 = 0, $not$or$cond$5 = 0, $not$or$cond$6 = 0, $not$or$cond$7 = 0, $not$or$cond$8 = 0, $not$or$cond$9 = 0, $not$or$cond$9$demorgan33 = 0, $not$or$cond$demorgan = 0, $not$or$cond$demorgan$1 = 0, $not$or$cond$demorgan$2 = 0, $not$or$cond$demorgan$3 = 0, $not$or$cond$demorgan$4 = 0, $not$or$cond$demorgan$5 = 0, $not$or$cond$demorgan$6 = 0;
var $not$or$cond$demorgan$7 = 0, $not$or$cond$demorgan$8 = 0, $or$cond = 0, $or$cond$1 = 0, $or$cond$2 = 0, $or$cond$3 = 0, $or$cond$4 = 0, $or$cond$5 = 0, $or$cond$6 = 0, $or$cond$7 = 0, $or$cond$8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = 526944;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = (($0) + 4)|0;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (526952);
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = ($2|0)==(0);
$13 = ($5|0)==(0);
$14 = $12 & $13;
$15 = ($8|0)==(0);
$16 = ($11|0)==(0);
$17 = $15 & $16;
$not$or$cond$demorgan = $14 | $17;
$not$or$cond = $not$or$cond$demorgan ^ 1;
$18 = $not$or$cond&1;
$19 = (526968);
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = (($19) + 4)|0;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = (526976);
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = ($21|0)==(0);
$32 = ($24|0)==(0);
$33 = $31 & $32;
$34 = ($27|0)==(0);
$35 = ($30|0)==(0);
$36 = $34 & $35;
$not$or$cond$demorgan$1 = $33 | $36;
$not$or$cond$1 = $not$or$cond$demorgan$1 ^ 1;
$37 = $not$or$cond$1&1;
$$129$1 = (($18) + ($37))|0;
$38 = (526992);
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = (527000);
$45 = $44;
$46 = HEAP32[$45>>2]|0;
$47 = (($44) + 4)|0;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = ($40|0)==(0);
$51 = ($43|0)==(0);
$52 = $50 & $51;
$53 = ($46|0)==(0);
$54 = ($49|0)==(0);
$55 = $53 & $54;
$not$or$cond$demorgan$2 = $52 | $55;
$not$or$cond$2 = $not$or$cond$demorgan$2 ^ 1;
$56 = $not$or$cond$2&1;
$$129$2 = (($$129$1) + ($56))|0;
$57 = (527016);
$58 = $57;
$59 = HEAP32[$58>>2]|0;
$60 = (($57) + 4)|0;
$61 = $60;
$62 = HEAP32[$61>>2]|0;
$63 = (527024);
$64 = $63;
$65 = HEAP32[$64>>2]|0;
$66 = (($63) + 4)|0;
$67 = $66;
$68 = HEAP32[$67>>2]|0;
$69 = ($59|0)==(0);
$70 = ($62|0)==(0);
$71 = $69 & $70;
$72 = ($65|0)==(0);
$73 = ($68|0)==(0);
$74 = $72 & $73;
$not$or$cond$demorgan$3 = $71 | $74;
$not$or$cond$3 = $not$or$cond$demorgan$3 ^ 1;
$75 = $not$or$cond$3&1;
$$129$3 = (($$129$2) + ($75))|0;
$76 = (527040);
$77 = $76;
$78 = HEAP32[$77>>2]|0;
$79 = (($76) + 4)|0;
$80 = $79;
$81 = HEAP32[$80>>2]|0;
$82 = (527048);
$83 = $82;
$84 = HEAP32[$83>>2]|0;
$85 = (($82) + 4)|0;
$86 = $85;
$87 = HEAP32[$86>>2]|0;
$88 = ($78|0)==(0);
$89 = ($81|0)==(0);
$90 = $88 & $89;
$91 = ($84|0)==(0);
$92 = ($87|0)==(0);
$93 = $91 & $92;
$not$or$cond$demorgan$4 = $90 | $93;
$not$or$cond$4 = $not$or$cond$demorgan$4 ^ 1;
$94 = $not$or$cond$4&1;
$$129$4 = (($$129$3) + ($94))|0;
$95 = (527064);
$96 = $95;
$97 = HEAP32[$96>>2]|0;
$98 = (($95) + 4)|0;
$99 = $98;
$100 = HEAP32[$99>>2]|0;
$101 = (527072);
$102 = $101;
$103 = HEAP32[$102>>2]|0;
$104 = (($101) + 4)|0;
$105 = $104;
$106 = HEAP32[$105>>2]|0;
$107 = ($97|0)==(0);
$108 = ($100|0)==(0);
$109 = $107 & $108;
$110 = ($103|0)==(0);
$111 = ($106|0)==(0);
$112 = $110 & $111;
$not$or$cond$demorgan$5 = $109 | $112;
$not$or$cond$5 = $not$or$cond$demorgan$5 ^ 1;
$113 = $not$or$cond$5&1;
$$129$5 = (($$129$4) + ($113))|0;
$114 = (527088);
$115 = $114;
$116 = HEAP32[$115>>2]|0;
$117 = (($114) + 4)|0;
$118 = $117;
$119 = HEAP32[$118>>2]|0;
$120 = (527096);
$121 = $120;
$122 = HEAP32[$121>>2]|0;
$123 = (($120) + 4)|0;
$124 = $123;
$125 = HEAP32[$124>>2]|0;
$126 = ($116|0)==(0);
$127 = ($119|0)==(0);
$128 = $126 & $127;
$129 = ($122|0)==(0);
$130 = ($125|0)==(0);
$131 = $129 & $130;
$not$or$cond$demorgan$6 = $128 | $131;
$not$or$cond$6 = $not$or$cond$demorgan$6 ^ 1;
$132 = $not$or$cond$6&1;
$$129$6 = (($$129$5) + ($132))|0;
$133 = (527112);
$134 = $133;
$135 = HEAP32[$134>>2]|0;
$136 = (($133) + 4)|0;
$137 = $136;
$138 = HEAP32[$137>>2]|0;
$139 = (527120);
$140 = $139;
$141 = HEAP32[$140>>2]|0;
$142 = (($139) + 4)|0;
$143 = $142;
$144 = HEAP32[$143>>2]|0;
$145 = ($135|0)==(0);
$146 = ($138|0)==(0);
$147 = $145 & $146;
$148 = ($141|0)==(0);
$149 = ($144|0)==(0);
$150 = $148 & $149;
$not$or$cond$demorgan$7 = $147 | $150;
$not$or$cond$7 = $not$or$cond$demorgan$7 ^ 1;
$151 = $not$or$cond$7&1;
$$129$7 = (($$129$6) + ($151))|0;
$152 = (527136);
$153 = $152;
$154 = HEAP32[$153>>2]|0;
$155 = (($152) + 4)|0;
$156 = $155;
$157 = HEAP32[$156>>2]|0;
$158 = (527144);
$159 = $158;
$160 = HEAP32[$159>>2]|0;
$161 = (($158) + 4)|0;
$162 = $161;
$163 = HEAP32[$162>>2]|0;
$164 = ($154|0)==(0);
$165 = ($157|0)==(0);
$166 = $164 & $165;
$167 = ($160|0)==(0);
$168 = ($163|0)==(0);
$169 = $167 & $168;
$not$or$cond$demorgan$8 = $166 | $169;
$not$or$cond$8 = $not$or$cond$demorgan$8 ^ 1;
$170 = $not$or$cond$8&1;
$$129$8 = (($$129$7) + ($170))|0;
$171 = (527160);
$172 = $171;
$173 = HEAP32[$172>>2]|0;
$174 = (($171) + 4)|0;
$175 = $174;
$176 = HEAP32[$175>>2]|0;
$177 = (527168);
$178 = $177;
$179 = HEAP32[$178>>2]|0;
$180 = (($177) + 4)|0;
$181 = $180;
$182 = HEAP32[$181>>2]|0;
$183 = ($173|0)==(0);
$184 = ($176|0)==(0);
$185 = $183 & $184;
$186 = ($179|0)==(0);
$187 = ($182|0)==(0);
$188 = $186 & $187;
$not$or$cond$9$demorgan33 = $185 | $188;
$not$or$cond$9 = $not$or$cond$9$demorgan33 ^ 1;
$189 = $not$or$cond$9&1;
$$129$9 = (($$129$8) + ($189))|0;
$190 = ($$129$9|0)==(0);
if ($190) {
$$025 = 0;
return ($$025|0);
}
$191 = (_i64Subtract(($179|0),($182|0),($173|0),($176|0))|0);
$192 = (getTempRet0() | 0);
$193 = $not$or$cond$9$demorgan33 ? 0 : $191;
$or$cond$8 = $166 | $169;
$194 = (_i64Subtract(($160|0),($163|0),($154|0),($157|0))|0);
$195 = (getTempRet0() | 0);
$196 = $or$cond$8 ? 0 : $194;
$or$cond$7 = $147 | $150;
$197 = (_i64Subtract(($141|0),($144|0),($135|0),($138|0))|0);
$198 = (getTempRet0() | 0);
$199 = $or$cond$7 ? 0 : $197;
$or$cond$6 = $128 | $131;
$200 = (_i64Subtract(($122|0),($125|0),($116|0),($119|0))|0);
$201 = (getTempRet0() | 0);
$202 = $or$cond$6 ? 0 : $200;
$or$cond$5 = $109 | $112;
$203 = (_i64Subtract(($103|0),($106|0),($97|0),($100|0))|0);
$204 = (getTempRet0() | 0);
$205 = $or$cond$5 ? 0 : $203;
$or$cond$4 = $90 | $93;
$206 = (_i64Subtract(($84|0),($87|0),($78|0),($81|0))|0);
$207 = (getTempRet0() | 0);
$208 = $or$cond$4 ? 0 : $206;
$or$cond$3 = $71 | $74;
$209 = (_i64Subtract(($65|0),($68|0),($59|0),($62|0))|0);
$210 = (getTempRet0() | 0);
$211 = $or$cond$3 ? 0 : $209;
$or$cond$2 = $52 | $55;
$212 = (_i64Subtract(($46|0),($49|0),($40|0),($43|0))|0);
$213 = (getTempRet0() | 0);
$214 = $or$cond$2 ? 0 : $212;
$or$cond$1 = $33 | $36;
$215 = (_i64Subtract(($27|0),($30|0),($21|0),($24|0))|0);
$216 = (getTempRet0() | 0);
$217 = $or$cond$1 ? 0 : $215;
$or$cond = $14 | $17;
$218 = (_i64Subtract(($8|0),($11|0),($2|0),($5|0))|0);
$219 = (getTempRet0() | 0);
$220 = $or$cond ? 0 : $218;
$$1$1 = (($217) + ($220))|0;
$$1$2 = (($214) + ($$1$1))|0;
$$1$3 = (($211) + ($$1$2))|0;
$$1$4 = (($208) + ($$1$3))|0;
$$1$5 = (($205) + ($$1$4))|0;
$$1$6 = (($202) + ($$1$5))|0;
$$1$7 = (($199) + ($$1$6))|0;
$$1$8 = (($196) + ($$1$7))|0;
$$1$9 = (($193) + ($$1$8))|0;
$221 = (($$1$9|0) / 2)&-1;
$222 = (($221|0) / ($$129$9|0))&-1;
$$025 = $222;
return ($$025|0);
}
function _Stream_Read($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $$01011 = 0, $$0912 = 0, $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = ($2|0)==(0);
L1: do {
if ($4) {
$$0 = 0;
} else {
$$01011 = $1;$$0912 = $2;
while(1) {
$5 = HEAP32[$0>>2]|0;
$6 = (FUNCTION_TABLE_iiiii[$5 & 63]($0,$$01011,$$0912,$3)|0);
$7 = ($6|0)==(0);
if (!($7)) {
$$0 = $6;
break L1;
}
$8 = HEAP32[$3>>2]|0;
$9 = ($8|0)==(0);
if ($9) {
$$0 = -857812991;
break L1;
}
$10 = (($$01011) + ($8)|0);
$11 = (($$0912) - ($8))|0;
$12 = ($11|0)==(0);
if ($12) {
$$0 = 0;
break;
} else {
$$01011 = $10;$$0912 = $11;
}
}
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function _Stream_Write($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $$01011 = 0, $$0912 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = ((($0)) + 8|0);
$5 = ($2|0)==(0);
L1: do {
if ($5) {
$$0 = 0;
} else {
$$01011 = $1;$$0912 = $2;
while(1) {
$6 = HEAP32[$4>>2]|0;
$7 = (FUNCTION_TABLE_iiiii[$6 & 63]($0,$$01011,$$0912,$3)|0);
$8 = ($7|0)==(0);
if (!($8)) {
$$0 = $7;
break L1;
}
$9 = HEAP32[$3>>2]|0;
$10 = ($9|0)==(0);
if ($10) {
$$0 = -857812991;
break L1;
}
$11 = (($$01011) + ($9)|0);
$12 = (($$0912) - ($9))|0;
$13 = ($12|0)==(0);
if ($13) {
$$0 = 0;
break;
} else {
$$01011 = $11;$$0912 = $12;
}
}
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function _Stream_DefaultReadU8($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = HEAP32[$0>>2]|0;
$4 = (FUNCTION_TABLE_iiiii[$3 & 63]($0,$1,1,$2)|0);
$5 = ($4|0)==(0);
if (!($5)) {
$9 = $4;
STACKTOP = sp;return ($9|0);
}
$6 = HEAP32[$2>>2]|0;
$7 = ($6|0)==(0);
$8 = $7 ? -857812991 : 0;
$9 = $8;
STACKTOP = sp;return ($9|0);
}
function _Stream_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[$0>>2] = 31;
$1 = ((($0)) + 4|0);
HEAP32[$1>>2] = 53;
$2 = ((($0)) + 8|0);
HEAP32[$2>>2] = 32;
$3 = ((($0)) + 12|0);
HEAP32[$3>>2] = 54;
$4 = ((($0)) + 16|0);
HEAP32[$4>>2] = 55;
$5 = ((($0)) + 20|0);
HEAP32[$5>>2] = 56;
$6 = ((($0)) + 24|0);
HEAP32[$6>>2] = 56;
$7 = ((($0)) + 28|0);
HEAP32[$7>>2] = 19;
return;
}
function _Stream_DefaultRead($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
return -857812990;
}
function _Stream_DefaultWrite($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
return -857812990;
}
function _Stream_DefaultSkip($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$01112 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 3600|0;
$2 = sp;
$3 = sp + 3584|0;
$4 = ($1|0)==(0);
L1: do {
if ($4) {
$$0 = 0;
} else {
$$01112 = $1;
while(1) {
$7 = ($$01112>>>0)<(3584);
$8 = $7 ? $$01112 : 3584;
$9 = HEAP32[$0>>2]|0;
$10 = (FUNCTION_TABLE_iiiii[$9 & 63]($0,$2,$8,$3)|0);
$11 = ($10|0)==(0);
if (!($11)) {
$$0 = $10;
break L1;
}
$12 = HEAP32[$3>>2]|0;
$13 = ($12|0)==(0);
$5 = (($$01112) - ($12))|0;
if ($13) {
$$0 = -857812991;
break L1;
}
$6 = ($5|0)==(0);
if ($6) {
$$0 = 0;
break;
} else {
$$01112 = $5;
}
}
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function _Stream_DefaultSeek($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return -857812990;
}
function _Stream_DefaultGet($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return -857812990;
}
function _Stream_DefaultClose($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Stream_OpenFile($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_File_Open($2,$1)|0);
$4 = HEAP32[$2>>2]|0;
_Stream_FromFile($0,$4);
STACKTOP = sp;return ($3|0);
}
function _Stream_FromFile($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Stream_Init($0);
$2 = ((($0)) + 32|0);
HEAP32[$2>>2] = $1;
HEAP32[$0>>2] = 33;
$3 = ((($0)) + 8|0);
HEAP32[$3>>2] = 34;
$4 = ((($0)) + 28|0);
HEAP32[$4>>2] = 20;
$5 = ((($0)) + 12|0);
HEAP32[$5>>2] = 57;
$6 = ((($0)) + 16|0);
HEAP32[$6>>2] = 58;
$7 = ((($0)) + 20|0);
HEAP32[$7>>2] = 59;
$8 = ((($0)) + 24|0);
HEAP32[$8>>2] = 60;
return;
}
function _Stream_FileRead($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = HEAP32[$4>>2]|0;
$6 = (_File_Read($5,$1,$2,$3)|0);
return ($6|0);
}
function _Stream_FileWrite($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = HEAP32[$4>>2]|0;
$6 = (_File_Write($5,$1,$2,$3)|0);
return ($6|0);
}
function _Stream_FileClose($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 32|0);
$2 = HEAP32[$1>>2]|0;
$3 = (_File_Close($2)|0);
HEAP32[$1>>2] = 0;
return ($3|0);
}
function _Stream_FileSkip($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
$3 = HEAP32[$2>>2]|0;
$4 = (_File_Seek($3,$1,1)|0);
return ($4|0);
}
function _Stream_FileSeek($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
$3 = HEAP32[$2>>2]|0;
$4 = (_File_Seek($3,$1,0)|0);
return ($4|0);
}
function _Stream_FilePosition($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
$3 = HEAP32[$2>>2]|0;
$4 = (_File_Position($3,$1)|0);
return ($4|0);
}
function _Stream_FileLength($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
$3 = HEAP32[$2>>2]|0;
$4 = (_File_Length($3,$1)|0);
return ($4|0);
}
function _Stream_CreateFile($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_File_Create($2,$1)|0);
$4 = HEAP32[$2>>2]|0;
_Stream_FromFile($0,$4);
STACKTOP = sp;return ($3|0);
}
function _Stream_WriteAllTo($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$3 = sp;
$4 = (_Stream_CreateFile($3,$0)|0);
$5 = ($4|0)==(0);
if (!($5)) {
$$0 = $4;
STACKTOP = sp;return ($$0|0);
}
$6 = (_Stream_Write($3,$1,$2)|0);
$7 = ((($3)) + 28|0);
$8 = HEAP32[$7>>2]|0;
$9 = (FUNCTION_TABLE_ii[$8 & 31]($3)|0);
$10 = ($6|0)==(0);
$11 = $10 ? $9 : $6;
$$0 = $11;
STACKTOP = sp;return ($$0|0);
}
function _Stream_ReadonlyPortion($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Stream_Init($0);
HEAP32[$0>>2] = 35;
$3 = ((($0)) + 4|0);
HEAP32[$3>>2] = 61;
$4 = ((($0)) + 12|0);
HEAP32[$4>>2] = 62;
$5 = ((($0)) + 20|0);
HEAP32[$5>>2] = 63;
$6 = ((($0)) + 24|0);
HEAP32[$6>>2] = 64;
$7 = ((($0)) + 32|0);
HEAP32[$7>>2] = $1;
$8 = ((($0)) + 36|0);
HEAP32[$8>>2] = $2;
$9 = ((($0)) + 40|0);
HEAP32[$9>>2] = $2;
return;
}
function _Stream_PortionRead($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 32|0);
$5 = ((($0)) + 36|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6>>>0)>($2>>>0);
$$ = $7 ? $2 : $6;
$8 = HEAP32[$4>>2]|0;
$9 = HEAP32[$8>>2]|0;
$10 = (FUNCTION_TABLE_iiiii[$9 & 63]($8,$1,$$,$3)|0);
$11 = HEAP32[$3>>2]|0;
$12 = HEAP32[$5>>2]|0;
$13 = (($12) - ($11))|0;
HEAP32[$5>>2] = $13;
return ($10|0);
}
function _Stream_PortionReadU8($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0);
if ($4) {
$$0 = -857812991;
return ($$0|0);
}
$5 = ((($0)) + 32|0);
$6 = HEAP32[$5>>2]|0;
$7 = (($3) + -1)|0;
HEAP32[$2>>2] = $7;
$8 = ((($6)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = (FUNCTION_TABLE_iii[$9 & 127]($6,$1)|0);
$$0 = $10;
return ($$0|0);
}
function _Stream_PortionSkip($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3>>>0)<($1>>>0);
if ($4) {
$$0 = -857812989;
return ($$0|0);
}
$5 = ((($0)) + 32|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = (FUNCTION_TABLE_iii[$8 & 127]($6,$1)|0);
$10 = ($9|0)==(0);
if (!($10)) {
$$0 = $9;
return ($$0|0);
}
$11 = HEAP32[$2>>2]|0;
$12 = (($11) - ($1))|0;
HEAP32[$2>>2] = $12;
$$0 = 0;
return ($$0|0);
}
function _Stream_PortionPosition($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 36|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($3) - ($5))|0;
HEAP32[$1>>2] = $6;
return 0;
}
function _Stream_PortionLength($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
HEAP32[$1>>2] = $3;
return 0;
}
function _Stream_ReadonlyMemory($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Stream_Init($0);
HEAP32[$0>>2] = 36;
$3 = ((($0)) + 4|0);
HEAP32[$3>>2] = 65;
$4 = ((($0)) + 12|0);
HEAP32[$4>>2] = 66;
$5 = ((($0)) + 16|0);
HEAP32[$5>>2] = 67;
$6 = ((($0)) + 20|0);
HEAP32[$6>>2] = 68;
$7 = ((($0)) + 24|0);
HEAP32[$7>>2] = 69;
$8 = ((($0)) + 32|0);
HEAP32[$8>>2] = $1;
$9 = ((($0)) + 36|0);
HEAP32[$9>>2] = $2;
$10 = ((($0)) + 40|0);
HEAP32[$10>>2] = $2;
$11 = ((($0)) + 44|0);
HEAP32[$11>>2] = $1;
return;
}
function _Stream_MemoryRead($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$ = 0, $10 = 0, $11 = 0, $12 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 36|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5>>>0)>($2>>>0);
$$ = $6 ? $2 : $5;
$7 = ((($0)) + 32|0);
$8 = HEAP32[$7>>2]|0;
_Mem_Copy($1,$8,$$);
$9 = HEAP32[$7>>2]|0;
$10 = (($9) + ($$)|0);
HEAP32[$7>>2] = $10;
$11 = HEAP32[$4>>2]|0;
$12 = (($11) - ($$))|0;
HEAP32[$4>>2] = $12;
HEAP32[$3>>2] = $$;
return 0;
}
function _Stream_MemoryReadU8($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0);
if ($4) {
$$0 = -857812991;
return ($$0|0);
}
$5 = ((($0)) + 32|0);
$6 = HEAP32[$5>>2]|0;
$7 = HEAP8[$6>>0]|0;
HEAP8[$1>>0] = $7;
$8 = HEAP32[$5>>2]|0;
$9 = ((($8)) + 1|0);
HEAP32[$5>>2] = $9;
$10 = HEAP32[$2>>2]|0;
$11 = (($10) + -1)|0;
HEAP32[$2>>2] = $11;
$$0 = 0;
return ($$0|0);
}
function _Stream_MemorySkip($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3>>>0)<($1>>>0);
$5 = ((($0)) + 32|0);
if ($4) {
$$0 = -857812989;
return ($$0|0);
}
$6 = (($3) - ($1))|0;
$7 = HEAP32[$5>>2]|0;
$8 = (($7) + ($1)|0);
HEAP32[$5>>2] = $8;
HEAP32[$2>>2] = $6;
$$0 = 0;
return ($$0|0);
}
function _Stream_MemorySeek($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3>>>0)>($1>>>0);
if (!($4)) {
$$0 = -857812989;
return ($$0|0);
}
$5 = ((($0)) + 36|0);
$6 = (($3) - ($1))|0;
$7 = ((($0)) + 32|0);
$8 = ((($0)) + 44|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($9) + ($1)|0);
HEAP32[$7>>2] = $10;
HEAP32[$5>>2] = $6;
$$0 = 0;
return ($$0|0);
}
function _Stream_MemoryPosition($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 36|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($3) - ($5))|0;
HEAP32[$1>>2] = $6;
return 0;
}
function _Stream_MemoryLength($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
HEAP32[$1>>2] = $3;
return 0;
}
function _Stream_ReadonlyBuffered($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Stream_Init($0);
HEAP32[$0>>2] = 37;
$4 = ((($0)) + 4|0);
HEAP32[$4>>2] = 70;
$5 = ((($0)) + 16|0);
HEAP32[$5>>2] = 71;
$6 = ((($0)) + 36|0);
HEAP32[$6>>2] = 0;
$7 = ((($0)) + 52|0);
HEAP32[$7>>2] = 0;
$8 = ((($0)) + 32|0);
HEAP32[$8>>2] = $2;
$9 = ((($0)) + 44|0);
HEAP32[$9>>2] = $2;
$10 = ((($0)) + 40|0);
HEAP32[$10>>2] = $3;
$11 = ((($0)) + 48|0);
HEAP32[$11>>2] = $1;
return;
}
function _Stream_BufferedRead($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = ((($0)) + 32|0);
$6 = ((($0)) + 36|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(0);
do {
if ($8) {
$9 = ((($0)) + 48|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($0)) + 44|0);
$12 = HEAP32[$11>>2]|0;
HEAP32[$5>>2] = $12;
$13 = HEAP32[$10>>2]|0;
$14 = ((($0)) + 40|0);
$15 = HEAP32[$14>>2]|0;
$16 = (FUNCTION_TABLE_iiiii[$13 & 63]($10,$12,$15,$4)|0);
$17 = ($16|0)==(0);
if ($17) {
$18 = HEAP32[$4>>2]|0;
HEAP32[$6>>2] = $18;
$19 = ((($0)) + 52|0);
$20 = HEAP32[$19>>2]|0;
$21 = (($20) + ($18))|0;
HEAP32[$19>>2] = $21;
break;
} else {
$$0 = $16;
STACKTOP = sp;return ($$0|0);
}
}
} while(0);
$22 = HEAP32[$6>>2]|0;
$23 = ($22>>>0)>($2>>>0);
$$ = $23 ? $2 : $22;
$24 = HEAP32[$5>>2]|0;
_Mem_Copy($1,$24,$$);
$25 = HEAP32[$5>>2]|0;
$26 = (($25) + ($$)|0);
HEAP32[$5>>2] = $26;
$27 = HEAP32[$6>>2]|0;
$28 = (($27) - ($$))|0;
HEAP32[$6>>2] = $28;
HEAP32[$3>>2] = $$;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _Stream_BufferedReadU8($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0);
if ($4) {
$5 = (_Stream_DefaultReadU8($0,$1)|0);
$$0 = $5;
return ($$0|0);
} else {
$6 = ((($0)) + 32|0);
$7 = HEAP32[$6>>2]|0;
$8 = HEAP8[$7>>0]|0;
HEAP8[$1>>0] = $8;
$9 = HEAP32[$6>>2]|0;
$10 = ((($9)) + 1|0);
HEAP32[$6>>2] = $10;
$11 = HEAP32[$2>>2]|0;
$12 = (($11) + -1)|0;
HEAP32[$2>>2] = $12;
$$0 = 0;
return ($$0|0);
}
return (0)|0;
}
function _Stream_BufferedSeek($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 32|0);
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
$5 = HEAP32[$2>>2]|0;
$6 = ((($0)) + 44|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7;
$9 = (($5) - ($8))|0;
$10 = (($9) + ($4))|0;
$11 = ((($0)) + 52|0);
$12 = HEAP32[$11>>2]|0;
$13 = (($12) - ($10))|0;
$14 = ($13>>>0)<=($1>>>0);
$15 = ($12>>>0)>($1>>>0);
$or$cond = $15 & $14;
if ($or$cond) {
$16 = (($1) - ($13))|0;
$17 = (($7) + ($16)|0);
HEAP32[$2>>2] = $17;
$18 = (($10) - ($16))|0;
HEAP32[$3>>2] = $18;
$$0 = 0;
return ($$0|0);
}
$19 = ((($0)) + 48|0);
$20 = HEAP32[$19>>2]|0;
$21 = ((($20)) + 16|0);
$22 = HEAP32[$21>>2]|0;
$23 = (FUNCTION_TABLE_iii[$22 & 127]($20,$1)|0);
$24 = ($23|0)==(0);
if (!($24)) {
$$0 = $23;
return ($$0|0);
}
$25 = HEAP32[$6>>2]|0;
HEAP32[$2>>2] = $25;
HEAP32[$3>>2] = 0;
HEAP32[$11>>2] = $1;
$$0 = 0;
return ($$0|0);
}
function _Stream_GetU16_LE($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = $1&255;
$3 = ((($0)) + 1|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$6 = $5 << 8;
$7 = $6 | $2;
$8 = $7&65535;
return ($8|0);
}
function _Stream_GetU16_BE($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = $1&255;
$3 = $2 << 8;
$4 = ((($0)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
$7 = $3 | $6;
$8 = $7&65535;
return ($8|0);
}
function _Stream_GetU32_LE($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = $1&255;
$3 = ((($0)) + 1|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$6 = $5 << 8;
$7 = $6 | $2;
$8 = ((($0)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $10 << 16;
$12 = $7 | $11;
$13 = ((($0)) + 3|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = $15 << 24;
$17 = $12 | $16;
return ($17|0);
}
function _Stream_GetU32_BE($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[$0>>0]|0;
$2 = $1&255;
$3 = $2 << 24;
$4 = ((($0)) + 1|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
$7 = $6 << 16;
$8 = $7 | $3;
$9 = ((($0)) + 2|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $11 << 8;
$13 = $8 | $12;
$14 = ((($0)) + 3|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $13 | $16;
return ($17|0);
}
function _Stream_SetU16_BE($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (8)?(($1&65535) >>> 8):(($1&65535));
$3 = $2&255;
HEAP8[$0>>0] = $3;
$4 = $1&255;
$5 = ((($0)) + 1|0);
HEAP8[$5>>0] = $4;
return;
}
function _Stream_SetU32_LE($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1&255;
HEAP8[$0>>0] = $2;
$3 = (8)?($1 >>> 8):($1);
$4 = $3&255;
$5 = ((($0)) + 1|0);
HEAP8[$5>>0] = $4;
$6 = (16)?($1 >>> 16):($1);
$7 = $6&255;
$8 = ((($0)) + 2|0);
HEAP8[$8>>0] = $7;
$9 = (24)?($1 >>> 24):($1);
$10 = $9&255;
$11 = ((($0)) + 3|0);
HEAP8[$11>>0] = $10;
return;
}
function _Stream_SetU32_BE($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (24)?($1 >>> 24):($1);
$3 = $2&255;
HEAP8[$0>>0] = $3;
$4 = (16)?($1 >>> 16):($1);
$5 = $4&255;
$6 = ((($0)) + 1|0);
HEAP8[$6>>0] = $5;
$7 = (8)?($1 >>> 8):($1);
$8 = $7&255;
$9 = ((($0)) + 2|0);
HEAP8[$9>>0] = $8;
$10 = $1&255;
$11 = ((($0)) + 3|0);
HEAP8[$11>>0] = $10;
return;
}
function _Stream_ReadU32_LE($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_Stream_Read($0,$2,4)|0);
$4 = ($3|0)==(0);
if ($4) {
$5 = (_Stream_GetU32_LE($2)|0);
HEAP32[$1>>2] = $5;
$$0 = 0;
} else {
$$0 = $3;
}
STACKTOP = sp;return ($$0|0);
}
function _Stream_ReadU32_BE($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_Stream_Read($0,$2,4)|0);
$4 = ($3|0)==(0);
if ($4) {
$5 = (_Stream_GetU32_BE($2)|0);
HEAP32[$1>>2] = $5;
$$0 = 0;
} else {
$$0 = $3;
}
STACKTOP = sp;return ($$0|0);
}
function _Stream_ReadLine($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $switch$split2D = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = sp + 8|0;
$4 = ((($1)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($0)) + 4|0);
$$015 = 0;
L1: while(1) {
$$0 = 0;
while(1) {
$6 = HEAP32[$5>>2]|0;
$7 = (($3) + ($$0)|0);
$8 = (FUNCTION_TABLE_iii[$6 & 127]($0,$7)|0);
$switch$split2D = ($8|0)<(0);
if ($switch$split2D) {
label = 10;
break L1;
}
switch ($8|0) {
case 0: {
break;
}
default: {
$$014 = $8;
break L1;
}
}
$9 = (($$0) + 1)|0;
$10 = (_Convert_Utf8ToUnicode($2,$3,$9)|0);
$11 = ($10|0)==(0);
if ($11) {
$$0 = $9;
} else {
break;
}
}
$12 = HEAP16[$2>>1]|0;
switch ($12<<16>>16) {
case 10: {
$$014 = 0;
break L1;
break;
}
case -257: case 13: {
break;
}
default: {
$13 = (_Convert_UnicodeToCP437($12)|0);
_String_Append($1,$13);
}
}
$$015 = 1;
}
L11: do {
if ((label|0) == 10) {
switch ($8|0) {
case -857812991: {
break;
}
default: {
$$014 = $8;
break L11;
}
}
$14 = ($$015|0)==(0);
$15 = $14 ? -857812991 : 0;
$$014 = $15;
}
} while(0);
STACKTOP = sp;return ($$014|0);
}
function _Stream_WriteLine($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$02632 = 0, $$027 = 0, $$033 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2064|0;
$2 = sp;
$3 = ((($1)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)==(0);
L1: do {
if ($5) {
$$0$lcssa = 0;
} else {
$$02632 = 0;$$033 = 0;
while(1) {
$6 = ($$033|0)>(2047);
if ($6) {
$7 = (_Stream_Write($0,$2,$$033)|0);
$8 = ($7|0)==(0);
if ($8) {
$$1 = 0;
} else {
$$027 = $7;
break;
}
} else {
$$1 = $$033;
}
$9 = (($2) + ($$1)|0);
$10 = HEAP32[$1>>2]|0;
$11 = (($10) + ($$02632)|0);
$12 = HEAP8[$11>>0]|0;
$13 = (_Convert_CP437ToUtf8($12,$9)|0);
$14 = (($13) + ($$1))|0;
$15 = (($$02632) + 1)|0;
$16 = HEAP16[$3>>1]|0;
$17 = $16&65535;
$18 = ($15>>>0)<($17>>>0);
if ($18) {
$$02632 = $15;$$033 = $14;
} else {
$$0$lcssa = $14;
break L1;
}
}
STACKTOP = sp;return ($$027|0);
}
} while(0);
$19 = (($2) + ($$0$lcssa)|0);
HEAP8[$19>>0] = 10;
$20 = (($$0$lcssa) + 1)|0;
$21 = (_Stream_Write($0,$2,$20)|0);
$$027 = $21;
STACKTOP = sp;return ($$027|0);
}
function _String_CalcLen($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$067 = 0, $$08 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)>(0);
L1: do {
if ($2) {
$$067 = $0;$$08 = 0;
while(1) {
$3 = HEAP8[$$067>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$$0$lcssa = $$08;
break L1;
}
$5 = ((($$067)) + 1|0);
$6 = (($$08) + 1)|0;
$7 = ($6|0)<($1|0);
if ($7) {
$$067 = $5;$$08 = $6;
} else {
$$0$lcssa = $6;
break;
}
}
} else {
$$0$lcssa = 0;
}
} while(0);
return ($$0$lcssa|0);
}
function _String_FromRaw($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_String_CalcLen($1,$2)|0);
_String_Init_1538($0,$1,$3,$2);
return;
}
function _String_Init_1538($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $2&65535;
$5 = $3&65535;
HEAP32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP16[$$sroa$4$0$$sroa_idx2>>1] = $4;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 6|0);
HEAP16[$$sroa$5$0$$sroa_idx4>>1] = $5;
return;
}
function _String_FromReadonly($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_String_CalcLen($1,65535)|0);
_String_Init_1538($0,$1,$2,$2);
return;
}
function _String_StripCols($0) {
$0 = $0|0;
var $$010 = 0, $$010$in = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if ($3) {
return;
}
$4 = $2&65535;
$$010$in = $4;
while(1) {
$$010 = (($$010$in) + -1)|0;
$5 = HEAP32[$0>>2]|0;
$6 = (($5) + ($$010)|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(38);
if ($8) {
_String_DeleteAt($0,$$010);
_String_DeleteAt($0,$$010);
}
$9 = ($$010$in|0)>(1);
if ($9) {
$$010$in = $$010;
} else {
break;
}
}
return;
}
function _String_DeleteAt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$015 = 0, $$lcssa = 0, $$lcssa13 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)<(0);
if ($2) {
label = 3;
} else {
$3 = ((($0)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = $4&65535;
$6 = ($5|0)>($1|0);
if (!($6)) {
label = 3;
}
}
if ((label|0) == 3) {
_Logger_Abort(36916);
}
$7 = ((($0)) + 4|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$10 = (($9) + -1)|0;
$11 = ($10|0)>($1|0);
$12 = HEAP32[$0>>2]|0;
if ($11) {
$$015 = $1;$15 = $12;
while(1) {
$13 = (($$015) + 1)|0;
$14 = (($15) + ($13)|0);
$16 = HEAP8[$14>>0]|0;
$17 = (($15) + ($$015)|0);
HEAP8[$17>>0] = $16;
$18 = HEAP16[$7>>1]|0;
$19 = $18&65535;
$20 = (($19) + -1)|0;
$21 = ($13|0)<($20|0);
$22 = HEAP32[$0>>2]|0;
if ($21) {
$$015 = $13;$15 = $22;
} else {
$$lcssa = $22;$$lcssa13 = $20;
break;
}
}
} else {
$$lcssa = $12;$$lcssa13 = $10;
}
$23 = (($$lcssa) + ($$lcssa13)|0);
HEAP8[$23>>0] = 0;
$24 = HEAP16[$7>>1]|0;
$25 = (($24) + -1)<<16>>16;
HEAP16[$7>>1] = $25;
return;
}
function _String_Copy($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
HEAP16[$2>>1] = 0;
_String_AppendString($0,$1);
return;
}
function _String_AppendString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$06 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
$$06 = 0;
while(1) {
$5 = HEAP32[$1>>2]|0;
$6 = (($5) + ($$06)|0);
$7 = HEAP8[$6>>0]|0;
_String_Append($0,$7);
$8 = (($$06) + 1)|0;
$9 = HEAP16[$2>>1]|0;
$10 = $9&65535;
$11 = ($8>>>0)<($10>>>0);
if ($11) {
$$06 = $8;
} else {
break;
}
}
return;
}
function _String_Append($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ((($0)) + 6|0);
$5 = HEAP16[$4>>1]|0;
$6 = ($3<<16>>16)==($5<<16>>16);
if ($6) {
return;
}
$7 = (($3) + 1)<<16>>16;
$8 = $3&65535;
$9 = HEAP32[$0>>2]|0;
HEAP16[$2>>1] = $7;
$10 = (($9) + ($8)|0);
HEAP8[$10>>0] = $1;
return;
}
function _String_CopyToRaw($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$ = 0, $$017 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($2)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = $4&65535;
$6 = ($5|0)>($1|0);
$$ = $6 ? $1 : $5;
$7 = ($$|0)>(0);
if ($7) {
$$017 = 0;
while(1) {
$8 = HEAP32[$2>>2]|0;
$9 = (($8) + ($$017)|0);
$10 = HEAP8[$9>>0]|0;
$11 = (($0) + ($$017)|0);
HEAP8[$11>>0] = $10;
$12 = (($$017) + 1)|0;
$13 = ($12|0)<($$|0);
if ($13) {
$$017 = $12;
} else {
break;
}
}
}
$14 = ($5|0)<($1|0);
if (!($14)) {
return;
}
$15 = (($0) + ($$)|0);
HEAP8[$15>>0] = 0;
return;
}
function _String_UNSAFE_Substring($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($2|0)<(0);
if ($4) {
label = 3;
} else {
$5 = ((($1)) + 4|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = ($7|0)<($2|0);
if ($8) {
label = 3;
}
}
if ((label|0) == 3) {
_Logger_Abort(36949);
}
$9 = ($3|0)<(0);
if ($9) {
label = 6;
} else {
$10 = ((($1)) + 4|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
$13 = ($12|0)<($3|0);
if ($13) {
label = 6;
}
}
if ((label|0) == 6) {
_Logger_Abort(36983);
}
$14 = (($3) + ($2))|0;
$15 = ((($1)) + 4|0);
$16 = HEAP16[$15>>1]|0;
$17 = $16&65535;
$18 = ($14|0)>($17|0);
if (!($18)) {
$19 = HEAP32[$1>>2]|0;
$20 = (($19) + ($2)|0);
_String_Init_1538($0,$20,$3,$3);
return;
}
_Logger_Abort(37017);
$19 = HEAP32[$1>>2]|0;
$20 = (($19) + ($2)|0);
_String_Init_1538($0,$20,$3,$3);
return;
}
function _String_UNSAFE_SubstringAt($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($2|0)<(0);
if ($3) {
label = 3;
} else {
$4 = ((($1)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = ($6|0)<($2|0);
if ($7) {
label = 3;
}
}
if ((label|0) == 3) {
_Logger_Abort(37050);
}
$8 = HEAP32[$1>>2]|0;
$9 = (($8) + ($2)|0);
$10 = ((($1)) + 4|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
$13 = (($12) - ($2))|0;
$14 = $13&65535;
HEAP32[$0>>2] = $9;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP16[$$sroa$4$0$$sroa_idx2>>1] = $14;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 6|0);
HEAP16[$$sroa$5$0$$sroa_idx4>>1] = $14;
return;
}
function _String_UNSAFE_Split($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0$lcssa = 0, $$03033 = 0, $$034 = 0, $$132 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $exitcond = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = ((($0)) + 4|0);
$6 = ($3|0)>(0);
L1: do {
if ($6) {
$$03033 = 0;$$034 = 0;
while(1) {
$7 = HEAP16[$5>>1]|0;
$8 = $7&65535;
$9 = ($$03033|0)>($8|0);
if ($9) {
$$0$lcssa = $$034;
break L1;
}
$10 = (_String_IndexOfAt($0,$$03033,$1)|0);
$11 = ($10|0)==(-1);
$spec$select = $11 ? $8 : $10;
$12 = (($2) + ($$034<<3)|0);
$13 = (($spec$select) - ($$03033))|0;
_String_UNSAFE_Substring($4,$0,$$03033,$13);
$14 = $4;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = $12;
$21 = $20;
HEAP32[$21>>2] = $16;
$22 = (($20) + 4)|0;
$23 = $22;
HEAP32[$23>>2] = $19;
$24 = (($spec$select) + 1)|0;
$25 = (($$034) + 1)|0;
$26 = ($25|0)<($3|0);
if ($26) {
$$03033 = $24;$$034 = $25;
} else {
$$0$lcssa = $25;
break;
}
}
} else {
$$0$lcssa = 0;
}
} while(0);
$27 = ($$0$lcssa|0)<($3|0);
if (!($27)) {
STACKTOP = sp;return ($$0$lcssa|0);
}
$$132 = $$0$lcssa;
while(1) {
$28 = (($2) + ($$132<<3)|0);
$29 = 1384616;
$30 = $29;
$31 = HEAP32[$30>>2]|0;
$32 = (($29) + 4)|0;
$33 = $32;
$34 = HEAP32[$33>>2]|0;
$35 = $28;
$36 = $35;
HEAP32[$36>>2] = $31;
$37 = (($35) + 4)|0;
$38 = $37;
HEAP32[$38>>2] = $34;
$39 = (($$132) + 1)|0;
$exitcond = ($39|0)==($3|0);
if ($exitcond) {
break;
} else {
$$132 = $39;
}
}
STACKTOP = sp;return ($$0$lcssa|0);
}
function _String_IndexOfAt($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = $4&65535;
$6 = ($5|0)>($1|0);
if (!($6)) {
$$08 = -1;
return ($$08|0);
}
$7 = HEAP32[$0>>2]|0;
$$09 = $1;
while(1) {
$8 = (($7) + ($$09)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==($2<<24>>24);
if ($10) {
$$08 = $$09;
label = 5;
break;
}
$11 = (($$09) + 1)|0;
$12 = HEAP16[$3>>1]|0;
$13 = $12&65535;
$14 = ($11|0)<($13|0);
if ($14) {
$$09 = $11;
} else {
$$08 = -1;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$08|0);
}
return (0)|0;
}
function _String_UNSAFE_SplitBy($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp + 8|0;
$4 = sp;
$5 = (_String_IndexOfAt($0,0,$1)|0);
$6 = ($5|0)==(-1);
if ($6) {
$7 = $0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = $2;
$14 = $13;
HEAP32[$14>>2] = $9;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = $12;
$17 = 1384616;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (($17) + 4)|0;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = $0;
$24 = $23;
HEAP32[$24>>2] = $19;
$25 = (($23) + 4)|0;
$26 = $25;
HEAP32[$26>>2] = $22;
STACKTOP = sp;return;
} else {
_String_UNSAFE_Substring($3,$0,0,$5);
$27 = $3;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = $2;
$34 = $33;
HEAP32[$34>>2] = $29;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $32;
$37 = (($5) + 1)|0;
_String_UNSAFE_SubstringAt($4,$0,$37);
$38 = $4;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = $0;
$45 = $44;
HEAP32[$45>>2] = $40;
$46 = (($44) + 4)|0;
$47 = $46;
HEAP32[$47>>2] = $43;
STACKTOP = sp;return;
}
}
function _String_UNSAFE_Separate($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp + 8|0;
$5 = sp;
$6 = (_String_IndexOfAt($0,0,$1)|0);
$7 = ($6|0)==(-1);
if ($7) {
$8 = $0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $2;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = 1384616;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = (($18) + 4)|0;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = $3;
$25 = $24;
HEAP32[$25>>2] = $20;
$26 = (($24) + 4)|0;
$27 = $26;
HEAP32[$27>>2] = $23;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
_String_UNSAFE_Substring($4,$0,0,$6);
$28 = $4;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (($28) + 4)|0;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = $2;
$35 = $34;
HEAP32[$35>>2] = $30;
$36 = (($34) + 4)|0;
$37 = $36;
HEAP32[$37>>2] = $33;
$38 = (($6) + 1)|0;
_String_UNSAFE_SubstringAt($5,$0,$38);
$39 = $5;
$40 = $39;
$41 = HEAP32[$40>>2]|0;
$42 = (($39) + 4)|0;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = $3;
$46 = $45;
HEAP32[$46>>2] = $41;
$47 = (($45) + 4)|0;
$48 = $47;
HEAP32[$48>>2] = $44;
_String_UNSAFE_TrimEnd($2);
_String_UNSAFE_TrimStart($3);
$49 = ((($2)) + 4|0);
$50 = HEAP16[$49>>1]|0;
$51 = ($50<<16>>16)==(0);
if ($51) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$52 = ((($3)) + 4|0);
$53 = HEAP16[$52>>1]|0;
$54 = ($53<<16>>16)!=(0);
$phitmp = $54&1;
$$0 = $phitmp;
STACKTOP = sp;return ($$0|0);
}
function _String_UNSAFE_TrimEnd($0) {
$0 = $0|0;
var $$07 = 0, $$07$in = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if ($3) {
return;
}
$4 = $2&65535;
$$07$in = $4;
while(1) {
$$07 = (($$07$in) + -1)|0;
$5 = HEAP32[$0>>2]|0;
$6 = (($5) + ($$07)|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(32);
if (!($8)) {
label = 5;
break;
}
$9 = HEAP16[$1>>1]|0;
$10 = (($9) + -1)<<16>>16;
HEAP16[$1>>1] = $10;
$11 = ($$07$in|0)>(1);
if ($11) {
$$07$in = $$07;
} else {
label = 5;
break;
}
}
if ((label|0) == 5) {
return;
}
}
function _String_UNSAFE_TrimStart($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if ($3) {
return;
}
$9 = $2;
while(1) {
$4 = HEAP32[$0>>2]|0;
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(32);
if (!($6)) {
label = 5;
break;
}
$7 = ((($4)) + 1|0);
HEAP32[$0>>2] = $7;
$8 = (($9) + -1)<<16>>16;
HEAP16[$1>>1] = $8;
$10 = ($8<<16>>16)==(0);
if ($10) {
label = 5;
break;
} else {
$9 = $8;
}
}
if ((label|0) == 5) {
return;
}
}
function _String_Equals($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$010 = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ((($1)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = ($3<<16>>16)==($5<<16>>16);
if (!($6)) {
$$010 = 0;
return ($$010|0);
}
$7 = $3&65535;
$8 = ($3<<16>>16)==(0);
if ($8) {
$$010 = 1;
return ($$010|0);
}
$9 = HEAP32[$0>>2]|0;
$10 = HEAP32[$1>>2]|0;
$$011 = 0;
while(1) {
$13 = (($9) + ($$011)|0);
$14 = HEAP8[$13>>0]|0;
$15 = (($10) + ($$011)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($14<<24>>24)==($16<<24>>24);
$11 = (($$011) + 1)|0;
if (!($17)) {
$$010 = 0;
label = 6;
break;
}
$12 = ($11>>>0)<($7>>>0);
if ($12) {
$$011 = $11;
} else {
$$010 = 1;
label = 6;
break;
}
}
if ((label|0) == 6) {
return ($$010|0);
}
return (0)|0;
}
function _String_CaselessEquals($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$018 = 0, $$01923 = 0, $$020 = 0, $$off = 0, $$off22 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ((($1)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = ($3<<16>>16)==($5<<16>>16);
if (!($6)) {
$$020 = 0;
return ($$020|0);
}
$7 = $3&65535;
$8 = ($3<<16>>16)==(0);
if ($8) {
$$020 = 1;
return ($$020|0);
}
$9 = HEAP32[$0>>2]|0;
$10 = HEAP32[$1>>2]|0;
$$01923 = 0;
while(1) {
$13 = (($9) + ($$01923)|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$$off = (($14) + -65)<<24>>24;
$16 = ($$off&255)<(26);
$17 = (($15) + 32)|0;
$18 = $17&255;
$$018 = $16 ? $18 : $14;
$19 = (($10) + ($$01923)|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$$off22 = (($20) + -65)<<24>>24;
$22 = ($$off22&255)<(26);
$23 = (($21) + 32)|0;
$24 = $23&255;
$$0 = $22 ? $24 : $20;
$25 = ($$018<<24>>24)==($$0<<24>>24);
$11 = (($$01923) + 1)|0;
if (!($25)) {
$$020 = 0;
label = 6;
break;
}
$12 = ($11>>>0)<($7>>>0);
if ($12) {
$$01923 = $11;
} else {
$$020 = 1;
label = 6;
break;
}
}
if ((label|0) == 6) {
return ($$020|0);
}
return (0)|0;
}
function _String_CaselessEqualsConst($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$019 = 0, $$02026 = 0, $$021 = 0, $$lcssa = 0, $$off = 0, $$off24 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond23 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
do {
if ($4) {
$$lcssa = 0;
} else {
$5 = HEAP32[$0>>2]|0;
$$02026 = 0;
while(1) {
$10 = (($5) + ($$02026)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$$off = (($11) + -65)<<24>>24;
$13 = ($$off&255)<(26);
$14 = (($12) + 32)|0;
$15 = $14&255;
$$019 = $13 ? $15 : $11;
$16 = (($1) + ($$02026)|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$$off24 = (($17) + -65)<<24>>24;
$19 = ($$off24&255)<(26);
$20 = (($18) + 32)|0;
$21 = $20&255;
$$0 = $19 ? $21 : $17;
$22 = ($$019<<24>>24)!=($$0<<24>>24);
$23 = ($$0<<24>>24)==(0);
$or$cond23 = $22 | $23;
$8 = (($$02026) + 1)|0;
if ($or$cond23) {
$$021 = 0;
label = 7;
break;
}
$6 = HEAP16[$2>>1]|0;
$7 = $6&65535;
$9 = ($8>>>0)<($7>>>0);
if ($9) {
$$02026 = $8;
} else {
label = 5;
break;
}
}
if ((label|0) == 5) {
$24 = $6&65535;
$$lcssa = $24;
break;
}
else if ((label|0) == 7) {
return ($$021|0);
}
}
} while(0);
$25 = (($1) + ($$lcssa)|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26<<24>>24)==(0);
$28 = $27&1;
$$021 = $28;
return ($$021|0);
}
function _String_AppendBool($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)==(0);
$3 = $2 ? 37074 : 37080;
_String_AppendConst($0,$3);
return;
}
function _String_AppendConst($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$04 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
return;
}
$$04 = $1;$4 = $2;
while(1) {
_String_Append($0,$4);
$5 = ((($$04)) + 1|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if ($7) {
break;
} else {
$$04 = $5;$4 = $6;
}
}
return;
}
function _String_MakeUInt32($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$07 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$0 = 0;$$07 = $0;
while(1) {
$2 = (($$07>>>0) / 10)&-1;
$3 = ($2*10)|0;
$4 = (($$07) - ($3))|0;
$5 = $4 | 48;
$6 = $5&255;
$7 = (($1) + ($$0)|0);
HEAP8[$7>>0] = $6;
$8 = (($$0) + 1)|0;
$9 = ($$07>>>0)>(9);
if ($9) {
$$0 = $8;$$07 = $2;
} else {
break;
}
}
return ($8|0);
}
function _String_AppendInt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)<(0);
if ($2) {
$3 = (0 - ($1))|0;
_String_Append($0,45);
$$0 = $3;
} else {
$$0 = $1;
}
_String_AppendUInt32($0,$$0);
return;
}
function _String_AppendUInt32($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$09 = 0, $$09$in = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
$3 = (_String_MakeUInt32($1,$2)|0);
$4 = ($3|0)>(0);
if (!($4)) {
STACKTOP = sp;return;
}
$$09$in = $3;
while(1) {
$$09 = (($$09$in) + -1)|0;
$5 = (($2) + ($$09)|0);
$6 = HEAP8[$5>>0]|0;
_String_Append($0,$6);
$7 = ($$09$in|0)>(1);
if ($7) {
$$09$in = $$09;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _String_AppendPaddedInt($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$117 = 0, $$117$in = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp;
$4 = ($2|0)>(0);
if ($4) {
_memset(($3|0),48,($2|0))|0;
}
$5 = (_String_MakeUInt32($1,$3)|0);
$6 = ($5|0)<($2|0);
$spec$select = $6 ? $2 : $5;
$7 = ($spec$select|0)>(0);
if (!($7)) {
STACKTOP = sp;return;
}
$$117$in = $spec$select;
while(1) {
$$117 = (($$117$in) + -1)|0;
$8 = (($3) + ($$117)|0);
$9 = HEAP8[$8>>0]|0;
_String_Append($0,$9);
$10 = ($$117$in|0)>(1);
if ($10) {
$$117$in = $$117;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _String_AppendFloat($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = $2|0;
var $$023 = 0.0, $$02425 = 0, $$026 = 0.0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $1 < 0.0;
if ($3) {
$4 = - $1;
_String_Append($0,45);
$$023 = $4;
} else {
$$023 = $1;
}
$5 = (~~(($$023)));
_String_AppendUInt32($0,$5);
$6 = $$023;
$7 = (+($5|0));
$8 = $6 - $7;
$9 = $8 == 0.0;
if ($9) {
return;
}
_String_Append($0,46);
$10 = ($2|0)>(0);
if (!($10)) {
return;
}
$$02425 = 0;$$026 = $8;
while(1) {
$11 = $$026 * 10.0;
$12 = (~~(($11)));
$13 = (($12|0) % 10)&-1;
$14 = (($13) + 48)|0;
$15 = $14&255;
_String_Append($0,$15);
$16 = (($$02425) + 1)|0;
$exitcond = ($16|0)==($2|0);
if ($exitcond) {
break;
} else {
$$02425 = $16;$$026 = $11;
}
}
return;
}
function _String_AppendHex($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (4)?(($1&255) >>> 4):(($1&255));
$3 = $2&255;
$4 = ($1&255)<(160);
$5 = $3 | 48;
$6 = (($3) + 55)|0;
$7 = $4 ? $5 : $6;
$8 = $7&255;
$9 = $1 & 15;
$10 = $9&255;
$11 = ($9&255)<(10);
$12 = $10 | 48;
$13 = (($10) + 55)|0;
$14 = $11 ? $12 : $13;
$15 = $14&255;
_String_Append($0,$8);
_String_Append($0,$15);
return;
}
function _String_AppendColorless($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$09 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
$$09 = 0;
while(1) {
$5 = HEAP32[$1>>2]|0;
$6 = (($5) + ($$09)|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(38);
if ($8) {
$9 = (($$09) + 1)|0;
$$1 = $9;
} else {
_String_Append($0,$7);
$$1 = $$09;
}
$10 = (($$1) + 1)|0;
$11 = HEAP16[$2>>1]|0;
$12 = $11&65535;
$13 = ($10|0)<($12|0);
if ($13) {
$$09 = $10;
} else {
break;
}
}
return;
}
function _String_LastIndexOfAt($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = $4&65535;
$6 = $1 ^ -1;
$7 = (($6) + ($5))|0;
$8 = ($7|0)>(-1);
if (!($8)) {
$$08 = -1;
return ($$08|0);
}
$9 = HEAP32[$0>>2]|0;
$$09 = $7;
while(1) {
$10 = (($9) + ($$09)|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==($2<<24>>24);
if ($12) {
$$08 = $$09;
label = 5;
break;
}
$13 = (($$09) + -1)|0;
$14 = ($$09|0)>(0);
if ($14) {
$$09 = $13;
} else {
$$08 = -1;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$08|0);
}
return (0)|0;
}
function _String_InsertAt($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$017 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($1|0)<(0);
if ($3) {
label = 3;
} else {
$4 = ((($0)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = ($6|0)<($1|0);
if ($7) {
label = 3;
}
}
if ((label|0) == 3) {
_Logger_Abort(37085);
}
$8 = ((($0)) + 4|0);
$9 = HEAP16[$8>>1]|0;
$10 = ((($0)) + 6|0);
$11 = HEAP16[$10>>1]|0;
$12 = ($9<<16>>16)==($11<<16>>16);
if ($12) {
_Logger_Abort(37118);
}
$13 = HEAP16[$8>>1]|0;
$14 = $13&65535;
$15 = ($14|0)>($1|0);
$16 = HEAP32[$0>>2]|0;
if (!($15)) {
$$lcssa = $16;
$24 = (($$lcssa) + ($1)|0);
HEAP8[$24>>0] = $2;
$25 = HEAP16[$8>>1]|0;
$26 = (($25) + 1)<<16>>16;
HEAP16[$8>>1] = $26;
return;
}
$$017 = $14;$19 = $16;
while(1) {
$17 = (($$017) + -1)|0;
$18 = (($19) + ($17)|0);
$20 = HEAP8[$18>>0]|0;
$21 = (($19) + ($$017)|0);
HEAP8[$21>>0] = $20;
$22 = ($17|0)>($1|0);
$23 = HEAP32[$0>>2]|0;
if ($22) {
$$017 = $17;$19 = $23;
} else {
$$lcssa = $23;
break;
}
}
$24 = (($$lcssa) + ($1)|0);
HEAP8[$24>>0] = $2;
$25 = HEAP16[$8>>1]|0;
$26 = (($25) + 1)<<16>>16;
HEAP16[$8>>1] = $26;
return;
}
function _String_IndexOfString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$01930 = 0, $$020 = 0, $$021 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
$$020 = -1;
return ($$020|0);
}
$5 = $3&65535;
$6 = ((($1)) + 4|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
$9 = ($7<<16>>16)==(0);
$$01930 = 0;$12 = $5;
while(1) {
L6: do {
if ($9) {
$$0$lcssa = 0;$$lcssa = 0;
} else {
$$021 = 0;$30 = $8;
while(1) {
$10 = (($$021) + ($$01930))|0;
$11 = ($10>>>0)<($12>>>0);
if (!($11)) {
$$0$lcssa = $$021;$$lcssa = $30;
break L6;
}
$13 = HEAP32[$0>>2]|0;
$14 = (($13) + ($10)|0);
$15 = HEAP8[$14>>0]|0;
$16 = HEAP32[$1>>2]|0;
$17 = (($16) + ($$021)|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($15<<24>>24)==($18<<24>>24);
if (!($19)) {
$$0$lcssa = $$021;$$lcssa = $30;
break L6;
}
$20 = (($$021) + 1)|0;
$21 = HEAP16[$6>>1]|0;
$22 = $21&65535;
$23 = ($20>>>0)<($22>>>0);
if ($23) {
$$021 = $20;$30 = $22;
} else {
break;
}
}
$24 = $21&65535;
$$0$lcssa = $20;$$lcssa = $24;
}
} while(0);
$25 = ($$0$lcssa|0)==($$lcssa|0);
if ($25) {
$$020 = $$01930;
label = 11;
break;
}
$26 = (($$01930) + 1)|0;
$27 = HEAP16[$2>>1]|0;
$28 = $27&65535;
$29 = ($26>>>0)<($28>>>0);
if ($29) {
$$01930 = $26;$12 = $28;
} else {
$$020 = -1;
label = 11;
break;
}
}
if ((label|0) == 11) {
return ($$020|0);
}
return (0)|0;
}
function _String_CaselessContains($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$02742 = 0, $$028 = 0, $$029 = 0, $$030 = 0, $$033 = 0, $$lcssa = 0, $$off = 0, $$off32 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
$$030 = 0;
return ($$030|0);
}
$5 = $3&65535;
$6 = ((($1)) + 4|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
$9 = ($7<<16>>16)==(0);
$$02742 = 0;$16 = $5;
while(1) {
L6: do {
if ($9) {
$$0$lcssa = 0;$$lcssa = 0;
} else {
$$033 = 0;$38 = $8;
while(1) {
$14 = (($$033) + ($$02742))|0;
$15 = ($14>>>0)<($16>>>0);
if (!($15)) {
$$0$lcssa = $$033;$$lcssa = $38;
break L6;
}
$17 = HEAP32[$0>>2]|0;
$18 = (($17) + ($14)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
$$off = (($19) + -65)<<24>>24;
$21 = ($$off&255)<(26);
$22 = (($20) + 32)|0;
$23 = $22&255;
$$029 = $21 ? $23 : $19;
$24 = HEAP32[$1>>2]|0;
$25 = (($24) + ($$033)|0);
$26 = HEAP8[$25>>0]|0;
$27 = $26&255;
$$off32 = (($26) + -65)<<24>>24;
$28 = ($$off32&255)<(26);
$29 = (($27) + 32)|0;
$30 = $29&255;
$$028 = $28 ? $30 : $26;
$31 = ($$029<<24>>24)==($$028<<24>>24);
if (!($31)) {
$$0$lcssa = $$033;$$lcssa = $38;
break L6;
}
$32 = (($$033) + 1)|0;
$33 = HEAP16[$6>>1]|0;
$34 = $33&65535;
$35 = ($32>>>0)<($34>>>0);
if ($35) {
$$033 = $32;$38 = $34;
} else {
break;
}
}
$36 = $33&65535;
$$0$lcssa = $32;$$lcssa = $36;
}
} while(0);
$37 = ($$0$lcssa|0)==($$lcssa|0);
$12 = (($$02742) + 1)|0;
if ($37) {
$$030 = 1;
label = 11;
break;
}
$10 = HEAP16[$2>>1]|0;
$11 = $10&65535;
$13 = ($12>>>0)<($11>>>0);
if ($13) {
$$02742 = $12;$16 = $11;
} else {
$$030 = 0;
label = 11;
break;
}
}
if ((label|0) == 11) {
return ($$030|0);
}
return (0)|0;
}
function _String_CaselessStarts($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$018 = 0, $$019 = 0, $$020 = 0, $$023 = 0, $$off = 0, $$off22 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ((($1)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = ($3&65535)<($5&65535);
if ($6) {
$$020 = 0;
return ($$020|0);
}
$7 = $5&65535;
$8 = ($5<<16>>16)==(0);
if ($8) {
$$020 = 1;
return ($$020|0);
}
$9 = HEAP32[$0>>2]|0;
$10 = HEAP32[$1>>2]|0;
$$023 = 0;
while(1) {
$13 = (($9) + ($$023)|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$$off = (($14) + -65)<<24>>24;
$16 = ($$off&255)<(26);
$17 = (($15) + 32)|0;
$18 = $17&255;
$$019 = $16 ? $18 : $14;
$19 = (($10) + ($$023)|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$$off22 = (($20) + -65)<<24>>24;
$22 = ($$off22&255)<(26);
$23 = (($21) + 32)|0;
$24 = $23&255;
$$018 = $22 ? $24 : $20;
$25 = ($$019<<24>>24)==($$018<<24>>24);
$11 = (($$023) + 1)|0;
if (!($25)) {
$$020 = 0;
label = 6;
break;
}
$12 = ($11>>>0)<($7>>>0);
if ($12) {
$$023 = $11;
} else {
$$020 = 1;
label = 6;
break;
}
}
if ((label|0) == 6) {
return ($$020|0);
}
return (0)|0;
}
function _String_CaselessEnds($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$02227 = 0, $$023 = 0, $$024 = 0, $$off = 0, $$off26 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = $3&65535;
$5 = ((($1)) + 4|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = (($4) - ($7))|0;
$9 = ($8|0)<(0);
if ($9) {
$$0 = 0;
return ($$0|0);
}
$10 = ($6<<16>>16)==(0);
if ($10) {
$$0 = 1;
return ($$0|0);
}
$11 = HEAP32[$0>>2]|0;
$12 = HEAP32[$1>>2]|0;
$$02227 = 0;
while(1) {
$15 = (($$02227) + ($8))|0;
$16 = (($11) + ($15)|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$$off = (($17) + -65)<<24>>24;
$19 = ($$off&255)<(26);
$20 = (($18) + 32)|0;
$21 = $20&255;
$$024 = $19 ? $21 : $17;
$22 = (($12) + ($$02227)|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$$off26 = (($23) + -65)<<24>>24;
$25 = ($$off26&255)<(26);
$26 = (($24) + 32)|0;
$27 = $26&255;
$$023 = $25 ? $27 : $23;
$28 = ($$024<<24>>24)==($$023<<24>>24);
$13 = (($$02227) + 1)|0;
if (!($28)) {
$$0 = 0;
label = 6;
break;
}
$14 = ($13>>>0)<($7>>>0);
if ($14) {
$$02227 = $13;
} else {
$$0 = 1;
label = 6;
break;
}
}
if ((label|0) == 6) {
return ($$0|0);
}
return (0)|0;
}
function _String_Compare($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$02530 = 0, $$026 = 0, $$027 = 0, $$off = 0, $$off29 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ((($1)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = $3&65535;
$7 = $5&65535;
$8 = ($3&65535)<($5&65535);
$9 = $8 ? $3 : $5;
$10 = $9&65535;
$11 = ($9<<16>>16)==(0);
L1: do {
if (!($11)) {
$12 = HEAP32[$0>>2]|0;
$13 = HEAP32[$1>>2]|0;
$$02530 = 0;
while(1) {
$16 = (($12) + ($$02530)|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$$off = (($17) + -65)<<24>>24;
$19 = ($$off&255)<(26);
$20 = (($18) + 32)|0;
$21 = $20&255;
$$027 = $19 ? $21 : $17;
$22 = (($13) + ($$02530)|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$$off29 = (($23) + -65)<<24>>24;
$25 = ($$off29&255)<(26);
$26 = (($24) + 32)|0;
$27 = $26&255;
$$026 = $25 ? $27 : $23;
$28 = ($$027<<24>>24)==($$026<<24>>24);
$14 = (($$02530) + 1)|0;
if (!($28)) {
break;
}
$15 = ($14>>>0)<($10>>>0);
if ($15) {
$$02530 = $14;
} else {
break L1;
}
}
$29 = $$027&255;
$30 = $$026&255;
$31 = (($29) - ($30))|0;
$$0 = $31;
return ($$0|0);
}
} while(0);
$32 = (($6) - ($7))|0;
$$0 = $32;
return ($$0|0);
}
function _String_Format1($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_Format4($0,$1,$2,0,0,0);
return;
}
function _String_Format4($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $$04345 = 0, $$046 = 0, $$1 = 0, $$144 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$6 = sp + 16|0;
$7 = sp;
_String_FromReadonly($6,$1);
HEAP32[$7>>2] = $2;
$8 = ((($7)) + 4|0);
HEAP32[$8>>2] = $3;
$9 = ((($7)) + 8|0);
HEAP32[$9>>2] = $4;
$10 = ((($7)) + 12|0);
HEAP32[$10>>2] = $5;
$11 = ((($6)) + 4|0);
$12 = HEAP16[$11>>1]|0;
$13 = ($12<<16>>16)==(0);
if ($13) {
STACKTOP = sp;return;
}
$14 = HEAP32[$6>>2]|0;
$15 = HEAP16[$11>>1]|0;
$16 = $15&65535;
$$04345 = 0;$$046 = 0;
while(1) {
$17 = (($14) + ($$04345)|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18<<24>>24)==(37);
L6: do {
if ($19) {
$20 = (($$046) + 1)|0;
$21 = (($7) + ($$046<<2)|0);
$22 = HEAP32[$21>>2]|0;
$23 = (($$04345) + 1)|0;
$24 = (($14) + ($23)|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25 << 24 >> 24;
do {
switch ($26|0) {
case 98: {
$27 = HEAP8[$22>>0]|0;
$28 = $27&255;
_String_AppendInt($0,$28);
$$1 = $20;$$144 = $23;
break L6;
break;
}
case 105: {
$29 = HEAP32[$22>>2]|0;
_String_AppendInt($0,$29);
$$1 = $20;$$144 = $23;
break L6;
break;
}
case 102: {
$30 = (($$04345) + 2)|0;
$31 = (($14) + ($30)|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32 << 24 >> 24;
$34 = (($33) + -48)|0;
$35 = +HEAPF32[$22>>2];
_String_AppendFloat($0,$35,$34);
$$1 = $20;$$144 = $30;
break L6;
break;
}
case 112: {
$36 = (($$04345) + 2)|0;
$37 = (($14) + ($36)|0);
$38 = HEAP8[$37>>0]|0;
$39 = $38 << 24 >> 24;
$40 = (($39) + -48)|0;
$41 = HEAP32[$22>>2]|0;
_String_AppendPaddedInt($0,$41,$40);
$$1 = $20;$$144 = $36;
break L6;
break;
}
case 116: {
$42 = HEAP8[$22>>0]|0;
_String_AppendBool($0,$42);
$$1 = $20;$$144 = $23;
break L6;
break;
}
case 99: {
_String_AppendConst($0,$22);
$$1 = $20;$$144 = $23;
break L6;
break;
}
case 115: {
_String_AppendString($0,$22);
$$1 = $20;$$144 = $23;
break L6;
break;
}
case 114: {
$43 = HEAP8[$22>>0]|0;
_String_Append($0,$43);
$$1 = $20;$$144 = $23;
break L6;
break;
}
case 120: {
$44 = HEAP32[$22>>2]|0;
_String_Hex32($0,$44);
$$1 = $20;$$144 = $23;
break L6;
break;
}
case 104: {
$45 = HEAP32[$22>>2]|0;
_String_Hex32($0,$45);
$$1 = $20;$$144 = $23;
break L6;
break;
}
case 37: {
_String_Append($0,37);
$$1 = $20;$$144 = $23;
break L6;
break;
}
default: {
_Logger_Abort(37159);
$$1 = $20;$$144 = $23;
break L6;
}
}
} while(0);
} else {
_String_Append($0,$18);
$$1 = $$046;$$144 = $$04345;
}
} while(0);
$46 = (($$144) + 1)|0;
$47 = ($46|0)<($16|0);
if ($47) {
$$04345 = $46;$$046 = $$1;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _String_Hex32($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (24)?($1 >>> 24):($1);
$3 = $2&255;
_String_AppendHex($0,$3);
$4 = (16)?($1 >>> 16):($1);
$5 = $4&255;
_String_AppendHex($0,$5);
$6 = (8)?($1 >>> 8):($1);
$7 = $6&255;
_String_AppendHex($0,$7);
$8 = $1&255;
_String_AppendHex($0,$8);
return;
}
function _String_Format2($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_Format4($0,$1,$2,$3,0,0);
return;
}
function _String_Format3($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_Format4($0,$1,$2,$3,$4,0);
return;
}
function _Convert_CP437ToUnicode($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&255;
$2 = ($0&255)<(32);
if ($2) {
$3 = (7248 + ($1<<1)|0);
$4 = HEAP16[$3>>1]|0;
$$0 = $4;
return ($$0|0);
}
$5 = ($0&255)<(127);
if ($5) {
$6 = $0&255;
$$0 = $6;
return ($$0|0);
} else {
$7 = (($1) + -127)|0;
$8 = (7312 + ($7<<1)|0);
$9 = HEAP16[$8>>1]|0;
$$0 = $9;
return ($$0|0);
}
return (0)|0;
}
function _Convert_UnicodeToCP437($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
(_Convert_TryUnicodeToCP437($0,$1)|0);
$2 = HEAP8[$1>>0]|0;
STACKTOP = sp;return ($2|0);
}
function _Convert_TryUnicodeToCP437($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$016 = 0, $$020 = 0, $$119 = 0, $$off = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$$off = (($0) + -32)<<16>>16;
$2 = ($$off&65535)<(95);
L1: do {
if ($2) {
$3 = $0&255;
$$016 = 1;$$sink = $3;
} else {
$$020 = 0;
while(1) {
$4 = (7248 + ($$020<<1)|0);
$5 = HEAP16[$4>>1]|0;
$6 = ($5<<16>>16)==($0<<16>>16);
if ($6) {
label = 5;
break;
}
$8 = (($$020) + 1)|0;
$9 = ($8>>>0)<(32);
if ($9) {
$$020 = $8;
} else {
break;
}
}
if ((label|0) == 5) {
$7 = $$020&255;
$$016 = 1;$$sink = $7;
break;
}
$$119 = 0;
while(1) {
$10 = (7312 + ($$119<<1)|0);
$11 = HEAP16[$10>>1]|0;
$12 = ($11<<16>>16)==($0<<16>>16);
if ($12) {
break;
}
$15 = (($$119) + 1)|0;
$16 = ($15>>>0)<(129);
if ($16) {
$$119 = $15;
} else {
$$016 = 0;$$sink = 63;
break L1;
}
}
$13 = (($$119) + 127)|0;
$14 = $13&255;
$$016 = 1;$$sink = $14;
}
} while(0);
HEAP8[$1>>0] = $$sink;
return ($$016|0);
}
function _Convert_Utf8ToUnicode($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP16[$0>>1] = 0;
$3 = ($2|0)==(0);
if ($3) {
$$0 = 0;
return ($$0|0);
}
$4 = HEAP8[$1>>0]|0;
$5 = $4&255;
$6 = ($4<<24>>24)>(-1);
if ($6) {
$7 = $4&255;
HEAP16[$0>>1] = $7;
$$0 = 1;
return ($$0|0);
}
$8 = $5 & 224;
$9 = ($8|0)==(192);
if ($9) {
$10 = ($2>>>0)<(2);
if ($10) {
$$0 = 0;
return ($$0|0);
}
$11 = $5 << 6;
$12 = $11 & 1984;
$13 = ((($1)) + 1|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14 & 63;
$16 = $15&255;
$17 = $12 | $16;
$18 = $17&65535;
HEAP16[$0>>1] = $18;
$$0 = 2;
return ($$0|0);
}
$19 = $5 & 240;
$20 = ($19|0)==(224);
if ($20) {
$21 = ($2>>>0)<(3);
if ($21) {
$$0 = 0;
return ($$0|0);
}
$22 = $5 << 12;
$23 = ((($1)) + 1|0);
$24 = HEAP8[$23>>0]|0;
$25 = $24 & 63;
$26 = $25&255;
$27 = $26 << 6;
$28 = $27 | $22;
$29 = ((($1)) + 2|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30 & 63;
$32 = $31&255;
$33 = $28 | $32;
$34 = $33&65535;
HEAP16[$0>>1] = $34;
$$0 = 3;
return ($$0|0);
} else {
$35 = ($2>>>0)<(4);
if ($35) {
$$0 = 0;
return ($$0|0);
}
$36 = ((($1)) + 1|0);
$37 = HEAP8[$36>>0]|0;
$38 = $37&255;
$39 = $38 << 12;
$40 = ((($1)) + 2|0);
$41 = HEAP8[$40>>0]|0;
$42 = $41 & 63;
$43 = $42&255;
$44 = $43 << 6;
$45 = $44 | $39;
$46 = ((($1)) + 3|0);
$47 = HEAP8[$46>>0]|0;
$48 = $47 & 63;
$49 = $48&255;
$50 = $45 | $49;
$51 = $50&65535;
HEAP16[$0>>1] = $51;
$$0 = 4;
return ($$0|0);
}
return (0)|0;
}
function _Convert_UnicodeToUtf8($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $0&65535;
$3 = ($0&65535)<(128);
if ($3) {
$4 = $0&255;
HEAP8[$1>>0] = $4;
$$0 = 1;
return ($$0|0);
}
$5 = ($0&65535)<(2048);
if ($5) {
$6 = (6)?($2 >>> 6):($2);
$7 = $6 & 31;
$8 = $7 | 192;
$9 = $8&255;
HEAP8[$1>>0] = $9;
$10 = $2 & 63;
$11 = $10 | 128;
$12 = $11&255;
$13 = ((($1)) + 1|0);
HEAP8[$13>>0] = $12;
$$0 = 2;
return ($$0|0);
} else {
$14 = (12)?($2 >>> 12):($2);
$15 = $14 | 224;
$16 = $15&255;
HEAP8[$1>>0] = $16;
$17 = (6)?($2 >>> 6):($2);
$18 = $17 & 63;
$19 = $18 | 128;
$20 = $19&255;
$21 = ((($1)) + 1|0);
HEAP8[$21>>0] = $20;
$22 = $2 & 63;
$23 = $22 | 128;
$24 = $23&255;
$25 = ((($1)) + 2|0);
HEAP8[$25>>0] = $24;
$$0 = 3;
return ($$0|0);
}
return (0)|0;
}
function _Convert_CP437ToUtf8($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($0<<24>>24)<(32);
$3 = ($0<<24>>24)==(127);
$or$cond = $2 | $3;
if ($or$cond) {
$4 = (_Convert_CP437ToUnicode($0)|0);
$5 = (_Convert_UnicodeToUtf8($4,$1)|0);
$$0 = $5;
return ($$0|0);
} else {
HEAP8[$1>>0] = $0;
$$0 = 1;
return ($$0|0);
}
return (0)|0;
}
function _String_AppendUtf8($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$011 = 0, $$0910 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = sp + 2|0;
$5 = ($2|0)>(0);
if (!($5)) {
STACKTOP = sp;return;
}
$$011 = $1;$$0910 = $2;
while(1) {
$6 = (_Convert_Utf8ToUnicode($3,$$011,$$0910)|0);
$7 = ($6|0)==(0);
if ($7) {
label = 7;
break;
}
$8 = HEAP16[$3>>1]|0;
$9 = (_Convert_TryUnicodeToCP437($8,$4)|0);
$10 = ($9<<24>>24)==(0);
if (!($10)) {
$11 = HEAP8[$4>>0]|0;
_String_Append($0,$11);
}
$12 = (($$011) + ($6)|0);
$13 = (($$0910) - ($6))|0;
$14 = ($13|0)>(0);
if ($14) {
$$011 = $12;$$0910 = $13;
} else {
label = 7;
break;
}
}
if ((label|0) == 7) {
STACKTOP = sp;return;
}
}
function _Convert_ParseUInt8($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
HEAP8[$1>>0] = 0;
$3 = (_Convert_ParseInt($0,$2)|0);
$4 = ($3<<24>>24)==(0);
$5 = HEAP32[$2>>2]|0;
$6 = ($5>>>0)>(255);
$7 = $4 | $6;
if ($7) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$8 = $5&255;
HEAP8[$1>>0] = $8;
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _Convert_ParseInt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$018 = 0, $$020 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 10|0;
$3 = sp;
HEAP32[$1>>2] = 0;
$4 = (_Convert_TryParseDigits($0,$2,$3,10)|0);
$5 = ($4<<24>>24)==(0);
if ($5) {
$$020 = 0;
STACKTOP = sp;return ($$020|0);
}
$6 = HEAP8[$2>>0]|0;
$7 = ($6<<24>>24)==(0);
if ($7) {
$10 = (_Convert_CompareDigits($3,37201)|0);
$$018 = $10;
} else {
$8 = (_Convert_CompareDigits($3,37190)|0);
$9 = ($8|0)==(0);
if ($9) {
HEAP32[$1>>2] = -2147483648;
$$020 = 1;
STACKTOP = sp;return ($$020|0);
} else {
$$018 = $8;
}
}
$11 = ($$018|0)>(0);
if ($11) {
$$020 = 0;
STACKTOP = sp;return ($$020|0);
}
$12 = HEAP8[$3>>0]|0;
$13 = $12 << 24 >> 24;
$14 = ($13*10)|0;
$15 = ((($3)) + 1|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16 << 24 >> 24;
$18 = (($14) + -528)|0;
$19 = (($18) + ($17))|0;
$20 = ($19*10)|0;
$21 = ((($3)) + 2|0);
$22 = HEAP8[$21>>0]|0;
$23 = $22 << 24 >> 24;
$24 = (($20) + -48)|0;
$25 = (($24) + ($23))|0;
$26 = ($25*10)|0;
$27 = ((($3)) + 3|0);
$28 = HEAP8[$27>>0]|0;
$29 = $28 << 24 >> 24;
$30 = (($26) + -48)|0;
$31 = (($30) + ($29))|0;
$32 = ($31*10)|0;
$33 = ((($3)) + 4|0);
$34 = HEAP8[$33>>0]|0;
$35 = $34 << 24 >> 24;
$36 = (($32) + -48)|0;
$37 = (($36) + ($35))|0;
$38 = ($37*10)|0;
$39 = ((($3)) + 5|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40 << 24 >> 24;
$42 = (($38) + -48)|0;
$43 = (($42) + ($41))|0;
$44 = ($43*10)|0;
$45 = ((($3)) + 6|0);
$46 = HEAP8[$45>>0]|0;
$47 = $46 << 24 >> 24;
$48 = (($44) + -48)|0;
$49 = (($48) + ($47))|0;
$50 = ($49*10)|0;
$51 = ((($3)) + 7|0);
$52 = HEAP8[$51>>0]|0;
$53 = $52 << 24 >> 24;
$54 = (($50) + -48)|0;
$55 = (($54) + ($53))|0;
$56 = ($55*10)|0;
$57 = ((($3)) + 8|0);
$58 = HEAP8[$57>>0]|0;
$59 = $58 << 24 >> 24;
$60 = (($56) + -48)|0;
$61 = (($60) + ($59))|0;
$62 = ($61*10)|0;
$63 = ((($3)) + 9|0);
$64 = HEAP8[$63>>0]|0;
$65 = $64 << 24 >> 24;
$66 = (($62) + -48)|0;
$67 = (($66) + ($65))|0;
$68 = (0 - ($67))|0;
$spec$select = $7 ? $67 : $68;
HEAP32[$1>>2] = $spec$select;
$$020 = 1;
STACKTOP = sp;return ($$020|0);
}
function _Convert_TryParseDigits($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$03043 = 0, $$03043$in = 0, $$031 = 0, $$033$lcssa = 0, $$03342 = 0, $$2 = 0, $$23540 = 0, $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond36 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP8[$1>>0] = 0;
$4 = ((($0)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = ($5<<16>>16)==(0);
if ($6) {
$$2 = 0;
return ($$2|0);
}
$7 = (($3) + -1)|0;
$8 = (($2) + ($7)|0);
$9 = HEAP32[$0>>2]|0;
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(45);
if ($11) {
HEAP8[$1>>0] = 1;
$$031 = 1;
} else {
$$031 = 0;
}
$12 = HEAP32[$0>>2]|0;
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(43);
$spec$select = $14 ? 1 : $$031;
$15 = HEAP16[$4>>1]|0;
$16 = $15&65535;
$17 = ($spec$select>>>0)<($16>>>0);
L7: do {
if ($17) {
$$03043$in = $16;$$03342 = $8;
while(1) {
$$03043 = (($$03043$in) + -1)|0;
$18 = HEAP32[$0>>2]|0;
$19 = (($18) + ($$03043)|0);
$20 = HEAP8[$19>>0]|0;
$$off = (($20) + -48)<<24>>24;
$21 = ($$off&255)>(9);
$22 = ($$03342>>>0)<($2>>>0);
$or$cond36 = $22 | $21;
if ($or$cond36) {
$$2 = 0;
break;
}
$23 = ((($$03342)) + -1|0);
HEAP8[$$03342>>0] = $20;
$24 = ($$03043|0)>($spec$select|0);
if ($24) {
$$03043$in = $$03043;$$03342 = $23;
} else {
$$033$lcssa = $23;
break L7;
}
}
return ($$2|0);
} else {
$$033$lcssa = $8;
}
} while(0);
$25 = ($$033$lcssa>>>0)<($2>>>0);
if ($25) {
$$2 = 1;
return ($$2|0);
}
$$23540 = $$033$lcssa;
while(1) {
$26 = ((($$23540)) + -1|0);
HEAP8[$$23540>>0] = 48;
$27 = ($26>>>0)<($2>>>0);
if ($27) {
$$2 = 1;
break;
} else {
$$23540 = $26;
}
}
return ($$2|0);
}
function _Convert_CompareDigits($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$012 = 0, $$013 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(0);
L1: do {
if ($3) {
$$012 = 0;
} else {
$$013 = 0;$11 = $2;
while(1) {
$8 = (($0) + ($$013)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)>($11<<24>>24);
if ($10) {
$$012 = 1;
break L1;
}
$12 = ($9<<24>>24)<($11<<24>>24);
$5 = (($$013) + 1)|0;
if ($12) {
$$012 = -1;
break L1;
}
$4 = (($1) + ($5)|0);
$6 = HEAP8[$4>>0]|0;
$7 = ($6<<24>>24)==(0);
if ($7) {
$$012 = 0;
break;
} else {
$$013 = $5;$11 = $6;
}
}
}
} while(0);
return ($$012|0);
}
function _Convert_ParseUInt16($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
HEAP16[$1>>1] = 0;
$3 = (_Convert_ParseInt($0,$2)|0);
$4 = ($3<<24>>24)==(0);
$5 = HEAP32[$2>>2]|0;
$6 = ($5>>>0)>(65535);
$7 = $4 | $6;
if ($7) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$8 = $5&65535;
HEAP16[$1>>1] = $8;
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _Convert_ParseUInt64($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$015 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0;
var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0;
var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0;
var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0;
var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $mulconv20 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 20|0;
$3 = sp;
$4 = $1;
$5 = $4;
HEAP32[$5>>2] = 0;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = 0;
$8 = (_Convert_TryParseDigits($0,$2,$3,20)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
$$015 = 0;
STACKTOP = sp;return ($$015|0);
}
$10 = (_Convert_CompareDigits($3,37212)|0);
$11 = HEAP8[$2>>0]|0;
$12 = ($11<<24>>24)!=(0);
$13 = ($10|0)>(0);
$or$cond = $13 | $12;
if ($or$cond) {
$$015 = 0;
STACKTOP = sp;return ($$015|0);
}
$14 = HEAP8[$3>>0]|0;
$15 = $14 << 24 >> 24;
$16 = ($15*10)|0;
$17 = ((($3)) + 1|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18 << 24 >> 24;
$20 = (($16) + ($19))|0;
$21 = ($20*10)|0;
$22 = ((($3)) + 2|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23 << 24 >> 24;
$25 = (($21) + ($24))|0;
$26 = ($25*10)|0;
$mulconv20 = (($26) + -53280)|0;
$27 = ($mulconv20|0)<(0);
$28 = $27 << 31 >> 31;
$29 = ((($3)) + 3|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30 << 24 >> 24;
$32 = (($31) + -48)|0;
$33 = ($32|0)<(0);
$34 = $33 << 31 >> 31;
$35 = (_i64Add(($mulconv20|0),($28|0),($32|0),($34|0))|0);
$36 = (getTempRet0() | 0);
$37 = (___muldi3(($35|0),($36|0),10,0)|0);
$38 = (getTempRet0() | 0);
$39 = ((($3)) + 4|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40 << 24 >> 24;
$42 = (($41) + -48)|0;
$43 = ($42|0)<(0);
$44 = $43 << 31 >> 31;
$45 = (_i64Add(($37|0),($38|0),($42|0),($44|0))|0);
$46 = (getTempRet0() | 0);
$47 = (___muldi3(($45|0),($46|0),10,0)|0);
$48 = (getTempRet0() | 0);
$49 = ((($3)) + 5|0);
$50 = HEAP8[$49>>0]|0;
$51 = $50 << 24 >> 24;
$52 = (($51) + -48)|0;
$53 = ($52|0)<(0);
$54 = $53 << 31 >> 31;
$55 = (_i64Add(($47|0),($48|0),($52|0),($54|0))|0);
$56 = (getTempRet0() | 0);
$57 = (___muldi3(($55|0),($56|0),10,0)|0);
$58 = (getTempRet0() | 0);
$59 = ((($3)) + 6|0);
$60 = HEAP8[$59>>0]|0;
$61 = $60 << 24 >> 24;
$62 = (($61) + -48)|0;
$63 = ($62|0)<(0);
$64 = $63 << 31 >> 31;
$65 = (_i64Add(($57|0),($58|0),($62|0),($64|0))|0);
$66 = (getTempRet0() | 0);
$67 = (___muldi3(($65|0),($66|0),10,0)|0);
$68 = (getTempRet0() | 0);
$69 = ((($3)) + 7|0);
$70 = HEAP8[$69>>0]|0;
$71 = $70 << 24 >> 24;
$72 = (($71) + -48)|0;
$73 = ($72|0)<(0);
$74 = $73 << 31 >> 31;
$75 = (_i64Add(($67|0),($68|0),($72|0),($74|0))|0);
$76 = (getTempRet0() | 0);
$77 = (___muldi3(($75|0),($76|0),10,0)|0);
$78 = (getTempRet0() | 0);
$79 = ((($3)) + 8|0);
$80 = HEAP8[$79>>0]|0;
$81 = $80 << 24 >> 24;
$82 = (($81) + -48)|0;
$83 = ($82|0)<(0);
$84 = $83 << 31 >> 31;
$85 = (_i64Add(($77|0),($78|0),($82|0),($84|0))|0);
$86 = (getTempRet0() | 0);
$87 = (___muldi3(($85|0),($86|0),10,0)|0);
$88 = (getTempRet0() | 0);
$89 = ((($3)) + 9|0);
$90 = HEAP8[$89>>0]|0;
$91 = $90 << 24 >> 24;
$92 = (($91) + -48)|0;
$93 = ($92|0)<(0);
$94 = $93 << 31 >> 31;
$95 = (_i64Add(($87|0),($88|0),($92|0),($94|0))|0);
$96 = (getTempRet0() | 0);
$97 = (___muldi3(($95|0),($96|0),10,0)|0);
$98 = (getTempRet0() | 0);
$99 = ((($3)) + 10|0);
$100 = HEAP8[$99>>0]|0;
$101 = $100 << 24 >> 24;
$102 = (($101) + -48)|0;
$103 = ($102|0)<(0);
$104 = $103 << 31 >> 31;
$105 = (_i64Add(($97|0),($98|0),($102|0),($104|0))|0);
$106 = (getTempRet0() | 0);
$107 = (___muldi3(($105|0),($106|0),10,0)|0);
$108 = (getTempRet0() | 0);
$109 = ((($3)) + 11|0);
$110 = HEAP8[$109>>0]|0;
$111 = $110 << 24 >> 24;
$112 = (($111) + -48)|0;
$113 = ($112|0)<(0);
$114 = $113 << 31 >> 31;
$115 = (_i64Add(($107|0),($108|0),($112|0),($114|0))|0);
$116 = (getTempRet0() | 0);
$117 = (___muldi3(($115|0),($116|0),10,0)|0);
$118 = (getTempRet0() | 0);
$119 = ((($3)) + 12|0);
$120 = HEAP8[$119>>0]|0;
$121 = $120 << 24 >> 24;
$122 = (($121) + -48)|0;
$123 = ($122|0)<(0);
$124 = $123 << 31 >> 31;
$125 = (_i64Add(($117|0),($118|0),($122|0),($124|0))|0);
$126 = (getTempRet0() | 0);
$127 = (___muldi3(($125|0),($126|0),10,0)|0);
$128 = (getTempRet0() | 0);
$129 = ((($3)) + 13|0);
$130 = HEAP8[$129>>0]|0;
$131 = $130 << 24 >> 24;
$132 = (($131) + -48)|0;
$133 = ($132|0)<(0);
$134 = $133 << 31 >> 31;
$135 = (_i64Add(($127|0),($128|0),($132|0),($134|0))|0);
$136 = (getTempRet0() | 0);
$137 = (___muldi3(($135|0),($136|0),10,0)|0);
$138 = (getTempRet0() | 0);
$139 = ((($3)) + 14|0);
$140 = HEAP8[$139>>0]|0;
$141 = $140 << 24 >> 24;
$142 = (($141) + -48)|0;
$143 = ($142|0)<(0);
$144 = $143 << 31 >> 31;
$145 = (_i64Add(($137|0),($138|0),($142|0),($144|0))|0);
$146 = (getTempRet0() | 0);
$147 = (___muldi3(($145|0),($146|0),10,0)|0);
$148 = (getTempRet0() | 0);
$149 = ((($3)) + 15|0);
$150 = HEAP8[$149>>0]|0;
$151 = $150 << 24 >> 24;
$152 = (($151) + -48)|0;
$153 = ($152|0)<(0);
$154 = $153 << 31 >> 31;
$155 = (_i64Add(($147|0),($148|0),($152|0),($154|0))|0);
$156 = (getTempRet0() | 0);
$157 = (___muldi3(($155|0),($156|0),10,0)|0);
$158 = (getTempRet0() | 0);
$159 = ((($3)) + 16|0);
$160 = HEAP8[$159>>0]|0;
$161 = $160 << 24 >> 24;
$162 = (($161) + -48)|0;
$163 = ($162|0)<(0);
$164 = $163 << 31 >> 31;
$165 = (_i64Add(($157|0),($158|0),($162|0),($164|0))|0);
$166 = (getTempRet0() | 0);
$167 = (___muldi3(($165|0),($166|0),10,0)|0);
$168 = (getTempRet0() | 0);
$169 = ((($3)) + 17|0);
$170 = HEAP8[$169>>0]|0;
$171 = $170 << 24 >> 24;
$172 = (($171) + -48)|0;
$173 = ($172|0)<(0);
$174 = $173 << 31 >> 31;
$175 = (_i64Add(($167|0),($168|0),($172|0),($174|0))|0);
$176 = (getTempRet0() | 0);
$177 = (___muldi3(($175|0),($176|0),10,0)|0);
$178 = (getTempRet0() | 0);
$179 = ((($3)) + 18|0);
$180 = HEAP8[$179>>0]|0;
$181 = $180 << 24 >> 24;
$182 = (($181) + -48)|0;
$183 = ($182|0)<(0);
$184 = $183 << 31 >> 31;
$185 = (_i64Add(($177|0),($178|0),($182|0),($184|0))|0);
$186 = (getTempRet0() | 0);
$187 = (___muldi3(($185|0),($186|0),10,0)|0);
$188 = (getTempRet0() | 0);
$189 = ((($3)) + 19|0);
$190 = HEAP8[$189>>0]|0;
$191 = $190 << 24 >> 24;
$192 = (($191) + -48)|0;
$193 = ($192|0)<(0);
$194 = $193 << 31 >> 31;
$195 = (_i64Add(($187|0),($188|0),($192|0),($194|0))|0);
$196 = (getTempRet0() | 0);
$197 = $1;
$198 = $197;
HEAP32[$198>>2] = $195;
$199 = (($197) + 4)|0;
$200 = $199;
HEAP32[$200>>2] = $196;
$$015 = 1;
STACKTOP = sp;return ($$015|0);
}
function _Convert_ParseFloat($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$05584 = 0.0, $$057$lcssa = 0.0, $$05783 = 0.0, $$05982 = 0.0, $$05986 = 0.0, $$148 = 0, $$24987 = 0, $$451 = 0, $$5 = 0, $$55285 = 0, $$off = 0, $$off73 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0;
var $18 = 0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0;
var $36 = 0.0, $37 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select64 = 0, $spec$select66 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$1>>2] = 0.0;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
$$5 = 0;
return ($$5|0);
}
$5 = HEAP32[$0>>2]|0;
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(45);
$spec$select64 = $7&1;
$8 = ($6<<24>>24)==(43);
$9 = $7 ? 2 : 1;
$$148 = $8 ? $9 : $spec$select64;
$10 = $3&65535;
$11 = ($$148>>>0)<($10>>>0);
L4: do {
if ($11) {
$$05986 = 0.0;$$24987 = $$148;
L6: while(1) {
$12 = (($5) + ($$24987)|0);
$13 = HEAP8[$12>>0]|0;
switch ($13<<24>>24) {
case 44: case 46: {
label = 6;
break L6;
break;
}
default: {
}
}
$$off73 = (($13) + -48)<<24>>24;
$14 = ($$off73&255)>(9);
if ($14) {
$$5 = 0;
label = 13;
break;
}
$16 = $$05986 * 10.0;
$17 = $13 << 24 >> 24;
$18 = (($17) + -48)|0;
$19 = (+($18|0));
$20 = $16 + $19;
$21 = (($$24987) + 1)|0;
$22 = ($21>>>0)<($10>>>0);
if ($22) {
$$05986 = $20;$$24987 = $21;
} else {
$$05982 = $20;$$451 = $21;
break L4;
}
}
if ((label|0) == 6) {
$15 = (($$24987) + 1)|0;
$$05982 = $$05986;$$451 = $15;
break;
}
else if ((label|0) == 13) {
return ($$5|0);
}
} else {
$$05982 = 0.0;$$451 = $$148;
}
} while(0);
$23 = ($$451|0)<($10|0);
L14: do {
if ($23) {
$$05584 = 10.0;$$05783 = 0.0;$$55285 = $$451;
while(1) {
$24 = (($5) + ($$55285)|0);
$25 = HEAP8[$24>>0]|0;
$$off = (($25) + -48)<<24>>24;
$26 = ($$off&255)>(9);
if ($26) {
$$5 = 0;
break;
}
$27 = $25 << 24 >> 24;
$28 = (($27) + -48)|0;
$29 = (+($28|0));
$30 = $29 / $$05584;
$31 = $$05783 + $30;
$32 = $$05584 * 10.0;
$33 = (($$55285) + 1)|0;
$34 = ($33|0)<($10|0);
if ($34) {
$$05584 = $32;$$05783 = $31;$$55285 = $33;
} else {
$$057$lcssa = $31;
break L14;
}
}
return ($$5|0);
} else {
$$057$lcssa = 0.0;
}
} while(0);
$35 = $$05982 + $$057$lcssa;
$36 = - $35;
$spec$select66 = $7 ? $36 : $35;
$37 = $spec$select66;
HEAPF32[$1>>2] = $37;
$$5 = 1;
return ($$5|0);
}
function _Convert_ParseBool($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$ = 0, $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_String_CaselessEqualsConst($0,37080)|0);
$3 = ($2|0)==(0);
if ($3) {
$4 = (_String_CaselessEqualsConst($0,37074)|0);
$5 = ($4|0)!=(0);
HEAP8[$1>>0] = 0;
$$ = $5&1;
$$0 = $$;
return ($$0|0);
} else {
HEAP8[$1>>0] = 1;
$$0 = 1;
return ($$0|0);
}
return (0)|0;
}
function _StringsBuffer_Clear($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0);
if ($3) {
return;
}
$4 = HEAP32[$0>>2]|0;
$5 = ((($0)) + 24|0);
$6 = ($4|0)==($5|0);
if (!($6)) {
_Mem_Free($4);
}
$7 = ((($0)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($0)) + 4120|0);
$10 = ($8|0)==($9|0);
if (!($10)) {
_Mem_Free($8);
}
_StringsBuffer_Init($0);
return;
}
function _StringsBuffer_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
HEAP32[$1>>2] = 0;
$2 = ((($0)) + 12|0);
HEAP32[$2>>2] = 0;
$3 = ((($0)) + 24|0);
HEAP32[$0>>2] = $3;
$4 = ((($0)) + 4120|0);
$5 = ((($0)) + 4|0);
HEAP32[$5>>2] = $4;
$6 = ((($0)) + 16|0);
HEAP32[$6>>2] = 4096;
$7 = ((($0)) + 20|0);
HEAP32[$7>>2] = 256;
return;
}
function _StringsBuffer_UNSAFE_Get($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($2|0)<(0);
if ($3) {
label = 3;
} else {
$4 = ((($1)) + 8|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>($2|0);
if (!($6)) {
label = 3;
}
}
if ((label|0) == 3) {
_Logger_Abort(37233);
}
$7 = ((($1)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = (($8) + ($2<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = (9)?($10 >>> 9):($10);
$12 = $10 & 511;
$13 = HEAP32[$1>>2]|0;
$14 = (($13) + ($11)|0);
_String_Init_1538($0,$14,$12,$12);
return;
}
function _StringsBuffer_Add($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 20|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0);
if ($4) {
_StringsBuffer_Init($0);
}
$5 = ((($0)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = HEAP32[$2>>2]|0;
$8 = ($6|0)==($7|0);
if ($8) {
$9 = ((($0)) + 4|0);
_Utils_Resize($9,$2,4,256,512);
}
$10 = ((($1)) + 4|0);
$11 = HEAP16[$10>>1]|0;
$12 = ($11&65535)>(511);
if ($12) {
_Logger_Abort(37276);
}
$13 = ((($0)) + 12|0);
$14 = HEAP32[$13>>2]|0;
$15 = HEAP16[$10>>1]|0;
$16 = $15&65535;
$17 = (($14) + ($16))|0;
$18 = ((($0)) + 16|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($17|0)<($19|0);
if (!($20)) {
_Utils_Resize($0,$18,1,4096,8192);
}
$21 = HEAP32[$0>>2]|0;
$22 = (($21) + ($14)|0);
$23 = HEAP32[$1>>2]|0;
$24 = HEAP16[$10>>1]|0;
$25 = $24&65535;
_Mem_Copy($22,$23,$25);
$26 = HEAP16[$10>>1]|0;
$27 = $26&65535;
$28 = $14 << 9;
$29 = $28 | $27;
$30 = ((($0)) + 4|0);
$31 = HEAP32[$30>>2]|0;
$32 = HEAP32[$5>>2]|0;
$33 = (($31) + ($32<<2)|0);
HEAP32[$33>>2] = $29;
$34 = HEAP32[$5>>2]|0;
$35 = (($34) + 1)|0;
HEAP32[$5>>2] = $35;
$36 = HEAP32[$13>>2]|0;
$37 = (($36) + ($27))|0;
HEAP32[$13>>2] = $37;
return;
}
function _StringsBuffer_Remove($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$046 = 0, $$144 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)<(0);
if ($2) {
label = 3;
} else {
$3 = ((($0)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>($1|0);
if (!($5)) {
label = 3;
}
}
if ((label|0) == 3) {
_Logger_Abort(37320);
}
$6 = ((($0)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($7) + ($1<<2)|0);
$9 = HEAP32[$8>>2]|0;
$10 = (9)?($9 >>> 9):($9);
$11 = $9 & 511;
$12 = (($10) + ($11))|0;
$13 = ((($0)) + 12|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($12>>>0)<($14>>>0);
if ($15) {
$$046 = $12;
while(1) {
$16 = HEAP32[$0>>2]|0;
$17 = (($16) + ($$046)|0);
$18 = HEAP8[$17>>0]|0;
$19 = (($$046) - ($11))|0;
$20 = (($16) + ($19)|0);
HEAP8[$20>>0] = $18;
$21 = (($$046) + 1)|0;
$22 = HEAP32[$13>>2]|0;
$23 = ($21>>>0)<($22>>>0);
if ($23) {
$$046 = $21;
} else {
break;
}
}
}
$24 = $11 << 9;
$25 = ((($0)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = (($26) + -1)|0;
$28 = ($27>>>0)>($1>>>0);
if (!($28)) {
$$lcssa = $27;
HEAP32[$25>>2] = $$lcssa;
$39 = HEAP32[$13>>2]|0;
$40 = (($39) - ($11))|0;
HEAP32[$13>>2] = $40;
return;
}
$29 = HEAP32[$6>>2]|0;
$$144 = $1;
while(1) {
$30 = (($$144) + 1)|0;
$31 = (($29) + ($30<<2)|0);
$32 = HEAP32[$31>>2]|0;
$33 = (($29) + ($$144<<2)|0);
$34 = ($32>>>0)<($9>>>0);
$35 = $34 ? 0 : $24;
$spec$select = (($32) - ($35))|0;
HEAP32[$33>>2] = $spec$select;
$36 = HEAP32[$25>>2]|0;
$37 = (($36) + -1)|0;
$38 = ($30>>>0)<($37>>>0);
if ($38) {
$$144 = $30;
} else {
$$lcssa = $37;
break;
}
}
HEAP32[$25>>2] = $$lcssa;
$39 = HEAP32[$13>>2]|0;
$40 = (($39) - ($11))|0;
HEAP32[$13>>2] = $40;
return;
}
function _WordWrap_Do($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$04864 = 0, $$049$lcssa = 0, $$04957 = 0, $$05060 = 0, $$161 = 0, $$2$ph = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$4 = sp + 16|0;
$5 = sp + 8|0;
$6 = sp;
$7 = ($2|0)>(0);
if (!($7)) {
STACKTOP = sp;return;
}
$$04864 = 0;
while(1) {
$8 = (($1) + ($$04864<<3)|0);
$9 = 1384616;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = $8;
$16 = $15;
HEAP32[$16>>2] = $11;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $14;
$19 = (($$04864) + 1)|0;
$exitcond = ($19|0)==($2|0);
if ($exitcond) {
break;
} else {
$$04864 = $19;
}
}
$20 = ($2|0)>(0);
if (!($20)) {
STACKTOP = sp;return;
}
$21 = ((($0)) + 4|0);
$22 = ($3|0)<(0);
$$05060 = 0;$$161 = 0;
while(1) {
$23 = (($$05060) + ($3))|0;
$24 = HEAP16[$21>>1]|0;
$25 = $24&65535;
$26 = ($23|0)<($25|0);
if (!($26)) {
break;
}
L13: do {
if ($22) {
$$049$lcssa = $23;
} else {
$27 = HEAP32[$0>>2]|0;
$$04957 = $23;
while(1) {
$28 = (($27) + ($$04957)|0);
$29 = HEAP8[$28>>0]|0;
$30 = (_WordWrap_IsWrapper($29)|0);
$31 = ($30<<24>>24)==(0);
if (!($31)) {
$$049$lcssa = $$04957;
break L13;
}
$32 = (($$04957) + -1)|0;
$33 = ($$04957|0)>($$05060|0);
if ($33) {
$$04957 = $32;
} else {
$$049$lcssa = $32;
break;
}
}
}
} while(0);
$34 = (($$049$lcssa) + 1)|0;
$35 = ($$049$lcssa|0)>=($$05060|0);
$36 = ($34|0)<($23|0);
$or$cond = $35 & $36;
$37 = (($1) + ($$161<<3)|0);
if ($or$cond) {
$48 = (($34) - ($$05060))|0;
_String_UNSAFE_Substring($6,$0,$$05060,$48);
$49 = $6;
$50 = $49;
$51 = HEAP32[$50>>2]|0;
$52 = (($49) + 4)|0;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
$55 = $37;
$56 = $55;
HEAP32[$56>>2] = $51;
$57 = (($55) + 4)|0;
$58 = $57;
HEAP32[$58>>2] = $54;
$$2$ph = $34;
} else {
_String_UNSAFE_Substring($5,$0,$$05060,$3);
$38 = $5;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = $37;
$45 = $44;
HEAP32[$45>>2] = $40;
$46 = (($44) + 4)|0;
$47 = $46;
HEAP32[$47>>2] = $43;
$$2$ph = $23;
}
$70 = (($$161) + 1)|0;
$71 = ($70|0)<($2|0);
if ($71) {
$$05060 = $$2$ph;$$161 = $70;
} else {
label = 16;
break;
}
}
if ((label|0) == 16) {
STACKTOP = sp;return;
}
$59 = (($1) + ($$161<<3)|0);
_String_UNSAFE_SubstringAt($4,$0,$$05060);
$60 = $4;
$61 = $60;
$62 = HEAP32[$61>>2]|0;
$63 = (($60) + 4)|0;
$64 = $63;
$65 = HEAP32[$64>>2]|0;
$66 = $59;
$67 = $66;
HEAP32[$67>>2] = $62;
$68 = (($66) + 4)|0;
$69 = $68;
HEAP32[$69>>2] = $65;
STACKTOP = sp;return;
}
function _WordWrap_IsWrapper($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<24>>24) {
case 47: case 60: case 62: case 45: case 32: case 0: {
$2 = 1;
break;
}
default: {
$1 = ($0<<24>>24)==(92);
$phitmp = $1&1;
$2 = $phitmp;
}
}
return ($2|0);
}
function _WordWrap_GetCoords($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$02731 = 0, $$02830 = 0, $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ($0|0)==(-1);
$spec$select = $5 ? 2147483647 : $0;
HEAP32[$3>>2] = -1;
HEAP32[$4>>2] = 0;
$6 = ($2|0)>(0);
L1: do {
if ($6) {
$$02731 = 0;$$02830 = 0;
while(1) {
$9 = (((($1) + ($$02830<<3)|0)) + 4|0);
$10 = HEAP16[$9>>1]|0;
$11 = ($10<<16>>16)==(0);
if ($11) {
label = 7;
break L1;
}
$12 = $10&65535;
HEAP32[$4>>2] = $$02830;
$13 = (($$02731) + ($12))|0;
$14 = ($spec$select|0)<($13|0);
$7 = (($$02830) + 1)|0;
if ($14) {
break;
}
$8 = ($7|0)<($2|0);
if ($8) {
$$02731 = $13;$$02830 = $7;
} else {
label = 7;
break L1;
}
}
$15 = (($spec$select) - ($$02731))|0;
HEAP32[$3>>2] = $15;
$16 = $15;
} else {
label = 7;
}
} while(0);
if ((label|0) == 7) {
$$pr = HEAP32[$3>>2]|0;
$16 = $$pr;
}
$17 = ($16|0)==(-1);
if (!($17)) {
return;
}
$18 = HEAP32[$4>>2]|0;
$19 = (((($1) + ($18<<3)|0)) + 4|0);
$20 = HEAP16[$19>>1]|0;
$21 = $20&65535;
HEAP32[$3>>2] = $21;
return;
}
function _WordWrap_GetBackLength($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$016$lcssa = 0, $$01620 = 0, $$1$lcssa = 0, $$117 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)<(1);
if ($2) {
$$0 = 0;
return ($$0|0);
}
$3 = ((($0)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = $4&65535;
$6 = ($5|0)>($1|0);
if (!($6)) {
_Logger_Abort(37366);
}
$7 = HEAP32[$0>>2]|0;
$$01620 = $1;
while(1) {
$8 = (($7) + ($$01620)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(32);
if (!($10)) {
$$016$lcssa = $$01620;
break;
}
$11 = (($$01620) + -1)|0;
$12 = ($$01620|0)>(1);
if ($12) {
$$01620 = $11;
} else {
$$016$lcssa = $11;
break;
}
}
$13 = ($$016$lcssa|0)>(0);
L11: do {
if ($13) {
$14 = HEAP32[$0>>2]|0;
$$117 = $$016$lcssa;
while(1) {
$15 = (($14) + ($$117)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(32);
if ($17) {
$$1$lcssa = $$117;
break L11;
}
$18 = (($$117) + -1)|0;
$19 = ($$117|0)>(1);
if ($19) {
$$117 = $18;
} else {
$$1$lcssa = $18;
break;
}
}
} else {
$$1$lcssa = $$016$lcssa;
}
} while(0);
$20 = (($1) - ($$1$lcssa))|0;
$$0 = $20;
return ($$0|0);
}
function _WordWrap_GetForwardLength($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$019$lcssa = 0, $$01924 = 0, $$1$lcssa = 0, $$121 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = $3&65535;
$5 = ($1|0)==(-1);
if ($5) {
$$0 = 0;
return ($$0|0);
}
$6 = ($4|0)>($1|0);
if (!($6)) {
_Logger_Abort(37416);
}
$7 = ($4|0)>($1|0);
L7: do {
if ($7) {
$8 = HEAP32[$0>>2]|0;
$$01924 = $1;
while(1) {
$9 = (($8) + ($$01924)|0);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(32);
if ($11) {
$$019$lcssa = $$01924;
break L7;
}
$12 = (($$01924) + 1)|0;
$13 = ($12|0)<($4|0);
if ($13) {
$$01924 = $12;
} else {
$$019$lcssa = $12;
break;
}
}
} else {
$$019$lcssa = $1;
}
} while(0);
$14 = ($$019$lcssa|0)<($4|0);
L13: do {
if ($14) {
$15 = HEAP32[$0>>2]|0;
$$121 = $$019$lcssa;
while(1) {
$16 = (($15) + ($$121)|0);
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)==(32);
if (!($18)) {
$$1$lcssa = $$121;
break L13;
}
$19 = (($$121) + 1)|0;
$20 = ($19|0)<($4|0);
if ($20) {
$$121 = $19;
} else {
$$1$lcssa = $19;
break;
}
}
} else {
$$1$lcssa = $$019$lcssa;
}
} while(0);
$21 = (($$1$lcssa) - ($1))|0;
$$0 = $21;
return ($$0|0);
}
function _Animations_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
(_ScheduledTask_Add(0.050000000000000003,397)|0);
_Event_Register((1250556),0,398);
_Event_Register((1250816),0,23);
return;
}
function _Animations_Free() {
var label = 0, sp = 0;
sp = STACKTOP;
_Animations_Clear();
_Event_Unregister((1250556),0,398);
_Event_Unregister((1250816),0,23);
return;
}
function _Animations_Clear() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[346156]|0;
_Mem_Free($0);
HEAP32[346159] = 0;
HEAP32[346156] = 0;
HEAP8[1408299] = 0;
return;
}
function _OnPackChanged($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Animations_Clear();
_Animations_IsDefaultZip();
return;
}
function _OnFileChanged_1649($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_String_CaselessEqualsConst($2,37469)|0);
$4 = ($3|0)==(0);
if (!($4)) {
$5 = (_Png_Decode(1384624,$1)|0);
$6 = ($5|0)==(0);
if ($6) {
return;
}
_Logger_Warn2($5,37484,$2);
$7 = HEAP32[346156]|0;
_Mem_Free($7);
HEAP32[346156] = 0;
return;
}
$8 = (_String_CaselessEqualsConst($2,37493)|0);
$9 = ($8|0)==(0);
if (!($9)) {
_Animations_ReadDescription($1,$2);
return;
}
$10 = (_String_CaselessEqualsConst($2,37508)|0);
$11 = ($10|0)==(0);
if ($11) {
return;
} else {
return;
}
}
function _Animations_ReadDescription($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond10 = 0;
var $switch$split2D = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2336|0;
$2 = sp + 2296|0;
$3 = sp + 2112|0;
$4 = sp + 2048|0;
$5 = sp + 2304|0;
$6 = sp + 2321|0;
$7 = sp + 2320|0;
$8 = sp;
$9 = sp + 2240|0;
;HEAP16[$5>>1]=0|0;HEAP16[$5+2>>1]=0|0;HEAP16[$5+4>>1]=0|0;HEAP16[$5+6>>1]=0|0;HEAP16[$5+8>>1]=0|0;HEAP16[$5+10>>1]=0|0;HEAP16[$5+12>>1]=0|0;HEAP16[$5+14>>1]=0|0;
HEAP32[$2>>2] = $3;
$10 = ((($2)) + 4|0);
HEAP16[$10>>1] = 0;
$11 = ((($2)) + 6|0);
HEAP16[$11>>1] = 128;
_Stream_ReadonlyBuffered($9,$0,$8,2048);
$12 = ((($4)) + 8|0);
$13 = ((($4)) + 16|0);
$14 = ((($5)) + 2|0);
$15 = ((($4)) + 24|0);
$16 = ((($5)) + 4|0);
$17 = ((($4)) + 32|0);
$18 = ((($5)) + 6|0);
$19 = ((($4)) + 40|0);
$20 = ((($5)) + 10|0);
$21 = ((($4)) + 48|0);
$22 = ((($5)) + 14|0);
L1: while(1) {
$23 = (_Stream_ReadLine($9,$2)|0);
$switch$split2D = ($23|0)<(0);
if ($switch$split2D) {
label = 27;
break;
}
switch ($23|0) {
case 0: {
break;
}
default: {
break L1;
}
}
$24 = HEAP16[$10>>1]|0;
$25 = ($24<<16>>16)==(0);
do {
if (!($25)) {
$26 = HEAP32[$2>>2]|0;
$27 = HEAP8[$26>>0]|0;
$28 = ($27<<24>>24)==(35);
if (!($28)) {
$29 = (_String_UNSAFE_Split($2,32,$4,7)|0);
$30 = ($29|0)<(7);
if ($30) {
_Chat_Add1(37533,$2);
break;
}
$31 = (_Convert_ParseUInt8($4,$6)|0);
$32 = ($31<<24>>24)==(0);
$33 = HEAP8[$6>>0]|0;
$34 = ($33&255)>(15);
$or$cond = $32 | $34;
if ($or$cond) {
_Chat_Add1(37569,$2);
break;
}
$35 = (_Convert_ParseUInt8($12,$7)|0);
$36 = ($35<<24>>24)==(0);
$37 = HEAP8[$7>>0]|0;
$38 = ($37&255)>(31);
$or$cond10 = $36 | $38;
if ($or$cond10) {
_Chat_Add1(37601,$2);
break;
}
$39 = (_Convert_ParseUInt16($13,$14)|0);
$40 = ($39<<24>>24)==(0);
if ($40) {
_Chat_Add1(37633,$2);
break;
}
$41 = (_Convert_ParseUInt16($15,$16)|0);
$42 = ($41<<24>>24)==(0);
if ($42) {
_Chat_Add1(37666,$2);
break;
}
$43 = (_Convert_ParseUInt16($17,$18)|0);
$44 = ($43<<24>>24)==(0);
if ($44) {
_Chat_Add1(37699,$2);
break;
}
$45 = (_Convert_ParseUInt16($19,$20)|0);
$46 = ($45<<24>>24)==(0);
if ($46) {
_Chat_Add1(37729,$2);
break;
}
$47 = (_Convert_ParseUInt16($21,$22)|0);
$48 = ($47<<24>>24)==(0);
if ($48) {
_Chat_Add1(37761,$2);
break;
}
$49 = HEAP32[346159]|0;
$50 = ($49|0)==(512);
if ($50) {
label = 24;
break L1;
}
$51 = HEAP8[$6>>0]|0;
$52 = $51&255;
$53 = HEAP8[$7>>0]|0;
$54 = $53&255;
$55 = $54 << 4;
$56 = (($55) + ($52))|0;
$57 = $56&65535;
HEAP16[$5>>1] = $57;
$58 = (($49) + 1)|0;
HEAP32[346159] = $58;
$59 = (527184 + ($49<<4)|0);
;HEAP16[$59>>1]=HEAP16[$5>>1]|0;HEAP16[$59+2>>1]=HEAP16[$5+2>>1]|0;HEAP16[$59+4>>1]=HEAP16[$5+4>>1]|0;HEAP16[$59+6>>1]=HEAP16[$5+6>>1]|0;HEAP16[$59+8>>1]=HEAP16[$5+8>>1]|0;HEAP16[$59+10>>1]=HEAP16[$5+10>>1]|0;HEAP16[$59+12>>1]=HEAP16[$5+12>>1]|0;HEAP16[$59+14>>1]=HEAP16[$5+14>>1]|0;
}
}
} while(0);
}
L34: do {
if ((label|0) == 24) {
_Chat_AddRaw(37792);
STACKTOP = sp;return;
}
else if ((label|0) == 27) {
switch ($23|0) {
case -857812991: {
break;
}
default: {
break L34;
}
}
STACKTOP = sp;return;
}
} while(0);
_Logger_Warn2($23,38440,$1);
STACKTOP = sp;return;
}
function _Animations_IsDefaultZip() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
$1 = HEAP16[(18832)>>1]|0;
$2 = ($1<<16>>16)==(0);
if ($2) {
$3 = (_Options_UNSAFE_Get(37826,$0)|0);
$4 = ($3<<24>>24)==(0);
if (!($4)) {
}
}
STACKTOP = sp;return;
}
function _Animations_Tick($0) {
$0 = $0|0;
var $$06 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[346159]|0;
$2 = ($1|0)==(0);
if ($2) {
return;
}
$3 = HEAP32[346156]|0;
$4 = ($3|0)==(0|0);
if ($4) {
_Chat_AddRaw(37853);
_Chat_AddRaw(37906);
HEAP32[346159] = 0;
return;
}
$5 = HEAP8[1408299]|0;
$6 = ($5<<24>>24)==(0);
if ($6) {
_Animations_Validate();
}
$7 = HEAP32[346159]|0;
$8 = ($7|0)>(0);
if (!($8)) {
return;
}
$$06 = 0;
while(1) {
$9 = (527184 + ($$06<<4)|0);
_Animations_Apply($9);
$10 = (($$06) + 1)|0;
$11 = HEAP32[346159]|0;
$12 = ($10|0)<($11|0);
if ($12) {
$$06 = $10;
} else {
break;
}
}
return;
}
function _Animations_Validate() {
var $$04248 = 0, $$047 = 0, $$1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0, $$sroa$1235$0$$sroa_idx36 = 0, $$sroa$1235$0$copyload = 0, $$sroa$7$0$$sroa_idx25 = 0, $$sroa$7$0$copyload = 0, $$sroa$8$0$$sroa_idx27 = 0, $$sroa$8$0$copyload = 0, $$sroa$9$0$$sroa_idx29 = 0, $$sroa$9$0$copyload = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0;
var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond44 = 0, $or$cond46 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp + 4|0;
$1 = sp;
HEAP8[1408299] = 1;
$2 = HEAP32[346159]|0;
$3 = ($2|0)>(0);
if (!($3)) {
STACKTOP = sp;return;
}
$$04248 = 0;
while(1) {
$$sroa$0$0$$sroa_idx = (527184 + ($$04248<<4)|0);
$$sroa$0$0$copyload = HEAP16[$$sroa$0$0$$sroa_idx>>1]|0;
$$sroa$7$0$$sroa_idx25 = (((527184 + ($$04248<<4)|0)) + 2|0);
$$sroa$7$0$copyload = HEAP16[$$sroa$7$0$$sroa_idx25>>1]|0;
$$sroa$8$0$$sroa_idx27 = (((527184 + ($$04248<<4)|0)) + 4|0);
$$sroa$8$0$copyload = HEAP16[$$sroa$8$0$$sroa_idx27>>1]|0;
$$sroa$9$0$$sroa_idx29 = (((527184 + ($$04248<<4)|0)) + 6|0);
$$sroa$9$0$copyload = HEAP16[$$sroa$9$0$$sroa_idx29>>1]|0;
$$sroa$1235$0$$sroa_idx36 = (((527184 + ($$04248<<4)|0)) + 10|0);
$$sroa$1235$0$copyload = HEAP16[$$sroa$1235$0$$sroa_idx36>>1]|0;
$4 = $$sroa$9$0$copyload&65535;
$5 = $$sroa$0$0$copyload&65535;
$6 = $5 & 15;
HEAP32[$0>>2] = $6;
$7 = (4)?($5 >>> 4):($5);
HEAP32[$1>>2] = $7;
$8 = HEAP32[(1386720)>>2]|0;
$9 = ($8|0)>=($4|0);
$10 = HEAP32[(1386724)>>2]|0;
$11 = ($7|0)<($10|0);
$or$cond44 = $9 & $11;
if ($or$cond44) {
$12 = $$sroa$8$0$copyload&65535;
$13 = (($4) + ($12))|0;
$14 = $$sroa$1235$0$copyload&65535;
$15 = Math_imul($14, $4)|0;
$16 = $$sroa$7$0$copyload&65535;
$17 = (($15) + ($16))|0;
$18 = HEAP32[(1384628)>>2]|0;
$19 = ($17|0)>($18|0);
$20 = HEAP32[(1384632)>>2]|0;
$21 = ($13|0)>($20|0);
$or$cond46 = $19 | $21;
if ($or$cond46) {
_Chat_Add2(38036,$0,$1);
label = 7;
} else {
$$1 = $$04248;
}
} else {
_Chat_Add2(37949,$0,$1);
label = 7;
}
if ((label|0) == 7) {
label = 0;
$22 = HEAP32[346159]|0;
$23 = (($22) + -1)|0;
$24 = ($$04248|0)<($23|0);
if ($24) {
$25 = HEAP32[346159]|0;
$26 = (($25) + -1)|0;
$$047 = $$04248;
while(1) {
$27 = (527184 + ($$047<<4)|0);
$28 = (($$047) + 1)|0;
$29 = (527184 + ($28<<4)|0);
;HEAP32[$27>>2]=HEAP32[$29>>2]|0;HEAP32[$27+4>>2]=HEAP32[$29+4>>2]|0;HEAP32[$27+8>>2]=HEAP32[$29+8>>2]|0;HEAP32[$27+12>>2]=HEAP32[$29+12>>2]|0;
$30 = ($28|0)<($26|0);
if ($30) {
$$047 = $28;
} else {
$$lcssa = $26;
break;
}
}
} else {
$$lcssa = $23;
}
$31 = (($$04248) + -1)|0;
HEAP32[346159] = $$lcssa;
$$1 = $31;
}
$32 = (($$1) + 1)|0;
$33 = HEAP32[346159]|0;
$34 = ($32|0)<($33|0);
if ($34) {
$$04248 = $32;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _Animations_Apply($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 12|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if ($3) {
$5 = ((($0)) + 8|0);
$6 = HEAP16[$5>>1]|0;
$7 = (($6) + 1)<<16>>16;
$8 = ((($0)) + 10|0);
$9 = HEAP16[$8>>1]|0;
$10 = (($7&65535) % ($9&65535))&-1;
HEAP16[$5>>1] = $10;
$11 = ((($0)) + 14|0);
$12 = HEAP16[$11>>1]|0;
HEAP16[$1>>1] = $12;
$13 = HEAP16[$0>>1]|0;
$14 = ((($0)) + 6|0);
$15 = HEAP16[$14>>1]|0;
$16 = $15&65535;
_Animations_Draw($0,$13,$16);
return;
} else {
$4 = (($2) + -1)<<16>>16;
HEAP16[$1>>1] = $4;
return;
}
}
function _Animations_Draw($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16400|0;
$3 = sp;
$4 = sp + 16384|0;
$5 = $1&65535;
$6 = HEAP32[(1384652)>>2]|0;
$7 = ($6)?($5 >>> $6):($5);
$8 = HEAP32[(1384648)>>2]|0;
$9 = $8 & $5;
$10 = HEAP32[(1386720)>>2]|0;
$11 = Math_imul($9, $10)|0;
$12 = ($2|0)>(64);
if ($12) {
$13 = Math_imul($2, $2)|0;
$14 = (_Mem_Alloc($13,4,37938)|0);
$$0 = $14;
} else {
$$0 = $3;
}
$15 = ((($4)) + 4|0);
HEAP32[$15>>2] = $2;
$16 = ((($4)) + 8|0);
HEAP32[$16>>2] = $2;
HEAP32[$4>>2] = $$0;
$17 = ($0|0)==(0|0);
if (!($17)) {
$18 = ((($0)) + 2|0);
$19 = HEAP16[$18>>1]|0;
$20 = $19&65535;
$21 = ((($0)) + 8|0);
$22 = HEAP16[$21>>1]|0;
$23 = $22&65535;
$24 = Math_imul($23, $2)|0;
$25 = (($24) + ($20))|0;
$26 = ((($0)) + 4|0);
$27 = HEAP16[$26>>1]|0;
$28 = $27&65535;
_Bitmap_UNSAFE_CopyBlock($25,$28,0,0,1384624,$4,$2);
}
$29 = (1384660 + ($7<<2)|0);
$30 = HEAP32[$29>>2]|0;
$31 = ($30|0)==(0);
if (!($31)) {
$32 = HEAP8[(1260361)>>0]|0;
_Gfx_UpdateTexturePart($30,0,$11,$4,$32);
}
if (!($12)) {
STACKTOP = sp;return;
}
_Mem_Free($$0);
STACKTOP = sp;return;
}
function _Atlas1D_TexRec($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$sroa$4$0$$sroa_idx3 = 0, $$sroa$6$0$$sroa_idx5 = 0, $$sroa$7$0$$sroa_idx7 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $1&65535;
$5 = HEAP32[(1384648)>>2]|0;
$6 = $5 & $4;
$7 = HEAP32[(1384652)>>2]|0;
$8 = ($7)?($4 >>> $7):($4);
HEAP32[$3>>2] = $8;
$9 = (+($6|0));
$10 = +HEAPF32[(1384656)>>2];
$11 = $10 * $9;
$12 = (($2) + -1)|0;
$13 = (+($12|0));
$14 = $13 + 0.99937498569488525;
$15 = $10 * 0.99937498569488525;
$16 = $11 + $15;
HEAPF32[$0>>2] = 0.0;
$$sroa$4$0$$sroa_idx3 = ((($0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx3>>2] = $11;
$$sroa$6$0$$sroa_idx5 = ((($0)) + 8|0);
HEAPF32[$$sroa$6$0$$sroa_idx5>>2] = $14;
$$sroa$7$0$$sroa_idx7 = ((($0)) + 12|0);
HEAPF32[$$sroa$7$0$$sroa_idx7>>2] = $16;
return;
}
function _Atlas_Update($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
;HEAP32[1386708>>2]=HEAP32[$0>>2]|0;HEAP32[1386708+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[1386708+8>>2]=HEAP32[$0+8>>2]|0;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = (($2|0) / 16)&-1;
HEAP32[(1386720)>>2] = $3;
$4 = ((($0)) + 8|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5|0) / ($3|0))&-1;
$7 = ($6|0)<(32);
$8 = $7 ? $6 : 32;
HEAP32[(1386724)>>2] = $8;
_Atlas_Update1D();
_Atlas_Convert2DTo1D();
return;
}
function _Atlas_Update1D() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1260352)>>2]|0;
$1 = ($0|0)<(4096);
$2 = $1 ? $0 : 4096;
$3 = HEAP32[(1386720)>>2]|0;
$4 = (($2|0) / ($3|0))&-1;
$5 = HEAP32[(1386724)>>2]|0;
$6 = $5 << 4;
$7 = ($4|0)<($6|0);
$8 = $7 ? $4 : $6;
HEAP32[(1384644)>>2] = $8;
$9 = (_Math_CeilDiv($6,$8)|0);
HEAP32[346160] = $9;
$10 = HEAP32[(1384644)>>2]|0;
$11 = (+($10|0));
$12 = 1.0 / $11;
HEAPF32[(1384656)>>2] = $12;
$13 = (($10) + -1)|0;
HEAP32[(1384648)>>2] = $13;
$14 = (_Math_Log2($10)|0);
HEAP32[(1384652)>>2] = $14;
return;
}
function _Atlas_Convert2DTo1D() {
var $$02833 = 0, $$02932 = 0, $$031 = 0, $$1$lcssa = 0, $$130 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$0 = sp + 16|0;
$1 = sp + 12|0;
$2 = sp;
$3 = HEAP32[(1386720)>>2]|0;
$4 = HEAP32[(1384644)>>2]|0;
HEAP32[$0>>2] = $4;
$5 = HEAP32[346160]|0;
HEAP32[$1>>2] = $5;
_Platform_Log2(38127,$1,$0);
$6 = HEAP32[$0>>2]|0;
$7 = Math_imul($6, $3)|0;
_Bitmap_Allocate($2,$3,$7);
$8 = HEAP32[$1>>2]|0;
$9 = ($8|0)>(0);
if (!($9)) {
$27 = HEAP32[$2>>2]|0;
_Mem_Free($27);
STACKTOP = sp;return;
}
$$02833 = 0;$$02932 = 0;
while(1) {
$10 = HEAP32[$0>>2]|0;
$11 = ($10|0)>(0);
if ($11) {
$$031 = 0;$$130 = $$02932;
while(1) {
$12 = $$130 & 15;
$13 = Math_imul($12, $3)|0;
$14 = (4)?($$130 >> 4):($$130);
$15 = Math_imul($14, $3)|0;
$16 = Math_imul($$031, $3)|0;
_Bitmap_UNSAFE_CopyBlock($13,$15,0,$16,1386708,$2,$3);
$17 = (($$031) + 1)|0;
$18 = (($$130) + 1)|0;
$19 = HEAP32[$0>>2]|0;
$20 = ($17|0)<($19|0);
if ($20) {
$$031 = $17;$$130 = $18;
} else {
$$1$lcssa = $18;
break;
}
}
} else {
$$1$lcssa = $$02932;
}
$21 = HEAP8[(1260361)>>0]|0;
$22 = (_Gfx_CreateTexture($2,1,$21)|0);
$23 = (1384660 + ($$02833<<2)|0);
HEAP32[$23>>2] = $22;
$24 = (($$02833) + 1)|0;
$25 = HEAP32[$1>>2]|0;
$26 = ($24|0)<($25|0);
if ($26) {
$$02833 = $24;$$02932 = $$1$lcssa;
} else {
break;
}
}
$27 = HEAP32[$2>>2]|0;
_Mem_Free($27);
STACKTOP = sp;return;
}
function _Atlas2D_LoadTile($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16400|0;
$1 = sp + 16384|0;
$2 = sp;
$3 = HEAP32[(1386720)>>2]|0;
$4 = ($3|0)>(64);
if ($4) {
_Bitmap_Allocate($1,$3,$3);
$5 = (_Atlas_LoadTile_Raw($0,$1)|0);
$6 = HEAP32[$1>>2]|0;
_Mem_Free($6);
$$0 = $5;
STACKTOP = sp;return ($$0|0);
} else {
$7 = ((($1)) + 4|0);
HEAP32[$7>>2] = $3;
$8 = ((($1)) + 8|0);
HEAP32[$8>>2] = $3;
HEAP32[$1>>2] = $2;
$9 = (_Atlas_LoadTile_Raw($0,$1)|0);
$$0 = $9;
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _Atlas_LoadTile_Raw($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1386720)>>2]|0;
$3 = $0&65535;
$4 = (4)?($3 >>> 4):($3);
$5 = HEAP32[(1386724)>>2]|0;
$6 = ($4|0)<($5|0);
if (!($6)) {
$$0 = 0;
return ($$0|0);
}
$7 = Math_imul($2, $4)|0;
$8 = $3 & 15;
$9 = Math_imul($2, $8)|0;
_Bitmap_UNSAFE_CopyBlock($9,$7,0,0,1386708,$1,$2);
$10 = HEAP8[(1260361)>>0]|0;
$11 = (_Gfx_CreateTexture($1,0,$10)|0);
$$0 = $11;
return ($$0|0);
}
function _Atlas_Free() {
var $$04 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[346677]|0;
_Mem_Free($0);
HEAP32[346677] = 0;
$1 = HEAP32[346160]|0;
$2 = ($1|0)>(0);
if (!($2)) {
return;
}
$$04 = 0;
while(1) {
$3 = (1384660 + ($$04<<2)|0);
_Gfx_DeleteTexture($3);
$4 = (($$04) + 1)|0;
$5 = HEAP32[346160]|0;
$6 = ($4|0)<($5|0);
if ($6) {
$$04 = $4;
} else {
break;
}
}
return;
}
function _TextureCache_Init() {
var label = 0, sp = 0;
sp = STACKTOP;
_EntryList_Init(1386728,38165,32);
_EntryList_Init(1391880,38195,32);
_EntryList_Init(1397032,38223,32);
_EntryList_Init(1402184,38246,32);
return;
}
function _TextureCache_HasAccepted($0) {
$0 = $0|0;
var $$lobit = 0, $$not = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_EntryList_Find(1386728,$0)|0);
$$lobit = (31)?($1 >>> 31):($1);
$2 = $$lobit&255;
$$not = $2 ^ 1;
return ($$not|0);
}
function _TextureCache_HasDenied($0) {
$0 = $0|0;
var $$lobit = 0, $$not = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_EntryList_Find(1391880,$0)|0);
$$lobit = (31)?($1 >>> 31):($1);
$2 = $$lobit&255;
$$not = $2 ^ 1;
return ($$not|0);
}
function _TextureCache_Accept($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_EntryList_Set(1386728,$0,1384616);
_EntryList_Save(1386728);
return;
}
function _TextureCache_Deny($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
_EntryList_Set(1391880,$0,1384616);
_EntryList_Save(1391880);
return;
}
function _TextureCache_ClearDenied() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(1391896)>>2]|0;
_StringsBuffer_Clear((1391888));
_EntryList_Save(1391880);
return ($0|0);
}
function _TextureCache_Has($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$1 = sp + 264|0;
$2 = sp;
HEAP32[$1>>2] = $2;
$3 = ((($1)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($1)) + 6|0);
HEAP16[$4>>1] = 260;
_TextureCache_MakePath($1,$0);
$5 = (_File_Exists($1)|0);
$6 = $5&255;
STACKTOP = sp;return ($6|0);
}
function _TextureCache_MakePath($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 24|0;
$3 = sp;
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 24;
_TextureCache_HashUrl($2,$1);
_String_Format1($0,38276,$2);
STACKTOP = sp;return;
}
function _TextureCache_HashUrl($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[$1>>2]|0;
$3 = ((($1)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = $4&65535;
$6 = (_Utils_CRC32($2,$5)|0);
_String_AppendUInt32($0,$6);
return;
}
function _TextureCache_Get($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$2 = sp + 264|0;
$3 = sp;
HEAP32[$2>>2] = $3;
$4 = ((($2)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($2)) + 6|0);
HEAP16[$5>>1] = 260;
_TextureCache_MakePath($2,$0);
$6 = (_Stream_OpenFile($1,$2)|0);
$7 = HEAP32[4302]|0;
$8 = ($6|0)==($7|0);
if ($8) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$9 = ($6|0)==(0);
if ($9) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
_Logger_Warn2($6,38292,$0);
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _TextureCache_Update($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288|0;
$1 = sp + 280|0;
$2 = sp + 272|0;
$3 = sp;
$4 = sp + 264|0;
_String_FromRaw($2,$0,128);
$5 = ((($0)) + 356|0);
_String_FromRaw($1,$5,64);
_TextureCache_SetETag($2,$1);
$6 = ((($0)) + 292|0);
_String_FromRaw($4,$6,64);
$7 = $4;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = $1;
$14 = $13;
HEAP32[$14>>2] = $9;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = $12;
_TextureCache_SetLastModified($2,$1);
HEAP32[$1>>2] = $3;
$17 = ((($1)) + 4|0);
HEAP16[$17>>1] = 0;
$18 = ((($1)) + 6|0);
HEAP16[$18>>1] = 260;
_TextureCache_MakePath($1,$2);
$19 = ((($0)) + 284|0);
$20 = HEAP32[$19>>2]|0;
$21 = ((($0)) + 288|0);
$22 = HEAP32[$21>>2]|0;
$23 = (_Stream_WriteAllTo($1,$20,$22)|0);
$24 = ($23|0)==(0);
if ($24) {
STACKTOP = sp;return;
}
_Logger_Warn2($23,38310,$2);
STACKTOP = sp;return;
}
function _TextureCache_SetETag($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
_TextureCache_SetEntry($0,$1,1397032);
return;
}
function _TextureCache_SetLastModified($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
_TextureCache_SetEntry($0,$1,1402184);
return;
}
function _TextureCache_SetEntry($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp + 24|0;
$4 = sp;
HEAP32[$3>>2] = $4;
$5 = ((($3)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($3)) + 6|0);
HEAP16[$6>>1] = 24;
_TextureCache_HashUrl($3,$0);
_EntryList_Set($2,$3,$1);
_EntryList_Save($2);
STACKTOP = sp;return;
}
function _TexturePack_ExtractZip_File($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 336|0;
$1 = sp + 320|0;
$2 = sp;
$3 = sp + 264|0;
(_chdir(38318)|0);
HEAP32[$1>>2] = $2;
$4 = ((($1)) + 4|0);
HEAP16[$4>>1] = 0;
$5 = ((($1)) + 6|0);
HEAP16[$5>>1] = 260;
_String_Format1($1,38320,$0);
$6 = (_Stream_OpenFile($3,$1)|0);
$7 = ($6|0)==(0);
if (!($7)) {
_Logger_Warn2($6,38432,$1);
STACKTOP = sp;return;
}
$8 = (_TexturePack_ExtractZip($3)|0);
$9 = ($8|0)==(0);
if (!($9)) {
_Logger_Warn2($8,38332,$1);
}
$10 = ((($3)) + 28|0);
$11 = HEAP32[$10>>2]|0;
$12 = (FUNCTION_TABLE_ii[$11 & 31]($3)|0);
$13 = ($12|0)==(0);
if (!($13)) {
_Logger_Warn2($12,38518,$1);
}
(_Platform_SetDefaultCurrentDirectory(0,0)|0);
STACKTOP = sp;return;
}
function _TexturePack_ExtractZip($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16416|0;
$1 = sp;
_Event_RaiseVoid((1250556));
$2 = HEAP8[(1260360)>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
_Zip_Init($1,$0);
$4 = ((($1)) + 4|0);
HEAP32[$4>>2] = 2;
$5 = (_Zip_Extract($1)|0);
$$0 = $5;
STACKTOP = sp;return ($$0|0);
}
function _TexturePack_ProcessZipEntry($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = $0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $3;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
_Utils_UNSAFE_GetFilename($3);
_Event_RaiseEntry((1250816),$1,$3);
STACKTOP = sp;return 0;
}
function _TexturePack_ExtractCurrent($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $storemerge = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$1 = sp + 8|0;
$2 = sp;
$3 = sp + 16|0;
$4 = 18828;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 4)|0;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = $1;
$11 = $10;
HEAP32[$11>>2] = $6;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = ((($1)) + 4|0);
$15 = HEAP16[$14>>1]|0;
$16 = ($15<<16>>16)==(0);
if ($16) {
label = 3;
} else {
$17 = (_TextureCache_Get($1,$3)|0);
$18 = ($17<<24>>24)==(0);
if ($18) {
label = 3;
} else {
$22 = (_String_IndexOfString($1,17988)|0);
$23 = ($22|0)>(-1);
if ($23) {
$24 = (_TexturePack_ExtractZip($3)|0);
$26 = $24;
} else {
$25 = (_TexturePack_ExtractPng($3)|0);
$26 = $25;
}
$27 = ($26|0)==(0);
if (!($27)) {
$28 = $23 ? 38332 : 37484;
_Logger_Warn2($26,$28,$1);
}
$29 = ((($3)) + 28|0);
$30 = HEAP32[$29>>2]|0;
$31 = (FUNCTION_TABLE_ii[$30 & 31]($3)|0);
$32 = ($31|0)==(0);
if ($32) {
$storemerge = 0;
} else {
_Logger_Warn2($31,38344,$1);
$storemerge = 0;
}
}
}
do {
if ((label|0) == 3) {
$19 = HEAP8[38343]|0;
$20 = ($19<<24>>24)==(0);
$21 = ($0<<24>>24)!=(0);
$or$cond = $21 | $20;
if ($or$cond) {
_Game_UNSAFE_GetDefaultTexturePack($2);
_TexturePack_ExtractZip_File($2);
$storemerge = 1;
break;
} else {
STACKTOP = sp;return;
}
}
} while(0);
HEAP8[38343] = $storemerge;
STACKTOP = sp;return;
}
function _TexturePack_ExtractPng($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = (_Png_Decode($1,$0)|0);
$3 = ($2|0)==(0);
if ($3) {
_Event_RaiseVoid((1250556));
$4 = (_Game_ChangeTerrainAtlas($1)|0);
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
}
$6 = HEAP32[$1>>2]|0;
_Mem_Free($6);
$$0 = $2;
STACKTOP = sp;return ($$0|0);
}
function _TexturePack_Extract_Req($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp;
$2 = sp + 8|0;
_String_FromRaw($1,$0,128);
$3 = (_String_Equals(18828,$1)|0);
$4 = ($3|0)==(0);
if ($4) {
STACKTOP = sp;return;
}
$5 = ((($0)) + 284|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($0)) + 288|0);
$8 = HEAP32[$7>>2]|0;
_Stream_ReadonlyMemory($2,$6,$8);
$9 = (_Png_Detect($6,$8)|0);
$10 = ($9<<24>>24)!=(0);
if ($10) {
$11 = (_TexturePack_ExtractPng($2)|0);
$13 = $11;
} else {
$12 = (_TexturePack_ExtractZip($2)|0);
$13 = $12;
}
$14 = ($13|0)==(0);
if (!($14)) {
$15 = $10 ? 37484 : 38332;
_Logger_Warn2($13,$15,$1);
}
HEAP8[38343] = 0;
STACKTOP = sp;return;
}
function _TexturePack_DownloadAsync($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 24|0;
$3 = sp + 16|0;
$4 = sp + 8|0;
$5 = sp;
$6 = 1384616;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = $2;
$13 = $12;
HEAP32[$13>>2] = $8;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
$16 = $3;
$17 = $16;
HEAP32[$17>>2] = $8;
$18 = (($16) + 4)|0;
$19 = $18;
HEAP32[$19>>2] = $11;
$20 = (_TextureCache_Has($0)|0);
$21 = ($20<<24>>24)==(0);
if ($21) {
_Http_AsyncGetDataEx($0,1,$1,$3,$2,0);
STACKTOP = sp;return;
}
_TextureCache_GetLastModified($4,$0);
$22 = $4;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = (($22) + 4)|0;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = $3;
$29 = $28;
HEAP32[$29>>2] = $24;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP32[$31>>2] = $27;
_TextureCache_GetETag($5,$0);
$32 = $5;
$33 = $32;
$34 = HEAP32[$33>>2]|0;
$35 = (($32) + 4)|0;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = $2;
$39 = $38;
HEAP32[$39>>2] = $34;
$40 = (($38) + 4)|0;
$41 = $40;
HEAP32[$41>>2] = $37;
_Http_AsyncGetDataEx($0,1,$1,$3,$2,0);
STACKTOP = sp;return;
}
function _TextureCache_GetLastModified($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 8|0;
$3 = sp;
_TextureCache_GetFromTags($2,$1,1402184);
$4 = (_Convert_ParseUInt64($2,$3)|0);
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$6 = ((($2)) + 4|0);
HEAP16[$6>>1] = 0;
}
$7 = $2;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = $0;
$14 = $13;
HEAP32[$14>>2] = $9;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = $12;
STACKTOP = sp;return;
}
function _TextureCache_GetETag($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_TextureCache_GetFromTags($0,$1,1397032);
return;
}
function _TextureCache_GetFromTags($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp + 24|0;
$4 = sp;
HEAP32[$3>>2] = $4;
$5 = ((($3)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($3)) + 6|0);
HEAP16[$6>>1] = 24;
_TextureCache_HashUrl($3,$1);
_EntryList_UNSAFE_Get($0,$2,$3);
STACKTOP = sp;return;
}
function _Utils_ParseEnum($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$08 = 0, $$09 = 0, $10 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ($3|0)>(0);
if (!($4)) {
$$08 = $1;
return ($$08|0);
}
$$09 = 0;
while(1) {
$5 = (($2) + ($$09<<2)|0);
$6 = HEAP32[$5>>2]|0;
$7 = (_String_CaselessEqualsConst($0,$6)|0);
$8 = ($7|0)==(0);
if (!($8)) {
$$08 = $$09;
label = 5;
break;
}
$9 = (($$09) + 1)|0;
$10 = ($9|0)<($3|0);
if ($10) {
$$09 = $9;
} else {
$$08 = $1;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$08|0);
}
return (0)|0;
}
function _Utils_IsUrlPrefix($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_String_IndexOfString($0,17996)|0);
$2 = ($1|0)==(0);
if ($2) {
$5 = 1;
return ($5|0);
}
$3 = (_String_IndexOfString($0,18004)|0);
$4 = ($3|0)==(0);
$phitmp = $4&1;
$5 = $phitmp;
return ($5|0);
}
function _Utils_EnsureDirectory($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_String_FromReadonly($1,$0);
$2 = (_Directory_Exists($1)|0);
$3 = ($2|0)==(0);
if (!($3)) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$4 = (_Directory_Create($1)|0);
$5 = ($4|0)==(0);
if (!($5)) {
_Logger_Warn2($4,38384,$1);
}
$6 = $5&1;
$$0 = $6;
STACKTOP = sp;return ($$0|0);
}
function _Utils_UNSAFE_GetFilename($0) {
$0 = $0|0;
var $$013 = 0, $$013$in = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
STACKTOP = sp;return;
}
$5 = $3&65535;
$6 = HEAP32[$0>>2]|0;
$$013$in = $5;
L4: while(1) {
$$013 = (($$013$in) + -1)|0;
$7 = (($6) + ($$013)|0);
$8 = HEAP8[$7>>0]|0;
switch ($8<<24>>24) {
case 92: case 47: {
break L4;
break;
}
default: {
}
}
$19 = ($$013$in|0)>(1);
if ($19) {
$$013$in = $$013;
} else {
label = 6;
break;
}
}
if ((label|0) == 6) {
STACKTOP = sp;return;
}
_String_UNSAFE_SubstringAt($1,$0,$$013$in);
$9 = $1;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = $0;
$16 = $15;
HEAP32[$16>>2] = $11;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $14;
STACKTOP = sp;return;
}
function _Utils_UNSAFE_TrimFirstDirectory($0) {
$0 = $0|0;
var $$011 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
STACKTOP = sp;return;
}
$5 = HEAP32[$0>>2]|0;
$$011 = 0;
L4: while(1) {
$6 = (($5) + ($$011)|0);
$7 = HEAP8[$6>>0]|0;
switch ($7<<24>>24) {
case 92: case 47: {
break L4;
break;
}
default: {
}
}
$19 = (($$011) + 1)|0;
$20 = HEAP16[$2>>1]|0;
$21 = $20&65535;
$22 = ($19>>>0)<($21>>>0);
if ($22) {
$$011 = $19;
} else {
label = 6;
break;
}
}
if ((label|0) == 6) {
STACKTOP = sp;return;
}
$8 = (($$011) + 1)|0;
_String_UNSAFE_SubstringAt($1,$0,$8);
$9 = $1;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = $0;
$16 = $15;
HEAP32[$16>>2] = $11;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $14;
STACKTOP = sp;return;
}
function _Utils_AccumulateWheelDelta($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[$0>>2];
$3 = $2 + $1;
$4 = (~~(($3)));
$5 = (+($4|0));
$6 = $3 - $5;
HEAPF32[$0>>2] = $6;
return ($4|0);
}
function _Utils_CalcSkinType($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp23 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = $4 << 1;
$6 = ($2|0)==($5|0);
if ($6) {
$$0 = 0;
return ($$0|0);
}
$7 = ($2|0)==($4|0);
if (!($7)) {
$$0 = -16;
return ($$0|0);
}
$8 = (($2|0) / 64)&-1;
$9 = HEAP32[$0>>2]|0;
$10 = ($8*20)|0;
$11 = Math_imul($10, $2)|0;
$12 = (($9) + ($11<<2)|0);
$13 = ($8*54)|0;
$14 = (($12) + ($13<<2)|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)>(-1);
if ($16) {
$$0 = 2;
return ($$0|0);
}
$17 = $8 << 1;
$18 = ($8*12)|0;
$19 = (_Utils_IsAllBlack($0,$13,$10,$17,$18)|0);
$20 = ($19<<24>>24)==(0);
if ($20) {
$$0 = 1;
return ($$0|0);
}
$21 = $8 << 2;
$22 = $8 << 4;
$23 = ($8*50)|0;
$24 = (_Utils_IsAllBlack($0,$23,$22,$17,$21)|0);
$25 = ($24<<24>>24)==(0);
$phitmp23 = $25 ? 1 : 2;
$$0 = $phitmp23;
return ($$0|0);
}
function _Utils_IsAllBlack($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$02226 = 0, $$02325 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$5 = (($4) + ($2))|0;
$6 = ($4|0)>(0);
if (!($6)) {
$$2 = 1;
return ($$2|0);
}
$7 = HEAP32[$0>>2]|0;
$8 = ((($0)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($3) + ($1))|0;
$11 = ($3|0)>(0);
$$02226 = $2;
L4: while(1) {
$12 = Math_imul($9, $$02226)|0;
$13 = (($7) + ($12<<2)|0);
if ($11) {
$$02325 = $1;
while(1) {
$16 = (($13) + ($$02325<<2)|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)==(-16777216);
$14 = (($$02325) + 1)|0;
if (!($18)) {
$$2 = 0;
label = 8;
break L4;
}
$15 = ($14|0)<($10|0);
if ($15) {
$$02325 = $14;
} else {
break;
}
}
}
$19 = (($$02226) + 1)|0;
$20 = ($19|0)<($5|0);
if ($20) {
$$02226 = $19;
} else {
$$2 = 1;
label = 8;
break;
}
}
if ((label|0) == 8) {
return ($$2|0);
}
return (0)|0;
}
function _Utils_CRC32($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$011 = 0, $$09$lcssa = 0, $$09$masked = 0, $$0910 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0);
if ($2) {
$$09$lcssa = 0;
return ($$09$lcssa|0);
}
$$011 = 0;$$0910 = -1;
while(1) {
$3 = (($0) + ($$011)|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$$09$masked = $$0910 & 255;
$6 = $$09$masked ^ $5;
$7 = (7584 + ($6<<2)|0);
$8 = HEAP32[$7>>2]|0;
$9 = (8)?($$0910 >>> 8):($$0910);
$10 = $8 ^ $9;
$11 = (($$011) + 1)|0;
$exitcond = ($11|0)==($1|0);
if ($exitcond) {
break;
} else {
$$011 = $11;$$0910 = $10;
}
}
$phitmp = $10 ^ -1;
$$09$lcssa = $phitmp;
return ($$09$lcssa|0);
}
function _Utils_Resize($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $12 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $storemerge = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = HEAP32[$1>>2]|0;
$6 = (($5) + ($4))|0;
HEAP32[$1>>2] = $6;
$7 = ($5|0)>($3|0);
if ($7) {
$11 = HEAP32[$0>>2]|0;
$12 = (_Mem_Realloc($11,$6,$2,38417)|0);
$storemerge = $12;
HEAP32[$0>>2] = $storemerge;
return;
} else {
$8 = (_Mem_Alloc($6,$2,38403)|0);
$9 = HEAP32[$0>>2]|0;
$10 = Math_imul($5, $2)|0;
_Mem_Copy($8,$9,$10);
$storemerge = $8;
HEAP32[$0>>2] = $storemerge;
return;
}
}
function _Utils_ParseIP($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
$3 = (_String_UNSAFE_Split($0,46,$2,4)|0);
$4 = ($3|0)==(4);
if ($4) {
$5 = (_Convert_ParseUInt8($2,$1)|0);
$6 = ($5<<24>>24)==(0);
if ($6) {
$$0 = 0;
} else {
$7 = ((($2)) + 8|0);
$8 = ((($1)) + 1|0);
$9 = (_Convert_ParseUInt8($7,$8)|0);
$10 = ($9<<24>>24)==(0);
if ($10) {
$$0 = 0;
} else {
$11 = ((($2)) + 16|0);
$12 = ((($1)) + 2|0);
$13 = (_Convert_ParseUInt8($11,$12)|0);
$14 = ($13<<24>>24)==(0);
if ($14) {
$$0 = 0;
} else {
$15 = ((($2)) + 24|0);
$16 = ((($1)) + 3|0);
$17 = (_Convert_ParseUInt8($15,$16)|0);
$18 = ($17<<24>>24)!=(0);
$phitmp = $18&1;
$$0 = $phitmp;
}
}
}
} else {
$$0 = 0;
}
STACKTOP = sp;return ($$0|0);
}
function _EntryList_Load($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $switch$split2D = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 3232|0;
$2 = sp + 3224|0;
$3 = sp + 2320|0;
$4 = sp + 3216|0;
$5 = sp + 2048|0;
$6 = sp + 3208|0;
$7 = sp + 3200|0;
$8 = sp;
$9 = sp + 3144|0;
$10 = sp + 3088|0;
HEAP32[$4>>2] = $5;
$11 = ((($4)) + 4|0);
HEAP16[$11>>1] = 0;
$12 = ((($4)) + 6|0);
HEAP16[$12>>1] = 260;
$13 = HEAP32[$0>>2]|0;
_String_AppendConst($4,$13);
$14 = (_Stream_OpenFile($9,$4)|0);
$15 = HEAP32[4302]|0;
$16 = ($14|0)==($15|0);
if ($16) {
STACKTOP = sp;return;
}
$17 = ($14|0)==(0);
if (!($17)) {
_Logger_Warn2($14,38432,$4);
STACKTOP = sp;return;
}
_Stream_ReadonlyBuffered($10,$9,$8,2048);
HEAP32[$2>>2] = $3;
$18 = ((($2)) + 4|0);
HEAP16[$18>>1] = 0;
$19 = ((($2)) + 6|0);
HEAP16[$19>>1] = 768;
$20 = ($1|0)==(0|0);
$21 = ((($0)) + 4|0);
L8: while(1) {
$22 = (_Stream_ReadLine($10,$2)|0);
$switch$split2D = ($22|0)<(0);
if ($switch$split2D) {
label = 18;
break;
}
switch ($22|0) {
case 0: {
break;
}
default: {
label = 6;
break L8;
}
}
_String_UNSAFE_TrimStart($2);
_String_UNSAFE_TrimEnd($2);
$23 = HEAP16[$18>>1]|0;
$24 = ($23<<16>>16)==(0);
do {
if (!($24)) {
if ($20) {
$27 = $23;
} else {
$25 = (FUNCTION_TABLE_ii[$1 & 31]($2)|0);
$26 = ($25<<24>>24)==(0);
if ($26) {
break;
}
$$pr = HEAP16[$18>>1]|0;
$27 = $$pr;
}
$28 = ($27&65535)>(511);
if ($28) {
HEAP16[$18>>1] = 0;
$29 = HEAP32[$0>>2]|0;
_String_Format1($2,38453,$29);
$30 = HEAP32[2939]|0;
FUNCTION_TABLE_vi[$30 & 511]($2);
break;
} else {
$31 = HEAP8[$21>>0]|0;
(_String_UNSAFE_Separate($2,$31,$6,$7)|0);
_EntryList_Set($0,$6,$7);
break;
}
}
} while(0);
}
if ((label|0) == 18) {
switch ($22|0) {
case -857812991: {
break;
}
default: {
label = 6;
}
}
}
if ((label|0) == 6) {
_Logger_Warn2($22,38440,$4);
}
$32 = ((($9)) + 28|0);
$33 = HEAP32[$32>>2]|0;
$34 = (FUNCTION_TABLE_ii[$33 & 31]($9)|0);
$35 = ($34|0)==(0);
if ($35) {
STACKTOP = sp;return;
}
_Logger_Warn2($34,38518,$4);
STACKTOP = sp;return;
}
function _EntryList_Set($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1040|0;
$3 = sp + 1024|0;
$4 = sp;
HEAP32[$3>>2] = $4;
$5 = ((($3)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($3)) + 6|0);
HEAP16[$6>>1] = 1024;
$7 = ((($2)) + 4|0);
$8 = HEAP16[$7>>1]|0;
$9 = ($8<<16>>16)==(0);
if ($9) {
_String_Copy($3,$1);
} else {
$10 = ((($0)) + 4|0);
_String_Format3($3,38526,$1,$10,$2);
}
(_EntryList_Remove($0,$1)|0);
$11 = ((($0)) + 8|0);
_StringsBuffer_Add($11,$3);
STACKTOP = sp;return;
}
function _EntryList_Remove($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_EntryList_Find($0,$1)|0);
$3 = ($2|0)>(-1);
if (!($3)) {
return ($2|0);
}
$4 = ((($0)) + 8|0);
_StringsBuffer_Remove($4,$2);
return ($2|0);
}
function _EntryList_Find($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$010 = 0, $$08 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 8|0;
$3 = sp + 24|0;
$4 = sp + 16|0;
$5 = sp;
$6 = ((($0)) + 8|0);
$7 = ((($0)) + 16|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)>(0);
if (!($9)) {
$$08 = -1;
STACKTOP = sp;return ($$08|0);
}
$10 = ((($0)) + 4|0);
$$010 = 0;
while(1) {
_StringsBuffer_UNSAFE_Get($5,$6,$$010);
$11 = $5;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = (($11) + 4)|0;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = $2;
$18 = $17;
HEAP32[$18>>2] = $13;
$19 = (($17) + 4)|0;
$20 = $19;
HEAP32[$20>>2] = $16;
$21 = HEAP8[$10>>0]|0;
(_String_UNSAFE_Separate($2,$21,$3,$4)|0);
$22 = (_String_CaselessEquals($1,$3)|0);
$23 = ($22|0)==(0);
if (!($23)) {
$$08 = $$010;
label = 5;
break;
}
$24 = (($$010) + 1)|0;
$25 = HEAP32[$7>>2]|0;
$26 = ($24|0)<($25|0);
if ($26) {
$$010 = $24;
} else {
$$08 = -1;
label = 5;
break;
}
}
if ((label|0) == 5) {
STACKTOP = sp;return ($$08|0);
}
return (0)|0;
}
function _EntryList_Save($0) {
$0 = $0|0;
var $$015 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 352|0;
$1 = sp + 336|0;
$2 = sp + 272|0;
$3 = sp;
$4 = sp + 280|0;
$5 = sp + 264|0;
HEAP32[$1>>2] = $3;
$6 = ((($1)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($1)) + 6|0);
HEAP16[$7>>1] = 260;
$8 = HEAP32[$0>>2]|0;
_String_AppendConst($1,$8);
$9 = (_Stream_CreateFile($4,$1)|0);
$10 = ($9|0)==(0);
if (!($10)) {
_Logger_Warn2($9,38533,$1);
STACKTOP = sp;return;
}
$11 = ((($0)) + 16|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)>(0);
L5: do {
if ($13) {
$14 = ((($0)) + 8|0);
$$015 = 0;
while(1) {
_StringsBuffer_UNSAFE_Get($5,$14,$$015);
$18 = $5;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = (($18) + 4)|0;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = $2;
$25 = $24;
HEAP32[$25>>2] = $20;
$26 = (($24) + 4)|0;
$27 = $26;
HEAP32[$27>>2] = $23;
$28 = (_Stream_WriteLine($4,$2)|0);
$29 = ($28|0)==(0);
$16 = (($$015) + 1)|0;
if (!($29)) {
break;
}
$15 = HEAP32[$11>>2]|0;
$17 = ($16|0)<($15|0);
if ($17) {
$$015 = $16;
} else {
break L5;
}
}
_Logger_Warn2($28,38542,$1);
}
} while(0);
$30 = ((($4)) + 28|0);
$31 = HEAP32[$30>>2]|0;
$32 = (FUNCTION_TABLE_ii[$31 & 31]($4)|0);
$33 = ($32|0)==(0);
if ($33) {
STACKTOP = sp;return;
}
_Logger_Warn2($32,38518,$1);
STACKTOP = sp;return;
}
function _EntryList_UNSAFE_Get($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp + 16|0;
$4 = sp + 24|0;
$5 = sp + 8|0;
$6 = sp;
$7 = ((($1)) + 16|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)>(0);
L1: do {
if ($9) {
$10 = ((($1)) + 8|0);
$11 = ((($1)) + 4|0);
$$09 = 0;
while(1) {
_StringsBuffer_UNSAFE_Get($6,$10,$$09);
$15 = $6;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + 4)|0;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = $3;
$22 = $21;
HEAP32[$22>>2] = $17;
$23 = (($21) + 4)|0;
$24 = $23;
HEAP32[$24>>2] = $20;
$25 = HEAP8[$11>>0]|0;
(_String_UNSAFE_Separate($3,$25,$4,$5)|0);
$26 = (_String_CaselessEquals($2,$4)|0);
$27 = ($26|0)==(0);
$13 = (($$09) + 1)|0;
if (!($27)) {
break;
}
$12 = HEAP32[$7>>2]|0;
$14 = ($13|0)<($12|0);
if ($14) {
$$09 = $13;
} else {
break L1;
}
}
$28 = $5;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (($28) + 4)|0;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = $0;
$35 = $34;
HEAP32[$35>>2] = $30;
$36 = (($34) + 4)|0;
$37 = $36;
HEAP32[$37>>2] = $33;
STACKTOP = sp;return;
}
} while(0);
$38 = 1384616;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = $0;
$45 = $44;
HEAP32[$45>>2] = $40;
$46 = (($44) + 4)|0;
$47 = $46;
HEAP32[$47>>2] = $43;
STACKTOP = sp;return;
}
function _EntryList_Init($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[$0>>2] = $1;
$3 = ((($0)) + 4|0);
HEAP8[$3>>0] = $2;
_EntryList_Load($0,0);
return;
}
function _Vec3_Lerp($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = +$3;
var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = +HEAPF32[$2>>2];
$5 = +HEAPF32[$1>>2];
$6 = $4 - $5;
$7 = $6 * $3;
$8 = $5 + $7;
HEAPF32[$0>>2] = $8;
$9 = ((($2)) + 4|0);
$10 = +HEAPF32[$9>>2];
$11 = ((($1)) + 4|0);
$12 = +HEAPF32[$11>>2];
$13 = $10 - $12;
$14 = $13 * $3;
$15 = $12 + $14;
$16 = ((($0)) + 4|0);
HEAPF32[$16>>2] = $15;
$17 = ((($2)) + 8|0);
$18 = +HEAPF32[$17>>2];
$19 = ((($1)) + 8|0);
$20 = +HEAPF32[$19>>2];
$21 = $18 - $20;
$22 = $21 * $3;
$23 = $20 + $22;
$24 = ((($0)) + 8|0);
HEAPF32[$24>>2] = $23;
return;
}
function _Vec3_Normalize($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $2 = 0.0, $20 = 0.0, $21 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0.0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[$1>>2];
$3 = $2 * $2;
$4 = ((($1)) + 4|0);
$5 = +HEAPF32[$4>>2];
$6 = $5 * $5;
$7 = $3 + $6;
$8 = ((($1)) + 8|0);
$9 = +HEAPF32[$8>>2];
$10 = $9 * $9;
$11 = $7 + $10;
$12 = (+_Math_SqrtF($11));
$13 = 1.0 / $12;
$14 = +HEAPF32[$1>>2];
$15 = $14 * $13;
HEAPF32[$0>>2] = $15;
$16 = +HEAPF32[$4>>2];
$17 = $13 * $16;
$18 = ((($0)) + 4|0);
HEAPF32[$18>>2] = $17;
$19 = +HEAPF32[$8>>2];
$20 = $13 * $19;
$21 = ((($0)) + 8|0);
HEAPF32[$21>>2] = $20;
return;
}
function _Vec3_TransformY($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = $2|0;
var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($2)) + 16|0);
$4 = +HEAPF32[$3>>2];
$5 = $4 * $1;
$6 = ((($2)) + 48|0);
$7 = +HEAPF32[$6>>2];
$8 = $5 + $7;
HEAPF32[$0>>2] = $8;
$9 = ((($2)) + 20|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 * $1;
$12 = ((($2)) + 52|0);
$13 = +HEAPF32[$12>>2];
$14 = $11 + $13;
$15 = ((($0)) + 4|0);
HEAPF32[$15>>2] = $14;
$16 = ((($2)) + 24|0);
$17 = +HEAPF32[$16>>2];
$18 = $17 * $1;
$19 = ((($2)) + 56|0);
$20 = +HEAPF32[$19>>2];
$21 = $18 + $20;
$22 = ((($0)) + 8|0);
HEAPF32[$22>>2] = $21;
return;
}
function _Vec3_RotateX($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $2;
$4 = (+_Math_Cos($3));
$5 = $4;
$6 = (+_Math_Sin($3));
$7 = $6;
$8 = +HEAPF32[$1>>2];
$9 = ((($1)) + 4|0);
$10 = +HEAPF32[$9>>2];
$11 = $10 * $5;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = $13 * $7;
$15 = $11 + $14;
$16 = $10 * $7;
$17 = $13 * $5;
$18 = $17 - $16;
_Vec3_Create3_1781($0,$8,$15,$18);
return;
}
function _Vec3_Create3_1781($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $2;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0);
HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $3;
return;
}
function _Vec3_RotateY($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $2;
$4 = (+_Math_Cos($3));
$5 = $4;
$6 = (+_Math_Sin($3));
$7 = $6;
$8 = +HEAPF32[$1>>2];
$9 = $8 * $5;
$10 = ((($1)) + 8|0);
$11 = +HEAPF32[$10>>2];
$12 = $11 * $7;
$13 = $9 - $12;
$14 = ((($1)) + 4|0);
$15 = +HEAPF32[$14>>2];
$16 = $8 * $7;
$17 = $11 * $5;
$18 = $16 + $17;
_Vec3_Create3_1781($0,$13,$15,$18);
return;
}
function _Vec3_RotateY3($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
$4 = +$4;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$5 = $4;
$6 = (+_Math_Cos($5));
$7 = $6;
$8 = (+_Math_Sin($5));
$9 = $8;
$10 = $7 * $1;
$11 = $9 * $3;
$12 = $10 - $11;
$13 = $9 * $1;
$14 = $7 * $3;
$15 = $14 + $13;
_Vec3_Create3_1781($0,$12,$2,$15);
return;
}
function _Vec3_RotateZ($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = +$2;
var $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = $2;
$4 = (+_Math_Cos($3));
$5 = $4;
$6 = (+_Math_Sin($3));
$7 = $6;
$8 = +HEAPF32[$1>>2];
$9 = $8 * $5;
$10 = ((($1)) + 4|0);
$11 = +HEAPF32[$10>>2];
$12 = $11 * $7;
$13 = $9 + $12;
$14 = $8 * $7;
$15 = $11 * $5;
$16 = $15 - $14;
$17 = ((($1)) + 8|0);
$18 = +HEAPF32[$17>>2];
_Vec3_Create3_1781($0,$13,$16,$18);
return;
}
function _IVec3_Floor($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $2 = 0.0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = +HEAPF32[$1>>2];
$3 = (_Math_Floor($2)|0);
HEAP32[$0>>2] = $3;
$4 = ((($1)) + 4|0);
$5 = +HEAPF32[$4>>2];
$6 = (_Math_Floor($5)|0);
$7 = ((($0)) + 4|0);
HEAP32[$7>>2] = $6;
$8 = ((($1)) + 8|0);
$9 = +HEAPF32[$8>>2];
$10 = (_Math_Floor($9)|0);
$11 = ((($0)) + 8|0);
HEAP32[$11>>2] = $10;
return;
}
function _IVec3_ToVec3($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0.0, $11 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[$1>>2]|0;
$3 = (+($2|0));
HEAPF32[$0>>2] = $3;
$4 = ((($1)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (+($5|0));
$7 = ((($0)) + 4|0);
HEAPF32[$7>>2] = $6;
$8 = ((($1)) + 8|0);
$9 = HEAP32[$8>>2]|0;
$10 = (+($9|0));
$11 = ((($0)) + 8|0);
HEAPF32[$11>>2] = $10;
return;
}
function _IVec3_Min($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$ = 0, $$15 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[$1>>2]|0;
$4 = HEAP32[$2>>2]|0;
$5 = ($3|0)<($4|0);
$$ = $5 ? $3 : $4;
HEAP32[$0>>2] = $$;
$6 = ((($1)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($2)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($7|0)<($9|0);
$11 = $10 ? $7 : $9;
$12 = ((($0)) + 4|0);
HEAP32[$12>>2] = $11;
$13 = ((($1)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = ((($2)) + 8|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($14|0)<($16|0);
$$15 = $17 ? $14 : $16;
$18 = ((($0)) + 8|0);
HEAP32[$18>>2] = $$15;
return;
}
function _IVec3_Max($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$ = 0, $$15 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[$1>>2]|0;
$4 = HEAP32[$2>>2]|0;
$5 = ($3|0)>($4|0);
$$ = $5 ? $3 : $4;
HEAP32[$0>>2] = $$;
$6 = ((($1)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($2)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($7|0)>($9|0);
$11 = $10 ? $7 : $9;
$12 = ((($0)) + 4|0);
HEAP32[$12>>2] = $11;
$13 = ((($1)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = ((($2)) + 8|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($14|0)>($16|0);
$$15 = $17 ? $14 : $16;
$18 = ((($0)) + 8|0);
HEAP32[$18>>2] = $$15;
return;
}
function _Vec3_GetDirVector($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $10 = 0.0, $11 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (+_Math_CosF($2));
$4 = (+_Math_SinF($1));
$5 = $3 * $4;
$6 = (+_Math_SinF($2));
$7 = - $6;
$8 = (+_Math_CosF($2));
$9 = (+_Math_CosF($1));
$10 = $8 * $9;
$11 = - $10;
_Vec3_Create3_1781($0,$5,$7,$11);
return;
}
function _Matrix_RotateX($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
$2 = $1;
$3 = (+_Math_Cos($2));
$4 = $3;
$5 = (+_Math_Sin($2));
$6 = $5;
dest=$0; src=18012; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$7 = ((($0)) + 20|0);
HEAPF32[$7>>2] = $4;
$8 = ((($0)) + 24|0);
HEAPF32[$8>>2] = $6;
$9 = - $6;
$10 = ((($0)) + 36|0);
HEAPF32[$10>>2] = $9;
$11 = ((($0)) + 40|0);
HEAPF32[$11>>2] = $4;
return;
}
function _Matrix_RotateY($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
$2 = $1;
$3 = (+_Math_Cos($2));
$4 = $3;
$5 = (+_Math_Sin($2));
$6 = $5;
dest=$0; src=18012; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
HEAPF32[$0>>2] = $4;
$7 = - $6;
$8 = ((($0)) + 8|0);
HEAPF32[$8>>2] = $7;
$9 = ((($0)) + 32|0);
HEAPF32[$9>>2] = $6;
$10 = ((($0)) + 40|0);
HEAPF32[$10>>2] = $4;
return;
}
function _Matrix_RotateZ($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
$2 = $1;
$3 = (+_Math_Cos($2));
$4 = $3;
$5 = (+_Math_Sin($2));
$6 = $5;
dest=$0; src=18012; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
HEAPF32[$0>>2] = $4;
$7 = ((($0)) + 4|0);
HEAPF32[$7>>2] = $6;
$8 = - $6;
$9 = ((($0)) + 16|0);
HEAPF32[$9>>2] = $8;
$10 = ((($0)) + 20|0);
HEAPF32[$10>>2] = $4;
return;
}
function _Matrix_Translate($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $4 = 0, $5 = 0, $6 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
dest=$0; src=18012; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$4 = ((($0)) + 48|0);
HEAPF32[$4>>2] = $1;
$5 = ((($0)) + 52|0);
HEAPF32[$5>>2] = $2;
$6 = ((($0)) + 56|0);
HEAPF32[$6>>2] = $3;
return;
}
function _Matrix_Scale($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
dest=$0; src=18012; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
HEAPF32[$0>>2] = $1;
$4 = ((($0)) + 20|0);
HEAPF32[$4>>2] = $2;
$5 = ((($0)) + 40|0);
HEAPF32[$5>>2] = $3;
return;
}
function _Matrix_Mul($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0;
var $118 = 0.0, $119 = 0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0;
var $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0, $144 = 0.0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0, $152 = 0.0, $153 = 0.0;
var $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0, $159 = 0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0;
var $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0, $176 = 0.0, $177 = 0.0, $178 = 0.0, $179 = 0.0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0.0, $183 = 0, $184 = 0.0, $185 = 0.0, $186 = 0.0, $187 = 0.0, $188 = 0.0, $189 = 0.0, $19 = 0.0;
var $190 = 0.0, $191 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0, $3 = 0.0, $30 = 0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0;
var $37 = 0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0, $48 = 0.0, $49 = 0, $5 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0, $54 = 0.0;
var $55 = 0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0;
var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0;
var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = ((($1)) + 4|0);
$5 = +HEAPF32[$4>>2];
$6 = ((($1)) + 8|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($1)) + 12|0);
$9 = +HEAPF32[$8>>2];
$10 = ((($1)) + 16|0);
$11 = +HEAPF32[$10>>2];
$12 = ((($1)) + 20|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($1)) + 24|0);
$15 = +HEAPF32[$14>>2];
$16 = ((($1)) + 28|0);
$17 = +HEAPF32[$16>>2];
$18 = ((($1)) + 32|0);
$19 = +HEAPF32[$18>>2];
$20 = ((($1)) + 36|0);
$21 = +HEAPF32[$20>>2];
$22 = ((($1)) + 40|0);
$23 = +HEAPF32[$22>>2];
$24 = ((($1)) + 44|0);
$25 = +HEAPF32[$24>>2];
$26 = ((($1)) + 48|0);
$27 = +HEAPF32[$26>>2];
$28 = ((($1)) + 52|0);
$29 = +HEAPF32[$28>>2];
$30 = ((($1)) + 56|0);
$31 = +HEAPF32[$30>>2];
$32 = ((($1)) + 60|0);
$33 = +HEAPF32[$32>>2];
$34 = +HEAPF32[$2>>2];
$35 = ((($2)) + 4|0);
$36 = +HEAPF32[$35>>2];
$37 = ((($2)) + 8|0);
$38 = +HEAPF32[$37>>2];
$39 = ((($2)) + 12|0);
$40 = +HEAPF32[$39>>2];
$41 = ((($2)) + 16|0);
$42 = +HEAPF32[$41>>2];
$43 = ((($2)) + 20|0);
$44 = +HEAPF32[$43>>2];
$45 = ((($2)) + 24|0);
$46 = +HEAPF32[$45>>2];
$47 = ((($2)) + 28|0);
$48 = +HEAPF32[$47>>2];
$49 = ((($2)) + 32|0);
$50 = +HEAPF32[$49>>2];
$51 = ((($2)) + 36|0);
$52 = +HEAPF32[$51>>2];
$53 = ((($2)) + 40|0);
$54 = +HEAPF32[$53>>2];
$55 = ((($2)) + 44|0);
$56 = +HEAPF32[$55>>2];
$57 = ((($2)) + 48|0);
$58 = +HEAPF32[$57>>2];
$59 = ((($2)) + 52|0);
$60 = +HEAPF32[$59>>2];
$61 = ((($2)) + 56|0);
$62 = +HEAPF32[$61>>2];
$63 = ((($2)) + 60|0);
$64 = +HEAPF32[$63>>2];
$65 = $3 * $34;
$66 = $5 * $42;
$67 = $65 + $66;
$68 = $7 * $50;
$69 = $67 + $68;
$70 = $9 * $58;
$71 = $69 + $70;
HEAPF32[$0>>2] = $71;
$72 = $3 * $36;
$73 = $5 * $44;
$74 = $72 + $73;
$75 = $7 * $52;
$76 = $74 + $75;
$77 = $9 * $60;
$78 = $76 + $77;
$79 = ((($0)) + 4|0);
HEAPF32[$79>>2] = $78;
$80 = $3 * $38;
$81 = $5 * $46;
$82 = $80 + $81;
$83 = $7 * $54;
$84 = $82 + $83;
$85 = $9 * $62;
$86 = $84 + $85;
$87 = ((($0)) + 8|0);
HEAPF32[$87>>2] = $86;
$88 = $3 * $40;
$89 = $5 * $48;
$90 = $88 + $89;
$91 = $7 * $56;
$92 = $90 + $91;
$93 = $9 * $64;
$94 = $92 + $93;
$95 = ((($0)) + 12|0);
HEAPF32[$95>>2] = $94;
$96 = $11 * $34;
$97 = $13 * $42;
$98 = $96 + $97;
$99 = $15 * $50;
$100 = $98 + $99;
$101 = $17 * $58;
$102 = $100 + $101;
$103 = ((($0)) + 16|0);
HEAPF32[$103>>2] = $102;
$104 = $11 * $36;
$105 = $13 * $44;
$106 = $104 + $105;
$107 = $15 * $52;
$108 = $106 + $107;
$109 = $17 * $60;
$110 = $108 + $109;
$111 = ((($0)) + 20|0);
HEAPF32[$111>>2] = $110;
$112 = $11 * $38;
$113 = $13 * $46;
$114 = $112 + $113;
$115 = $15 * $54;
$116 = $114 + $115;
$117 = $17 * $62;
$118 = $116 + $117;
$119 = ((($0)) + 24|0);
HEAPF32[$119>>2] = $118;
$120 = $11 * $40;
$121 = $13 * $48;
$122 = $120 + $121;
$123 = $15 * $56;
$124 = $122 + $123;
$125 = $17 * $64;
$126 = $124 + $125;
$127 = ((($0)) + 28|0);
HEAPF32[$127>>2] = $126;
$128 = $19 * $34;
$129 = $21 * $42;
$130 = $128 + $129;
$131 = $23 * $50;
$132 = $130 + $131;
$133 = $25 * $58;
$134 = $132 + $133;
$135 = ((($0)) + 32|0);
HEAPF32[$135>>2] = $134;
$136 = $19 * $36;
$137 = $21 * $44;
$138 = $136 + $137;
$139 = $23 * $52;
$140 = $138 + $139;
$141 = $25 * $60;
$142 = $140 + $141;
$143 = ((($0)) + 36|0);
HEAPF32[$143>>2] = $142;
$144 = $19 * $38;
$145 = $21 * $46;
$146 = $144 + $145;
$147 = $23 * $54;
$148 = $146 + $147;
$149 = $25 * $62;
$150 = $148 + $149;
$151 = ((($0)) + 40|0);
HEAPF32[$151>>2] = $150;
$152 = $19 * $40;
$153 = $21 * $48;
$154 = $152 + $153;
$155 = $23 * $56;
$156 = $154 + $155;
$157 = $25 * $64;
$158 = $156 + $157;
$159 = ((($0)) + 44|0);
HEAPF32[$159>>2] = $158;
$160 = $27 * $34;
$161 = $29 * $42;
$162 = $160 + $161;
$163 = $31 * $50;
$164 = $162 + $163;
$165 = $33 * $58;
$166 = $164 + $165;
$167 = ((($0)) + 48|0);
HEAPF32[$167>>2] = $166;
$168 = $27 * $36;
$169 = $29 * $44;
$170 = $168 + $169;
$171 = $31 * $52;
$172 = $170 + $171;
$173 = $33 * $60;
$174 = $172 + $173;
$175 = ((($0)) + 52|0);
HEAPF32[$175>>2] = $174;
$176 = $27 * $38;
$177 = $29 * $46;
$178 = $176 + $177;
$179 = $31 * $54;
$180 = $178 + $179;
$181 = $33 * $62;
$182 = $180 + $181;
$183 = ((($0)) + 56|0);
HEAPF32[$183>>2] = $182;
$184 = $27 * $40;
$185 = $29 * $48;
$186 = $184 + $185;
$187 = $31 * $56;
$188 = $186 + $187;
$189 = $33 * $64;
$190 = $188 + $189;
$191 = ((($0)) + 60|0);
HEAPF32[$191>>2] = $190;
return;
}
function _Matrix_OrthographicOffCenter($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
$4 = +$4;
$5 = +$5;
$6 = +$6;
var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0;
var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
dest=$0; src=18012; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$7 = $2 - $1;
$8 = 2.0 / $7;
HEAPF32[$0>>2] = $8;
$9 = $4 - $3;
$10 = 2.0 / $9;
$11 = ((($0)) + 20|0);
HEAPF32[$11>>2] = $10;
$12 = $6 - $5;
$13 = -2.0 / $12;
$14 = ((($0)) + 40|0);
HEAPF32[$14>>2] = $13;
$15 = $1 + $2;
$16 = - $15;
$17 = $16 / $7;
$18 = ((($0)) + 48|0);
HEAPF32[$18>>2] = $17;
$19 = $3 + $4;
$20 = - $19;
$21 = $20 / $9;
$22 = ((($0)) + 52|0);
HEAPF32[$22>>2] = $21;
$23 = $5 + $6;
$24 = - $23;
$25 = $24 / $12;
$26 = ((($0)) + 56|0);
HEAPF32[$26>>2] = $25;
return;
}
function _Matrix_PerspectiveFieldOfView($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
$4 = +$4;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$5 = $1 * 0.5;
$6 = $5;
$7 = (+_Tan_Simple($6));
$8 = $7;
$9 = $8 * $3;
$10 = - $9;
$11 = $10 * $2;
$12 = $9 * $2;
_Matrix_PerspectiveOffCenter($0,$11,$12,$10,$9,$3,$4);
return;
}
function _Tan_Simple($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0.0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_Math_Sin($0));
$2 = (+_Math_Cos($0));
$3 = $1 / $2;
return (+$3);
}
function _Matrix_PerspectiveOffCenter($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
$4 = +$4;
$5 = +$5;
$6 = +$6;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0;
var $30 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
dest=$0; src=18012; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$7 = ((($0)) + 60|0);
HEAPF32[$7>>2] = 0.0;
$8 = $5 * 2.0;
$9 = $2 - $1;
$10 = $8 / $9;
HEAPF32[$0>>2] = $10;
$11 = $4 - $3;
$12 = $8 / $11;
$13 = ((($0)) + 20|0);
HEAPF32[$13>>2] = $12;
$14 = $6 * 2.0;
$15 = $14 * $5;
$16 = - $15;
$17 = $6 - $5;
$18 = $16 / $17;
$19 = ((($0)) + 56|0);
HEAPF32[$19>>2] = $18;
$20 = $1 + $2;
$21 = $20 / $9;
$22 = ((($0)) + 32|0);
HEAPF32[$22>>2] = $21;
$23 = $3 + $4;
$24 = $23 / $11;
$25 = ((($0)) + 36|0);
HEAPF32[$25>>2] = $24;
$26 = $5 + $6;
$27 = - $26;
$28 = $27 / $17;
$29 = ((($0)) + 40|0);
HEAPF32[$29>>2] = $28;
$30 = ((($0)) + 44|0);
HEAPF32[$30>>2] = -1.0;
return;
}
function _Matrix_LookRot($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192|0;
$3 = sp + 128|0;
$4 = sp + 64|0;
$5 = sp;
$6 = ((($2)) + 4|0);
$7 = +HEAPF32[$6>>2];
_Matrix_RotateX($3,$7);
$8 = +HEAPF32[$2>>2];
_Matrix_RotateY($4,$8);
$9 = +HEAPF32[$1>>2];
$10 = - $9;
$11 = ((($1)) + 4|0);
$12 = +HEAPF32[$11>>2];
$13 = - $12;
$14 = ((($1)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = - $15;
_Matrix_Translate($5,$10,$13,$16);
_Matrix_Mul($0,$4,$3);
_Matrix_Mul($0,$5,$0);
STACKTOP = sp;return;
}
function _FrustumCulling_SphereInFrustum($0,$1,$2,$3) {
$0 = +$0;
$1 = +$1;
$2 = +$2;
$3 = +$3;
var $$ = 0, $$0 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0;
var $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0;
var $47 = 0.0, $48 = 0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = +HEAPF32[351834];
$5 = $4 * $0;
$6 = +HEAPF32[351835];
$7 = $6 * $1;
$8 = $5 + $7;
$9 = +HEAPF32[351836];
$10 = $9 * $2;
$11 = $8 + $10;
$12 = +HEAPF32[351837];
$13 = $12 + $11;
$14 = - $3;
$15 = !($13 <= $14);
if (!($15)) {
$$0 = 0;
return ($$0|0);
}
$16 = +HEAPF32[351838];
$17 = $16 * $0;
$18 = +HEAPF32[351839];
$19 = $18 * $1;
$20 = $17 + $19;
$21 = +HEAPF32[351840];
$22 = $21 * $2;
$23 = $20 + $22;
$24 = +HEAPF32[351841];
$25 = $24 + $23;
$26 = !($25 <= $14);
if (!($26)) {
$$0 = 0;
return ($$0|0);
}
$27 = +HEAPF32[351842];
$28 = $27 * $0;
$29 = +HEAPF32[351843];
$30 = $29 * $1;
$31 = $28 + $30;
$32 = +HEAPF32[351844];
$33 = $32 * $2;
$34 = $31 + $33;
$35 = +HEAPF32[351845];
$36 = $35 + $34;
$37 = !($36 <= $14);
if (!($37)) {
$$0 = 0;
return ($$0|0);
}
$38 = +HEAPF32[351846];
$39 = $38 * $0;
$40 = +HEAPF32[351847];
$41 = $40 * $1;
$42 = $39 + $41;
$43 = +HEAPF32[351848];
$44 = $43 * $2;
$45 = $42 + $44;
$46 = +HEAPF32[351849];
$47 = $46 + $45;
$48 = !($47 <= $14);
if (!($48)) {
$$0 = 0;
return ($$0|0);
}
$49 = +HEAPF32[351850];
$50 = $49 * $0;
$51 = +HEAPF32[351851];
$52 = $51 * $1;
$53 = $50 + $52;
$54 = +HEAPF32[351852];
$55 = $54 * $2;
$56 = $53 + $55;
$57 = +HEAPF32[351853];
$58 = $57 + $56;
$59 = !($58 <= $14);
$$ = $59&1;
$$0 = $$;
return ($$0|0);
}
function _FrustumCulling_CalcFrustumEquations($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0;
var $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0;
var $47 = 0.0, $48 = 0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$2 = sp;
_Matrix_Mul($2,$1,$0);
$3 = ((($2)) + 12|0);
$4 = +HEAPF32[$3>>2];
$5 = +HEAPF32[$2>>2];
$6 = $4 - $5;
HEAPF32[351834] = $6;
$7 = ((($2)) + 28|0);
$8 = +HEAPF32[$7>>2];
$9 = ((($2)) + 16|0);
$10 = +HEAPF32[$9>>2];
$11 = $8 - $10;
HEAPF32[351835] = $11;
$12 = ((($2)) + 44|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 32|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 - $15;
HEAPF32[351836] = $16;
$17 = ((($2)) + 60|0);
$18 = +HEAPF32[$17>>2];
$19 = ((($2)) + 48|0);
$20 = +HEAPF32[$19>>2];
$21 = $18 - $20;
HEAPF32[351837] = $21;
_FrustumCulling_Normalise(1407336,1407340,1407344,1407348);
$22 = $4 + $5;
HEAPF32[351838] = $22;
$23 = $8 + $10;
HEAPF32[351839] = $23;
$24 = $13 + $15;
HEAPF32[351840] = $24;
$25 = $18 + $20;
HEAPF32[351841] = $25;
_FrustumCulling_Normalise(1407352,1407356,1407360,1407364);
$26 = ((($2)) + 4|0);
$27 = +HEAPF32[$26>>2];
$28 = $4 + $27;
HEAPF32[351842] = $28;
$29 = ((($2)) + 20|0);
$30 = +HEAPF32[$29>>2];
$31 = $8 + $30;
HEAPF32[351843] = $31;
$32 = ((($2)) + 36|0);
$33 = +HEAPF32[$32>>2];
$34 = $13 + $33;
HEAPF32[351844] = $34;
$35 = ((($2)) + 52|0);
$36 = +HEAPF32[$35>>2];
$37 = $18 + $36;
HEAPF32[351845] = $37;
_FrustumCulling_Normalise(1407368,1407372,1407376,1407380);
$38 = $4 - $27;
HEAPF32[351846] = $38;
$39 = $8 - $30;
HEAPF32[351847] = $39;
$40 = $13 - $33;
HEAPF32[351848] = $40;
$41 = $18 - $36;
HEAPF32[351849] = $41;
_FrustumCulling_Normalise(1407384,1407388,1407392,1407396);
$42 = ((($2)) + 8|0);
$43 = +HEAPF32[$42>>2];
$44 = $4 - $43;
HEAPF32[351850] = $44;
$45 = ((($2)) + 24|0);
$46 = +HEAPF32[$45>>2];
$47 = $8 - $46;
HEAPF32[351851] = $47;
$48 = ((($2)) + 40|0);
$49 = +HEAPF32[$48>>2];
$50 = $13 - $49;
HEAPF32[351852] = $50;
$51 = ((($2)) + 56|0);
$52 = +HEAPF32[$51>>2];
$53 = $18 - $52;
HEAPF32[351853] = $53;
_FrustumCulling_Normalise(1407400,1407404,1407408,1407412);
STACKTOP = sp;return;
}
function _FrustumCulling_Normalise($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$4 = +HEAPF32[$0>>2];
$5 = +HEAPF32[$1>>2];
$6 = +HEAPF32[$2>>2];
$7 = $4 * $4;
$8 = $5 * $5;
$9 = $7 + $8;
$10 = $6 * $6;
$11 = $9 + $10;
$12 = (+_Math_SqrtF($11));
$13 = +HEAPF32[$0>>2];
$14 = $13 / $12;
HEAPF32[$0>>2] = $14;
$15 = +HEAPF32[$1>>2];
$16 = $15 / $12;
HEAPF32[$1>>2] = $16;
$17 = +HEAPF32[$2>>2];
$18 = $17 / $12;
HEAPF32[$2>>2] = $18;
$19 = +HEAPF32[$3>>2];
$20 = $19 / $12;
HEAPF32[$3>>2] = $20;
return;
}
function _Hex_Range($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_AppendConst($1,38553);
return;
}
function _Hex_ValidChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$off7 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$$off7 = (($1) + -48)<<24>>24;
$2 = ($$off7&255)<(10);
if ($2) {
return 1;
} else {
$3 = $1 & -33;
$4 = (($3) + -65)<<24>>24;
$5 = ($4&255)<(6);
$spec$select = $5&1;
return ($spec$select|0);
}
return (0)|0;
}
function _Hex_ValidString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3&65535)<(7);
$5 = $4&1;
return ($5|0);
}
function _Hex_ValidValue($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_PackedCol_TryParseHex($1,$2)|0);
STACKTOP = sp;return ($3|0);
}
function _Hex_Default($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP32[$2>>2]|0;
_PackedCol_ToHex($1,$3);
return;
}
function _Int_Range($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = ((($0)) + 8|0);
_String_Format2($1,38575,$2,$3);
return;
}
function _Int_ValidChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$off = 0, $2 = 0, $3 = 0, $4 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$$off = (($1) + -48)<<24>>24;
$2 = ($$off&255)<(10);
$3 = ($1<<24>>24)==(45);
$narrow = $3 | $2;
$4 = $narrow&1;
return ($4|0);
}
function _Int_ValidString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($1)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)==(1);
if ($5) {
$6 = HEAP32[$1>>2]|0;
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(45);
if ($8) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
}
$9 = (_Convert_ParseInt($1,$2)|0);
$$0 = $9;
STACKTOP = sp;return ($$0|0);
}
function _Int_ValidValue($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($0)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($0)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = (_Convert_ParseInt($1,$2)|0);
$8 = ($7<<24>>24)==(0);
if ($8) {
$12 = 0;
STACKTOP = sp;return ($12|0);
}
$9 = HEAP32[$2>>2]|0;
$10 = ($4|0)<=($9|0);
$11 = ($9|0)<=($6|0);
$narrow = $11 & $10;
$spec$select = $narrow&1;
$12 = $spec$select;
STACKTOP = sp;return ($12|0);
}
function _Int_Default($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = HEAP32[$2>>2]|0;
_String_AppendInt($1,$3);
return;
}
function _Seed_Range($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_AppendConst($1,38587);
return;
}
function _Seed_NoDefault($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Float_Range($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = ((($0)) + 8|0);
_String_Format2($1,38602,$2,$3);
return;
}
function _Float_ValidChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$off = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$$off = (($1) + -48)<<24>>24;
$2 = ($$off&255)<(10);
$3 = (($1) + -45)<<24>>24;
$4 = ($3&255)<(2);
$5 = $4 | $2;
$6 = ($1<<24>>24)==(44);
$narrow = $6 | $5;
$7 = $narrow&1;
return ($7|0);
}
function _Float_ValidString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($1)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4<<16>>16)==(1);
if ($5) {
$6 = HEAP32[$1>>2]|0;
$7 = HEAP8[$6>>0]|0;
$8 = (_Float_ValidChar($0,$7)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
}
$10 = (_Convert_ParseFloat($1,$2)|0);
$$0 = $10;
STACKTOP = sp;return ($$0|0);
}
function _Float_ValidValue($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0.0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($0)) + 4|0);
$4 = +HEAPF32[$3>>2];
$5 = ((($0)) + 8|0);
$6 = +HEAPF32[$5>>2];
$7 = (_Convert_ParseFloat($1,$2)|0);
$8 = ($7<<24>>24)==(0);
if ($8) {
$12 = 0;
} else {
$9 = +HEAPF32[$2>>2];
$10 = !($4 <= $9);
if ($10) {
$12 = 0;
} else {
$11 = $9 <= $6;
$phitmp = $11&1;
$12 = $phitmp;
}
}
STACKTOP = sp;return ($12|0);
}
function _Float_Default($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 12|0);
$3 = +HEAPF32[$2>>2];
_String_AppendFloat($1,$3,3);
return;
}
function _Path_Range($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_AppendConst($1,38616);
return;
}
function _Path_ValidChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($1<<24>>24) {
case 34: case 124: case 62: case 60: case 58: case 42: case 63: case 92: case 47: {
$3 = 0;
break;
}
default: {
$2 = ($1<<24>>24)!=(46);
$phitmp = $2&1;
$3 = $phitmp;
}
}
return ($3|0);
}
function _Path_ValidString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _String_Range($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_String_AppendConst($1,38631);
return;
}
function _String_ValidChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)!=(38);
$3 = $2&1;
return ($3|0);
}
function _String_ValidString($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3&65535)<(65);
$5 = $4&1;
return ($5|0);
}
function _TextWidget_Make($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
HEAP32[$0>>2] = 18196;
$5 = ((($0)) + 64|0);
HEAP32[$5>>2] = -1;
_Widget_SetLocation($0,$1,$2,$3,$4);
return;
}
function _TextWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 64|0);
$6 = HEAP32[$5>>2]|0;
_Texture_RenderShaded($2,$6);
return;
}
function _TextWidget_Free($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
_Gfx_DeleteTexture($1);
return;
}
function _TextWidget_Reposition($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_CalcPosition($0);
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = $2&65535;
$4 = ((($0)) + 40|0);
HEAP16[$4>>1] = $3;
$5 = ((($0)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6&65535;
$8 = ((($0)) + 42|0);
HEAP16[$8>>1] = $7;
return;
}
function _Widget_Key($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Widget_MouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Widget_Pointer($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _Widget_PointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _TextWidget_BuildMesh($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = ((($0)) + 64|0);
$4 = HEAP32[$3>>2]|0;
_Gfx_Make2DQuad($2,$4,$1);
return;
}
function _TextWidget_Render2($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0);
if (!($4)) {
_Gfx_BindTexture($3);
_Gfx_DrawVb_IndexedTris_Range(4,$1);
}
$5 = (($1) + 4)|0;
return ($5|0);
}
function _TextWidget_Set($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = ((($0)) + 36|0);
_Gfx_DeleteTexture($4);
$5 = (_Drawer2D_IsEmptyText($1)|0);
$6 = ($5<<24>>24)==(0);
if ($6) {
_DrawTextArgs_Make($3,$1,$2,1);
_Drawer2D_MakeTextTexture($4,$3);
} else {
$7 = ((($0)) + 44|0);
HEAP16[$7>>1] = 0;
$8 = (_Drawer2D_FontHeight($2,1)|0);
$9 = $8&65535;
$10 = ((($0)) + 46|0);
HEAP16[$10>>1] = $9;
}
$11 = ((($0)) + 44|0);
$12 = HEAP16[$11>>1]|0;
$13 = $12&65535;
$14 = ((($0)) + 12|0);
HEAP32[$14>>2] = $13;
$15 = ((($0)) + 46|0);
$16 = HEAP16[$15>>1]|0;
$17 = $16&65535;
$18 = ((($0)) + 16|0);
HEAP32[$18>>2] = $17;
$19 = HEAP32[$0>>2]|0;
$20 = ((($19)) + 8|0);
$21 = HEAP32[$20>>2]|0;
FUNCTION_TABLE_vi[$21 & 511]($0);
STACKTOP = sp;return;
}
function _TextWidget_SetConst($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
_String_FromReadonly($3,$1);
_TextWidget_Set($0,$3,$2);
STACKTOP = sp;return;
}
function _ButtonWidget_Make($0,$1,$2,$3,$4,$5,$6) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
$6 = $6|0;
var $10 = 0, $11 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
HEAP32[$0>>2] = 18240;
$7 = ((($0)) + 68|0);
HEAP32[$7>>2] = 0;
$8 = (_Display_ScaleX($1)|0);
$9 = ((($0)) + 64|0);
HEAP32[$9>>2] = $8;
$10 = (_Display_ScaleY(40)|0);
HEAP32[351856] = $10;
$11 = ((($0)) + 32|0);
HEAP32[$11>>2] = $2;
_Widget_SetLocation($0,$3,$4,$5,$6);
return;
}
function _ButtonWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0;
var $47 = 0.0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
$3 = ((($0)) + 20|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
;HEAP32[$2>>2]=HEAP32[18312>>2]|0;HEAP32[$2+4>>2]=HEAP32[18312+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[18312+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[18312+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[18312+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[18312+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[18312+24>>2]|0;
} else {
;HEAP32[$2>>2]=HEAP32[18284>>2]|0;HEAP32[$2+4>>2]=HEAP32[18284+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[18284+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[18284+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[18284+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[18284+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[18284+24>>2]|0;
}
$6 = ((($0)) + 21|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if (!($8)) {
;HEAP32[$2>>2]=HEAP32[18340>>2]|0;HEAP32[$2+4>>2]=HEAP32[18340+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[18340+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[18340+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[18340+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[18340+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[18340+24>>2]|0;
}
$9 = HEAP8[1408257]|0;
$10 = ($9<<24>>24)==(0);
$11 = HEAP32[315200]|0;
$12 = HEAP32[315199]|0;
$13 = $10 ? $12 : $11;
HEAP32[$2>>2] = $13;
$14 = ((($0)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = $15&65535;
$17 = ((($2)) + 4|0);
HEAP16[$17>>1] = $16;
$18 = ((($0)) + 12|0);
$19 = HEAP32[$18>>2]|0;
$20 = $19&65535;
$21 = ((($2)) + 8|0);
HEAP16[$21>>1] = $20;
$22 = ((($0)) + 8|0);
$23 = HEAP32[$22>>2]|0;
$24 = $23&65535;
$25 = ((($2)) + 6|0);
HEAP16[$25>>1] = $24;
$26 = ((($0)) + 16|0);
$27 = HEAP32[$26>>2]|0;
$28 = $27&65535;
$29 = ((($2)) + 10|0);
HEAP16[$29>>1] = $28;
$30 = ($19|0)>(399);
if ($30) {
_Texture_Render($2);
} else {
$31 = (+($19|0));
$32 = $31 / 400.0;
$33 = $32 * 0.5;
_Gfx_BindTexture($13);
$34 = HEAP32[$18>>2]|0;
$35 = (($34|0) / 2)&-1;
$36 = $35&65535;
HEAP16[$21>>1] = $36;
$37 = ((($2)) + 12|0);
HEAPF32[$37>>2] = 0.0;
$38 = $33 * 0.78125;
$39 = ((($2)) + 20|0);
HEAPF32[$39>>2] = $38;
_Gfx_Draw2DTexture($2,-1);
$40 = HEAP32[$18>>2]|0;
$41 = (($40|0) / 2)&-1;
$42 = HEAP16[$17>>1]|0;
$43 = $42&65535;
$44 = (($41) + ($43))|0;
$45 = $44&65535;
HEAP16[$17>>1] = $45;
$46 = 1.0 - $33;
$47 = $46 * 0.78125;
HEAPF32[$37>>2] = $47;
HEAPF32[$39>>2] = 0.78125;
_Gfx_Draw2DTexture($2,-1);
}
$48 = ((($0)) + 36|0);
$49 = HEAP32[$48>>2]|0;
$50 = ($49|0)==(0);
if ($50) {
STACKTOP = sp;return;
}
$51 = HEAP8[$6>>0]|0;
$52 = ($51<<24>>24)==(0);
if ($52) {
$53 = HEAP8[$3>>0]|0;
$54 = ($53<<24>>24)==(0);
$55 = $54 ? -2039584 : -6225921;
$56 = $55;
} else {
$56 = -6250336;
}
_Texture_RenderShaded($48,$56);
STACKTOP = sp;return;
}
function _ButtonWidget_Free($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
_Gfx_DeleteTexture($1);
return;
}
function _ButtonWidget_Reposition($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_CalcPosition($0);
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 12|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4|0) / 2)&-1;
$6 = ((($0)) + 44|0);
$7 = HEAP16[$6>>1]|0;
$8 = (1)?(($7&65535) >>> 1):(($7&65535));
$9 = $8&65535;
$10 = (($5) + ($2))|0;
$11 = (($10) - ($9))|0;
$12 = $11&65535;
$13 = ((($0)) + 40|0);
HEAP16[$13>>1] = $12;
$14 = ((($0)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($0)) + 16|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($17|0) / 2)&-1;
$19 = ((($0)) + 46|0);
$20 = HEAP16[$19>>1]|0;
$21 = (1)?(($20&65535) >>> 1):(($20&65535));
$22 = $21&65535;
$23 = (($18) + ($15))|0;
$24 = (($23) - ($22))|0;
$25 = $24&65535;
$26 = ((($0)) + 42|0);
HEAP16[$26>>1] = $25;
return;
}
function _ButtonWidget_BuildMesh($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0.0;
var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
$3 = ((($0)) + 20|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
;HEAP32[$2>>2]=HEAP32[18312>>2]|0;HEAP32[$2+4>>2]=HEAP32[18312+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[18312+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[18312+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[18312+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[18312+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[18312+24>>2]|0;
} else {
;HEAP32[$2>>2]=HEAP32[18284>>2]|0;HEAP32[$2+4>>2]=HEAP32[18284+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[18284+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[18284+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[18284+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[18284+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[18284+24>>2]|0;
}
$6 = ((($0)) + 21|0);
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if (!($8)) {
;HEAP32[$2>>2]=HEAP32[18340>>2]|0;HEAP32[$2+4>>2]=HEAP32[18340+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[18340+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[18340+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[18340+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[18340+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[18340+24>>2]|0;
}
$9 = ((($0)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10&65535;
$12 = ((($2)) + 4|0);
HEAP16[$12>>1] = $11;
$13 = ((($0)) + 12|0);
$14 = HEAP32[$13>>2]|0;
$15 = $14&65535;
$16 = ((($2)) + 8|0);
HEAP16[$16>>1] = $15;
$17 = ((($0)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = $18&65535;
$20 = ((($2)) + 6|0);
HEAP16[$20>>1] = $19;
$21 = ((($0)) + 16|0);
$22 = HEAP32[$21>>2]|0;
$23 = $22&65535;
$24 = ((($2)) + 10|0);
HEAP16[$24>>1] = $23;
$25 = ($14|0)>(399);
if ($25) {
_Gfx_Make2DQuad($2,-1,$1);
$26 = HEAP32[$1>>2]|0;
$27 = ((($26)) + 96|0);
HEAP32[$1>>2] = $27;
} else {
$28 = (+($14|0));
$29 = $28 / 400.0;
$30 = $29 * 0.5;
$31 = (($14|0) / 2)&-1;
$32 = $31&65535;
HEAP16[$16>>1] = $32;
$33 = ((($2)) + 12|0);
HEAPF32[$33>>2] = 0.0;
$34 = $30 * 0.78125;
$35 = ((($2)) + 20|0);
HEAPF32[$35>>2] = $34;
_Gfx_Make2DQuad($2,-1,$1);
$36 = HEAP32[$13>>2]|0;
$37 = (($36|0) / 2)&-1;
$38 = HEAP16[$12>>1]|0;
$39 = $38&65535;
$40 = (($37) + ($39))|0;
$41 = $40&65535;
HEAP16[$12>>1] = $41;
$42 = 1.0 - $30;
$43 = $42 * 0.78125;
HEAPF32[$33>>2] = $43;
HEAPF32[$35>>2] = 0.78125;
_Gfx_Make2DQuad($2,-1,$1);
}
$44 = HEAP8[$6>>0]|0;
$45 = ($44<<24>>24)==(0);
if (!($45)) {
$50 = -6250336;
$49 = ((($0)) + 36|0);
_Gfx_Make2DQuad($49,$50,$1);
STACKTOP = sp;return;
}
$46 = HEAP8[$3>>0]|0;
$47 = ($46<<24>>24)==(0);
$48 = $47 ? -2039584 : -6225921;
$50 = $48;
$49 = ((($0)) + 36|0);
_Gfx_Make2DQuad($49,$50,$1);
STACKTOP = sp;return;
}
function _ButtonWidget_Render2($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[1408257]|0;
$3 = ($2<<24>>24)==(0);
$4 = HEAP32[315200]|0;
$5 = HEAP32[315199]|0;
$6 = $3 ? $5 : $4;
_Gfx_BindTexture($6);
$7 = ((($0)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)>(399);
$10 = $9 ? 4 : 8;
_Gfx_DrawVb_IndexedTris_Range($10,$1);
$11 = ((($0)) + 36|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==(0);
if ($13) {
$15 = (($1) + 12)|0;
return ($15|0);
}
$14 = (($1) + 8)|0;
_Gfx_BindTexture($12);
_Gfx_DrawVb_IndexedTris_Range(4,$14);
$15 = (($1) + 12)|0;
return ($15|0);
}
function _ButtonWidget_Set($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = ((($0)) + 36|0);
_Gfx_DeleteTexture($4);
$5 = (_Drawer2D_IsEmptyText($1)|0);
$6 = ($5<<24>>24)==(0);
if ($6) {
_DrawTextArgs_Make($3,$1,$2,1);
_Drawer2D_MakeTextTexture($4,$3);
} else {
$7 = ((($0)) + 44|0);
HEAP16[$7>>1] = 0;
$8 = (_Drawer2D_FontHeight($2,1)|0);
$9 = $8&65535;
$10 = ((($0)) + 46|0);
HEAP16[$10>>1] = $9;
}
$11 = ((($0)) + 44|0);
$12 = HEAP16[$11>>1]|0;
$13 = $12&65535;
$14 = ((($0)) + 64|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)<($13|0);
$$ = $16 ? $13 : $15;
$17 = ((($0)) + 12|0);
HEAP32[$17>>2] = $$;
$18 = ((($0)) + 46|0);
$19 = HEAP16[$18>>1]|0;
$20 = $19&65535;
$21 = HEAP32[351856]|0;
$22 = ($21|0)<($20|0);
$23 = $22 ? $20 : $21;
$24 = ((($0)) + 16|0);
HEAP32[$24>>2] = $23;
$25 = HEAP32[$0>>2]|0;
$26 = ((($25)) + 8|0);
$27 = HEAP32[$26>>2]|0;
FUNCTION_TABLE_vi[$27 & 511]($0);
STACKTOP = sp;return;
}
function _ButtonWidget_SetConst($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
_String_FromReadonly($3,$1);
_ButtonWidget_Set($0,$3,$2);
STACKTOP = sp;return;
}
function _ScrollbarWidget_Create($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
HEAP32[$0>>2] = 18368;
$1 = ((($0)) + 12|0);
HEAP32[$1>>2] = 22;
$2 = ((($0)) + 36|0);
;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;
return;
}
function _ScrollbarWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 4|0;
$3 = sp;
$4 = ((($0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 12|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($0)) + 8|0);
$9 = HEAP32[$8>>2]|0;
$10 = ((($0)) + 16|0);
$11 = HEAP32[$10>>2]|0;
_Gfx_Draw2DFlat($5,$9,$7,$11,-603321846);
_ScrollbarWidget_GetScrollbarCoords($0,$2,$3);
$12 = (($5) + 2)|0;
$13 = HEAP32[$8>>2]|0;
$14 = HEAP32[$2>>2]|0;
$15 = (($14) + ($13))|0;
HEAP32[$2>>2] = $15;
$16 = (($7) + -4)|0;
$17 = HEAP32[$3>>2]|0;
$18 = (_Gui_ContainsPointers($12,$15,$16,$17)|0);
$19 = $18 & 255;
$20 = ($19|0)==(0);
$21 = $20 ? -597400476 : -595953030;
_Gfx_Draw2DFlat($12,$15,$16,$17,$21);
$22 = ($17|0)<(20);
if ($22) {
STACKTOP = sp;return;
}
$23 = (($5) + 5)|0;
$24 = (1)?($17 >>> 1):($17);
$25 = (($24) + ($15))|0;
HEAP32[$2>>2] = $25;
$26 = (($7) + -10)|0;
$27 = (($25) + -5)|0;
_Gfx_Draw2DFlat($23,$27,$26,2,-603321846);
$28 = (($25) + -1)|0;
_Gfx_Draw2DFlat($23,$28,$26,2,-603321846);
$29 = (($25) + 3)|0;
_Gfx_Draw2DFlat($23,$29,$26,2,-603321846);
STACKTOP = sp;return;
}
function _Widget_NullFunc($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _ScrollbarWidget_MouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 44|0);
$3 = (_Utils_AccumulateWheelDelta($2,$1)|0);
$4 = ((($0)) + 40|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) - ($3))|0;
HEAP32[$4>>2] = $6;
_ScrollbarWidget_ClampTopRow($0);
return 1;
}
function _ScrollbarWidget_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp + 4|0;
$5 = sp;
$6 = ((($0)) + 52|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==($1|0);
if ($8) {
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
$9 = ((($0)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)>($2|0);
if ($11) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$12 = ((($0)) + 12|0);
$13 = HEAP32[$12>>2]|0;
$14 = (($13) + ($10))|0;
$15 = ($14|0)>($2|0);
$16 = ($7|0)==(0);
$or$cond = $16 & $15;
if (!($or$cond)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$17 = ((($0)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = (($3) - ($18))|0;
_ScrollbarWidget_GetScrollbarCoords($0,$4,$5);
$20 = HEAP32[$4>>2]|0;
$21 = ($19|0)<($20|0);
do {
if ($21) {
$22 = ((($0)) + 40|0);
$23 = HEAP32[$22>>2]|0;
$24 = (($23) + -8)|0;
HEAP32[$22>>2] = $24;
} else {
$25 = HEAP32[$5>>2]|0;
$26 = (($25) + ($20))|0;
$27 = ($19|0)<($26|0);
if ($27) {
HEAP32[$6>>2] = $1;
$31 = (($19) - ($20))|0;
$32 = ((($0)) + 48|0);
HEAP32[$32>>2] = $31;
break;
} else {
$28 = ((($0)) + 40|0);
$29 = HEAP32[$28>>2]|0;
$30 = (($29) + 8)|0;
HEAP32[$28>>2] = $30;
break;
}
}
} while(0);
_ScrollbarWidget_ClampTopRow($0);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _ScrollbarWidget_PointerUp($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 52|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==($1|0);
if (!($6)) {
return 1;
}
HEAP32[$4>>2] = 0;
$7 = ((($0)) + 48|0);
HEAP32[$7>>2] = 0;
return 1;
}
function _ScrollbarWidget_PointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 52|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==($1|0);
if (!($6)) {
$$0 = 0;
return ($$0|0);
}
$7 = ((($0)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$9 = (($3) - ($8))|0;
$10 = (+_ScrollbarWidget_GetScale($0));
$11 = ((($0)) + 48|0);
$12 = HEAP32[$11>>2]|0;
$13 = (($9) - ($12))|0;
$14 = (+($13|0));
$15 = $14 / $10;
$16 = (~~(($15)));
$17 = ((($0)) + 40|0);
HEAP32[$17>>2] = $16;
_ScrollbarWidget_ClampTopRow($0);
$$0 = 1;
return ($$0|0);
}
function _ScrollbarWidget_GetScale($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
$2 = HEAP32[$1>>2]|0;
$3 = (+($2|0));
$4 = ((($0)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + -4)|0;
$7 = (+($6|0));
$8 = $7 / $3;
return (+$8);
}
function _ScrollbarWidget_ClampTopRow($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
$2 = HEAP32[$1>>2]|0;
$3 = (($2) + -8)|0;
$4 = ((($0)) + 40|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)<($3|0);
$7 = $6 ? $5 : $3;
$8 = ($7|0)<(0);
$9 = $6 ^ 1;
$10 = $8 | $9;
if (!($10)) {
return;
}
$spec$select = $8 ? 0 : $7;
HEAP32[$4>>2] = $spec$select;
return;
}
function _ScrollbarWidget_GetScrollbarCoords($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$ = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (+_ScrollbarWidget_GetScale($0));
$4 = ((($0)) + 40|0);
$5 = HEAP32[$4>>2]|0;
$6 = (+($5|0));
$7 = $3 * $6;
$8 = (_Math_Ceil($7)|0);
$9 = (($8) + 2)|0;
HEAP32[$1>>2] = $9;
$10 = $3 * 8.0;
$11 = (_Math_Ceil($10)|0);
HEAP32[$2>>2] = $11;
$12 = HEAP32[$1>>2]|0;
$13 = (($12) + ($11))|0;
$14 = ((($0)) + 16|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($15) + -2)|0;
$17 = ($13|0)<($16|0);
$$ = $17 ? $13 : $16;
$18 = (($$) - ($12))|0;
HEAP32[$2>>2] = $18;
return;
}
function _HotbarWidget_Create($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
HEAP32[$0>>2] = 18412;
$1 = ((($0)) + 22|0);
HEAP8[$1>>0] = 1;
$2 = ((($0)) + 23|0);
HEAP8[$2>>0] = 2;
return;
}
function _HotbarWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var label = 0, sp = 0;
sp = STACKTOP;
_HotbarWidget_RenderHotbarOutline($0);
_HotbarWidget_RenderHotbarBlocks($0);
return;
}
function _HotbarWidget_Reposition($0) {
$0 = $0|0;
var $1 = 0.0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $2 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_Game_GetHotbarScale());
$2 = $1 * 182.0;
$3 = (~~(($2)));
$4 = ((($0)) + 12|0);
HEAP32[$4>>2] = $3;
$5 = $1 * 22.0;
$6 = (_Math_Floor($5)|0);
$7 = ((($0)) + 16|0);
HEAP32[$7>>2] = $6;
_Widget_CalcPosition($0);
$8 = $1 * 24.0;
$9 = (_Math_Ceil($8)|0);
$10 = (+($9|0));
$11 = ((($0)) + 96|0);
HEAPF32[$11>>2] = $10;
$12 = $1 * 13.5;
$13 = ((($0)) + 104|0);
HEAPF32[$13>>2] = $12;
$14 = $1 * 11.100000381469727;
$15 = ((($0)) + 100|0);
HEAPF32[$15>>2] = $14;
$16 = $1 * 20.0;
$17 = ((($0)) + 92|0);
HEAPF32[$17>>2] = $16;
$18 = ((($0)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = $19&65535;
$21 = ((($0)) + 68|0);
HEAP16[$21>>1] = $20;
$22 = ((($0)) + 8|0);
$23 = HEAP32[$22>>2]|0;
$24 = $23&65535;
$25 = ((($0)) + 70|0);
HEAP16[$25>>1] = $24;
$26 = HEAP32[$4>>2]|0;
$27 = $26&65535;
$28 = ((($0)) + 72|0);
HEAP16[$28>>1] = $27;
$29 = HEAP32[$7>>2]|0;
$30 = $29&65535;
$31 = ((($0)) + 74|0);
HEAP16[$31>>1] = $30;
$32 = ((($0)) + 76|0);
HEAPF32[$32>>2] = 0.0;
$33 = ((($0)) + 80|0);
HEAPF32[$33>>2] = 0.0;
$34 = ((($0)) + 84|0);
HEAPF32[$34>>2] = 0.7109375;
$35 = ((($0)) + 88|0);
HEAPF32[$35>>2] = 0.0859375;
$36 = $1 * 23.0;
$37 = (~~(($36)));
$38 = (($23) - ($37))|0;
$39 = (($38) + ($29))|0;
$40 = ((($0)) + 40|0);
HEAP16[$40>>1] = 0;
$41 = $39&65535;
$42 = ((($0)) + 42|0);
HEAP16[$42>>1] = $41;
$43 = (~~(($10)));
$44 = $43&65535;
$45 = ((($0)) + 44|0);
HEAP16[$45>>1] = $44;
$46 = ((($0)) + 46|0);
HEAP16[$46>>1] = $30;
$47 = ((($0)) + 48|0);
HEAPF32[$47>>2] = 0.0;
$48 = ((($0)) + 52|0);
HEAPF32[$48>>2] = 0.0859375;
$49 = ((($0)) + 56|0);
HEAPF32[$49>>2] = 0.09375;
$50 = ((($0)) + 60|0);
HEAPF32[$50>>2] = 0.171875;
return;
}
function _HotbarWidget_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$off = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$off = (($1) + -49)|0;
$2 = ($$off>>>0)>(8);
if ($2) {
$$0 = 0;
return ($$0|0);
}
$3 = (_KeyBind_IsPressed(30)|0);
$4 = ($3<<24>>24)==(0);
if ($4) {
_Inventory_SetSelectedIndex($$off);
$$0 = 1;
return ($$0|0);
} else {
_Inventory_SetHotbarIndex($$off);
$5 = ((($0)) + 112|0);
HEAP8[$5>>0] = 1;
$$0 = 1;
return ($$0|0);
}
return (0)|0;
}
function _HotbarWidget_KeyUp($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(379758)>>0]|0;
$3 = $2&255;
$4 = ($3|0)==($1|0);
if (!($4)) {
$$0 = 0;
return ($$0|0);
}
$5 = ((($0)) + 112|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if (!($7)) {
HEAP8[$5>>0] = 0;
$$0 = 1;
return ($$0|0);
}
$8 = HEAP8[1408301]|0;
$9 = ($8<<24>>24)==(0);
if ($9) {
$$0 = 1;
return ($$0|0);
}
$10 = HEAP32[(1268184)>>2]|0;
$11 = ($10|0)==(0);
$12 = $11&1;
_Inventory_SetHotbarIndex($12);
$$0 = 1;
return ($$0|0);
}
function _HotbarWidget_MouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_KeyBind_IsPressed(30)|0);
$3 = ($2<<24>>24)==(0);
if ($3) {
$8 = HEAP32[(1268180)>>2]|0;
$9 = (_HotbarWidget_ScrolledIndex($0,$1,$8,-1)|0);
_Inventory_SetSelectedIndex($9);
return 1;
} else {
$4 = HEAP32[(1268184)>>2]|0;
$5 = (($4|0) / 9)&-1;
$6 = (_HotbarWidget_ScrolledIndex($0,$1,$5,1)|0);
_Inventory_SetHotbarIndex($6);
$7 = ((($0)) + 112|0);
HEAP8[$7>>0] = 1;
return 1;
}
return (0)|0;
}
function _HotbarWidget_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$02931$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $7 = 0.0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_Widget_Contains($0,$2,$3)|0);
$5 = ($4|0)==(0);
if ($5) {
$$0 = 0;
return ($$0|0);
}
$6 = ((($0)) + 92|0);
$7 = +HEAPF32[$6>>2];
$8 = (~~(($7)));
$9 = ((($0)) + 16|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($0)) + 4|0);
$12 = ((($0)) + 8|0);
$13 = HEAP32[$11>>2]|0;
$14 = HEAP32[$12>>2]|0;
$15 = (_Gui_Contains($13,$14,$8,$10,$2,$3)|0);
$16 = ($15|0)==(0);
if ($16) {
$17 = HEAP32[$11>>2]|0;
$18 = (($17) + ($8))|0;
$19 = HEAP32[$12>>2]|0;
$20 = (_Gui_Contains($18,$19,$8,$10,$2,$3)|0);
$21 = ($20|0)==(0);
if ($21) {
$22 = HEAP32[$11>>2]|0;
$23 = $8 << 1;
$24 = (($22) + ($23))|0;
$25 = HEAP32[$12>>2]|0;
$26 = (_Gui_Contains($24,$25,$8,$10,$2,$3)|0);
$27 = ($26|0)==(0);
if ($27) {
$28 = HEAP32[$11>>2]|0;
$29 = ($8*3)|0;
$30 = (($28) + ($29))|0;
$31 = HEAP32[$12>>2]|0;
$32 = (_Gui_Contains($30,$31,$8,$10,$2,$3)|0);
$33 = ($32|0)==(0);
if ($33) {
$34 = HEAP32[$11>>2]|0;
$35 = $8 << 2;
$36 = (($34) + ($35))|0;
$37 = HEAP32[$12>>2]|0;
$38 = (_Gui_Contains($36,$37,$8,$10,$2,$3)|0);
$39 = ($38|0)==(0);
if ($39) {
$40 = HEAP32[$11>>2]|0;
$41 = ($8*5)|0;
$42 = (($40) + ($41))|0;
$43 = HEAP32[$12>>2]|0;
$44 = (_Gui_Contains($42,$43,$8,$10,$2,$3)|0);
$45 = ($44|0)==(0);
if ($45) {
$46 = HEAP32[$11>>2]|0;
$47 = ($8*6)|0;
$48 = (($46) + ($47))|0;
$49 = HEAP32[$12>>2]|0;
$50 = (_Gui_Contains($48,$49,$8,$10,$2,$3)|0);
$51 = ($50|0)==(0);
if ($51) {
$52 = HEAP32[$11>>2]|0;
$53 = ($8*7)|0;
$54 = (($52) + ($53))|0;
$55 = HEAP32[$12>>2]|0;
$56 = (_Gui_Contains($54,$55,$8,$10,$2,$3)|0);
$57 = ($56|0)==(0);
if ($57) {
$58 = HEAP32[$11>>2]|0;
$59 = $8 << 3;
$60 = (($58) + ($59))|0;
$61 = HEAP32[$12>>2]|0;
$62 = (_Gui_Contains($60,$61,$8,$10,$2,$3)|0);
$63 = ($62|0)==(0);
if ($63) {
$$0 = 0;
return ($$0|0);
} else {
$$02931$lcssa = 8;
}
} else {
$$02931$lcssa = 7;
}
} else {
$$02931$lcssa = 6;
}
} else {
$$02931$lcssa = 5;
}
} else {
$$02931$lcssa = 4;
}
} else {
$$02931$lcssa = 3;
}
} else {
$$02931$lcssa = 2;
}
} else {
$$02931$lcssa = 1;
}
} else {
$$02931$lcssa = 0;
}
_Inventory_SetSelectedIndex($$02931$lcssa);
$$0 = 1;
return ($$0|0);
}
function _HotbarWidget_ScrolledIndex($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = $2|0;
$3 = $3|0;
var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 108|0);
$5 = (_Utils_AccumulateWheelDelta($4,$1)|0);
$6 = Math_imul($5, $3)|0;
$7 = (($6|0) % 9)&-1;
$8 = (($7) + ($2))|0;
$9 = ($8|0)<(0);
$10 = (($8) + 9)|0;
$spec$select = $9 ? $10 : $8;
$11 = ($spec$select|0)>(8);
$12 = (($spec$select) + -9)|0;
$$1 = $11 ? $12 : $spec$select;
return ($$1|0);
}
function _HotbarWidget_RenderHotbarOutline($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0;
var $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408257]|0;
$2 = ($1<<24>>24)==(0);
$3 = HEAP32[315200]|0;
$4 = HEAP32[315199]|0;
$5 = $2 ? $4 : $3;
$6 = ((($0)) + 64|0);
HEAP32[$6>>2] = $5;
_Texture_Render($6);
$7 = HEAP32[(1268180)>>2]|0;
$8 = ((($0)) + 92|0);
$9 = +HEAPF32[$8>>2];
$10 = ((($0)) + 4|0);
$11 = HEAP32[$10>>2]|0;
$12 = (+($11|0));
$13 = ((($0)) + 100|0);
$14 = +HEAPF32[$13>>2];
$15 = $14 + $12;
$16 = (+($7|0));
$17 = $9 * $16;
$18 = $17 + $15;
$19 = (~~(($18)));
$20 = ((($0)) + 36|0);
HEAP32[$20>>2] = $5;
$21 = (+($19|0));
$22 = ((($0)) + 96|0);
$23 = +HEAPF32[$22>>2];
$24 = $23 * 0.5;
$25 = $21 - $24;
$26 = (~~(($25)));
$27 = $26&65535;
$28 = ((($0)) + 40|0);
HEAP16[$28>>1] = $27;
_Gfx_Draw2DTexture($20,-1);
return;
}
function _HotbarWidget_RenderHotbarBlocks($0) {
$0 = $0|0;
var $$022 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 3456|0;
$1 = sp;
$2 = HEAP32[(1280020)>>2]|0;
_IsometricDrawer_BeginBatch($1,$2);
$3 = ((($0)) + 92|0);
$4 = +HEAPF32[$3>>2];
$5 = ((($0)) + 104|0);
$6 = +HEAPF32[$5>>2];
$7 = $6 * 0.5;
$8 = ((($0)) + 4|0);
$9 = ((($0)) + 100|0);
$10 = ((($0)) + 8|0);
$11 = ((($0)) + 16|0);
$$022 = 0;
while(1) {
$12 = HEAP32[$8>>2]|0;
$13 = (+($12|0));
$14 = +HEAPF32[$9>>2];
$15 = $14 + $13;
$16 = (+($$022|0));
$17 = $4 * $16;
$18 = $17 + $15;
$19 = (~~(($18)));
$20 = HEAP32[$10>>2]|0;
$21 = HEAP32[$11>>2]|0;
$22 = (($21|0) / 2)&-1;
$23 = (($22) + ($20))|0;
$24 = HEAP32[(1268184)>>2]|0;
$25 = (($24) + ($$022))|0;
$26 = (1266480 + ($25<<1)|0);
$27 = HEAP16[$26>>1]|0;
$28 = (+($19|0));
$29 = (+($23|0));
_IsometricDrawer_DrawBatch($27,$7,$28,$29);
$30 = (($$022) + 1)|0;
$exitcond = ($30|0)==(9);
if ($exitcond) {
break;
} else {
$$022 = $30;
}
}
_IsometricDrawer_EndBatch();
STACKTOP = sp;return;
}
function _TableWidget_MakeDescTex($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0;
$2 = sp + 144|0;
$3 = sp;
$4 = sp + 128|0;
$5 = ((($0)) + 1668|0);
_Gfx_DeleteTexture($5);
HEAP32[$2>>2] = $3;
$6 = ((($2)) + 4|0);
HEAP16[$6>>1] = 0;
$7 = ((($2)) + 6|0);
HEAP16[$7>>1] = 128;
_TableWidget_MakeBlockDesc($2,$1);
$8 = HEAP16[$6>>1]|0;
$9 = ($8<<16>>16)==(0);
if ($9) {
STACKTOP = sp;return;
}
$10 = ((($0)) + 52|0);
$11 = HEAP32[$10>>2]|0;
_DrawTextArgs_Make($4,$2,$11,1);
_Drawer2D_MakeTextTexture($5,$4);
_TableWidget_UpdateDescTexPos($0);
STACKTOP = sp;return;
}
function _TableWidget_MakeBlockDesc($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = sp + 8|0;
$4 = $1&65535;
HEAP32[$3>>2] = $4;
$5 = HEAP8[1408229]|0;
$6 = ($5<<24>>24)==(0);
$7 = HEAP8[1408233]|0;
$8 = ($7<<24>>24)!=(0);
$or$cond = $6 | $8;
if (!($or$cond)) {
_String_AppendConst($0,38646);
STACKTOP = sp;return;
}
$9 = ($1<<16>>16)==(0);
if ($9) {
STACKTOP = sp;return;
}
_Block_UNSAFE_GetName($2,$1);
_String_AppendString($0,$2);
$10 = HEAP8[1408229]|0;
$11 = ($10<<24>>24)==(0);
if (!($11)) {
STACKTOP = sp;return;
}
_String_Format1($0,38659,$3);
$12 = (634116 + ($4)|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(0);
if ($14) {
_String_AppendConst($0,38669);
}
$15 = (634884 + ($4)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(0);
if ($17) {
_String_AppendConst($0,38684);
}
_String_Append($0,41);
STACKTOP = sp;return;
}
function _TableWidget_UpdateDescTexPos($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 12|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4|0) / 2)&-1;
$6 = (($5) + ($2))|0;
$7 = ((($0)) + 1676|0);
$8 = HEAP16[$7>>1]|0;
$9 = (1)?(($8&65535) >>> 1):(($8&65535));
$10 = $9&65535;
$11 = (($6) - ($10))|0;
$12 = $11&65535;
$13 = ((($0)) + 1672|0);
HEAP16[$13>>1] = $12;
$14 = ((($0)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($0)) + 1678|0);
$17 = HEAP16[$16>>1]|0;
$18 = $17&65535;
$19 = (($15) + 65531)|0;
$20 = (($19) - ($18))|0;
$21 = $20&65535;
$22 = ((($0)) + 1674|0);
HEAP16[$22>>1] = $21;
return;
}
function _TableWidget_RecreateBlocks($0) {
$0 = $0|0;
var $$0$be = 0, $$024 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[1408231]|0;
$2 = ($1<<24>>24)==(0);
$3 = $2 ? 50 : 768;
$4 = ((($0)) + 36|0);
HEAP32[$4>>2] = 0;
$5 = ((($0)) + 40|0);
$$024 = 0;
while(1) {
$6 = HEAP32[$5>>2]|0;
$7 = (($$024|0) % ($6|0))&-1;
$8 = ($7|0)==(0);
if ($8) {
$9 = (_TableWidget_RowEmpty($0,$$024)|0);
$10 = ($9<<24>>24)==(0);
if ($10) {
label = 6;
} else {
$11 = (($6) + ($$024))|0;
$$0$be = $11;
}
} else {
label = 6;
}
if ((label|0) == 6) {
label = 0;
$13 = (1266642 + ($$024<<1)|0);
$14 = HEAP16[$13>>1]|0;
$15 = $14&65535;
$16 = ($3>>>0)>($15>>>0);
if ($16) {
$17 = HEAP32[$4>>2]|0;
$18 = (($17) + 1)|0;
HEAP32[$4>>2] = $18;
$19 = (((($0)) + 74|0) + ($17<<1)|0);
HEAP16[$19>>1] = $14;
}
$20 = (($$024) + 1)|0;
$$0$be = $20;
}
$12 = ($$0$be>>>0)<(768);
if ($12) {
$$024 = $$0$be;
} else {
break;
}
}
$21 = HEAP32[$4>>2]|0;
$22 = ((($0)) + 40|0);
$23 = HEAP32[$22>>2]|0;
$24 = (_Math_CeilDiv($21,$23)|0);
$25 = ((($0)) + 44|0);
HEAP32[$25>>2] = $24;
$26 = HEAP32[$0>>2]|0;
$27 = ((($26)) + 8|0);
$28 = HEAP32[$27>>2]|0;
FUNCTION_TABLE_vi[$28 & 511]($0);
return;
}
function _TableWidget_RowEmpty($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $$01213 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($3) + ($1))|0;
$5 = ($4>>>0)<(768);
$spec$select = $5 ? $4 : 768;
$6 = ($spec$select|0)>($1|0);
if (!($6)) {
$$0 = 1;
return ($$0|0);
}
$$01213 = $1;
while(1) {
$9 = (1266642 + ($$01213<<1)|0);
$10 = HEAP16[$9>>1]|0;
$11 = ($10<<16>>16)==(0);
$7 = (($$01213) + 1)|0;
if (!($11)) {
$$0 = 0;
label = 5;
break;
}
$8 = ($7|0)<($spec$select|0);
if ($8) {
$$01213 = $7;
} else {
$$0 = 1;
label = 5;
break;
}
}
if ((label|0) == 5) {
return ($$0|0);
}
return (0)|0;
}
function _TableWidget_Recreate($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0|0);
if (!($2)) {
$3 = ((($1)) + 4|0);
$4 = HEAP32[$3>>2]|0;
FUNCTION_TABLE_vi[$4 & 511]($0);
}
$5 = (_Gfx_CreateDynamicVb(1,1280)|0);
$6 = ((($0)) + 68|0);
HEAP32[$6>>2] = $5;
_TableWidget_RecreateDescTex($0);
return;
}
function _TableWidget_RecreateDescTex($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 48|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($2|0)==($4|0);
if ($5) {
return;
}
$6 = ((($0)) + 36|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(0);
if ($8) {
return;
}
HEAP32[$3>>2] = $2;
$9 = ((($0)) + 1668|0);
_Gfx_DeleteTexture($9);
$10 = HEAP32[$1>>2]|0;
$11 = ($10|0)==(-1);
if ($11) {
return;
}
$12 = (((($0)) + 74|0) + ($10<<1)|0);
$13 = HEAP16[$12>>1]|0;
_TableWidget_MakeDescTex($0,$13);
return;
}
function _TableWidget_Create($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
HEAP32[$0>>2] = 18456;
$1 = ((($0)) + 48|0);
HEAP32[$1>>2] = -1000;
$2 = ((($0)) + 1612|0);
_ScrollbarWidget_Create($2);
$3 = ((($0)) + 22|0);
HEAP8[$3>>0] = 1;
$4 = ((($0)) + 23|0);
HEAP8[$4>>0] = 1;
$5 = ((($0)) + 1696|0);
HEAP32[$5>>2] = -20;
$6 = ((($0)) + 1700|0);
HEAP32[$6>>2] = -20;
return;
}
function _TableWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$067 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0;
var $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0.0;
var $46 = 0.0, $47 = 0.0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0;
var $82 = 0, $83 = 0, $84 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 30736|0;
$2 = sp;
$3 = sp + 30724|0;
$4 = sp + 30720|0;
$5 = (_Table_X($0)|0);
$6 = (_Table_Y($0)|0);
$7 = (_Table_Width($0)|0);
$8 = (_Table_Height($0)|0);
_Gfx_Draw2DGradient($5,$6,$7,$8,-1474158046,-899139271);
$9 = ((($0)) + 44|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)>(8);
if ($11) {
$12 = ((($0)) + 1612|0);
$13 = HEAP32[$12>>2]|0;
$14 = HEAP32[$13>>2]|0;
FUNCTION_TABLE_vid[$14 & 63]($12,$1);
}
$15 = ((($0)) + 60|0);
$16 = HEAP32[$15>>2]|0;
$17 = ((($0)) + 56|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($18|0)==(-1);
$20 = HEAP8[1408229]|0;
$21 = ($20<<24>>24)==(0);
$or$cond = $19 | $21;
if (!($or$cond)) {
$22 = ((($0)) + 74|0);
$23 = (($22) + ($18<<1)|0);
$24 = HEAP16[$23>>1]|0;
$25 = ($24<<16>>16)==(0);
if (!($25)) {
(_TableWidget_GetCoords($0,$18,$3,$4)|0);
$26 = (+($16|0));
$27 = $26 * 0.10000000149011612;
$28 = $27 * 2.0;
$29 = $28 + $26;
$30 = (~~(($29)));
$31 = HEAP32[$3>>2]|0;
$32 = (+($31|0));
$33 = $32 - $27;
$34 = (~~(($33)));
$35 = HEAP32[$4>>2]|0;
$36 = (+($35|0));
$37 = $36 - $27;
$38 = (~~(($37)));
_Gfx_Draw2DGradient($34,$38,$30,$30,-1895825409,-1056964609);
}
}
_Gfx_SetVertexFormat(1);
$39 = ((($0)) + 68|0);
$40 = HEAP32[$39>>2]|0;
_IsometricDrawer_BeginBatch($2,$40);
$41 = ((($0)) + 36|0);
$42 = HEAP32[$41>>2]|0;
$43 = ($42|0)>(0);
if ($43) {
$44 = ((($0)) + 74|0);
$45 = (+($16|0));
$46 = $45 * 0.69999998807907104;
$47 = $46 * 0.5;
$48 = (($16|0) / 2)&-1;
$$067 = 0;
while(1) {
$49 = (_TableWidget_GetCoords($0,$$067,$3,$4)|0);
$50 = ($49<<24>>24)==(0);
if (!($50)) {
$51 = HEAP32[$17>>2]|0;
$52 = ($$067|0)==($51|0);
if (!($52)) {
$53 = (($44) + ($$067<<1)|0);
$54 = HEAP16[$53>>1]|0;
$55 = HEAP32[$3>>2]|0;
$56 = (($55) + ($48))|0;
$57 = (+($56|0));
$58 = HEAP32[$4>>2]|0;
$59 = (($58) + ($48))|0;
$60 = (+($59|0));
_IsometricDrawer_DrawBatch($54,$47,$57,$60);
}
}
$61 = (($$067) + 1)|0;
$62 = HEAP32[$41>>2]|0;
$63 = ($61|0)<($62|0);
if ($63) {
$$067 = $61;
} else {
break;
}
}
}
$64 = HEAP32[$17>>2]|0;
$65 = ($64|0)==(-1);
if (!($65)) {
(_TableWidget_GetCoords($0,$64,$3,$4)|0);
$66 = ((($0)) + 74|0);
$67 = (($66) + ($64<<1)|0);
$68 = HEAP16[$67>>1]|0;
$69 = (+($16|0));
$70 = ((($0)) + 64|0);
$71 = +HEAPF32[$70>>2];
$72 = $71 + $69;
$73 = $72 * 0.69999998807907104;
$74 = $73 * 0.5;
$75 = HEAP32[$3>>2]|0;
$76 = (($16|0) / 2)&-1;
$77 = (($75) + ($76))|0;
$78 = (+($77|0));
$79 = HEAP32[$4>>2]|0;
$80 = (($79) + ($76))|0;
$81 = (+($80|0));
_IsometricDrawer_DrawBatch($68,$74,$78,$81);
}
_IsometricDrawer_EndBatch();
$82 = ((($0)) + 1668|0);
$83 = HEAP32[$82>>2]|0;
$84 = ($83|0)==(0);
if ($84) {
STACKTOP = sp;return;
}
_Texture_Render($82);
STACKTOP = sp;return;
}
function _TableWidget_Free($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 68|0);
_Gfx_DeleteVb($1);
$2 = ((($0)) + 1668|0);
_Gfx_DeleteTexture($2);
$3 = ((($0)) + 48|0);
HEAP32[$3>>2] = -1000;
return;
}
function _TableWidget_Reposition($0) {
$0 = $0|0;
var $1 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+_Game_GetInventoryScale());
$2 = (+_Math_SqrtF($1));
$3 = $2 * 50.0;
$4 = (~~(($3)));
$5 = ((($0)) + 60|0);
HEAP32[$5>>2] = $4;
$6 = (+_Math_SqrtF($1));
$7 = $6 * 25.0;
$8 = ((($0)) + 64|0);
HEAPF32[$8>>2] = $7;
$9 = ((($0)) + 44|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)<(8);
$spec$select = $11 ? $10 : 8;
$12 = HEAP32[$5>>2]|0;
$13 = ((($0)) + 40|0);
$14 = HEAP32[$13>>2]|0;
$15 = Math_imul($14, $12)|0;
$16 = ((($0)) + 12|0);
HEAP32[$16>>2] = $15;
$17 = Math_imul($spec$select, $12)|0;
$18 = ((($0)) + 16|0);
HEAP32[$18>>2] = $17;
_Widget_CalcPosition($0);
_TableWidget_UpdateDescTexPos($0);
$19 = (_Table_X($0)|0);
$20 = (_Table_Width($0)|0);
$21 = (($20) + ($19))|0;
$22 = ((($0)) + 1616|0);
HEAP32[$22>>2] = $21;
$23 = (_Table_Y($0)|0);
$24 = ((($0)) + 1620|0);
HEAP32[$24>>2] = $23;
$25 = (_Table_Height($0)|0);
$26 = ((($0)) + 1628|0);
HEAP32[$26>>2] = $25;
$27 = HEAP32[$9>>2]|0;
$28 = ((($0)) + 1648|0);
HEAP32[$28>>2] = $27;
return;
}
function _TableWidget_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 56|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(-1);
L1: do {
if ($4) {
$$0 = 0;
} else {
switch ($1|0) {
case 46: case 105: {
_TableWidget_ScrollRelative($0,-1);
$$0 = 1;
break L1;
break;
}
case 47: case 107: {
_TableWidget_ScrollRelative($0,1);
$$0 = 1;
break L1;
break;
}
case 44: case 109: {
$5 = ((($0)) + 40|0);
$6 = HEAP32[$5>>2]|0;
$7 = (0 - ($6))|0;
_TableWidget_ScrollRelative($0,$7);
$$0 = 1;
break L1;
break;
}
case 45: case 103: {
$8 = ((($0)) + 40|0);
$9 = HEAP32[$8>>2]|0;
_TableWidget_ScrollRelative($0,$9);
$$0 = 1;
break L1;
break;
}
default: {
$$0 = 0;
break L1;
}
}
}
} while(0);
return ($$0|0);
}
function _TableWidget_MouseScroll($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_Table_X($0)|0);
$3 = (_Table_Y($0)|0);
$4 = (_Table_Width($0)|0);
$5 = ((($0)) + 1612|0);
$6 = ((($0)) + 1624|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($7) + ($4))|0;
$9 = (_Table_Height($0)|0);
$10 = (_Gui_ContainsPointers($2,$3,$8,$9)|0);
$11 = $10&255;
$12 = ($11<<24>>24)==(0);
if ($12) {
$$0 = 0;
return ($$0|0);
}
$13 = ((($0)) + 1652|0);
$14 = HEAP32[$13>>2]|0;
$15 = HEAP32[$5>>2]|0;
$16 = ((($15)) + 20|0);
$17 = HEAP32[$16>>2]|0;
(FUNCTION_TABLE_iid[$17 & 15]($5,$1)|0);
$18 = ((($0)) + 56|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($19|0)==(-1);
if ($20) {
$$0 = 1;
return ($$0|0);
}
$21 = HEAP32[$13>>2]|0;
$22 = (($21) - ($14))|0;
$23 = ((($0)) + 40|0);
$24 = HEAP32[$23>>2]|0;
$25 = Math_imul($22, $24)|0;
$26 = (($25) + ($19))|0;
$27 = ((($0)) + 36|0);
$28 = HEAP32[$27>>2]|0;
$29 = ($26|0)<($28|0);
$spec$store$select = $29 ? $26 : -1;
HEAP32[$18>>2] = $spec$store$select;
_TableWidget_RecreateDescTex($0);
$$0 = 1;
return ($$0|0);
}
function _TableWidget_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 72|0);
HEAP8[$4>>0] = 0;
$5 = ((($0)) + 1612|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 24|0);
$8 = HEAP32[$7>>2]|0;
$9 = (FUNCTION_TABLE_iiiii[$8 & 63]($5,$1,$2,$3)|0);
$10 = ($9|0)==(0);
if (!($10)) {
$$0 = 1;
return ($$0|0);
}
$11 = ((($0)) + 56|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==(-1);
if (!($13)) {
$14 = ((($0)) + 74|0);
$15 = (($14) + ($12<<1)|0);
$16 = HEAP16[$15>>1]|0;
$17 = ($16<<16>>16)==(0);
if (!($17)) {
_Inventory_SetSelectedBlock($16);
HEAP8[$4>>0] = 1;
$$0 = 1;
return ($$0|0);
}
}
$18 = (_Table_X($0)|0);
$19 = (_Table_Y($0)|0);
$20 = (_Table_Width($0)|0);
$21 = (_Table_Height($0)|0);
$22 = (_Gui_Contains($18,$19,$20,$21,$2,$3)|0);
$23 = ($22|0)!=(0);
$$ = $23&1;
$$0 = $$;
return ($$0|0);
}
function _TableWidget_PointerUp($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 1612|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = (FUNCTION_TABLE_iiiii[$7 & 63]($4,$1,$2,$3)|0);
return ($8|0);
}
function _TableWidget_PointerMove($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$043 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp + 4|0;
$5 = sp;
$6 = ((($0)) + 1612|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($7)) + 32|0);
$9 = HEAP32[$8>>2]|0;
$10 = (FUNCTION_TABLE_iiiii[$9 & 63]($6,$1,$2,$3)|0);
$11 = ($10|0)==(0);
if (!($11)) {
STACKTOP = sp;return 1;
}
$12 = ((($0)) + 1696|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)==($2|0);
if ($14) {
$15 = ((($0)) + 1700|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)==($3|0);
if ($17) {
STACKTOP = sp;return 1;
}
}
HEAP32[$12>>2] = $2;
$18 = ((($0)) + 1700|0);
HEAP32[$18>>2] = $3;
$19 = ((($0)) + 56|0);
HEAP32[$19>>2] = -1;
$20 = ((($0)) + 60|0);
$21 = HEAP32[$20>>2]|0;
$22 = $21 << 3;
$23 = ((($0)) + 4|0);
$24 = HEAP32[$23>>2]|0;
$25 = ((($0)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = (($26) + 3)|0;
$28 = ((($0)) + 12|0);
$29 = HEAP32[$28>>2]|0;
$30 = (($22) + -6)|0;
$31 = (_Gui_Contains($24,$27,$29,$30,$2,$3)|0);
$32 = ($31|0)==(0);
L8: do {
if (!($32)) {
$33 = ((($0)) + 36|0);
$34 = HEAP32[$33>>2]|0;
$35 = ($34|0)>(0);
if ($35) {
$$043 = 0;
while(1) {
(_TableWidget_GetCoords($0,$$043,$4,$5)|0);
$36 = HEAP32[$4>>2]|0;
$37 = HEAP32[$5>>2]|0;
$38 = (_Gui_Contains($36,$37,$21,$21,$2,$3)|0);
$39 = ($38|0)==(0);
if (!($39)) {
break;
}
$40 = (($$043) + 1)|0;
$41 = HEAP32[$33>>2]|0;
$42 = ($40|0)<($41|0);
if ($42) {
$$043 = $40;
} else {
break L8;
}
}
HEAP32[$19>>2] = $$043;
}
}
} while(0);
_TableWidget_RecreateDescTex($0);
STACKTOP = sp;return 1;
}
function _TableWidget_GetCoords($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 40|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($1|0) / ($5|0))&-1;
$7 = Math_imul($6, $5)|0;
$8 = (($1) - ($7))|0;
$9 = ((($0)) + 1652|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($6) - ($10))|0;
$12 = ((($0)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($0)) + 60|0);
$15 = HEAP32[$14>>2]|0;
$16 = Math_imul($15, $8)|0;
$17 = (($16) + ($13))|0;
HEAP32[$2>>2] = $17;
$18 = ((($0)) + 8|0);
$19 = HEAP32[$18>>2]|0;
$20 = HEAP32[$14>>2]|0;
$21 = Math_imul($20, $11)|0;
$22 = (($19) + 3)|0;
$23 = (($22) + ($21))|0;
HEAP32[$3>>2] = $23;
$24 = ($11>>>0)<(8);
$25 = $24&1;
return ($25|0);
}
function _Table_X($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = (($2) + -15)|0;
return ($3|0);
}
function _Table_Y($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 8|0);
$2 = HEAP32[$1>>2]|0;
$3 = (($2) + -35)|0;
return ($3|0);
}
function _Table_Width($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 40|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 60|0);
$4 = HEAP32[$3>>2]|0;
$5 = Math_imul($4, $2)|0;
$6 = (($5) + 30)|0;
return ($6|0);
}
function _Table_Height($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 44|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)<(8);
$spec$select = $3 ? $2 : 8;
$4 = ((($0)) + 60|0);
$5 = HEAP32[$4>>2]|0;
$6 = Math_imul($spec$select, $5)|0;
$7 = (($6) + 50)|0;
return ($7|0);
}
function _TableWidget_ScrollRelative($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 56|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($3) + ($1))|0;
$5 = ($4|0)<(0);
$spec$select = $5 ? $3 : $4;
$6 = ((($0)) + 36|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($spec$select|0)<($7|0);
$9 = $8 ? 0 : $1;
$$1 = (($spec$select) - ($9))|0;
HEAP32[$2>>2] = $$1;
$10 = ((($0)) + 40|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($$1|0) / ($11|0))&-1;
$13 = (($3|0) / ($11|0))&-1;
$14 = (($12) - ($13))|0;
$15 = ((($0)) + 1612|0);
$16 = ((($0)) + 1652|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($14) + ($17))|0;
HEAP32[$16>>2] = $18;
_ScrollbarWidget_ClampTopRow($15);
_TableWidget_RecreateDescTex($0);
_TableWidget_MoveCursorToSelected($0);
return;
}
function _TableWidget_MoveCursorToSelected($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 4|0;
$2 = sp;
$3 = ((($0)) + 56|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==(-1);
if ($5) {
STACKTOP = sp;return;
}
(_TableWidget_GetCoords($0,$4,$1,$2)|0);
$6 = ((($0)) + 60|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($7|0) / 2)&-1;
$9 = HEAP32[$1>>2]|0;
$10 = (($9) + ($8))|0;
HEAP32[$1>>2] = $10;
$11 = HEAP32[$2>>2]|0;
$12 = (($11) + ($8))|0;
HEAP32[$2>>2] = $12;
STACKTOP = sp;return;
}
function _TableWidget_SetBlockTo($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$018 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 56|0);
HEAP32[$2>>2] = -1;
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if ($5) {
$6 = HEAP32[$3>>2]|0;
$$018 = 0;
while(1) {
$7 = (((($0)) + 74|0) + ($$018<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = ($8<<16>>16)==($1<<16>>16);
if ($9) {
HEAP32[$2>>2] = $$018;
}
$10 = (($$018) + 1)|0;
$11 = ($10|0)<($6|0);
if ($11) {
$$018 = $10;
} else {
break;
}
}
}
$12 = ($1<<16>>16)==(0);
if ($12) {
HEAP32[$2>>2] = -1;
}
$13 = HEAP32[$2>>2]|0;
$14 = ((($0)) + 40|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($13|0) / ($15|0))&-1;
$17 = ((($0)) + 1612|0);
$18 = ((($0)) + 1652|0);
$19 = (($16) + -7)|0;
HEAP32[$18>>2] = $19;
_ScrollbarWidget_ClampTopRow($17);
_TableWidget_MoveCursorToSelected($0);
_TableWidget_RecreateDescTex($0);
return;
}
function _TableWidget_OnInventoryChanged($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_TableWidget_RecreateBlocks($0);
$1 = ((($0)) + 56|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($2|0)<($4|0);
if (!($5)) {
$6 = (($4) + -1)|0;
HEAP32[$1>>2] = $6;
}
$7 = ((($0)) + 1696|0);
HEAP32[$7>>2] = -1;
$8 = ((($0)) + 1700|0);
HEAP32[$8>>2] = -1;
$9 = HEAP32[$1>>2]|0;
$10 = ((($0)) + 40|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($9|0) / ($11|0))&-1;
$13 = ((($0)) + 1612|0);
$14 = ((($0)) + 1652|0);
HEAP32[$14>>2] = $12;
_ScrollbarWidget_ClampTopRow($13);
_TableWidget_RecreateDescTex($0);
return;
}
function _InputWidget_Clear($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 60|0);
HEAP16[$1>>1] = 0;
$2 = 1384616;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 4)|0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = ((($0)) + 64|0);
$9 = $8;
$10 = $9;
HEAP32[$10>>2] = $4;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $7;
$13 = ((($0)) + 72|0);
$14 = $13;
$15 = $14;
HEAP32[$15>>2] = $4;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $7;
$18 = ((($0)) + 80|0);
$19 = $18;
$20 = $19;
HEAP32[$20>>2] = $4;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = $7;
$23 = ((($0)) + 152|0);
HEAP32[$23>>2] = -1;
$24 = ((($0)) + 104|0);
_Gfx_DeleteTexture($24);
return;
}
function _InputWidget_AppendText($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$01112 = 0, $$013 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($1)) + 4|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
$$01112 = 0;$$013 = 0;
while(1) {
$5 = HEAP32[$1>>2]|0;
$6 = (($5) + ($$01112)|0);
$7 = HEAP8[$6>>0]|0;
$8 = (_InputWidget_TryAppendChar($0,$7)|0);
$9 = ($8<<24>>24)!=(0);
$10 = $9&1;
$spec$select = (($$013) + ($10))|0;
$11 = (($$01112) + 1)|0;
$12 = HEAP16[$2>>1]|0;
$13 = $12&65535;
$14 = ($11>>>0)<($13>>>0);
if ($14) {
$$01112 = $11;$$013 = $spec$select;
} else {
break;
}
}
$phitmp = ($spec$select|0)==(0);
if ($phitmp) {
return;
}
_InputWidget_UpdateText($0);
return;
}
function _InputWidget_TryAppendChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = (FUNCTION_TABLE_i[$3 & 3]()|0);
$5 = $4 << 6;
$6 = ((($0)) + 60|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
$9 = ($5|0)>($8|0);
if (!($9)) {
$$0 = 0;
return ($$0|0);
}
$10 = ((($0)) + 52|0);
$11 = HEAP32[$10>>2]|0;
$12 = (FUNCTION_TABLE_iii[$11 & 127]($0,$1)|0);
$13 = ($12<<24>>24)==(0);
if ($13) {
$$0 = 0;
return ($$0|0);
}
_InputWidget_AppendChar($0,$1);
$$0 = 1;
return ($$0|0);
}
function _InputWidget_UpdateText($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 40|0);
$2 = HEAP32[$1>>2]|0;
$3 = (FUNCTION_TABLE_i[$2 & 3]()|0);
$4 = ($3|0)>(1);
if ($4) {
$5 = ((($0)) + 56|0);
$6 = ((($0)) + 64|0);
_WordWrap_Do($5,$6,$3,64);
} else {
$7 = ((($0)) + 64|0);
$8 = ((($0)) + 56|0);
$9 = $8;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = $7;
$16 = $15;
HEAP32[$16>>2] = $11;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $14;
}
$19 = ((($0)) + 104|0);
_Gfx_DeleteTexture($19);
_InputWidget_CalculateLineSizes($0);
$20 = ((($0)) + 44|0);
$21 = HEAP32[$20>>2]|0;
FUNCTION_TABLE_vi[$21 & 511]($0);
_InputWidget_UpdateCaret($0);
$22 = ((($0)) + 56|0);
_Window_SetKeyboardText($22);
return;
}
function _InputWidget_CalculateLineSizes($0) {
$0 = $0|0;
var $$113 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$1 = sp + 80|0;
$2 = sp;
$3 = sp + 64|0;
$4 = ((($0)) + 92|0);
$5 = $4;
$6 = $5;
HEAP32[$6>>2] = 0;
$7 = (($5) + 4)|0;
$8 = $7;
HEAP32[$8>>2] = 0;
$9 = ((($0)) + 132|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($0)) + 88|0);
HEAP32[$11>>2] = $10;
$12 = ((($0)) + 36|0);
$13 = HEAP32[$12>>2]|0;
_DrawTextArgs_MakeEmpty($3,$13,1);
HEAP32[$1>>2] = $2;
$14 = ((($1)) + 4|0);
HEAP16[$14>>1] = 0;
$15 = ((($1)) + 6|0);
HEAP16[$15>>1] = 64;
$16 = ((($0)) + 40|0);
$17 = HEAP32[$16>>2]|0;
$18 = (FUNCTION_TABLE_i[$17 & 3]()|0);
$19 = ($18|0)>(0);
if (!($19)) {
STACKTOP = sp;return;
}
$$113 = 0;
while(1) {
HEAP16[$14>>1] = 0;
_InputWidget_FormatLine($0,$$113,$1);
$20 = $1;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = (($20) + 4)|0;
$24 = $23;
$25 = HEAP32[$24>>2]|0;
$26 = $3;
$27 = $26;
HEAP32[$27>>2] = $22;
$28 = (($26) + 4)|0;
$29 = $28;
HEAP32[$29>>2] = $25;
$30 = (_Drawer2D_TextWidth($3)|0);
$31 = (((($0)) + 88|0) + ($$113<<2)|0);
$32 = HEAP32[$31>>2]|0;
$33 = (($32) + ($30))|0;
HEAP32[$31>>2] = $33;
$34 = (($$113) + 1)|0;
$35 = HEAP32[$16>>2]|0;
$36 = (FUNCTION_TABLE_i[$35 & 3]()|0);
$37 = ($34|0)<($36|0);
if ($37) {
$$113 = $34;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _InputWidget_UpdateCaret($0) {
$0 = $0|0;
var $$0 = 0, $$1 = 0, $$sink = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0;
$1 = sp + 96|0;
$2 = sp;
$3 = sp + 80|0;
$4 = sp + 72|0;
$5 = sp + 64|0;
$6 = ((($0)) + 164|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(0);
if ($8) {
$9 = ((($0)) + 36|0);
$10 = HEAP32[$9>>2]|0;
_DrawTextArgs_Make($3,18500,$10,1);
_Drawer2D_MakeTextTexture($6,$3);
$11 = ((($0)) + 172|0);
$12 = HEAP16[$11>>1]|0;
$13 = $12&65535;
$14 = ($13*3)|0;
$15 = (2)?($14 >>> 2):($14);
$16 = ((($0)) + 140|0);
HEAP32[$16>>2] = $15;
}
$17 = ((($0)) + 40|0);
$18 = HEAP32[$17>>2]|0;
$19 = (FUNCTION_TABLE_i[$18 & 3]()|0);
$20 = $19 << 6;
$21 = ((($0)) + 152|0);
$22 = HEAP32[$21>>2]|0;
$23 = ($22|0)<($20|0);
if (!($23)) {
HEAP32[$21>>2] = -1;
}
$24 = HEAP32[$21>>2]|0;
$25 = ((($0)) + 64|0);
$26 = HEAP32[$17>>2]|0;
$27 = (FUNCTION_TABLE_i[$26 & 3]()|0);
$28 = ((($0)) + 144|0);
$29 = ((($0)) + 148|0);
_WordWrap_GetCoords($24,$25,$27,$28,$29);
$30 = ((($0)) + 36|0);
$31 = HEAP32[$30>>2]|0;
_DrawTextArgs_MakeEmpty($3,$31,0);
$32 = ((($0)) + 192|0);
HEAPF64[$32>>3] = 0.0;
$33 = ((($0)) + 140|0);
$34 = HEAP32[$33>>2]|0;
$35 = $34&65535;
$36 = ((($0)) + 172|0);
HEAP16[$36>>1] = $35;
$37 = HEAP32[$28>>2]|0;
$38 = ($37|0)==(64);
if ($38) {
$39 = HEAP32[$29>>2]|0;
$40 = (((($0)) + 88|0) + ($39<<2)|0);
$41 = HEAP32[$40>>2]|0;
$$1 = $41;
} else {
HEAP32[$1>>2] = $2;
$42 = ((($1)) + 4|0);
HEAP16[$42>>1] = 0;
$43 = ((($1)) + 6|0);
HEAP16[$43>>1] = 64;
$44 = HEAP32[$29>>2]|0;
_InputWidget_FormatLine($0,$44,$1);
$45 = HEAP32[$28>>2]|0;
_String_UNSAFE_Substring($4,$1,0,$45);
$46 = $4;
$47 = $46;
$48 = HEAP32[$47>>2]|0;
$49 = (($46) + 4)|0;
$50 = $49;
$51 = HEAP32[$50>>2]|0;
$52 = $3;
$53 = $52;
HEAP32[$53>>2] = $48;
$54 = (($52) + 4)|0;
$55 = $54;
HEAP32[$55>>2] = $51;
$56 = (_Drawer2D_TextWidth($3)|0);
$57 = HEAP32[$29>>2]|0;
$58 = ($57|0)==(0);
if ($58) {
$59 = ((($0)) + 132|0);
$60 = HEAP32[$59>>2]|0;
$61 = (($60) + ($56))|0;
$$0 = $61;
} else {
$$0 = $56;
}
$62 = HEAP32[$28>>2]|0;
$63 = HEAP16[$42>>1]|0;
$64 = $63&65535;
$65 = ($62|0)<($64|0);
if ($65) {
_String_UNSAFE_Substring($5,$1,$62,1);
$66 = $5;
$67 = $66;
$68 = HEAP32[$67>>2]|0;
$69 = (($66) + 4)|0;
$70 = $69;
$71 = HEAP32[$70>>2]|0;
$72 = $3;
$73 = $72;
HEAP32[$73>>2] = $68;
$74 = (($72) + 4)|0;
$75 = $74;
HEAP32[$75>>2] = $71;
$76 = ((($3)) + 12|0);
HEAP8[$76>>0] = 1;
$77 = (_Drawer2D_TextWidth($3)|0);
$78 = $77&65535;
HEAP16[$36>>1] = $78;
$$1 = $$0;
} else {
$$1 = $$0;
}
}
$79 = ((($0)) + 4|0);
$80 = HEAP32[$79>>2]|0;
$81 = ((($0)) + 137|0);
$82 = HEAP8[$81>>0]|0;
$83 = $82&255;
$84 = (($80) + ($$1))|0;
$85 = (($84) + ($83))|0;
$86 = $85&65535;
$87 = ((($0)) + 168|0);
HEAP16[$87>>1] = $86;
$88 = ((($0)) + 110|0);
$89 = HEAP16[$88>>1]|0;
$90 = $89&65535;
$91 = ((($0)) + 156|0);
$92 = HEAP32[$91>>2]|0;
$93 = (($92) + ($90))|0;
$94 = HEAP32[$29>>2]|0;
$95 = ((($0)) + 100|0);
$96 = HEAP32[$95>>2]|0;
$97 = Math_imul($96, $94)|0;
$98 = (($93) + ($97))|0;
$99 = $98&65535;
$100 = ((($0)) + 170|0);
HEAP16[$100>>1] = $99;
$101 = HEAP32[$28>>2]|0;
$102 = (_InputWidget_GetLastCol($0,$101,$94)|0);
$103 = ($102<<24>>24)==(0);
if ($103) {
$107 = (_PackedCol_Scale(-1,0.80000001192092896)|0);
$$sink = $107;
$108 = ((($0)) + 160|0);
HEAP32[$108>>2] = $$sink;
STACKTOP = sp;return;
} else {
$104 = $102&255;
$105 = (154320 + ($104<<2)|0);
$106 = HEAP32[$105>>2]|0;
$$sink = $106;
$108 = ((($0)) + 160|0);
HEAP32[$108>>2] = $$sink;
STACKTOP = sp;return;
}
}
function _InputWidget_FormatLine($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $$01011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = (((($0)) + 64|0) + ($1<<3)|0);
$5 = $4;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = $3;
$12 = $11;
HEAP32[$12>>2] = $7;
$13 = (($11) + 4)|0;
$14 = $13;
HEAP32[$14>>2] = $10;
$15 = ((($0)) + 136|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(0);
if ($17) {
_String_AppendString($2,$3);
STACKTOP = sp;return;
}
$18 = ((($3)) + 4|0);
$19 = HEAP16[$18>>1]|0;
$20 = ($19<<16>>16)==(0);
if ($20) {
STACKTOP = sp;return;
}
$$01011 = 0;
while(1) {
$21 = HEAP32[$3>>2]|0;
$22 = (($21) + ($$01011)|0);
$23 = HEAP8[$22>>0]|0;
$24 = ($23<<24>>24)==(37);
if ($24) {
$25 = (($$01011) + 1)|0;
$26 = (_Drawer2D_ValidColCodeAt($3,$25)|0);
$27 = ($26<<24>>24)==(0);
$spec$select = $27 ? $23 : 38;
$$0 = $spec$select;
} else {
$$0 = $23;
}
_String_Append($2,$$0);
$28 = (($$01011) + 1)|0;
$29 = HEAP16[$18>>1]|0;
$30 = $29&65535;
$31 = ($28>>>0)<($30>>>0);
if ($31) {
$$01011 = $28;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _InputWidget_GetLastCol($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $$01013 = 0, $$01112 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0;
$3 = sp + 64|0;
$4 = sp;
HEAP32[$3>>2] = $4;
$5 = ((($3)) + 4|0);
HEAP16[$5>>1] = 0;
$6 = ((($3)) + 6|0);
HEAP16[$6>>1] = 64;
$7 = ($2|0)>(-1);
if (!($7)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$$01013 = $2;$$01112 = $1;
while(1) {
HEAP16[$5>>1] = 0;
_InputWidget_FormatLine($0,$$01013,$3);
$8 = (_Drawer2D_LastCol($3,$$01112)|0);
$9 = ($8<<24>>24)==(0);
if (!($9)) {
$$0 = $8;
label = 7;
break;
}
$10 = ($$01013|0)>(0);
if ($10) {
$11 = (($$01013) + -1)|0;
$12 = (((((($0)) + 64|0) + ($11<<3)|0)) + 4|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13&65535;
$$1 = $14;
} else {
$$1 = $$01112;
}
$15 = (($$01013) + -1)|0;
$16 = ($$01013|0)>(0);
if ($16) {
$$01013 = $15;$$01112 = $$1;
} else {
$$0 = 0;
label = 7;
break;
}
}
if ((label|0) == 7) {
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _InputWidget_AppendChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 152|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(-1);
$5 = ((($0)) + 56|0);
if ($4) {
$6 = ((($0)) + 60|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
_String_InsertAt($5,$8,$1);
return;
} else {
_String_InsertAt($5,$3,$1);
$9 = HEAP32[$2>>2]|0;
$10 = (($9) + 1)|0;
$11 = ((($0)) + 60|0);
$12 = HEAP16[$11>>1]|0;
$13 = $12&65535;
$14 = ($10|0)<($13|0);
$spec$store$select = $14 ? $10 : -1;
HEAP32[$2>>2] = $spec$store$select;
return;
}
}
function _InputWidget_Append($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (_InputWidget_TryAppendChar($0,$1)|0);
$3 = ($2<<24>>24)==(0);
if ($3) {
return;
}
_InputWidget_UpdateText($0);
return;
}
function _InputWidget_SetText($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
_InputWidget_Clear($0);
_InputWidget_AppendText($0,$1);
$2 = ((($0)) + 60|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if (!($4)) {
return;
}
$5 = ((($0)) + 56|0);
_Window_SetKeyboardText($5);
return;
}
function _MenuInputWidget_Create($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_InputWidget_Reset($0);
HEAP32[$0>>2] = 18508;
$5 = (_Display_ScaleX($1)|0);
$6 = ((($0)) + 200|0);
HEAP32[$6>>2] = $5;
$7 = (_Display_ScaleY($2)|0);
$8 = ((($0)) + 204|0);
HEAP32[$8>>2] = $7;
$9 = ((($0)) + 208|0);
;HEAP32[$9>>2]=HEAP32[$4>>2]|0;HEAP32[$9+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$9+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$9+12>>2]=HEAP32[$4+12>>2]|0;
$10 = ((($0)) + 136|0);
HEAP8[$10>>0] = 0;
$11 = ((($0)) + 137|0);
HEAP8[$11>>0] = 3;
$12 = ((($0)) + 40|0);
HEAP32[$12>>2] = 1;
$13 = ((($0)) + 44|0);
HEAP32[$13>>2] = 399;
$14 = ((($0)) + 48|0);
HEAP32[$14>>2] = 400;
$15 = ((($0)) + 52|0);
HEAP32[$15>>2] = 72;
$16 = ((($0)) + 224|0);
$17 = ((($0)) + 56|0);
HEAP32[$17>>2] = $16;
$18 = ((($0)) + 60|0);
HEAP16[$18>>1] = 0;
$19 = ((($0)) + 62|0);
HEAP16[$19>>1] = 64;
_String_Copy($17,$3);
return;
}
function _InputWidget_Reset($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
$1 = ((($0)) + 152|0);
HEAP32[$1>>2] = -1;
$2 = (_Display_ScaleY(2)|0);
$3 = ((($0)) + 156|0);
HEAP32[$3>>2] = $2;
return;
}
function _MenuInputWidget_GetMaxLines() {
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _MenuInputWidget_RemakeTexture($0) {
$0 = $0|0;
var $$ = 0, $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0;
$1 = sp + 80|0;
$2 = sp;
$3 = sp + 64|0;
$4 = sp + 88|0;
$5 = ((($0)) + 56|0);
$6 = ((($0)) + 36|0);
$7 = HEAP32[$6>>2]|0;
_DrawTextArgs_Make($3,$5,$7,0);
$8 = (_Drawer2D_TextWidth($3)|0);
$9 = ((($0)) + 100|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($0)) + 192|0);
HEAPF64[$11>>3] = 0.0;
HEAP32[$1>>2] = $2;
$12 = ((($1)) + 4|0);
HEAP16[$12>>1] = 0;
$13 = ((($1)) + 6|0);
HEAP16[$13>>1] = 64;
$14 = ((($0)) + 208|0);
$15 = HEAP32[$14>>2]|0;
$16 = HEAP32[$15>>2]|0;
FUNCTION_TABLE_vii[$16 & 127]($14,$1);
$17 = ((($0)) + 200|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($8|0)>($18|0);
$$ = $19 ? $8 : $18;
$20 = ((($0)) + 12|0);
HEAP32[$20>>2] = $$;
$21 = ((($0)) + 204|0);
$22 = HEAP32[$21>>2]|0;
$23 = ($10|0)>($22|0);
$24 = $23 ? $10 : $22;
$25 = ((($0)) + 16|0);
HEAP32[$25>>2] = $24;
_Bitmap_AllocateClearedPow2($4,$$,$24);
$26 = ($10|0)<($22|0);
if ($26) {
$27 = (($24|0) / 2)&-1;
$28 = (($10|0) / 2)&-1;
$29 = (($27) - ($28))|0;
$$0 = $29;
} else {
$$0 = 0;
}
$30 = (($$0) + 2)|0;
$31 = ((($0)) + 156|0);
HEAP32[$31>>2] = $30;
_Drawer2D_Clear($4,-937550306,0,0,$$,$24);
$32 = ((($0)) + 137|0);
$33 = HEAP8[$32>>0]|0;
$34 = $33&255;
_Drawer2D_DrawText($4,$3,$34,$$0);
$35 = $1;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = (($35) + 4)|0;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = $3;
$42 = $41;
HEAP32[$42>>2] = $37;
$43 = (($41) + 4)|0;
$44 = $43;
HEAP32[$44>>2] = $40;
$45 = (_Drawer2D_TextWidth($3)|0);
$46 = (($$) - ($45))|0;
$47 = (($8) + 3)|0;
$48 = ($47|0)<($46|0);
if ($48) {
_Drawer2D_DrawText($4,$3,$46,$$0);
}
$49 = ((($0)) + 104|0);
_Drawer2D_MakeTexture($49,$4,$$,$24);
$50 = HEAP32[$4>>2]|0;
_Mem_Free($50);
$51 = HEAP32[$0>>2]|0;
$52 = ((($51)) + 8|0);
$53 = HEAP32[$52>>2]|0;
FUNCTION_TABLE_vi[$53 & 511]($0);
$54 = ((($0)) + 4|0);
$55 = HEAP32[$54>>2]|0;
$56 = $55&65535;
$57 = ((($0)) + 108|0);
HEAP16[$57>>1] = $56;
$58 = ((($0)) + 8|0);
$59 = HEAP32[$58>>2]|0;
$60 = $59&65535;
$61 = ((($0)) + 110|0);
HEAP16[$61>>1] = $60;
STACKTOP = sp;return;
}
function _InputWidget_OnPressedEnter($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_InputWidget_Clear($0);
$1 = ((($0)) + 100|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 16|0);
HEAP32[$3>>2] = $2;
$4 = HEAP32[$0>>2]|0;
$5 = ((($4)) + 8|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_vi[$6 & 511]($0);
return;
}
function _MenuInputWidget_AllowedChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1<<24>>24)==(38);
if ($2) {
$$0 = 0;
return ($$0|0);
}
$3 = ((($0)) + 208|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($4)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$7 = (FUNCTION_TABLE_iii[$6 & 127]($3,$1)|0);
$8 = ($7<<24>>24)==(0);
if ($8) {
$$0 = 0;
return ($$0|0);
}
$9 = ((($0)) + 40|0);
$10 = HEAP32[$9>>2]|0;
$11 = (FUNCTION_TABLE_i[$10 & 3]()|0);
$12 = $11 << 6;
$13 = ((($0)) + 60|0);
$14 = HEAP16[$13>>1]|0;
$15 = $14&65535;
$16 = ($12|0)==($15|0);
if ($16) {
$$0 = 0;
return ($$0|0);
}
$17 = ((($0)) + 56|0);
_InputWidget_AppendChar($0,$1);
$18 = HEAP32[$3>>2]|0;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = (FUNCTION_TABLE_iii[$20 & 127]($3,$17)|0);
_InputWidget_DeleteChar($0);
$$0 = $21;
return ($$0|0);
}
function _InputWidget_DeleteChar($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
$2 = ((($0)) + 60|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 152|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = $3&65535;
$9 = (($8) + -1)|0;
_String_DeleteAt($1,$9);
return;
}
$10 = ($6|0)>(0);
$11 = (($6) + -1)|0;
if (!($10)) {
return;
}
HEAP32[$5>>2] = $11;
_String_DeleteAt($1,$11);
return;
}
function _MenuInputWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 104|0);
_Texture_Render($2);
_InputWidget_RenderCaret($0,$1);
return;
}
function _InputWidget_Free($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 104|0);
_Gfx_DeleteTexture($1);
$2 = ((($0)) + 164|0);
_Gfx_DeleteTexture($2);
return;
}
function _InputWidget_Reposition($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 8|0);
$4 = HEAP32[$3>>2]|0;
_Widget_CalcPosition($0);
$5 = HEAP32[$1>>2]|0;
$6 = (($5) - ($2))|0;
$7 = ((($0)) + 168|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$10 = (($6) + ($9))|0;
$11 = $10&65535;
HEAP16[$7>>1] = $11;
$12 = HEAP32[$3>>2]|0;
$13 = (($12) - ($4))|0;
$14 = ((($0)) + 170|0);
$15 = HEAP16[$14>>1]|0;
$16 = $15&65535;
$17 = (($13) + ($16))|0;
$18 = $17&65535;
HEAP16[$14>>1] = $18;
$19 = ((($0)) + 108|0);
$20 = HEAP16[$19>>1]|0;
$21 = $20&65535;
$22 = (($6) + ($21))|0;
$23 = $22&65535;
HEAP16[$19>>1] = $23;
$24 = ((($0)) + 110|0);
$25 = HEAP16[$24>>1]|0;
$26 = $25&65535;
$27 = (($13) + ($26))|0;
$28 = $27&65535;
HEAP16[$24>>1] = $28;
return;
}
function _InputWidget_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($1|0) {
case 46: {
_InputWidget_LeftKey($0);
break;
}
case 47: {
_InputWidget_RightKey($0);
break;
}
case 94: {
_InputWidget_BackspaceKey($0);
break;
}
case 59: {
_InputWidget_DeleteKey($0);
break;
}
case 60: {
_InputWidget_HomeKey($0);
break;
}
case 61: {
_InputWidget_EndKey($0);
break;
}
default: {
$2 = (_InputWidget_OtherKey($0,$1)|0);
$3 = ($2<<24>>24)==(0);
if ($3) {
$$0 = 0;
return ($$0|0);
}
}
}
$$0 = 1;
return ($$0|0);
}
function _InputWidget_KeyUp($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _InputWidget_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$046 = 0, $$04757 = 0, $$04856 = 0, $$04954 = 0, $$1 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0;
$4 = sp + 96|0;
$5 = sp;
$6 = sp + 80|0;
$7 = sp + 72|0;
$8 = sp + 64|0;
$9 = ((($0)) + 108|0);
$10 = HEAP16[$9>>1]|0;
$11 = $10 << 16 >> 16;
$12 = (($2) - ($11))|0;
$13 = ((($0)) + 110|0);
$14 = HEAP16[$13>>1]|0;
$15 = $14 << 16 >> 16;
$16 = (($3) - ($15))|0;
$17 = ((($0)) + 36|0);
$18 = HEAP32[$17>>2]|0;
_DrawTextArgs_MakeEmpty($6,$18,1);
$19 = ((($0)) + 100|0);
$20 = HEAP32[$19>>2]|0;
HEAP32[$4>>2] = $5;
$21 = ((($4)) + 4|0);
HEAP16[$21>>1] = 0;
$22 = ((($4)) + 6|0);
HEAP16[$22>>1] = 64;
$23 = ((($0)) + 40|0);
$24 = HEAP32[$23>>2]|0;
$25 = (FUNCTION_TABLE_i[$24 & 3]()|0);
$26 = ($25|0)>(0);
L1: do {
if ($26) {
$27 = ((($0)) + 132|0);
$$04757 = 0;$$04856 = 0;
L3: while(1) {
HEAP16[$21>>1] = 0;
_InputWidget_FormatLine($0,$$04856,$4);
$28 = HEAP16[$21>>1]|0;
$29 = ($28<<16>>16)==(0);
if ($29) {
$$1 = $$04757;
} else {
$30 = HEAP16[$21>>1]|0;
$31 = ($30<<16>>16)==(0);
if ($31) {
$$lcssa = 0;
} else {
$32 = ($$04856|0)==(0);
$33 = Math_imul($$04856, $20)|0;
$$04954 = 0;
while(1) {
_String_UNSAFE_Substring($7,$4,0,$$04954);
$34 = $7;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = $6;
$41 = $40;
HEAP32[$41>>2] = $36;
$42 = (($40) + 4)|0;
$43 = $42;
HEAP32[$43>>2] = $39;
$44 = (_Drawer2D_TextWidth($6)|0);
if ($32) {
$45 = HEAP32[$27>>2]|0;
$46 = (($45) + ($44))|0;
$$046 = $46;
} else {
$$046 = $44;
}
_String_UNSAFE_Substring($8,$4,$$04954,1);
$47 = $8;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = (($47) + 4)|0;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = $6;
$54 = $53;
HEAP32[$54>>2] = $49;
$55 = (($53) + 4)|0;
$56 = $55;
HEAP32[$56>>2] = $52;
$57 = (_Drawer2D_TextWidth($6)|0);
$58 = (_Gui_Contains($$046,$33,$57,$20,$12,$16)|0);
$59 = ($58|0)==(0);
if (!($59)) {
break L3;
}
$62 = (($$04954) + 1)|0;
$63 = HEAP16[$21>>1]|0;
$64 = $63&65535;
$65 = ($62>>>0)<($64>>>0);
if ($65) {
$$04954 = $62;
} else {
break;
}
}
$66 = $63&65535;
$$lcssa = $66;
}
$67 = (($$lcssa) + ($$04757))|0;
$$1 = $67;
}
$68 = (($$04856) + 1)|0;
$69 = HEAP32[$23>>2]|0;
$70 = (FUNCTION_TABLE_i[$69 & 3]()|0);
$71 = ($68|0)<($70|0);
if ($71) {
$$04757 = $$1;$$04856 = $68;
} else {
break L1;
}
}
$60 = (($$04954) + ($$04757))|0;
$61 = ((($0)) + 152|0);
HEAP32[$61>>2] = $60;
_InputWidget_UpdateCaret($0);
STACKTOP = sp;return 1;
}
} while(0);
$72 = ((($0)) + 152|0);
HEAP32[$72>>2] = -1;
_InputWidget_UpdateCaret($0);
STACKTOP = sp;return 1;
}
function _InputWidget_LeftKey($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(379622)>>0]|0;
$2 = HEAP8[(379623)>>0]|0;
$3 = $2 | $1;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
$5 = ((($0)) + 152|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = ((($0)) + 60|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = (($10) + -1)|0;
HEAP32[$5>>2] = $11;
}
$12 = ((($0)) + 56|0);
$13 = HEAP32[$5>>2]|0;
$14 = (_WordWrap_GetBackLength($12,$13)|0);
$15 = HEAP32[$5>>2]|0;
$16 = (($15) - ($14))|0;
HEAP32[$5>>2] = $16;
_InputWidget_UpdateCaret($0);
return;
}
$17 = ((($0)) + 60|0);
$18 = HEAP16[$17>>1]|0;
$19 = $18&65535;
$20 = ($18<<16>>16)==(0);
if ($20) {
return;
}
$21 = ((($0)) + 152|0);
$22 = HEAP32[$21>>2]|0;
$23 = ($22|0)==(-1);
if ($23) {
HEAP32[$21>>2] = $19;
}
$24 = HEAP32[$21>>2]|0;
$25 = (($24) + -1)|0;
$26 = ($24|0)<(1);
$spec$select = $26 ? 0 : $25;
HEAP32[$21>>2] = $spec$select;
_InputWidget_UpdateCaret($0);
return;
}
function _InputWidget_RightKey($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, $spec$store$select15 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(379622)>>0]|0;
$2 = HEAP8[(379623)>>0]|0;
$3 = $2 | $1;
$4 = ($3<<24>>24)==(0);
if (!($4)) {
$5 = ((($0)) + 56|0);
$6 = ((($0)) + 152|0);
$7 = HEAP32[$6>>2]|0;
$8 = (_WordWrap_GetForwardLength($5,$7)|0);
$9 = HEAP32[$6>>2]|0;
$10 = (($9) + ($8))|0;
$11 = ((($0)) + 60|0);
$12 = HEAP16[$11>>1]|0;
$13 = $12&65535;
$14 = ($10|0)<($13|0);
$spec$store$select = $14 ? $10 : -1;
HEAP32[$6>>2] = $spec$store$select;
_InputWidget_UpdateCaret($0);
return;
}
$15 = ((($0)) + 60|0);
$16 = HEAP16[$15>>1]|0;
$17 = ($16<<16>>16)==(0);
if ($17) {
return;
}
$18 = ((($0)) + 152|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($19|0)==(-1);
$21 = (($19) + 1)|0;
if ($20) {
return;
}
$22 = $16&65535;
$23 = ($21|0)<($22|0);
$spec$store$select15 = $23 ? $21 : -1;
HEAP32[$18>>2] = $spec$store$select15;
_InputWidget_UpdateCaret($0);
return;
}
function _InputWidget_BackspaceKey($0) {
$0 = $0|0;
var $$035 = 0, $$lcssa = 0, $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $exitcond = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[(379622)>>0]|0;
$2 = HEAP8[(379623)>>0]|0;
$3 = $2 | $1;
$4 = ($3<<24>>24)==(0);
if ($4) {
$34 = ((($0)) + 60|0);
$35 = HEAP16[$34>>1]|0;
$36 = ($35<<16>>16)==(0);
if ($36) {
return;
}
$37 = ((($0)) + 152|0);
$38 = HEAP32[$37>>2]|0;
$39 = ($38|0)==(0);
if ($39) {
return;
}
_InputWidget_DeleteChar($0);
_InputWidget_UpdateText($0);
return;
}
$5 = ((($0)) + 152|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = ((($0)) + 60|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = (($10) + -1)|0;
HEAP32[$5>>2] = $11;
}
$12 = ((($0)) + 56|0);
$13 = HEAP32[$5>>2]|0;
$14 = (_WordWrap_GetBackLength($12,$13)|0);
$15 = ($14|0)==(0);
if ($15) {
return;
}
$16 = HEAP32[$5>>2]|0;
$17 = (($16) - ($14))|0;
$18 = ($17|0)>(0);
$spec$select = $18 ? $17 : 0;
HEAP32[$5>>2] = $spec$select;
$19 = ($14|0)<(0);
if ($19) {
$$lcssa = $spec$select;
} else {
$$035 = 0;$20 = $spec$select;
while(1) {
_String_DeleteAt($12,$20);
$21 = (($$035) + 1)|0;
$22 = HEAP32[$5>>2]|0;
$exitcond = ($$035|0)==($14|0);
if ($exitcond) {
$$lcssa = $22;
break;
} else {
$$035 = $21;$20 = $22;
}
}
}
$23 = ((($0)) + 60|0);
$24 = HEAP16[$23>>1]|0;
$25 = $24&65535;
$26 = ($$lcssa|0)<($25|0);
if ($26) {
$$pr = HEAP32[$5>>2]|0;
$27 = ($$pr|0)==(-1);
if ($27) {
label = 11;
} else {
$29 = ($$pr|0)>(-1);
if ($29) {
$30 = HEAP32[$12>>2]|0;
$31 = (($30) + ($$pr)|0);
$32 = HEAP8[$31>>0]|0;
$33 = ($32<<24>>24)==(32);
if (!($33)) {
_String_InsertAt($12,$$pr,32);
}
}
}
} else {
HEAP32[$5>>2] = -1;
label = 11;
}
if ((label|0) == 11) {
$28 = ($24<<16>>16)==(0);
if (!($28)) {
_String_InsertAt($12,$25,32);
}
}
_InputWidget_UpdateText($0);
return;
}
function _InputWidget_DeleteKey($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
$2 = ((($0)) + 60|0);
$3 = HEAP16[$2>>1]|0;
$4 = ($3<<16>>16)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 152|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(-1);
if ($7) {
return;
}
_String_DeleteAt($1,$6);
$8 = HEAP32[$5>>2]|0;
$9 = HEAP16[$2>>1]|0;
$10 = $9&65535;
$11 = ($8|0)<($10|0);
if (!($11)) {
HEAP32[$5>>2] = -1;
}
_InputWidget_UpdateText($0);
return;
}
function _InputWidget_HomeKey($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 60|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if ($3) {
return;
}
$4 = ((($0)) + 152|0);
HEAP32[$4>>2] = 0;
_InputWidget_UpdateCaret($0);
return;
}
function _InputWidget_EndKey($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 152|0);
HEAP32[$1>>2] = -1;
_InputWidget_UpdateCaret($0);
return;
}
function _InputWidget_OtherKey($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = (FUNCTION_TABLE_i[$3 & 3]()|0);
$5 = $4 << 6;
$6 = HEAP8[(379622)>>0]|0;
$7 = HEAP8[(379623)>>0]|0;
$8 = $7 | $6;
$9 = ($8<<24>>24)==(0);
if ($9) {
$$0 = 0;
return ($$0|0);
}
switch ($1|0) {
case 86: {
$10 = ((($0)) + 60|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
$13 = ($5|0)>($12|0);
if (!($13)) {
$$0 = 0;
return ($$0|0);
}
_Clipboard_RequestText(117,$0);
$$0 = 1;
return ($$0|0);
break;
}
case 67: {
$14 = ((($0)) + 60|0);
$15 = HEAP16[$14>>1]|0;
$16 = ($15<<16>>16)==(0);
if ($16) {
$$0 = 1;
return ($$0|0);
}
$17 = ((($0)) + 56|0);
_Clipboard_SetText($17);
$$0 = 1;
return ($$0|0);
break;
}
default: {
$$0 = 0;
return ($$0|0);
}
}
return (0)|0;
}
function _InputWidget_CopyFromClipboard($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
_InputWidget_AppendText($1,$0);
return;
}
function _InputWidget_RenderCaret($0,$1) {
$0 = $0|0;
$1 = +$1;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 138|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
return;
}
$5 = ((($0)) + 192|0);
$6 = +HEAPF64[$5>>3];
$7 = $6 + $1;
HEAPF64[$5>>3] = $7;
$8 = $7;
$9 = (+_Math_Mod1($8));
$10 = $9 < 0.5;
if (!($10)) {
return;
}
$11 = ((($0)) + 164|0);
$12 = ((($0)) + 160|0);
$13 = HEAP32[$12>>2]|0;
_Texture_RenderShaded($11,$13);
return;
}
function _MenuInputWidget_SetFont($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 36|0);
HEAP32[$2>>2] = $1;
$3 = (_Drawer2D_FontHeight($1,0)|0);
$4 = ((($0)) + 100|0);
HEAP32[$4>>2] = $3;
_InputWidget_UpdateText($0);
return;
}
function _ChatInputWidget_Create($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
_InputWidget_Reset($0);
$1 = HEAP32[(1235884)>>2]|0;
$2 = ((($0)) + 200|0);
HEAP32[$2>>2] = $1;
HEAP32[$0>>2] = 18552;
$3 = HEAP8[1408229]|0;
$4 = ($3<<24>>24)==(0);
$5 = $4&1;
$6 = ((($0)) + 136|0);
HEAP8[$6>>0] = $5;
$7 = ((($0)) + 138|0);
HEAP8[$7>>0] = 1;
$8 = ((($0)) + 137|0);
HEAP8[$8>>0] = 5;
$9 = ((($0)) + 40|0);
HEAP32[$9>>2] = 2;
$10 = ((($0)) + 44|0);
HEAP32[$10>>2] = 401;
$11 = ((($0)) + 48|0);
HEAP32[$11>>2] = 402;
$12 = ((($0)) + 52|0);
HEAP32[$12>>2] = 73;
$13 = ((($0)) + 212|0);
$14 = ((($0)) + 56|0);
HEAP32[$14>>2] = $13;
$15 = ((($0)) + 60|0);
HEAP16[$15>>1] = 0;
$16 = ((($0)) + 62|0);
HEAP16[$16>>1] = 192;
$17 = ((($0)) + 404|0);
$18 = ((($0)) + 204|0);
HEAP32[$18>>2] = $17;
$19 = ((($0)) + 208|0);
HEAP16[$19>>1] = 0;
$20 = ((($0)) + 210|0);
HEAP16[$20>>1] = 192;
return;
}
function _ChatInputWidget_GetMaxLines() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408229]|0;
$1 = ($0<<24>>24)==(0);
$2 = HEAP8[(1384584)>>0]|0;
$3 = ($2<<24>>24)!=(0);
$4 = $1 & $3;
$5 = $4 ? 3 : 1;
return ($5|0);
}
function _ChatInputWidget_RemakeTexture($0) {
$0 = $0|0;
var $$062$ = 0, $$062$lcssa = 0, $$06271 = 0, $$06370 = 0, $$065$lcssa = 0, $$065$lcssa76 = 0, $$065$lcssa77 = 0, $$06569 = 0, $$1 = 0, $$166 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0;
var $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0;
var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0;
var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0;
$1 = sp + 88|0;
$2 = sp;
$3 = sp + 72|0;
$4 = sp + 96|0;
$5 = ((($0)) + 64|0);
$6 = ((($0)) + 40|0);
$7 = HEAP32[$6>>2]|0;
$8 = (FUNCTION_TABLE_i[$7 & 3]()|0);
$9 = ($8|0)>(0);
if ($9) {
$10 = ((($0)) + 100|0);
$11 = ((($0)) + 88|0);
$$06271 = 0;$$06370 = 0;$$06569 = 0;
while(1) {
$12 = (((($5) + ($$06370<<3)|0)) + 4|0);
$13 = HEAP16[$12>>1]|0;
$14 = ($13<<16>>16)==(0);
if ($14) {
$$062$lcssa = $$06271;$$065$lcssa = $$06569;
break;
}
$15 = HEAP32[$10>>2]|0;
$16 = (($15) + ($$06569))|0;
$17 = (($11) + ($$06370<<2)|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($$06271|0)>($18|0);
$$062$ = $19 ? $$06271 : $18;
$20 = (($$06370) + 1)|0;
$21 = HEAP32[$6>>2]|0;
$22 = (FUNCTION_TABLE_i[$21 & 3]()|0);
$23 = ($20|0)<($22|0);
if ($23) {
$$06271 = $$062$;$$06370 = $20;$$06569 = $16;
} else {
$$062$lcssa = $$062$;$$065$lcssa = $16;
break;
}
}
$24 = ($$062$lcssa|0)==(0);
if ($24) {
$$065$lcssa77 = $$065$lcssa;
label = 6;
} else {
$$065$lcssa76 = $$065$lcssa;$$1 = $$062$lcssa;
}
} else {
$$065$lcssa77 = 0;
label = 6;
}
if ((label|0) == 6) {
$25 = ((($0)) + 132|0);
$26 = HEAP32[$25>>2]|0;
$$065$lcssa76 = $$065$lcssa77;$$1 = $26;
}
$27 = ($$065$lcssa76|0)==(0);
if ($27) {
$28 = ((($0)) + 100|0);
$29 = HEAP32[$28>>2]|0;
$$166 = $29;
} else {
$$166 = $$065$lcssa76;
}
_Bitmap_AllocateClearedPow2($4,$$1,$$166);
$30 = ((($0)) + 36|0);
$31 = HEAP32[$30>>2]|0;
_DrawTextArgs_Make($3,18596,$31,1);
_Drawer2D_DrawText($4,$3,0,0);
HEAP32[$1>>2] = $2;
$32 = ((($1)) + 4|0);
HEAP16[$32>>1] = 0;
$33 = ((($1)) + 6|0);
HEAP16[$33>>1] = 66;
$34 = ((($0)) + 132|0);
$35 = ((($0)) + 100|0);
$36 = ((($0)) + 68|0);
$37 = HEAP16[$36>>1]|0;
$38 = ($37<<16>>16)==(0);
if (!($38)) {
HEAP16[$32>>1] = 0;
$39 = (_InputWidget_GetLastCol($0,0,0)|0);
$40 = (_Drawer2D_IsWhiteCol($39)|0);
$41 = ($40<<24>>24)==(0);
if ($41) {
_String_Append($1,38);
_String_Append($1,$39);
}
_InputWidget_FormatLine($0,0,$1);
$42 = $1;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = (($42) + 4)|0;
$46 = $45;
$47 = HEAP32[$46>>2]|0;
$48 = $3;
$49 = $48;
HEAP32[$49>>2] = $44;
$50 = (($48) + 4)|0;
$51 = $50;
HEAP32[$51>>2] = $47;
$52 = HEAP32[$34>>2]|0;
_Drawer2D_DrawText($4,$3,$52,0);
$53 = HEAP32[$35>>2]|0;
$54 = ((($0)) + 76|0);
$55 = HEAP16[$54>>1]|0;
$56 = ($55<<16>>16)==(0);
if (!($56)) {
HEAP16[$32>>1] = 0;
$77 = (_InputWidget_GetLastCol($0,0,1)|0);
$78 = (_Drawer2D_IsWhiteCol($77)|0);
$79 = ($78<<24>>24)==(0);
if ($79) {
_String_Append($1,38);
_String_Append($1,$77);
}
_InputWidget_FormatLine($0,1,$1);
$80 = $1;
$81 = $80;
$82 = HEAP32[$81>>2]|0;
$83 = (($80) + 4)|0;
$84 = $83;
$85 = HEAP32[$84>>2]|0;
$86 = $3;
$87 = $86;
HEAP32[$87>>2] = $82;
$88 = (($86) + 4)|0;
$89 = $88;
HEAP32[$89>>2] = $85;
_Drawer2D_DrawText($4,$3,0,$53);
$90 = HEAP32[$35>>2]|0;
$91 = (($90) + ($53))|0;
$92 = ((($0)) + 84|0);
$93 = HEAP16[$92>>1]|0;
$94 = ($93<<16>>16)==(0);
if (!($94)) {
HEAP16[$32>>1] = 0;
$95 = (_InputWidget_GetLastCol($0,0,2)|0);
$96 = (_Drawer2D_IsWhiteCol($95)|0);
$97 = ($96<<24>>24)==(0);
if ($97) {
_String_Append($1,38);
_String_Append($1,$95);
}
_InputWidget_FormatLine($0,2,$1);
$98 = $1;
$99 = $98;
$100 = HEAP32[$99>>2]|0;
$101 = (($98) + 4)|0;
$102 = $101;
$103 = HEAP32[$102>>2]|0;
$104 = $3;
$105 = $104;
HEAP32[$105>>2] = $100;
$106 = (($104) + 4)|0;
$107 = $106;
HEAP32[$107>>2] = $103;
_Drawer2D_DrawText($4,$3,0,$91);
}
}
}
$57 = ((($0)) + 104|0);
_Drawer2D_MakeTexture($57,$4,$$1,$$166);
$58 = HEAP32[$4>>2]|0;
_Mem_Free($58);
$59 = ((($0)) + 192|0);
HEAPF64[$59>>3] = 0.0;
$60 = ((($0)) + 12|0);
HEAP32[$60>>2] = $$1;
$61 = ((($0)) + 16|0);
HEAP32[$61>>2] = $$166;
$62 = HEAP32[$0>>2]|0;
$63 = ((($62)) + 8|0);
$64 = HEAP32[$63>>2]|0;
FUNCTION_TABLE_vi[$64 & 511]($0);
$65 = ((($0)) + 4|0);
$66 = HEAP32[$65>>2]|0;
$67 = ((($0)) + 137|0);
$68 = HEAP8[$67>>0]|0;
$69 = $68&255;
$70 = (($66) + ($69))|0;
$71 = $70&65535;
$72 = ((($0)) + 108|0);
HEAP16[$72>>1] = $71;
$73 = ((($0)) + 8|0);
$74 = HEAP32[$73>>2]|0;
$75 = $74&65535;
$76 = ((($0)) + 110|0);
HEAP16[$76>>1] = $75;
STACKTOP = sp;return;
}
function _ChatInputWidget_OnPressedEnter($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 56|0);
$3 = $2;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
_String_UNSAFE_TrimEnd($1);
$13 = ((($1)) + 4|0);
$14 = HEAP16[$13>>1]|0;
$15 = ($14<<16>>16)==(0);
if (!($15)) {
_Chat_Send($1,1);
}
$16 = ((($0)) + 208|0);
HEAP16[$16>>1] = 0;
$17 = HEAP32[(1235884)>>2]|0;
$18 = ((($0)) + 200|0);
HEAP32[$18>>2] = $17;
_Chat_AddOf(1384616,257);
_InputWidget_OnPressedEnter($0);
STACKTOP = sp;return;
}
function _InputWidget_AllowedChar($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[(1384585)>>0]|0;
$3 = ($2<<24>>24)==(0);
if (!($3)) {
$8 = 1;
return ($8|0);
}
$4 = $1 << 24 >> 24;
$5 = (_Convert_CP437ToUnicode($1)|0);
$6 = $5&65535;
$7 = ($6|0)==($4|0);
$phitmp = $7&1;
$8 = $phitmp;
return ($8|0);
}
function _ChatInputWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$ = 0, $$0 = 0, $$04246 = 0, $$04345 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 8|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($0)) + 64|0);
$7 = ((($0)) + 148|0);
$8 = ((($0)) + 144|0);
$9 = ((($0)) + 88|0);
$10 = ((($0)) + 88|0);
$11 = ((($0)) + 172|0);
$12 = ((($0)) + 152|0);
$13 = ((($0)) + 88|0);
$14 = ((($0)) + 137|0);
$15 = ((($0)) + 100|0);
$16 = $3 << 2;
$$04246 = 0;$$04345 = $5;
while(1) {
$17 = ($$04246|0)==(0);
if (!($17)) {
$18 = (((($6) + ($$04246<<3)|0)) + 4|0);
$19 = HEAP16[$18>>1]|0;
$20 = ($19<<16>>16)==(0);
if ($20) {
label = 13;
break;
}
}
$21 = HEAP32[$7>>2]|0;
$22 = ($21|0)==($$04246|0);
do {
if ($22) {
$25 = HEAP32[$8>>2]|0;
$26 = ($25|0)==(64);
if ($26) {
$27 = (($10) + ($$04246<<2)|0);
$28 = HEAP32[$27>>2]|0;
$55 = $28;
} else {
$29 = HEAP32[$12>>2]|0;
$30 = ($29|0)==(-1);
$31 = (($13) + ($$04246<<2)|0);
$32 = HEAP32[$31>>2]|0;
if ($30) {
$55 = $32;
} else {
$36 = $32;$37 = 0;
break;
}
}
$33 = HEAP16[$11>>1]|0;
$34 = $33&65535;
$36 = $55;$37 = $34;
} else {
$23 = (($9) + ($$04246<<2)|0);
$24 = HEAP32[$23>>2]|0;
$36 = $24;$37 = 0;
}
} while(0);
$35 = (($37) + ($36))|0;
$38 = HEAP8[1408229]|0;
$39 = ($38<<24>>24)==(0);
$40 = HEAP8[1408233]|0;
$41 = ($40<<24>>24)!=(0);
$or$cond = $39 | $41;
if ($or$cond) {
$$0 = $35;
} else {
$42 = HEAP32[351858]|0;
$43 = (($42) - ($16))|0;
$44 = ($35|0)>($43|0);
$$ = $44 ? $35 : $43;
$$0 = $$;
}
$45 = HEAP8[$14>>0]|0;
$46 = $45&255;
$47 = $46 << 1;
$48 = (($47) + ($$0))|0;
$49 = HEAP32[$15>>2]|0;
_Gfx_Draw2DFlat($3,$$04345,$48,$49,2130706432);
$50 = HEAP32[$15>>2]|0;
$51 = (($50) + ($$04345))|0;
$52 = (($$04246) + 1)|0;
$53 = ($52>>>0)<(3);
if ($53) {
$$04246 = $52;$$04345 = $51;
} else {
label = 13;
break;
}
}
if ((label|0) == 13) {
$54 = ((($0)) + 104|0);
_Texture_Render($54);
_InputWidget_RenderCaret($0,$1);
return;
}
}
function _ChatInputWidget_KeyDown($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($1|0) {
case 95: {
_ChatInputWidget_TabKey($0);
$$0 = 1;
break;
}
case 44: {
_ChatInputWidget_UpKey($0);
$$0 = 1;
break;
}
case 45: {
_ChatInputWidget_DownKey($0);
$$0 = 1;
break;
}
default: {
$2 = (_InputWidget_KeyDown($0,$1)|0);
$$0 = $2;
}
}
return ($$0|0);
}
function _ChatInputWidget_TabKey($0) {
$0 = $0|0;
var $$0$lcssa = 0, $$04553 = 0, $$04659 = 0, $$060 = 0, $$154 = 0, $$pr = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0;
var $111 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0;
var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0;
var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond65 = 0, $or$cond = 0;
var $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 384|0;
$1 = sp + 368|0;
$2 = sp + 256|0;
$3 = sp;
$4 = sp + 352|0;
$5 = sp + 344|0;
$6 = sp + 360|0;
$7 = sp + 336|0;
$8 = sp + 328|0;
$9 = sp + 320|0;
$10 = ((($0)) + 152|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)==(-1);
if ($12) {
$13 = ((($0)) + 60|0);
$14 = HEAP16[$13>>1]|0;
$15 = $14&65535;
$16 = (($15) + -1)|0;
$19 = $16;
} else {
$19 = $11;
}
$17 = ((($0)) + 56|0);
$18 = HEAP32[$17>>2]|0;
$20 = ($19|0)>(-1);
if (!($20)) {
STACKTOP = sp;return;
}
$$060 = $19;
while(1) {
$21 = (($18) + ($$060)|0);
$22 = HEAP8[$21>>0]|0;
$23 = (_ChatInputWidget_IsNameChar($22)|0);
$24 = ($23<<24>>24)==(0);
if ($24) {
$$0$lcssa = $$060;
break;
}
$25 = (($$060) + -1)|0;
$26 = ($$060|0)>(0);
if ($26) {
$$060 = $25;
} else {
$$0$lcssa = $25;
break;
}
}
$27 = (($$0$lcssa) + 1)|0;
$28 = ($19|0)>(-1);
$29 = ($$0$lcssa|0)<($19|0);
$or$cond = $28 & $29;
if (!($or$cond)) {
STACKTOP = sp;return;
}
$30 = (($19) + 1)|0;
$31 = (($30) - ($27))|0;
_String_UNSAFE_Substring($4,$17,$27,$31);
_Chat_AddOf(1384616,257);
HEAP32[$6>>2] = 0;
$$04659 = 0;
while(1) {
$32 = (1242992 + ($$04659<<1)|0);
$33 = HEAP16[$32>>1]|0;
$34 = ($33<<16>>16)==(0);
if (!($34)) {
$35 = $33&65535;
$36 = (($35) + -3)|0;
_StringsBuffer_UNSAFE_Get($7,(1243760),$36);
$37 = $7;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (($37) + 4)|0;
$41 = $40;
$42 = HEAP32[$41>>2]|0;
$43 = $5;
$44 = $43;
HEAP32[$44>>2] = $39;
$45 = (($43) + 4)|0;
$46 = $45;
HEAP32[$46>>2] = $42;
$47 = (_String_CaselessContains($5,$4)|0);
$48 = ($47|0)==(0);
if (!($48)) {
$49 = $$04659&255;
$50 = HEAP32[$6>>2]|0;
$51 = (($50) + 1)|0;
HEAP32[$6>>2] = $51;
$52 = (($3) + ($50)|0);
HEAP8[$52>>0] = $49;
}
}
$53 = (($$04659) + 1)|0;
$exitcond65 = ($53|0)==(256);
if ($exitcond65) {
break;
} else {
$$04659 = $53;
}
}
$54 = HEAP32[$6>>2]|0;
$55 = ($54|0)==(1);
if ($55) {
$56 = HEAP32[$10>>2]|0;
$57 = ($56|0)==(-1);
$spec$select = $57 ? $30 : $19;
$58 = (($spec$select) - ($27))|0;
$59 = ($58|0)>(0);
if ($59) {
$$04553 = 0;
while(1) {
_String_DeleteAt($17,$27);
$60 = (($$04553) + 1)|0;
$exitcond = ($60|0)==($58|0);
if ($exitcond) {
break;
} else {
$$04553 = $60;
}
}
$$pr = HEAP32[$10>>2]|0;
$61 = $$pr;
} else {
$61 = $56;
}
$62 = ($61|0)==(-1);
if (!($62)) {
$63 = (($61) - ($58))|0;
HEAP32[$10>>2] = $63;
}
$64 = HEAP8[$3>>0]|0;
$65 = $64&255;
$66 = (1242992 + ($65<<1)|0);
$67 = HEAP16[$66>>1]|0;
$68 = $67&65535;
$69 = (($68) + -3)|0;
_StringsBuffer_UNSAFE_Get($8,(1243760),$69);
$70 = $8;
$71 = $70;
$72 = HEAP32[$71>>2]|0;
$73 = (($70) + 4)|0;
$74 = $73;
$75 = HEAP32[$74>>2]|0;
$76 = $5;
$77 = $76;
HEAP32[$77>>2] = $72;
$78 = (($76) + 4)|0;
$79 = $78;
HEAP32[$79>>2] = $75;
_InputWidget_AppendText($0,$5);
STACKTOP = sp;return;
} else {
$80 = ($54|0)>(1);
if (!($80)) {
STACKTOP = sp;return;
}
HEAP32[$1>>2] = $2;
$81 = ((($1)) + 4|0);
HEAP16[$81>>1] = 0;
$82 = ((($1)) + 6|0);
HEAP16[$82>>1] = 64;
_String_Format1($1,38705,$6);
$83 = HEAP32[$6>>2]|0;
$84 = ($83|0)>(0);
L37: do {
if ($84) {
$85 = ((($5)) + 4|0);
$$154 = 0;
while(1) {
$86 = (($3) + ($$154)|0);
$87 = HEAP8[$86>>0]|0;
$88 = $87&255;
$89 = (1242992 + ($88<<1)|0);
$90 = HEAP16[$89>>1]|0;
$91 = $90&65535;
$92 = (($91) + -3)|0;
_StringsBuffer_UNSAFE_Get($9,(1243760),$92);
$93 = $9;
$94 = $93;
$95 = HEAP32[$94>>2]|0;
$96 = (($93) + 4)|0;
$97 = $96;
$98 = HEAP32[$97>>2]|0;
$99 = $5;
$100 = $99;
HEAP32[$100>>2] = $95;
$101 = (($99) + 4)|0;
$102 = $101;
HEAP32[$102>>2] = $98;
$103 = HEAP16[$81>>1]|0;
$104 = $103&65535;
$105 = HEAP16[$85>>1]|0;
$106 = $105&65535;
$107 = (($106) + ($104))|0;
$108 = ($107>>>0)>(63);
if ($108) {
break L37;
}
_String_AppendString($1,$5);
_String_Append($1,32);
$109 = (($$154) + 1)|0;
$110 = HEAP32[$6>>2]|0;
$111 = ($109|0)<($110|0);
if ($111) {
$$154 = $109;
} else {
break;
}
}
}
} while(0);
_Chat_AddOf($1,257);
STACKTOP = sp;return;
}
}
function _ChatInputWidget_UpKey($0) {
$0 = $0|0;
var $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP8[(379622)>>0]|0;
$3 = HEAP8[(379623)>>0]|0;
$4 = $3 | $2;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$6 = ((($0)) + 152|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(-1);
if ($8) {
$9 = ((($0)) + 60|0);
$10 = HEAP16[$9>>1]|0;
$11 = $10&65535;
$12 = $11;
} else {
$12 = $7;
}
$13 = ($12|0)<(64);
if ($13) {
STACKTOP = sp;return;
}
$14 = (($12) + -64)|0;
HEAP32[$6>>2] = $14;
_InputWidget_UpdateCaret($0);
STACKTOP = sp;return;
}
$15 = ((($0)) + 200|0);
$16 = HEAP32[$15>>2]|0;
$17 = HEAP32[(1235884)>>2]|0;
$18 = ($16|0)==($17|0);
if ($18) {
$19 = ((($0)) + 204|0);
$20 = ((($0)) + 56|0);
_String_Copy($19,$20);
$$pr = HEAP32[(1235884)>>2]|0;
$21 = $$pr;
} else {
$21 = $17;
}
$22 = ($21|0)==(0);
if ($22) {
STACKTOP = sp;return;
}
$23 = HEAP32[$15>>2]|0;
$24 = (($23) + -1)|0;
HEAP32[$15>>2] = $24;
$25 = ((($0)) + 56|0);
$26 = ((($0)) + 60|0);
HEAP16[$26>>1] = 0;
$27 = ($23|0)<(1);
if ($27) {
HEAP32[$15>>2] = 0;
}
$28 = HEAP32[$15>>2]|0;
_StringsBuffer_UNSAFE_Get($1,1235876,$28);
_String_AppendString($25,$1);
$29 = ((($0)) + 152|0);
HEAP32[$29>>2] = -1;
_InputWidget_UpdateText($0);
STACKTOP = sp;return;
}
function _ChatInputWidget_DownKey($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = HEAP8[(379622)>>0]|0;
$3 = HEAP8[(379623)>>0]|0;
$4 = $3 | $2;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$6 = ((($0)) + 152|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(-1);
if ($8) {
STACKTOP = sp;return;
}
$9 = (($7) + 64)|0;
$10 = ((($0)) + 60|0);
$11 = HEAP16[$10>>1]|0;
$12 = $11&65535;
$13 = ($9|0)<($12|0);
$spec$store$select = $13 ? $9 : -1;
HEAP32[$6>>2] = $spec$store$select;
_InputWidget_UpdateCaret($0);
STACKTOP = sp;return;
}
$14 = HEAP32[(1235884)>>2]|0;
$15 = ($14|0)==(0);
if ($15) {
STACKTOP = sp;return;
}
$16 = ((($0)) + 200|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($17) + 1)|0;
HEAP32[$16>>2] = $18;
$19 = ((($0)) + 56|0);
$20 = ((($0)) + 60|0);
HEAP16[$20>>1] = 0;
$21 = ($18|0)<($14|0);
if ($21) {
_StringsBuffer_UNSAFE_Get($1,1235876,$18);
_String_AppendString($19,$1);
} else {
HEAP32[$16>>2] = $14;
$22 = ((($0)) + 204|0);
_String_AppendString($19,$22);
}
$23 = ((($0)) + 152|0);
HEAP32[$23>>2] = -1;
_InputWidget_UpdateText($0);
STACKTOP = sp;return;
}
function _ChatInputWidget_IsNameChar($0) {
$0 = $0|0;
var $$off9 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
switch ($0<<24>>24) {
case 46: case 95: {
return 1;
break;
}
default: {
}
}
$$off9 = (($0) + -48)<<24>>24;
$1 = ($$off9&255)<(10);
if ($1) {
return 1;
} else {
$2 = $0 & -33;
$3 = (($2) + -65)<<24>>24;
$4 = ($3&255)<(26);
$spec$select = $4&1;
return ($spec$select|0);
}
return (0)|0;
}
function _ChatInputWidget_SetFont($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
_DrawTextArgs_Make($2,18596,$1,1);
$3 = ((($0)) + 36|0);
HEAP32[$3>>2] = $1;
$4 = (_Drawer2D_TextWidth($2)|0);
$5 = ((($0)) + 132|0);
HEAP32[$5>>2] = $4;
$6 = (_Drawer2D_TextHeight($2)|0);
$7 = ((($0)) + 100|0);
HEAP32[$7>>2] = $6;
$8 = ((($0)) + 164|0);
_Gfx_DeleteTexture($8);
STACKTOP = sp;return;
}
function _PlayerListWidget_GetNameAt($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$028 = 0, $$sroa$3$0$$sroa_idx8 = 0, $$sroa$3$0$copyload = 0, $$sroa$4$0$$sroa_idx10 = 0, $$sroa$4$0$copyload = 0, $$sroa$5$0$$sroa_idx12 = 0, $$sroa$5$0$copyload = 0, $$sroa$6$0$$sroa_idx14 = 0, $$sroa$6$0$copyload = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = ((($0)) + 40|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)>(0);
if (!($7)) {
STACKTOP = sp;return;
}
$$028 = 0;
while(1) {
$8 = (((($0)) + 1144|0) + (($$028*28)|0)|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0);
if (!($10)) {
$11 = (((($0)) + 120|0) + ($$028<<1)|0);
$12 = HEAP16[$11>>1]|0;
$13 = ($12<<16>>16)==(-1);
if (!($13)) {
$$sroa$3$0$$sroa_idx8 = (((((($0)) + 1144|0) + (($$028*28)|0)|0)) + 4|0);
$$sroa$3$0$copyload = HEAP16[$$sroa$3$0$$sroa_idx8>>1]|0;
$$sroa$4$0$$sroa_idx10 = (((((($0)) + 1144|0) + (($$028*28)|0)|0)) + 6|0);
$$sroa$4$0$copyload = HEAP16[$$sroa$4$0$$sroa_idx10>>1]|0;
$$sroa$5$0$$sroa_idx12 = (((((($0)) + 1144|0) + (($$028*28)|0)|0)) + 8|0);
$$sroa$5$0$copyload = HEAP16[$$sroa$5$0$$sroa_idx12>>1]|0;
$$sroa$6$0$$sroa_idx14 = (((((($0)) + 1144|0) + (($$028*28)|0)|0)) + 10|0);
$$sroa$6$0$copyload = HEAP16[$$sroa$6$0$$sroa_idx14>>1]|0;
$14 = $$sroa$3$0$copyload << 16 >> 16;
$15 = $$sroa$4$0$copyload << 16 >> 16;
$16 = $$sroa$5$0$copyload&65535;
$17 = $$sroa$6$0$copyload&65535;
$18 = (_Gui_Contains($14,$15,$16,$17,$1,$2)|0);
$19 = ($18|0)==(0);
if (!($19)) {
break;
}
}
}
$26 = (($$028) + 1)|0;
$27 = HEAP32[$5>>2]|0;
$28 = ($26|0)<($27|0);
if ($28) {
$$028 = $26;
} else {
label = 8;
break;
}
}
if ((label|0) == 8) {
STACKTOP = sp;return;
}
$20 = HEAP16[$11>>1]|0;
$21 = $20&65535;
$22 = (1242992 + ($21<<1)|0);
$23 = HEAP16[$22>>1]|0;
$24 = $23&65535;
$25 = (($24) + -3)|0;
_StringsBuffer_UNSAFE_Get($4,(1243760),$25);
_String_AppendString($3,$4);
STACKTOP = sp;return;
}
function _PlayerListWidget_Add($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1&255;
_PlayerListWidget_AddName($0,$2,-1);
_PlayerListWidget_SortAndReposition($0);
return;
}
function _PlayerListWidget_AddName($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = ($2|0)==(-1);
if ($4) {
$5 = ((($0)) + 40|0);
$6 = HEAP32[$5>>2]|0;
$7 = (($6) + 1)|0;
HEAP32[$5>>2] = $7;
$$0 = $6;
} else {
$$0 = $2;
}
$8 = $1&255;
$9 = (1242992 + ($8<<1)|0);
$10 = HEAP16[$9>>1]|0;
$11 = $10&65535;
$12 = (($11) + -2)|0;
_StringsBuffer_UNSAFE_Get($3,(1243760),$12);
$13 = $1&255;
$14 = (((($0)) + 120|0) + ($$0<<1)|0);
HEAP16[$14>>1] = $13;
$15 = (((($0)) + 1144|0) + (($$0*28)|0)|0);
_PlayerListWidget_DrawName($15,$0,$3);
STACKTOP = sp;return;
}
function _PlayerListWidget_SortAndReposition($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
_PlayerListWidget_SortEntries($0);
$1 = HEAP32[$0>>2]|0;
$2 = ((($1)) + 8|0);
$3 = HEAP32[$2>>2]|0;
FUNCTION_TABLE_vi[$3 & 511]($0);
return;
}
function _PlayerListWidget_SortEntries($0) {
$0 = $0|0;
var $$promoted = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $storemerge = 0, $storemerge$in20 = 0, $storemerge$in24 = 0, $storemerge1819 = 0, $storemerge21 = 0, $storemerge22 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)==(0);
if ($4) {
STACKTOP = sp;return;
}
HEAP32[351854] = $0;
$5 = ((($0)) + 48|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6<<24>>24)==(0);
if (!($7)) {
HEAP32[351855] = 74;
$8 = (($3) + -1)|0;
_PlayerListWidget_QuickSort(0,$8);
STACKTOP = sp;return;
}
$storemerge$in20 = HEAP32[$2>>2]|0;
$storemerge21 = (($storemerge$in20) + -1)|0;
HEAP32[$1>>2] = $storemerge21;
$9 = ($storemerge$in20|0)>(0);
if ($9) {
$$promoted = HEAP32[$1>>2]|0;
$storemerge$in24 = $$promoted;$storemerge22 = $storemerge21;
while(1) {
$10 = (((($0)) + 120|0) + ($storemerge22<<1)|0);
$11 = HEAP16[$10>>1]|0;
$12 = ($11<<16>>16)==(-1);
if ($12) {
_PlayerListWidget_DeleteAt($0,$storemerge22);
}
$storemerge = (($storemerge$in24) + -1)|0;
$13 = ($storemerge$in24|0)>(0);
if ($13) {
$storemerge$in24 = $storemerge;$storemerge22 = $storemerge;
} else {
break;
}
}
HEAP32[$1>>2] = $storemerge;
}
HEAP32[351855] = 75;
$14 = HEAP32[$2>>2]|0;
$15 = (($14) + -1)|0;
_PlayerListWidget_QuickSort(0,$15);
HEAP32[351855] = 74;
HEAP32[$1>>2] = 0;
$16 = HEAP32[$2>>2]|0;
$17 = ($16|0)>(0);
if (!($17)) {
STACKTOP = sp;return;
}
$storemerge1819 = 0;
while(1) {
$18 = (((($0)) + 120|0) + ($storemerge1819<<1)|0);
$19 = HEAP16[$18>>1]|0;
$20 = $19&65535;
_PlayerListWidget_AddGroup($0,$20,$1);
$21 = HEAP32[$1>>2]|0;
$22 = (_PlayerListWidget_GetGroupCount($0,$20,$21)|0);
$23 = (($22) + ($21))|0;
$24 = (($23) + -1)|0;
_PlayerListWidget_QuickSort($21,$24);
$25 = (($22) + ($21))|0;
HEAP32[$1>>2] = $25;
$26 = HEAP32[$2>>2]|0;
$27 = ($25|0)<($26|0);
if ($27) {
$storemerge1819 = $25;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _PlayerListWidget_PlayerCompare($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0;
$2 = sp + 152|0;
$3 = sp + 64|0;
$4 = sp + 144|0;
$5 = sp;
$6 = sp + 136|0;
$7 = sp + 128|0;
$8 = (1243504 + ($0)|0);
$9 = HEAP8[$8>>0]|0;
$10 = (1243504 + ($1)|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($9<<24>>24)==($11<<24>>24);
if ($12) {
HEAP32[$2>>2] = $3;
$15 = ((($2)) + 4|0);
HEAP16[$15>>1] = 0;
$16 = ((($2)) + 6|0);
HEAP16[$16>>1] = 64;
$17 = (1242992 + ($0<<1)|0);
$18 = HEAP16[$17>>1]|0;
$19 = $18&65535;
$20 = (($19) + -2)|0;
_StringsBuffer_UNSAFE_Get($6,(1243760),$20);
_String_AppendColorless($2,$6);
HEAP32[$4>>2] = $5;
$21 = ((($4)) + 4|0);
HEAP16[$21>>1] = 0;
$22 = ((($4)) + 6|0);
HEAP16[$22>>1] = 64;
$23 = (1242992 + ($1<<1)|0);
$24 = HEAP16[$23>>1]|0;
$25 = $24&65535;
$26 = (($25) + -2)|0;
_StringsBuffer_UNSAFE_Get($7,(1243760),$26);
_String_AppendColorless($4,$7);
$27 = (_String_Compare($2,$4)|0);
$$0 = $27;
STACKTOP = sp;return ($$0|0);
} else {
$13 = ($9&255)<($11&255);
$14 = $13 ? -1 : 1;
$$0 = $14;
STACKTOP = sp;return ($$0|0);
}
return (0)|0;
}
function _PlayerListWidget_QuickSort($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$064$lcssa = 0, $$06474 = 0, $$066$lcssa = 0, $$06673 = 0, $$06976 = 0, $$077 = 0, $$1 = 0, $$165 = 0, $$167 = 0, $$170 = 0, $$2 = 0, $$268 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
$3 = HEAP32[351854]|0;
$4 = ($0|0)<($1|0);
if (!($4)) {
STACKTOP = sp;return;
}
$$06976 = $1;$$077 = $0;
while(1) {
$5 = (($$077) + ($$06976))|0;
$6 = (($5|0) / 2)&-1;
$7 = (((($3)) + 120|0) + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$10 = ($$077|0)>($$06976|0);
if ($10) {
$$064$lcssa = $$06976;$$066$lcssa = $$077;
} else {
$$06474 = $$06976;$$06673 = $$077;
while(1) {
$$167 = $$06673;
while(1) {
$11 = HEAP32[351855]|0;
$12 = (((($3)) + 120|0) + ($$167<<1)|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13&65535;
$15 = (FUNCTION_TABLE_iii[$11 & 127]($9,$14)|0);
$16 = ($15|0)>(0);
$17 = (($$167) + 1)|0;
if ($16) {
$$167 = $17;
} else {
break;
}
}
$$165 = $$06474;
while(1) {
$18 = HEAP32[351855]|0;
$19 = (((($3)) + 120|0) + ($$165<<1)|0);
$20 = HEAP16[$19>>1]|0;
$21 = $20&65535;
$22 = (FUNCTION_TABLE_iii[$18 & 127]($9,$21)|0);
$23 = ($22|0)<(0);
$24 = (($$165) + -1)|0;
if ($23) {
$$165 = $24;
} else {
break;
}
}
$25 = ($$167|0)>($$165|0);
if ($25) {
$$2 = $$165;$$268 = $$167;
} else {
$26 = HEAP16[$12>>1]|0;
$27 = HEAP16[$19>>1]|0;
HEAP16[$12>>1] = $27;
HEAP16[$19>>1] = $26;
$28 = (((($3)) + 1144|0) + (($$167*28)|0)|0);
;HEAP32[$2>>2]=HEAP32[$28>>2]|0;HEAP32[$2+4>>2]=HEAP32[$28+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$28+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$28+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$28+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$28+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$28+24>>2]|0;
$29 = (((($3)) + 1144|0) + (($$165*28)|0)|0);
;HEAP32[$28>>2]=HEAP32[$29>>2]|0;HEAP32[$28+4>>2]=HEAP32[$29+4>>2]|0;HEAP32[$28+8>>2]=HEAP32[$29+8>>2]|0;HEAP32[$28+12>>2]=HEAP32[$29+12>>2]|0;HEAP32[$28+16>>2]=HEAP32[$29+16>>2]|0;HEAP32[$28+20>>2]=HEAP32[$29+20>>2]|0;HEAP32[$28+24>>2]=HEAP32[$29+24>>2]|0;
;HEAP32[$29>>2]=HEAP32[$2>>2]|0;HEAP32[$29+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$29+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$29+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$29+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[$29+20>>2]=HEAP32[$2+20>>2]|0;HEAP32[$29+24>>2]=HEAP32[$2+24>>2]|0;
$30 = (($$167) + 1)|0;
$31 = (($$165) + -1)|0;
$$2 = $31;$$268 = $30;
}
$32 = ($$268|0)>($$2|0);
if ($32) {
$$064$lcssa = $$2;$$066$lcssa = $$268;
break;
} else {
$$06474 = $$2;$$06673 = $$268;
}
}
}
$33 = (($$064$lcssa) - ($$077))|0;
$34 = (($$06976) - ($$066$lcssa))|0;
$35 = ($33|0)>($34|0);
if ($35) {
$37 = ($$06976|0)>($$066$lcssa|0);
if ($37) {
_PlayerListWidget_QuickSort($$066$lcssa,$$06976);
$$1 = $$077;$$170 = $$064$lcssa;
} else {
$$1 = $$077;$$170 = $$064$lcssa;
}
} else {
$36 = ($$064$lcssa|0)>($$077|0);
if ($36) {
_PlayerListWidget_QuickSort($$077,$$064$lcssa);
$$1 = $$066$lcssa;$$170 = $$06976;
} else {
$$1 = $$066$lcssa;$$170 = $$06976;
}
}
$38 = ($$1|0)<($$170|0);
if ($38) {
$$06976 = $$170;$$077 = $$1;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _PlayerListWidget_DeleteAt($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$017 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (((($0)) + 1144|0) + (($1*28)|0)|0);
_Gfx_DeleteTexture($2);
$3 = ((($0)) + 40|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4) + -1)|0;
$6 = ($5|0)>($1|0);
if (!($6)) {
$$lcssa = $5;
HEAP32[$3>>2] = $$lcssa;
$16 = (((($0)) + 120|0) + ($$lcssa<<1)|0);
HEAP16[$16>>1] = 0;
$17 = (((($0)) + 1144|0) + (($$lcssa*28)|0)|0);
HEAP32[$17>>2] = 0;
return;
}
$$017 = $1;
while(1) {
$7 = (($$017) + 1)|0;
$8 = (((($0)) + 120|0) + ($7<<1)|0);
$9 = HEAP16[$8>>1]|0;
$10 = (((($0)) + 120|0) + ($$017<<1)|0);
HEAP16[$10>>1] = $9;
$11 = (((($0)) + 1144|0) + (($$017*28)|0)|0);
$12 = (((($0)) + 1144|0) + (($7*28)|0)|0);
;HEAP32[$11>>2]=HEAP32[$12>>2]|0;HEAP32[$11+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$11+8>>2]=HEAP32[$12+8>>2]|0;HEAP32[$11+12>>2]=HEAP32[$12+12>>2]|0;HEAP32[$11+16>>2]=HEAP32[$12+16>>2]|0;HEAP32[$11+20>>2]=HEAP32[$12+20>>2]|0;HEAP32[$11+24>>2]=HEAP32[$12+24>>2]|0;
$13 = HEAP32[$3>>2]|0;
$14 = (($13) + -1)|0;
$15 = ($7|0)<($14|0);
if ($15) {
$$017 = $7;
} else {
$$lcssa = $14;
break;
}
}
HEAP32[$3>>2] = $$lcssa;
$16 = (((($0)) + 120|0) + ($$lcssa<<1)|0);
HEAP16[$16>>1] = 0;
$17 = (((($0)) + 1144|0) + (($$lcssa*28)|0)|0);
HEAP32[$17>>2] = 0;
return;
}
function _PlayerListWidget_GroupCompare($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp + 8|0;
$3 = sp;
$4 = (1242992 + ($0<<1)|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = (($6) + -1)|0;
_StringsBuffer_UNSAFE_Get($2,(1243760),$7);
$8 = (1242992 + ($1<<1)|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = (($10) + -1)|0;
_StringsBuffer_UNSAFE_Get($3,(1243760),$11);
$12 = (_String_Compare($2,$3)|0);
STACKTOP = sp;return ($12|0);
}
function _PlayerListWidget_AddGroup($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$019 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = (1242992 + ($1<<1)|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = (($6) + -1)|0;
_StringsBuffer_UNSAFE_Get($3,(1243760),$7);
$8 = HEAP32[$2>>2]|0;
$9 = ($8|0)<(511);
if ($9) {
$$019 = 511;
while(1) {
$10 = (($$019) + -1)|0;
$11 = (((($0)) + 120|0) + ($10<<1)|0);
$12 = HEAP16[$11>>1]|0;
$13 = (((($0)) + 120|0) + ($$019<<1)|0);
HEAP16[$13>>1] = $12;
$14 = (((($0)) + 1144|0) + (($$019*28)|0)|0);
$15 = (((($0)) + 1144|0) + (($10*28)|0)|0);
;HEAP32[$14>>2]=HEAP32[$15>>2]|0;HEAP32[$14+4>>2]=HEAP32[$15+4>>2]|0;HEAP32[$14+8>>2]=HEAP32[$15+8>>2]|0;HEAP32[$14+12>>2]=HEAP32[$15+12>>2]|0;HEAP32[$14+16>>2]=HEAP32[$15+16>>2]|0;HEAP32[$14+20>>2]=HEAP32[$15+20>>2]|0;HEAP32[$14+24>>2]=HEAP32[$15+24>>2]|0;
$16 = HEAP32[$2>>2]|0;
$17 = ($10|0)>($16|0);
if ($17) {
$$019 = $10;
} else {
$$lcssa = $16;
break;
}
}
} else {
$$lcssa = $8;
}
$18 = (((($0)) + 120|0) + ($$lcssa<<1)|0);
HEAP16[$18>>1] = -1;
$19 = (((($0)) + 1144|0) + (($$lcssa*28)|0)|0);
_PlayerListWidget_DrawName($19,$0,$3);
$20 = HEAP32[$2>>2]|0;
$21 = (($20) + 1)|0;
HEAP32[$2>>2] = $21;
$22 = ((($0)) + 40|0);
$23 = HEAP32[$22>>2]|0;
$24 = (($23) + 1)|0;
HEAP32[$22>>2] = $24;
STACKTOP = sp;return;
}
function _PlayerListWidget_GetGroupCount($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0$lcssa = 0, $$013 = 0, $$0812 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp + 16|0;
$4 = sp + 8|0;
$5 = sp;
$6 = (1242992 + ($1<<1)|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
$9 = (($8) + -1)|0;
_StringsBuffer_UNSAFE_Get($3,(1243760),$9);
$10 = ((($0)) + 40|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)>($2|0);
if (!($12)) {
$$0$lcssa = 0;
STACKTOP = sp;return ($$0$lcssa|0);
}
$$013 = 0;$$0812 = $2;
while(1) {
$13 = (((($0)) + 120|0) + ($$0812<<1)|0);
$14 = HEAP16[$13>>1]|0;
$15 = $14&65535;
$16 = (1242992 + ($15<<1)|0);
$17 = HEAP16[$16>>1]|0;
$18 = $17&65535;
$19 = (($18) + -1)|0;
_StringsBuffer_UNSAFE_Get($5,(1243760),$19);
$20 = $5;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = (($20) + 4)|0;
$24 = $23;
$25 = HEAP32[$24>>2]|0;
$26 = $4;
$27 = $26;
HEAP32[$27>>2] = $22;
$28 = (($26) + 4)|0;
$29 = $28;
HEAP32[$29>>2] = $25;
$30 = (_String_CaselessEquals($3,$4)|0);
$31 = ($30|0)==(0);
if ($31) {
$$0$lcssa = $$013;
label = 5;
break;
}
$32 = (($$0812) + 1)|0;
$33 = (($$013) + 1)|0;
$34 = HEAP32[$10>>2]|0;
$35 = ($32|0)<($34|0);
if ($35) {
$$013 = $33;$$0812 = $32;
} else {
$$0$lcssa = $33;
label = 5;
break;
}
}
if ((label|0) == 5) {
STACKTOP = sp;return ($$0$lcssa|0);
}
return (0)|0;
}
function _PlayerListWidget_DrawName($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$3 = sp + 64|0;
$4 = sp;
$5 = sp + 72|0;
$6 = HEAP8[1408229]|0;
$7 = ($6<<24>>24)==(0);
$8 = HEAP8[1408233]|0;
$9 = ($8<<24>>24)!=(0);
$or$cond = $7 | $9;
if ($or$cond) {
$12 = $2;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (($12) + 4)|0;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = $3;
$19 = $18;
HEAP32[$19>>2] = $14;
$20 = (($18) + 4)|0;
$21 = $20;
HEAP32[$21>>2] = $17;
} else {
HEAP32[$3>>2] = $4;
$10 = ((($3)) + 4|0);
HEAP16[$10>>1] = 0;
$11 = ((($3)) + 6|0);
HEAP16[$11>>1] = 64;
_String_AppendColorless($3,$2);
}
$22 = ((($1)) + 36|0);
$23 = HEAP32[$22>>2]|0;
$24 = ((($1)) + 48|0);
$25 = HEAP8[$24>>0]|0;
$26 = ($25<<24>>24)==(0);
$27 = $26&1;
_DrawTextArgs_Make($5,$3,$23,$27);
_Drawer2D_MakeTextTexture($0,$5);
$28 = HEAP32[$22>>2]|0;
$29 = ((($28)) + 4|0);
$30 = HEAP16[$29>>1]|0;
$31 = $30&65535;
_Drawer2D_ReducePadding_Tex($0,$31,3);
STACKTOP = sp;return;
}
function _PlayerListWidget_Update($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$013 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
$3 = ((($0)) + 40|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
STACKTOP = sp;return;
}
$$013 = 0;
while(1) {
$6 = (((($0)) + 120|0) + ($$013<<1)|0);
$7 = HEAP16[$6>>1]|0;
$8 = $7&65535;
$9 = ($8|0)==($1|0);
if ($9) {
break;
}
$12 = (($$013) + 1)|0;
$13 = HEAP32[$3>>2]|0;
$14 = ($12|0)<($13|0);
if ($14) {
$$013 = $12;
} else {
label = 6;
break;
}
}
if ((label|0) == 6) {
STACKTOP = sp;return;
}
$10 = (((($0)) + 1144|0) + (($$013*28)|0)|0);
;HEAP32[$2>>2]=HEAP32[$10>>2]|0;HEAP32[$2+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$10+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$10+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$10+24>>2]|0;
_Gfx_DeleteTexture($2);
$11 = $1&255;
_PlayerListWidget_AddName($0,$11,$$013);
_PlayerListWidget_SortAndReposition($0);
STACKTOP = sp;return;
}
function _PlayerListWidget_Remove($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$010 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(0);
if (!($4)) {
return;
}
$$010 = 0;
while(1) {
$5 = (((($0)) + 120|0) + ($$010<<1)|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&65535;
$8 = ($7|0)==($1|0);
if ($8) {
break;
}
$9 = (($$010) + 1)|0;
$10 = HEAP32[$2>>2]|0;
$11 = ($9|0)<($10|0);
if ($11) {
$$010 = $9;
} else {
label = 6;
break;
}
}
if ((label|0) == 6) {
return;
}
_PlayerListWidget_DeleteAt($0,$$010);
_PlayerListWidget_SortAndReposition($0);
return;
}
function _PlayerListWidget_Create($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$020 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
HEAP32[$0>>2] = 18604;
$3 = ((($0)) + 22|0);
HEAP8[$3>>0] = 1;
$4 = ((($0)) + 23|0);
HEAP8[$4>>0] = 1;
$5 = ((($0)) + 40|0);
HEAP32[$5>>2] = 0;
$6 = ((($0)) + 36|0);
HEAP32[$6>>2] = $1;
$7 = ((($0)) + 48|0);
HEAP8[$7>>0] = $2;
$8 = ($2<<24>>24)==(0);
$9 = $8 ? 10 : 0;
$10 = ((($0)) + 44|0);
HEAP32[$10>>2] = $9;
$$020 = 0;
while(1) {
$11 = (1242992 + ($$020<<1)|0);
$12 = HEAP16[$11>>1]|0;
$13 = ($12<<16>>16)==(0);
if (!($13)) {
$14 = $$020&255;
_PlayerListWidget_AddName($0,$14,-1);
}
$15 = (($$020) + 1)|0;
$exitcond = ($15|0)==(256);
if ($exitcond) {
break;
} else {
$$020 = $15;
}
}
$16 = ((($0)) + 52|0);
_TextWidget_Make($16,1,0,0,0);
$17 = HEAP32[$6>>2]|0;
_TextWidget_SetConst($16,38727,$17);
_PlayerListWidget_SortAndReposition($0);
return;
}
function _PlayerListWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$046 = 0, $$neg = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $7 = 0, $8 = 0;
var $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp;
$3 = ((($0)) + 52|0);
$4 = ((($0)) + 68|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + 10)|0;
$7 = ((($0)) + 16|0);
$8 = HEAP32[$7>>2]|0;
$9 = (($8) + ($5))|0;
$10 = ($9|0)>(300);
$spec$select = $10 ? $9 : 300;
$11 = ((($0)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($0)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = (($14) - ($6))|0;
$16 = ((($0)) + 12|0);
$17 = HEAP32[$16>>2]|0;
_Gfx_Draw2DGradient($12,$15,$17,$spec$select,-1275068416,-852348366);
$18 = HEAP32[$13>>2]|0;
$$neg = (-10 - ($5))|0;
$19 = (($$neg) + 5)|0;
$20 = (($19) + ($18))|0;
$21 = ((($0)) + 80|0);
HEAP32[$21>>2] = $20;
$22 = HEAP32[$3>>2]|0;
$23 = ((($22)) + 8|0);
$24 = HEAP32[$23>>2]|0;
FUNCTION_TABLE_vi[$24 & 511]($3);
$25 = HEAP32[$3>>2]|0;
$26 = HEAP32[$25>>2]|0;
FUNCTION_TABLE_vid[$26 & 63]($3,$1);
$27 = (_Gui_GetInputGrab()|0);
$28 = ((($0)) + 40|0);
$29 = HEAP32[$28>>2]|0;
$30 = ($29|0)>(0);
if (!($30)) {
STACKTOP = sp;return;
}
$31 = ((($0)) + 1144|0);
$32 = ($27|0)==(0|0);
$33 = ((($0)) + 120|0);
$34 = ((($2)) + 4|0);
$35 = ((($2)) + 6|0);
$36 = ((($2)) + 8|0);
$37 = ((($2)) + 10|0);
$$046 = 0;
while(1) {
$38 = (($31) + (($$046*28)|0)|0);
$39 = HEAP32[$38>>2]|0;
$40 = ($39|0)==(0);
if (!($40)) {
;HEAP32[$2>>2]=HEAP32[$38>>2]|0;HEAP32[$2+4>>2]=HEAP32[$38+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$38+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$38+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$38+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$38+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$38+24>>2]|0;
if (!($32)) {
$41 = (($33) + ($$046<<1)|0);
$42 = HEAP16[$41>>1]|0;
$43 = ($42<<16>>16)==(-1);
if (!($43)) {
$44 = HEAP16[$34>>1]|0;
$45 = $44 << 16 >> 16;
$46 = HEAP16[$35>>1]|0;
$47 = $46 << 16 >> 16;
$48 = HEAP16[$36>>1]|0;
$49 = $48&65535;
$50 = HEAP16[$37>>1]|0;
$51 = $50&65535;
$52 = (_Gui_ContainsPointers($45,$47,$49,$51)|0);
$53 = ($52|0)==(0);
if (!($53)) {
$54 = HEAP16[$34>>1]|0;
$55 = $54&65535;
$56 = (($55) + 4)|0;
$57 = $56&65535;
HEAP16[$34>>1] = $57;
}
}
}
_Texture_Render($2);
}
$58 = (($$046) + 1)|0;
$59 = HEAP32[$28>>2]|0;
$60 = ($58|0)<($59|0);
if ($60) {
$$046 = $58;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _PlayerListWidget_Free($0) {
$0 = $0|0;
var $$010 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 40|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)>(0);
if ($3) {
$4 = ((($0)) + 1144|0);
$$010 = 0;
while(1) {
$5 = (($4) + (($$010*28)|0)|0);
_Gfx_DeleteTexture($5);
$6 = (($$010) + 1)|0;
$7 = HEAP32[$1>>2]|0;
$8 = ($6|0)<($7|0);
if ($8) {
$$010 = $6;
} else {
break;
}
}
}
$9 = ((($0)) + 52|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(0|0);
if ($11) {
return;
}
$12 = ((($10)) + 4|0);
$13 = HEAP32[$12>>2]|0;
FUNCTION_TABLE_vi[$13 & 511]($9);
return;
}
function _PlayerListWidget_Reposition($0) {
$0 = $0|0;
var $$048$lcssa63 = 0, $$04855 = 0, $$04954 = 0, $$05152 = 0, $$056 = 0, $$153 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond62 = 0;
var $phitmp = 0, $phitmp65 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 40|0);
$2 = HEAP32[$1>>2]|0;
$3 = (_Math_CeilDiv($2,16)|0);
$4 = ($3|0)>(0);
if ($4) {
$$04855 = 0;$$04954 = 0;$$056 = 0;
while(1) {
$5 = (_PlayerListWidget_GetColumnWidth($0,$$056)|0);
$6 = (($5) + ($$04954))|0;
$7 = (_PlayerListWidget_GetColumnHeight($0,$$056)|0);
$8 = ($$04855|0)>($7|0);
$9 = $8 ? $$04855 : $7;
$10 = (($$056) + 1)|0;
$exitcond62 = ($10|0)==($3|0);
if ($exitcond62) {
break;
} else {
$$04855 = $9;$$04954 = $6;$$056 = $10;
}
}
$phitmp = (($9) + 20)|0;
$11 = ($6|0)>(480);
$spec$select = $11 ? $6 : 480;
$phitmp65 = (($spec$select) + 20)|0;
$$048$lcssa63 = $phitmp;$13 = $phitmp65;
} else {
$$048$lcssa63 = 20;$13 = 500;
}
$12 = ((($0)) + 12|0);
HEAP32[$12>>2] = $13;
$14 = ((($0)) + 16|0);
HEAP32[$14>>2] = $$048$lcssa63;
$15 = HEAP32[351859]|0;
$16 = (($15|0) / 4)&-1;
$17 = (($$048$lcssa63|0) / 2)&-1;
$18 = (($16) - ($17))|0;
$19 = ($18|0)>(0);
$20 = $19 ? $18 : 0;
$21 = (0 - ($20))|0;
$22 = ((($0)) + 28|0);
HEAP32[$22>>2] = $21;
_Widget_CalcPosition($0);
$23 = ((($0)) + 8|0);
$24 = HEAP32[$23>>2]|0;
$25 = (($24) + 10)|0;
$26 = ($3|0)>(0);
if (!($26)) {
return;
}
$27 = ((($0)) + 4|0);
$28 = HEAP32[$27>>2]|0;
$29 = (($28) + 10)|0;
$$05152 = $29;$$153 = 0;
while(1) {
_PlayerListWidget_SetColumnPos($0,$$153,$$05152,$25);
$30 = (_PlayerListWidget_GetColumnWidth($0,$$153)|0);
$31 = (($30) + ($$05152))|0;
$32 = (($$153) + 1)|0;
$exitcond = ($32|0)==($3|0);
if ($exitcond) {
break;
} else {
$$05152 = $31;$$153 = $32;
}
}
return;
}
function _PlayerListWidget_GetColumnWidth($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$ = 0, $$0$ = 0, $$0$lcssa = 0, $$01920 = 0, $$021 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1 << 4;
$3 = ((($0)) + 40|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 16)|0;
$6 = ($4|0)<($5|0);
$$ = $6 ? $4 : $5;
$7 = ($2|0)<($$|0);
if ($7) {
$$01920 = $2;$$021 = 0;
while(1) {
$8 = (((((($0)) + 1144|0) + (($$01920*28)|0)|0)) + 8|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = ($$021|0)>($10|0);
$$0$ = $11 ? $$021 : $10;
$12 = (($$01920) + 1)|0;
$13 = ($12|0)<($$|0);
if ($13) {
$$01920 = $12;$$021 = $$0$;
} else {
break;
}
}
$phitmp = (($$0$) + 5)|0;
$$0$lcssa = $phitmp;
} else {
$$0$lcssa = 5;
}
$14 = ((($0)) + 44|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($$0$lcssa) + ($15))|0;
return ($16|0);
}
function _PlayerListWidget_GetColumnHeight($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$ = 0, $$0$lcssa = 0, $$01617 = 0, $$018 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1 << 4;
$3 = ((($0)) + 40|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 16)|0;
$6 = ($4|0)<($5|0);
$$ = $6 ? $4 : $5;
$7 = ($2|0)<($$|0);
if (!($7)) {
$$0$lcssa = 0;
return ($$0$lcssa|0);
}
$$01617 = $2;$$018 = 0;
while(1) {
$8 = (((((($0)) + 1144|0) + (($$01617*28)|0)|0)) + 10|0);
$9 = HEAP16[$8>>1]|0;
$10 = $9&65535;
$11 = (($$018) + 1)|0;
$12 = (($11) + ($10))|0;
$13 = (($$01617) + 1)|0;
$14 = ($13|0)<($$|0);
if ($14) {
$$01617 = $13;$$018 = $12;
} else {
$$0$lcssa = $12;
break;
}
}
return ($$0$lcssa|0);
}
function _PlayerListWidget_SetColumnPos($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$ = 0, $$04850 = 0, $$051 = 0, $$sroa$4$0 = 0, $$sroa$4$0$$sroa_idx14 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$826$0$$sroa_idx27 = 0, $$sroa$826$0$copyload = 0, $$sroa$9 = 0, $$sroa$9$0$$sroa_idx = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$$sroa$9 = sp;
$4 = $1 << 4;
$5 = ((($0)) + 40|0);
$6 = HEAP32[$5>>2]|0;
$7 = (($4) + 16)|0;
$8 = ($6|0)<($7|0);
$$ = $8 ? $6 : $7;
$9 = ($4|0)<($$|0);
if (!($9)) {
STACKTOP = sp;return;
}
$10 = $2&65535;
$11 = ((($0)) + 48|0);
$12 = ((($0)) + 44|0);
$$04850 = $4;$$051 = $3;
while(1) {
$$sroa$4$0$$sroa_idx14 = (((((($0)) + 1144|0) + (($$04850*28)|0)|0)) + 4|0);
$$sroa$7$0$$sroa_idx18 = (((((($0)) + 1144|0) + (($$04850*28)|0)|0)) + 6|0);
$$sroa$826$0$$sroa_idx27 = (((((($0)) + 1144|0) + (($$04850*28)|0)|0)) + 10|0);
$$sroa$826$0$copyload = HEAP16[$$sroa$826$0$$sroa_idx27>>1]|0;
$$sroa$9$0$$sroa_idx = (((((($0)) + 1144|0) + (($$04850*28)|0)|0)) + 12|0);
;HEAP32[$$sroa$9>>2]=HEAP32[$$sroa$9$0$$sroa_idx>>2]|0;HEAP32[$$sroa$9+4>>2]=HEAP32[$$sroa$9$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$9+8>>2]=HEAP32[$$sroa$9$0$$sroa_idx+8>>2]|0;HEAP32[$$sroa$9+12>>2]=HEAP32[$$sroa$9$0$$sroa_idx+12>>2]|0;
$13 = (($$051) + 65526)|0;
$14 = $13&65535;
$15 = $$sroa$826$0$copyload&65535;
$16 = (($$051) + 1)|0;
$17 = (($16) + ($15))|0;
$18 = HEAP8[$11>>0]|0;
$19 = ($18<<24>>24)==(0);
if ($19) {
$20 = (((($0)) + 120|0) + ($$04850<<1)|0);
$21 = HEAP16[$20>>1]|0;
$22 = ($21<<16>>16)==(-1);
if ($22) {
$$sroa$4$0 = $10;
} else {
$23 = HEAP32[$12>>2]|0;
$24 = (($23) + ($2))|0;
$25 = $24&65535;
$$sroa$4$0 = $25;
}
} else {
$$sroa$4$0 = $10;
}
HEAP16[$$sroa$4$0$$sroa_idx14>>1] = $$sroa$4$0;
HEAP16[$$sroa$7$0$$sroa_idx18>>1] = $14;
;HEAP32[$$sroa$9$0$$sroa_idx>>2]=HEAP32[$$sroa$9>>2]|0;HEAP32[$$sroa$9$0$$sroa_idx+4>>2]=HEAP32[$$sroa$9+4>>2]|0;HEAP32[$$sroa$9$0$$sroa_idx+8>>2]=HEAP32[$$sroa$9+8>>2]|0;HEAP32[$$sroa$9$0$$sroa_idx+12>>2]=HEAP32[$$sroa$9+12>>2]|0;
$26 = (($$04850) + 1)|0;
$27 = ($26|0)<($$|0);
if ($27) {
$$04850 = $26;$$051 = $17;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _TextGroupWidget_ShiftUp($0) {
$0 = $0|0;
var $$014 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 80|0);
$2 = HEAP32[$1>>2]|0;
_Gfx_DeleteTexture($2);
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4) + -1)|0;
$6 = ($4|0)>(1);
$7 = HEAP32[$1>>2]|0;
if (!($6)) {
$$lcssa = $7;
$13 = (($$lcssa) + (($5*28)|0)|0);
HEAP32[$13>>2] = 0;
_TextGroupWidget_Redraw($0,$5);
return;
}
$$014 = 0;$9 = $7;
while(1) {
$8 = (($9) + (($$014*28)|0)|0);
$10 = (($$014) + 1)|0;
$11 = (($9) + (($10*28)|0)|0);
;HEAP32[$8>>2]=HEAP32[$11>>2]|0;HEAP32[$8+4>>2]=HEAP32[$11+4>>2]|0;HEAP32[$8+8>>2]=HEAP32[$11+8>>2]|0;HEAP32[$8+12>>2]=HEAP32[$11+12>>2]|0;HEAP32[$8+16>>2]=HEAP32[$11+16>>2]|0;HEAP32[$8+20>>2]=HEAP32[$11+20>>2]|0;HEAP32[$8+24>>2]=HEAP32[$11+24>>2]|0;
$12 = HEAP32[$1>>2]|0;
$exitcond = ($10|0)==($5|0);
if ($exitcond) {
$$lcssa = $12;
break;
} else {
$$014 = $10;$9 = $12;
}
}
$13 = (($$lcssa) + (($5*28)|0)|0);
HEAP32[$13>>2] = 0;
_TextGroupWidget_Redraw($0,$5);
return;
}
function _TextGroupWidget_Redraw($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$2 = sp;
$3 = sp + 40|0;
$4 = sp + 8|0;
;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;HEAP32[$4+16>>2]=0|0;HEAP32[$4+20>>2]=0|0;HEAP32[$4+24>>2]=0|0;
$5 = ((($0)) + 80|0);
$6 = HEAP32[$5>>2]|0;
$7 = (($6) + (($1*28)|0)|0);
_Gfx_DeleteTexture($7);
_TextGroupWidget_UNSAFE_Get($2,$0,$1);
$8 = (_Drawer2D_IsEmptyText($2)|0);
$9 = ($8<<24>>24)==(0);
if ($9) {
$10 = ((($0)) + 44|0);
$11 = HEAP32[$10>>2]|0;
_DrawTextArgs_Make($3,$2,$11,1);
$12 = ((($0)) + 78|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(0);
if ($14) {
label = 5;
} else {
$15 = (_TextGroupWidget_MightHaveUrls($0)|0);
$16 = ($15<<24>>24)==(0);
if ($16) {
label = 5;
} else {
_TextGroupWidget_DrawAdvanced($0,$4,$3,$1,$2);
}
}
if ((label|0) == 5) {
_Drawer2D_MakeTextTexture($4,$3);
}
$17 = HEAP32[$10>>2]|0;
$18 = ((($17)) + 4|0);
$19 = HEAP16[$18>>1]|0;
$20 = $19&65535;
_Drawer2D_ReducePadding_Tex($4,$20,3);
} else {
$21 = (((($0)) + 48|0) + ($1)|0);
$22 = HEAP8[$21>>0]|0;
$23 = ($22<<24>>24)==(0);
if ($23) {
$24 = ((($0)) + 40|0);
$25 = HEAP32[$24>>2]|0;
$phitmp = $25&65535;
$27 = $phitmp;
} else {
$27 = 0;
}
$26 = ((($4)) + 10|0);
HEAP16[$26>>1] = $27;
}
$28 = ((($0)) + 22|0);
$29 = HEAP8[$28>>0]|0;
$30 = ((($0)) + 24|0);
$31 = HEAP32[$30>>2]|0;
$32 = ((($4)) + 8|0);
$33 = HEAP16[$32>>1]|0;
$34 = $33&65535;
$35 = HEAP32[351858]|0;
$36 = (_Gui_CalcPos($29,$31,$34,$35)|0);
$37 = $36&65535;
$38 = ((($4)) + 4|0);
HEAP16[$38>>1] = $37;
$39 = HEAP32[$5>>2]|0;
$40 = (($39) + (($1*28)|0)|0);
;HEAP32[$40>>2]=HEAP32[$4>>2]|0;HEAP32[$40+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$40+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$40+12>>2]=HEAP32[$4+12>>2]|0;HEAP32[$40+16>>2]=HEAP32[$4+16>>2]|0;HEAP32[$40+20>>2]=HEAP32[$4+20>>2]|0;HEAP32[$40+24>>2]=HEAP32[$4+24>>2]|0;
$41 = HEAP32[$0>>2]|0;
$42 = ((($41)) + 8|0);
$43 = HEAP32[$42>>2]|0;
FUNCTION_TABLE_vi[$43 & 511]($0);
STACKTOP = sp;return;
}
function _TextGroupWidget_UNSAFE_Get($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($1)) + 84|0);
$4 = HEAP32[$3>>2]|0;
$5 = ((($1)) + 88|0);
$6 = HEAP32[$5>>2]|0;
FUNCTION_TABLE_viii[$4 & 31]($0,$6,$2);
return;
}
function _TextGroupWidget_MightHaveUrls($0) {
$0 = $0|0;
var $$06 = 0, $$08 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp + 8|0;
$2 = sp;
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
$$06 = 0;
STACKTOP = sp;return ($$06|0);
}
$$08 = 0;
while(1) {
_TextGroupWidget_UNSAFE_Get($2,$0,$$08);
$9 = $2;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = $15;
HEAP32[$16>>2] = $11;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $14;
$19 = (_String_IndexOfAt($1,0,47)|0);
$20 = ($19|0)>(-1);
$7 = (($$08) + 1)|0;
if ($20) {
$$06 = 1;
label = 5;
break;
}
$6 = HEAP32[$3>>2]|0;
$8 = ($7|0)<($6|0);
if ($8) {
$$08 = $7;
} else {
$$06 = 0;
label = 5;
break;
}
}
if ((label|0) == 5) {
STACKTOP = sp;return ($$06|0);
}
return (0)|0;
}
function _TextGroupWidget_DrawAdvanced($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$05965 = 0, $$060$lcssa70 = 0, $$06064 = 0, $$063 = 0, $$162 = 0, $$sroa$4$0$$sroa_idx35 = 0, $$sroa$4$0$copyload36 = 0, $$sroa$5$0$$sroa_idx38 = 0, $$sroa$5$0$$sroa_idx39 = 0, $$sroa$5$0$copyload = 0, $$sroa$5$0$copyload40 = 0, $$sroa$7$0$$sroa_idx43 = 0, $$sroa$7$0$$sroa_idx44 = 0, $$sroa$7$0$copyload = 0, $$sroa$7$0$copyload45 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0;
var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond69 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 3232|0;
$5 = sp + 320|0;
$6 = sp + 112|0;
$7 = sp;
$8 = sp + 3216|0;
$9 = sp + 3208|0;
$10 = sp + 3200|0;
$11 = (_Drawer2D_TextHeight($2)|0);
$12 = (_TextGroupWidget_Reduce($0,$5,$3,$6)|0);
$13 = ($12|0)>(0);
if (!($13)) {
_Bitmap_AllocateClearedPow2($8,0,$11);
$$060$lcssa70 = 0;
_Drawer2D_MakeTexture($1,$8,$$060$lcssa70,$11);
$57 = HEAP32[$8>>2]|0;
_Mem_Free($57);
STACKTOP = sp;return;
}
$$05965 = 0;$$06064 = 0;
while(1) {
$$sroa$5$0$$sroa_idx38 = (((($6) + ($$05965<<3)|0)) + 4|0);
$$sroa$5$0$copyload = HEAP16[$$sroa$5$0$$sroa_idx38>>1]|0;
$$sroa$7$0$$sroa_idx43 = (((($6) + ($$05965<<3)|0)) + 6|0);
$$sroa$7$0$copyload = HEAP16[$$sroa$7$0$$sroa_idx43>>1]|0;
$14 = $$sroa$5$0$copyload << 16 >> 16;
$15 = $$sroa$7$0$copyload << 16 >> 16;
_String_UNSAFE_Substring($9,$4,$14,$15);
$16 = $9;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$19 = (($16) + 4)|0;
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = $2;
$23 = $22;
HEAP32[$23>>2] = $18;
$24 = (($22) + 4)|0;
$25 = $24;
HEAP32[$25>>2] = $21;
$26 = (_Drawer2D_TextWidth($2)|0);
$27 = (($7) + ($$05965<<2)|0);
HEAP32[$27>>2] = $26;
$28 = (($26) + ($$06064))|0;
$29 = (($$05965) + 1)|0;
$exitcond69 = ($29|0)==($12|0);
if ($exitcond69) {
break;
} else {
$$05965 = $29;$$06064 = $28;
}
}
_Bitmap_AllocateClearedPow2($8,$28,$11);
$30 = ($12|0)>(0);
if (!($30)) {
$$060$lcssa70 = $28;
_Drawer2D_MakeTexture($1,$8,$$060$lcssa70,$11);
$57 = HEAP32[$8>>2]|0;
_Mem_Free($57);
STACKTOP = sp;return;
}
$31 = ((($2)) + 8|0);
$$063 = 0;$$162 = 0;
while(1) {
$$sroa$4$0$$sroa_idx35 = (((($6) + ($$162<<3)|0)) + 2|0);
$$sroa$4$0$copyload36 = HEAP16[$$sroa$4$0$$sroa_idx35>>1]|0;
$$sroa$5$0$$sroa_idx39 = (((($6) + ($$162<<3)|0)) + 4|0);
$$sroa$5$0$copyload40 = HEAP16[$$sroa$5$0$$sroa_idx39>>1]|0;
$$sroa$7$0$$sroa_idx44 = (((($6) + ($$162<<3)|0)) + 6|0);
$$sroa$7$0$copyload45 = HEAP16[$$sroa$7$0$$sroa_idx44>>1]|0;
$32 = $$sroa$5$0$copyload40 << 16 >> 16;
$33 = $$sroa$7$0$copyload45 << 16 >> 16;
_String_UNSAFE_Substring($10,$4,$32,$33);
$34 = $10;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = $2;
$41 = $40;
HEAP32[$41>>2] = $36;
$42 = (($40) + 4)|0;
$43 = $42;
HEAP32[$43>>2] = $39;
$44 = ($$sroa$4$0$copyload36<<16>>16)<(0);
if ($44) {
$45 = HEAP32[$31>>2]|0;
$46 = ((($45)) + 6|0);
$47 = HEAP16[$46>>1]|0;
$48 = $47 | 128;
HEAP16[$46>>1] = $48;
_Drawer2D_DrawText($8,$2,$$063,0);
$49 = HEAP32[$31>>2]|0;
$50 = ((($49)) + 6|0);
$51 = HEAP16[$50>>1]|0;
$52 = $51 & -129;
HEAP16[$50>>1] = $52;
} else {
_Drawer2D_DrawText($8,$2,$$063,0);
}
$53 = (($7) + ($$162<<2)|0);
$54 = HEAP32[$53>>2]|0;
$55 = (($54) + ($$063))|0;
$56 = (($$162) + 1)|0;
$exitcond = ($56|0)==($12|0);
if ($exitcond) {
$$060$lcssa70 = $28;
break;
} else {
$$063 = $55;$$162 = $56;
}
}
_Drawer2D_MakeTexture($1,$8,$$060$lcssa70,$11);
$57 = HEAP32[$8>>2]|0;
_Mem_Free($57);
STACKTOP = sp;return;
}
function _TextGroupWidget_Reduce($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$049$lcssa = 0, $$04952 = 0, $$05051 = 0, $$1 = 0, $$byval_copy1 = 0, $$sroa$0$0$copyload = 0, $$sroa$4$0$$sroa_idx31 = 0, $$sroa$4$0$copyload = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288|0;
$$byval_copy1 = sp + 272|0;
$4 = sp + 256|0;
$5 = sp + 128|0;
$6 = sp;
$7 = sp + 264|0;
$8 = sp + 248|0;
HEAP32[$4>>2] = $3;
$9 = ((($0)) + 36|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)>(0);
if ($11) {
$$sroa$4$0$$sroa_idx31 = ((($8)) + 4|0);
$$04952 = 0;$$05051 = 0;
while(1) {
_TextGroupWidget_UNSAFE_Get($8,$0,$$05051);
$$sroa$0$0$copyload = HEAP32[$8>>2]|0;
$$sroa$4$0$copyload = HEAP16[$$sroa$4$0$$sroa_idx31>>1]|0;
$12 = (($5) + ($$05051<<2)|0);
HEAP32[$12>>2] = -1;
$13 = (($6) + ($$05051<<2)|0);
HEAP32[$13>>2] = -1;
$14 = ($$sroa$4$0$copyload<<16>>16)==(0);
$15 = $$sroa$4$0$copyload&65535;
$16 = (($$04952) + ($15))|0;
if ($14) {
$$1 = $$04952;
} else {
$17 = (($1) + ($$04952)|0);
HEAP32[$12>>2] = $$04952;
_Mem_Copy($17,$$sroa$0$0$copyload,$15);
HEAP32[$13>>2] = $16;
$$1 = $16;
}
$18 = (($$05051) + 1)|0;
$19 = HEAP32[$9>>2]|0;
$20 = ($18|0)<($19|0);
if ($20) {
$$04952 = $$1;$$05051 = $18;
} else {
$$049$lcssa = $$1;
break;
}
}
} else {
$$049$lcssa = 0;
}
$21 = ((($7)) + 2|0);
$22 = (($5) + ($2<<2)|0);
$23 = (($6) + ($2<<2)|0);
$$0 = 0;
while(1) {
$24 = (_TextGroupWidget_NextUrl($1,$$049$lcssa,$$0)|0);
$25 = $$0&65535;
HEAP16[$7>>1] = $25;
$26 = (($24) - ($$0))|0;
$27 = $26&65535;
HEAP16[$21>>1] = $27;
$28 = HEAP32[$22>>2]|0;
$29 = HEAP32[$23>>2]|0;
;HEAP16[$$byval_copy1>>1]=HEAP16[$7>>1]|0;HEAP16[$$byval_copy1+2>>1]=HEAP16[$7+2>>1]|0;HEAP16[$$byval_copy1+4>>1]=HEAP16[$7+4>>1]|0;HEAP16[$$byval_copy1+6>>1]=HEAP16[$7+6>>1]|0;
_TextGroupWidget_Output($$byval_copy1,$28,$29,$4);
$30 = ($24|0)==($$049$lcssa|0);
if ($30) {
break;
}
$31 = HEAP32[$9>>2]|0;
$32 = (_TextGroupWidget_UrlEnd($1,$$049$lcssa,$5,$31,$24)|0);
$33 = $24&65535;
HEAP16[$7>>1] = $33;
$34 = (($32) - ($24))|0;
$35 = $34 | 32768;
$36 = $35&65535;
HEAP16[$21>>1] = $36;
;HEAP16[$$byval_copy1>>1]=HEAP16[$7>>1]|0;HEAP16[$$byval_copy1+2>>1]=HEAP16[$7+2>>1]|0;HEAP16[$$byval_copy1+4>>1]=HEAP16[$7+4>>1]|0;HEAP16[$$byval_copy1+6>>1]=HEAP16[$7+6>>1]|0;
_TextGroupWidget_Output($$byval_copy1,$28,$29,$4);
$$0 = $32;
}
$37 = HEAP32[$4>>2]|0;
$38 = $3;
$39 = (($37) - ($38))|0;
$40 = (3)?($39 >> 3):($39);
STACKTOP = sp;return ($40|0);
}
function _TextGroupWidget_NextUrl($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$043 = 0, $$04450 = 0, $$049 = 0, $$1 = 0, $$1$v = 0, $$14548 = 0, $$2 = 0, $$3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($2|0)<($1|0);
if (!($3)) {
$$043 = $1;
return ($$043|0);
}
$$04450 = $2;
L4: while(1) {
$4 = (($0) + ($$04450)|0);
$5 = HEAP8[$4>>0]|0;
L6: do {
switch ($5<<24>>24) {
case 38: case 104: {
$6 = (($1) - ($$04450))|0;
$7 = ($6|0)<(7);
if ($7) {
$$043 = $1;
label = 18;
break L4;
}
$$049 = $6;$$14548 = $$04450;
while(1) {
$8 = (($0) + ($$14548)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(38);
if (!($10)) {
break;
}
$11 = (($$049) + -2)|0;
$12 = (($$14548) + 2)|0;
$13 = ($$049|0)>(3);
if ($13) {
$$049 = $11;$$14548 = $12;
} else {
$$3 = $12;
break L6;
}
}
$14 = ($$049|0)<(7);
if ($14) {
$$3 = $$14548;
} else {
$15 = (($0) + ($$14548)|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)==(104);
if ($17) {
$18 = (($$14548) + 1)|0;
$19 = (($0) + ($18)|0);
$20 = HEAP8[$19>>0]|0;
$21 = ($20<<24>>24)==(116);
if ($21) {
$22 = (($$14548) + 2)|0;
$23 = (($0) + ($22)|0);
$24 = HEAP8[$23>>0]|0;
$25 = ($24<<24>>24)==(116);
if ($25) {
$26 = (($$14548) + 3)|0;
$27 = (($0) + ($26)|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28<<24>>24)==(112);
if ($29) {
$30 = (($$14548) + 4)|0;
$31 = (($0) + ($30)|0);
$32 = HEAP8[$31>>0]|0;
$33 = ($32<<24>>24)==(115);
$34 = (($$14548) + 5)|0;
$$2 = $33 ? $34 : $30;
$$1$v = $33 ? -5 : -4;
$$1 = (($$1$v) + ($$049))|0;
$35 = ($$1|0)>(2);
if ($35) {
$36 = (($0) + ($$2)|0);
$37 = HEAP8[$36>>0]|0;
$38 = ($37<<24>>24)==(58);
if ($38) {
$39 = (($$2) + 1)|0;
$40 = (($0) + ($39)|0);
$41 = HEAP8[$40>>0]|0;
$42 = ($41<<24>>24)==(47);
if ($42) {
$43 = (($$2) + 2)|0;
$44 = (($0) + ($43)|0);
$45 = HEAP8[$44>>0]|0;
$46 = ($45<<24>>24)==(47);
if ($46) {
$$043 = $$04450;
label = 18;
break L4;
} else {
$$3 = $$2;
}
} else {
$$3 = $$2;
}
} else {
$$3 = $$2;
}
} else {
$$3 = $$2;
}
} else {
$$3 = $$14548;
}
} else {
$$3 = $$14548;
}
} else {
$$3 = $$14548;
}
} else {
$$3 = $$14548;
}
}
break;
}
default: {
$$3 = $$04450;
}
}
} while(0);
$47 = (($$3) + 1)|0;
$48 = ($47|0)<($1|0);
if ($48) {
$$04450 = $47;
} else {
$$043 = $1;
label = 18;
break;
}
}
if ((label|0) == 18) {
return ($$043|0);
}
return (0)|0;
}
function _TextGroupWidget_Output($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$pr = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = HEAP16[$0>>1]|0;
$5 = $4 << 16 >> 16;
$6 = ($5|0)<($2|0);
if (!($6)) {
return;
}
$7 = ((($0)) + 2|0);
$8 = HEAP16[$7>>1]|0;
$9 = ($8<<16>>16)==(0);
if ($9) {
return;
}
$10 = ((($0)) + 4|0);
HEAP16[$10>>1] = $4;
$11 = $8 & 32767;
$12 = ((($0)) + 6|0);
HEAP16[$12>>1] = $11;
$13 = ($5|0)<($1|0);
do {
if ($13) {
$14 = $11&65535;
$15 = (($14) + ($5))|0;
$16 = ($15|0)>($1|0);
if ($16) {
$17 = (($1) - ($5))|0;
$18 = $4&65535;
$19 = (($17) + ($18))|0;
$20 = $19&65535;
HEAP16[$10>>1] = $20;
$21 = (($14) - ($17))|0;
$22 = $21&65535;
HEAP16[$12>>1] = $22;
break;
} else {
return;
}
}
} while(0);
$23 = HEAP16[$10>>1]|0;
$24 = $23 << 16 >> 16;
$25 = HEAP16[$12>>1]|0;
$26 = $25 << 16 >> 16;
$27 = (($24) - ($2))|0;
$28 = (($27) + ($26))|0;
$29 = ($28|0)>(0);
if ($29) {
$30 = (0 - ($27))|0;
$31 = $30&65535;
HEAP16[$12>>1] = $31;
$35 = $31;
} else {
$$pr = HEAP16[$12>>1]|0;
$35 = $$pr;
}
$32 = $23&65535;
$33 = (($32) - ($1))|0;
$34 = $33&65535;
HEAP16[$10>>1] = $34;
$36 = ($35<<16>>16)==(0);
if ($36) {
return;
}
$37 = HEAP32[$3>>2]|0;
$38 = ((($37)) + 8|0);
$39 = $0;
$40 = $39;
$41 = HEAPU16[$40>>1]|(HEAPU16[$40+2>>1]<<16);
$42 = (($39) + 4)|0;
$43 = $42;
$44 = HEAPU16[$43>>1]|(HEAPU16[$43+2>>1]<<16);
$45 = $37;
$46 = $45;
HEAP16[$46>>1]=$41&65535;HEAP16[$46+2>>1]=$41>>>16;
$47 = (($45) + 4)|0;
$48 = $47;
HEAP16[$48>>1]=$44&65535;HEAP16[$48+2>>1]=$44>>>16;
HEAP32[$3>>2] = $38;
return;
}
function _TextGroupWidget_UrlEnd($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $$035$lcssa = 0, $$03546 = 0, $$036$lcssa = 0, $$03643 = 0, $$03645 = 0, $$03744 = 0, $$038$lcssa = 0, $$03849 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ($4|0)<($1|0);
if (!($5)) {
$$038$lcssa = $4;
return ($$038$lcssa|0);
}
$6 = ($3|0)>(0);
$$03849 = $4;
L4: while(1) {
$7 = (($0) + ($$03849)|0);
$8 = HEAP8[$7>>0]|0;
$9 = ($8<<24>>24)==(32);
if ($9) {
$$038$lcssa = $$03849;
label = 17;
break;
}
L7: do {
if ($6) {
$$03744 = 0;
while(1) {
$12 = (($2) + ($$03744<<2)|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($$03849|0)==($13|0);
$10 = (($$03744) + 1)|0;
if ($14) {
break;
}
$11 = ($10|0)<($3|0);
if ($11) {
$$03744 = $10;
} else {
$$1 = $$03849;
break L7;
}
}
$15 = ($$03849|0)==($4|0);
if ($15) {
$$1 = $$03849;
} else {
$16 = ($8<<24>>24)==(62);
if (!($16)) {
$$038$lcssa = $$03849;
label = 17;
break L4;
}
$17 = (($$03849) + 1)|0;
$18 = (($1) - ($17))|0;
$19 = ($18|0)>(1);
L15: do {
if ($19) {
$$03546 = $18;$$03645 = $17;
while(1) {
$20 = (($0) + ($$03645)|0);
$21 = HEAP8[$20>>0]|0;
$22 = ($21<<24>>24)==(38);
if (!($22)) {
$$03643 = $$03645;
break L15;
}
$23 = (($$03546) + -2)|0;
$24 = (($$03645) + 2)|0;
$25 = ($$03546|0)>(3);
if ($25) {
$$03546 = $23;$$03645 = $24;
} else {
$$035$lcssa = $23;$$036$lcssa = $24;
label = 14;
break;
}
}
} else {
$$035$lcssa = $18;$$036$lcssa = $17;
label = 14;
}
} while(0);
if ((label|0) == 14) {
label = 0;
$26 = ($$035$lcssa|0)==(0);
if ($26) {
$$038$lcssa = $$03849;
label = 17;
break L4;
} else {
$$03643 = $$036$lcssa;
}
}
$27 = (($0) + ($$03643)|0);
$28 = HEAP8[$27>>0]|0;
$29 = ($28<<24>>24)==(32);
if ($29) {
$$1 = $$03643;
} else {
$$038$lcssa = $$03849;
label = 17;
break L4;
}
}
} else {
$$1 = $$03849;
}
} while(0);
$30 = (($$1) + 1)|0;
$31 = ($30|0)<($1|0);
if ($31) {
$$03849 = $30;
} else {
$$038$lcssa = $30;
label = 17;
break;
}
}
if ((label|0) == 17) {
return ($$038$lcssa|0);
}
return (0)|0;
}
function _TextGroupWidget_ShiftDown($0) {
$0 = $0|0;
var $$013 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
$2 = HEAP32[$1>>2]|0;
$3 = (($2) + -1)|0;
$4 = ((($0)) + 80|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + (($3*28)|0)|0);
_Gfx_DeleteTexture($6);
$7 = ($2|0)>(1);
$8 = HEAP32[$4>>2]|0;
if (!($7)) {
$$lcssa = $8;
HEAP32[$$lcssa>>2] = 0;
_TextGroupWidget_Redraw($0,0);
return;
}
$$013 = $3;$10 = $8;
while(1) {
$9 = (($10) + (($$013*28)|0)|0);
$11 = (($$013) + -1)|0;
$12 = (($10) + (($11*28)|0)|0);
;HEAP32[$9>>2]=HEAP32[$12>>2]|0;HEAP32[$9+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$9+8>>2]=HEAP32[$12+8>>2]|0;HEAP32[$9+12>>2]=HEAP32[$12+12>>2]|0;HEAP32[$9+16>>2]=HEAP32[$12+16>>2]|0;HEAP32[$9+20>>2]=HEAP32[$12+20>>2]|0;HEAP32[$9+24>>2]=HEAP32[$12+24>>2]|0;
$13 = ($$013|0)>(1);
$14 = HEAP32[$4>>2]|0;
if ($13) {
$$013 = $11;$10 = $14;
} else {
$$lcssa = $14;
break;
}
}
HEAP32[$$lcssa>>2] = 0;
_TextGroupWidget_Redraw($0,0);
return;
}
function _TextGroupWidget_UsedHeight($0) {
$0 = $0|0;
var $$0$lcssa = 0, $$017$lcssa = 0, $$01720 = 0, $$019 = 0, $$118 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 80|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
L1: do {
if ($5) {
$$01720 = 0;$18 = $4;
while(1) {
$6 = (($2) + (($$01720*28)|0)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(0);
if (!($8)) {
$$017$lcssa = $$01720;$$lcssa = $18;
break L1;
}
$9 = (($$01720) + 1)|0;
$10 = HEAP32[$3>>2]|0;
$11 = ($9|0)<($10|0);
if ($11) {
$$01720 = $9;$18 = $10;
} else {
$$017$lcssa = $9;$$lcssa = $10;
break;
}
}
} else {
$$017$lcssa = 0;$$lcssa = $4;
}
} while(0);
$12 = ($$017$lcssa|0)<($$lcssa|0);
if (!($12)) {
$$0$lcssa = 0;
return ($$0$lcssa|0);
}
$$019 = 0;$$118 = $$017$lcssa;
while(1) {
$13 = (((($2) + (($$118*28)|0)|0)) + 10|0);
$14 = HEAP16[$13>>1]|0;
$15 = $14&65535;
$16 = (($$019) + ($15))|0;
$17 = (($$118) + 1)|0;
$exitcond = ($17|0)==($$lcssa|0);
if ($exitcond) {
$$0$lcssa = $16;
break;
} else {
$$019 = $16;$$118 = $17;
}
}
return ($$0$lcssa|0);
}
function _TextGroupWidget_GetSelected($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$031 = 0, $$sroa$3$0$$sroa_idx8 = 0, $$sroa$3$0$copyload = 0, $$sroa$4$0$$sroa_idx10 = 0, $$sroa$4$0$copyload = 0, $$sroa$5$0$$sroa_idx12 = 0, $$sroa$5$0$copyload = 0, $$sroa$6$0$$sroa_idx14 = 0, $$sroa$6$0$copyload = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = ((($0)) + 36|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)>(0);
if (!($7)) {
STACKTOP = sp;return;
}
$8 = ((($0)) + 80|0);
$$031 = 0;
while(1) {
$9 = HEAP32[$8>>2]|0;
$10 = (($9) + (($$031*28)|0)|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)==(0);
if (!($12)) {
$$sroa$3$0$$sroa_idx8 = (((($9) + (($$031*28)|0)|0)) + 4|0);
$$sroa$3$0$copyload = HEAP16[$$sroa$3$0$$sroa_idx8>>1]|0;
$$sroa$4$0$$sroa_idx10 = (((($9) + (($$031*28)|0)|0)) + 6|0);
$$sroa$4$0$copyload = HEAP16[$$sroa$4$0$$sroa_idx10>>1]|0;
$$sroa$5$0$$sroa_idx12 = (((($9) + (($$031*28)|0)|0)) + 8|0);
$$sroa$5$0$copyload = HEAP16[$$sroa$5$0$$sroa_idx12>>1]|0;
$$sroa$6$0$$sroa_idx14 = (((($9) + (($$031*28)|0)|0)) + 10|0);
$$sroa$6$0$copyload = HEAP16[$$sroa$6$0$$sroa_idx14>>1]|0;
$13 = $$sroa$3$0$copyload << 16 >> 16;
$14 = $$sroa$4$0$copyload << 16 >> 16;
$15 = $$sroa$5$0$copyload&65535;
$16 = $$sroa$6$0$copyload&65535;
$17 = (_Gui_Contains($13,$14,$15,$16,$2,$3)|0);
$18 = ($17|0)==(0);
if (!($18)) {
break;
}
}
$21 = (($$031) + 1)|0;
$22 = HEAP32[$5>>2]|0;
$23 = ($21|0)<($22|0);
if ($23) {
$$031 = $21;
} else {
label = 8;
break;
}
}
if ((label|0) == 8) {
STACKTOP = sp;return;
}
$19 = (_TextGroupWidget_GetUrl($0,$1,$$031,$2)|0);
$20 = ($19<<24>>24)==(0);
if (!($20)) {
STACKTOP = sp;return;
}
_TextGroupWidget_UNSAFE_Get($4,$0,$$031);
_String_AppendString($1,$4);
STACKTOP = sp;return;
}
function _TextGroupWidget_GetUrl($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$0 = 0, $$03746 = 0, $$03845 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0, $$sroa$10$0$$sroa_idx24 = 0, $$sroa$10$0$copyload = 0, $$sroa$4$0$$sroa_idx17 = 0, $$sroa$4$0$copyload = 0, $$sroa$9$0$$sroa_idx22 = 0, $$sroa$9$0$copyload = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond$not = 0, $or$cond44 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 3136|0;
$4 = sp + 208|0;
$5 = sp;
$6 = sp + 3112|0;
$7 = sp + 3104|0;
$8 = sp + 3096|0;
$9 = sp + 3088|0;
;HEAP32[$6>>2]=0|0;HEAP32[$6+4>>2]=0|0;HEAP32[$6+8>>2]=0|0;HEAP32[$6+12>>2]=0|0;
$10 = ((($0)) + 80|0);
$11 = HEAP32[$10>>2]|0;
$12 = (((($11) + (($2*28)|0)|0)) + 4|0);
$13 = HEAP16[$12>>1]|0;
$14 = $13 << 16 >> 16;
$15 = (($3) - ($14))|0;
$16 = ((($6)) + 12|0);
HEAP8[$16>>0] = 1;
_TextGroupWidget_UNSAFE_Get($7,$0,$2);
$17 = HEAP8[1408229]|0;
$18 = ($17<<24>>24)==(0);
if (!($18)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$19 = (_TextGroupWidget_Reduce($0,$4,$2,$5)|0);
$20 = ($19|0)>(0);
if (!($20)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$21 = ((($0)) + 44|0);
$22 = ((($6)) + 8|0);
$$03746 = 0;$$03845 = 0;
while(1) {
$$sroa$0$0$$sroa_idx = (($5) + ($$03845<<3)|0);
$$sroa$0$0$copyload = HEAP16[$$sroa$0$0$$sroa_idx>>1]|0;
$$sroa$4$0$$sroa_idx17 = (((($5) + ($$03845<<3)|0)) + 2|0);
$$sroa$4$0$copyload = HEAP16[$$sroa$4$0$$sroa_idx17>>1]|0;
$$sroa$9$0$$sroa_idx22 = (((($5) + ($$03845<<3)|0)) + 4|0);
$$sroa$9$0$copyload = HEAP16[$$sroa$9$0$$sroa_idx22>>1]|0;
$$sroa$10$0$$sroa_idx24 = (((($5) + ($$03845<<3)|0)) + 6|0);
$$sroa$10$0$copyload = HEAP16[$$sroa$10$0$$sroa_idx24>>1]|0;
$25 = $$sroa$9$0$copyload << 16 >> 16;
$26 = $$sroa$10$0$copyload << 16 >> 16;
_String_UNSAFE_Substring($9,$7,$25,$26);
$27 = $9;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = $6;
$34 = $33;
HEAP32[$34>>2] = $29;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $32;
$37 = HEAP32[$21>>2]|0;
HEAP32[$22>>2] = $37;
$38 = (_Drawer2D_TextWidth($6)|0);
$39 = ($$sroa$4$0$copyload<<16>>16)<(0);
$40 = ($15|0)>=($$03746|0);
$or$cond$not = $40 & $39;
$41 = (($38) + ($$03746))|0;
$42 = ($15|0)<($41|0);
$or$cond44 = $or$cond$not & $42;
$23 = (($$03845) + 1)|0;
if ($or$cond44) {
break;
}
$24 = ($23|0)<($19|0);
if ($24) {
$$03746 = $41;$$03845 = $23;
} else {
$$0 = 0;
label = 7;
break;
}
}
if ((label|0) == 7) {
STACKTOP = sp;return ($$0|0);
}
$43 = $$sroa$4$0$copyload & 32767;
$44 = $43&65535;
$45 = $$sroa$0$0$copyload << 16 >> 16;
$46 = (($4) + ($45)|0);
_String_Init_1923($8,$46,$44,$44);
_TextGroupWidget_FormatUrl($1,$8);
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _String_Init_1923($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = $2&65535;
$5 = $3&65535;
HEAP32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP16[$$sroa$4$0$$sroa_idx2>>1] = $4;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 6|0);
HEAP16[$$sroa$5$0$$sroa_idx4>>1] = $5;
return;
}
function _TextGroupWidget_FormatUrl($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$016 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_String_AppendColorless($0,$1);
$2 = HEAP32[$0>>2]|0;
$3 = ((($0)) + 4|0);
$4 = HEAP16[$3>>1]|0;
$5 = ($4&65535)>(1);
if (!($5)) {
return;
}
$6 = $4&65535;
$7 = (($6) + -2)|0;
$$016 = $7;
while(1) {
$8 = (($2) + ($$016)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)==(62);
if ($10) {
$11 = (($$016) + 1)|0;
$12 = (($2) + ($11)|0);
$13 = HEAP8[$12>>0]|0;
$14 = ($13<<24>>24)==(32);
if ($14) {
_String_DeleteAt($0,$11);
_String_DeleteAt($0,$$016);
}
}
$15 = (($$016) + -1)|0;
$16 = ($$016|0)>(0);
if ($16) {
$$016 = $15;
} else {
break;
}
}
return;
}
function _TextGroupWidget_RedrawAll($0) {
$0 = $0|0;
var $$05 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)>(0);
if (!($3)) {
return;
}
$$05 = 0;
while(1) {
_TextGroupWidget_Redraw($0,$$05);
$4 = (($$05) + 1)|0;
$5 = HEAP32[$1>>2]|0;
$6 = ($4|0)<($5|0);
if ($6) {
$$05 = $4;
} else {
break;
}
}
return;
}
function _TextGroupWidget_RedrawAllWithCol($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$02123 = 0, $$022 = 0, $$sroa$0$0$copyload = 0, $$sroa$5$0$$sroa_idx13 = 0, $$sroa$5$0$copyload = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if (!($5)) {
STACKTOP = sp;return;
}
$$sroa$5$0$$sroa_idx13 = ((($2)) + 4|0);
$$02123 = 0;
while(1) {
_TextGroupWidget_UNSAFE_Get($2,$0,$$02123);
$$sroa$0$0$copyload = HEAP32[$2>>2]|0;
$$sroa$5$0$copyload = HEAP16[$$sroa$5$0$$sroa_idx13>>1]|0;
$6 = ($$sroa$5$0$copyload<<16>>16)==(0);
L6: do {
if (!($6)) {
$7 = $$sroa$5$0$copyload&65535;
$8 = (($7) + -1)|0;
$9 = ($$sroa$5$0$copyload<<16>>16)==(1);
if (!($9)) {
$$022 = 0;
while(1) {
$10 = (($$sroa$0$0$copyload) + ($$022)|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(38);
if ($12) {
$13 = (($$022) + 1)|0;
$14 = (($$sroa$0$0$copyload) + ($13)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==($1<<24>>24);
if ($16) {
break;
}
}
$17 = (($$022) + 1)|0;
$18 = ($17|0)<($8|0);
if ($18) {
$$022 = $17;
} else {
break L6;
}
}
_TextGroupWidget_Redraw($0,$$02123);
}
}
} while(0);
$19 = (($$02123) + 1)|0;
$20 = HEAP32[$3>>2]|0;
$21 = ($19|0)<($20|0);
if ($21) {
$$02123 = $19;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _TextGroupWidget_SetFont($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$014 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = (_Drawer2D_FontHeight($1,1)|0);
HEAP32[$2>>2] = $3;
$4 = ((($1)) + 4|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
_Drawer2D_ReducePadding_Height($2,$6,3);
$7 = HEAP32[$2>>2]|0;
$8 = ((($0)) + 40|0);
HEAP32[$8>>2] = $7;
$9 = ((($0)) + 36|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)>(0);
if ($11) {
$12 = $7&65535;
$13 = ((($0)) + 80|0);
$$014 = 0;
while(1) {
$14 = (((($0)) + 48|0) + ($$014)|0);
$15 = HEAP8[$14>>0]|0;
$16 = ($15<<24>>24)==(0);
$17 = $16 ? $12 : 0;
$18 = HEAP32[$13>>2]|0;
$19 = (((($18) + (($$014*28)|0)|0)) + 10|0);
HEAP16[$19>>1] = $17;
$20 = (($$014) + 1)|0;
$21 = HEAP32[$9>>2]|0;
$22 = ($20|0)<($21|0);
if ($22) {
$$014 = $20;
} else {
break;
}
}
}
$23 = ((($0)) + 44|0);
HEAP32[$23>>2] = $1;
$24 = HEAP32[$0>>2]|0;
$25 = ((($24)) + 8|0);
$26 = HEAP32[$25>>2]|0;
FUNCTION_TABLE_vi[$26 & 511]($0);
STACKTOP = sp;return;
}
function _TextGroupWidget_Create($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
HEAP32[$0>>2] = 18648;
$4 = ((($0)) + 36|0);
HEAP32[$4>>2] = $1;
$5 = ((($0)) + 80|0);
HEAP32[$5>>2] = $2;
$6 = ((($0)) + 84|0);
HEAP32[$6>>2] = $3;
return;
}
function _TextGroupWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $$013 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 80|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($0)) + 36|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
return;
}
$$013 = 0;
while(1) {
$7 = (($3) + (($$013*28)|0)|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0);
if (!($9)) {
_Texture_Render($7);
}
$10 = (($$013) + 1)|0;
$11 = HEAP32[$4>>2]|0;
$12 = ($10|0)<($11|0);
if ($12) {
$$013 = $10;
} else {
break;
}
}
return;
}
function _TextGroupWidget_Free($0) {
$0 = $0|0;
var $$08 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 36|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)>(0);
if (!($3)) {
return;
}
$4 = ((($0)) + 80|0);
$$08 = 0;
while(1) {
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + (($$08*28)|0)|0);
_Gfx_DeleteTexture($6);
$7 = (($$08) + 1)|0;
$8 = HEAP32[$1>>2]|0;
$9 = ($7|0)<($8|0);
if ($9) {
$$08 = $7;
} else {
break;
}
}
return;
}
function _TextGroupWidget_Reposition($0) {
$0 = $0|0;
var $$0$lcssa = 0, $$044$ = 0, $$044$lcssa = 0, $$04450 = 0, $$04548 = 0, $$04649 = 0, $$051 = 0, $$147 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 80|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 36|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)>(0);
if ($5) {
$6 = HEAP32[$3>>2]|0;
$$04450 = 0;$$04649 = 0;$$051 = 0;
while(1) {
$7 = (((($2) + (($$04649*28)|0)|0)) + 8|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$10 = ($$04450|0)>($9|0);
$$044$ = $10 ? $$04450 : $9;
$11 = (((($2) + (($$04649*28)|0)|0)) + 10|0);
$12 = HEAP16[$11>>1]|0;
$13 = $12&65535;
$14 = (($$051) + ($13))|0;
$15 = (($$04649) + 1)|0;
$16 = ($15|0)<($6|0);
if ($16) {
$$04450 = $$044$;$$04649 = $15;$$051 = $14;
} else {
$$0$lcssa = $14;$$044$lcssa = $$044$;
break;
}
}
} else {
$$0$lcssa = 0;$$044$lcssa = 0;
}
$17 = ((($0)) + 12|0);
HEAP32[$17>>2] = $$044$lcssa;
$18 = ((($0)) + 16|0);
HEAP32[$18>>2] = $$0$lcssa;
_Widget_CalcPosition($0);
$19 = HEAP32[$3>>2]|0;
$20 = ($19|0)>(0);
if (!($20)) {
return;
}
$21 = ((($0)) + 8|0);
$22 = HEAP32[$21>>2]|0;
$23 = ((($0)) + 22|0);
$24 = ((($0)) + 24|0);
$$04548 = $22;$$147 = 0;
while(1) {
$25 = HEAP8[$23>>0]|0;
$26 = HEAP32[$24>>2]|0;
$27 = (((($2) + (($$147*28)|0)|0)) + 8|0);
$28 = HEAP16[$27>>1]|0;
$29 = $28&65535;
$30 = HEAP32[351858]|0;
$31 = (_Gui_CalcPos($25,$26,$29,$30)|0);
$32 = $31&65535;
$33 = (((($2) + (($$147*28)|0)|0)) + 4|0);
HEAP16[$33>>1] = $32;
$34 = $$04548&65535;
$35 = (((($2) + (($$147*28)|0)|0)) + 6|0);
HEAP16[$35>>1] = $34;
$36 = (((($2) + (($$147*28)|0)|0)) + 10|0);
$37 = HEAP16[$36>>1]|0;
$38 = $37&65535;
$39 = (($$04548) + ($38))|0;
$40 = (($$147) + 1)|0;
$41 = HEAP32[$3>>2]|0;
$42 = ($40|0)<($41|0);
if ($42) {
$$04548 = $39;$$147 = $40;
} else {
break;
}
}
return;
}
function _SpecialInputWidget_Redraw($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 44|0);
$2 = HEAP32[$1>>2]|0;
$3 = (((($0)) + 92|0) + (($2*28)|0)|0);
_SpecialInputWidget_Make($0,$3);
$4 = ((($0)) + 64|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$7 = ((($0)) + 12|0);
HEAP32[$7>>2] = $6;
$8 = ((($0)) + 48|0);
HEAP8[$8>>0] = 0;
$9 = HEAP32[$0>>2]|0;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
FUNCTION_TABLE_vi[$11 & 511]($0);
return;
}
function _SpecialInputWidget_Make($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$0$0$copyload = 0, $$sroa$013$0$copyload = 0, $$sroa$5$0$$sroa_idx10 = 0, $$sroa$5$0$copyload = 0, $$sroa$516$0$$sroa_idx17 = 0, $$sroa$516$0$copyload = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$2 = sp + 16|0;
$3 = sp + 8|0;
$4 = sp;
_SpecialInputWidget_MeasureTitles($3,$0);
$$sroa$013$0$copyload = HEAP32[$3>>2]|0;
$$sroa$516$0$$sroa_idx17 = ((($3)) + 4|0);
$$sroa$516$0$copyload = HEAP32[$$sroa$516$0$$sroa_idx17>>2]|0;
_SpecialInputWidget_MeasureContent($4,$0,$1);
$$sroa$0$0$copyload = HEAP32[$4>>2]|0;
$$sroa$5$0$$sroa_idx10 = ((($4)) + 4|0);
$$sroa$5$0$copyload = HEAP32[$$sroa$5$0$$sroa_idx10>>2]|0;
$5 = ($$sroa$013$0$copyload|0)>($$sroa$0$0$copyload|0);
$6 = $5 ? $$sroa$013$0$copyload : $$sroa$0$0$copyload;
$7 = (($$sroa$5$0$copyload) + ($$sroa$516$0$copyload))|0;
$8 = ((($0)) + 56|0);
_Gfx_DeleteTexture($8);
_Bitmap_AllocateClearedPow2($2,$6,$7);
_SpecialInputWidget_DrawTitles($0,$2);
_Drawer2D_Clear($2,-937550306,0,$$sroa$516$0$copyload,$6,$$sroa$5$0$copyload);
_SpecialInputWidget_DrawContent($0,$1,$2,$$sroa$516$0$copyload);
_Drawer2D_MakeTexture($8,$2,$6,$7);
$9 = HEAP32[$2>>2]|0;
_Mem_Free($9);
STACKTOP = sp;return;
}
function _SpecialInputWidget_MeasureTitles($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$sroa$6$0$$sroa_idx7 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($1)) + 84|0);
$4 = HEAP32[$3>>2]|0;
_DrawTextArgs_MakeEmpty($2,$4,0);
$5 = ((($1)) + 104|0);
$6 = $5;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = $2;
$13 = $12;
HEAP32[$13>>2] = $8;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
$16 = (_Drawer2D_TextWidth($2)|0);
$17 = (($16) + 10)|0;
$18 = ((($1)) + 100|0);
HEAP32[$18>>2] = $17;
$19 = ((($1)) + 132|0);
$20 = $19;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = (($20) + 4)|0;
$24 = $23;
$25 = HEAP32[$24>>2]|0;
$26 = $2;
$27 = $26;
HEAP32[$27>>2] = $22;
$28 = (($26) + 4)|0;
$29 = $28;
HEAP32[$29>>2] = $25;
$30 = (_Drawer2D_TextWidth($2)|0);
$31 = (($30) + 10)|0;
$32 = ((($1)) + 128|0);
HEAP32[$32>>2] = $31;
$33 = (($31) + ($17))|0;
$34 = ((($1)) + 160|0);
$35 = $34;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = (($35) + 4)|0;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = $2;
$42 = $41;
HEAP32[$42>>2] = $37;
$43 = (($41) + 4)|0;
$44 = $43;
HEAP32[$44>>2] = $40;
$45 = (_Drawer2D_TextWidth($2)|0);
$46 = (($45) + 10)|0;
$47 = ((($1)) + 156|0);
HEAP32[$47>>2] = $46;
$48 = (($46) + ($33))|0;
$49 = ((($1)) + 188|0);
$50 = $49;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = (($50) + 4)|0;
$54 = $53;
$55 = HEAP32[$54>>2]|0;
$56 = $2;
$57 = $56;
HEAP32[$57>>2] = $52;
$58 = (($56) + 4)|0;
$59 = $58;
HEAP32[$59>>2] = $55;
$60 = (_Drawer2D_TextWidth($2)|0);
$61 = (($60) + 10)|0;
$62 = ((($1)) + 184|0);
HEAP32[$62>>2] = $61;
$63 = (($61) + ($48))|0;
$64 = ((($1)) + 216|0);
$65 = $64;
$66 = $65;
$67 = HEAP32[$66>>2]|0;
$68 = (($65) + 4)|0;
$69 = $68;
$70 = HEAP32[$69>>2]|0;
$71 = $2;
$72 = $71;
HEAP32[$72>>2] = $67;
$73 = (($71) + 4)|0;
$74 = $73;
HEAP32[$74>>2] = $70;
$75 = (_Drawer2D_TextWidth($2)|0);
$76 = (($75) + 10)|0;
$77 = ((($1)) + 212|0);
HEAP32[$77>>2] = $76;
$78 = (($76) + ($63))|0;
$79 = (_Drawer2D_TextHeight($2)|0);
$80 = ((($1)) + 88|0);
HEAP32[$80>>2] = $79;
HEAP32[$0>>2] = $78;
$$sroa$6$0$$sroa_idx7 = ((($0)) + 4|0);
HEAP32[$$sroa$6$0$$sroa_idx7>>2] = $79;
STACKTOP = sp;return;
}
function _SpecialInputWidget_MeasureContent($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0$lcssa = 0, $$03233 = 0, $$034 = 0, $$lcssa = 0, $$sroa$0$0$copyload = 0, $$sroa$7$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx17 = 0, $$sroa$7$0$copyload = 0, $$sroa$7$0$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $phitmp = 0, $phitmp$le = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$3 = sp + 8|0;
$4 = sp;
$5 = ((($1)) + 84|0);
$6 = HEAP32[$5>>2]|0;
_DrawTextArgs_MakeEmpty($3,$6,0);
$7 = ((($2)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8&65535;
$10 = ((($3)) + 4|0);
HEAP16[$10>>1] = $9;
$11 = ((($2)) + 24|0);
$12 = HEAP16[$11>>1]|0;
$13 = ($12<<16>>16)==(0);
if ($13) {
$$0$lcssa = 5;$$lcssa = 0;$$sroa$7$0$lcssa = 0;
} else {
$14 = ((($2)) + 20|0);
$$03233 = 0;$$034 = 0;
while(1) {
$15 = HEAP32[$14>>2]|0;
$16 = (($15) + ($$03233)|0);
HEAP32[$3>>2] = $16;
_Drawer2D_MeasureText($4,$3);
$$sroa$0$0$copyload = HEAP32[$4>>2]|0;
$17 = ($$034|0)>($$sroa$0$0$copyload|0);
$18 = $17 ? $$034 : $$sroa$0$0$copyload;
$19 = HEAP32[$7>>2]|0;
$20 = (($19) + ($$03233))|0;
$21 = HEAP16[$11>>1]|0;
$22 = $21&65535;
$23 = ($20|0)<($22|0);
if ($23) {
$$03233 = $20;$$034 = $18;
} else {
break;
}
}
$$sroa$7$0$$sroa_idx16 = ((($4)) + 4|0);
$$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx16>>2]|0;
$phitmp$le = (($$sroa$7$0$copyload) + 5)|0;
$24 = $21&65535;
$phitmp = (($18) + 5)|0;
$$0$lcssa = $phitmp;$$lcssa = $24;$$sroa$7$0$lcssa = $phitmp$le;
}
$25 = ((($1)) + 36|0);
HEAP32[$25>>2] = $$0$lcssa;
$26 = ((($1)) + 40|0);
HEAP32[$26>>2] = $$sroa$7$0$lcssa;
$27 = HEAP32[$7>>2]|0;
$28 = (($$lcssa|0) / ($27|0))&-1;
$29 = HEAP32[$2>>2]|0;
$30 = (_Math_CeilDiv($28,$29)|0);
$31 = HEAP32[$25>>2]|0;
$32 = HEAP32[$2>>2]|0;
$33 = Math_imul($32, $31)|0;
$34 = HEAP32[$26>>2]|0;
$35 = Math_imul($34, $30)|0;
HEAP32[$0>>2] = $33;
$$sroa$7$0$$sroa_idx17 = ((($0)) + 4|0);
HEAP32[$$sroa$7$0$$sroa_idx17>>2] = $35;
STACKTOP = sp;return;
}
function _SpecialInputWidget_DrawTitles($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$2 = sp;
$3 = ((($0)) + 84|0);
$4 = HEAP32[$3>>2]|0;
_DrawTextArgs_MakeEmpty($2,$4,0);
$5 = ((($0)) + 44|0);
$6 = ((($0)) + 88|0);
$7 = ((($0)) + 104|0);
$8 = $7;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $2;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $13;
$18 = HEAP32[$5>>2]|0;
$19 = ($18|0)==(0);
$20 = $19 ? -937550306 : 2130706432;
$21 = ((($0)) + 100|0);
$22 = HEAP32[$21>>2]|0;
$23 = HEAP32[$6>>2]|0;
_Drawer2D_Clear($1,$20,0,0,$22,$23);
_Drawer2D_DrawText($1,$2,5,0);
$24 = ((($0)) + 132|0);
$25 = $24;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = $2;
$32 = $31;
HEAP32[$32>>2] = $27;
$33 = (($31) + 4)|0;
$34 = $33;
HEAP32[$34>>2] = $30;
$35 = HEAP32[$5>>2]|0;
$36 = ($35|0)==(1);
$37 = $36 ? -937550306 : 2130706432;
$38 = ((($0)) + 128|0);
$39 = HEAP32[$38>>2]|0;
$40 = HEAP32[$6>>2]|0;
_Drawer2D_Clear($1,$37,$22,0,$39,$40);
$41 = (($22) + 5)|0;
_Drawer2D_DrawText($1,$2,$41,0);
$42 = (($39) + ($22))|0;
$43 = ((($0)) + 160|0);
$44 = $43;
$45 = $44;
$46 = HEAP32[$45>>2]|0;
$47 = (($44) + 4)|0;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = $2;
$51 = $50;
HEAP32[$51>>2] = $46;
$52 = (($50) + 4)|0;
$53 = $52;
HEAP32[$53>>2] = $49;
$54 = HEAP32[$5>>2]|0;
$55 = ($54|0)==(2);
$56 = $55 ? -937550306 : 2130706432;
$57 = ((($0)) + 156|0);
$58 = HEAP32[$57>>2]|0;
$59 = HEAP32[$6>>2]|0;
_Drawer2D_Clear($1,$56,$42,0,$58,$59);
$60 = (($42) + 5)|0;
_Drawer2D_DrawText($1,$2,$60,0);
$61 = (($58) + ($42))|0;
$62 = ((($0)) + 188|0);
$63 = $62;
$64 = $63;
$65 = HEAP32[$64>>2]|0;
$66 = (($63) + 4)|0;
$67 = $66;
$68 = HEAP32[$67>>2]|0;
$69 = $2;
$70 = $69;
HEAP32[$70>>2] = $65;
$71 = (($69) + 4)|0;
$72 = $71;
HEAP32[$72>>2] = $68;
$73 = HEAP32[$5>>2]|0;
$74 = ($73|0)==(3);
$75 = $74 ? -937550306 : 2130706432;
$76 = ((($0)) + 184|0);
$77 = HEAP32[$76>>2]|0;
$78 = HEAP32[$6>>2]|0;
_Drawer2D_Clear($1,$75,$61,0,$77,$78);
$79 = (($61) + 5)|0;
_Drawer2D_DrawText($1,$2,$79,0);
$80 = (($77) + ($61))|0;
$81 = ((($0)) + 216|0);
$82 = $81;
$83 = $82;
$84 = HEAP32[$83>>2]|0;
$85 = (($82) + 4)|0;
$86 = $85;
$87 = HEAP32[$86>>2]|0;
$88 = $2;
$89 = $88;
HEAP32[$89>>2] = $84;
$90 = (($88) + 4)|0;
$91 = $90;
HEAP32[$91>>2] = $87;
$92 = HEAP32[$5>>2]|0;
$93 = ($92|0)==(4);
$94 = $93 ? -937550306 : 2130706432;
$95 = ((($0)) + 212|0);
$96 = HEAP32[$95>>2]|0;
$97 = HEAP32[$6>>2]|0;
_Drawer2D_Clear($1,$94,$80,0,$96,$97);
$98 = (($80) + 5)|0;
_Drawer2D_DrawText($1,$2,$98,0);
STACKTOP = sp;return;
}
function _SpecialInputWidget_DrawContent($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $$029 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp;
$5 = HEAP32[$1>>2]|0;
$6 = ((($0)) + 84|0);
$7 = HEAP32[$6>>2]|0;
_DrawTextArgs_MakeEmpty($4,$7,0);
$8 = ((($1)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = $9&65535;
$11 = ((($4)) + 4|0);
HEAP16[$11>>1] = $10;
$12 = ((($1)) + 24|0);
$13 = HEAP16[$12>>1]|0;
$14 = ($13<<16>>16)==(0);
if ($14) {
STACKTOP = sp;return;
}
$15 = ((($1)) + 20|0);
$16 = ((($0)) + 36|0);
$17 = ((($0)) + 40|0);
$$029 = 0;
while(1) {
$18 = HEAP32[$15>>2]|0;
$19 = (($18) + ($$029)|0);
HEAP32[$4>>2] = $19;
$20 = HEAP32[$8>>2]|0;
$21 = (($$029|0) / ($20|0))&-1;
$22 = (($21|0) / ($5|0))&-1;
$23 = Math_imul($22, $5)|0;
$24 = (($21) - ($23))|0;
$25 = HEAP32[$16>>2]|0;
$26 = Math_imul($25, $24)|0;
$27 = HEAP32[$17>>2]|0;
$28 = Math_imul($27, $22)|0;
$29 = (($28) + ($3))|0;
_Drawer2D_DrawText($2,$4,$26,$29);
$30 = HEAP32[$8>>2]|0;
$31 = (($30) + ($$029))|0;
$32 = HEAP16[$12>>1]|0;
$33 = $32&65535;
$34 = ($31|0)<($33|0);
if ($34) {
$$029 = $31;
} else {
break;
}
}
STACKTOP = sp;return;
}
function _SpecialInputWidget_UpdateCols($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
_SpecialInputWidget_UpdateColString($0);
$1 = ((($0)) + 112|0);
$2 = ((($0)) + 232|0);
$3 = $2;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
$13 = ((($0)) + 44|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($14|0)==(0);
if (!($15)) {
return;
}
$16 = ((($0)) + 20|0);
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)==(0);
if ($18) {
$19 = ((($0)) + 48|0);
HEAP8[$19>>0] = 1;
return;
} else {
_SpecialInputWidget_Redraw($0);
return;
}
}
function _SpecialInputWidget_UpdateColString($0) {
$0 = $0|0;
var $$0$off = 0, $$016 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 240|0);
$2 = ((($0)) + 232|0);
HEAP32[$2>>2] = $1;
$3 = ((($0)) + 236|0);
HEAP16[$3>>1] = 0;
$4 = ((($0)) + 238|0);
HEAP16[$4>>1] = 1024;
$$016 = 0;
while(1) {
$$0$off = (($$016) + -65)|0;
$5 = ($$0$off>>>0)<(6);
if (!($5)) {
$6 = (154320 + ($$016<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7>>>0)>(16777215);
if ($8) {
_String_Append($2,38);
$9 = $$016&255;
_String_Append($2,$9);
_String_Append($2,37);
_String_Append($2,$9);
}
}
$10 = (($$016) + 1)|0;
$exitcond = ($10|0)==(256);
if ($exitcond) {
break;
} else {
$$016 = $10;
}
}
return;
}
function _SpecialInputWidget_SetActive($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 20|0);
HEAP8[$2>>0] = $1;
$3 = ($1<<24>>24)==(0);
if (!($3)) {
$4 = ((($0)) + 48|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)==(0);
if (!($6)) {
_SpecialInputWidget_Redraw($0);
}
}
$7 = HEAP32[$0>>2]|0;
$8 = ((($7)) + 8|0);
$9 = HEAP32[$8>>2]|0;
FUNCTION_TABLE_vi[$9 & 511]($0);
return;
}
function _SpecialInputWidget_Create($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
_Widget_Reset($0);
HEAP32[$0>>2] = 18692;
$3 = ((($0)) + 23|0);
HEAP8[$3>>0] = 2;
$4 = ((($0)) + 84|0);
HEAP32[$4>>2] = $1;
$5 = ((($0)) + 52|0);
HEAP32[$5>>2] = $2;
_SpecialInputWidget_InitTabs($0);
return;
}
function _SpecialInputWidget_InitTabs($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
_SpecialInputWidget_UpdateColString($0);
$1 = ((($0)) + 92|0);
$2 = ((($0)) + 232|0);
_SpecialInputTab_Init($1,18736,10,4,$2);
$3 = ((($0)) + 120|0);
_SpecialInputTab_Init($3,18744,16,1,18752);
$4 = ((($0)) + 148|0);
_SpecialInputTab_Init($4,18760,17,1,18768);
$5 = ((($0)) + 176|0);
_SpecialInputTab_Init($5,18776,17,1,18784);
$6 = ((($0)) + 204|0);
_SpecialInputTab_Init($6,18792,16,1,18800);
return;
}
function _SpecialInputTab_Init($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$5 = ((($0)) + 12|0);
$6 = $1;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = $5;
$13 = $12;
HEAP32[$13>>2] = $8;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
$16 = ((($0)) + 8|0);
HEAP32[$16>>2] = 0;
$17 = ((($0)) + 20|0);
$18 = $4;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = (($18) + 4)|0;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = $17;
$25 = $24;
HEAP32[$25>>2] = $20;
$26 = (($24) + 4)|0;
$27 = $26;
HEAP32[$27>>2] = $23;
HEAP32[$0>>2] = $2;
$28 = ((($0)) + 4|0);
HEAP32[$28>>2] = $3;
return;
}
function _SpecialInputWidget_Render($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 56|0);
_Texture_Render($2);
return;
}
function _SpecialInputWidget_Free($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 56|0);
_Gfx_DeleteTexture($1);
return;
}
function _SpecialInputWidget_Reposition($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 20|0);
$2 = HEAP8[$1>>0]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
$8 = 0;
} else {
$4 = ((($0)) + 66|0);
$5 = HEAP16[$4>>1]|0;
$6 = $5&65535;
$8 = $6;
}
$7 = ((($0)) + 16|0);
HEAP32[$7>>2] = $8;
_Widget_CalcPosition($0);
$9 = ((($0)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10&65535;
$12 = ((($0)) + 60|0);
HEAP16[$12>>1] = $11;
$13 = ((($0)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = $14&65535;
$16 = ((($0)) + 62|0);
HEAP16[$16>>1] = $15;
return;
}
function _SpecialInputWidget_PointerDown($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = ((($0)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($2) - ($5))|0;
$7 = ((($0)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$9 = (($3) - ($8))|0;
$10 = (_SpecialInputWidget_IntersectsTitle($0,$6,$9)|0);
$11 = ($10<<24>>24)==(0);
if ($11) {
_SpecialInputWidget_IntersectsBody($0,$6,$9);
return 1;
} else {
_SpecialInputWidget_Redraw($0);
return 1;
}
return (0)|0;
}
function _SpecialInputWidget_IntersectsTitle($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$018 = 0, $$01921$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($0)) + 88|0);
$4 = ((($0)) + 100|0);
$5 = HEAP32[$4>>2]|0;
$6 = HEAP32[$3>>2]|0;
$7 = (_Gui_Contains(0,0,$5,$6,$1,$2)|0);
$8 = ($7|0)==(0);
if ($8) {
$10 = ((($0)) + 128|0);
$11 = HEAP32[$10>>2]|0;
$12 = HEAP32[$3>>2]|0;
$13 = (_Gui_Contains($5,0,$11,$12,$1,$2)|0);
$14 = ($13|0)==(0);
if ($14) {
$15 = (($11) + ($5))|0;
$16 = ((($0)) + 156|0);
$17 = HEAP32[$16>>2]|0;
$18 = HEAP32[$3>>2]|0;
$19 = (_Gui_Contains($15,0,$17,$18,$1,$2)|0);
$20 = ($19|0)==(0);
if ($20) {
$21 = (($17) + ($15))|0;
$22 = ((($0)) + 184|0);
$23 = HEAP32[$22>>2]|0;
$24 = HEAP32[$3>>2]|0;
$25 = (_Gui_Contains($21,0,$23,$24,$1,$2)|0);
$26 = ($25|0)==(0);
if ($26) {
$27 = (($23) + ($21))|0;
$28 = ((($0)) + 212|0);
$29 = HEAP32[$28>>2]|0;
$30 = HEAP32[$3>>2]|0;
$31 = (_Gui_Contains($27,0,$29,$30,$1,$2)|0);
$32 = ($31|0)==(0);
if ($32) {
$$018 = 0;
return ($$018|0);
} else {
$$01921$lcssa = 4;
}
} else {
$$01921$lcssa = 3;
}
} else {
$$01921$lcssa = 2;
}
} else {
$$01921$lcssa = 1;
}
} else {
$$01921$lcssa = 0;
}
$9 = ((($0)) + 44|0);
HEAP32[$9>>2] = $$01921$lcssa;
$$018 = 1;
return ($$018|0);
}
function _SpecialInputWidget_IntersectsBody($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$sroa$0$0$$sroa_idx = 0, $$sroa$0$0$copyload = 0, $$sroa$4$0$$sroa_idx4 = 0, $$sroa$4$0$copyload = 0, $$sroa$69$0$$sroa_idx10 = 0, $$sroa$69$0$copyload = 0, $$sroa$7$0$$sroa_idx12 = 0, $$sroa$7$0$copyload = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
$4 = ((($0)) + 44|0);
$5 = HEAP32[$4>>2]|0;
$$sroa$0$0$$sroa_idx = (((($0)) + 92|0) + (($5*28)|0)|0);
$$sroa$0$0$copyload = HEAP32[$$sroa$0$0$$sroa_idx>>2]|0;
$$sroa$4$0$$sroa_idx4 = (((((($0)) + 92|0) + (($5*28)|0)|0)) + 4|0);
$$sroa$4$0$copyload = HEAP32[$$sroa$4$0$$sroa_idx4>>2]|0;
$$sroa$69$0$$sroa_idx10 = (((((($0)) + 92|0) + (($5*28)|0)|0)) + 20|0);
$$sroa$69$0$copyload = HEAP32[$$sroa$69$0$$sroa_idx10>>2]|0;
$$sroa$7$0$$sroa_idx12 = (((((($0)) + 92|0) + (($5*28)|0)|0)) + 24|0);
$$sroa$7$0$copyload = HEAP16[$$sroa$7$0$$sroa_idx12>>1]|0;
$6 = ((($0)) + 88|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($2) - ($7))|0;
$9 = ((($0)) + 36|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($1|0) / ($10|0))&-1;
$12 = ((($0)) + 40|0);
$13 = HEAP32[$12>>2]|0;
$14 = (($8|0) / ($13|0))&-1;
$15 = Math_imul($14, $$sroa$0$0$copyload)|0;
$16 = (($15) + ($11))|0;
$17 = Math_imul($16, $$sroa$4$0$copyload)|0;
$18 = $$sroa$7$0$copyload&65535;
$19 = ($17|0)<($18|0);
if (!($19)) {
STACKTOP = sp;return;
}
$20 = (($$sroa$69$0$copyload) + ($17)|0);
_String_Init_1923($3,$20,$$sroa$4$0$copyload,0);
$21 = HEAP32[$4>>2]|0;
$22 = ($21|0)==(0);
if ($22) {
$23 = ((($3)) + 4|0);
HEAP16[$23>>1] = 2;
}
$24 = ((($0)) + 52|0);
$25 = HEAP32[$24>>2]|0;
_InputWidget_AppendText($25,$3);
STACKTOP = sp;return;
}
function _Window_GotClipboardText($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
_String_FromReadonly($1,$0);
$2 = HEAP32[351860]|0;
$3 = ($2|0)==(0|0);
if ($3) {
STACKTOP = sp;return;
}
$4 = HEAP32[351861]|0;
FUNCTION_TABLE_vii[$2 & 127]($1,$4);
HEAP32[351860] = 0;
STACKTOP = sp;return;
}
function _Window_OnTextChanged($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 816|0;
$1 = sp;
$2 = sp + 800|0;
HEAP32[$2>>2] = $1;
$3 = ((($2)) + 4|0);
HEAP16[$3>>1] = 0;
$4 = ((($2)) + 6|0);
HEAP16[$4>>1] = 800;
$5 = (_String_CalcLen($0,800)|0);
_String_AppendUtf8($2,$0,$5);
_Event_RaiseString((1258356),$2);
STACKTOP = sp;return;
}
function _Display_ScaleX($0) {
$0 = $0|0;
var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+($0|0));
$2 = +HEAPF32[4702];
$3 = $2 * $1;
$4 = (~~(($3)));
return ($4|0);
}
function _Display_ScaleY($0) {
$0 = $0|0;
var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (+($0|0));
$2 = +HEAPF32[4703];
$3 = $2 * $1;
$4 = (~~(($3)));
return ($4|0);
}
function _Cursor_SetVisible($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP8[38945]|0;
$2 = ($1<<24>>24)==($0<<24>>24);
if ($2) {
return;
}
HEAP8[38945] = $0;
_Cursor_DoSetVisible($0);
return;
}
function _Cursor_DoSetVisible($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0<<24>>24)==(0);
if ($1) {
$3 = _emscripten_asm_const_i(5)|0;
return;
} else {
$2 = _emscripten_asm_const_i(4)|0;
return;
}
}
function _Window_ShowDialog($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP8[38945]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
_Cursor_SetVisible(1);
_Window_DoShowDialog($0,$1);
_Cursor_SetVisible(0);
return;
} else {
_Window_DoShowDialog($0,$1);
return;
}
}
function _Window_DoShowDialog($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = _emscripten_asm_const_iii(6,($0|0),($1|0))|0;
return;
}
function _GraphicsMode_MakeDefault($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[351857]|0;
$2 = ($1|0)<(15);
$3 = $2&1;
$4 = ((($0)) + 16|0);
HEAP32[$4>>2] = $3;
$5 = ((($0)) + 12|0);
HEAP32[$5>>2] = 0;
switch ($1|0) {
case 4: {
HEAP32[$0>>2] = 2;
$14 = ((($0)) + 4|0);
HEAP32[$14>>2] = 2;
$15 = ((($0)) + 8|0);
HEAP32[$15>>2] = 1;
return;
break;
}
case 24: {
HEAP32[$0>>2] = 8;
$6 = ((($0)) + 4|0);
HEAP32[$6>>2] = 8;
$7 = ((($0)) + 8|0);
HEAP32[$7>>2] = 8;
return;
break;
}
case 16: {
HEAP32[$0>>2] = 5;
$8 = ((($0)) + 4|0);
HEAP32[$8>>2] = 6;
$9 = ((($0)) + 8|0);
HEAP32[$9>>2] = 5;
return;
break;
}
case 15: {
HEAP32[$0>>2] = 5;
$10 = ((($0)) + 4|0);
HEAP32[$10>>2] = 5;
$11 = ((($0)) + 8|0);
HEAP32[$11>>2] = 5;
return;
break;
}
case 8: {
HEAP32[$0>>2] = 3;
$12 = ((($0)) + 4|0);
HEAP32[$12>>2] = 3;
$13 = ((($0)) + 8|0);
HEAP32[$13>>2] = 2;
return;
break;
}
default: {
_Logger_Abort2($1,39092);
return;
}
}
}
function _Window_Init() {
var $0 = 0, $1 = 0, $10 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = _emscripten_asm_const_i(7)|0;
HEAP32[352047] = $0;
$1 = _emscripten_asm_const_i(8)|0;
HEAP32[352048] = $1;
HEAP32[351857] = 24;
$2 = (+_emscripten_get_device_pixel_ratio());
$3 = $2;
HEAPF32[4702] = $3;
HEAPF32[4703] = $3;
$4 = _emscripten_asm_const_i(9)|0;
$5 = _emscripten_asm_const_i(10)|0;
$6 = _emscripten_asm_const_i(11)|0;
$7 = $6&255;
HEAP8[1408267] = $7;
$8 = $6 & 255;
$9 = ($8|0)==(0);
$10 = $9&1;
HEAP32[315331] = $10;
return;
}
function _Window_Create($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408300] = 1;
HEAP8[1408301] = 1;
_Window_HookEvents();
_Window_RefreshBounds();
return;
}
function _Window_HookEvents() {
var label = 0, sp = 0;
sp = STACKTOP;
(_emscripten_set_wheel_callback_on_thread((39815|0),(0|0),0,(3|0),((2)|0))|0);
(_emscripten_set_mousedown_callback_on_thread((39823|0),(0|0),0,(4|0),((2)|0))|0);
(_emscripten_set_mouseup_callback_on_thread((39823|0),(0|0),0,(4|0),((2)|0))|0);
(_emscripten_set_mousemove_callback_on_thread((39823|0),(0|0),0,(5|0),((2)|0))|0);
(_emscripten_set_focus_callback_on_thread((39815|0),(0|0),0,(6|0),((2)|0))|0);
(_emscripten_set_blur_callback_on_thread((39815|0),(0|0),0,(6|0),((2)|0))|0);
(_emscripten_set_resize_callback_on_thread((39815|0),(0|0),0,(7|0),((2)|0))|0);
(_emscripten_set_beforeunload_callback_on_thread((0|0),(8|0),((1)|0))|0);
(_emscripten_set_keydown_callback_on_thread((39815|0),(0|0),0,(9|0),((2)|0))|0);
(_emscripten_set_keyup_callback_on_thread((39815|0),(0|0),0,(9|0),((2)|0))|0);
(_emscripten_set_keypress_callback_on_thread((39815|0),(0|0),0,(10|0),((2)|0))|0);
(_emscripten_set_touchstart_callback_on_thread((39815|0),(0|0),0,(11|0),((2)|0))|0);
(_emscripten_set_touchmove_callback_on_thread((39815|0),(0|0),0,(12|0),((2)|0))|0);
(_emscripten_set_touchend_callback_on_thread((39815|0),(0|0),0,(13|0),((2)|0))|0);
(_emscripten_set_touchcancel_callback_on_thread((39815|0),(0|0),0,(13|0),((2)|0))|0);
return;
}
function _Window_RefreshBounds() {
var label = 0, sp = 0;
sp = STACKTOP;
(_emscripten_get_canvas_element_size((0|0),(1407432|0),(1407436|0))|0);
return;
}
function _Window_MouseWheel($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($1)) + 80|0);
$4 = +HEAPF64[$3>>3];
$5 = $4;
$6 = (_Math_Sign($5)|0);
$7 = (0 - ($6))|0;
$8 = (+($7|0));
_Mouse_ScrollWheel($8);
_Window_CorrectFocus();
return 1;
}
function _Window_MouseButton($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($0|0)==(5);
$4 = $3&1;
_Window_CorrectFocus();
$5 = ((($1)) + 40|0);
$6 = HEAP16[$5>>1]|0;
switch ($6<<16>>16) {
case 0: {
_Input_SetPressed(130,$4);
return 1;
break;
}
case 1: {
_Input_SetPressed(132,$4);
return 1;
break;
}
case 2: {
_Input_SetPressed(131,$4);
return 1;
break;
}
default: {
return 1;
}
}
return (0)|0;
}
function _Window_MouseMove($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp + 4|0;
$4 = sp;
$5 = ((($1)) + 42|0);
$6 = HEAP16[$5>>1]|0;
$7 = $6&255;
$8 = $7 & 1;
_Input_SetPressed(130,$8);
$9 = HEAP16[$5>>1]|0;
$10 = (1)?(($9&65535) >>> 1):(($9&65535));
$11 = $10&255;
$12 = $11 & 1;
_Input_SetPressed(131,$12);
$13 = HEAP16[$5>>1]|0;
$14 = (2)?(($13&65535) >>> 2):(($13&65535));
$15 = $14&255;
$16 = $15 & 1;
_Input_SetPressed(132,$16);
$17 = ((($1)) + 60|0);
$18 = HEAP32[$17>>2]|0;
$19 = ((($1)) + 64|0);
$20 = HEAP32[$19>>2]|0;
_RescaleXY($18,$20,$3,$4);
$21 = HEAP32[$3>>2]|0;
$22 = HEAP32[$4>>2]|0;
_Pointer_SetPosition(0,$21,$22);
$23 = HEAP8[1408266]|0;
$24 = ($23<<24>>24)==(0);
if ($24) {
STACKTOP = sp;return 1;
}
$25 = ((($1)) + 44|0);
$26 = HEAP32[$25>>2]|0;
$27 = ((($1)) + 48|0);
$28 = HEAP32[$27>>2]|0;
_Event_RaiseMove((1259396),0,$26,$28);
STACKTOP = sp;return 1;
}
function _Window_Focus($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($0|0)==(13);
$4 = $3&1;
HEAP8[1408301] = $4;
if (!($3)) {
_Input_Clear();
}
_Event_RaiseVoid((1256536));
return 1;
}
function _Window_Resize($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Window_RefreshBounds();
_Event_RaiseVoid((1256016));
return 1;
}
function _Window_BeforeUnload($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Window_Close();
return (0|0);
}
function _Window_Key($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $$0$off = 0, $$0$off45 = 0, $$0$off46 = 0, $$043 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cond = 0, $narrow = 0, $or$cond20 = 0, $or$cond54 = 0, $or$cond56 = 0, $spec$select = 0, $spec$select57 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$3 = ((($1)) + 156|0);
$4 = HEAP32[$3>>2]|0;
$5 = (_Window_MapKey($4)|0);
_Window_CorrectFocus();
$6 = ($5|0)==(0);
if ($6) {
$$043 = 0;
return ($$043|0);
}
$7 = ((($1)) + 64|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(2);
L4: do {
if ($9) {
switch ($5|0) {
case 40: {
$$0 = 41;
break L4;
break;
}
case 38: {
$$0 = 39;
break L4;
break;
}
case 36: {
$$0 = 37;
break L4;
break;
}
case 42: {
$$0 = 43;
break L4;
break;
}
default: {
$$0 = $5;
break L4;
}
}
} else {
$10 = ($8|0)==(3);
$cond = ($5|0)==(91);
$or$cond20 = $cond & $10;
$spec$select = $or$cond20 ? 116 : $5;
$$0 = $spec$select;
}
} while(0);
$11 = ($0|0)==(2);
$12 = $11&1;
_Input_SetPressed($$0,$12);
if (!($11)) {
$$043 = 1;
return ($$043|0);
}
$13 = HEAP8[(379624)>>0]|0;
$14 = HEAP8[(379625)>>0]|0;
$15 = $14 | $13;
$16 = HEAP8[(379626)>>0]|0;
$17 = $15 | $16;
$18 = HEAP8[(379627)>>0]|0;
$19 = $17 | $18;
$20 = ($19<<24>>24)==(0);
if (!($20)) {
$$043 = 1;
return ($$043|0);
}
$21 = HEAP8[(379622)>>0]|0;
$22 = ($21<<24>>24)==(0);
L19: do {
if ($22) {
$23 = HEAP8[(379623)>>0]|0;
$24 = ($23<<24>>24)==(0);
if (!($24)) {
switch ($$0|0) {
case 67: case 86: {
break L19;
break;
}
default: {
$$043 = 1;
}
}
return ($$043|0);
}
} else {
switch ($$0|0) {
case 67: case 86: {
break L19;
break;
}
default: {
$$043 = 1;
}
}
return ($$043|0);
}
} while(0);
$$0$off = (($$0) + -1)|0;
$25 = ($$0$off>>>0)<(35);
$26 = $$0 & -4;
$27 = ($26|0)==(44);
$or$cond54 = $25 | $27;
$$0$off45 = (($$0) + -58)|0;
$28 = ($$0$off45>>>0)<(7);
$or$cond56 = $28 | $or$cond54;
if ($or$cond56) {
$$043 = 1;
return ($$043|0);
} else {
$$0$off46 = (($$0) + -91)|0;
$29 = ($$0$off46>>>0)<(10);
$30 = ($$0|0)!=(93);
$narrow = $30 & $29;
$spec$select57 = $narrow&1;
return ($spec$select57|0);
}
return (0)|0;
}
function _Window_KeyPress($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp;
_Window_CorrectFocus();
$4 = HEAP8[1408302]|0;
$5 = ($4<<24>>24)==(0);
if (!($5)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$6 = ((($1)) + 152|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7&65535;
$9 = (_Convert_TryUnicodeToCP437($8,$3)|0);
$10 = ($9<<24>>24)==(0);
if (!($10)) {
$11 = HEAP8[$3>>0]|0;
$12 = $11 << 24 >> 24;
_Event_RaiseInt(1257316,$12);
}
$$0 = 1;
STACKTOP = sp;return ($$0|0);
}
function _Window_TouchStart($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp + 4|0;
$4 = sp;
$5 = HEAP32[$1>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
STACKTOP = sp;return 1;
}
$$011 = 0;
while(1) {
$7 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 28|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0);
if (!($9)) {
$10 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 44|0);
$11 = HEAP32[$10>>2]|0;
$12 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 48|0);
$13 = HEAP32[$12>>2]|0;
_RescaleXY($11,$13,$3,$4);
$14 = (((($1)) + 20|0) + (($$011*52)|0)|0);
$15 = HEAP32[$14>>2]|0;
$16 = HEAP32[$3>>2]|0;
$17 = HEAP32[$4>>2]|0;
_Input_AddTouch($15,$16,$17);
}
$18 = (($$011) + 1)|0;
$19 = HEAP32[$1>>2]|0;
$20 = ($18|0)<($19|0);
if ($20) {
$$011 = $18;
} else {
break;
}
}
STACKTOP = sp;return 1;
}
function _Window_TouchMove($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp + 4|0;
$4 = sp;
$5 = HEAP32[$1>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
STACKTOP = sp;return 1;
}
$$011 = 0;
while(1) {
$7 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 28|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0);
if (!($9)) {
$10 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 44|0);
$11 = HEAP32[$10>>2]|0;
$12 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 48|0);
$13 = HEAP32[$12>>2]|0;
_RescaleXY($11,$13,$3,$4);
$14 = (((($1)) + 20|0) + (($$011*52)|0)|0);
$15 = HEAP32[$14>>2]|0;
$16 = HEAP32[$3>>2]|0;
$17 = HEAP32[$4>>2]|0;
_Input_UpdateTouch($15,$16,$17);
}
$18 = (($$011) + 1)|0;
$19 = HEAP32[$1>>2]|0;
$20 = ($18|0)<($19|0);
if ($20) {
$$011 = $18;
} else {
break;
}
}
STACKTOP = sp;return 1;
}
function _Window_TouchEnd($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$3 = sp + 4|0;
$4 = sp;
$5 = HEAP32[$1>>2]|0;
$6 = ($5|0)>(0);
if (!($6)) {
STACKTOP = sp;return 1;
}
$$011 = 0;
while(1) {
$7 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 28|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)==(0);
if (!($9)) {
$10 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 44|0);
$11 = HEAP32[$10>>2]|0;
$12 = (((((($1)) + 20|0) + (($$011*52)|0)|0)) + 48|0);
$13 = HEAP32[$12>>2]|0;
_RescaleXY($11,$13,$3,$4);
$14 = (((($1)) + 20|0) + (($$011*52)|0)|0);
$15 = HEAP32[$14>>2]|0;
$16 = HEAP32[$3>>2]|0;
$17 = HEAP32[$4>>2]|0;
_Input_RemoveTouch($15,$16,$17);
}
$18 = (($$011) + 1)|0;
$19 = HEAP32[$1>>2]|0;
$20 = ($18|0)<($19|0);
if ($20) {
$$011 = $18;
} else {
break;
}
}
STACKTOP = sp;return 1;
}
function _RescaleXY($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$4 = sp + 8|0;
$5 = sp;
(_emscripten_get_element_css_size((0|0),($4|0),($5|0))|0);
$6 = HEAP32[351858]|0;
$7 = Math_imul($6, $0)|0;
$8 = (+($7|0));
$9 = +HEAPF64[$4>>3];
$10 = $8 / $9;
$11 = (~~(($10)));
HEAP32[$2>>2] = $11;
$12 = HEAP32[351859]|0;
$13 = Math_imul($12, $1)|0;
$14 = (+($13|0));
$15 = +HEAPF64[$5>>3];
$16 = $14 / $15;
$17 = (~~(($16)));
HEAP32[$3>>2] = $17;
STACKTOP = sp;return;
}
function _Window_CorrectFocus() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0;
$0 = sp;
HEAP32[$0>>2] = 0;
(_emscripten_get_pointerlock_status(($0|0))|0);
$1 = HEAP8[1408266]|0;
$2 = ($1<<24>>24)!=(0);
$3 = HEAP32[$0>>2]|0;
$4 = ($3|0)==(0);
$or$cond = $2 & $4;
if (!($or$cond)) {
STACKTOP = sp;return;
}
_Window_EnableRawMouse();
STACKTOP = sp;return;
}
function _Window_EnableRawMouse() {
var label = 0, sp = 0;
sp = STACKTOP;
_Window_RegrabMouse();
(_emscripten_request_pointerlock((0|0),1)|0);
HEAP8[1408266] = 1;
return;
}
function _Window_RegrabMouse() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408301]|0;
$1 = ($0<<24>>24)!=(0);
$2 = HEAP8[1408300]|0;
$3 = ($2<<24>>24)!=(0);
$or$cond = $1 & $3;
if (!($or$cond)) {
return;
}
_Window_CentreMousePosition();
return;
}
function _Window_CentreMousePosition() {
var label = 0, sp = 0;
sp = STACKTOP;
_Cursor_GetRawPos();
return;
}
function _Cursor_GetRawPos() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Window_MapKey($0) {
$0 = $0|0;
var $$0 = 0, $$off = 0, $$off17 = 0, $$off18 = 0, $$off19 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$$off = (($0) + -48)|0;
$1 = ($$off>>>0)<(10);
$$off17 = (($0) + -65)|0;
$2 = ($$off17>>>0)<(26);
$or$cond = $1 | $2;
L1: do {
if ($or$cond) {
$$0 = $0;
} else {
$$off18 = (($0) + -112)|0;
$3 = ($$off18>>>0)<(24);
if ($3) {
$4 = (($0) + -111)|0;
$$0 = $4;
break;
}
$$off19 = (($0) + -96)|0;
$5 = ($$off19>>>0)<(10);
if ($5) {
$6 = (($0) + 5)|0;
$$0 = $6;
break;
}
do {
switch ($0|0) {
case 8: {
$$0 = 94;
break L1;
break;
}
case 9: {
$$0 = 95;
break L1;
break;
}
case 13: {
$$0 = 91;
break L1;
break;
}
case 16: {
$$0 = 36;
break L1;
break;
}
case 17: {
$$0 = 38;
break L1;
break;
}
case 18: {
$$0 = 40;
break L1;
break;
}
case 19: {
$$0 = 99;
break L1;
break;
}
case 20: {
$$0 = 96;
break L1;
break;
}
case 27: {
$$0 = 92;
break L1;
break;
}
case 32: {
$$0 = 93;
break L1;
break;
}
case 33: {
$$0 = 62;
break L1;
break;
}
case 34: {
$$0 = 63;
break L1;
break;
}
case 35: {
$$0 = 61;
break L1;
break;
}
case 36: {
$$0 = 60;
break L1;
break;
}
case 37: {
$$0 = 46;
break L1;
break;
}
case 38: {
$$0 = 44;
break L1;
break;
}
case 39: {
$$0 = 47;
break L1;
break;
}
case 40: {
$$0 = 45;
break L1;
break;
}
case 44: {
$$0 = 98;
break L1;
break;
}
case 45: {
$$0 = 58;
break L1;
break;
}
case 46: {
$$0 = 59;
break L1;
break;
}
case 59: {
$$0 = 123;
break L1;
break;
}
case 61: {
$$0 = 119;
break L1;
break;
}
case 91: {
$$0 = 42;
break L1;
break;
}
case 106: {
$$0 = 112;
break L1;
break;
}
case 107: {
$$0 = 114;
break L1;
break;
}
case 109: {
$$0 = 113;
break L1;
break;
}
case 110: {
$$0 = 115;
break L1;
break;
}
case 111: {
$$0 = 111;
break L1;
break;
}
case 144: {
$$0 = 100;
break L1;
break;
}
case 145: {
$$0 = 97;
break L1;
break;
}
case 173: {
$$0 = 118;
break L1;
break;
}
case 188: {
$$0 = 125;
break L1;
break;
}
case 190: {
$$0 = 126;
break L1;
break;
}
case 191: {
$$0 = 122;
break L1;
break;
}
case 192: {
$$0 = 117;
break L1;
break;
}
case 219: {
$$0 = 120;
break L1;
break;
}
case 220: {
$$0 = 127;
break L1;
break;
}
case 221: {
$$0 = 121;
break L1;
break;
}
case 222: {
$$0 = 124;
break L1;
break;
}
case 186: {
$$0 = 123;
break L1;
break;
}
case 187: {
$$0 = 119;
break L1;
break;
}
case 189: {
$$0 = 118;
break L1;
break;
}
default: {
$$0 = 0;
break L1;
}
}
} while(0);
}
} while(0);
return ($$0|0);
}
function _Window_Close() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP8[1408300] = 0;
_Event_RaiseVoid((1256276));
_Window_DisableRawMouse();
_Window_SetSize(0,0);
_Window_UnhookEvents();
return;
}
function _Window_DisableRawMouse() {
var label = 0, sp = 0;
sp = STACKTOP;
_Window_RegrabMouse();
(_emscripten_exit_pointerlock()|0);
HEAP8[1408266] = 0;
return;
}
function _Window_SetSize($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
(_emscripten_set_canvas_element_size((0|0),($0|0),($1|0))|0);
_Window_RefreshBounds();
_Event_RaiseVoid((1256016));
return;
}
function _Window_UnhookEvents() {
var label = 0, sp = 0;
sp = STACKTOP;
(_emscripten_set_wheel_callback_on_thread((39823|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_mousedown_callback_on_thread((39823|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_mouseup_callback_on_thread((39823|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_mousemove_callback_on_thread((39823|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_focus_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_blur_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_resize_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_beforeunload_callback_on_thread((0|0),(0|0),((1)|0))|0);
(_emscripten_set_keydown_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_keyup_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_keypress_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_touchstart_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_touchmove_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_touchend_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
(_emscripten_set_touchcancel_callback_on_thread((39815|0),(0|0),0,(0|0),((2)|0))|0);
return;
}
function _Window_SetTitle($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 608|0;
$1 = sp;
(_Platform_ConvertString($1,$0)|0);
$2 = _emscripten_asm_const_ii(12,($1|0))|0;
STACKTOP = sp;return;
}
function _Clipboard_SetText($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 608|0;
$1 = sp;
(_Platform_ConvertString($1,$0)|0);
$2 = _emscripten_asm_const_ii(13,($1|0))|0;
STACKTOP = sp;return;
}
function _Clipboard_RequestText($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[351860] = $0;
HEAP32[351861] = $1;
return;
}
function _Window_Show() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Window_GetWindowState() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288|0;
$0 = sp;
(_emscripten_get_fullscreen_status(($0|0))|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0);
$3 = $2 ? 0 : 2;
STACKTOP = sp;return ($3|0);
}
function _Window_EnterFullscreen() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$0 = sp;
HEAP32[$0>>2] = 1;
$1 = ((($0)) + 4|0);
HEAP32[$1>>2] = 2;
$2 = ((($0)) + 8|0);
HEAP32[$2>>2] = 0;
$3 = ((($0)) + 12|0);
HEAP32[$3>>2] = 14;
$4 = ((($0)) + 16|0);
HEAP32[$4>>2] = 0;
$5 = (_emscripten_request_fullscreen_strategy((39823|0),1,($0|0))|0);
STACKTOP = sp;return ($5|0);
}
function _Window_CanvasResize($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Window_RefreshBounds();
_Event_RaiseVoid((1256016));
return 0;
}
function _Window_ExitFullscreen() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_emscripten_exit_fullscreen()|0);
return ($0|0);
}
function _Window_ProcessEvents() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Cursor_SetPosition($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _Window_OpenKeyboard() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408267]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
HEAP8[1408302] = 1;
_Platform_LogConst(39913);
$2 = _emscripten_asm_const_i(14)|0;
return;
}
function _Window_SetKeyboardText($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 608|0;
$1 = sp;
$2 = HEAP8[1408267]|0;
$3 = ($2<<24>>24)==(0);
if ($3) {
STACKTOP = sp;return;
}
(_Platform_ConvertString($1,$0)|0);
$4 = _emscripten_asm_const_ii(15,($1|0))|0;
STACKTOP = sp;return;
}
function _Window_CloseKeyboard() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[1408267]|0;
$1 = ($0<<24>>24)==(0);
if ($1) {
return;
}
HEAP8[1408302] = 0;
$2 = _emscripten_asm_const_i(16)|0;
return;
}
function _Window_UpdateRawMouse() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _GLContext_Init($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0;
$1 = sp;
_emscripten_webgl_init_context_attributes(($1|0));
HEAP32[$1>>2] = 0;
$2 = ((($1)) + 4|0);
HEAP32[$2>>2] = 1;
$3 = ((($1)) + 8|0);
HEAP32[$3>>2] = 0;
$4 = ((($1)) + 12|0);
HEAP32[$4>>2] = 0;
$5 = (_emscripten_webgl_create_context((0|0),($1|0))|0);
HEAP32[351862] = $5;
(_emscripten_webgl_make_context_current(($5|0))|0);
(_emscripten_set_webglcontextlost_callback_on_thread((39823|0),(0|0),0,(15|0),((2)|0))|0);
STACKTOP = sp;return;
}
function _GLContext_OnLost($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var label = 0, sp = 0;
sp = STACKTOP;
_Gfx_LoseContext(40631);
return 1;
}
function _GLContext_Update() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _GLContext_TryRestore() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_emscripten_is_webgl_context_lost(0)|0);
$1 = ($0|0)==(0);
$2 = $1&1;
return ($2|0);
}
function _GLContext_Free() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[351862]|0;
(_emscripten_webgl_destroy_context(($0|0))|0);
(_emscripten_set_webglcontextlost_callback_on_thread((39823|0),(0|0),0,(0|0),((2)|0))|0);
return;
}
function _GLContext_SwapBuffers() {
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function _GLContext_SetFpsLimit($0,$1) {
$0 = $0|0;
$1 = +$1;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($0<<24>>24)==(0);
if ($2) {
$3 = (~~(($1)));
(_emscripten_set_main_loop_timing(0,($3|0))|0);
return;
} else {
(_emscripten_set_main_loop_timing(1,1)|0);
return;
}
}
function _World_Reset() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[351863]|0;
$1 = HEAP32[(1407456)>>2]|0;
$2 = ($0|0)==($1|0);
if (!($2)) {
_Mem_Free($1);
}
HEAP32[(1407456)>>2] = 0;
HEAP32[(1407508)>>2] = 255;
$3 = HEAP32[351863]|0;
_Mem_Free($3);
HEAP32[351863] = 0;
_World_SetDimensions(0,0,0);
_Env_Reset();
return;
}
function _World_SetDimensions($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1407464)>>2] = $0;
HEAP32[(1407468)>>2] = $1;
HEAP32[(1407472)>>2] = $2;
$3 = Math_imul($2, $0)|0;
$4 = Math_imul($3, $1)|0;
HEAP32[(1407460)>>2] = $4;
$5 = Math_imul($2, $0)|0;
HEAP32[(1407488)>>2] = $5;
$6 = (($0) + -1)|0;
HEAP32[(1407476)>>2] = $6;
$7 = (($1) + -1)|0;
HEAP32[(1407480)>>2] = $7;
$8 = (($2) + -1)|0;
HEAP32[(1407484)>>2] = $8;
return;
}
function _Env_Reset() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1407516)>>2] = -1;
HEAP32[(1407520)>>2] = -2;
HEAP32[(1407524)>>2] = -1;
HEAP16[703756] = 9;
HEAP16[(1407514)>>1] = 7;
HEAPF32[(1407528)>>2] = 1.0;
HEAPF32[(1407532)>>2] = 1.0;
HEAPF32[(1407536)>>2] = 1.0;
HEAPF32[(1407548)>>2] = 0.0;
HEAPF32[(1407552)>>2] = 0.0;
HEAP32[(1407588)>>2] = -6579301;
_PackedCol_GetShaded(-6579301,(1407592),(1407596),(1407600));
HEAP32[(1407572)>>2] = -1;
_PackedCol_GetShaded(-1,(1407576),(1407580),(1407584));
HEAP32[(1407556)>>2] = -13159;
HEAP32[(1407560)>>2] = -1;
HEAP32[(1407564)>>2] = -1;
HEAP32[(1407568)>>2] = -1;
HEAP32[(1407540)>>2] = 0;
HEAP32[(1407544)>>2] = 0;
return;
}
function _World_SetNewMap($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$store$select = 0, label = 0, sp = 0;
sp = STACKTOP;
_World_SetDimensions($1,$2,$3);
$4 = HEAP32[(1407460)>>2]|0;
$5 = ($4|0)==(0);
$spec$store$select = $5 ? 0 : $0;
HEAP32[351863] = $spec$store$select;
$6 = HEAP32[(1407456)>>2]|0;
$7 = ($6|0)==(0|0);
if ($7) {
HEAP32[(1407456)>>2] = $spec$store$select;
HEAP32[(1407508)>>2] = 255;
}
$8 = HEAP32[(1407516)>>2]|0;
$9 = ($8|0)==(-1);
if ($9) {
$10 = (($2|0) / 2)&-1;
HEAP32[(1407516)>>2] = $10;
}
$11 = HEAP32[(1407524)>>2]|0;
$12 = ($11|0)==(-1);
if (!($12)) {
_GenerateNewUuid();
return;
}
$13 = (($2) + 2)|0;
HEAP32[(1407524)>>2] = $13;
_GenerateNewUuid();
return;
}
function _GenerateNewUuid() {
var $$08 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$0 = sp;
_Random_SeedFromCurrentTime($0);
$1 = HEAP16[(11492)>>1]|0;
$2 = ($1<<16>>16)==(0);
if (!($2)) {
$$08 = 0;
while(1) {
$3 = HEAP32[2872]|0;
$4 = (($3) + ($$08)|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5 << 24 >> 24;
$7 = (($6) + 3)|0;
(_Random_Next($0,$7)|0);
$8 = (($$08) + 1)|0;
$9 = HEAP16[(11492)>>1]|0;
$10 = $9&65535;
$11 = ($8>>>0)<($10>>>0);
if ($11) {
$$08 = $8;
} else {
break;
}
}
}
$12 = (_Random_Next($0,256)|0);
$13 = $12&255;
HEAP8[(1407492)>>0] = $13;
$14 = (_Random_Next($0,256)|0);
$15 = $14&255;
HEAP8[(1407493)>>0] = $15;
$16 = (_Random_Next($0,256)|0);
$17 = $16&255;
HEAP8[(1407494)>>0] = $17;
$18 = (_Random_Next($0,256)|0);
$19 = $18&255;
HEAP8[(1407495)>>0] = $19;
$20 = (_Random_Next($0,256)|0);
$21 = $20&255;
HEAP8[(1407496)>>0] = $21;
$22 = (_Random_Next($0,256)|0);
$23 = $22&255;
HEAP8[(1407497)>>0] = $23;
$24 = (_Random_Next($0,256)|0);
$25 = $24&255;
HEAP8[(1407498)>>0] = $25;
$26 = (_Random_Next($0,256)|0);
$27 = $26&255;
HEAP8[(1407499)>>0] = $27;
$28 = (_Random_Next($0,256)|0);
$29 = $28&255;
HEAP8[(1407500)>>0] = $29;
$30 = (_Random_Next($0,256)|0);
$31 = $30&255;
HEAP8[(1407501)>>0] = $31;
$32 = (_Random_Next($0,256)|0);
$33 = $32&255;
HEAP8[(1407502)>>0] = $33;
$34 = (_Random_Next($0,256)|0);
$35 = $34&255;
HEAP8[(1407503)>>0] = $35;
$36 = (_Random_Next($0,256)|0);
$37 = $36&255;
HEAP8[(1407504)>>0] = $37;
$38 = (_Random_Next($0,256)|0);
$39 = $38&255;
HEAP8[(1407505)>>0] = $39;
$40 = (_Random_Next($0,256)|0);
$41 = $40&255;
HEAP8[(1407506)>>0] = $41;
$42 = (_Random_Next($0,256)|0);
$43 = $42&255;
HEAP8[(1407507)>>0] = $43;
$44 = HEAP8[(1407498)>>0]|0;
$45 = $44 & 15;
$46 = $45 | 64;
HEAP8[(1407498)>>0] = $46;
$47 = HEAP8[(1407500)>>0]|0;
$48 = $47 & 63;
$49 = $48 | -128;
HEAP8[(1407500)>>0] = $49;
STACKTOP = sp;return;
}
function _World_SetMapUpper($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[(1407456)>>2] = $0;
HEAP32[(1407508)>>2] = 1023;
return;
}
function _World_SetBlock($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$4 = HEAP32[(1407472)>>2]|0;
$5 = Math_imul($4, $1)|0;
$6 = (($5) + ($2))|0;
$7 = HEAP32[(1407464)>>2]|0;
$8 = Math_imul($6, $7)|0;
$9 = (($8) + ($0))|0;
$10 = $3&255;
$11 = HEAP32[351863]|0;
$12 = (($11) + ($9)|0);
HEAP8[$12>>0] = $10;
$13 = HEAP32[351863]|0;
$14 = HEAP32[(1407456)>>2]|0;
$15 = ($13|0)==($14|0);
do {
if ($15) {
$16 = ($3&65535)<(256);
if ($16) {
return;
} else {
$17 = HEAP32[(1407460)>>2]|0;
$18 = (_Mem_AllocCleared($17,1,40668)|0);
_World_SetMapUpper($18);
break;
}
}
} while(0);
$19 = (8)?(($3&65535) >>> 8):(($3&65535));
$20 = $19&255;
$21 = HEAP32[(1407456)>>2]|0;
$22 = (($21) + ($9)|0);
HEAP8[$22>>0] = $20;
return;
}
function _World_GetPhysicsBlock($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = ($1|0)<(0);
if ($3) {
$$0 = 7;
} else {
$4 = (_World_ContainsXZ_2063($0,$2)|0);
$5 = ($4<<24>>24)==(0);
if ($5) {
$$0 = 7;
} else {
$6 = HEAP32[(1407468)>>2]|0;
$7 = ($6|0)>($1|0);
if ($7) {
$8 = (_World_GetBlock_2064($0,$1,$2)|0);
$$0 = $8;
} else {
$$0 = 0;
}
}
}
return ($$0|0);
}
function _World_ContainsXZ_2063($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $narrow = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = HEAP32[(1407464)>>2]|0;
$3 = ($2>>>0)>($0>>>0);
$4 = HEAP32[(1407472)>>2]|0;
$5 = ($4>>>0)>($1>>>0);
$narrow = $3 & $5;
$6 = $narrow&1;
return ($6|0);
}
function _World_GetBlock_2064($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407472)>>2]|0;
$4 = Math_imul($3, $1)|0;
$5 = (($4) + ($2))|0;
$6 = HEAP32[(1407464)>>2]|0;
$7 = Math_imul($5, $6)|0;
$8 = (($7) + ($0))|0;
$9 = HEAP32[351863]|0;
$10 = (($9) + ($8)|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = HEAP32[(1407456)>>2]|0;
$14 = (($13) + ($8)|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $17 | $12;
$19 = HEAP32[(1407508)>>2]|0;
$20 = $18 & $19;
$21 = $20&65535;
return ($21|0);
}
function _World_SafeGetBlock($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_World_Contains_2067($0,$1,$2)|0);
$4 = ($3<<24>>24)==(0);
if ($4) {
$6 = 0;
return ($6|0);
}
$5 = (_World_GetBlock_2064($0,$1,$2)|0);
$6 = $5;
return ($6|0);
}
function _World_Contains_2067($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $narrow = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[(1407464)>>2]|0;
$4 = ($3>>>0)>($0>>>0);
$5 = HEAP32[(1407468)>>2]|0;
$6 = ($5>>>0)>($1>>>0);
$or$cond = $4 & $6;
$7 = HEAP32[(1407472)>>2]|0;
$8 = ($7>>>0)>($2>>>0);
$narrow = $or$cond & $8;
$9 = $narrow&1;
return ($9|0);
}
function _World_ApplyTexturePack($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ((($0)) + 4|0);
$2 = HEAP16[$1>>1]|0;
$3 = ($2<<16>>16)==(0);
if (!($3)) {
_TexturePack_DownloadAsync($0,18836);
}
$4 = (_String_Equals($0,18828)|0);
$5 = ($4|0)==(0);
if (!($5)) {
return;
}
_String_Copy(18828,$0);
_TexturePack_ExtractCurrent(0);
return;
}
function _Env_SetEdgeBlock($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0<<16>>16)==(255);
if ($1) {
$2 = (_Block_IsCustomDefined(255)|0);
$3 = ($2<<24>>24)==(0);
$spec$select = $3 ? 9 : $0;
$$0 = $spec$select;
} else {
$$0 = $0;
}
$4 = HEAP16[703756]|0;
$5 = ($$0<<16>>16)==($4<<16>>16);
if ($5) {
return;
}
HEAP16[703756] = $$0;
_Event_RaiseInt((1254456),0);
return;
}
function _Env_SetSidesBlock($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0<<16>>16)==(255);
if ($1) {
$2 = (_Block_IsCustomDefined(255)|0);
$3 = ($2<<24>>24)==(0);
$spec$select = $3 ? 7 : $0;
$$0 = $spec$select;
} else {
$$0 = $0;
}
$4 = HEAP16[(1407514)>>1]|0;
$5 = ($$0<<16>>16)==($4<<16>>16);
if ($5) {
return;
}
HEAP16[(1407514)>>1] = $$0;
_Event_RaiseInt((1254456),1);
return;
}
function _Env_SetEdgeHeight($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407516)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407516)>>2] = $0;
_Event_RaiseInt((1254456),2);
return;
}
function _Env_SetSidesOffset($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407520)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407520)>>2] = $0;
_Event_RaiseInt((1254456),3);
return;
}
function _Env_SetCloudsHeight($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407524)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407524)>>2] = $0;
_Event_RaiseInt((1254456),4);
return;
}
function _Env_SetCloudsSpeed($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1407528)>>2];
$2 = $1 != $0;
if (!($2)) {
return;
}
HEAPF32[(1407528)>>2] = $0;
_Event_RaiseInt((1254456),5);
return;
}
function _Env_SetWeatherSpeed($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1407532)>>2];
$2 = $1 != $0;
if (!($2)) {
return;
}
HEAPF32[(1407532)>>2] = $0;
_Event_RaiseInt((1254456),6);
return;
}
function _Env_SetWeatherFade($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1407536)>>2];
$2 = $1 != $0;
if (!($2)) {
return;
}
HEAPF32[(1407536)>>2] = $0;
_Event_RaiseInt((1254456),7);
return;
}
function _Env_SetWeather($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407540)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407540)>>2] = $0;
_Event_RaiseInt((1254456),8);
return;
}
function _Env_SetExpFog($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0&255;
$2 = HEAP32[(1407544)>>2]|0;
$3 = ($2|0)==($1|0);
if ($3) {
return;
}
HEAP32[(1407544)>>2] = $1;
_Event_RaiseInt((1254456),9);
return;
}
function _Env_SetSkyboxHorSpeed($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1407548)>>2];
$2 = $1 != $0;
if (!($2)) {
return;
}
HEAPF32[(1407548)>>2] = $0;
_Event_RaiseInt((1254456),10);
return;
}
function _Env_SetSkyboxVerSpeed($0) {
$0 = +$0;
var $1 = 0.0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = +HEAPF32[(1407552)>>2];
$2 = $1 != $0;
if (!($2)) {
return;
}
HEAPF32[(1407552)>>2] = $0;
_Event_RaiseInt((1254456),11);
return;
}
function _Env_SetSkyCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407556)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407556)>>2] = $0;
_Event_RaiseInt((1254456),12);
return;
}
function _Env_SetFogCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407560)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407560)>>2] = $0;
_Event_RaiseInt((1254456),14);
return;
}
function _Env_SetCloudsCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407564)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407564)>>2] = $0;
_Event_RaiseInt((1254456),13);
return;
}
function _Env_SetSkyboxCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[(1407568)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407568)>>2] = $0;
_Event_RaiseInt((1254456),17);
return;
}
function _Env_SetSunCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_PackedCol_GetShaded($0,(1407576),(1407580),(1407584));
$1 = HEAP32[(1407572)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407572)>>2] = $0;
_Event_RaiseInt((1254456),15);
return;
}
function _Env_SetShadowCol($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_PackedCol_GetShaded($0,(1407592),(1407596),(1407600));
$1 = HEAP32[(1407588)>>2]|0;
$2 = ($1|0)==($0|0);
if ($2) {
return;
}
HEAP32[(1407588)>>2] = $0;
_Event_RaiseInt((1254456),16);
return;
}
function _Respawn_HighestSolidY($0) {
$0 = $0|0;
var $$05062 = 0, $$05154 = 0, $$052$lcssa = 0.0, $$05261 = 0.0, $$056 = 0, $$1$lcssa = 0.0, $$155 = 0.0, $$2$lcssa = 0.0, $$253 = 0.0, $$3 = 0.0, $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$1 = sp + 16|0;
$2 = sp;
$3 = +HEAPF32[$0>>2];
$4 = (_Math_Floor($3)|0);
$5 = ((($0)) + 12|0);
$6 = +HEAPF32[$5>>2];
$7 = (_Math_Floor($6)|0);
$8 = ((($0)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = (_Math_Floor($9)|0);
$11 = ((($0)) + 16|0);
$12 = +HEAPF32[$11>>2];
$13 = (_Math_Floor($12)|0);
$14 = ((($0)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = (_Math_Floor($15)|0);
$17 = ((($0)) + 20|0);
$18 = +HEAPF32[$17>>2];
$19 = (_Math_Floor($18)|0);
$20 = ($10|0)>($13|0);
if ($20) {
$$052$lcssa = -1.0E+5;
STACKTOP = sp;return (+$$052$lcssa);
}
$21 = ((($2)) + 4|0);
$22 = ($16|0)>($19|0);
$23 = ((($2)) + 8|0);
$24 = ($4|0)>($7|0);
$25 = ((($1)) + 12|0);
$26 = ((($1)) + 16|0);
$$05062 = $10;$$05261 = -1.0E+5;
while(1) {
$27 = (+($$05062|0));
HEAPF32[$21>>2] = $27;
if ($22) {
$$1$lcssa = $$05261;
} else {
$$056 = $16;$$155 = $$05261;
while(1) {
$28 = (+($$056|0));
HEAPF32[$23>>2] = $28;
if ($24) {
$$2$lcssa = $$155;
} else {
$$05154 = $4;$$253 = $$155;
while(1) {
$29 = (+($$05154|0));
HEAPF32[$2>>2] = $29;
$30 = (_World_SafeGetBlock($$05154,$$05062,$$056)|0);
$31 = $30&65535;
$32 = (588036 + (($31*12)|0)|0);
_Vec3_Add_2109($1,$2,$32);
$33 = (597252 + (($31*12)|0)|0);
_Vec3_Add_2109($25,$2,$33);
$34 = (578052 + ($31)|0);
$35 = HEAP8[$34>>0]|0;
$36 = ($35<<24>>24)==(2);
if ($36) {
$37 = (_AABB_Intersects($0,$1)|0);
$38 = ($37<<24>>24)==(0);
if ($38) {
$$3 = $$253;
} else {
$39 = +HEAPF32[$26>>2];
$40 = $39 > $$253;
if ($40) {
$$3 = $39;
} else {
$$3 = $$253;
}
}
} else {
$$3 = $$253;
}
$41 = (($$05154) + 1)|0;
$42 = ($$05154|0)<($7|0);
if ($42) {
$$05154 = $41;$$253 = $$3;
} else {
$$2$lcssa = $$3;
break;
}
}
}
$43 = (($$056) + 1)|0;
$44 = ($$056|0)<($19|0);
if ($44) {
$$056 = $43;$$155 = $$2$lcssa;
} else {
$$1$lcssa = $$2$lcssa;
break;
}
}
}
$45 = (($$05062) + 1)|0;
$46 = ($$05062|0)<($13|0);
if ($46) {
$$05062 = $45;$$05261 = $$1$lcssa;
} else {
$$052$lcssa = $$1$lcssa;
break;
}
}
STACKTOP = sp;return (+$$052$lcssa);
}
function _Vec3_Add_2109($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$3 = +HEAPF32[$1>>2];
$4 = +HEAPF32[$2>>2];
$5 = $3 + $4;
HEAPF32[$0>>2] = $5;
$6 = ((($1)) + 4|0);
$7 = +HEAPF32[$6>>2];
$8 = ((($2)) + 4|0);
$9 = +HEAPF32[$8>>2];
$10 = $7 + $9;
$11 = ((($0)) + 4|0);
HEAPF32[$11>>2] = $10;
$12 = ((($1)) + 8|0);
$13 = +HEAPF32[$12>>2];
$14 = ((($2)) + 8|0);
$15 = +HEAPF32[$14>>2];
$16 = $13 + $15;
$17 = ((($0)) + 8|0);
HEAPF32[$17>>2] = $16;
return;
}
function _Respawn_FindSpawnPosition($0,$1,$2,$3) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
$3 = $3|0;
var $$08 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$4 = sp + 24|0;
$5 = sp;
_Vec3_Create3_2112($4,$1,$2);
$6 = HEAP32[(1407468)>>2]|0;
$7 = (+($6|0));
$8 = $7 + 0.0010000000474974513;
$9 = ((($4)) + 4|0);
HEAPF32[$9>>2] = $8;
_AABB_Make($5,$4,$3);
HEAPF32[$9>>2] = 0.0;
$10 = HEAP32[(1407468)>>2]|0;
$11 = ($10|0)>(-1);
L1: do {
if ($11) {
$12 = ((($5)) + 4|0);
$13 = ((($5)) + 16|0);
$$08 = $10;
while(1) {
$14 = (+_Respawn_HighestSolidY($5));
$15 = $14 != -1.0E+5;
if ($15) {
break;
}
$16 = +HEAPF32[$12>>2];
$17 = $16 + -1.0;
HEAPF32[$12>>2] = $17;
$18 = +HEAPF32[$13>>2];
$19 = $18 + -1.0;
HEAPF32[$13>>2] = $19;
$20 = (($$08) + -1)|0;
$21 = ($$08|0)>(0);
if ($21) {
$$08 = $20;
} else {
break L1;
}
}
HEAPF32[$9>>2] = $14;
}
} while(0);
;HEAP32[$0>>2]=HEAP32[$4>>2]|0;HEAP32[$0+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$4+8>>2]|0;
STACKTOP = sp;return;
}
function _Vec3_Create3_2112($0,$1,$2) {
$0 = $0|0;
$1 = +$1;
$2 = +$2;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = 0.0;
$$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0);
HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $2;
return;
}
function _emscripten_fetch_attr_init($0) {
$0 = $0|0;
var dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
dest=$0; stop=dest+88|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
return;
}
function _emscripten_fetch($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0104115 = 0, $$0106 = 0, $$0114 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $exitcond = 0, $or$cond = 0, $or$cond112 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$2 = ($0|0)==(0|0);
$3 = ($1|0)==(0|0);
$or$cond = $2 | $3;
if ($or$cond) {
$$4 = 0;
return ($$4|0);
}
$4 = ((($0)) + 48|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & 64;
$7 = ($6|0)!=(0);
$8 = (_emscripten_is_main_browser_thread()|0);
$9 = ($8|0)!=(0);
$or$cond112 = $7 & $9;
if ($or$cond112) {
$$4 = 0;
return ($$4|0);
}
$10 = (_malloc(200)|0);
$11 = ($10|0)==(0|0);
if ($11) {
$$4 = 0;
return ($$4|0);
}
$12 = ((($10)) + 8|0);
_memset(($12|0),0,184)|0;
$13 = HEAP32[4711]|0;
$14 = (($13) + 1)|0;
HEAP32[4711] = $14;
HEAP32[$10>>2] = $13;
$15 = ((($0)) + 32|0);
$16 = HEAP32[$15>>2]|0;
$17 = ((($10)) + 4|0);
HEAP32[$17>>2] = $16;
$18 = ((($0)) + 52|0);
$19 = HEAP32[$18>>2]|0;
$20 = ((($10)) + 112|0);
$21 = ((($10)) + 164|0);
HEAP32[$21>>2] = $19;
$22 = HEAP32[$4>>2]|0;
$23 = ((($10)) + 160|0);
HEAP32[$23>>2] = $22;
$24 = ((($0)) + 56|0);
$25 = HEAP32[$24>>2]|0;
$26 = ((($10)) + 168|0);
HEAP32[$26>>2] = $25;
$27 = ((($0)) + 80|0);
$28 = HEAP32[$27>>2]|0;
$29 = ((($10)) + 192|0);
HEAP32[$29>>2] = $28;
$30 = ((($0)) + 84|0);
$31 = HEAP32[$30>>2]|0;
$32 = ((($10)) + 196|0);
HEAP32[$32>>2] = $31;
(_strcpy($20,$0)|0);
$33 = ((($0)) + 40|0);
$34 = HEAP32[$33>>2]|0;
$35 = ((($10)) + 152|0);
HEAP32[$35>>2] = $34;
$36 = ((($0)) + 36|0);
$37 = HEAP32[$36>>2]|0;
$38 = ((($10)) + 148|0);
HEAP32[$38>>2] = $37;
$39 = ((($0)) + 44|0);
$40 = HEAP32[$39>>2]|0;
$41 = ((($10)) + 156|0);
HEAP32[$41>>2] = $40;
$42 = (___strdup($1)|0);
$43 = ((($10)) + 8|0);
HEAP32[$43>>2] = $42;
$44 = ($42|0)==(0|0);
if ($44) {
__ZL10fetch_freeP18emscripten_fetch_t($10);
$$4 = 0;
return ($$4|0);
}
$45 = ((($0)) + 60|0);
$46 = HEAP32[$45>>2]|0;
$47 = ($46|0)==(0|0);
if (!($47)) {
$48 = (___strdup($46)|0);
$49 = ((($10)) + 172|0);
HEAP32[$49>>2] = $48;
$50 = ($48|0)==(0|0);
if ($50) {
__ZL10fetch_freeP18emscripten_fetch_t($10);
$$4 = 0;
return ($$4|0);
}
}
$51 = ((($0)) + 64|0);
$52 = HEAP32[$51>>2]|0;
$53 = ($52|0)==(0|0);
if (!($53)) {
$54 = (___strdup($52)|0);
$55 = ((($10)) + 176|0);
HEAP32[$55>>2] = $54;
$56 = ($54|0)==(0|0);
if ($56) {
__ZL10fetch_freeP18emscripten_fetch_t($10);
$$4 = 0;
return ($$4|0);
}
}
$57 = ((($0)) + 68|0);
$58 = HEAP32[$57>>2]|0;
$59 = ($58|0)==(0|0);
if (!($59)) {
$60 = (___strdup($58)|0);
$61 = ((($10)) + 180|0);
HEAP32[$61>>2] = $60;
$62 = ($60|0)==(0|0);
if ($62) {
__ZL10fetch_freeP18emscripten_fetch_t($10);
$$4 = 0;
return ($$4|0);
}
}
$63 = ((($0)) + 76|0);
$64 = HEAP32[$63>>2]|0;
$65 = ($64|0)==(0|0);
if (!($65)) {
$66 = (___strdup($64)|0);
$67 = ((($10)) + 188|0);
HEAP32[$67>>2] = $66;
$68 = ($66|0)==(0|0);
if ($68) {
__ZL10fetch_freeP18emscripten_fetch_t($10);
$$4 = 0;
return ($$4|0);
}
}
$69 = ((($0)) + 72|0);
$70 = HEAP32[$69>>2]|0;
$71 = ($70|0)==(0|0);
if (!($71)) {
$$0106 = 0;
while(1) {
$72 = (($70) + ($$0106<<2)|0);
$73 = HEAP32[$72>>2]|0;
$74 = ($73|0)==(0|0);
$75 = (($$0106) + 1)|0;
if ($74) {
break;
} else {
$$0106 = $75;
}
}
$76 = $$0106 << 2;
$77 = (($76) + 4)|0;
$78 = (_malloc($77)|0);
$79 = ($78|0)==(0|0);
if ($79) {
__ZL10fetch_freeP18emscripten_fetch_t($10);
$$4 = 0;
return ($$4|0);
}
_memset(($78|0),0,($77|0))|0;
$80 = ($$0106|0)==(0);
L43: do {
if (!($80)) {
$$0104115 = 0;
while(1) {
$81 = HEAP32[$69>>2]|0;
$82 = (($81) + ($$0104115<<2)|0);
$83 = HEAP32[$82>>2]|0;
$84 = (___strdup($83)|0);
$85 = (($78) + ($$0104115<<2)|0);
HEAP32[$85>>2] = $84;
$86 = ($84|0)==(0|0);
if ($86) {
break;
}
$91 = (($$0104115) + 1)|0;
$92 = ($91>>>0)<($$0106>>>0);
if ($92) {
$$0104115 = $91;
} else {
break L43;
}
}
$87 = ($$0104115|0)==(0);
if (!($87)) {
$$0114 = 0;
while(1) {
$88 = (($78) + ($$0114<<2)|0);
$89 = HEAP32[$88>>2]|0;
_free($89);
$90 = (($$0114) + 1)|0;
$exitcond = ($90|0)==($$0104115|0);
if ($exitcond) {
break;
} else {
$$0114 = $90;
}
}
}
_free($78);
__ZL10fetch_freeP18emscripten_fetch_t($10);
$$4 = 0;
return ($$4|0);
}
} while(0);
$93 = (($78) + ($$0106<<2)|0);
HEAP32[$93>>2] = 0;
$94 = ((($10)) + 184|0);
HEAP32[$94>>2] = $78;
}
_emscripten_start_fetch(($10|0));
$$4 = $10;
return ($$4|0);
}
function __ZL10fetch_freeP18emscripten_fetch_t($0) {
$0 = $0|0;
var $$015 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[$0>>2] = 0;
$1 = ((($0)) + 12|0);
$2 = HEAP32[$1>>2]|0;
_free($2);
$3 = ((($0)) + 8|0);
$4 = HEAP32[$3>>2]|0;
_free($4);
$5 = ((($0)) + 172|0);
$6 = HEAP32[$5>>2]|0;
_free($6);
$7 = ((($0)) + 176|0);
$8 = HEAP32[$7>>2]|0;
_free($8);
$9 = ((($0)) + 180|0);
$10 = HEAP32[$9>>2]|0;
_free($10);
$11 = ((($0)) + 184|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==(0|0);
if ($13) {
$23 = ((($0)) + 188|0);
$24 = HEAP32[$23>>2]|0;
_free($24);
_free($0);
return;
}
$14 = HEAP32[$11>>2]|0;
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==(0|0);
if ($16) {
$$lcssa = $14;
} else {
$$015 = 0;$17 = $15;
while(1) {
_free($17);
$18 = (($$015) + 1)|0;
$19 = HEAP32[$11>>2]|0;
$20 = (($19) + ($18<<2)|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)==(0|0);
if ($22) {
$$lcssa = $19;
break;
} else {
$$015 = $18;$17 = $21;
}
}
}
_free($$lcssa);
$23 = ((($0)) + 188|0);
$24 = HEAP32[$23>>2]|0;
_free($24);
_free($0);
return;
}
function _emscripten_fetch_close($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
$1 = ($0|0)==(0|0);
if ($1) {
$$0 = 0;
return ($$0|0);
}
$2 = HEAP32[$0>>2]|0;
$3 = ($2|0)==(0);
if ($3) {
$$0 = -5;
return ($$0|0);
}
$4 = ((($0)) + 40|0);
$5 = HEAP16[$4>>1]|0;
$6 = ($5&65535)>(4);
if ($6) {
$$0 = -5;
return ($$0|0);
}
$7 = ($5<<16>>16)==(4);
if (!($7)) {
$8 = ((($0)) + 152|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)==(0|0);
if (!($10)) {
$11 = ((($0)) + 42|0);
HEAP16[$11>>1] = -1;
$12 = ((($0)) + 44|0);
dest=$12; src=40697; stop=dest+38|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
FUNCTION_TABLE_vi[$9 & 511]($0);
}
}
__ZL10fetch_freeP18emscripten_fetch_t($0);
$$0 = 0;
return ($$0|0);
}
function _malloc($0) {
$0 = $0|0;
var $$0 = 0, $$0$i = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i20$i = 0, $$0169$i = 0, $$0170$i = 0, $$0171$i = 0, $$0192 = 0, $$0194 = 0, $$02014$i$i = 0, $$0202$lcssa$i$i = 0, $$02023$i$i = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$024372$i = 0, $$0259$i$i = 0, $$02604$i$i = 0, $$0261$lcssa$i$i = 0, $$02613$i$i = 0;
var $$0267$i$i = 0, $$0268$i$i = 0, $$0318$i = 0, $$032012$i = 0, $$0321$lcssa$i = 0, $$032111$i = 0, $$0323$i = 0, $$0329$i = 0, $$0335$i = 0, $$0336$i = 0, $$0338$i = 0, $$0339$i = 0, $$0344$i = 0, $$1174$i = 0, $$1174$i$be = 0, $$1174$i$ph = 0, $$1176$i = 0, $$1176$i$be = 0, $$1176$i$ph = 0, $$124471$i = 0;
var $$1263$i$i = 0, $$1263$i$i$be = 0, $$1263$i$i$ph = 0, $$1265$i$i = 0, $$1265$i$i$be = 0, $$1265$i$i$ph = 0, $$1319$i = 0, $$1324$i = 0, $$1340$i = 0, $$1346$i = 0, $$1346$i$be = 0, $$1346$i$ph = 0, $$1350$i = 0, $$1350$i$be = 0, $$1350$i$ph = 0, $$2234243136$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2331$i = 0, $$3$i = 0;
var $$3$i$i = 0, $$3$i198 = 0, $$3$i198211 = 0, $$3326$i = 0, $$3348$i = 0, $$4$lcssa$i = 0, $$415$i = 0, $$415$i$ph = 0, $$4236$i = 0, $$4327$lcssa$i = 0, $$432714$i = 0, $$432714$i$ph = 0, $$4333$i = 0, $$533413$i = 0, $$533413$i$ph = 0, $$723947$i = 0, $$748$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0;
var $$pre$i16$i = 0, $$pre$i195 = 0, $$pre$i204 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i17$iZ2D = 0, $$pre$phi$i205Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phiZ2D = 0, $$sink = 0, $$sink320 = 0, $$sink321 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0;
var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0;
var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0;
var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0;
var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0;
var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0;
var $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0;
var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0;
var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0;
var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0;
var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0;
var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0;
var $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0;
var $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0;
var $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0;
var $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0;
var $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0;
var $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0;
var $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0;
var $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0;
var $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0;
var $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0;
var $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0;
var $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0;
var $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0;
var $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0;
var $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0;
var $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0;
var $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0;
var $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0;
var $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0;
var $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0;
var $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0;
var $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0;
var $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0;
var $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0;
var $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0;
var $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0;
var $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0;
var $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0;
var $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0;
var $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0;
var $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0;
var $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0;
var $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0;
var $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0;
var $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0;
var $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0;
var $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0;
var $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $99 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i203 = 0, $not$$i = 0, $or$cond$i = 0, $or$cond$i199 = 0, $or$cond1$i = 0, $or$cond1$i197 = 0, $or$cond11$i = 0, $or$cond2$i = 0;
var $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond6$i = 0, $or$cond7$i = 0, $or$cond8$i = 0, $or$cond8$not$i = 0, $spec$select$i = 0, $spec$select$i201 = 0, $spec$select1$i = 0, $spec$select2$i = 0, $spec$select4$i = 0, $spec$select49$i = 0, $spec$select9$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$1 = sp;
$2 = ($0>>>0)<(245);
do {
if ($2) {
$3 = ($0>>>0)<(11);
$4 = (($0) + 11)|0;
$5 = $4 & -8;
$6 = $3 ? 16 : $5;
$7 = (3)?($6 >>> 3):($6);
$8 = HEAP32[351901]|0;
$9 = ($7)?($8 >>> $7):($8);
$10 = $9 & 3;
$11 = ($10|0)==(0);
if (!($11)) {
$12 = $9 & 1;
$13 = $12 ^ 1;
$14 = (($13) + ($7))|0;
$15 = $14 << 1;
$16 = (1407644 + ($15<<2)|0);
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==($16|0);
if ($21) {
$22 = 1 << $14;
$23 = $22 ^ -1;
$24 = $8 & $23;
HEAP32[351901] = $24;
} else {
$25 = ((($20)) + 12|0);
HEAP32[$25>>2] = $16;
HEAP32[$17>>2] = $20;
}
$26 = $14 << 3;
$27 = $26 | 3;
$28 = ((($18)) + 4|0);
HEAP32[$28>>2] = $27;
$29 = (($18) + ($26)|0);
$30 = ((($29)) + 4|0);
$31 = HEAP32[$30>>2]|0;
$32 = $31 | 1;
HEAP32[$30>>2] = $32;
$$0 = $19;
STACKTOP = sp;return ($$0|0);
}
$33 = HEAP32[(1407612)>>2]|0;
$34 = ($6>>>0)>($33>>>0);
if ($34) {
$35 = ($9|0)==(0);
if (!($35)) {
$36 = $9 << $7;
$37 = 2 << $7;
$38 = (0 - ($37))|0;
$39 = $37 | $38;
$40 = $36 & $39;
$41 = (0 - ($40))|0;
$42 = $40 & $41;
$43 = (($42) + -1)|0;
$44 = (12)?($43 >>> 12):($43);
$45 = $44 & 16;
$46 = ($45)?($43 >>> $45):($43);
$47 = (5)?($46 >>> 5):($46);
$48 = $47 & 8;
$49 = $48 | $45;
$50 = ($48)?($46 >>> $48):($46);
$51 = (2)?($50 >>> 2):($50);
$52 = $51 & 4;
$53 = $49 | $52;
$54 = ($52)?($50 >>> $52):($50);
$55 = (1)?($54 >>> 1):($54);
$56 = $55 & 2;
$57 = $53 | $56;
$58 = ($56)?($54 >>> $56):($54);
$59 = (1)?($58 >>> 1):($58);
$60 = $59 & 1;
$61 = $57 | $60;
$62 = ($60)?($58 >>> $60):($58);
$63 = (($61) + ($62))|0;
$64 = $63 << 1;
$65 = (1407644 + ($64<<2)|0);
$66 = ((($65)) + 8|0);
$67 = HEAP32[$66>>2]|0;
$68 = ((($67)) + 8|0);
$69 = HEAP32[$68>>2]|0;
$70 = ($69|0)==($65|0);
if ($70) {
$71 = 1 << $63;
$72 = $71 ^ -1;
$73 = $8 & $72;
HEAP32[351901] = $73;
$90 = $73;
} else {
$74 = ((($69)) + 12|0);
HEAP32[$74>>2] = $65;
HEAP32[$66>>2] = $69;
$90 = $8;
}
$75 = $63 << 3;
$76 = (($75) - ($6))|0;
$77 = $6 | 3;
$78 = ((($67)) + 4|0);
HEAP32[$78>>2] = $77;
$79 = (($67) + ($6)|0);
$80 = $76 | 1;
$81 = ((($79)) + 4|0);
HEAP32[$81>>2] = $80;
$82 = (($67) + ($75)|0);
HEAP32[$82>>2] = $76;
$83 = ($33|0)==(0);
if (!($83)) {
$84 = HEAP32[(1407624)>>2]|0;
$85 = (3)?($33 >>> 3):($33);
$86 = $85 << 1;
$87 = (1407644 + ($86<<2)|0);
$88 = 1 << $85;
$89 = $90 & $88;
$91 = ($89|0)==(0);
if ($91) {
$92 = $90 | $88;
HEAP32[351901] = $92;
$$pre = ((($87)) + 8|0);
$$0194 = $87;$$pre$phiZ2D = $$pre;
} else {
$93 = ((($87)) + 8|0);
$94 = HEAP32[$93>>2]|0;
$$0194 = $94;$$pre$phiZ2D = $93;
}
HEAP32[$$pre$phiZ2D>>2] = $84;
$95 = ((($$0194)) + 12|0);
HEAP32[$95>>2] = $84;
$96 = ((($84)) + 8|0);
HEAP32[$96>>2] = $$0194;
$97 = ((($84)) + 12|0);
HEAP32[$97>>2] = $87;
}
HEAP32[(1407612)>>2] = $76;
HEAP32[(1407624)>>2] = $79;
$$0 = $68;
STACKTOP = sp;return ($$0|0);
}
$98 = HEAP32[(1407608)>>2]|0;
$99 = ($98|0)==(0);
if ($99) {
$$0192 = $6;
} else {
$100 = (0 - ($98))|0;
$101 = $98 & $100;
$102 = (($101) + -1)|0;
$103 = (12)?($102 >>> 12):($102);
$104 = $103 & 16;
$105 = ($104)?($102 >>> $104):($102);
$106 = (5)?($105 >>> 5):($105);
$107 = $106 & 8;
$108 = $107 | $104;
$109 = ($107)?($105 >>> $107):($105);
$110 = (2)?($109 >>> 2):($109);
$111 = $110 & 4;
$112 = $108 | $111;
$113 = ($111)?($109 >>> $111):($109);
$114 = (1)?($113 >>> 1):($113);
$115 = $114 & 2;
$116 = $112 | $115;
$117 = ($115)?($113 >>> $115):($113);
$118 = (1)?($117 >>> 1):($117);
$119 = $118 & 1;
$120 = $116 | $119;
$121 = ($119)?($117 >>> $119):($117);
$122 = (($120) + ($121))|0;
$123 = (1407908 + ($122<<2)|0);
$124 = HEAP32[$123>>2]|0;
$125 = ((($124)) + 4|0);
$126 = HEAP32[$125>>2]|0;
$127 = $126 & -8;
$128 = (($127) - ($6))|0;
$$0169$i = $124;$$0170$i = $124;$$0171$i = $128;
while(1) {
$129 = ((($$0169$i)) + 16|0);
$130 = HEAP32[$129>>2]|0;
$131 = ($130|0)==(0|0);
if ($131) {
$132 = ((($$0169$i)) + 20|0);
$133 = HEAP32[$132>>2]|0;
$134 = ($133|0)==(0|0);
if ($134) {
break;
} else {
$136 = $133;
}
} else {
$136 = $130;
}
$135 = ((($136)) + 4|0);
$137 = HEAP32[$135>>2]|0;
$138 = $137 & -8;
$139 = (($138) - ($6))|0;
$140 = ($139>>>0)<($$0171$i>>>0);
$spec$select$i = $140 ? $139 : $$0171$i;
$spec$select1$i = $140 ? $136 : $$0170$i;
$$0169$i = $136;$$0170$i = $spec$select1$i;$$0171$i = $spec$select$i;
}
$141 = (($$0170$i) + ($6)|0);
$142 = ($141>>>0)>($$0170$i>>>0);
if ($142) {
$143 = ((($$0170$i)) + 24|0);
$144 = HEAP32[$143>>2]|0;
$145 = ((($$0170$i)) + 12|0);
$146 = HEAP32[$145>>2]|0;
$147 = ($146|0)==($$0170$i|0);
do {
if ($147) {
$152 = ((($$0170$i)) + 20|0);
$153 = HEAP32[$152>>2]|0;
$154 = ($153|0)==(0|0);
if ($154) {
$155 = ((($$0170$i)) + 16|0);
$156 = HEAP32[$155>>2]|0;
$157 = ($156|0)==(0|0);
if ($157) {
$$3$i = 0;
break;
} else {
$$1174$i$ph = $156;$$1176$i$ph = $155;
}
} else {
$$1174$i$ph = $153;$$1176$i$ph = $152;
}
$$1174$i = $$1174$i$ph;$$1176$i = $$1176$i$ph;
while(1) {
$158 = ((($$1174$i)) + 20|0);
$159 = HEAP32[$158>>2]|0;
$160 = ($159|0)==(0|0);
if ($160) {
$161 = ((($$1174$i)) + 16|0);
$162 = HEAP32[$161>>2]|0;
$163 = ($162|0)==(0|0);
if ($163) {
break;
} else {
$$1174$i$be = $162;$$1176$i$be = $161;
}
} else {
$$1174$i$be = $159;$$1176$i$be = $158;
}
$$1174$i = $$1174$i$be;$$1176$i = $$1176$i$be;
}
HEAP32[$$1176$i>>2] = 0;
$$3$i = $$1174$i;
} else {
$148 = ((($$0170$i)) + 8|0);
$149 = HEAP32[$148>>2]|0;
$150 = ((($149)) + 12|0);
HEAP32[$150>>2] = $146;
$151 = ((($146)) + 8|0);
HEAP32[$151>>2] = $149;
$$3$i = $146;
}
} while(0);
$164 = ($144|0)==(0|0);
do {
if (!($164)) {
$165 = ((($$0170$i)) + 28|0);
$166 = HEAP32[$165>>2]|0;
$167 = (1407908 + ($166<<2)|0);
$168 = HEAP32[$167>>2]|0;
$169 = ($$0170$i|0)==($168|0);
if ($169) {
HEAP32[$167>>2] = $$3$i;
$cond$i = ($$3$i|0)==(0|0);
if ($cond$i) {
$170 = 1 << $166;
$171 = $170 ^ -1;
$172 = $98 & $171;
HEAP32[(1407608)>>2] = $172;
break;
}
} else {
$173 = ((($144)) + 16|0);
$174 = HEAP32[$173>>2]|0;
$175 = ($174|0)==($$0170$i|0);
$176 = ((($144)) + 20|0);
$$sink = $175 ? $173 : $176;
HEAP32[$$sink>>2] = $$3$i;
$177 = ($$3$i|0)==(0|0);
if ($177) {
break;
}
}
$178 = ((($$3$i)) + 24|0);
HEAP32[$178>>2] = $144;
$179 = ((($$0170$i)) + 16|0);
$180 = HEAP32[$179>>2]|0;
$181 = ($180|0)==(0|0);
if (!($181)) {
$182 = ((($$3$i)) + 16|0);
HEAP32[$182>>2] = $180;
$183 = ((($180)) + 24|0);
HEAP32[$183>>2] = $$3$i;
}
$184 = ((($$0170$i)) + 20|0);
$185 = HEAP32[$184>>2]|0;
$186 = ($185|0)==(0|0);
if (!($186)) {
$187 = ((($$3$i)) + 20|0);
HEAP32[$187>>2] = $185;
$188 = ((($185)) + 24|0);
HEAP32[$188>>2] = $$3$i;
}
}
} while(0);
$189 = ($$0171$i>>>0)<(16);
if ($189) {
$190 = (($$0171$i) + ($6))|0;
$191 = $190 | 3;
$192 = ((($$0170$i)) + 4|0);
HEAP32[$192>>2] = $191;
$193 = (($$0170$i) + ($190)|0);
$194 = ((($193)) + 4|0);
$195 = HEAP32[$194>>2]|0;
$196 = $195 | 1;
HEAP32[$194>>2] = $196;
} else {
$197 = $6 | 3;
$198 = ((($$0170$i)) + 4|0);
HEAP32[$198>>2] = $197;
$199 = $$0171$i | 1;
$200 = ((($141)) + 4|0);
HEAP32[$200>>2] = $199;
$201 = (($141) + ($$0171$i)|0);
HEAP32[$201>>2] = $$0171$i;
$202 = ($33|0)==(0);
if (!($202)) {
$203 = HEAP32[(1407624)>>2]|0;
$204 = (3)?($33 >>> 3):($33);
$205 = $204 << 1;
$206 = (1407644 + ($205<<2)|0);
$207 = 1 << $204;
$208 = $207 & $8;
$209 = ($208|0)==(0);
if ($209) {
$210 = $207 | $8;
HEAP32[351901] = $210;
$$pre$i = ((($206)) + 8|0);
$$0$i = $206;$$pre$phi$iZ2D = $$pre$i;
} else {
$211 = ((($206)) + 8|0);
$212 = HEAP32[$211>>2]|0;
$$0$i = $212;$$pre$phi$iZ2D = $211;
}
HEAP32[$$pre$phi$iZ2D>>2] = $203;
$213 = ((($$0$i)) + 12|0);
HEAP32[$213>>2] = $203;
$214 = ((($203)) + 8|0);
HEAP32[$214>>2] = $$0$i;
$215 = ((($203)) + 12|0);
HEAP32[$215>>2] = $206;
}
HEAP32[(1407612)>>2] = $$0171$i;
HEAP32[(1407624)>>2] = $141;
}
$216 = ((($$0170$i)) + 8|0);
$$0 = $216;
STACKTOP = sp;return ($$0|0);
} else {
$$0192 = $6;
}
}
} else {
$$0192 = $6;
}
} else {
$217 = ($0>>>0)>(4294967231);
if ($217) {
$$0192 = -1;
} else {
$218 = (($0) + 11)|0;
$219 = $218 & -8;
$220 = HEAP32[(1407608)>>2]|0;
$221 = ($220|0)==(0);
if ($221) {
$$0192 = $219;
} else {
$222 = (0 - ($219))|0;
$223 = (8)?($218 >>> 8):($218);
$224 = ($223|0)==(0);
if ($224) {
$$0335$i = 0;
} else {
$225 = ($219>>>0)>(16777215);
if ($225) {
$$0335$i = 31;
} else {
$226 = (($223) + 1048320)|0;
$227 = (16)?($226 >>> 16):($226);
$228 = $227 & 8;
$229 = $223 << $228;
$230 = (($229) + 520192)|0;
$231 = (16)?($230 >>> 16):($230);
$232 = $231 & 4;
$233 = $232 | $228;
$234 = $229 << $232;
$235 = (($234) + 245760)|0;
$236 = (16)?($235 >>> 16):($235);
$237 = $236 & 2;
$238 = $233 | $237;
$239 = (14 - ($238))|0;
$240 = $234 << $237;
$241 = (15)?($240 >>> 15):($240);
$242 = (($239) + ($241))|0;
$243 = $242 << 1;
$244 = (($242) + 7)|0;
$245 = ($244)?($219 >>> $244):($219);
$246 = $245 & 1;
$247 = $246 | $243;
$$0335$i = $247;
}
}
$248 = (1407908 + ($$0335$i<<2)|0);
$249 = HEAP32[$248>>2]|0;
$250 = ($249|0)==(0|0);
L79: do {
if ($250) {
$$2331$i = 0;$$3$i198 = 0;$$3326$i = $222;
label = 61;
} else {
$251 = ($$0335$i|0)==(31);
$252 = (1)?($$0335$i >>> 1):($$0335$i);
$253 = (25 - ($252))|0;
$254 = $251 ? 0 : $253;
$255 = $219 << $254;
$$0318$i = 0;$$0323$i = $222;$$0329$i = $249;$$0336$i = $255;$$0339$i = 0;
while(1) {
$256 = ((($$0329$i)) + 4|0);
$257 = HEAP32[$256>>2]|0;
$258 = $257 & -8;
$259 = (($258) - ($219))|0;
$260 = ($259>>>0)<($$0323$i>>>0);
if ($260) {
$261 = ($259|0)==(0);
if ($261) {
$$415$i$ph = $$0329$i;$$432714$i$ph = 0;$$533413$i$ph = $$0329$i;
label = 65;
break L79;
} else {
$$1319$i = $$0329$i;$$1324$i = $259;
}
} else {
$$1319$i = $$0318$i;$$1324$i = $$0323$i;
}
$262 = ((($$0329$i)) + 20|0);
$263 = HEAP32[$262>>2]|0;
$264 = (31)?($$0336$i >>> 31):($$0336$i);
$265 = (((($$0329$i)) + 16|0) + ($264<<2)|0);
$266 = HEAP32[$265>>2]|0;
$267 = ($263|0)==(0|0);
$268 = ($263|0)==($266|0);
$or$cond1$i197 = $267 | $268;
$$1340$i = $or$cond1$i197 ? $$0339$i : $263;
$269 = ($266|0)==(0|0);
$spec$select4$i = $$0336$i << 1;
if ($269) {
$$2331$i = $$1340$i;$$3$i198 = $$1319$i;$$3326$i = $$1324$i;
label = 61;
break;
} else {
$$0318$i = $$1319$i;$$0323$i = $$1324$i;$$0329$i = $266;$$0336$i = $spec$select4$i;$$0339$i = $$1340$i;
}
}
}
} while(0);
if ((label|0) == 61) {
$270 = ($$2331$i|0)==(0|0);
$271 = ($$3$i198|0)==(0|0);
$or$cond$i199 = $270 & $271;
if ($or$cond$i199) {
$272 = 2 << $$0335$i;
$273 = (0 - ($272))|0;
$274 = $272 | $273;
$275 = $274 & $220;
$276 = ($275|0)==(0);
if ($276) {
$$0192 = $219;
break;
}
$277 = (0 - ($275))|0;
$278 = $275 & $277;
$279 = (($278) + -1)|0;
$280 = (12)?($279 >>> 12):($279);
$281 = $280 & 16;
$282 = ($281)?($279 >>> $281):($279);
$283 = (5)?($282 >>> 5):($282);
$284 = $283 & 8;
$285 = $284 | $281;
$286 = ($284)?($282 >>> $284):($282);
$287 = (2)?($286 >>> 2):($286);
$288 = $287 & 4;
$289 = $285 | $288;
$290 = ($288)?($286 >>> $288):($286);
$291 = (1)?($290 >>> 1):($290);
$292 = $291 & 2;
$293 = $289 | $292;
$294 = ($292)?($290 >>> $292):($290);
$295 = (1)?($294 >>> 1):($294);
$296 = $295 & 1;
$297 = $293 | $296;
$298 = ($296)?($294 >>> $296):($294);
$299 = (($297) + ($298))|0;
$300 = (1407908 + ($299<<2)|0);
$301 = HEAP32[$300>>2]|0;
$$3$i198211 = 0;$$4333$i = $301;
} else {
$$3$i198211 = $$3$i198;$$4333$i = $$2331$i;
}
$302 = ($$4333$i|0)==(0|0);
if ($302) {
$$4$lcssa$i = $$3$i198211;$$4327$lcssa$i = $$3326$i;
} else {
$$415$i$ph = $$3$i198211;$$432714$i$ph = $$3326$i;$$533413$i$ph = $$4333$i;
label = 65;
}
}
if ((label|0) == 65) {
$$415$i = $$415$i$ph;$$432714$i = $$432714$i$ph;$$533413$i = $$533413$i$ph;
while(1) {
$303 = ((($$533413$i)) + 4|0);
$304 = HEAP32[$303>>2]|0;
$305 = $304 & -8;
$306 = (($305) - ($219))|0;
$307 = ($306>>>0)<($$432714$i>>>0);
$spec$select$i201 = $307 ? $306 : $$432714$i;
$spec$select2$i = $307 ? $$533413$i : $$415$i;
$308 = ((($$533413$i)) + 16|0);
$309 = HEAP32[$308>>2]|0;
$310 = ($309|0)==(0|0);
if ($310) {
$311 = ((($$533413$i)) + 20|0);
$312 = HEAP32[$311>>2]|0;
$313 = $312;
} else {
$313 = $309;
}
$314 = ($313|0)==(0|0);
if ($314) {
$$4$lcssa$i = $spec$select2$i;$$4327$lcssa$i = $spec$select$i201;
break;
} else {
$$415$i = $spec$select2$i;$$432714$i = $spec$select$i201;$$533413$i = $313;
}
}
}
$315 = ($$4$lcssa$i|0)==(0|0);
if ($315) {
$$0192 = $219;
} else {
$316 = HEAP32[(1407612)>>2]|0;
$317 = (($316) - ($219))|0;
$318 = ($$4327$lcssa$i>>>0)<($317>>>0);
if ($318) {
$319 = (($$4$lcssa$i) + ($219)|0);
$320 = ($319>>>0)>($$4$lcssa$i>>>0);
if ($320) {
$321 = ((($$4$lcssa$i)) + 24|0);
$322 = HEAP32[$321>>2]|0;
$323 = ((($$4$lcssa$i)) + 12|0);
$324 = HEAP32[$323>>2]|0;
$325 = ($324|0)==($$4$lcssa$i|0);
do {
if ($325) {
$330 = ((($$4$lcssa$i)) + 20|0);
$331 = HEAP32[$330>>2]|0;
$332 = ($331|0)==(0|0);
if ($332) {
$333 = ((($$4$lcssa$i)) + 16|0);
$334 = HEAP32[$333>>2]|0;
$335 = ($334|0)==(0|0);
if ($335) {
$$3348$i = 0;
break;
} else {
$$1346$i$ph = $334;$$1350$i$ph = $333;
}
} else {
$$1346$i$ph = $331;$$1350$i$ph = $330;
}
$$1346$i = $$1346$i$ph;$$1350$i = $$1350$i$ph;
while(1) {
$336 = ((($$1346$i)) + 20|0);
$337 = HEAP32[$336>>2]|0;
$338 = ($337|0)==(0|0);
if ($338) {
$339 = ((($$1346$i)) + 16|0);
$340 = HEAP32[$339>>2]|0;
$341 = ($340|0)==(0|0);
if ($341) {
break;
} else {
$$1346$i$be = $340;$$1350$i$be = $339;
}
} else {
$$1346$i$be = $337;$$1350$i$be = $336;
}
$$1346$i = $$1346$i$be;$$1350$i = $$1350$i$be;
}
HEAP32[$$1350$i>>2] = 0;
$$3348$i = $$1346$i;
} else {
$326 = ((($$4$lcssa$i)) + 8|0);
$327 = HEAP32[$326>>2]|0;
$328 = ((($327)) + 12|0);
HEAP32[$328>>2] = $324;
$329 = ((($324)) + 8|0);
HEAP32[$329>>2] = $327;
$$3348$i = $324;
}
} while(0);
$342 = ($322|0)==(0|0);
do {
if ($342) {
$425 = $220;
} else {
$343 = ((($$4$lcssa$i)) + 28|0);
$344 = HEAP32[$343>>2]|0;
$345 = (1407908 + ($344<<2)|0);
$346 = HEAP32[$345>>2]|0;
$347 = ($$4$lcssa$i|0)==($346|0);
if ($347) {
HEAP32[$345>>2] = $$3348$i;
$cond$i203 = ($$3348$i|0)==(0|0);
if ($cond$i203) {
$348 = 1 << $344;
$349 = $348 ^ -1;
$350 = $220 & $349;
HEAP32[(1407608)>>2] = $350;
$425 = $350;
break;
}
} else {
$351 = ((($322)) + 16|0);
$352 = HEAP32[$351>>2]|0;
$353 = ($352|0)==($$4$lcssa$i|0);
$354 = ((($322)) + 20|0);
$$sink320 = $353 ? $351 : $354;
HEAP32[$$sink320>>2] = $$3348$i;
$355 = ($$3348$i|0)==(0|0);
if ($355) {
$425 = $220;
break;
}
}
$356 = ((($$3348$i)) + 24|0);
HEAP32[$356>>2] = $322;
$357 = ((($$4$lcssa$i)) + 16|0);
$358 = HEAP32[$357>>2]|0;
$359 = ($358|0)==(0|0);
if (!($359)) {
$360 = ((($$3348$i)) + 16|0);
HEAP32[$360>>2] = $358;
$361 = ((($358)) + 24|0);
HEAP32[$361>>2] = $$3348$i;
}
$362 = ((($$4$lcssa$i)) + 20|0);
$363 = HEAP32[$362>>2]|0;
$364 = ($363|0)==(0|0);
if ($364) {
$425 = $220;
} else {
$365 = ((($$3348$i)) + 20|0);
HEAP32[$365>>2] = $363;
$366 = ((($363)) + 24|0);
HEAP32[$366>>2] = $$3348$i;
$425 = $220;
}
}
} while(0);
$367 = ($$4327$lcssa$i>>>0)<(16);
L128: do {
if ($367) {
$368 = (($$4327$lcssa$i) + ($219))|0;
$369 = $368 | 3;
$370 = ((($$4$lcssa$i)) + 4|0);
HEAP32[$370>>2] = $369;
$371 = (($$4$lcssa$i) + ($368)|0);
$372 = ((($371)) + 4|0);
$373 = HEAP32[$372>>2]|0;
$374 = $373 | 1;
HEAP32[$372>>2] = $374;
} else {
$375 = $219 | 3;
$376 = ((($$4$lcssa$i)) + 4|0);
HEAP32[$376>>2] = $375;
$377 = $$4327$lcssa$i | 1;
$378 = ((($319)) + 4|0);
HEAP32[$378>>2] = $377;
$379 = (($319) + ($$4327$lcssa$i)|0);
HEAP32[$379>>2] = $$4327$lcssa$i;
$380 = (3)?($$4327$lcssa$i >>> 3):($$4327$lcssa$i);
$381 = ($$4327$lcssa$i>>>0)<(256);
if ($381) {
$382 = $380 << 1;
$383 = (1407644 + ($382<<2)|0);
$384 = HEAP32[351901]|0;
$385 = 1 << $380;
$386 = $384 & $385;
$387 = ($386|0)==(0);
if ($387) {
$388 = $384 | $385;
HEAP32[351901] = $388;
$$pre$i204 = ((($383)) + 8|0);
$$0344$i = $383;$$pre$phi$i205Z2D = $$pre$i204;
} else {
$389 = ((($383)) + 8|0);
$390 = HEAP32[$389>>2]|0;
$$0344$i = $390;$$pre$phi$i205Z2D = $389;
}
HEAP32[$$pre$phi$i205Z2D>>2] = $319;
$391 = ((($$0344$i)) + 12|0);
HEAP32[$391>>2] = $319;
$392 = ((($319)) + 8|0);
HEAP32[$392>>2] = $$0344$i;
$393 = ((($319)) + 12|0);
HEAP32[$393>>2] = $383;
break;
}
$394 = (8)?($$4327$lcssa$i >>> 8):($$4327$lcssa$i);
$395 = ($394|0)==(0);
if ($395) {
$$0338$i = 0;
} else {
$396 = ($$4327$lcssa$i>>>0)>(16777215);
if ($396) {
$$0338$i = 31;
} else {
$397 = (($394) + 1048320)|0;
$398 = (16)?($397 >>> 16):($397);
$399 = $398 & 8;
$400 = $394 << $399;
$401 = (($400) + 520192)|0;
$402 = (16)?($401 >>> 16):($401);
$403 = $402 & 4;
$404 = $403 | $399;
$405 = $400 << $403;
$406 = (($405) + 245760)|0;
$407 = (16)?($406 >>> 16):($406);
$408 = $407 & 2;
$409 = $404 | $408;
$410 = (14 - ($409))|0;
$411 = $405 << $408;
$412 = (15)?($411 >>> 15):($411);
$413 = (($410) + ($412))|0;
$414 = $413 << 1;
$415 = (($413) + 7)|0;
$416 = ($415)?($$4327$lcssa$i >>> $415):($$4327$lcssa$i);
$417 = $416 & 1;
$418 = $417 | $414;
$$0338$i = $418;
}
}
$419 = (1407908 + ($$0338$i<<2)|0);
$420 = ((($319)) + 28|0);
HEAP32[$420>>2] = $$0338$i;
$421 = ((($319)) + 16|0);
$422 = ((($421)) + 4|0);
HEAP32[$422>>2] = 0;
HEAP32[$421>>2] = 0;
$423 = 1 << $$0338$i;
$424 = $425 & $423;
$426 = ($424|0)==(0);
if ($426) {
$427 = $425 | $423;
HEAP32[(1407608)>>2] = $427;
HEAP32[$419>>2] = $319;
$428 = ((($319)) + 24|0);
HEAP32[$428>>2] = $419;
$429 = ((($319)) + 12|0);
HEAP32[$429>>2] = $319;
$430 = ((($319)) + 8|0);
HEAP32[$430>>2] = $319;
break;
}
$431 = HEAP32[$419>>2]|0;
$432 = ((($431)) + 4|0);
$433 = HEAP32[$432>>2]|0;
$434 = $433 & -8;
$435 = ($434|0)==($$4327$lcssa$i|0);
L145: do {
if ($435) {
$$0321$lcssa$i = $431;
} else {
$436 = ($$0338$i|0)==(31);
$437 = (1)?($$0338$i >>> 1):($$0338$i);
$438 = (25 - ($437))|0;
$439 = $436 ? 0 : $438;
$440 = $$4327$lcssa$i << $439;
$$032012$i = $440;$$032111$i = $431;
while(1) {
$447 = (31)?($$032012$i >>> 31):($$032012$i);
$448 = (((($$032111$i)) + 16|0) + ($447<<2)|0);
$443 = HEAP32[$448>>2]|0;
$449 = ($443|0)==(0|0);
if ($449) {
break;
}
$441 = $$032012$i << 1;
$442 = ((($443)) + 4|0);
$444 = HEAP32[$442>>2]|0;
$445 = $444 & -8;
$446 = ($445|0)==($$4327$lcssa$i|0);
if ($446) {
$$0321$lcssa$i = $443;
break L145;
} else {
$$032012$i = $441;$$032111$i = $443;
}
}
HEAP32[$448>>2] = $319;
$450 = ((($319)) + 24|0);
HEAP32[$450>>2] = $$032111$i;
$451 = ((($319)) + 12|0);
HEAP32[$451>>2] = $319;
$452 = ((($319)) + 8|0);
HEAP32[$452>>2] = $319;
break L128;
}
} while(0);
$453 = ((($$0321$lcssa$i)) + 8|0);
$454 = HEAP32[$453>>2]|0;
$455 = ((($454)) + 12|0);
HEAP32[$455>>2] = $319;
HEAP32[$453>>2] = $319;
$456 = ((($319)) + 8|0);
HEAP32[$456>>2] = $454;
$457 = ((($319)) + 12|0);
HEAP32[$457>>2] = $$0321$lcssa$i;
$458 = ((($319)) + 24|0);
HEAP32[$458>>2] = 0;
}
} while(0);
$459 = ((($$4$lcssa$i)) + 8|0);
$$0 = $459;
STACKTOP = sp;return ($$0|0);
} else {
$$0192 = $219;
}
} else {
$$0192 = $219;
}
}
}
}
}
} while(0);
$460 = HEAP32[(1407612)>>2]|0;
$461 = ($460>>>0)<($$0192>>>0);
if (!($461)) {
$462 = (($460) - ($$0192))|0;
$463 = HEAP32[(1407624)>>2]|0;
$464 = ($462>>>0)>(15);
if ($464) {
$465 = (($463) + ($$0192)|0);
HEAP32[(1407624)>>2] = $465;
HEAP32[(1407612)>>2] = $462;
$466 = $462 | 1;
$467 = ((($465)) + 4|0);
HEAP32[$467>>2] = $466;
$468 = (($463) + ($460)|0);
HEAP32[$468>>2] = $462;
$469 = $$0192 | 3;
$470 = ((($463)) + 4|0);
HEAP32[$470>>2] = $469;
} else {
HEAP32[(1407612)>>2] = 0;
HEAP32[(1407624)>>2] = 0;
$471 = $460 | 3;
$472 = ((($463)) + 4|0);
HEAP32[$472>>2] = $471;
$473 = (($463) + ($460)|0);
$474 = ((($473)) + 4|0);
$475 = HEAP32[$474>>2]|0;
$476 = $475 | 1;
HEAP32[$474>>2] = $476;
}
$477 = ((($463)) + 8|0);
$$0 = $477;
STACKTOP = sp;return ($$0|0);
}
$478 = HEAP32[(1407616)>>2]|0;
$479 = ($478>>>0)>($$0192>>>0);
if ($479) {
$480 = (($478) - ($$0192))|0;
HEAP32[(1407616)>>2] = $480;
$481 = HEAP32[(1407628)>>2]|0;
$482 = (($481) + ($$0192)|0);
HEAP32[(1407628)>>2] = $482;
$483 = $480 | 1;
$484 = ((($482)) + 4|0);
HEAP32[$484>>2] = $483;
$485 = $$0192 | 3;
$486 = ((($481)) + 4|0);
HEAP32[$486>>2] = $485;
$487 = ((($481)) + 8|0);
$$0 = $487;
STACKTOP = sp;return ($$0|0);
}
$488 = HEAP32[352019]|0;
$489 = ($488|0)==(0);
if ($489) {
HEAP32[(1408084)>>2] = 4096;
HEAP32[(1408080)>>2] = 4096;
HEAP32[(1408088)>>2] = -1;
HEAP32[(1408092)>>2] = -1;
HEAP32[(1408096)>>2] = 0;
HEAP32[(1408048)>>2] = 0;
$490 = $1;
$491 = $490 & -16;
$492 = $491 ^ 1431655768;
HEAP32[352019] = $492;
$496 = 4096;
} else {
$$pre$i195 = HEAP32[(1408084)>>2]|0;
$496 = $$pre$i195;
}
$493 = (($$0192) + 48)|0;
$494 = (($$0192) + 47)|0;
$495 = (($496) + ($494))|0;
$497 = (0 - ($496))|0;
$498 = $495 & $497;
$499 = ($498>>>0)>($$0192>>>0);
if (!($499)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$500 = HEAP32[(1408044)>>2]|0;
$501 = ($500|0)==(0);
if (!($501)) {
$502 = HEAP32[(1408036)>>2]|0;
$503 = (($502) + ($498))|0;
$504 = ($503>>>0)<=($502>>>0);
$505 = ($503>>>0)>($500>>>0);
$or$cond1$i = $504 | $505;
if ($or$cond1$i) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
}
$506 = HEAP32[(1408048)>>2]|0;
$507 = $506 & 4;
$508 = ($507|0)==(0);
L178: do {
if ($508) {
$509 = HEAP32[(1407628)>>2]|0;
$510 = ($509|0)==(0|0);
L180: do {
if ($510) {
label = 128;
} else {
$$0$i20$i = (1408052);
while(1) {
$511 = HEAP32[$$0$i20$i>>2]|0;
$512 = ($511>>>0)>($509>>>0);
if (!($512)) {
$513 = ((($$0$i20$i)) + 4|0);
$514 = HEAP32[$513>>2]|0;
$515 = (($511) + ($514)|0);
$516 = ($515>>>0)>($509>>>0);
if ($516) {
break;
}
}
$517 = ((($$0$i20$i)) + 8|0);
$518 = HEAP32[$517>>2]|0;
$519 = ($518|0)==(0|0);
if ($519) {
label = 128;
break L180;
} else {
$$0$i20$i = $518;
}
}
$542 = (($495) - ($478))|0;
$543 = $542 & $497;
$544 = ($543>>>0)<(2147483647);
if ($544) {
$545 = ((($$0$i20$i)) + 4|0);
$546 = (_sbrk(($543|0))|0);
$547 = HEAP32[$$0$i20$i>>2]|0;
$548 = HEAP32[$545>>2]|0;
$549 = (($547) + ($548)|0);
$550 = ($546|0)==($549|0);
if ($550) {
$551 = ($546|0)==((-1)|0);
if ($551) {
$$2234243136$i = $543;
} else {
$$723947$i = $543;$$748$i = $546;
label = 145;
break L178;
}
} else {
$$2247$ph$i = $546;$$2253$ph$i = $543;
label = 136;
}
} else {
$$2234243136$i = 0;
}
}
} while(0);
do {
if ((label|0) == 128) {
$520 = (_sbrk(0)|0);
$521 = ($520|0)==((-1)|0);
if ($521) {
$$2234243136$i = 0;
} else {
$522 = $520;
$523 = HEAP32[(1408080)>>2]|0;
$524 = (($523) + -1)|0;
$525 = $524 & $522;
$526 = ($525|0)==(0);
$527 = (($524) + ($522))|0;
$528 = (0 - ($523))|0;
$529 = $527 & $528;
$530 = (($529) - ($522))|0;
$531 = $526 ? 0 : $530;
$spec$select49$i = (($531) + ($498))|0;
$532 = HEAP32[(1408036)>>2]|0;
$533 = (($spec$select49$i) + ($532))|0;
$534 = ($spec$select49$i>>>0)>($$0192>>>0);
$535 = ($spec$select49$i>>>0)<(2147483647);
$or$cond$i = $534 & $535;
if ($or$cond$i) {
$536 = HEAP32[(1408044)>>2]|0;
$537 = ($536|0)==(0);
if (!($537)) {
$538 = ($533>>>0)<=($532>>>0);
$539 = ($533>>>0)>($536>>>0);
$or$cond2$i = $538 | $539;
if ($or$cond2$i) {
$$2234243136$i = 0;
break;
}
}
$540 = (_sbrk(($spec$select49$i|0))|0);
$541 = ($540|0)==($520|0);
if ($541) {
$$723947$i = $spec$select49$i;$$748$i = $520;
label = 145;
break L178;
} else {
$$2247$ph$i = $540;$$2253$ph$i = $spec$select49$i;
label = 136;
}
} else {
$$2234243136$i = 0;
}
}
}
} while(0);
do {
if ((label|0) == 136) {
$552 = (0 - ($$2253$ph$i))|0;
$553 = ($$2247$ph$i|0)!=((-1)|0);
$554 = ($$2253$ph$i>>>0)<(2147483647);
$or$cond7$i = $554 & $553;
$555 = ($493>>>0)>($$2253$ph$i>>>0);
$or$cond6$i = $555 & $or$cond7$i;
if (!($or$cond6$i)) {
$565 = ($$2247$ph$i|0)==((-1)|0);
if ($565) {
$$2234243136$i = 0;
break;
} else {
$$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i;
label = 145;
break L178;
}
}
$556 = HEAP32[(1408084)>>2]|0;
$557 = (($494) - ($$2253$ph$i))|0;
$558 = (($557) + ($556))|0;
$559 = (0 - ($556))|0;
$560 = $558 & $559;
$561 = ($560>>>0)<(2147483647);
if (!($561)) {
$$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i;
label = 145;
break L178;
}
$562 = (_sbrk(($560|0))|0);
$563 = ($562|0)==((-1)|0);
if ($563) {
(_sbrk(($552|0))|0);
$$2234243136$i = 0;
break;
} else {
$564 = (($560) + ($$2253$ph$i))|0;
$$723947$i = $564;$$748$i = $$2247$ph$i;
label = 145;
break L178;
}
}
} while(0);
$566 = HEAP32[(1408048)>>2]|0;
$567 = $566 | 4;
HEAP32[(1408048)>>2] = $567;
$$4236$i = $$2234243136$i;
label = 143;
} else {
$$4236$i = 0;
label = 143;
}
} while(0);
if ((label|0) == 143) {
$568 = ($498>>>0)<(2147483647);
if ($568) {
$569 = (_sbrk(($498|0))|0);
$570 = (_sbrk(0)|0);
$571 = ($569|0)!=((-1)|0);
$572 = ($570|0)!=((-1)|0);
$or$cond5$i = $571 & $572;
$573 = ($569>>>0)<($570>>>0);
$or$cond8$i = $573 & $or$cond5$i;
$574 = $570;
$575 = $569;
$576 = (($574) - ($575))|0;
$577 = (($$0192) + 40)|0;
$578 = ($576>>>0)>($577>>>0);
$spec$select9$i = $578 ? $576 : $$4236$i;
$or$cond8$not$i = $or$cond8$i ^ 1;
$579 = ($569|0)==((-1)|0);
$not$$i = $578 ^ 1;
$580 = $579 | $not$$i;
$or$cond50$i = $580 | $or$cond8$not$i;
if (!($or$cond50$i)) {
$$723947$i = $spec$select9$i;$$748$i = $569;
label = 145;
}
}
}
if ((label|0) == 145) {
$581 = HEAP32[(1408036)>>2]|0;
$582 = (($581) + ($$723947$i))|0;
HEAP32[(1408036)>>2] = $582;
$583 = HEAP32[(1408040)>>2]|0;
$584 = ($582>>>0)>($583>>>0);
if ($584) {
HEAP32[(1408040)>>2] = $582;
}
$585 = HEAP32[(1407628)>>2]|0;
$586 = ($585|0)==(0|0);
L215: do {
if ($586) {
$587 = HEAP32[(1407620)>>2]|0;
$588 = ($587|0)==(0|0);
$589 = ($$748$i>>>0)<($587>>>0);
$or$cond11$i = $588 | $589;
if ($or$cond11$i) {
HEAP32[(1407620)>>2] = $$748$i;
}
HEAP32[(1408052)>>2] = $$748$i;
HEAP32[(1408056)>>2] = $$723947$i;
HEAP32[(1408064)>>2] = 0;
$590 = HEAP32[352019]|0;
HEAP32[(1407640)>>2] = $590;
HEAP32[(1407636)>>2] = -1;
HEAP32[(1407656)>>2] = (1407644);
HEAP32[(1407652)>>2] = (1407644);
HEAP32[(1407664)>>2] = (1407652);
HEAP32[(1407660)>>2] = (1407652);
HEAP32[(1407672)>>2] = (1407660);
HEAP32[(1407668)>>2] = (1407660);
HEAP32[(1407680)>>2] = (1407668);
HEAP32[(1407676)>>2] = (1407668);
HEAP32[(1407688)>>2] = (1407676);
HEAP32[(1407684)>>2] = (1407676);
HEAP32[(1407696)>>2] = (1407684);
HEAP32[(1407692)>>2] = (1407684);
HEAP32[(1407704)>>2] = (1407692);
HEAP32[(1407700)>>2] = (1407692);
HEAP32[(1407712)>>2] = (1407700);
HEAP32[(1407708)>>2] = (1407700);
HEAP32[(1407720)>>2] = (1407708);
HEAP32[(1407716)>>2] = (1407708);
HEAP32[(1407728)>>2] = (1407716);
HEAP32[(1407724)>>2] = (1407716);
HEAP32[(1407736)>>2] = (1407724);
HEAP32[(1407732)>>2] = (1407724);
HEAP32[(1407744)>>2] = (1407732);
HEAP32[(1407740)>>2] = (1407732);
HEAP32[(1407752)>>2] = (1407740);
HEAP32[(1407748)>>2] = (1407740);
HEAP32[(1407760)>>2] = (1407748);
HEAP32[(1407756)>>2] = (1407748);
HEAP32[(1407768)>>2] = (1407756);
HEAP32[(1407764)>>2] = (1407756);
HEAP32[(1407776)>>2] = (1407764);
HEAP32[(1407772)>>2] = (1407764);
HEAP32[(1407784)>>2] = (1407772);
HEAP32[(1407780)>>2] = (1407772);
HEAP32[(1407792)>>2] = (1407780);
HEAP32[(1407788)>>2] = (1407780);
HEAP32[(1407800)>>2] = (1407788);
HEAP32[(1407796)>>2] = (1407788);
HEAP32[(1407808)>>2] = (1407796);
HEAP32[(1407804)>>2] = (1407796);
HEAP32[(1407816)>>2] = (1407804);
HEAP32[(1407812)>>2] = (1407804);
HEAP32[(1407824)>>2] = (1407812);
HEAP32[(1407820)>>2] = (1407812);
HEAP32[(1407832)>>2] = (1407820);
HEAP32[(1407828)>>2] = (1407820);
HEAP32[(1407840)>>2] = (1407828);
HEAP32[(1407836)>>2] = (1407828);
HEAP32[(1407848)>>2] = (1407836);
HEAP32[(1407844)>>2] = (1407836);
HEAP32[(1407856)>>2] = (1407844);
HEAP32[(1407852)>>2] = (1407844);
HEAP32[(1407864)>>2] = (1407852);
HEAP32[(1407860)>>2] = (1407852);
HEAP32[(1407872)>>2] = (1407860);
HEAP32[(1407868)>>2] = (1407860);
HEAP32[(1407880)>>2] = (1407868);
HEAP32[(1407876)>>2] = (1407868);
HEAP32[(1407888)>>2] = (1407876);
HEAP32[(1407884)>>2] = (1407876);
HEAP32[(1407896)>>2] = (1407884);
HEAP32[(1407892)>>2] = (1407884);
HEAP32[(1407904)>>2] = (1407892);
HEAP32[(1407900)>>2] = (1407892);
$591 = (($$723947$i) + -40)|0;
$592 = ((($$748$i)) + 8|0);
$593 = $592;
$594 = $593 & 7;
$595 = ($594|0)==(0);
$596 = (0 - ($593))|0;
$597 = $596 & 7;
$598 = $595 ? 0 : $597;
$599 = (($$748$i) + ($598)|0);
$600 = (($591) - ($598))|0;
HEAP32[(1407628)>>2] = $599;
HEAP32[(1407616)>>2] = $600;
$601 = $600 | 1;
$602 = ((($599)) + 4|0);
HEAP32[$602>>2] = $601;
$603 = (($$748$i) + ($591)|0);
$604 = ((($603)) + 4|0);
HEAP32[$604>>2] = 40;
$605 = HEAP32[(1408092)>>2]|0;
HEAP32[(1407632)>>2] = $605;
} else {
$$024372$i = (1408052);
while(1) {
$606 = HEAP32[$$024372$i>>2]|0;
$607 = ((($$024372$i)) + 4|0);
$608 = HEAP32[$607>>2]|0;
$609 = (($606) + ($608)|0);
$610 = ($$748$i|0)==($609|0);
if ($610) {
label = 154;
break;
}
$611 = ((($$024372$i)) + 8|0);
$612 = HEAP32[$611>>2]|0;
$613 = ($612|0)==(0|0);
if ($613) {
break;
} else {
$$024372$i = $612;
}
}
if ((label|0) == 154) {
$614 = ((($$024372$i)) + 4|0);
$615 = ((($$024372$i)) + 12|0);
$616 = HEAP32[$615>>2]|0;
$617 = $616 & 8;
$618 = ($617|0)==(0);
if ($618) {
$619 = ($606>>>0)<=($585>>>0);
$620 = ($$748$i>>>0)>($585>>>0);
$or$cond51$i = $620 & $619;
if ($or$cond51$i) {
$621 = (($608) + ($$723947$i))|0;
HEAP32[$614>>2] = $621;
$622 = HEAP32[(1407616)>>2]|0;
$623 = (($622) + ($$723947$i))|0;
$624 = ((($585)) + 8|0);
$625 = $624;
$626 = $625 & 7;
$627 = ($626|0)==(0);
$628 = (0 - ($625))|0;
$629 = $628 & 7;
$630 = $627 ? 0 : $629;
$631 = (($585) + ($630)|0);
$632 = (($623) - ($630))|0;
HEAP32[(1407628)>>2] = $631;
HEAP32[(1407616)>>2] = $632;
$633 = $632 | 1;
$634 = ((($631)) + 4|0);
HEAP32[$634>>2] = $633;
$635 = (($585) + ($623)|0);
$636 = ((($635)) + 4|0);
HEAP32[$636>>2] = 40;
$637 = HEAP32[(1408092)>>2]|0;
HEAP32[(1407632)>>2] = $637;
break;
}
}
}
$638 = HEAP32[(1407620)>>2]|0;
$639 = ($$748$i>>>0)<($638>>>0);
if ($639) {
HEAP32[(1407620)>>2] = $$748$i;
}
$640 = (($$748$i) + ($$723947$i)|0);
$$124471$i = (1408052);
while(1) {
$641 = HEAP32[$$124471$i>>2]|0;
$642 = ($641|0)==($640|0);
if ($642) {
label = 162;
break;
}
$643 = ((($$124471$i)) + 8|0);
$644 = HEAP32[$643>>2]|0;
$645 = ($644|0)==(0|0);
if ($645) {
break;
} else {
$$124471$i = $644;
}
}
if ((label|0) == 162) {
$646 = ((($$124471$i)) + 12|0);
$647 = HEAP32[$646>>2]|0;
$648 = $647 & 8;
$649 = ($648|0)==(0);
if ($649) {
HEAP32[$$124471$i>>2] = $$748$i;
$650 = ((($$124471$i)) + 4|0);
$651 = HEAP32[$650>>2]|0;
$652 = (($651) + ($$723947$i))|0;
HEAP32[$650>>2] = $652;
$653 = ((($$748$i)) + 8|0);
$654 = $653;
$655 = $654 & 7;
$656 = ($655|0)==(0);
$657 = (0 - ($654))|0;
$658 = $657 & 7;
$659 = $656 ? 0 : $658;
$660 = (($$748$i) + ($659)|0);
$661 = ((($640)) + 8|0);
$662 = $661;
$663 = $662 & 7;
$664 = ($663|0)==(0);
$665 = (0 - ($662))|0;
$666 = $665 & 7;
$667 = $664 ? 0 : $666;
$668 = (($640) + ($667)|0);
$669 = $668;
$670 = $660;
$671 = (($669) - ($670))|0;
$672 = (($660) + ($$0192)|0);
$673 = (($671) - ($$0192))|0;
$674 = $$0192 | 3;
$675 = ((($660)) + 4|0);
HEAP32[$675>>2] = $674;
$676 = ($585|0)==($668|0);
L238: do {
if ($676) {
$677 = HEAP32[(1407616)>>2]|0;
$678 = (($677) + ($673))|0;
HEAP32[(1407616)>>2] = $678;
HEAP32[(1407628)>>2] = $672;
$679 = $678 | 1;
$680 = ((($672)) + 4|0);
HEAP32[$680>>2] = $679;
} else {
$681 = HEAP32[(1407624)>>2]|0;
$682 = ($681|0)==($668|0);
if ($682) {
$683 = HEAP32[(1407612)>>2]|0;
$684 = (($683) + ($673))|0;
HEAP32[(1407612)>>2] = $684;
HEAP32[(1407624)>>2] = $672;
$685 = $684 | 1;
$686 = ((($672)) + 4|0);
HEAP32[$686>>2] = $685;
$687 = (($672) + ($684)|0);
HEAP32[$687>>2] = $684;
break;
}
$688 = ((($668)) + 4|0);
$689 = HEAP32[$688>>2]|0;
$690 = $689 & 3;
$691 = ($690|0)==(1);
if ($691) {
$692 = $689 & -8;
$693 = (3)?($689 >>> 3):($689);
$694 = ($689>>>0)<(256);
L246: do {
if ($694) {
$695 = ((($668)) + 8|0);
$696 = HEAP32[$695>>2]|0;
$697 = ((($668)) + 12|0);
$698 = HEAP32[$697>>2]|0;
$699 = ($698|0)==($696|0);
if ($699) {
$700 = 1 << $693;
$701 = $700 ^ -1;
$702 = HEAP32[351901]|0;
$703 = $702 & $701;
HEAP32[351901] = $703;
break;
} else {
$704 = ((($696)) + 12|0);
HEAP32[$704>>2] = $698;
$705 = ((($698)) + 8|0);
HEAP32[$705>>2] = $696;
break;
}
} else {
$706 = ((($668)) + 24|0);
$707 = HEAP32[$706>>2]|0;
$708 = ((($668)) + 12|0);
$709 = HEAP32[$708>>2]|0;
$710 = ($709|0)==($668|0);
do {
if ($710) {
$715 = ((($668)) + 16|0);
$716 = ((($715)) + 4|0);
$717 = HEAP32[$716>>2]|0;
$718 = ($717|0)==(0|0);
if ($718) {
$719 = HEAP32[$715>>2]|0;
$720 = ($719|0)==(0|0);
if ($720) {
$$3$i$i = 0;
break;
} else {
$$1263$i$i$ph = $719;$$1265$i$i$ph = $715;
}
} else {
$$1263$i$i$ph = $717;$$1265$i$i$ph = $716;
}
$$1263$i$i = $$1263$i$i$ph;$$1265$i$i = $$1265$i$i$ph;
while(1) {
$721 = ((($$1263$i$i)) + 20|0);
$722 = HEAP32[$721>>2]|0;
$723 = ($722|0)==(0|0);
if ($723) {
$724 = ((($$1263$i$i)) + 16|0);
$725 = HEAP32[$724>>2]|0;
$726 = ($725|0)==(0|0);
if ($726) {
break;
} else {
$$1263$i$i$be = $725;$$1265$i$i$be = $724;
}
} else {
$$1263$i$i$be = $722;$$1265$i$i$be = $721;
}
$$1263$i$i = $$1263$i$i$be;$$1265$i$i = $$1265$i$i$be;
}
HEAP32[$$1265$i$i>>2] = 0;
$$3$i$i = $$1263$i$i;
} else {
$711 = ((($668)) + 8|0);
$712 = HEAP32[$711>>2]|0;
$713 = ((($712)) + 12|0);
HEAP32[$713>>2] = $709;
$714 = ((($709)) + 8|0);
HEAP32[$714>>2] = $712;
$$3$i$i = $709;
}
} while(0);
$727 = ($707|0)==(0|0);
if ($727) {
break;
}
$728 = ((($668)) + 28|0);
$729 = HEAP32[$728>>2]|0;
$730 = (1407908 + ($729<<2)|0);
$731 = HEAP32[$730>>2]|0;
$732 = ($731|0)==($668|0);
do {
if ($732) {
HEAP32[$730>>2] = $$3$i$i;
$cond$i$i = ($$3$i$i|0)==(0|0);
if (!($cond$i$i)) {
break;
}
$733 = 1 << $729;
$734 = $733 ^ -1;
$735 = HEAP32[(1407608)>>2]|0;
$736 = $735 & $734;
HEAP32[(1407608)>>2] = $736;
break L246;
} else {
$737 = ((($707)) + 16|0);
$738 = HEAP32[$737>>2]|0;
$739 = ($738|0)==($668|0);
$740 = ((($707)) + 20|0);
$$sink321 = $739 ? $737 : $740;
HEAP32[$$sink321>>2] = $$3$i$i;
$741 = ($$3$i$i|0)==(0|0);
if ($741) {
break L246;
}
}
} while(0);
$742 = ((($$3$i$i)) + 24|0);
HEAP32[$742>>2] = $707;
$743 = ((($668)) + 16|0);
$744 = HEAP32[$743>>2]|0;
$745 = ($744|0)==(0|0);
if (!($745)) {
$746 = ((($$3$i$i)) + 16|0);
HEAP32[$746>>2] = $744;
$747 = ((($744)) + 24|0);
HEAP32[$747>>2] = $$3$i$i;
}
$748 = ((($743)) + 4|0);
$749 = HEAP32[$748>>2]|0;
$750 = ($749|0)==(0|0);
if ($750) {
break;
}
$751 = ((($$3$i$i)) + 20|0);
HEAP32[$751>>2] = $749;
$752 = ((($749)) + 24|0);
HEAP32[$752>>2] = $$3$i$i;
}
} while(0);
$753 = (($668) + ($692)|0);
$754 = (($692) + ($673))|0;
$$0$i$i = $753;$$0259$i$i = $754;
} else {
$$0$i$i = $668;$$0259$i$i = $673;
}
$755 = ((($$0$i$i)) + 4|0);
$756 = HEAP32[$755>>2]|0;
$757 = $756 & -2;
HEAP32[$755>>2] = $757;
$758 = $$0259$i$i | 1;
$759 = ((($672)) + 4|0);
HEAP32[$759>>2] = $758;
$760 = (($672) + ($$0259$i$i)|0);
HEAP32[$760>>2] = $$0259$i$i;
$761 = (3)?($$0259$i$i >>> 3):($$0259$i$i);
$762 = ($$0259$i$i>>>0)<(256);
if ($762) {
$763 = $761 << 1;
$764 = (1407644 + ($763<<2)|0);
$765 = HEAP32[351901]|0;
$766 = 1 << $761;
$767 = $765 & $766;
$768 = ($767|0)==(0);
if ($768) {
$769 = $765 | $766;
HEAP32[351901] = $769;
$$pre$i16$i = ((($764)) + 8|0);
$$0267$i$i = $764;$$pre$phi$i17$iZ2D = $$pre$i16$i;
} else {
$770 = ((($764)) + 8|0);
$771 = HEAP32[$770>>2]|0;
$$0267$i$i = $771;$$pre$phi$i17$iZ2D = $770;
}
HEAP32[$$pre$phi$i17$iZ2D>>2] = $672;
$772 = ((($$0267$i$i)) + 12|0);
HEAP32[$772>>2] = $672;
$773 = ((($672)) + 8|0);
HEAP32[$773>>2] = $$0267$i$i;
$774 = ((($672)) + 12|0);
HEAP32[$774>>2] = $764;
break;
}
$775 = (8)?($$0259$i$i >>> 8):($$0259$i$i);
$776 = ($775|0)==(0);
do {
if ($776) {
$$0268$i$i = 0;
} else {
$777 = ($$0259$i$i>>>0)>(16777215);
if ($777) {
$$0268$i$i = 31;
break;
}
$778 = (($775) + 1048320)|0;
$779 = (16)?($778 >>> 16):($778);
$780 = $779 & 8;
$781 = $775 << $780;
$782 = (($781) + 520192)|0;
$783 = (16)?($782 >>> 16):($782);
$784 = $783 & 4;
$785 = $784 | $780;
$786 = $781 << $784;
$787 = (($786) + 245760)|0;
$788 = (16)?($787 >>> 16):($787);
$789 = $788 & 2;
$790 = $785 | $789;
$791 = (14 - ($790))|0;
$792 = $786 << $789;
$793 = (15)?($792 >>> 15):($792);
$794 = (($791) + ($793))|0;
$795 = $794 << 1;
$796 = (($794) + 7)|0;
$797 = ($796)?($$0259$i$i >>> $796):($$0259$i$i);
$798 = $797 & 1;
$799 = $798 | $795;
$$0268$i$i = $799;
}
} while(0);
$800 = (1407908 + ($$0268$i$i<<2)|0);
$801 = ((($672)) + 28|0);
HEAP32[$801>>2] = $$0268$i$i;
$802 = ((($672)) + 16|0);
$803 = ((($802)) + 4|0);
HEAP32[$803>>2] = 0;
HEAP32[$802>>2] = 0;
$804 = HEAP32[(1407608)>>2]|0;
$805 = 1 << $$0268$i$i;
$806 = $804 & $805;
$807 = ($806|0)==(0);
if ($807) {
$808 = $804 | $805;
HEAP32[(1407608)>>2] = $808;
HEAP32[$800>>2] = $672;
$809 = ((($672)) + 24|0);
HEAP32[$809>>2] = $800;
$810 = ((($672)) + 12|0);
HEAP32[$810>>2] = $672;
$811 = ((($672)) + 8|0);
HEAP32[$811>>2] = $672;
break;
}
$812 = HEAP32[$800>>2]|0;
$813 = ((($812)) + 4|0);
$814 = HEAP32[$813>>2]|0;
$815 = $814 & -8;
$816 = ($815|0)==($$0259$i$i|0);
L291: do {
if ($816) {
$$0261$lcssa$i$i = $812;
} else {
$817 = ($$0268$i$i|0)==(31);
$818 = (1)?($$0268$i$i >>> 1):($$0268$i$i);
$819 = (25 - ($818))|0;
$820 = $817 ? 0 : $819;
$821 = $$0259$i$i << $820;
$$02604$i$i = $821;$$02613$i$i = $812;
while(1) {
$828 = (31)?($$02604$i$i >>> 31):($$02604$i$i);
$829 = (((($$02613$i$i)) + 16|0) + ($828<<2)|0);
$824 = HEAP32[$829>>2]|0;
$830 = ($824|0)==(0|0);
if ($830) {
break;
}
$822 = $$02604$i$i << 1;
$823 = ((($824)) + 4|0);
$825 = HEAP32[$823>>2]|0;
$826 = $825 & -8;
$827 = ($826|0)==($$0259$i$i|0);
if ($827) {
$$0261$lcssa$i$i = $824;
break L291;
} else {
$$02604$i$i = $822;$$02613$i$i = $824;
}
}
HEAP32[$829>>2] = $672;
$831 = ((($672)) + 24|0);
HEAP32[$831>>2] = $$02613$i$i;
$832 = ((($672)) + 12|0);
HEAP32[$832>>2] = $672;
$833 = ((($672)) + 8|0);
HEAP32[$833>>2] = $672;
break L238;
}
} while(0);
$834 = ((($$0261$lcssa$i$i)) + 8|0);
$835 = HEAP32[$834>>2]|0;
$836 = ((($835)) + 12|0);
HEAP32[$836>>2] = $672;
HEAP32[$834>>2] = $672;
$837 = ((($672)) + 8|0);
HEAP32[$837>>2] = $835;
$838 = ((($672)) + 12|0);
HEAP32[$838>>2] = $$0261$lcssa$i$i;
$839 = ((($672)) + 24|0);
HEAP32[$839>>2] = 0;
}
} while(0);
$968 = ((($660)) + 8|0);
$$0 = $968;
STACKTOP = sp;return ($$0|0);
}
}
$$0$i$i$i = (1408052);
while(1) {
$840 = HEAP32[$$0$i$i$i>>2]|0;
$841 = ($840>>>0)>($585>>>0);
if (!($841)) {
$842 = ((($$0$i$i$i)) + 4|0);
$843 = HEAP32[$842>>2]|0;
$844 = (($840) + ($843)|0);
$845 = ($844>>>0)>($585>>>0);
if ($845) {
break;
}
}
$846 = ((($$0$i$i$i)) + 8|0);
$847 = HEAP32[$846>>2]|0;
$$0$i$i$i = $847;
}
$848 = ((($844)) + -47|0);
$849 = ((($848)) + 8|0);
$850 = $849;
$851 = $850 & 7;
$852 = ($851|0)==(0);
$853 = (0 - ($850))|0;
$854 = $853 & 7;
$855 = $852 ? 0 : $854;
$856 = (($848) + ($855)|0);
$857 = ((($585)) + 16|0);
$858 = ($856>>>0)<($857>>>0);
$859 = $858 ? $585 : $856;
$860 = ((($859)) + 8|0);
$861 = ((($859)) + 24|0);
$862 = (($$723947$i) + -40)|0;
$863 = ((($$748$i)) + 8|0);
$864 = $863;
$865 = $864 & 7;
$866 = ($865|0)==(0);
$867 = (0 - ($864))|0;
$868 = $867 & 7;
$869 = $866 ? 0 : $868;
$870 = (($$748$i) + ($869)|0);
$871 = (($862) - ($869))|0;
HEAP32[(1407628)>>2] = $870;
HEAP32[(1407616)>>2] = $871;
$872 = $871 | 1;
$873 = ((($870)) + 4|0);
HEAP32[$873>>2] = $872;
$874 = (($$748$i) + ($862)|0);
$875 = ((($874)) + 4|0);
HEAP32[$875>>2] = 40;
$876 = HEAP32[(1408092)>>2]|0;
HEAP32[(1407632)>>2] = $876;
$877 = ((($859)) + 4|0);
HEAP32[$877>>2] = 27;
;HEAP32[$860>>2]=HEAP32[(1408052)>>2]|0;HEAP32[$860+4>>2]=HEAP32[(1408052)+4>>2]|0;HEAP32[$860+8>>2]=HEAP32[(1408052)+8>>2]|0;HEAP32[$860+12>>2]=HEAP32[(1408052)+12>>2]|0;
HEAP32[(1408052)>>2] = $$748$i;
HEAP32[(1408056)>>2] = $$723947$i;
HEAP32[(1408064)>>2] = 0;
HEAP32[(1408060)>>2] = $860;
$879 = $861;
while(1) {
$878 = ((($879)) + 4|0);
HEAP32[$878>>2] = 7;
$880 = ((($879)) + 8|0);
$881 = ($880>>>0)<($844>>>0);
if ($881) {
$879 = $878;
} else {
break;
}
}
$882 = ($859|0)==($585|0);
if (!($882)) {
$883 = $859;
$884 = $585;
$885 = (($883) - ($884))|0;
$886 = HEAP32[$877>>2]|0;
$887 = $886 & -2;
HEAP32[$877>>2] = $887;
$888 = $885 | 1;
$889 = ((($585)) + 4|0);
HEAP32[$889>>2] = $888;
HEAP32[$859>>2] = $885;
$890 = (3)?($885 >>> 3):($885);
$891 = ($885>>>0)<(256);
if ($891) {
$892 = $890 << 1;
$893 = (1407644 + ($892<<2)|0);
$894 = HEAP32[351901]|0;
$895 = 1 << $890;
$896 = $894 & $895;
$897 = ($896|0)==(0);
if ($897) {
$898 = $894 | $895;
HEAP32[351901] = $898;
$$pre$i$i = ((($893)) + 8|0);
$$0206$i$i = $893;$$pre$phi$i$iZ2D = $$pre$i$i;
} else {
$899 = ((($893)) + 8|0);
$900 = HEAP32[$899>>2]|0;
$$0206$i$i = $900;$$pre$phi$i$iZ2D = $899;
}
HEAP32[$$pre$phi$i$iZ2D>>2] = $585;
$901 = ((($$0206$i$i)) + 12|0);
HEAP32[$901>>2] = $585;
$902 = ((($585)) + 8|0);
HEAP32[$902>>2] = $$0206$i$i;
$903 = ((($585)) + 12|0);
HEAP32[$903>>2] = $893;
break;
}
$904 = (8)?($885 >>> 8):($885);
$905 = ($904|0)==(0);
if ($905) {
$$0207$i$i = 0;
} else {
$906 = ($885>>>0)>(16777215);
if ($906) {
$$0207$i$i = 31;
} else {
$907 = (($904) + 1048320)|0;
$908 = (16)?($907 >>> 16):($907);
$909 = $908 & 8;
$910 = $904 << $909;
$911 = (($910) + 520192)|0;
$912 = (16)?($911 >>> 16):($911);
$913 = $912 & 4;
$914 = $913 | $909;
$915 = $910 << $913;
$916 = (($915) + 245760)|0;
$917 = (16)?($916 >>> 16):($916);
$918 = $917 & 2;
$919 = $914 | $918;
$920 = (14 - ($919))|0;
$921 = $915 << $918;
$922 = (15)?($921 >>> 15):($921);
$923 = (($920) + ($922))|0;
$924 = $923 << 1;
$925 = (($923) + 7)|0;
$926 = ($925)?($885 >>> $925):($885);
$927 = $926 & 1;
$928 = $927 | $924;
$$0207$i$i = $928;
}
}
$929 = (1407908 + ($$0207$i$i<<2)|0);
$930 = ((($585)) + 28|0);
HEAP32[$930>>2] = $$0207$i$i;
$931 = ((($585)) + 20|0);
HEAP32[$931>>2] = 0;
HEAP32[$857>>2] = 0;
$932 = HEAP32[(1407608)>>2]|0;
$933 = 1 << $$0207$i$i;
$934 = $932 & $933;
$935 = ($934|0)==(0);
if ($935) {
$936 = $932 | $933;
HEAP32[(1407608)>>2] = $936;
HEAP32[$929>>2] = $585;
$937 = ((($585)) + 24|0);
HEAP32[$937>>2] = $929;
$938 = ((($585)) + 12|0);
HEAP32[$938>>2] = $585;
$939 = ((($585)) + 8|0);
HEAP32[$939>>2] = $585;
break;
}
$940 = HEAP32[$929>>2]|0;
$941 = ((($940)) + 4|0);
$942 = HEAP32[$941>>2]|0;
$943 = $942 & -8;
$944 = ($943|0)==($885|0);
L325: do {
if ($944) {
$$0202$lcssa$i$i = $940;
} else {
$945 = ($$0207$i$i|0)==(31);
$946 = (1)?($$0207$i$i >>> 1):($$0207$i$i);
$947 = (25 - ($946))|0;
$948 = $945 ? 0 : $947;
$949 = $885 << $948;
$$02014$i$i = $949;$$02023$i$i = $940;
while(1) {
$956 = (31)?($$02014$i$i >>> 31):($$02014$i$i);
$957 = (((($$02023$i$i)) + 16|0) + ($956<<2)|0);
$952 = HEAP32[$957>>2]|0;
$958 = ($952|0)==(0|0);
if ($958) {
break;
}
$950 = $$02014$i$i << 1;
$951 = ((($952)) + 4|0);
$953 = HEAP32[$951>>2]|0;
$954 = $953 & -8;
$955 = ($954|0)==($885|0);
if ($955) {
$$0202$lcssa$i$i = $952;
break L325;
} else {
$$02014$i$i = $950;$$02023$i$i = $952;
}
}
HEAP32[$957>>2] = $585;
$959 = ((($585)) + 24|0);
HEAP32[$959>>2] = $$02023$i$i;
$960 = ((($585)) + 12|0);
HEAP32[$960>>2] = $585;
$961 = ((($585)) + 8|0);
HEAP32[$961>>2] = $585;
break L215;
}
} while(0);
$962 = ((($$0202$lcssa$i$i)) + 8|0);
$963 = HEAP32[$962>>2]|0;
$964 = ((($963)) + 12|0);
HEAP32[$964>>2] = $585;
HEAP32[$962>>2] = $585;
$965 = ((($585)) + 8|0);
HEAP32[$965>>2] = $963;
$966 = ((($585)) + 12|0);
HEAP32[$966>>2] = $$0202$lcssa$i$i;
$967 = ((($585)) + 24|0);
HEAP32[$967>>2] = 0;
}
}
} while(0);
$969 = HEAP32[(1407616)>>2]|0;
$970 = ($969>>>0)>($$0192>>>0);
if ($970) {
$971 = (($969) - ($$0192))|0;
HEAP32[(1407616)>>2] = $971;
$972 = HEAP32[(1407628)>>2]|0;
$973 = (($972) + ($$0192)|0);
HEAP32[(1407628)>>2] = $973;
$974 = $971 | 1;
$975 = ((($973)) + 4|0);
HEAP32[$975>>2] = $974;
$976 = $$0192 | 3;
$977 = ((($972)) + 4|0);
HEAP32[$977>>2] = $976;
$978 = ((($972)) + 8|0);
$$0 = $978;
STACKTOP = sp;return ($$0|0);
}
}
$979 = (___errno_location()|0);
HEAP32[$979>>2] = 12;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _free($0) {
$0 = $0|0;
var $$0194$i = 0, $$0194$in$i = 0, $$0346381 = 0, $$0347$lcssa = 0, $$0347380 = 0, $$0359 = 0, $$0366 = 0, $$1 = 0, $$1345 = 0, $$1350 = 0, $$1350$be = 0, $$1350$ph = 0, $$1353 = 0, $$1353$be = 0, $$1353$ph = 0, $$1361 = 0, $$1361$be = 0, $$1361$ph = 0, $$1365 = 0, $$1365$be = 0;
var $$1365$ph = 0, $$2 = 0, $$3 = 0, $$3363 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink = 0, $$sink395 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0;
var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
var $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0;
var $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0;
var $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0;
var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0;
var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0;
var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0;
var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond371 = 0, $cond372 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0|0)==(0|0);
if ($1) {
return;
}
$2 = ((($0)) + -8|0);
$3 = HEAP32[(1407620)>>2]|0;
$4 = ((($0)) + -4|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & -8;
$7 = (($2) + ($6)|0);
$8 = $5 & 1;
$9 = ($8|0)==(0);
do {
if ($9) {
$10 = HEAP32[$2>>2]|0;
$11 = $5 & 3;
$12 = ($11|0)==(0);
if ($12) {
return;
}
$13 = (0 - ($10))|0;
$14 = (($2) + ($13)|0);
$15 = (($10) + ($6))|0;
$16 = ($14>>>0)<($3>>>0);
if ($16) {
return;
}
$17 = HEAP32[(1407624)>>2]|0;
$18 = ($17|0)==($14|0);
if ($18) {
$79 = ((($7)) + 4|0);
$80 = HEAP32[$79>>2]|0;
$81 = $80 & 3;
$82 = ($81|0)==(3);
if (!($82)) {
$$1 = $14;$$1345 = $15;$87 = $14;
break;
}
$83 = (($14) + ($15)|0);
$84 = ((($14)) + 4|0);
$85 = $15 | 1;
$86 = $80 & -2;
HEAP32[(1407612)>>2] = $15;
HEAP32[$79>>2] = $86;
HEAP32[$84>>2] = $85;
HEAP32[$83>>2] = $15;
return;
}
$19 = (3)?($10 >>> 3):($10);
$20 = ($10>>>0)<(256);
if ($20) {
$21 = ((($14)) + 8|0);
$22 = HEAP32[$21>>2]|0;
$23 = ((($14)) + 12|0);
$24 = HEAP32[$23>>2]|0;
$25 = ($24|0)==($22|0);
if ($25) {
$26 = 1 << $19;
$27 = $26 ^ -1;
$28 = HEAP32[351901]|0;
$29 = $28 & $27;
HEAP32[351901] = $29;
$$1 = $14;$$1345 = $15;$87 = $14;
break;
} else {
$30 = ((($22)) + 12|0);
HEAP32[$30>>2] = $24;
$31 = ((($24)) + 8|0);
HEAP32[$31>>2] = $22;
$$1 = $14;$$1345 = $15;$87 = $14;
break;
}
}
$32 = ((($14)) + 24|0);
$33 = HEAP32[$32>>2]|0;
$34 = ((($14)) + 12|0);
$35 = HEAP32[$34>>2]|0;
$36 = ($35|0)==($14|0);
do {
if ($36) {
$41 = ((($14)) + 16|0);
$42 = ((($41)) + 4|0);
$43 = HEAP32[$42>>2]|0;
$44 = ($43|0)==(0|0);
if ($44) {
$45 = HEAP32[$41>>2]|0;
$46 = ($45|0)==(0|0);
if ($46) {
$$3 = 0;
break;
} else {
$$1350$ph = $45;$$1353$ph = $41;
}
} else {
$$1350$ph = $43;$$1353$ph = $42;
}
$$1350 = $$1350$ph;$$1353 = $$1353$ph;
while(1) {
$47 = ((($$1350)) + 20|0);
$48 = HEAP32[$47>>2]|0;
$49 = ($48|0)==(0|0);
if ($49) {
$50 = ((($$1350)) + 16|0);
$51 = HEAP32[$50>>2]|0;
$52 = ($51|0)==(0|0);
if ($52) {
break;
} else {
$$1350$be = $51;$$1353$be = $50;
}
} else {
$$1350$be = $48;$$1353$be = $47;
}
$$1350 = $$1350$be;$$1353 = $$1353$be;
}
HEAP32[$$1353>>2] = 0;
$$3 = $$1350;
} else {
$37 = ((($14)) + 8|0);
$38 = HEAP32[$37>>2]|0;
$39 = ((($38)) + 12|0);
HEAP32[$39>>2] = $35;
$40 = ((($35)) + 8|0);
HEAP32[$40>>2] = $38;
$$3 = $35;
}
} while(0);
$53 = ($33|0)==(0|0);
if ($53) {
$$1 = $14;$$1345 = $15;$87 = $14;
} else {
$54 = ((($14)) + 28|0);
$55 = HEAP32[$54>>2]|0;
$56 = (1407908 + ($55<<2)|0);
$57 = HEAP32[$56>>2]|0;
$58 = ($57|0)==($14|0);
if ($58) {
HEAP32[$56>>2] = $$3;
$cond371 = ($$3|0)==(0|0);
if ($cond371) {
$59 = 1 << $55;
$60 = $59 ^ -1;
$61 = HEAP32[(1407608)>>2]|0;
$62 = $61 & $60;
HEAP32[(1407608)>>2] = $62;
$$1 = $14;$$1345 = $15;$87 = $14;
break;
}
} else {
$63 = ((($33)) + 16|0);
$64 = HEAP32[$63>>2]|0;
$65 = ($64|0)==($14|0);
$66 = ((($33)) + 20|0);
$$sink = $65 ? $63 : $66;
HEAP32[$$sink>>2] = $$3;
$67 = ($$3|0)==(0|0);
if ($67) {
$$1 = $14;$$1345 = $15;$87 = $14;
break;
}
}
$68 = ((($$3)) + 24|0);
HEAP32[$68>>2] = $33;
$69 = ((($14)) + 16|0);
$70 = HEAP32[$69>>2]|0;
$71 = ($70|0)==(0|0);
if (!($71)) {
$72 = ((($$3)) + 16|0);
HEAP32[$72>>2] = $70;
$73 = ((($70)) + 24|0);
HEAP32[$73>>2] = $$3;
}
$74 = ((($69)) + 4|0);
$75 = HEAP32[$74>>2]|0;
$76 = ($75|0)==(0|0);
if ($76) {
$$1 = $14;$$1345 = $15;$87 = $14;
} else {
$77 = ((($$3)) + 20|0);
HEAP32[$77>>2] = $75;
$78 = ((($75)) + 24|0);
HEAP32[$78>>2] = $$3;
$$1 = $14;$$1345 = $15;$87 = $14;
}
}
} else {
$$1 = $2;$$1345 = $6;$87 = $2;
}
} while(0);
$88 = ($87>>>0)<($7>>>0);
if (!($88)) {
return;
}
$89 = ((($7)) + 4|0);
$90 = HEAP32[$89>>2]|0;
$91 = $90 & 1;
$92 = ($91|0)==(0);
if ($92) {
return;
}
$93 = $90 & 2;
$94 = ($93|0)==(0);
if ($94) {
$95 = HEAP32[(1407628)>>2]|0;
$96 = ($95|0)==($7|0);
if ($96) {
$97 = HEAP32[(1407616)>>2]|0;
$98 = (($97) + ($$1345))|0;
HEAP32[(1407616)>>2] = $98;
HEAP32[(1407628)>>2] = $$1;
$99 = $98 | 1;
$100 = ((($$1)) + 4|0);
HEAP32[$100>>2] = $99;
$101 = HEAP32[(1407624)>>2]|0;
$102 = ($$1|0)==($101|0);
if (!($102)) {
return;
}
HEAP32[(1407624)>>2] = 0;
HEAP32[(1407612)>>2] = 0;
return;
}
$103 = HEAP32[(1407624)>>2]|0;
$104 = ($103|0)==($7|0);
if ($104) {
$105 = HEAP32[(1407612)>>2]|0;
$106 = (($105) + ($$1345))|0;
HEAP32[(1407612)>>2] = $106;
HEAP32[(1407624)>>2] = $87;
$107 = $106 | 1;
$108 = ((($$1)) + 4|0);
HEAP32[$108>>2] = $107;
$109 = (($87) + ($106)|0);
HEAP32[$109>>2] = $106;
return;
}
$110 = $90 & -8;
$111 = (($110) + ($$1345))|0;
$112 = (3)?($90 >>> 3):($90);
$113 = ($90>>>0)<(256);
do {
if ($113) {
$114 = ((($7)) + 8|0);
$115 = HEAP32[$114>>2]|0;
$116 = ((($7)) + 12|0);
$117 = HEAP32[$116>>2]|0;
$118 = ($117|0)==($115|0);
if ($118) {
$119 = 1 << $112;
$120 = $119 ^ -1;
$121 = HEAP32[351901]|0;
$122 = $121 & $120;
HEAP32[351901] = $122;
break;
} else {
$123 = ((($115)) + 12|0);
HEAP32[$123>>2] = $117;
$124 = ((($117)) + 8|0);
HEAP32[$124>>2] = $115;
break;
}
} else {
$125 = ((($7)) + 24|0);
$126 = HEAP32[$125>>2]|0;
$127 = ((($7)) + 12|0);
$128 = HEAP32[$127>>2]|0;
$129 = ($128|0)==($7|0);
do {
if ($129) {
$134 = ((($7)) + 16|0);
$135 = ((($134)) + 4|0);
$136 = HEAP32[$135>>2]|0;
$137 = ($136|0)==(0|0);
if ($137) {
$138 = HEAP32[$134>>2]|0;
$139 = ($138|0)==(0|0);
if ($139) {
$$3363 = 0;
break;
} else {
$$1361$ph = $138;$$1365$ph = $134;
}
} else {
$$1361$ph = $136;$$1365$ph = $135;
}
$$1361 = $$1361$ph;$$1365 = $$1365$ph;
while(1) {
$140 = ((($$1361)) + 20|0);
$141 = HEAP32[$140>>2]|0;
$142 = ($141|0)==(0|0);
if ($142) {
$143 = ((($$1361)) + 16|0);
$144 = HEAP32[$143>>2]|0;
$145 = ($144|0)==(0|0);
if ($145) {
break;
} else {
$$1361$be = $144;$$1365$be = $143;
}
} else {
$$1361$be = $141;$$1365$be = $140;
}
$$1361 = $$1361$be;$$1365 = $$1365$be;
}
HEAP32[$$1365>>2] = 0;
$$3363 = $$1361;
} else {
$130 = ((($7)) + 8|0);
$131 = HEAP32[$130>>2]|0;
$132 = ((($131)) + 12|0);
HEAP32[$132>>2] = $128;
$133 = ((($128)) + 8|0);
HEAP32[$133>>2] = $131;
$$3363 = $128;
}
} while(0);
$146 = ($126|0)==(0|0);
if (!($146)) {
$147 = ((($7)) + 28|0);
$148 = HEAP32[$147>>2]|0;
$149 = (1407908 + ($148<<2)|0);
$150 = HEAP32[$149>>2]|0;
$151 = ($150|0)==($7|0);
if ($151) {
HEAP32[$149>>2] = $$3363;
$cond372 = ($$3363|0)==(0|0);
if ($cond372) {
$152 = 1 << $148;
$153 = $152 ^ -1;
$154 = HEAP32[(1407608)>>2]|0;
$155 = $154 & $153;
HEAP32[(1407608)>>2] = $155;
break;
}
} else {
$156 = ((($126)) + 16|0);
$157 = HEAP32[$156>>2]|0;
$158 = ($157|0)==($7|0);
$159 = ((($126)) + 20|0);
$$sink395 = $158 ? $156 : $159;
HEAP32[$$sink395>>2] = $$3363;
$160 = ($$3363|0)==(0|0);
if ($160) {
break;
}
}
$161 = ((($$3363)) + 24|0);
HEAP32[$161>>2] = $126;
$162 = ((($7)) + 16|0);
$163 = HEAP32[$162>>2]|0;
$164 = ($163|0)==(0|0);
if (!($164)) {
$165 = ((($$3363)) + 16|0);
HEAP32[$165>>2] = $163;
$166 = ((($163)) + 24|0);
HEAP32[$166>>2] = $$3363;
}
$167 = ((($162)) + 4|0);
$168 = HEAP32[$167>>2]|0;
$169 = ($168|0)==(0|0);
if (!($169)) {
$170 = ((($$3363)) + 20|0);
HEAP32[$170>>2] = $168;
$171 = ((($168)) + 24|0);
HEAP32[$171>>2] = $$3363;
}
}
}
} while(0);
$172 = $111 | 1;
$173 = ((($$1)) + 4|0);
HEAP32[$173>>2] = $172;
$174 = (($87) + ($111)|0);
HEAP32[$174>>2] = $111;
$175 = HEAP32[(1407624)>>2]|0;
$176 = ($$1|0)==($175|0);
if ($176) {
HEAP32[(1407612)>>2] = $111;
return;
} else {
$$2 = $111;
}
} else {
$177 = $90 & -2;
HEAP32[$89>>2] = $177;
$178 = $$1345 | 1;
$179 = ((($$1)) + 4|0);
HEAP32[$179>>2] = $178;
$180 = (($87) + ($$1345)|0);
HEAP32[$180>>2] = $$1345;
$$2 = $$1345;
}
$181 = (3)?($$2 >>> 3):($$2);
$182 = ($$2>>>0)<(256);
if ($182) {
$183 = $181 << 1;
$184 = (1407644 + ($183<<2)|0);
$185 = HEAP32[351901]|0;
$186 = 1 << $181;
$187 = $185 & $186;
$188 = ($187|0)==(0);
if ($188) {
$189 = $185 | $186;
HEAP32[351901] = $189;
$$pre = ((($184)) + 8|0);
$$0366 = $184;$$pre$phiZ2D = $$pre;
} else {
$190 = ((($184)) + 8|0);
$191 = HEAP32[$190>>2]|0;
$$0366 = $191;$$pre$phiZ2D = $190;
}
HEAP32[$$pre$phiZ2D>>2] = $$1;
$192 = ((($$0366)) + 12|0);
HEAP32[$192>>2] = $$1;
$193 = ((($$1)) + 8|0);
HEAP32[$193>>2] = $$0366;
$194 = ((($$1)) + 12|0);
HEAP32[$194>>2] = $184;
return;
}
$195 = (8)?($$2 >>> 8):($$2);
$196 = ($195|0)==(0);
if ($196) {
$$0359 = 0;
} else {
$197 = ($$2>>>0)>(16777215);
if ($197) {
$$0359 = 31;
} else {
$198 = (($195) + 1048320)|0;
$199 = (16)?($198 >>> 16):($198);
$200 = $199 & 8;
$201 = $195 << $200;
$202 = (($201) + 520192)|0;
$203 = (16)?($202 >>> 16):($202);
$204 = $203 & 4;
$205 = $204 | $200;
$206 = $201 << $204;
$207 = (($206) + 245760)|0;
$208 = (16)?($207 >>> 16):($207);
$209 = $208 & 2;
$210 = $205 | $209;
$211 = (14 - ($210))|0;
$212 = $206 << $209;
$213 = (15)?($212 >>> 15):($212);
$214 = (($211) + ($213))|0;
$215 = $214 << 1;
$216 = (($214) + 7)|0;
$217 = ($216)?($$2 >>> $216):($$2);
$218 = $217 & 1;
$219 = $218 | $215;
$$0359 = $219;
}
}
$220 = (1407908 + ($$0359<<2)|0);
$221 = ((($$1)) + 28|0);
HEAP32[$221>>2] = $$0359;
$222 = ((($$1)) + 16|0);
$223 = ((($$1)) + 20|0);
HEAP32[$223>>2] = 0;
HEAP32[$222>>2] = 0;
$224 = HEAP32[(1407608)>>2]|0;
$225 = 1 << $$0359;
$226 = $224 & $225;
$227 = ($226|0)==(0);
L112: do {
if ($227) {
$228 = $224 | $225;
HEAP32[(1407608)>>2] = $228;
HEAP32[$220>>2] = $$1;
$229 = ((($$1)) + 24|0);
HEAP32[$229>>2] = $220;
$230 = ((($$1)) + 12|0);
HEAP32[$230>>2] = $$1;
$231 = ((($$1)) + 8|0);
HEAP32[$231>>2] = $$1;
} else {
$232 = HEAP32[$220>>2]|0;
$233 = ((($232)) + 4|0);
$234 = HEAP32[$233>>2]|0;
$235 = $234 & -8;
$236 = ($235|0)==($$2|0);
L115: do {
if ($236) {
$$0347$lcssa = $232;
} else {
$237 = ($$0359|0)==(31);
$238 = (1)?($$0359 >>> 1):($$0359);
$239 = (25 - ($238))|0;
$240 = $237 ? 0 : $239;
$241 = $$2 << $240;
$$0346381 = $241;$$0347380 = $232;
while(1) {
$248 = (31)?($$0346381 >>> 31):($$0346381);
$249 = (((($$0347380)) + 16|0) + ($248<<2)|0);
$244 = HEAP32[$249>>2]|0;
$250 = ($244|0)==(0|0);
if ($250) {
break;
}
$242 = $$0346381 << 1;
$243 = ((($244)) + 4|0);
$245 = HEAP32[$243>>2]|0;
$246 = $245 & -8;
$247 = ($246|0)==($$2|0);
if ($247) {
$$0347$lcssa = $244;
break L115;
} else {
$$0346381 = $242;$$0347380 = $244;
}
}
HEAP32[$249>>2] = $$1;
$251 = ((($$1)) + 24|0);
HEAP32[$251>>2] = $$0347380;
$252 = ((($$1)) + 12|0);
HEAP32[$252>>2] = $$1;
$253 = ((($$1)) + 8|0);
HEAP32[$253>>2] = $$1;
break L112;
}
} while(0);
$254 = ((($$0347$lcssa)) + 8|0);
$255 = HEAP32[$254>>2]|0;
$256 = ((($255)) + 12|0);
HEAP32[$256>>2] = $$1;
HEAP32[$254>>2] = $$1;
$257 = ((($$1)) + 8|0);
HEAP32[$257>>2] = $255;
$258 = ((($$1)) + 12|0);
HEAP32[$258>>2] = $$0347$lcssa;
$259 = ((($$1)) + 24|0);
HEAP32[$259>>2] = 0;
}
} while(0);
$260 = HEAP32[(1407636)>>2]|0;
$261 = (($260) + -1)|0;
HEAP32[(1407636)>>2] = $261;
$262 = ($261|0)==(0);
if (!($262)) {
return;
}
$$0194$in$i = (1408060);
while(1) {
$$0194$i = HEAP32[$$0194$in$i>>2]|0;
$263 = ($$0194$i|0)==(0|0);
$264 = ((($$0194$i)) + 8|0);
if ($263) {
break;
} else {
$$0194$in$i = $264;
}
}
HEAP32[(1407636)>>2] = -1;
return;
}
function _calloc($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($0|0)==(0);
if ($2) {
$$0 = 0;
} else {
$3 = Math_imul($1, $0)|0;
$4 = $1 | $0;
$5 = ($4>>>0)>(65535);
if ($5) {
$6 = (($3>>>0) / ($0>>>0))&-1;
$7 = ($6|0)==($1|0);
$spec$select = $7 ? $3 : -1;
$$0 = $spec$select;
} else {
$$0 = $3;
}
}
$8 = (_malloc($$0)|0);
$9 = ($8|0)==(0|0);
if ($9) {
return ($8|0);
}
$10 = ((($8)) + -4|0);
$11 = HEAP32[$10>>2]|0;
$12 = $11 & 3;
$13 = ($12|0)==(0);
if ($13) {
return ($8|0);
}
(_memset(($8|0),0,($$0|0))|0);
return ($8|0);
}
function _realloc($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($0|0)==(0|0);
if ($2) {
$3 = (_malloc($1)|0);
$$1 = $3;
return ($$1|0);
}
$4 = ($1>>>0)>(4294967231);
if ($4) {
$5 = (___errno_location()|0);
HEAP32[$5>>2] = 12;
$$1 = 0;
return ($$1|0);
}
$6 = ($1>>>0)<(11);
$7 = (($1) + 11)|0;
$8 = $7 & -8;
$9 = $6 ? 16 : $8;
$10 = ((($0)) + -8|0);
$11 = (_try_realloc_chunk($10,$9)|0);
$12 = ($11|0)==(0|0);
if (!($12)) {
$13 = ((($11)) + 8|0);
$$1 = $13;
return ($$1|0);
}
$14 = (_malloc($1)|0);
$15 = ($14|0)==(0|0);
if ($15) {
$$1 = 0;
return ($$1|0);
}
$16 = ((($0)) + -4|0);
$17 = HEAP32[$16>>2]|0;
$18 = $17 & -8;
$19 = $17 & 3;
$20 = ($19|0)==(0);
$21 = $20 ? 8 : 4;
$22 = (($18) - ($21))|0;
$23 = ($22>>>0)<($1>>>0);
$24 = $23 ? $22 : $1;
(_memcpy(($14|0),($0|0),($24|0))|0);
_free($0);
$$1 = $14;
return ($$1|0);
}
function _try_realloc_chunk($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$1245 = 0, $$1245$be = 0, $$1245$ph = 0, $$1248 = 0, $$1248$be = 0, $$1248$ph = 0, $$2 = 0, $$3 = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0;
var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
var $146 = 0, $147 = 0, $148 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0;
var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0;
var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $storemerge = 0, $storemerge1 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$2 = ((($0)) + 4|0);
$3 = HEAP32[$2>>2]|0;
$4 = $3 & -8;
$5 = (($0) + ($4)|0);
$6 = $3 & 3;
$7 = ($6|0)==(0);
if ($7) {
$8 = ($1>>>0)<(256);
if ($8) {
$$2 = 0;
return ($$2|0);
}
$9 = (($1) + 4)|0;
$10 = ($4>>>0)<($9>>>0);
if (!($10)) {
$11 = (($4) - ($1))|0;
$12 = HEAP32[(1408084)>>2]|0;
$13 = $12 << 1;
$14 = ($11>>>0)>($13>>>0);
if (!($14)) {
$$2 = $0;
return ($$2|0);
}
}
$$2 = 0;
return ($$2|0);
}
$15 = ($4>>>0)<($1>>>0);
if (!($15)) {
$16 = (($4) - ($1))|0;
$17 = ($16>>>0)>(15);
if (!($17)) {
$$2 = $0;
return ($$2|0);
}
$18 = (($0) + ($1)|0);
$19 = $3 & 1;
$20 = $19 | $1;
$21 = $20 | 2;
HEAP32[$2>>2] = $21;
$22 = ((($18)) + 4|0);
$23 = $16 | 3;
HEAP32[$22>>2] = $23;
$24 = ((($5)) + 4|0);
$25 = HEAP32[$24>>2]|0;
$26 = $25 | 1;
HEAP32[$24>>2] = $26;
_dispose_chunk($18,$16);
$$2 = $0;
return ($$2|0);
}
$27 = HEAP32[(1407628)>>2]|0;
$28 = ($27|0)==($5|0);
if ($28) {
$29 = HEAP32[(1407616)>>2]|0;
$30 = (($29) + ($4))|0;
$31 = ($30>>>0)>($1>>>0);
$32 = (($30) - ($1))|0;
$33 = (($0) + ($1)|0);
if (!($31)) {
$$2 = 0;
return ($$2|0);
}
$34 = $32 | 1;
$35 = ((($33)) + 4|0);
$36 = $3 & 1;
$37 = $36 | $1;
$38 = $37 | 2;
HEAP32[$2>>2] = $38;
HEAP32[$35>>2] = $34;
HEAP32[(1407628)>>2] = $33;
HEAP32[(1407616)>>2] = $32;
$$2 = $0;
return ($$2|0);
}
$39 = HEAP32[(1407624)>>2]|0;
$40 = ($39|0)==($5|0);
if ($40) {
$41 = HEAP32[(1407612)>>2]|0;
$42 = (($41) + ($4))|0;
$43 = ($42>>>0)<($1>>>0);
if ($43) {
$$2 = 0;
return ($$2|0);
}
$44 = (($42) - ($1))|0;
$45 = ($44>>>0)>(15);
if ($45) {
$46 = (($0) + ($1)|0);
$47 = (($0) + ($42)|0);
$48 = $3 & 1;
$49 = $48 | $1;
$50 = $49 | 2;
HEAP32[$2>>2] = $50;
$51 = ((($46)) + 4|0);
$52 = $44 | 1;
HEAP32[$51>>2] = $52;
HEAP32[$47>>2] = $44;
$53 = ((($47)) + 4|0);
$54 = HEAP32[$53>>2]|0;
$55 = $54 & -2;
HEAP32[$53>>2] = $55;
$storemerge = $46;$storemerge1 = $44;
} else {
$56 = $3 & 1;
$57 = $56 | $42;
$58 = $57 | 2;
HEAP32[$2>>2] = $58;
$59 = (($0) + ($42)|0);
$60 = ((($59)) + 4|0);
$61 = HEAP32[$60>>2]|0;
$62 = $61 | 1;
HEAP32[$60>>2] = $62;
$storemerge = 0;$storemerge1 = 0;
}
HEAP32[(1407612)>>2] = $storemerge1;
HEAP32[(1407624)>>2] = $storemerge;
$$2 = $0;
return ($$2|0);
}
$63 = ((($5)) + 4|0);
$64 = HEAP32[$63>>2]|0;
$65 = $64 & 2;
$66 = ($65|0)==(0);
if (!($66)) {
$$2 = 0;
return ($$2|0);
}
$67 = $64 & -8;
$68 = (($67) + ($4))|0;
$69 = ($68>>>0)<($1>>>0);
if ($69) {
$$2 = 0;
return ($$2|0);
}
$70 = (($68) - ($1))|0;
$71 = (3)?($64 >>> 3):($64);
$72 = ($64>>>0)<(256);
do {
if ($72) {
$73 = ((($5)) + 8|0);
$74 = HEAP32[$73>>2]|0;
$75 = ((($5)) + 12|0);
$76 = HEAP32[$75>>2]|0;
$77 = ($76|0)==($74|0);
if ($77) {
$78 = 1 << $71;
$79 = $78 ^ -1;
$80 = HEAP32[351901]|0;
$81 = $80 & $79;
HEAP32[351901] = $81;
break;
} else {
$82 = ((($74)) + 12|0);
HEAP32[$82>>2] = $76;
$83 = ((($76)) + 8|0);
HEAP32[$83>>2] = $74;
break;
}
} else {
$84 = ((($5)) + 24|0);
$85 = HEAP32[$84>>2]|0;
$86 = ((($5)) + 12|0);
$87 = HEAP32[$86>>2]|0;
$88 = ($87|0)==($5|0);
do {
if ($88) {
$93 = ((($5)) + 16|0);
$94 = ((($93)) + 4|0);
$95 = HEAP32[$94>>2]|0;
$96 = ($95|0)==(0|0);
if ($96) {
$97 = HEAP32[$93>>2]|0;
$98 = ($97|0)==(0|0);
if ($98) {
$$3 = 0;
break;
} else {
$$1245$ph = $97;$$1248$ph = $93;
}
} else {
$$1245$ph = $95;$$1248$ph = $94;
}
$$1245 = $$1245$ph;$$1248 = $$1248$ph;
while(1) {
$99 = ((($$1245)) + 20|0);
$100 = HEAP32[$99>>2]|0;
$101 = ($100|0)==(0|0);
if ($101) {
$102 = ((($$1245)) + 16|0);
$103 = HEAP32[$102>>2]|0;
$104 = ($103|0)==(0|0);
if ($104) {
break;
} else {
$$1245$be = $103;$$1248$be = $102;
}
} else {
$$1245$be = $100;$$1248$be = $99;
}
$$1245 = $$1245$be;$$1248 = $$1248$be;
}
HEAP32[$$1248>>2] = 0;
$$3 = $$1245;
} else {
$89 = ((($5)) + 8|0);
$90 = HEAP32[$89>>2]|0;
$91 = ((($90)) + 12|0);
HEAP32[$91>>2] = $87;
$92 = ((($87)) + 8|0);
HEAP32[$92>>2] = $90;
$$3 = $87;
}
} while(0);
$105 = ($85|0)==(0|0);
if (!($105)) {
$106 = ((($5)) + 28|0);
$107 = HEAP32[$106>>2]|0;
$108 = (1407908 + ($107<<2)|0);
$109 = HEAP32[$108>>2]|0;
$110 = ($109|0)==($5|0);
if ($110) {
HEAP32[$108>>2] = $$3;
$cond = ($$3|0)==(0|0);
if ($cond) {
$111 = 1 << $107;
$112 = $111 ^ -1;
$113 = HEAP32[(1407608)>>2]|0;
$114 = $113 & $112;
HEAP32[(1407608)>>2] = $114;
break;
}
} else {
$115 = ((($85)) + 16|0);
$116 = HEAP32[$115>>2]|0;
$117 = ($116|0)==($5|0);
$118 = ((($85)) + 20|0);
$$sink = $117 ? $115 : $118;
HEAP32[$$sink>>2] = $$3;
$119 = ($$3|0)==(0|0);
if ($119) {
break;
}
}
$120 = ((($$3)) + 24|0);
HEAP32[$120>>2] = $85;
$121 = ((($5)) + 16|0);
$122 = HEAP32[$121>>2]|0;
$123 = ($122|0)==(0|0);
if (!($123)) {
$124 = ((($$3)) + 16|0);
HEAP32[$124>>2] = $122;
$125 = ((($122)) + 24|0);
HEAP32[$125>>2] = $$3;
}
$126 = ((($121)) + 4|0);
$127 = HEAP32[$126>>2]|0;
$128 = ($127|0)==(0|0);
if (!($128)) {
$129 = ((($$3)) + 20|0);
HEAP32[$129>>2] = $127;
$130 = ((($127)) + 24|0);
HEAP32[$130>>2] = $$3;
}
}
}
} while(0);
$131 = ($70>>>0)<(16);
if ($131) {
$132 = $3 & 1;
$133 = $132 | $68;
$134 = $133 | 2;
HEAP32[$2>>2] = $134;
$135 = (($0) + ($68)|0);
$136 = ((($135)) + 4|0);
$137 = HEAP32[$136>>2]|0;
$138 = $137 | 1;
HEAP32[$136>>2] = $138;
$$2 = $0;
return ($$2|0);
} else {
$139 = (($0) + ($1)|0);
$140 = $3 & 1;
$141 = $140 | $1;
$142 = $141 | 2;
HEAP32[$2>>2] = $142;
$143 = ((($139)) + 4|0);
$144 = $70 | 3;
HEAP32[$143>>2] = $144;
$145 = (($0) + ($68)|0);
$146 = ((($145)) + 4|0);
$147 = HEAP32[$146>>2]|0;
$148 = $147 | 1;
HEAP32[$146>>2] = $148;
_dispose_chunk($139,$70);
$$2 = $0;
return ($$2|0);
}
return (0)|0;
}
function _dispose_chunk($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$03649 = 0, $$0365$lcssa = 0, $$03658 = 0, $$0376 = 0, $$0383 = 0, $$1 = 0, $$1363 = 0, $$1371 = 0, $$1371$be = 0, $$1371$ph = 0, $$1374 = 0, $$1374$be = 0, $$1374$ph = 0, $$1378 = 0, $$1378$be = 0, $$1378$ph = 0, $$1382 = 0, $$1382$be = 0, $$1382$ph = 0, $$2 = 0;
var $$3 = 0, $$3380 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink = 0, $$sink24 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0;
var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0;
var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0;
var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0;
var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0;
var $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0;
var $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0;
var $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0;
var $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (($0) + ($1)|0);
$3 = ((($0)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = $4 & 1;
$6 = ($5|0)==(0);
do {
if ($6) {
$7 = HEAP32[$0>>2]|0;
$8 = $4 & 3;
$9 = ($8|0)==(0);
if ($9) {
return;
}
$10 = (0 - ($7))|0;
$11 = (($0) + ($10)|0);
$12 = (($7) + ($1))|0;
$13 = HEAP32[(1407624)>>2]|0;
$14 = ($13|0)==($11|0);
if ($14) {
$75 = ((($2)) + 4|0);
$76 = HEAP32[$75>>2]|0;
$77 = $76 & 3;
$78 = ($77|0)==(3);
if (!($78)) {
$$1 = $11;$$1363 = $12;
break;
}
$79 = ((($11)) + 4|0);
$80 = $12 | 1;
$81 = $76 & -2;
HEAP32[(1407612)>>2] = $12;
HEAP32[$75>>2] = $81;
HEAP32[$79>>2] = $80;
HEAP32[$2>>2] = $12;
return;
}
$15 = (3)?($7 >>> 3):($7);
$16 = ($7>>>0)<(256);
if ($16) {
$17 = ((($11)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = ((($11)) + 12|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==($18|0);
if ($21) {
$22 = 1 << $15;
$23 = $22 ^ -1;
$24 = HEAP32[351901]|0;
$25 = $24 & $23;
HEAP32[351901] = $25;
$$1 = $11;$$1363 = $12;
break;
} else {
$26 = ((($18)) + 12|0);
HEAP32[$26>>2] = $20;
$27 = ((($20)) + 8|0);
HEAP32[$27>>2] = $18;
$$1 = $11;$$1363 = $12;
break;
}
}
$28 = ((($11)) + 24|0);
$29 = HEAP32[$28>>2]|0;
$30 = ((($11)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = ($31|0)==($11|0);
do {
if ($32) {
$37 = ((($11)) + 16|0);
$38 = ((($37)) + 4|0);
$39 = HEAP32[$38>>2]|0;
$40 = ($39|0)==(0|0);
if ($40) {
$41 = HEAP32[$37>>2]|0;
$42 = ($41|0)==(0|0);
if ($42) {
$$3 = 0;
break;
} else {
$$1371$ph = $41;$$1374$ph = $37;
}
} else {
$$1371$ph = $39;$$1374$ph = $38;
}
$$1371 = $$1371$ph;$$1374 = $$1374$ph;
while(1) {
$43 = ((($$1371)) + 20|0);
$44 = HEAP32[$43>>2]|0;
$45 = ($44|0)==(0|0);
if ($45) {
$46 = ((($$1371)) + 16|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)==(0|0);
if ($48) {
break;
} else {
$$1371$be = $47;$$1374$be = $46;
}
} else {
$$1371$be = $44;$$1374$be = $43;
}
$$1371 = $$1371$be;$$1374 = $$1374$be;
}
HEAP32[$$1374>>2] = 0;
$$3 = $$1371;
} else {
$33 = ((($11)) + 8|0);
$34 = HEAP32[$33>>2]|0;
$35 = ((($34)) + 12|0);
HEAP32[$35>>2] = $31;
$36 = ((($31)) + 8|0);
HEAP32[$36>>2] = $34;
$$3 = $31;
}
} while(0);
$49 = ($29|0)==(0|0);
if ($49) {
$$1 = $11;$$1363 = $12;
} else {
$50 = ((($11)) + 28|0);
$51 = HEAP32[$50>>2]|0;
$52 = (1407908 + ($51<<2)|0);
$53 = HEAP32[$52>>2]|0;
$54 = ($53|0)==($11|0);
if ($54) {
HEAP32[$52>>2] = $$3;
$cond = ($$3|0)==(0|0);
if ($cond) {
$55 = 1 << $51;
$56 = $55 ^ -1;
$57 = HEAP32[(1407608)>>2]|0;
$58 = $57 & $56;
HEAP32[(1407608)>>2] = $58;
$$1 = $11;$$1363 = $12;
break;
}
} else {
$59 = ((($29)) + 16|0);
$60 = HEAP32[$59>>2]|0;
$61 = ($60|0)==($11|0);
$62 = ((($29)) + 20|0);
$$sink = $61 ? $59 : $62;
HEAP32[$$sink>>2] = $$3;
$63 = ($$3|0)==(0|0);
if ($63) {
$$1 = $11;$$1363 = $12;
break;
}
}
$64 = ((($$3)) + 24|0);
HEAP32[$64>>2] = $29;
$65 = ((($11)) + 16|0);
$66 = HEAP32[$65>>2]|0;
$67 = ($66|0)==(0|0);
if (!($67)) {
$68 = ((($$3)) + 16|0);
HEAP32[$68>>2] = $66;
$69 = ((($66)) + 24|0);
HEAP32[$69>>2] = $$3;
}
$70 = ((($65)) + 4|0);
$71 = HEAP32[$70>>2]|0;
$72 = ($71|0)==(0|0);
if ($72) {
$$1 = $11;$$1363 = $12;
} else {
$73 = ((($$3)) + 20|0);
HEAP32[$73>>2] = $71;
$74 = ((($71)) + 24|0);
HEAP32[$74>>2] = $$3;
$$1 = $11;$$1363 = $12;
}
}
} else {
$$1 = $0;$$1363 = $1;
}
} while(0);
$82 = ((($2)) + 4|0);
$83 = HEAP32[$82>>2]|0;
$84 = $83 & 2;
$85 = ($84|0)==(0);
if ($85) {
$86 = HEAP32[(1407628)>>2]|0;
$87 = ($86|0)==($2|0);
if ($87) {
$88 = HEAP32[(1407616)>>2]|0;
$89 = (($88) + ($$1363))|0;
HEAP32[(1407616)>>2] = $89;
HEAP32[(1407628)>>2] = $$1;
$90 = $89 | 1;
$91 = ((($$1)) + 4|0);
HEAP32[$91>>2] = $90;
$92 = HEAP32[(1407624)>>2]|0;
$93 = ($$1|0)==($92|0);
if (!($93)) {
return;
}
HEAP32[(1407624)>>2] = 0;
HEAP32[(1407612)>>2] = 0;
return;
}
$94 = HEAP32[(1407624)>>2]|0;
$95 = ($94|0)==($2|0);
if ($95) {
$96 = HEAP32[(1407612)>>2]|0;
$97 = (($96) + ($$1363))|0;
HEAP32[(1407612)>>2] = $97;
HEAP32[(1407624)>>2] = $$1;
$98 = $97 | 1;
$99 = ((($$1)) + 4|0);
HEAP32[$99>>2] = $98;
$100 = (($$1) + ($97)|0);
HEAP32[$100>>2] = $97;
return;
}
$101 = $83 & -8;
$102 = (($101) + ($$1363))|0;
$103 = (3)?($83 >>> 3):($83);
$104 = ($83>>>0)<(256);
do {
if ($104) {
$105 = ((($2)) + 8|0);
$106 = HEAP32[$105>>2]|0;
$107 = ((($2)) + 12|0);
$108 = HEAP32[$107>>2]|0;
$109 = ($108|0)==($106|0);
if ($109) {
$110 = 1 << $103;
$111 = $110 ^ -1;
$112 = HEAP32[351901]|0;
$113 = $112 & $111;
HEAP32[351901] = $113;
break;
} else {
$114 = ((($106)) + 12|0);
HEAP32[$114>>2] = $108;
$115 = ((($108)) + 8|0);
HEAP32[$115>>2] = $106;
break;
}
} else {
$116 = ((($2)) + 24|0);
$117 = HEAP32[$116>>2]|0;
$118 = ((($2)) + 12|0);
$119 = HEAP32[$118>>2]|0;
$120 = ($119|0)==($2|0);
do {
if ($120) {
$125 = ((($2)) + 16|0);
$126 = ((($125)) + 4|0);
$127 = HEAP32[$126>>2]|0;
$128 = ($127|0)==(0|0);
if ($128) {
$129 = HEAP32[$125>>2]|0;
$130 = ($129|0)==(0|0);
if ($130) {
$$3380 = 0;
break;
} else {
$$1378$ph = $129;$$1382$ph = $125;
}
} else {
$$1378$ph = $127;$$1382$ph = $126;
}
$$1378 = $$1378$ph;$$1382 = $$1382$ph;
while(1) {
$131 = ((($$1378)) + 20|0);
$132 = HEAP32[$131>>2]|0;
$133 = ($132|0)==(0|0);
if ($133) {
$134 = ((($$1378)) + 16|0);
$135 = HEAP32[$134>>2]|0;
$136 = ($135|0)==(0|0);
if ($136) {
break;
} else {
$$1378$be = $135;$$1382$be = $134;
}
} else {
$$1378$be = $132;$$1382$be = $131;
}
$$1378 = $$1378$be;$$1382 = $$1382$be;
}
HEAP32[$$1382>>2] = 0;
$$3380 = $$1378;
} else {
$121 = ((($2)) + 8|0);
$122 = HEAP32[$121>>2]|0;
$123 = ((($122)) + 12|0);
HEAP32[$123>>2] = $119;
$124 = ((($119)) + 8|0);
HEAP32[$124>>2] = $122;
$$3380 = $119;
}
} while(0);
$137 = ($117|0)==(0|0);
if (!($137)) {
$138 = ((($2)) + 28|0);
$139 = HEAP32[$138>>2]|0;
$140 = (1407908 + ($139<<2)|0);
$141 = HEAP32[$140>>2]|0;
$142 = ($141|0)==($2|0);
if ($142) {
HEAP32[$140>>2] = $$3380;
$cond4 = ($$3380|0)==(0|0);
if ($cond4) {
$143 = 1 << $139;
$144 = $143 ^ -1;
$145 = HEAP32[(1407608)>>2]|0;
$146 = $145 & $144;
HEAP32[(1407608)>>2] = $146;
break;
}
} else {
$147 = ((($117)) + 16|0);
$148 = HEAP32[$147>>2]|0;
$149 = ($148|0)==($2|0);
$150 = ((($117)) + 20|0);
$$sink24 = $149 ? $147 : $150;
HEAP32[$$sink24>>2] = $$3380;
$151 = ($$3380|0)==(0|0);
if ($151) {
break;
}
}
$152 = ((($$3380)) + 24|0);
HEAP32[$152>>2] = $117;
$153 = ((($2)) + 16|0);
$154 = HEAP32[$153>>2]|0;
$155 = ($154|0)==(0|0);
if (!($155)) {
$156 = ((($$3380)) + 16|0);
HEAP32[$156>>2] = $154;
$157 = ((($154)) + 24|0);
HEAP32[$157>>2] = $$3380;
}
$158 = ((($153)) + 4|0);
$159 = HEAP32[$158>>2]|0;
$160 = ($159|0)==(0|0);
if (!($160)) {
$161 = ((($$3380)) + 20|0);
HEAP32[$161>>2] = $159;
$162 = ((($159)) + 24|0);
HEAP32[$162>>2] = $$3380;
}
}
}
} while(0);
$163 = $102 | 1;
$164 = ((($$1)) + 4|0);
HEAP32[$164>>2] = $163;
$165 = (($$1) + ($102)|0);
HEAP32[$165>>2] = $102;
$166 = HEAP32[(1407624)>>2]|0;
$167 = ($$1|0)==($166|0);
if ($167) {
HEAP32[(1407612)>>2] = $102;
return;
} else {
$$2 = $102;
}
} else {
$168 = $83 & -2;
HEAP32[$82>>2] = $168;
$169 = $$1363 | 1;
$170 = ((($$1)) + 4|0);
HEAP32[$170>>2] = $169;
$171 = (($$1) + ($$1363)|0);
HEAP32[$171>>2] = $$1363;
$$2 = $$1363;
}
$172 = (3)?($$2 >>> 3):($$2);
$173 = ($$2>>>0)<(256);
if ($173) {
$174 = $172 << 1;
$175 = (1407644 + ($174<<2)|0);
$176 = HEAP32[351901]|0;
$177 = 1 << $172;
$178 = $176 & $177;
$179 = ($178|0)==(0);
if ($179) {
$180 = $176 | $177;
HEAP32[351901] = $180;
$$pre = ((($175)) + 8|0);
$$0383 = $175;$$pre$phiZ2D = $$pre;
} else {
$181 = ((($175)) + 8|0);
$182 = HEAP32[$181>>2]|0;
$$0383 = $182;$$pre$phiZ2D = $181;
}
HEAP32[$$pre$phiZ2D>>2] = $$1;
$183 = ((($$0383)) + 12|0);
HEAP32[$183>>2] = $$1;
$184 = ((($$1)) + 8|0);
HEAP32[$184>>2] = $$0383;
$185 = ((($$1)) + 12|0);
HEAP32[$185>>2] = $175;
return;
}
$186 = (8)?($$2 >>> 8):($$2);
$187 = ($186|0)==(0);
if ($187) {
$$0376 = 0;
} else {
$188 = ($$2>>>0)>(16777215);
if ($188) {
$$0376 = 31;
} else {
$189 = (($186) + 1048320)|0;
$190 = (16)?($189 >>> 16):($189);
$191 = $190 & 8;
$192 = $186 << $191;
$193 = (($192) + 520192)|0;
$194 = (16)?($193 >>> 16):($193);
$195 = $194 & 4;
$196 = $195 | $191;
$197 = $192 << $195;
$198 = (($197) + 245760)|0;
$199 = (16)?($198 >>> 16):($198);
$200 = $199 & 2;
$201 = $196 | $200;
$202 = (14 - ($201))|0;
$203 = $197 << $200;
$204 = (15)?($203 >>> 15):($203);
$205 = (($202) + ($204))|0;
$206 = $205 << 1;
$207 = (($205) + 7)|0;
$208 = ($207)?($$2 >>> $207):($$2);
$209 = $208 & 1;
$210 = $209 | $206;
$$0376 = $210;
}
}
$211 = (1407908 + ($$0376<<2)|0);
$212 = ((($$1)) + 28|0);
HEAP32[$212>>2] = $$0376;
$213 = ((($$1)) + 16|0);
$214 = ((($$1)) + 20|0);
HEAP32[$214>>2] = 0;
HEAP32[$213>>2] = 0;
$215 = HEAP32[(1407608)>>2]|0;
$216 = 1 << $$0376;
$217 = $215 & $216;
$218 = ($217|0)==(0);
if ($218) {
$219 = $215 | $216;
HEAP32[(1407608)>>2] = $219;
HEAP32[$211>>2] = $$1;
$220 = ((($$1)) + 24|0);
HEAP32[$220>>2] = $211;
$221 = ((($$1)) + 12|0);
HEAP32[$221>>2] = $$1;
$222 = ((($$1)) + 8|0);
HEAP32[$222>>2] = $$1;
return;
}
$223 = HEAP32[$211>>2]|0;
$224 = ((($223)) + 4|0);
$225 = HEAP32[$224>>2]|0;
$226 = $225 & -8;
$227 = ($226|0)==($$2|0);
L104: do {
if ($227) {
$$0365$lcssa = $223;
} else {
$228 = ($$0376|0)==(31);
$229 = (1)?($$0376 >>> 1):($$0376);
$230 = (25 - ($229))|0;
$231 = $228 ? 0 : $230;
$232 = $$2 << $231;
$$03649 = $232;$$03658 = $223;
while(1) {
$239 = (31)?($$03649 >>> 31):($$03649);
$240 = (((($$03658)) + 16|0) + ($239<<2)|0);
$235 = HEAP32[$240>>2]|0;
$241 = ($235|0)==(0|0);
if ($241) {
break;
}
$233 = $$03649 << 1;
$234 = ((($235)) + 4|0);
$236 = HEAP32[$234>>2]|0;
$237 = $236 & -8;
$238 = ($237|0)==($$2|0);
if ($238) {
$$0365$lcssa = $235;
break L104;
} else {
$$03649 = $233;$$03658 = $235;
}
}
HEAP32[$240>>2] = $$1;
$242 = ((($$1)) + 24|0);
HEAP32[$242>>2] = $$03658;
$243 = ((($$1)) + 12|0);
HEAP32[$243>>2] = $$1;
$244 = ((($$1)) + 8|0);
HEAP32[$244>>2] = $$1;
return;
}
} while(0);
$245 = ((($$0365$lcssa)) + 8|0);
$246 = HEAP32[$245>>2]|0;
$247 = ((($246)) + 12|0);
HEAP32[$247>>2] = $$1;
HEAP32[$245>>2] = $$1;
$248 = ((($$1)) + 8|0);
HEAP32[$248>>2] = $246;
$249 = ((($$1)) + 12|0);
HEAP32[$249>>2] = $$0365$lcssa;
$250 = ((($$1)) + 24|0);
HEAP32[$250>>2] = 0;
return;
}
function ___syscall_ret($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($0>>>0)>(4294963200);
if ($1) {
$2 = (0 - ($0))|0;
$3 = (___errno_location()|0);
HEAP32[$3>>2] = $2;
$$0 = -1;
} else {
$$0 = $0;
}
return ($$0|0);
}
function ___errno_location() {
var label = 0, sp = 0;
sp = STACKTOP;
return (1408164|0);
}
function _dummy_326($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
return ($0|0);
}
function _ioctl($0,$1,$varargs) {
$0 = $0|0;
$1 = $1|0;
$varargs = $varargs|0;
var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded2 = 0, $expanded4 = 0, $expanded5 = 0, $expanded6 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0;
var $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$vararg_buffer = sp + 16|0;
$2 = sp;
HEAP32[$2>>2] = $varargs;
$arglist_current = HEAP32[$2>>2]|0;
$3 = $arglist_current;
$4 = ((0) + 4|0);
$expanded2 = $4;
$expanded = (($expanded2) - 1)|0;
$5 = (($3) + ($expanded))|0;
$6 = ((0) + 4|0);
$expanded6 = $6;
$expanded5 = (($expanded6) - 1)|0;
$expanded4 = $expanded5 ^ -1;
$7 = $5 & $expanded4;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$arglist_next = ((($8)) + 4|0);
HEAP32[$2>>2] = $arglist_next;
$10 = $9;
HEAP32[$vararg_buffer>>2] = $0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $1;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $10;
$11 = (___syscall54(54,($vararg_buffer|0))|0);
$12 = (___syscall_ret($11)|0);
STACKTOP = sp;return ($12|0);
}
function _open($0,$1,$varargs) {
$0 = $0|0;
$1 = $1|0;
$varargs = $varargs|0;
var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arglist_current = 0, $arglist_next = 0;
var $expanded = 0, $expanded2 = 0, $expanded4 = 0, $expanded5 = 0, $expanded6 = 0, $or$cond14 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$vararg_buffer3 = sp + 32|0;
$vararg_buffer = sp + 16|0;
$2 = sp;
$3 = $1 & 4194368;
$4 = ($3|0)==(0);
if ($4) {
$$0 = 0;
} else {
HEAP32[$2>>2] = $varargs;
$arglist_current = HEAP32[$2>>2]|0;
$5 = $arglist_current;
$6 = ((0) + 4|0);
$expanded2 = $6;
$expanded = (($expanded2) - 1)|0;
$7 = (($5) + ($expanded))|0;
$8 = ((0) + 4|0);
$expanded6 = $8;
$expanded5 = (($expanded6) - 1)|0;
$expanded4 = $expanded5 ^ -1;
$9 = $7 & $expanded4;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$arglist_next = ((($10)) + 4|0);
HEAP32[$2>>2] = $arglist_next;
$$0 = $11;
}
$12 = $0;
$13 = $1 | 32768;
HEAP32[$vararg_buffer>>2] = $12;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $13;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $$0;
$14 = (___syscall5(5,($vararg_buffer|0))|0);
$15 = ($14|0)<(0);
$16 = $1 & 524288;
$17 = ($16|0)==(0);
$or$cond14 = $17 | $15;
if (!($or$cond14)) {
HEAP32[$vararg_buffer3>>2] = $14;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = 2;
$vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
HEAP32[$vararg_ptr7>>2] = 1;
(___syscall221(221,($vararg_buffer3|0))|0);
}
$18 = (___syscall_ret($14)|0);
STACKTOP = sp;return ($18|0);
}
function _pthread_self() {
var label = 0, sp = 0;
sp = STACKTOP;
return (18848|0);
}
function _strlen($0) {
$0 = $0|0;
var $$0 = 0, $$014 = 0, $$015$lcssa = 0, $$01518 = 0, $$1$lcssa = 0, $$pn = 0, $$pn29 = 0, $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = $0;
$2 = $1 & 3;
$3 = ($2|0)==(0);
L1: do {
if ($3) {
$$015$lcssa = $0;
label = 5;
} else {
$$01518 = $0;$22 = $1;
while(1) {
$4 = HEAP8[$$01518>>0]|0;
$5 = ($4<<24>>24)==(0);
if ($5) {
$$pn = $22;
break L1;
}
$6 = ((($$01518)) + 1|0);
$7 = $6;
$8 = $7 & 3;
$9 = ($8|0)==(0);
if ($9) {
$$015$lcssa = $6;
label = 5;
break;
} else {
$$01518 = $6;$22 = $7;
}
}
}
} while(0);
if ((label|0) == 5) {
$$0 = $$015$lcssa;
while(1) {
$10 = HEAP32[$$0>>2]|0;
$11 = (($10) + -16843009)|0;
$12 = $10 & -2139062144;
$13 = $12 ^ -2139062144;
$14 = $13 & $11;
$15 = ($14|0)==(0);
$16 = ((($$0)) + 4|0);
if ($15) {
$$0 = $16;
} else {
break;
}
}
$17 = $10&255;
$18 = ($17<<24>>24)==(0);
if ($18) {
$$1$lcssa = $$0;
} else {
$$pn29 = $$0;
while(1) {
$19 = ((($$pn29)) + 1|0);
$$pre = HEAP8[$19>>0]|0;
$20 = ($$pre<<24>>24)==(0);
if ($20) {
$$1$lcssa = $19;
break;
} else {
$$pn29 = $19;
}
}
}
$21 = $$1$lcssa;
$$pn = $21;
}
$$014 = (($$pn) - ($1))|0;
return ($$014|0);
}
function _poll($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$3 = $0;
HEAP32[$vararg_buffer>>2] = $3;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $1;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $2;
$4 = (___syscall168(168,($vararg_buffer|0))|0);
$5 = (___syscall_ret($4)|0);
STACKTOP = sp;return ($5|0);
}
function ___procfdname($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$02324 = 0, $$027 = 0, $$126 = 0, $$225 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0;
var label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
dest=$0; src=40735; stop=dest+15|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$2 = ($1|0)==(0);
if ($2) {
$3 = ((($0)) + 14|0);
HEAP8[$3>>0] = 48;
$4 = ((($0)) + 15|0);
HEAP8[$4>>0] = 0;
} else {
$$027 = $1;$$126 = 14;
while(1) {
$5 = (($$027>>>0) / 10)&-1;
$6 = (($$126) + 1)|0;
$7 = ($$027>>>0)<(10);
if ($7) {
break;
} else {
$$027 = $5;$$126 = $6;
}
}
$8 = (($0) + ($6)|0);
HEAP8[$8>>0] = 0;
$$02324 = $1;$$225 = $6;
while(1) {
$9 = (($$02324>>>0) / 10)&-1;
$10 = ($9*10)|0;
$11 = (($$02324) - ($10))|0;
$12 = $11 | 48;
$13 = $12&255;
$14 = (($$225) + -1)|0;
$15 = (($0) + ($14)|0);
HEAP8[$15>>0] = $13;
$16 = ($$02324>>>0)<(10);
if ($16) {
break;
} else {
$$02324 = $9;$$225 = $14;
}
}
}
return;
}
function _stat($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$2 = $0;
$3 = $1;
HEAP32[$vararg_buffer>>2] = $2;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $3;
$4 = (___syscall195(195,($vararg_buffer|0))|0);
$5 = (___syscall_ret($4)|0);
STACKTOP = sp;return ($5|0);
}
function _mkdir($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$2 = $0;
HEAP32[$vararg_buffer>>2] = $2;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $1;
$3 = (___syscall39(39,($vararg_buffer|0))|0);
$4 = (___syscall_ret($3)|0);
STACKTOP = sp;return ($4|0);
}
function _connect($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$vararg_buffer = sp;
$3 = sp + 8|0;
HEAP32[$3>>2] = $0;
$4 = ((($3)) + 4|0);
$5 = $1;
HEAP32[$4>>2] = $5;
$6 = ((($3)) + 8|0);
HEAP32[$6>>2] = $2;
$7 = ((($3)) + 12|0);
HEAP32[$7>>2] = 0;
$8 = ((($3)) + 16|0);
HEAP32[$8>>2] = 0;
$9 = ((($3)) + 20|0);
HEAP32[$9>>2] = 0;
$10 = $3;
HEAP32[$vararg_buffer>>2] = 3;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $10;
$11 = (___syscall102(102,($vararg_buffer|0))|0);
$12 = (___syscall_ret($11)|0);
STACKTOP = sp;return ($12|0);
}
function _socket($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$017 = 0, $$old = 0, $$old18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer2 = 0;
var $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr14 = 0, $vararg_ptr15 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0;
$vararg_buffer11 = sp + 32|0;
$vararg_buffer6 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$3 = sp + 72|0;
$4 = sp + 48|0;
HEAP32[$3>>2] = $0;
$5 = ((($3)) + 4|0);
HEAP32[$5>>2] = $1;
$6 = ((($3)) + 8|0);
HEAP32[$6>>2] = $2;
$7 = ((($3)) + 12|0);
HEAP32[$7>>2] = 0;
$8 = ((($3)) + 16|0);
HEAP32[$8>>2] = 0;
$9 = ((($3)) + 20|0);
HEAP32[$9>>2] = 0;
$10 = $3;
HEAP32[$vararg_buffer>>2] = 1;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $10;
$11 = (___syscall102(102,($vararg_buffer|0))|0);
$12 = (___syscall_ret($11)|0);
$13 = ($12|0)<(0);
do {
if ($13) {
$14 = (___errno_location()|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==(22);
if ($16) {
$$old = $1 & 526336;
$$old18 = ($$old|0)==(0);
if ($$old18) {
$$017 = $12;
break;
}
} else {
$17 = (___errno_location()|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($18|0)!=(93);
$20 = $1 & 526336;
$21 = ($20|0)==(0);
$or$cond = $21 | $19;
if ($or$cond) {
$$017 = $12;
break;
}
}
HEAP32[$4>>2] = $0;
$22 = ((($4)) + 4|0);
$23 = $1 & -526337;
HEAP32[$22>>2] = $23;
$24 = ((($4)) + 8|0);
HEAP32[$24>>2] = $2;
$25 = ((($4)) + 12|0);
HEAP32[$25>>2] = 0;
$26 = ((($4)) + 16|0);
HEAP32[$26>>2] = 0;
$27 = ((($4)) + 20|0);
HEAP32[$27>>2] = 0;
$28 = $4;
HEAP32[$vararg_buffer2>>2] = 1;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = $28;
$29 = (___syscall102(102,($vararg_buffer2|0))|0);
$30 = (___syscall_ret($29)|0);
$31 = ($30|0)<(0);
if ($31) {
$$017 = $30;
} else {
$32 = $1 & 524288;
$33 = ($32|0)==(0);
if (!($33)) {
HEAP32[$vararg_buffer6>>2] = $30;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 2;
$vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
HEAP32[$vararg_ptr10>>2] = 1;
(___syscall221(221,($vararg_buffer6|0))|0);
}
$34 = $1 & 2048;
$35 = ($34|0)==(0);
if ($35) {
$$017 = $30;
} else {
HEAP32[$vararg_buffer11>>2] = $30;
$vararg_ptr14 = ((($vararg_buffer11)) + 4|0);
HEAP32[$vararg_ptr14>>2] = 4;
$vararg_ptr15 = ((($vararg_buffer11)) + 8|0);
HEAP32[$vararg_ptr15>>2] = 2048;
(___syscall221(221,($vararg_buffer11|0))|0);
$$017 = $30;
}
}
} else {
$$017 = $12;
}
} while(0);
STACKTOP = sp;return ($$017|0);
}
function _sendto($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$vararg_buffer = sp;
$6 = sp + 8|0;
HEAP32[$6>>2] = $0;
$7 = ((($6)) + 4|0);
$8 = $1;
HEAP32[$7>>2] = $8;
$9 = ((($6)) + 8|0);
HEAP32[$9>>2] = $2;
$10 = ((($6)) + 12|0);
HEAP32[$10>>2] = $3;
$11 = ((($6)) + 16|0);
$12 = $4;
HEAP32[$11>>2] = $12;
$13 = ((($6)) + 20|0);
HEAP32[$13>>2] = $5;
$14 = $6;
HEAP32[$vararg_buffer>>2] = 11;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $14;
$15 = (___syscall102(102,($vararg_buffer|0))|0);
$16 = (___syscall_ret($15)|0);
STACKTOP = sp;return ($16|0);
}
function _htonl($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (___bswap_32($0)|0);
return ($1|0);
}
function ___bswap_32($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_llvm_bswap_i32(($0|0))|0);
return ($1|0);
}
function ___lctrans_impl($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0|0);
if ($2) {
$$0 = 0;
} else {
$3 = HEAP32[$1>>2]|0;
$4 = ((($1)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (___mo_lookup($3,$5,$0)|0);
$$0 = $6;
}
$7 = ($$0|0)==(0|0);
$8 = $7 ? $0 : $$0;
return ($8|0);
}
function ___mo_lookup($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = HEAP32[$0>>2]|0;
$4 = (($3) + 1794895138)|0;
$5 = ((($0)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = (_swapc($6,$4)|0);
$8 = ((($0)) + 12|0);
$9 = HEAP32[$8>>2]|0;
$10 = (_swapc($9,$4)|0);
$11 = ((($0)) + 16|0);
$12 = HEAP32[$11>>2]|0;
$13 = (_swapc($12,$4)|0);
$14 = (2)?($1 >>> 2):($1);
$15 = ($7>>>0)<($14>>>0);
L1: do {
if ($15) {
$16 = $7 << 2;
$17 = (($1) - ($16))|0;
$18 = ($10>>>0)<($17>>>0);
$19 = ($13>>>0)<($17>>>0);
$or$cond = $18 & $19;
if ($or$cond) {
$20 = $13 | $10;
$21 = $20 & 3;
$22 = ($21|0)==(0);
if ($22) {
$23 = (2)?($10 >>> 2):($10);
$24 = (2)?($13 >>> 2):($13);
$$090 = 0;$$094 = $7;
while(1) {
$25 = (1)?($$094 >>> 1):($$094);
$26 = (($$090) + ($25))|0;
$27 = $26 << 1;
$28 = (($27) + ($23))|0;
$29 = (($0) + ($28<<2)|0);
$30 = HEAP32[$29>>2]|0;
$31 = (_swapc($30,$4)|0);
$32 = (($28) + 1)|0;
$33 = (($0) + ($32<<2)|0);
$34 = HEAP32[$33>>2]|0;
$35 = (_swapc($34,$4)|0);
$36 = ($35>>>0)<($1>>>0);
$37 = (($1) - ($35))|0;
$38 = ($31>>>0)<($37>>>0);
$or$cond102 = $36 & $38;
if (!($or$cond102)) {
$$4 = 0;
break L1;
}
$39 = (($35) + ($31))|0;
$40 = (($0) + ($39)|0);
$41 = HEAP8[$40>>0]|0;
$42 = ($41<<24>>24)==(0);
if (!($42)) {
$$4 = 0;
break L1;
}
$43 = (($0) + ($35)|0);
$44 = (_strcmp($2,$43)|0);
$45 = ($44|0)==(0);
if ($45) {
break;
}
$62 = ($$094|0)==(1);
$63 = ($44|0)<(0);
if ($62) {
$$4 = 0;
break L1;
}
$$191 = $63 ? $$090 : $26;
$64 = (($$094) - ($25))|0;
$$195 = $63 ? $25 : $64;
$$090 = $$191;$$094 = $$195;
}
$46 = (($27) + ($24))|0;
$47 = (($0) + ($46<<2)|0);
$48 = HEAP32[$47>>2]|0;
$49 = (_swapc($48,$4)|0);
$50 = (($46) + 1)|0;
$51 = (($0) + ($50<<2)|0);
$52 = HEAP32[$51>>2]|0;
$53 = (_swapc($52,$4)|0);
$54 = ($53>>>0)<($1>>>0);
$55 = (($1) - ($53))|0;
$56 = ($49>>>0)<($55>>>0);
$or$cond104 = $54 & $56;
if ($or$cond104) {
$57 = (($0) + ($53)|0);
$58 = (($53) + ($49))|0;
$59 = (($0) + ($58)|0);
$60 = HEAP8[$59>>0]|0;
$61 = ($60<<24>>24)==(0);
$spec$select = $61 ? $57 : 0;
$$4 = $spec$select;
} else {
$$4 = 0;
}
} else {
$$4 = 0;
}
} else {
$$4 = 0;
}
} else {
$$4 = 0;
}
} while(0);
return ($$4|0);
}
function _swapc($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, $spec$select = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1|0)==(0);
$3 = (_llvm_bswap_i32(($0|0))|0);
$spec$select = $2 ? $0 : $3;
return ($spec$select|0);
}
function _strcmp($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$2 = HEAP8[$0>>0]|0;
$3 = HEAP8[$1>>0]|0;
$4 = ($2<<24>>24)!=($3<<24>>24);
$5 = ($2<<24>>24)==(0);
$or$cond9 = $5 | $4;
if ($or$cond9) {
$$lcssa = $3;$$lcssa8 = $2;
} else {
$$011 = $1;$$0710 = $0;
while(1) {
$6 = ((($$0710)) + 1|0);
$7 = ((($$011)) + 1|0);
$8 = HEAP8[$6>>0]|0;
$9 = HEAP8[$7>>0]|0;
$10 = ($8<<24>>24)!=($9<<24>>24);
$11 = ($8<<24>>24)==(0);
$or$cond = $11 | $10;
if ($or$cond) {
$$lcssa = $9;$$lcssa8 = $8;
break;
} else {
$$011 = $7;$$0710 = $6;
}
}
}
$12 = $$lcssa8&255;
$13 = $$lcssa&255;
$14 = (($12) - ($13))|0;
return ($14|0);
}
function _getsockopt($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$vararg_buffer = sp;
$5 = sp + 8|0;
HEAP32[$5>>2] = $0;
$6 = ((($5)) + 4|0);
HEAP32[$6>>2] = $1;
$7 = ((($5)) + 8|0);
HEAP32[$7>>2] = $2;
$8 = ((($5)) + 12|0);
$9 = $3;
HEAP32[$8>>2] = $9;
$10 = ((($5)) + 16|0);
$11 = $4;
HEAP32[$10>>2] = $11;
$12 = ((($5)) + 20|0);
HEAP32[$12>>2] = 0;
$13 = $5;
HEAP32[$vararg_buffer>>2] = 15;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $13;
$14 = (___syscall102(102,($vararg_buffer|0))|0);
$15 = (___syscall_ret($14)|0);
STACKTOP = sp;return ($15|0);
}
function _recv($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_recvfrom($0,$1,$2,$3,0,0)|0);
return ($4|0);
}
function _recvfrom($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$vararg_buffer = sp;
$6 = sp + 8|0;
HEAP32[$6>>2] = $0;
$7 = ((($6)) + 4|0);
$8 = $1;
HEAP32[$7>>2] = $8;
$9 = ((($6)) + 8|0);
HEAP32[$9>>2] = $2;
$10 = ((($6)) + 12|0);
HEAP32[$10>>2] = $3;
$11 = ((($6)) + 16|0);
$12 = $4;
HEAP32[$11>>2] = $12;
$13 = ((($6)) + 20|0);
$14 = $5;
HEAP32[$13>>2] = $14;
$15 = $6;
HEAP32[$vararg_buffer>>2] = 12;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $15;
$16 = (___syscall102(102,($vararg_buffer|0))|0);
$17 = (___syscall_ret($16)|0);
STACKTOP = sp;return ($17|0);
}
function _strcpy($0,$1) {
$0 = $0|0;
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
(___stpcpy($0,$1)|0);
return ($0|0);
}
function ___stpcpy($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$030 = 0, $$037 = 0, $$1 = 0, $$128 = 0, $$22934 = 0, $$235 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = $1;
$3 = $0;
$4 = $2 ^ $3;
$5 = $4 & 3;
$6 = ($5|0)==(0);
L1: do {
if ($6) {
$7 = $2 & 3;
$8 = ($7|0)==(0);
if ($8) {
$$026$lcssa = $1;$$027$lcssa = $0;
} else {
$$02642 = $1;$$02741 = $0;
while(1) {
$9 = HEAP8[$$02642>>0]|0;
HEAP8[$$02741>>0] = $9;
$10 = ($9<<24>>24)==(0);
if ($10) {
$$030 = $$02741;
break L1;
}
$11 = ((($$02642)) + 1|0);
$12 = ((($$02741)) + 1|0);
$13 = $11;
$14 = $13 & 3;
$15 = ($14|0)==(0);
if ($15) {
$$026$lcssa = $11;$$027$lcssa = $12;
break;
} else {
$$02642 = $11;$$02741 = $12;
}
}
}
$16 = HEAP32[$$026$lcssa>>2]|0;
$17 = (($16) + -16843009)|0;
$18 = $16 & -2139062144;
$19 = $18 ^ -2139062144;
$20 = $19 & $17;
$21 = ($20|0)==(0);
if ($21) {
$$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16;
while(1) {
$22 = ((($$037)) + 4|0);
$23 = ((($$02536)) + 4|0);
HEAP32[$$02536>>2] = $24;
$25 = HEAP32[$22>>2]|0;
$26 = (($25) + -16843009)|0;
$27 = $25 & -2139062144;
$28 = $27 ^ -2139062144;
$29 = $28 & $26;
$30 = ($29|0)==(0);
if ($30) {
$$02536 = $23;$$037 = $22;$24 = $25;
} else {
$$0$lcssa = $22;$$025$lcssa = $23;
break;
}
}
} else {
$$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa;
}
$$1 = $$0$lcssa;$$128 = $$025$lcssa;
label = 10;
} else {
$$1 = $1;$$128 = $0;
label = 10;
}
} while(0);
if ((label|0) == 10) {
$31 = HEAP8[$$1>>0]|0;
HEAP8[$$128>>0] = $31;
$32 = ($31<<24>>24)==(0);
if ($32) {
$$030 = $$128;
} else {
$$22934 = $$128;$$235 = $$1;
while(1) {
$33 = ((($$235)) + 1|0);
$34 = ((($$22934)) + 1|0);
$35 = HEAP8[$33>>0]|0;
HEAP8[$34>>0] = $35;
$36 = ($35<<24>>24)==(0);
if ($36) {
$$030 = $34;
break;
} else {
$$22934 = $34;$$235 = $33;
}
}
}
}
return ($$030|0);
}
function _htons($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (___bswap_16_87($0)|0);
return ($1|0);
}
function _close($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $spec$store$select = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$1 = (_dummy_326($0)|0);
HEAP32[$vararg_buffer>>2] = $1;
$2 = (___syscall6(6,($vararg_buffer|0))|0);
$3 = ($2|0)==(-4);
$spec$store$select = $3 ? 0 : $2;
$4 = (___syscall_ret($spec$store$select)|0);
STACKTOP = sp;return ($4|0);
}
function ___bswap_16_87($0) {
$0 = $0|0;
var $rev = 0, label = 0, sp = 0;
sp = STACKTOP;
$rev = (_llvm_bswap_i16(($0|0))|0);
return ($rev|0);
}
function _send($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$4 = (_sendto($0,$1,$2,$3,0,0)|0);
return ($4|0);
}
function _ntohs($0) {
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (___bswap_16($0)|0);
return ($1|0);
}
function ___bswap_16($0) {
$0 = $0|0;
var $rev = 0, label = 0, sp = 0;
sp = STACKTOP;
$rev = (_llvm_bswap_i16(($0|0))|0);
return ($rev|0);
}
function _strerror($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (___pthread_self_875()|0);
$2 = ((($1)) + 188|0);
$3 = HEAP32[$2>>2]|0;
$4 = (___strerror_l($0,$3)|0);
return ($4|0);
}
function ___pthread_self_875() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_pthread_self()|0);
return ($0|0);
}
function ___strerror_l($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $$115$ph = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$016 = 0;
while(1) {
$2 = (8608 + ($$016)|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = ($4|0)==($0|0);
if ($5) {
label = 4;
break;
}
$6 = (($$016) + 1)|0;
$7 = ($6|0)==(87);
if ($7) {
$$115$ph = 87;
label = 5;
break;
} else {
$$016 = $6;
}
}
if ((label|0) == 4) {
$8 = ($$016|0)==(0);
if ($8) {
$$012$lcssa = 8704;
} else {
$$115$ph = $$016;
label = 5;
}
}
if ((label|0) == 5) {
$$01214 = 8704;$$115 = $$115$ph;
while(1) {
$$113 = $$01214;
while(1) {
$9 = HEAP8[$$113>>0]|0;
$10 = ($9<<24>>24)==(0);
$11 = ((($$113)) + 1|0);
if ($10) {
break;
} else {
$$113 = $11;
}
}
$12 = (($$115) + -1)|0;
$13 = ($12|0)==(0);
if ($13) {
$$012$lcssa = $11;
break;
} else {
$$01214 = $11;$$115 = $12;
}
}
}
$14 = ((($1)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$16 = (___lctrans($$012$lcssa,$15)|0);
return ($16|0);
}
function ___lctrans($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = (___lctrans_impl($0,$1)|0);
return ($2|0);
}
function _strerror_r($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (_strerror($0)|0);
$4 = (_strlen($3)|0);
$5 = ($4>>>0)<($2>>>0);
if ($5) {
$9 = (($4) + 1)|0;
(_memcpy(($1|0),($3|0),($9|0))|0);
$$0 = 0;
} else {
$6 = ($2|0)==(0);
$7 = (($2) + -1)|0;
if ($6) {
$$0 = 34;
} else {
$8 = (($1) + ($7)|0);
(_memcpy(($1|0),($3|0),($7|0))|0);
HEAP8[$8>>0] = 0;
$$0 = 34;
}
}
return ($$0|0);
}
function ___strdup($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (_strlen($0)|0);
$2 = (($1) + 1)|0;
$3 = (_malloc($2)|0);
$4 = ($3|0)==(0|0);
if ($4) {
$$0 = 0;
} else {
$5 = (_memcpy(($3|0),($0|0),($2|0))|0);
$$0 = $5;
}
return ($$0|0);
}
function _readdir($0) {
$0 = $0|0;
var $$1 = 0, $$pre = 0, $$pre$phiZ2D = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$1 = ((($0)) + 8|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($0)) + 12|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($2|0)<($4|0);
L1: do {
if ($5) {
$$pre = (((($0)) + 24|0) + ($2)|0);
$$pre$phiZ2D = $$pre;$17 = $2;
label = 7;
} else {
$6 = HEAP32[$0>>2]|0;
$7 = ((($0)) + 24|0);
$8 = $7;
HEAP32[$vararg_buffer>>2] = $6;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $8;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = 2048;
$9 = (___syscall220(220,($vararg_buffer|0))|0);
$10 = ($9|0)<(1);
if (!($10)) {
HEAP32[$3>>2] = $9;
HEAP32[$1>>2] = 0;
$$pre$phiZ2D = $7;$17 = 0;
label = 7;
break;
}
switch ($9|0) {
case 0: case -2: {
$$1 = 0;
break L1;
break;
}
default: {
}
}
$11 = (0 - ($9))|0;
$12 = (___errno_location()|0);
HEAP32[$12>>2] = $11;
$$1 = 0;
}
} while(0);
if ((label|0) == 7) {
$13 = ((($$pre$phiZ2D)) + 8|0);
$14 = HEAP16[$13>>1]|0;
$15 = $14&65535;
$16 = (($17) + ($15))|0;
HEAP32[$1>>2] = $16;
$18 = ((($$pre$phiZ2D)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = ((($0)) + 4|0);
HEAP32[$20>>2] = $19;
$$1 = $$pre$phiZ2D;
}
STACKTOP = sp;return ($$1|0);
}
function _lseek($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0;
$vararg_buffer = sp;
$3 = sp + 20|0;
$4 = $3;
HEAP32[$vararg_buffer>>2] = $0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $1;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $4;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $2;
$5 = (___syscall140(140,($vararg_buffer|0))|0);
$6 = (___syscall_ret($5)|0);
$7 = ($6|0)==(0);
$8 = HEAP32[$3>>2]|0;
$9 = $7 ? $8 : -1;
STACKTOP = sp;return ($9|0);
}
function _closedir($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
$2 = (_close($1)|0);
_free($0);
return ($2|0);
}
function _fstat($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $$0 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0;
$vararg_buffer6 = sp + 40|0;
$vararg_buffer2 = sp;
$vararg_buffer = sp + 32|0;
$2 = $1;
HEAP32[$vararg_buffer>>2] = $0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $2;
$3 = (___syscall197(197,($vararg_buffer|0))|0);
$4 = ($3|0)==(-9);
if ($4) {
HEAP32[$vararg_buffer2>>2] = $0;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 1;
$5 = (___syscall221(221,($vararg_buffer2|0))|0);
$6 = ($5|0)<(0);
if ($6) {
label = 3;
} else {
___procfdname($vararg_buffer2,$0);
$8 = $vararg_buffer2;
HEAP32[$vararg_buffer6>>2] = $8;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = $2;
$9 = (___syscall195(195,($vararg_buffer6|0))|0);
$10 = (___syscall_ret($9)|0);
$$0 = $10;
}
} else {
label = 3;
}
if ((label|0) == 3) {
$7 = (___syscall_ret($3)|0);
$$0 = $7;
}
STACKTOP = sp;return ($$0|0);
}
function _opendir($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$1 = (_open($0,589824,$vararg_buffer)|0);
$2 = ($1|0)<(0);
do {
if ($2) {
$$0 = 0;
} else {
$3 = (_calloc(1,2072)|0);
$4 = ($3|0)==(0|0);
if ($4) {
HEAP32[$vararg_buffer1>>2] = $1;
(___syscall6(6,($vararg_buffer1|0))|0);
$$0 = 0;
break;
} else {
HEAP32[$3>>2] = $1;
$$0 = $3;
break;
}
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function _write($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$3 = $1;
HEAP32[$vararg_buffer>>2] = $0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $3;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $2;
$4 = (___syscall4(4,($vararg_buffer|0))|0);
$5 = (___syscall_ret($4)|0);
STACKTOP = sp;return ($5|0);
}
function _read($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
var $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$3 = $1;
HEAP32[$vararg_buffer>>2] = $0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $3;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $2;
$4 = (___syscall3(3,($vararg_buffer|0))|0);
$5 = (___syscall_ret($4)|0);
STACKTOP = sp;return ($5|0);
}
function _chdir($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$1 = $0;
HEAP32[$vararg_buffer>>2] = $1;
$2 = (___syscall12(12,($vararg_buffer|0))|0);
$3 = (___syscall_ret($2)|0);
STACKTOP = sp;return ($3|0);
}
function _unlink($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0;
$vararg_buffer = sp;
$1 = $0;
HEAP32[$vararg_buffer>>2] = $1;
$2 = (___syscall10(10,($vararg_buffer|0))|0);
$3 = (___syscall_ret($2)|0);
STACKTOP = sp;return ($3|0);
}
function ___emscripten_environ_constructor() {
var label = 0, sp = 0;
sp = STACKTOP;
___buildEnvironment((1408184|0));
return;
}
function __get_tzname() {
var label = 0, sp = 0;
sp = STACKTOP;
return (1408168|0);
}
function __get_daylight() {
var label = 0, sp = 0;
sp = STACKTOP;
return (1408176|0);
}
function __get_timezone() {
var label = 0, sp = 0;
sp = STACKTOP;
return (1408180|0);
}
function ___muldsi3($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
$1 = $a & 65535;
$2 = $b & 65535;
$3 = Math_imul($2, $1) | 0;
$6 = $a >>> 16;
$8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
$11 = $b >>> 16;
$12 = Math_imul($11, $1) | 0;
return (setTempRet0(((($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0) | 0), 0 | ($8 + $12 << 16 | $3 & 65535)) | 0;
}
function ___muldi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0;
$x_sroa_0_0_extract_trunc = $a$0;
$y_sroa_0_0_extract_trunc = $b$0;
$1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0;
$1$1 = (getTempRet0() | 0);
$2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0;
return (setTempRet0((((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0) | 0), 0 | $1$0 & -1) | 0;
}
function _bitshift64Lshr(low, high, bits) {
low = low|0; high = high|0; bits = bits|0;
var ander = 0;
if ((bits|0) < 32) {
ander = ((1 << bits) - 1)|0;
setTempRet0((high >>> bits) | 0);
return (low >>> bits) | ((high&ander) << (32 - bits));
}
setTempRet0((0) | 0);
return (high >>> (bits - 32))|0;
}
function _i64Add(a, b, c, d) {
/*
x = a + b*2^32
y = c + d*2^32
result = l + h*2^32
*/
a = a|0; b = b|0; c = c|0; d = d|0;
var l = 0, h = 0;
l = (a + c)>>>0;
h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow.
return ((setTempRet0((h) | 0),l|0)|0);
}
function _i64Subtract(a, b, c, d) {
a = a|0; b = b|0; c = c|0; d = d|0;
var l = 0, h = 0;
l = (a - c)>>>0;
h = (b - d)>>>0;
h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow.
return ((setTempRet0((h) | 0),l|0)|0);
}
function _llvm_bswap_i16(x) {
x = x|0;
return (((x&0xff)<<8) | ((x>>8)&0xff))|0;
}
function _llvm_bswap_i32(x) {
x = x|0;
return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0;
}
function _memcpy(dest, src, num) {
dest = dest|0; src = src|0; num = num|0;
var ret = 0;
var aligned_dest_end = 0;
var block_aligned_dest_end = 0;
var dest_end = 0;
// Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use.
if ((num|0) >= 8192) {
_emscripten_memcpy_big(dest|0, src|0, num|0)|0;
return dest|0;
}
ret = dest|0;
dest_end = (dest + num)|0;
if ((dest&3) == (src&3)) {
// The initial unaligned < 4-byte front.
while (dest & 3) {
if ((num|0) == 0) return ret|0;
HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
dest = (dest+1)|0;
src = (src+1)|0;
num = (num-1)|0;
}
aligned_dest_end = (dest_end & -4)|0;
block_aligned_dest_end = (aligned_dest_end - 64)|0;
while ((dest|0) <= (block_aligned_dest_end|0) ) {
HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0);
HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0);
HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0);
HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0);
HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0);
HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0);
HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0);
HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0);
HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0);
HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0);
HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0);
HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0);
HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0);
HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0);
HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0);
dest = (dest+64)|0;
src = (src+64)|0;
}
while ((dest|0) < (aligned_dest_end|0) ) {
HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
dest = (dest+4)|0;
src = (src+4)|0;
}
} else {
// In the unaligned copy case, unroll a bit as well.
aligned_dest_end = (dest_end - 4)|0;
while ((dest|0) < (aligned_dest_end|0) ) {
HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0);
HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0);
HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0);
dest = (dest+4)|0;
src = (src+4)|0;
}
}
// The remaining unaligned < 4 byte tail.
while ((dest|0) < (dest_end|0)) {
HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
dest = (dest+1)|0;
src = (src+1)|0;
}
return ret|0;
}
function _memset(ptr, value, num) {
ptr = ptr|0; value = value|0; num = num|0;
var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0;
end = (ptr + num)|0;
value = value & 0xff;
if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) {
while ((ptr&3) != 0) {
HEAP8[((ptr)>>0)]=value;
ptr = (ptr+1)|0;
}
aligned_end = (end & -4)|0;
value4 = value | (value << 8) | (value << 16) | (value << 24);
block_aligned_end = (aligned_end - 64)|0;
while((ptr|0) <= (block_aligned_end|0)) {
HEAP32[((ptr)>>2)]=value4;
HEAP32[(((ptr)+(4))>>2)]=value4;
HEAP32[(((ptr)+(8))>>2)]=value4;
HEAP32[(((ptr)+(12))>>2)]=value4;
HEAP32[(((ptr)+(16))>>2)]=value4;
HEAP32[(((ptr)+(20))>>2)]=value4;
HEAP32[(((ptr)+(24))>>2)]=value4;
HEAP32[(((ptr)+(28))>>2)]=value4;
HEAP32[(((ptr)+(32))>>2)]=value4;
HEAP32[(((ptr)+(36))>>2)]=value4;
HEAP32[(((ptr)+(40))>>2)]=value4;
HEAP32[(((ptr)+(44))>>2)]=value4;
HEAP32[(((ptr)+(48))>>2)]=value4;
HEAP32[(((ptr)+(52))>>2)]=value4;
HEAP32[(((ptr)+(56))>>2)]=value4;
HEAP32[(((ptr)+(60))>>2)]=value4;
ptr = (ptr + 64)|0;
}
while ((ptr|0) < (aligned_end|0) ) {
HEAP32[((ptr)>>2)]=value4;
ptr = (ptr+4)|0;
}
}
// The remaining bytes.
while ((ptr|0) < (end|0)) {
HEAP8[((ptr)>>0)]=value;
ptr = (ptr+1)|0;
}
return (end-num)|0;
}
function _sbrk(increment) {
increment = increment|0;
var oldDynamicTop = 0;
var oldDynamicTopOnChange = 0;
var newDynamicTop = 0;
var totalMemory = 0;
oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0;
newDynamicTop = oldDynamicTop + increment | 0;
if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int.
| (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract.
abortOnCannotGrowMemory(newDynamicTop|0)|0;
___setErrNo(12);
return -1;
}
totalMemory = _emscripten_get_heap_size()|0;
if ((newDynamicTop|0) > (totalMemory|0)) {
if ((_emscripten_resize_heap(newDynamicTop|0)|0) == 0) {
___setErrNo(12);
return -1;
}
}
HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop|0;
return oldDynamicTop|0;
}
function dynCall_di(index,a1) {
index = index|0;
a1=a1|0;
return +FUNCTION_TABLE_di[index&31](a1|0);
}
function dynCall_i(index) {
index = index|0;
return FUNCTION_TABLE_i[index&3]()|0;
}
function dynCall_id(index,a1) {
index = index|0;
a1=+a1;
return FUNCTION_TABLE_id[index&3](+a1)|0;
}
function dynCall_ii(index,a1) {
index = index|0;
a1=a1|0;
return FUNCTION_TABLE_ii[index&31](a1|0)|0;
}
function dynCall_iid(index,a1,a2) {
index = index|0;
a1=a1|0; a2=+a2;
return FUNCTION_TABLE_iid[index&15](a1|0,+a2)|0;
}
function dynCall_iii(index,a1,a2) {
index = index|0;
a1=a1|0; a2=a2|0;
return FUNCTION_TABLE_iii[index&127](a1|0,a2|0)|0;
}
function dynCall_iiii(index,a1,a2,a3) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0;
return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0;
}
function dynCall_iiiii(index,a1,a2,a3,a4) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0;
return FUNCTION_TABLE_iiiii[index&63](a1|0,a2|0,a3|0,a4|0)|0;
}
function dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0;
return FUNCTION_TABLE_iiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0)|0;
}
function dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0;
return FUNCTION_TABLE_iiiiiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0)|0;
}
function dynCall_v(index) {
index = index|0;
FUNCTION_TABLE_v[index&127]();
}
function dynCall_vd(index,a1) {
index = index|0;
a1=+a1;
FUNCTION_TABLE_vd[index&1](+a1);
}
function dynCall_vi(index,a1) {
index = index|0;
a1=a1|0;
FUNCTION_TABLE_vi[index&511](a1|0);
}
function dynCall_vid(index,a1,a2) {
index = index|0;
a1=a1|0; a2=+a2;
FUNCTION_TABLE_vid[index&63](a1|0,+a2);
}
function dynCall_vidd(index,a1,a2,a3) {
index = index|0;
a1=a1|0; a2=+a2; a3=+a3;
FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3);
}
function dynCall_vii(index,a1,a2) {
index = index|0;
a1=a1|0; a2=a2|0;
FUNCTION_TABLE_vii[index&127](a1|0,a2|0);
}
function dynCall_viii(index,a1,a2,a3) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0;
FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0);
}
function dynCall_viiii(index,a1,a2,a3,a4) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0;
FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0);
}
function dynCall_viiiii(index,a1,a2,a3,a4,a5) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0;
FUNCTION_TABLE_viiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0);
}
function b0(p0) {
p0 = p0|0; abort(0);return +0;
}
function b1() {
; abort(1);return 0;
}
function b2(p0) {
p0 = +p0; abort(2);return 0;
}
function b3(p0) {
p0 = p0|0; abort(3);return 0;
}
function b4(p0,p1) {
p0 = p0|0;p1 = +p1; abort(4);return 0;
}
function b5(p0,p1) {
p0 = p0|0;p1 = p1|0; abort(5);return 0;
}
function b6(p0,p1,p2) {
p0 = p0|0;p1 = p1|0;p2 = p2|0; abort(6);return 0;
}
function b7(p0,p1,p2,p3) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; abort(7);return 0;
}
function b8(p0,p1,p2,p3,p4,p5) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; abort(8);return 0;
}
function b9(p0,p1,p2,p3,p4,p5,p6) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; abort(9);return 0;
}
function b10() {
; abort(10);
}
function b11(p0) {
p0 = +p0; abort(11);
}
function b12(p0) {
p0 = p0|0; abort(12);
}
function b13(p0,p1) {
p0 = p0|0;p1 = +p1; abort(13);
}
function b14(p0,p1,p2) {
p0 = p0|0;p1 = +p1;p2 = +p2; abort(14);
}
function b15(p0,p1) {
p0 = p0|0;p1 = p1|0; abort(15);
}
function b16(p0,p1,p2) {
p0 = p0|0;p1 = p1|0;p2 = p2|0; abort(16);
}
function b17(p0,p1,p2,p3) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; abort(17);
}
function b18(p0,p1,p2,p3,p4) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; abort(18);
}
// EMSCRIPTEN_END_FUNCS
var FUNCTION_TABLE_di = [b0,_HumanModel_GetNameY,_HumanModel_GetEyeY,_ChickenModel_GetNameY,_ChickenModel_GetEyeY,_CreeperModel_GetNameY,_CreeperModel_GetEyeY,_PigModel_GetNameY,_PigModel_GetEyeY,_SheepModel_GetNameY,_SheepModel_GetEyeY,_SpiderModel_GetNameY,_SpiderModel_GetEyeY,_BlockModel_GetNameY,_BlockModel_GetEyeY,_ChibiModel_GetNameY,_ChibiModel_GetEyeY,_HeadModel_GetEyeY,_SittingModel_GetEyeY,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0
,b0,b0,b0];
var FUNCTION_TABLE_i = [b1,_MenuInputWidget_GetMaxLines,_ChatInputWidget_GetMaxLines,b1];
var FUNCTION_TABLE_id = [b2,_FirstPersonCamera_Zoom,_ThirdPersonCamera_Zoom,b2];
var FUNCTION_TABLE_ii = [b3,_Entity_GetCol,_HeldBlockRenderer_GetCol,_Deflate_StreamClose,_GZip_StreamClose,_Zip_DefaultSelector,_IsRopeCollide,_IsLavaCollide,_IsWaterCollide,_LocalPlayer_IsSolidCollide,_PhysicsComp_TouchesLiquid,_PhysicsComp_TouchesSlipperyIce,_Sounds_CheckNonSolid,_Sounds_CheckSolid,_Cw_Load,_TouchesSolid,_Options_LoadFilter,_Picking_ClipBlock,_Picking_ClipCamera,_Stream_DefaultClose,_Stream_FileClose,b3,b3,b3,b3,b3,b3,b3,b3
,b3,b3,b3];
var FUNCTION_TABLE_iid = [b4,_ListScreen_MouseScroll,_Screen_TMouseScroll,_Screen_FMouseScroll,_ChatScreen_MouseScroll,_InventoryScreen_MouseScroll,_Widget_MouseScroll,_ScrollbarWidget_MouseScroll,_HotbarWidget_MouseScroll,_TableWidget_MouseScroll,b4,b4,b4,b4,b4,b4];
var FUNCTION_TABLE_iii = [b5,_ListScreen_KeyDown,_Screen_TInput,_Screen_TKeyPress,_Screen_TText,_Screen_InputDown,_EditHotkeyScreen_KeyDown,_EditHotkeyScreen_KeyPress,_EditHotkeyScreen_TextChanged,_SaveLevelScreen_KeyDown,_SaveLevelScreen_KeyPress,_SaveLevelScreen_TextChanged,_GenLevelScreen_KeyDown,_GenLevelScreen_KeyPress,_GenLevelScreen_TextChanged,_MenuOptionsScreen_KeyDown,_MenuOptionsScreen_KeyPress,_MenuOptionsScreen_TextChanged,_KeyBindingsScreen_KeyDown,_TexIdsOverlay_KeyDown,_Screen_FInput,_Screen_FKeyPress,_Screen_FText,_ChatScreen_KeyDown,_ChatScreen_KeyUp,_ChatScreen_KeyPress,_ChatScreen_TextChanged,_InventoryScreen_KeyDown,_InventoryScreen_KeyUp
,_Hex_ValidChar,_Hex_ValidString,_Hex_ValidValue,_Int_ValidChar,_Int_ValidString,_Int_ValidValue,_Float_ValidChar,_Float_ValidString,_Float_ValidValue,_Path_ValidChar,_Path_ValidString,_String_ValidChar,_String_ValidString,_Widget_Key,_TextWidget_Render2,_ButtonWidget_Render2,_HotbarWidget_KeyDown,_HotbarWidget_KeyUp,_TableWidget_KeyDown,_InputWidget_KeyDown,_InputWidget_KeyUp,_ChatInputWidget_KeyDown,_Platform_DescribeError,_Http_DescribeError,_Stream_DefaultReadU8,_Stream_DefaultSkip,_Stream_DefaultSeek,_Stream_DefaultGet,_Stream_FileSkip,_Stream_FileSeek
,_Stream_FilePosition,_Stream_FileLength,_Stream_PortionReadU8,_Stream_PortionSkip,_Stream_PortionPosition,_Stream_PortionLength,_Stream_MemoryReadU8,_Stream_MemorySkip,_Stream_MemorySeek,_Stream_MemoryPosition,_Stream_MemoryLength,_Stream_BufferedReadU8,_Stream_BufferedSeek,_MenuInputWidget_AllowedChar,_InputWidget_AllowedChar,_PlayerListWidget_PlayerCompare,_PlayerListWidget_GroupCompare,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5
,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5
,b5,b5,b5,b5,b5,b5,b5,b5,b5];
var FUNCTION_TABLE_iiii = [b6,_Zip_DefaultProcessor,_TexturePack_ProcessZipEntry,_Window_MouseWheel,_Window_MouseButton,_Window_MouseMove,_Window_Focus,_Window_Resize,_Window_BeforeUnload,_Window_Key,_Window_KeyPress,_Window_TouchStart,_Window_TouchMove,_Window_TouchEnd,_Window_CanvasResize,_GLContext_OnLost];
var FUNCTION_TABLE_iiiii = [b7,_Menu_PointerDown,_Screen_TPointer,_Menu_PointerMove,_GenLevelScreen_PointerDown,_OptionsGroupScreen_PointerMove,_MenuOptionsScreen_PointerMove,_Screen_FPointer,_ChatScreen_PointerDown,_InventoryScreen_PointerDown,_InventoryScreen_PointerUp,_InventoryScreen_PointerMove,_DisconnectScreen_PointerDown,_DisconnectScreen_PointerMove,_TouchScreen_PointerDown,_TouchScreen_PointerUp,_Widget_Pointer,_Widget_PointerMove,_ScrollbarWidget_PointerDown,_ScrollbarWidget_PointerUp,_ScrollbarWidget_PointerMove,_HotbarWidget_PointerDown,_TableWidget_PointerDown,_TableWidget_PointerUp,_TableWidget_PointerMove,_InputWidget_PointerDown,_SpecialInputWidget_PointerDown,_Inflate_StreamRead,_Deflate_StreamWrite
,_GZip_StreamWriteFirst,_GZip_StreamWrite,_Stream_DefaultRead,_Stream_DefaultWrite,_Stream_FileRead,_Stream_FileWrite,_Stream_PortionRead,_Stream_MemoryRead,_Stream_BufferedRead,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7
,b7,b7,b7,b7,b7];
var FUNCTION_TABLE_iiiiiii = [b8,_Adv_StretchXLiquid,_NormalBuilder_StretchXLiquid,b8];
var FUNCTION_TABLE_iiiiiiii = [b9,_Adv_StretchX,_Adv_StretchZ,_NormalBuilder_StretchX,_NormalBuilder_StretchZ,b9,b9,b9];
var FUNCTION_TABLE_v = [b10,_Audio_Init,_Audio_Free,_AxisLinesRenderer_Init,_AxisLinesRenderer_Free,_Blocks_Init,_Blocks_Free,_Blocks_Reset,_Builder_Init,_Builder_OnNewMapLoaded,_Camera_AcquireFocus,_Camera_LoseFocus,_Chat_Init,_Chat_Free,_Chat_Reset,_Drawer2D_Init,_Drawer2D_Free,_Drawer2D_Reset,_TabList_Free,_TabList_Reset,_Entities_Init,_Entities_Free,_LocalPlayer_Reset,_LocalPlayer_OnNewMap,_EnvRenderer_Init,_EnvRenderer_Free,_EnvRenderer_Reset,_EnvRenderer_OnNewMapLoaded,_Gui_Init
,_Gui_Free,_Gui_Reset,_HeldBlockRenderer_Init,_HeldBlockRenderer_Free,_Http_Init,_Http_Free,_Http_ClearPending,_Inventory_Init,_Inventory_Reset,_Lighting_Reset,_Lighting_OnNewMapLoaded,_MapRenderer_Init,_MapRenderer_Free,_MapRenderer_OnNewMap,_MapRenderer_OnNewMapLoaded,_Models_Init,_Models_Free,_HumanModel_MakeParts,_ChickenModel_MakeParts,_CreeperModel_MakeParts,_PigModel_MakeParts,_SheepModel_MakeParts,_SkeletonModel_MakeParts,_SpiderModel_MakeParts,_Model_NoParts,_ChibiModel_MakeParts,_Particles_Init,_Particles_Free,_Particles_Reset,_PickedPosRenderer_Init
,_PickedPosRenderer_Free,_Selections_Init,_Selections_Free,_Selections_Reset,_Server_Init,_Server_Free,_MPConnection_Reset,_MPConnection_OnNewMap,_Animations_Init,_Animations_Free,_Game_DoFrame,_GL_SetupVbPos3fTex2fCol4b,_GL_SetupVbPos3fCol4b,_NotchyGen_Generate,_FlatgrassGen_Generate,_SPConnection_BeginConnect,_MPConnection_BeginConnect,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10
,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10
,b10,b10,b10,b10,b10,b10,b10,b10,b10];
var FUNCTION_TABLE_vd = [b11,_PerspectiveCamera_UpdateMouse];
var FUNCTION_TABLE_vi = [b12,_PerspectiveCamera_GetProjection,_PerspectiveCamera_GetView,_FirstPersonCamera_GetOrientation,_PerspectiveCamera_GetPickedBlock,_ThirdPersonCamera_GetOrientation,_Player_Despawn,_NetPlayer_RenderName,_LocalPlayer_RenderName,_Logger_DialogWarn,_ListScreen_Init,_ListScreen_Free,_ListScreen_BuildMesh,_Screen_Layout,_ListScreen_ContextLost,_ListScreen_ContextRecreated,_PauseScreen_Init,_PauseScreen_Free,_PauseScreen_BuildMesh,_Screen_ContextLost,_PauseScreen_ContextRecreated,_EditHotkeyScreen_Init,_Menu_CloseKeyboard,_EditHotkeyScreen_BuildMesh,_EditHotkeyScreen_ContextLost,_EditHotkeyScreen_ContextRecreated,_SaveLevelScreen_Init,_SaveLevelScreen_BuildMesh,_SaveLevelScreen_ContextLost
,_SaveLevelScreen_ContextRecreated,_GenLevelScreen_Init,_GenLevelScreen_BuildMesh,_GenLevelScreen_ContextLost,_GenLevelScreen_ContextRecreated,_OptionsGroupScreen_Init,_OptionsGroupScreen_Free,_OptionsGroupScreen_BuildMesh,_OptionsGroupScreen_ContextLost,_OptionsGroupScreen_ContextRecreated,_MenuOptionsScreen_Init,_MenuOptionsScreen_Free,_MenuOptionsScreen_BuildMesh,_MenuOptionsScreen_Layout,_MenuOptionsScreen_ContextLost,_MenuOptionsScreen_ContextRecreated,_NostalgiaScreen_GetHand,_NostalgiaScreen_SetHand,_NostalgiaScreen_GetAnim,_NostalgiaScreen_SetAnim,_NostalgiaScreen_GetGui,_NostalgiaScreen_SetGui,_NostalgiaScreen_GetList,_NostalgiaScreen_SetList,_NostalgiaScreen_GetOpts,_NostalgiaScreen_SetOpts,_NostalgiaScreen_GetCustom,_NostalgiaScreen_SetCustom,_NostalgiaScreen_GetCPE,_NostalgiaScreen_SetCPE
,_NostalgiaScreen_GetTexs,_NostalgiaScreen_SetTexs,_EnvSettingsScreen_GetCloudsCol,_EnvSettingsScreen_SetCloudsCol,_EnvSettingsScreen_GetSkyCol,_EnvSettingsScreen_SetSkyCol,_EnvSettingsScreen_GetFogCol,_EnvSettingsScreen_SetFogCol,_EnvSettingsScreen_GetCloudsSpeed,_EnvSettingsScreen_SetCloudsSpeed,_EnvSettingsScreen_GetCloudsHeight,_EnvSettingsScreen_SetCloudsHeight,_EnvSettingsScreen_GetSunCol,_EnvSettingsScreen_SetSunCol,_EnvSettingsScreen_GetShadowCol,_EnvSettingsScreen_SetShadowCol,_EnvSettingsScreen_GetWeather,_EnvSettingsScreen_SetWeather,_EnvSettingsScreen_GetWeatherSpeed,_EnvSettingsScreen_SetWeatherSpeed,_EnvSettingsScreen_GetEdgeHeight,_EnvSettingsScreen_SetEdgeHeight,_HacksSettingsScreen_GetHacks,_HacksSettingsScreen_SetHacks,_HacksSettingsScreen_GetSpeed,_HacksSettingsScreen_SetSpeed,_HacksSettingsScreen_GetClipping,_HacksSettingsScreen_SetClipping,_HacksSettingsScreen_GetJump,_HacksSettingsScreen_SetJump
,_HacksSettingsScreen_GetWOMHacks,_HacksSettingsScreen_SetWOMHacks,_HacksSettingsScreen_GetFullStep,_HacksSettingsScreen_SetFullStep,_HacksSettingsScreen_GetLiquids,_HacksSettingsScreen_SetLiquids,_HacksSettingsScreen_GetPushback,_HacksSettingsScreen_SetPushback,_HacksSettingsScreen_GetSlide,_HacksSettingsScreen_SetSlide,_HacksSettingsScreen_GetFOV,_HacksSettingsScreen_SetFOV,_KeyBindingsScreen_Init,_Screen_NullFunc,_KeyBindingsScreen_BuildMesh,_KeyBindingsScreen_ContextLost,_KeyBindingsScreen_ContextRecreated,_ClassicOptionsScreen_GetMusic,_ClassicOptionsScreen_SetMusic,_ClassicOptionsScreen_GetInvert,_ClassicOptionsScreen_SetInvert,_ClassicOptionsScreen_GetViewDist,_ClassicOptionsScreen_SetViewDist,_ClassicOptionsScreen_GetPhysics,_ClassicOptionsScreen_SetPhysics,_ClassicOptionsScreen_GetSounds,_ClassicOptionsScreen_SetSounds,_ClassicOptionsScreen_GetShowFPS,_ClassicOptionsScreen_SetShowFPS,_ClassicOptionsScreen_GetViewBob
,_ClassicOptionsScreen_SetViewBob,_MenuOptionsScreen_GetFPS,_MenuOptionsScreen_SetFPS,_ClassicOptionsScreen_GetHacks,_ClassicOptionsScreen_SetHacks,_GraphicsOptionsScreen_GetViewDist,_GraphicsOptionsScreen_SetViewDist,_GraphicsOptionsScreen_GetSmooth,_GraphicsOptionsScreen_SetSmooth,_GraphicsOptionsScreen_GetNames,_GraphicsOptionsScreen_SetNames,_GraphicsOptionsScreen_GetShadows,_GraphicsOptionsScreen_SetShadows,_GraphicsOptionsScreen_GetMipmaps,_GraphicsOptionsScreen_SetMipmaps,_GuiOptionsScreen_GetShadows,_GuiOptionsScreen_SetShadows,_GuiOptionsScreen_GetShowFPS,_GuiOptionsScreen_SetShowFPS,_GuiOptionsScreen_GetHotbar,_GuiOptionsScreen_SetHotbar,_GuiOptionsScreen_GetInventory,_GuiOptionsScreen_SetInventory,_GuiOptionsScreen_GetTabAuto,_GuiOptionsScreen_SetTabAuto,_GuiOptionsScreen_GetClickable,_GuiOptionsScreen_SetClickable,_GuiOptionsScreen_GetChatScale,_GuiOptionsScreen_SetChatScale,_GuiOptionsScreen_GetChatlines
,_GuiOptionsScreen_SetChatlines,_GuiOptionsScreen_GetUseFont,_GuiOptionsScreen_SetUseFont,_MiscOptionsScreen_GetReach,_MiscOptionsScreen_SetReach,_MiscOptionsScreen_GetMusic,_MiscOptionsScreen_SetMusic,_MiscOptionsScreen_GetSounds,_MiscOptionsScreen_SetSounds,_MiscOptionsScreen_GetViewBob,_MiscOptionsScreen_SetViewBob,_MiscOptionsScreen_GetPhysics,_MiscOptionsScreen_SetPhysics,_MiscOptionsScreen_GetAutoClose,_MiscOptionsScreen_SetAutoClose,_MiscOptionsScreen_GetInvert,_MiscOptionsScreen_SetInvert,_MiscOptionsScreen_GetSensitivity,_MiscOptionsScreen_SetSensitivity,_ClassicGenScreen_Init,_ClassicGenScreen_BuildMesh,_ClassicGenScreen_ContextRecreated,_TexIdsOverlay_Init,_TexIdsOverlay_BuildMesh,_TexIdsOverlay_ContextLost,_TexIdsOverlay_ContextRecreated,_UrlWarningOverlay_Init,_UrlWarningOverlay_BuildMesh,_UrlWarningOverlay_ContextRecreated,_TexPackOverlay_Init
,_TexPackOverlay_BuildMesh,_TexPackOverlay_ContextLost,_TexPackOverlay_ContextRecreated,_TouchMoreOverlay_Init,_TouchMoreOverlay_BuildMesh,_TouchMoreOverlay_ContextRecreated,_HumanModel_Draw,_HumanModel_GetSize,_HumanModel_GetBounds,_ChickenModel_Draw,_ChickenModel_GetSize,_ChickenModel_GetBounds,_CreeperModel_Draw,_CreeperModel_GetSize,_CreeperModel_GetBounds,_PigModel_Draw,_PigModel_GetSize,_PigModel_GetBounds,_SheepModel_Draw,_SheepModel_GetSize,_SheepModel_GetBounds,_FurlessModel_Draw,_SkeletonModel_Draw,_SkeletonModel_GetSize,_SkeletonModel_GetBounds,_SpiderModel_Draw,_SpiderModel_GetSize,_SpiderModel_GetBounds,_ZombieModel_Draw,_ZombieModel_GetBounds
,_BlockModel_Draw,_BlockModel_GetSize,_BlockModel_GetBounds,_ChibiModel_Draw,_ChibiModel_GetSize,_ChibiModel_GetBounds,_HeadModel_Draw,_HeadModel_GetSize,_HeadModel_GetBounds,_SittingModel_Draw,_SittingModel_GetSize,_SittingModel_GetBounds,_HUDScreen_BuildMesh,_HUDScreen_ContextLost,_HUDScreen_ContextRecreated,_ChatScreen_Init,_ChatScreen_Free,_ChatScreen_BuildMesh,_ChatScreen_Layout,_ChatScreen_ContextLost,_ChatScreen_ContextRecreated,_InventoryScreen_Init,_InventoryScreen_Free,_InventoryScreen_BuildMesh,_InventoryScreen_Layout,_InventoryScreen_ContextLost,_InventoryScreen_ContextRecreated,_LoadingScreen_Init,_LoadingScreen_Free,_LoadingScreen_BuildMesh
,_LoadingScreen_Layout,_LoadingScreen_ContextLost,_LoadingScreen_ContextRecreated,_GeneratingScreen_Init,_DisconnectScreen_Init,_DisconnectScreen_Free,_DisconnectScreen_BuildMesh,_DisconnectScreen_ContextLost,_DisconnectScreen_ContextRecreated,_TouchScreen_Init,_TouchScreen_BuildMesh,_TouchScreen_ContextLost,_TouchScreen_ContextRecreated,_TextWidget_Free,_TextWidget_Reposition,_ButtonWidget_Free,_ButtonWidget_Reposition,_Widget_NullFunc,_Widget_CalcPosition,_HotbarWidget_Reposition,_TableWidget_Free,_TableWidget_Reposition,_InputWidget_Free,_InputWidget_Reposition,_PlayerListWidget_Free,_PlayerListWidget_Reposition,_TextGroupWidget_Free,_TextGroupWidget_Reposition,_SpecialInputWidget_Free,_SpecialInputWidget_Reposition
,_OnContextLost,_Blocks_AtlasChanged,_Physics_OnNewMapLoaded,_Adv_RenderBlock,_NormalBuilder_RenderBlock,_Camera_CheckThirdPerson,_Entities_ContextLost,_Entities_ContextRecreated,_Entities_ChatFontChanged,_LocalPlayer_CheckJumpVelocity,_OnTexturePackChanged,_OnTerrainAtlasChanged,_OnViewDistanceChanged,_OnContextLost_224,_OnContextRecreated,_HandleOnNewMap,_HandleOnNewMapLoaded,_HandleLowVRAMDetected,_Game_OnResize,_Game_Free,_Game_WarnFunc,_Entities_Tick,_GL_SetupVbPos3fTex2fCol4b_Range,_GL_SetupVbPos3fCol4b_Range,_OnFontChanged,_OnContextLost_611,_OnContextRecreated_612,_HeldBlockRenderer_ProjectionChanged,_HeldBlockRenderer_DoSwitchBlockAnim,_Http_CleanCacheTask
,_Http_FinishedAsync,_Http_UpdateProgress,_HandleFocusChanged,_InputHandler_CheckZoomFov,_MapRenderer_TerrainAtlasChanged,_MapRenderer_BlockDefinitionChanged,_MapRenderer_RecalcVisibility,_MapRenderer_DeleteChunks_,_MapRenderer_Refresh_,_PauseScreen_CheckHacksAllowed,_HotkeyListScreen_LoadEntries,_TexturePackScreen_LoadEntries,_LoadLevelScreen_LoadEntries,_OptionsGroupScreen_CheckHacksAllowed,_NostalgiaScreen_InitWidgets,_NostalgiaScreen_RecreateExtra,_MenuOptionsScreen_OnHacksChanged,_EnvSettingsScreen_InitWidgets,_HacksSettingsScreen_InitWidgets,_HacksSettingsScreen_CheckHacksAllowed,_NormalKeyBindingsScreen_Init,_ClassicOptionsScreen_InitWidgets,_ClassicOptionsScreen_RecreateExtra,_ClassicKeyBindingsScreen_Init,_ClassicHacksKeyBindingsScreen_Init,_HacksKeyBindingsScreen_Init,_OtherKeyBindingsScreen_Init,_MouseKeyBindingsScreen_Init,_GraphicsOptionsScreen_InitWidgets,_GuiOptionsScreen_InitWidgets
,_FontListScreen_LoadEntries,_MiscSettingsScreen_InitWidgets,_Models_ContextLost,_Models_ContextRecreated,_HumanModel_DrawArm,_SkeletonModel_DrawArm,_ZombieModel_DrawArm,_ChibiModel_DrawArm,_CorpseModel_Draw,_Model_NullFunc,_Particles_Tick,_OnContextLost_1156,_OnContextRecreated_1158,_OnContextLost_1194,_OnContextRecreated_1195,_Classic_Handshake,_Classic_Ping,_Classic_LevelInit,_Classic_LevelDataChunk,_Classic_LevelFinalise,_Classic_SetBlock,_Classic_AddEntity,_Classic_EntityTeleport,_Classic_RelPosAndOrientationUpdate,_Classic_RelPositionUpdate,_Classic_OrientationUpdate,_Classic_RemoveEntity,_Classic_Message,_Classic_Kick,_Classic_SetPermission
,_CPE_ExtInfo,_CPE_ExtEntry,_CPE_SetClickDistance,_CPE_CustomBlockLevel,_CPE_HoldThis,_CPE_SetTextHotkey,_CPE_ExtAddPlayerName,_CPE_ExtAddEntity,_CPE_ExtRemovePlayerName,_CPE_SetEnvCol,_CPE_MakeSelection,_CPE_RemoveSelection,_CPE_SetBlockPermission,_CPE_ChangeModel,_CPE_EnvSetMapAppearance,_CPE_EnvWeatherType,_CPE_HackControl,_CPE_ExtAddEntity2,_CPE_BulkBlockUpdate,_CPE_SetTextColor,_CPE_SetMapEnvUrl,_CPE_SetMapEnvProperty,_CPE_SetEntityProperty,_CPE_TwoWayPing,_CPE_SetInventoryOrder,_CPE_SetHotbar,_CPE_SetSpawnPoint,_CPE_VelocityControl,_BlockDefs_DefineBlock,_BlockDefs_UndefineBlock
,_BlockDefs_DefineBlockExt,_InventoryScreen_OnBlockChanged,_Selections_ContextLost,_Selections_ContextRecreated,_SPConnection_Tick,_SPConnection_SendChat,_MPConnection_Tick,_MPConnection_SendChat,_Animations_Tick,_OnPackChanged,_MenuInputWidget_RemakeTexture,_InputWidget_OnPressedEnter,_ChatInputWidget_RemakeTexture,_ChatInputWidget_OnPressedEnter,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12
,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12
,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12
,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12,b12
,b12,b12,b12];
var FUNCTION_TABLE_vid = [b13,_FirstPersonCamera_GetPosition,_ThirdPersonCamera_GetPosition,_NetPlayer_Tick,_LocalPlayer_Tick,_Screen_NullUpdate,_ListScreen_Render,_MenuScreen_Render,_EditHotkeyScreen_Render,_SaveLevelScreen_Render,_MenuScreen_Render2,_MenuOptionsScreen_Render,_TexIdsOverlay_Render,_TexPackOverlay_Update,_HUDScreen_Render,_ChatScreen_Render,_InventoryScreen_Render,_LoadingScreen_Render,_GeneratingScreen_Render,_DisconnectScreen_Update,_DisconnectScreen_Render,_TouchScreen_Render,_TextWidget_Render,_ButtonWidget_Render,_ScrollbarWidget_Render,_HotbarWidget_Render,_TableWidget_Render,_MenuInputWidget_Render,_ChatInputWidget_Render
,_PlayerListWidget_Render,_TextGroupWidget_Render,_SpecialInputWidget_Render,_HandleMouseWheel,_LoadingScreen_MapLoading,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13,b13
,b13,b13,b13,b13,b13];
var FUNCTION_TABLE_vidd = [b14,_NetPlayer_RenderModel,_LocalPlayer_RenderModel,_SPConnection_SendPosition,_MPConnection_SendPosition,b14,b14,b14];
var FUNCTION_TABLE_vii = [b15,_Camera_OnRawMouseMoved,_GpuInfoCommand_Execute,_HelpCommand_Execute,_RenderTypeCommand_Execute,_ResolutionCommand_Execute,_ModelCommand_Execute,_CuboidCommand_Execute,_TeleportCommand_Execute,_ClearDeniedCommand_Execute,_Menu_SwitchClassicOptions,_Menu_SwitchClassicGenLevel,_Menu_SwitchLoadLevel,_Menu_SwitchSaveLevel,_Menu_SwitchNostalgia,_Menu_SwitchOptions,_Menu_SwitchGenLevel,_Menu_SwitchTexPacks,_Menu_SwitchHotkeys,_Menu_SwitchMisc,_Menu_SwitchGui,_Menu_SwitchGfx,_Menu_SwitchKeysNormal,_Menu_SwitchHacks,_Menu_SwitchEnv,_MenuOptionsScreen_Bool,_MenuOptionsScreen_Input,_MenuOptionsScreen_Enum,_Menu_SwitchFont
,_TouchMore_Chat,_TouchMore_Speed,_TouchMore_Fly,_TouchMore_Menu,_TouchMore_Inv,_TouchMore_Screen,_TouchMore_Noclip,_TouchMore_Fog,_Hex_Range,_Hex_Default,_Int_Range,_Int_Default,_Seed_Range,_Seed_NoDefault,_Float_Range,_Float_Default,_Path_Range,_String_Range,_TextWidget_BuildMesh,_ButtonWidget_BuildMesh,_Physics_DoFalling,_Physics_HandleSapling,_Physics_HandleDirt,_Physics_HandleGrass,_Physics_HandleFlower,_Physics_HandleMushroom,_Physics_PlaceLava,_Physics_PlaceWater,_Physics_PlaceSponge,_Physics_DeleteSponge
,_Physics_ActivateWater,_Physics_ActivateLava,_Physics_HandleSlab,_Physics_HandleCobblestoneSlab,_Physics_HandleTnt,_OnEnvVariableChanged,_OnKeyPress,_OnTextChanged,_HandlePointerDown,_HandlePointerUp,_HandleInputUp,_MapRenderer_EnvVariableChanged,_ListScreen_MoveBackwards,_ListScreen_MoveForwards,_PauseScreen_Quit,_PauseScreen_Game,_HotkeyListScreen_EntryClick,_Menu_SwitchPause,_EditHotkeyScreen_BaseKey,_EditHotkeyScreen_Modifiers,_EditHotkeyScreen_LeaveOpen,_EditHotkeyScreen_SaveChanges,_EditHotkeyScreen_RemoveHotkey,_TexturePackScreen_EntryClick,_TexturePackScreen_FilterFiles,_SaveLevelScreen_Main,_SaveLevelScreen_Alt,_LoadLevelScreen_EntryClick,_LoadLevelScreen_FilterFiles,_GenLevelScreen_Flatgrass
,_GenLevelScreen_Notchy,_NostalgiaScreen_SwitchBack,_MenuOptionsScreen_OK,_MenuOptionsScreen_Default,_Menu_SwitchKeysHacks,_KeyBindingsScreen_OnBindingClick,_Menu_SwitchKeysClassic,_Menu_SwitchKeysClassicHacks,_Menu_SwitchKeysOther,_Menu_SwitchKeysMouse,_FontListScreen_EntryClick,_ClassicGenScreen_Small,_ClassicGenScreen_Medium,_ClassicGenScreen_Huge,_UrlWarningOverlay_OpenUrl,_UrlWarningOverlay_AppendUrl,_TexPackOverlay_ConfirmNoClick,_TexPackOverlay_YesClick,_TexPackOverlay_GoBackClick,_TexPackOverlay_NoClick,_ChatScreen_ColCodeChanged,_ChatScreen_TabEntryAdded,_ChatScreen_TabEntryChanged,_ChatScreen_TabEntryRemoved,_TouchScreen_ModeClick,_TouchScreen_MoreClick,_SPConnection_SendData,_MPConnection_SendData,_InputWidget_CopyFromClipboard,b15
,b15,b15,b15,b15,b15,b15,b15,b15,b15];
var FUNCTION_TABLE_viii = [b16,_NetPlayer_SetLocation,_LocalPlayer_SetLocation,_Adv_PreStretchTiles,_Builder_DefaultPreStretchTiles,_OnFileChanged,_OnFileChanged_223,_HandleTextureChanged,_OnFileChanged_610,_HandleInputDown,_ListScreen_UpdateEntry,_MenuOptionsScreen_GetDesc,_FontListScreen_UpdateEntry,_Models_TextureChanged,_HeadModel_GetTransform,_SittingModel_GetTransform,_Model_GetTransform,_OnFileChanged_1157,_ChatScreen_ChatReceived,_ChatScreen_GetStatus,_ChatScreen_GetBottomRight,_ChatScreen_GetChat,_ChatScreen_GetClientStatus,_OnFileChanged_1649,b16,b16,b16,b16,b16
,b16,b16,b16];
var FUNCTION_TABLE_viiii = [b17,_Png_Expand_RGB_16,_Png_Expand_RGB_8,_Png_Expand_GRAYSCALE_A_16,_Png_Expand_GRAYSCALE_A_8,_Png_Expand_RGB_A_16,_Png_Expand_RGB_A_8,_Png_Expand_GRAYSCALE_1,_Png_Expand_GRAYSCALE_2,_Png_Expand_GRAYSCALE_4,_Png_Expand_GRAYSCALE_8,_Png_Expand_GRAYSCALE_16,_Png_Expand_INDEXED_1,_Png_Expand_INDEXED_2,_Png_Expand_INDEXED_4,_Png_Expand_INDEXED_8,_HandleRawMouseMoved,_CuboidCommand_BlockChanged,_HeldBlockRenderer_BlockChanged,_HandlePointerMove,_OnBreakBlockEffect_Handler,b17,b17,b17,b17,b17,b17,b17,b17
,b17,b17,b17];
var FUNCTION_TABLE_viiiii = [b18,_SPConnection_SendBlock,_MPConnection_SendBlock,b18];
return { _Window_GotClipboardText: _Window_GotClipboardText, _Window_OnTextChanged: _Window_OnTextChanged, ___emscripten_environ_constructor: ___emscripten_environ_constructor, ___errno_location: ___errno_location, ___muldi3: ___muldi3, __get_daylight: __get_daylight, __get_timezone: __get_timezone, __get_tzname: __get_tzname, _bitshift64Lshr: _bitshift64Lshr, _emscripten_replace_memory: _emscripten_replace_memory, _free: _free, _htonl: _htonl, _htons: _htons, _i64Add: _i64Add, _i64Subtract: _i64Subtract, _llvm_bswap_i16: _llvm_bswap_i16, _llvm_bswap_i32: _llvm_bswap_i32, _main: _main, _malloc: _malloc, _memcpy: _memcpy, _memset: _memset, _ntohs: _ntohs, _realloc: _realloc, _sbrk: _sbrk, dynCall_di: dynCall_di, dynCall_i: dynCall_i, dynCall_id: dynCall_id, dynCall_ii: dynCall_ii, dynCall_iid: dynCall_iid, dynCall_iii: dynCall_iii, dynCall_iiii: dynCall_iiii, dynCall_iiiii: dynCall_iiiii, dynCall_iiiiiii: dynCall_iiiiiii, dynCall_iiiiiiii: dynCall_iiiiiiii, dynCall_v: dynCall_v, dynCall_vd: dynCall_vd, dynCall_vi: dynCall_vi, dynCall_vid: dynCall_vid, dynCall_vidd: dynCall_vidd, dynCall_vii: dynCall_vii, dynCall_viii: dynCall_viii, dynCall_viiii: dynCall_viiii, dynCall_viiiii: dynCall_viiiii, establishStackSpace: establishStackSpace, stackAlloc: stackAlloc, stackRestore: stackRestore, stackSave: stackSave };
})
// EMSCRIPTEN_END_ASM
(asmGlobalArg, asmLibraryArg, buffer);
var _Window_GotClipboardText = Module["_Window_GotClipboardText"] = asm["_Window_GotClipboardText"];
var _Window_OnTextChanged = Module["_Window_OnTextChanged"] = asm["_Window_OnTextChanged"];
var ___emscripten_environ_constructor = Module["___emscripten_environ_constructor"] = asm["___emscripten_environ_constructor"];
var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
var ___muldi3 = Module["___muldi3"] = asm["___muldi3"];
var __get_daylight = Module["__get_daylight"] = asm["__get_daylight"];
var __get_timezone = Module["__get_timezone"] = asm["__get_timezone"];
var __get_tzname = Module["__get_tzname"] = asm["__get_tzname"];
var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"];
var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"];
var _free = Module["_free"] = asm["_free"];
var _htonl = Module["_htonl"] = asm["_htonl"];
var _htons = Module["_htons"] = asm["_htons"];
var _i64Add = Module["_i64Add"] = asm["_i64Add"];
var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
var _llvm_bswap_i16 = Module["_llvm_bswap_i16"] = asm["_llvm_bswap_i16"];
var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"];
var _main = Module["_main"] = asm["_main"];
var _malloc = Module["_malloc"] = asm["_malloc"];
var _memcpy = Module["_memcpy"] = asm["_memcpy"];
var _memset = Module["_memset"] = asm["_memset"];
var _ntohs = Module["_ntohs"] = asm["_ntohs"];
var _realloc = Module["_realloc"] = asm["_realloc"];
var _sbrk = Module["_sbrk"] = asm["_sbrk"];
var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"];
var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"];
var stackRestore = Module["stackRestore"] = asm["stackRestore"];
var stackSave = Module["stackSave"] = asm["stackSave"];
var dynCall_di = Module["dynCall_di"] = asm["dynCall_di"];
var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"];
var dynCall_id = Module["dynCall_id"] = asm["dynCall_id"];
var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
var dynCall_iid = Module["dynCall_iid"] = asm["dynCall_iid"];
var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = asm["dynCall_iiiiiii"];
var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = asm["dynCall_iiiiiiii"];
var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"];
var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"];
var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"];
var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"];
var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"];
var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"];
var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"];
;
// === Auto-generated postamble setup entry stuff ===
Module['asm'] = asm;
Module["getMemory"] = getMemory;
Module["addRunDependency"] = addRunDependency;
Module["removeRunDependency"] = removeRunDependency;
Module["FS_createFolder"] = FS.createFolder;
Module["FS_createPath"] = FS.createPath;
Module["FS_createDataFile"] = FS.createDataFile;
Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
Module["FS_createLazyFile"] = FS.createLazyFile;
Module["FS_createLink"] = FS.createLink;
Module["FS_createDevice"] = FS.createDevice;
Module["FS_unlink"] = FS.unlink;
if (memoryInitializer) {
if (!isDataURI(memoryInitializer)) {
memoryInitializer = locateFile(memoryInitializer);
}
if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
var data = Module['readBinary'](memoryInitializer);
HEAPU8.set(data, GLOBAL_BASE);
} else {
addRunDependency('memory initializer');
var applyMemoryInitializer = function(data) {
if (data.byteLength) data = new Uint8Array(data);
HEAPU8.set(data, GLOBAL_BASE);
// Delete the typed array that contains the large blob of the memory initializer request response so that
// we won't keep unnecessary memory lying around. However, keep the XHR object itself alive so that e.g.
// its .status field can still be accessed later.
if (Module['memoryInitializerRequest']) delete Module['memoryInitializerRequest'].response;
removeRunDependency('memory initializer');
}
var doBrowserLoad = function() {
Module['readAsync'](memoryInitializer, applyMemoryInitializer, function() {
throw 'could not load memory initializer ' + memoryInitializer;
});
}
var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer);
if (memoryInitializerBytes) {
applyMemoryInitializer(memoryInitializerBytes.buffer);
} else
if (Module['memoryInitializerRequest']) {
// a network request has already been created, just use that
var useRequest = function() {
var request = Module['memoryInitializerRequest'];
var response = request.response;
if (request.status !== 200 && request.status !== 0) {
var data = tryParseAsDataURI(Module['memoryInitializerRequestURL']);
if (data) {
response = data.buffer;
} else {
// If you see this warning, the issue may be that you are using locateFile and defining it in JS. That
// means that the HTML file doesn't know about it, and when it tries to create the mem init request early, does it to the wrong place.
// Look in your browser's devtools network console to see what's going on.
console.warn('a problem seems to have happened with Module.memoryInitializerRequest, status: ' + request.status + ', retrying ' + memoryInitializer);
doBrowserLoad();
return;
}
}
applyMemoryInitializer(response);
}
if (Module['memoryInitializerRequest'].response) {
setTimeout(useRequest, 0); // it's already here; but, apply it asynchronously
} else {
Module['memoryInitializerRequest'].addEventListener('load', useRequest); // wait for it
}
} else {
// fetch it from the network ourselves
doBrowserLoad();
}
}
}
/**
* @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 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
}
Module['callMain'] = function callMain(args) {
args = args || [];
ensureInitRuntime();
var argc = args.length+1;
var argv = stackAlloc((argc + 1) * 4);
HEAP32[argv >> 2] = allocateUTF8OnStack(Module['thisProgram']);
for (var i = 1; i < argc; i++) {
HEAP32[(argv >> 2) + i] = allocateUTF8OnStack(args[i - 1]);
}
HEAP32[(argv >> 2) + argc] = 0;
try {
var ret = Module['_main'](argc, argv, 0);
// if we're not running an evented main loop, it's time to exit
exit(ret, /* implicit = */ true);
}
catch(e) {
if (e instanceof ExitStatus) {
// exit() throws this once it's done to make sure execution
// has been stopped completely
return;
} else if (e == 'SimulateInfiniteLoop') {
// running an evented main loop, don't immediately exit
Module['noExitRuntime'] = true;
return;
} else {
var toLog = e;
if (e && typeof e === 'object' && e.stack) {
toLog = [e, e.stack];
}
err('exception thrown: ' + toLog);
Module['quit'](1, e);
}
} finally {
calledMain = true;
}
}
/** @type {function(Array=)} */
function run(args) {
args = args || Module['arguments'];
if (runDependencies > 0) {
return;
}
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 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']();
if (Module['_main'] && shouldRunNow) Module['callMain'](args);
postRun();
}
if (Module['setStatus']) {
Module['setStatus']('Running...');
setTimeout(function() {
setTimeout(function() {
Module['setStatus']('');
}, 1);
doRun();
}, 1);
} else {
doRun();
}
}
Module['run'] = run;
function exit(status, implicit) {
// 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']) {
} else {
ABORT = true;
EXITSTATUS = status;
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;
throw 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';
}
Module['abort'] = abort;
if (Module['preInit']) {
if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
while (Module['preInit'].length > 0) {
Module['preInit'].pop()();
}
}
// shouldRunNow refers to calling main(), not run().
var shouldRunNow = true;
if (Module['noInitialRun']) {
shouldRunNow = false;
}
Module["noExitRuntime"] = true;
run();
// {{MODULE_ADDITIONS}}