freeremote-client/static/libopus-encoder.js
2025-04-11 21:38:56 -05:00

34699 lines
1.0 MiB

// 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)
(function (root, factory, globalExport) {
var lib, env;
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['require'], function (req) {
lib = factory(root, req);
return lib;
});
} else if (typeof module === 'object' && module.exports) {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
// use process.env (if available) for reading Opus environment settings:
env = typeof process !== 'undefined' && process && process.env? process.env : root;
lib = factory(env, module.require);
module.exports = lib;
} else {
// Browser globals
lib = factory(root);
root[globalExport] = lib;
}
}(typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : this, function (global, require) {
'use strict';
var Module = {};
Module['isReady'] = false;
Module['onready'] = null;
Module['onRuntimeInitialized'] = function(){
Module['isReady'] = true;
if(Module['onready']) setTimeout(Module['onready'], 0);
};
if(global && global.OPUS_SCRIPT_LOCATION){
Module['locateFile'] = function(fileName){
var path = global.OPUS_SCRIPT_LOCATION || '';
if(path[fileName]) return path[fileName];
path += path && !/\/$/.test(path)? '/' : '';
return path + fileName;
};
}
// 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];
}
}
var arguments_ = [];
var thisProgram = './this.program';
var quit_ = function(status, toThrow) {
throw toThrow;
};
// 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';
// N.b. Electron.js environment is simultaneously a NODE-environment, but
// also a web environment.
ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';
ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
// `/` should be present at the end if `scriptDirectory` is not empty
var scriptDirectory = '';
function locateFile(path) {
if (Module['locateFile']) {
return Module['locateFile'](path, scriptDirectory);
}
return scriptDirectory + path;
}
// Hooks that are implemented differently in different runtime environments.
var read_,
readAsync,
readBinary,
setWindowTitle;
var nodeFS;
var nodePath;
if (ENVIRONMENT_IS_NODE) {
if (ENVIRONMENT_IS_WORKER) {
scriptDirectory = require('path').dirname(scriptDirectory) + '/';
} else {
scriptDirectory = __dirname + '/';
}
// include: node_shell_read.js
read_ = function shell_read(filename, binary) {
var ret = tryParseAsDataURI(filename);
if (ret) {
return binary ? ret : ret.toString();
}
if (!nodeFS) nodeFS = require('fs');
if (!nodePath) nodePath = require('path');
filename = nodePath['normalize'](filename);
return nodeFS['readFileSync'](filename, binary ? null : 'utf8');
};
readBinary = function readBinary(filename) {
var ret = read_(filename, true);
if (!ret.buffer) {
ret = new Uint8Array(ret);
}
assert(ret.buffer);
return ret;
};
// end include: node_shell_read.js
if (process['argv'].length > 1) {
thisProgram = process['argv'][1].replace(/\\/g, '/');
}
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;
}
});
process['on']('unhandledRejection', abort);
quit_ = function(status) {
process['exit'](status);
};
Module['inspect'] = function () { return '[Emscripten Module object]'; };
} else
if (ENVIRONMENT_IS_SHELL) {
if (typeof read != 'undefined') {
read_ = function shell_read(f) {
var data = tryParseAsDataURI(f);
if (data) {
return intArrayToString(data);
}
return read(f);
};
}
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') {
arguments_ = scriptArgs;
} else if (typeof arguments != 'undefined') {
arguments_ = arguments;
}
if (typeof quit === 'function') {
quit_ = function(status) {
quit(status);
};
}
if (typeof print !== 'undefined') {
// Prefer to use print/printErr where they exist, as they usually work better.
if (typeof console === 'undefined') console = /** @type{!Console} */({});
console.log = /** @type{!function(this:Console, ...*): undefined} */ (print);
console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr !== 'undefined' ? printErr : print);
}
} else
// Note that this includes Node.js workers when relevant (pthreads is enabled).
// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and
// ENVIRONMENT_IS_NODE.
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 (typeof document !== 'undefined' && 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 = '';
}
// Differentiate the Web Worker from the Node Worker case, as reading must
// be done differently.
{
// include: web_or_worker_shell_read.js
read_ = function(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) {
readBinary = function(url) {
try {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.responseType = 'arraybuffer';
xhr.send(null);
return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response));
} catch (err) {
var data = tryParseAsDataURI(url);
if (data) {
return data;
}
throw err;
}
};
}
readAsync = function(url, onload, onerror) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
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);
};
// end include: web_or_worker_shell_read.js
}
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.
var out = Module['print'] || console.log.bind(console);
var err = Module['printErr'] || console.warn.bind(console);
// 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 = null;
// Emit code to handle expected values on the Module object. This applies Module.x
// to the proper local x. This has two benefits: first, we only emit it if it is
// expected to arrive, and second, by using a local everywhere else that can be
// minified.
if (Module['arguments']) arguments_ = Module['arguments'];
if (Module['thisProgram']) thisProgram = Module['thisProgram'];
if (Module['quit']) quit_ = Module['quit'];
// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message
var STACK_ALIGN = 16;
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 = Number(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);
}
}
// include: runtime_functions.js
// Wraps a JS function as a wasm function with a given signature.
function convertJsFunctionToWasm(func, sig) {
return func;
}
var freeTableIndexes = [];
// Weak map of functions in the table to their indexes, created on first use.
var functionsInTableMap;
function getEmptyTableSlot() {
// Reuse a free index if there is one, otherwise grow.
if (freeTableIndexes.length) {
return freeTableIndexes.pop();
}
// Grow the table
try {
wasmTable.grow(1);
} catch (err) {
if (!(err instanceof RangeError)) {
throw err;
}
throw 'Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.';
}
return wasmTable.length - 1;
}
// Add a wasm function to the table.
function addFunctionWasm(func, sig) {
// Check if the function is already in the table, to ensure each function
// gets a unique index. First, create the map if this is the first use.
if (!functionsInTableMap) {
functionsInTableMap = new WeakMap();
for (var i = 0; i < wasmTable.length; i++) {
var item = wasmTable.get(i);
// Ignore null values.
if (item) {
functionsInTableMap.set(item, i);
}
}
}
if (functionsInTableMap.has(func)) {
return functionsInTableMap.get(func);
}
// It's not in the table, add it now.
var ret = getEmptyTableSlot();
// Set the new value.
try {
// Attempting to call this with JS function will cause of table.set() to fail
wasmTable.set(ret, func);
} catch (err) {
if (!(err instanceof TypeError)) {
throw err;
}
var wrapped = convertJsFunctionToWasm(func, sig);
wasmTable.set(ret, wrapped);
}
functionsInTableMap.set(func, ret);
return ret;
}
function removeFunction(index) {
functionsInTableMap.delete(wasmTable.get(index));
freeTableIndexes.push(index);
}
// 'sig' parameter is required for the llvm backend but only when func is not
// already a WebAssembly function.
function addFunction(func, sig) {
return addFunctionWasm(func, sig);
}
// end include: runtime_functions.js
// include: runtime_debug.js
// end include: runtime_debug.js
function makeBigInt(low, high, unsigned) {
return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));
}
var tempRet0 = 0;
var setTempRet0 = function(value) {
tempRet0 = value;
};
var getTempRet0 = function() {
return tempRet0;
};
// === 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
var wasmBinary;
if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];
var noExitRuntime = Module['noExitRuntime'] || true;
// include: wasm2js.js
// wasm2js.js - enough of a polyfill for the WebAssembly object so that we can load
// wasm2js code that way.
// Emit "var WebAssembly" if definitely using wasm2js. Otherwise, in MAYBE_WASM2JS
// mode, we can't use a "var" since it would prevent normal wasm from working.
/** @suppress{duplicate, const} */
var
WebAssembly = {
// Note that we do not use closure quoting (this['buffer'], etc.) on these
// functions, as they are just meant for internal use. In other words, this is
// not a fully general polyfill.
Memory: function(opts) {
this.buffer = new ArrayBuffer(opts['initial'] * 65536);
},
Module: function(binary) {
// TODO: use the binary and info somehow - right now the wasm2js output is embedded in
// the main JS
},
Instance: function(module, info) {
// TODO: use the module and info somehow - right now the wasm2js output is embedded in
// the main JS
// This will be replaced by the actual wasm2js code.
this.exports = (
// EMSCRIPTEN_START_ASM
function instantiate(asmLibraryArg) {
function Table(ret) {
// grow method not included; table is not growable
ret.set = function(i, func) {
this[i] = func;
};
ret.get = function(i) {
return this[i];
};
return ret;
}
var bufferView;
var base64ReverseLookup = new Uint8Array(123/*'z'+1*/);
for (var i = 25; i >= 0; --i) {
base64ReverseLookup[48+i] = 52+i; // '0-9'
base64ReverseLookup[65+i] = i; // 'A-Z'
base64ReverseLookup[97+i] = 26+i; // 'a-z'
}
base64ReverseLookup[43] = 62; // '+'
base64ReverseLookup[47] = 63; // '/'
/** @noinline Inlining this function would mean expanding the base64 string 4x times in the source code, which Closure seems to be happy to do. */
function base64DecodeToExistingUint8Array(uint8Array, offset, b64) {
var b1, b2, i = 0, j = offset, bLength = b64.length, end = offset + (bLength*3>>2) - (b64[bLength-2] == '=') - (b64[bLength-1] == '=');
for (; i < bLength; i += 4) {
b1 = base64ReverseLookup[b64.charCodeAt(i+1)];
b2 = base64ReverseLookup[b64.charCodeAt(i+2)];
uint8Array[j++] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4;
if (j < end) uint8Array[j++] = b1 << 4 | b2 >> 2;
if (j < end) uint8Array[j++] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i+3)];
}
}
function initActiveSegments(imports) {
base64DecodeToExistingUint8Array(bufferView, 1025, "QAAAbCIAAEIPAAASBgAATQIAANs=");
base64DecodeToExistingUint8Array(bufferView, 1056, "7QAAAJkAAABJAAAAHgAAAAwAAAAH");
base64DecodeToExistingUint8Array(bufferView, 1089, "QAAAk10AAL1wAADteQAAsn0AACR/AABIzQAALSsgICAwWDB4AChudWxsKQAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAAQAJCwsAAAkGCwAACwAGEQAAABEREQ==");
base64DecodeToExistingUint8Array(bufferView, 1217, "CwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAAL");
base64DecodeToExistingUint8Array(bufferView, 1275, "DA==");
base64DecodeToExistingUint8Array(bufferView, 1287, "DAAAAAAMAAAAAAkMAAAAAAAMAAAM");
base64DecodeToExistingUint8Array(bufferView, 1333, "Dg==");
base64DecodeToExistingUint8Array(bufferView, 1345, "DQAAAAQNAAAAAAkOAAAAAAAOAAAO");
base64DecodeToExistingUint8Array(bufferView, 1391, "EA==");
base64DecodeToExistingUint8Array(bufferView, 1403, "DwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhIS");
base64DecodeToExistingUint8Array(bufferView, 1458, "EgAAABISEgAAAAAAAAk=");
base64DecodeToExistingUint8Array(bufferView, 1507, "Cw==");
base64DecodeToExistingUint8Array(bufferView, 1519, "CgAAAAAKAAAAAAkLAAAAAAALAAAL");
base64DecodeToExistingUint8Array(bufferView, 1565, "DA==");
base64DecodeToExistingUint8Array(bufferView, 1577, "DAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGRmF0YWwgKGludGVybmFsKSBlcnJvciBpbiAlcywgbGluZSAlZDogJXMKAGFzc2VydGlvbiBmYWlsZWQ6IDAAY2VsdC9jZWx0LmMAAAAAAAAAAJ0+AEBePgDABD4AgO0+AECJPgAAAAAAwEw/AADNPQ==");
base64DecodeToExistingUint8Array(bufferView, 1745, "/wD/AP8A/wD/AP4BAAH/AP4A/QIAAf8A/gD9AwAB/2Fzc2VydGlvbiBmYWlsZWQ6IE1BWF9GUkFNRV9MRU5HVEggPj0gcHNFbmNDLT5mcmFtZV9sZW5ndGgAc2lsay9WQUQuYwBhc3NlcnRpb24gZmFpbGVkOiBwc0VuY0MtPmZyYW1lX2xlbmd0aCA9PSA4ICogc2lsa19SU0hJRlQoIHBzRW5jQy0+ZnJhbWVfbGVuZ3RoLCAzICkAAAAAAAAwdQAAcBcAACDR//8g0f//YXNzZXJ0aW9uIGZhaWxlZDogZW5jQ29udHJvbCAhPSBOVUxMAHNpbGsvY2hlY2tfY29udHJvbF9pbnB1dC5jAGFzc2VydGlvbiBmYWlsZWQ6IDA=");
base64DecodeToExistingUint8Array(bufferView, 2048, "/fr06dS2loN4bmJVSDwxKCAZEw8NCwkIBwYFBAMCAQDS0M7Lx8G3qI5oSjQlGxQOCgYEAg==");
base64DecodeToExistingUint8Array(bufferView, 2112, "38m3p5iKfG9iWE9GPjgyLCcjHxsYFRIQDgwKCAYEAwIBALywm4p3YUMrGgoApXdQPS8jGxQOCQQAcT8AAAAAAAwjPFNshJ20zuQPIDdNZX2Xr8nhEypCWXKJorjR5gwZMkhheJOsyN8aLEVacoeftM3hDRY1UGqCnLTN5A8ZLEBac46oxN4TGD5SZHiRqL7WFh8yT2d4l6rL4xUdLUFqfJarxOAeMUtheY6lutHlExk0Rl10j6bA2xoiPkthdpGnwtkZIThGW3GPpcTfFSIzSGF1kavE3hQdMkNadZCoxd0WHzBCX3WSqMTeGCEzTXSGnrTI4BUcRldqfJWqwtkaITVAU3WYrczhGyJBX2yBm67S4RQaSGNxg5qwyNsiKz1OXXKbsc3lFx02YXyKo7PR5R4mOFl2gZ6yyOcVHTE/VW+Oo8HeGzBNZ4Wes8TX6B0vSmN8l7DG3O0hKj1MXXmbrs/hHTVXcIiaqrzQ4xgeNFSDlqa6y+UlMEBUaHacscnmUQsKCQoJCgnvCO8ICgn8CBcJ7whICxQKWgk/CQoJ4gjiCOII4giSCLcJJAkkCQoJCgkKCSQJJAk/CTIJkAzOCiQJJAkKCeIIrQifCNUIkgicCaoJPwlaCVoJWglaCT8JZwkKCZcN8AtPCJ8I4gjiCOII7wgKCdUI0gxFDBQKWgnHCK0InwiSCJIIQggAEAUPrQg8CjwKZwkKCVoJPwkaCGoMrAw/Ca0I+QmCCSQJCgl3CK0ICg2gDaYKkgjVCJwJMgk/CZ8INQgyCXQJFwk/CVoJdAl0CXQJnAk/CcMOLQ6CCd8JPwniCOII/AifCAAItgyZDJkKHguPCRcJ/Aj8COIITwi/DOQMwQr2Co8J1QjVCMcITwg1CDkLpQtJCj8JZwkyCZIIxwjHCEIImQx9DEkKFAriCIUIxwitCK0IXQhqDO4MtApnCeII4gjiCO8IkghCCEUMyAycCQ0I7wjECT8JtwmCCYUIsw3SDAoJjApXCqoJPwlaCSQJTwhfDc8N3gvwC/wIngetCOII4gjiCEwNJg0nCH8KOQsyCXQJ4giqCewJsA6gDZ4HZApRC98JWgk/CZwJ1QjUC8gMtApIC7QKaghPCO8IugjHCG8OSQ7pB7EHZAqMChQKxAkXCT8JhwxVDTIJGghIC0gLJAm3CccIdwgKDSYNHgvcChcJagjiCO8IQggNCBcJ/AiFCHcIhQg/CUkKjAqMCvkJZwmCCa0I1QitCK0IJAl0CS8KjAreC6wM9gpIC6oJGgj8CAoJMglMCa0IaghPCO8IxAnpCukKPAoUCj8JXA6BDroILgeFCMEKpgpxCtEJnwjpClgMpgr5CR4L0QmFCFoJrQiFCNSylIFsYFVST009Ozk4MzEwLSopKCYkIh8eFQwKAwEA//X07Onh2cu+sK+hlYh9cmZbUUc8NCsjHBQTEgwLBQCzioyUl5WZl6N0Q1I7XEhkWVw=");
base64DecodeToExistingUint8Array(bufferView, 3232, "EAAAAABjQiQkIiQiIiIiU0UkNCJ0ZkZERLBmREQiQVVEVCR0jZiLqoS7uNiJhPmouYtoZmRERLLaubmq9Ni7u6r0u7vbimebuLmJdLebmIiE2bi4qqTZq5uL9Km4uaqk2N/aitaPvNqo9I2Im6qoitzbi6TbytiJqLr2uYt0udu5imRkhmRmIkREZESoy93aqKeaiGhGpPariYuJm9rbi//+/e4OAwIBAP/+/NojAwIBAP/++tA7BAIBAP/+9sJHCgIBAP/87LdSCAIBAP/867RaEQIBAP/44KthHgQBAP/+7K1fJQcB");
base64DecodeToExistingUint8Array(bufferView, 3472, "////gwaR///////sXQ9g///////CUxlH3f////+iSSJCov///9J+SSs5rf///8l9RzA6gv///6ZuSTk+aNL///t7QTdEZKv/AAAAAAAAAAD6AAMABgADAAMAAwAEAAMAAwADAM0BAAAgAAoAFC5kAYAIAADACQAAQAwAAIAMAACgDAAAQA0AAJANAADgDQAABxcmNkVVZHSDk6KywdDf7w0ZKTdFU2Jwf46dq7vL3OwPFSIzPU5can6ImKe5zeHwChUkMj9PX25+jZ2tvc3d7REUJTM7Tllre4aWpLjN4PAKDyAzQ1FgcIGOnq29zNzsCBUlM0FPYnF+ipuos8DR2gwPIjc/TldsdoOUp7nL2+wQEyAkOE9bbHaImqu6zNztCxwrOkpZaXiHlqW0xNPi8QYQIS48S1xre4mcqbnH1uELEx4sOUpZaXmHmKm6ytrqDBMdLjlHWGR4hJSltsfY6REXIy44TVxqe4aYp7nM3u0OES01P0tZa3OEl6u8zt3wCRAdKDhHWGd3iZqrvc3e7RATJDA5TFdpdoSWp7nK2uwMER02R1FeaH6IlaS2yd3tDxwvPk9hc4GOm6i0wtDf7ggOHi0+Tl5vf4+fr8DP3+8RHjE+T1xrd4SRoK6+zNzrDhMkLT1MW2x5ipqsvc3e7gwSHy08TFtre4qaq7vM3ewNER8rNUZTZ3KDlae5y9ztERYjKjpOXW59i5uqvM7g8AgPIjJDU2Nzg5KissHR4O8NEClCSVZfb4CJlqO3zuHxERklND9LXGZ3hJCgr7/U5xMfMUFTZHWFk6Guu8jV4/ISHzREWGd1foqVo7HAz9/vEB0vPUxaaneFk6GwwdHg8A8VIzI9SVZhbneBja/G2u1JDm0LbQttC20LbQttC20LbQttC20LbQuTC5MLbQseC5AMDQycC/AL8AvCC8ILwguTC5MLwgucC0gLHgseC6YKUA+uD6ULhwyHDHYL8AseCzIMrAxtCx4LPAr5CdwKbQu8DX0MwgsfDMsLSAttC20LbQttC0gLSAtIC0gLSAvBCr4TvhN2C/UNOQ3wCw0M6QpYDFgMnAseC9EJ7AnBCkgLTBE1EIwKwQqcC8ILbQseC6ULywttC20LbQttC0gLpgokDssLnAvwC/ALOQv2CvALkAznC6UL2wzbDKUL7gyvC2sUlhPsCQoNxg05DX0MFgwwDaULjApXCn8K6QoeC3EK2RM2FAcSTBGcCVEL5wuHDGEMfwq0CkgLHgvpCh4LjAoyDEgLkwttC20LbQttC5MLkwuTC5MLbQttC5MLkwuTC2oQhwylCx8MwgtIC0gLbQucCzkLZAvLC5wLwgt9DDkLsA6wDqwMHwylC0gLbQtIC5wLdgvpCukKHgtIC0gLZAoOD64PhwwyDKwMdgvnC5MLkwsNDB4L6QrpCukK6QoUCgUP8A8dDbwNFgy0CsILdgsyDA0MHgseC1cKVwoeC/YKGxQeE5kMBQ9xDWEMUQtVDXsNjAoUCnEKtAoeC/YKwQoNEM0O2wxYDG0LSAtIC20L6Qq0CukKtArpCh4LSAv2CtkTvhPnC9kNrAzwCw0MgAsfDFELtAq0CrQKHgvpCjwK1RDVECwL3wmHDDANMA0DDAMMMA3wCx4LVwoUCqYKwQrwC2QL9gpIC7QKfwpRCx8MTgxODJAMYQzwC8ILkwseCxcRKg9tC0gLHgtICx4LHgtIC0gLSAseC0gLbQtICx4LpQtkC2QLpQulC/ALMgyQDE4M8AvCC5wLnAucC20LtAqFEDUQ7gwTDW0LkwtIC6ULpQseC+kKtAoeCx4LHgvpCvAPrg8fDMILbQttC20LSAttC20LHgseCx4L6QpIC9wKBxLfEWEMcQ2HDKULUQveCzIMtAp/Cn8Kfwq0CukKjAo1EK0QzQ5JDqYK3ApIC0gLwgucC20LHgt/Cn8K6QpIC3cQ4g3BCh4LHgtIC0gLSAttC20LSAttC20LbQuTC0gLNhQ5E9UIaA3NDpcNEw0eC+4Mlw1ODFELnAm3CcEKbQt7DWUOMgx9DB0N5wuHDIcMpQuQDA0MbQttC38K7AmCCaULwgvpCukKtArpCh4LnAvwCx8MTgxODE4MHwzCC8ILgAs5C38KpgrcCsILaA3ZDR0NrAzwC8ILkwttC0gLHgvLC4ALUQvCC8ILnAvLCx8M8AvwC8ILSAseC20LbQtIC1APfw/CC30MHQ2QDNsM2wyXDXgOcQ2mCoUInAkUCi8K4czJuLevnpqZh3dzcW5tY2JfT0Q0MjAtKyAfGxIKAwD/++vm1MnEtqemo5eKfG5oWk5MRkU5LSIYFQsGBQQDAK+UoLCyra6ksa7EtsbAtkQ+QjxIdVVadoiXjqCOmw==");
base64DecodeToExistingUint8Array(bufferView, 5255, "AWRmZkREJCJgpGueubS5i2ZAQiQiIgABINCLjb+YuZtoYKtopmZmZoQBAAAAABAQAFBtTmu5i2dl0NSNi62Ze2ckAAAAAAAAATAAAAAAAAAgRId7d3dnRWJEZ3h2dmZHYoaInbi2mYuG0Kj4S72PeWsgMSIiIgARAtLri3u5iWmGYodotmS3q4ZkRkRGQkIig0CmZkQkAgEAhqZmRCIiQoTU9p6La2tXZmTbfXqJdmeEcoeJaatqMiKk1o2PuZd5Z8AiAAAAAAAB0G1Ku4b5n4lmbpp2V2V3ZQACACQkQkQjYKRmZCQAAiGniq5mZFQCAmRreHckxRgA//799AwDAgEA//784CYDAgEA//770TkEAgEA//70w0UEAgEA//vouFQHAgEA//7wulYOAgEA//7vslseBQEA//jjsWQTAgE=");
base64DecodeToExistingUint8Array(bufferView, 5584, "////nASa///////jZg9c///////VUxhI7P////+WTCE/1v///755TSs3uf////WJRys7i/////+DQjJCa8L//6Z0TDc1ff//AAAAAAAAAABkAAMAKAADAAMAAwAFAA4ADgAKAAsAAwAIAAkABwADAFsBAAAgABAAZiarASAOAAAgEAAAIBQAAGAUAACAFAAAgBUAANAVAAAgFgAAAAAAAFzKvti235rinOZ47Hr0zPw0A4YLiBNkGWYdSiBCJ6Q1+ff29fTq0srJyMWuUjs4NzYuFgwLCgkHAEAAy5YA18OmfW5SAAAAAKsWAACuFgAAeACAQADongoA5gDz3cC1AGQA8AAgAGQAzTwAMAAgq1UAwIBAAM2aZjMA1auAVSsA4MCggGBAIABkKBAHAwEAAApn8g5WzeQdCmfyDnVSggxZmgQZdVKCDEYRMQrtA2IURhExCtoC1wf5xq0P2gLXByK2UgXa+qQKIrZSBQAAAABG8y4eK+NLDh9mgBgcLB0K2mFIEu2c9AbsMBML45ClBO2kHQIK32sDAAAAAAAAAAAqr9XJz/9AABEAY/9hARD+owAnK71W2f8GAFsAVv+6ABcAgPzAGNhN7f/c/2YAp//o/0gBSfwICiU+AAAAAAAAh8c9yUAAgACG/yQANgEA/UgCMyRFRQwAgAASAHL/IAGL/5/8GxB7OAAAAAAAAAAAaAINyPb/JwA6ANL/rP94ALgAxf7j/QQFBBVAIwAAAADmPsbE8/8AABQAGgAFAOH/1f/8/0EAWgAHAGP/CP/U/1ECLwY0CscMAAAAAAAAAADkVwXFAwDy/+z/8f8CABkAJQAZAPD/uf+V/7H/MgAkAW8C1gMIBbgFAAAAAAAAAACUa2fEEQAMAAgAAQD2/+r/4v/g/+r/AwAsAGQAqADzAD0BfQGtAccBE/WV5lkS8ykfBlQg");
base64DecodeToExistingUint8Array(bufferView, 6304, "vQCo/WkCZ3d1AGH/0vsIdDQA3QCo9nRu/P8RAury5WbQ//YCjPClXbD/iQN17wZTnf/MA4LvZkeV/8cDi/AnO5n/gANh8q4upf8FA8/0XiK5/2MCofeYFtL/qQGh+rQLYXNzZXJ0aW9uIGZhaWxlZDogMABzaWxrL3Jlc2FtcGxlcl9wcml2YXRlX2Rvd25fRklSLmMAYXNzZXJ0aW9uIGZhaWxlZDogMABzaWxrL3Jlc2FtcGxlci5jAAYAAwAHAwABCgACBhIKDAQAAgAAAAkEBwQAAwwHB2Fzc2VydGlvbiBmYWlsZWQ6IGluTGVuID49IFMtPkZzX2luX2tIegBhc3NlcnRpb24gZmFpbGVkOiBTLT5pbnB1dERlbGF5IDw9IFMtPkZzX2luX2tIegBhc3NlcnRpb24gZmFpbGVkOiBmc19rSHogPT0gOCB8fCBmc19rSHogPT0gMTIgfHwgZnNfa0h6ID09IDE2AHNpbGsvY29udHJvbF9jb2RlYy5jAGFzc2VydGlvbiBmYWlsZWQ6IHBzRW5jLT5zQ21uLm5iX3N1YmZyID09IDIgfHwgcHNFbmMtPnNDbW4ubmJfc3ViZnIgPT0gNABhc3NlcnRpb24gZmFpbGVkOiAoIHBzRW5jLT5zQ21uLnN1YmZyX2xlbmd0aCAqIHBzRW5jLT5zQ21uLm5iX3N1YmZyICkgPT0gcHNFbmMtPnNDbW4uZnJhbWVfbGVuZ3RoAGFzc2VydGlvbiBmYWlsZWQ6IENvbXBsZXhpdHkgPj0gMCAmJiBDb21wbGV4aXR5IDw9IDEwAGFzc2VydGlvbiBmYWlsZWQ6IHBzRW5jQy0+cGl0Y2hFc3RpbWF0aW9uTFBDT3JkZXIgPD0gTUFYX0ZJTkRfUElUQ0hfTFBDX09SREVSAGFzc2VydGlvbiBmYWlsZWQ6IF9mdD4xAGNlbHQvZW50ZW5jLmMAYXNzZXJ0aW9uIGZhaWxlZDogX2JpdHM+MABhc3NlcnRpb24gZmFpbGVkOiBfbmJpdHM8PUVDX1NZTV9CSVRTAGFzc2VydGlvbiBmYWlsZWQ6IF90aGlzLT5vZmZzK190aGlzLT5lbmRfb2Zmczw9X3NpemUAYXNzZXJ0aW9uIGZhaWxlZDogbiA8IDI1AHNpbGsvc3RlcmVvX2VuY29kZV9wcmVkLmMAYXNzZXJ0aW9uIGZhaWxlZDogaXhbIG4gXVsgMCBdIDwgMwBhc3NlcnRpb24gZmFpbGVkOiBpeFsgbiBdWyAxIF0gPCBTVEVSRU9fUVVBTlRfU1VCX1NURVBTAAAAAADgcCwPAwIBAP7twIRGFwQA//zimz0LAg==");
base64DecodeToExistingUint8Array(bufferView, 7328, "+vXqy0cyKiYjIR8dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQCzYwBHOCseFQwG");
base64DecodeToExistingUint8Array(bufferView, 7392, "x6WQfG1gVEc9MyogFw8IAPHh08e7r6SZjoR7cmlgWFBIQDkyLCYhHRgUEAwJBQIAzBwAAOAcAADwHAAAD4OKipubra0=");
base64DecodeToExistingUint8Array(bufferView, 7472, "RV1zdoOKjYqWlpuWm6CmoIOAho2NjZGRkZabm5uboKCgoKamra22wLbAwMDNwM3gHB0AADAdAABAHQAAAAAAAAQGGAcFAAACAAAMHCkN/PcPKhkOAf4+Kff2JUH8A/oEQgf4EA4m/SEAAAAAAAAAAA0WJxcM/yRAG/r5CjcrEQEBCAEBBvVKNff0N0z0CP0DXRv8Gic7A/gCAE0LCfgWLPoHKAkaAwn5FGX5BAP4KhoA8SFEAhf+Ny7+DwP/FRAp+hs9JwX1KlgEAf48QQb8//tJOAH3E14d9wAMYwYECO1mLvMDAg0DAgnrVEju9S5o6ggSJjAXAPBGU+sLBfV1Fvj6F3X0AwP4XxwE9g9NPPH/BHwC/AMmVBjnAg0qDR8V/Dgu//8jT/MT+UFY9/IUBFEx4xQASwPvBfcsXPgB/RZFH/pfKfQFJ0MQ/AEA+ng33PMsegToUQULAwcCAAkKWHAdAACgHQAA8B0AAC4CWlddW1Ji");
base64DecodeToExistingUint8Array(bufferView, 7856, "bXh2DHFzdXdjO1dvP29wUH58fXyBeX4XhH9/f35/eoWChmV2d5F+Vnx4e3eqrWttnB4AALAeAADAHgAACBAgYXNzZXJ0aW9uIGZhaWxlZDogdHlwZU9mZnNldCA+PSAwICYmIHR5cGVPZmZzZXQgPCA2AHNpbGsvZW5jb2RlX2luZGljZXMuYwBhc3NlcnRpb24gZmFpbGVkOiBlbmNvZGVfTEJSUiA9PSAwIHx8IHR5cGVPZmZzZXQgPj0gMgBhc3NlcnRpb24gZmFpbGVkOiBwc0VuY0MtPnBzTkxTRl9DQi0+b3JkZXIgPT0gcHNFbmNDLT5wcmVkaWN0TFBDT3JkZXIACAoMEAAAAAAAAAB9MxoSDwwLCgkIBwYFBAMCAQDGaS0WDwwLCgkIBwYFBAMCAQDVonRTOysgGBIPDAkHBgUDAgDvu3Q7HBALCgkIBwYFBAMCAQD65byHVjMeEw0KCAYFBAMCAQD569W5nIBnU0I1KiEaFRENCgD++evOpHZNLhsQCgcFBAMCAQD//fnv3L+cd1U5JRcPCgYEAgD//fv27d/Ls5h8Yks3KB0VDwD//v333KJqQyocEgwJBgQDAg==");
base64DecodeToExistingUint8Array(bufferView, 8320, "HzlroM3N////////////////RS9Db6bN////////////////UkpPX22AkaCtzc3N4P//4P/gfUo7RWGNtv//////////////rXNVSUxcc5GtzeDg////////poZxZmVma3Z9ipGbprbAwM2W4LaGZVNPVWF4ka3N4P///////+DAlnhlXFldZnaGoLbA4ODg/+DgtpuGdm1oZmpvdoORoK2D");
base64DecodeToExistingUint8Array(bufferView, 8496, "8b6yhFdKKQ4A38GdjGo5JxI=");
base64DecodeToExistingUint8Array(bufferView, 8528, "g0qNT1CKX2iGX2NbfV1Me3N7");
base64DecodeToExistingUint8Array(bufferView, 8560, "gADWKgDrgBUA9LhICwD41oAqBwD44apQGQUA++zGfjYSAwD67tOfUiMPBQD658uogFg1GQYA/O7YuZRsRygSBAD98+HHpoBaOR8NAwD+9unUt5NtSSwXCgIA//rw38amgFo6IRAGAQD/+/Tn0rWSbksuGQwFAQD//fju3cSkgFw8IxIIAwEA//358uXQtJJuTDAbDgcDAQ==");
base64DecodeToExistingUint8Array(bufferView, 8720, "gQDPMgDsgRQA9blICgD51YEqBgD64qlXGwQA++nCgj4UBAD67M+gYy8RAwD/8Nm2g1EpCwEA//7pyZ9rPRQCAQD/+enOqoBWMhcHAQD/+u7ZupRsRicSBgEA//zz4simgFo4Hg0EAQD//PXn0bSSbkwvGQsEAQD//fjt28KjgF0+JRMIAwEA//768eLNsZFvTzMeDwYCAQ==");
base64DecodeToExistingUint8Array(bufferView, 8880, "gQDLNgDqgRcA9bhJCgD614EpBQD86K1WGAMA/fDIgTgPAgD99NmkXiYKAQD99eK9hEcbBwEA/fbny59pOBcGAQD/+OvVs4VVLxMFAQD//vPdwp91RiUMAgEA//746tCrgFUwFggCAQD//vrw3L2Va0MkEAYCAQD//vvz48mmgFo3HQ0FAgEA//789urVt5NtSSsWCgQCAQ==");
base64DecodeToExistingUint8Array(bufferView, 9040, "ggDIOgDnghoA9LhMDAD51oIrBgD86K1XGAMA/fHLgzgOAgD+9t2nXiMIAQD++ejBgkEXBQEA//vv06JjLQ8EAQD/+/PfuoNKIQsDAQD//PXmyp5pORgIAgEA//3369azhFQsEwcCAQD//vrw38SfcEUkDwYCAQD//v3159GwiF03GwsDAgEA//79/O/dwp51TCoSBAMCAQ==");
base64DecodeToExistingUint8Array(bufferView, 9202, "AgUJDhQbIyw2QU1aaHeH");
base64DecodeToExistingUint8Array(bufferView, 9232, "/jFDTVJdY8YLEhgfJC3/LkJOV15o0A4VICozQv9eaG1wc3b4NUVQWF9mYXNzZXJ0aW9uIGZhaWxlZDogX2Z0PjEAY2VsdC9lbnRkZWMuYwBhc3NlcnRpb24gZmFpbGVkOiBmcmFtZV9sZW5ndGggPT0gMTIgKiAxMABzaWxrL2VuY29kZV9wdWxzZXMuYwBhc3NlcnRpb24gZmFpbGVkOiB3aW5fdHlwZSA9PSAxIHx8IHdpbl90eXBlID09IDIAc2lsay9mbG9hdC9hcHBseV9zaW5lX3dpbmRvd19GTFAuYwBhc3NlcnRpb24gZmFpbGVkOiAoIGxlbmd0aCAmIDMgKSA9PSAwAGFzc2VydGlvbiBmYWlsZWQ6IG9yZGVyID49IDAgJiYgb3JkZXIgPD0gU0lMS19NQVhfT1JERVJfTFBDAHNpbGsvZmxvYXQvc2NodXJfRkxQLmMAYXNzZXJ0aW9uIGZhaWxlZDogT3JkZXIgPD0gbGVuZ3RoAHNpbGsvZmxvYXQvTFBDX2FuYWx5c2lzX2ZpbHRlcl9GTFAuYwBhc3NlcnRpb24gZmFpbGVkOiAwAGNlbHQvY2VsdF9scGMuYwBhc3NlcnRpb24gZmFpbGVkOiBuPjAAYXNzZXJ0aW9uIGZhaWxlZDogb3ZlcmxhcD49MABhc3NlcnRpb24gZmFpbGVkOiBtYXhfcGl0Y2g+MABjZWx0L3BpdGNoLmMAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPjA=");
base64DecodeToExistingUint8Array(bufferView, 9816, "AwAAAAIAAAADAAAAAgAAAAUAAAACAAAAAwAAAAIAAAADAAAAAgAAAAUAAAACAAAAAwAAAAIAAABhc3NlcnRpb24gZmFpbGVkOiBsZW4+PTMALi9jZWx0L3BpdGNoLmgAYXNzZXJ0aW9uIGZhaWxlZDogSyA+IDAAc2lsay9mbG9hdC9zb3J0X0ZMUC5jAGFzc2VydGlvbiBmYWlsZWQ6IEwgPiAwAGFzc2VydGlvbiBmYWlsZWQ6IEwgPj0gSwAAAQAAAAEAAAAAAAH/Af8C/gL+A/0AAQAB/wL/Av4D/gP9B/4HAAAAAAAC////AAABAQABAAEAAAAAAAEAAAAAAAEAAAABAAAAAAD/AgEAAQEAAP//AAAAAAAAAf8AAf8A/wH+Av7+Av0CA/38A/wEBPsF+vsG+QYFCPcAAAEAAAAAAAAA/wEAAAH/AAH//wH/AgH/Av7+Av4CAgP9AAEAAAAAAAABAAEAAAH/AQAAAgH/Av//Av8CAv8D/v7+AwABAAABAAH/Av8C/wID/gP+/gQE/QX9/Ab8BgX7CPr7+QkAAAAAAAAAAPsI/wb/BvwK+gr+Bv8G+wr3DP0H/gf5DRAYImFzc2VydGlvbiBmYWlsZWQ6IEZzX2tIeiA9PSA4IHx8IEZzX2tIeiA9PSAxMiB8fCBGc19rSHogPT0gMTYAc2lsay9mbG9hdC9waXRjaF9hbmFseXNpc19jb3JlX0ZMUC5jAGFzc2VydGlvbiBmYWlsZWQ6IGNvbXBsZXhpdHkgPj0gU0lMS19QRV9NSU5fQ09NUExFWABhc3NlcnRpb24gZmFpbGVkOiBjb21wbGV4aXR5IDw9IFNJTEtfUEVfTUFYX0NPTVBMRVgAYXNzZXJ0aW9uIGZhaWxlZDogRnNfa0h6ID09IDgAYXNzZXJ0aW9uIGZhaWxlZDogdGFyZ2V0X3B0ciArIHNmX2xlbmd0aF84a0h6IDw9IGZyYW1lXzRrSHogKyBmcmFtZV9sZW5ndGhfNGtIegBhc3NlcnRpb24gZmFpbGVkOiBiYXNpc19wdHIgPj0gZnJhbWVfNGtIegBhc3NlcnRpb24gZmFpbGVkOiBiYXNpc19wdHIgKyBzZl9sZW5ndGhfOGtIeiA8PSBmcmFtZV80a0h6ICsgZnJhbWVfbGVuZ3RoXzRrSHoAYXNzZXJ0aW9uIGZhaWxlZDogbGVuZ3RoX2Rfc3JjaCA+IDAAYXNzZXJ0aW9uIGZhaWxlZDogKmxhZ0luZGV4ID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogbmJfc3ViZnIgPT0gUEVfTUFYX05CX1NVQkZSID4+IDEAYXNzZXJ0aW9uIGZhaWxlZDogYnVmX2xlbiA+PSBwc0VuYy0+c0Ntbi5waXRjaF9MUENfd2luX2xlbmd0aABzaWxrL2Zsb2F0L2ZpbmRfcGl0Y2hfbGFnc19GTFAuYw==");
base64DecodeToExistingUint8Array(bufferView, 10934, "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");
base64DecodeToExistingUint8Array(bufferView, 15393, "DwgHBAsMAwINCgUGCQ4BAAkGAwQFCAECB2Fzc2VydGlvbiBmYWlsZWQ6IGQ9PTEwIHx8IGQ9PTE2AHNpbGsvTkxTRjJBLmMAYXNzZXJ0aW9uIGZhaWxlZDogRCA+IDAAc2lsay9OTFNGX1ZRX3dlaWdodHNfbGFyb2lhLmMAYXNzZXJ0aW9uIGZhaWxlZDogKCBEICYgMSApID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogaWZhY3RfUTIgPj0gMABzaWxrL2ludGVycG9sYXRlLmMAYXNzZXJ0aW9uIGZhaWxlZDogaWZhY3RfUTIgPD0gNABhc3NlcnRpb24gZmFpbGVkOiBLID4gMABzaWxrL3NvcnQuYwBhc3NlcnRpb24gZmFpbGVkOiBMID4gMABhc3NlcnRpb24gZmFpbGVkOiBMID49IEsAYXNzZXJ0aW9uIGZhaWxlZDogKCBMUENfb3JkZXIgJiAxICkgPT0gMABzaWxrL05MU0ZfVlEuYwBhc3NlcnRpb24gZmFpbGVkOiBzaWduYWxUeXBlID49IDAgJiYgc2lnbmFsVHlwZSA8PSAyAHNpbGsvTkxTRl9lbmNvZGUuYwBhc3NlcnRpb24gZmFpbGVkOiBwc0VuY0MtPnVzZUludGVycG9sYXRlZE5MU0ZzID09IDEgfHwgcHNFbmNDLT5pbmRpY2VzLk5MU0ZJbnRlcnBDb2VmX1EyID09ICggMSA8PCAyICkAc2lsay9wcm9jZXNzX05MU0ZzLmMAYXNzZXJ0aW9uIGZhaWxlZDogTkxTRl9tdV9RMjAgPiAwAGFzc2VydGlvbiBmYWlsZWQ6IHBzRW5jQy0+cHJlZGljdExQQ09yZGVyIDw9IE1BWF9MUENfT1JERVIAYXNzZXJ0aW9uIGZhaWxlZDogZCA+PSA2AHNpbGsvTFBDX2FuYWx5c2lzX2ZpbHRlci5jAGFzc2VydGlvbiBmYWlsZWQ6IChkICYgMSkgPT0gMABhc3NlcnRpb24gZmFpbGVkOiBkIDw9IGxlbgBhc3NlcnRpb24gZmFpbGVkOiBzdGFydF9pZHggPiAwAHNpbGsvTlNRX2RlbF9kZWMuYwBhc3NlcnRpb24gZmFpbGVkOiBuU3RhdGVzRGVsYXllZERlY2lzaW9uID4gMABhc3NlcnRpb24gZmFpbGVkOiAoIHNoYXBpbmdMUENPcmRlciAmIDEgKSA9PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0YXJ0X2lkeCA+IDAAc2lsay9OU1EuYwBhc3NlcnRpb24gZmFpbGVkOiAoIHNoYXBpbmdMUENPcmRlciAmIDEgKSA9PSAwAGFzc2VydGlvbiBmYWlsZWQ6IGxhZyA+IDAgfHwgc2lnbmFsVHlwZSAhPSBUWVBFX1ZPSUNFRABhc3NlcnRpb24gZmFpbGVkOiBzdWJmcl9sZW5ndGggKiBuYl9zdWJmciA8PSBNQVhfRlJBTUVfU0laRQBzaWxrL2Zsb2F0L2J1cmdfbW9kaWZpZWRfRkxQLmMAYXNzZXJ0aW9uIGZhaWxlZDogcHNFbmNDLT5pbmRpY2VzLk5MU0ZJbnRlcnBDb2VmX1EyID09IDQgfHwgKCBwc0VuY0MtPnVzZUludGVycG9sYXRlZE5MU0ZzICYmICFwc0VuY0MtPmZpcnN0X2ZyYW1lX2FmdGVyX3Jlc2V0ICYmIHBzRW5jQy0+bmJfc3ViZnIgPT0gTUFYX05CX1NVQkZSICkAc2lsay9mbG9hdC9maW5kX0xQQ19GTFAuYwBhc3NlcnRpb24gZmFpbGVkOiBwc0VuYy0+c0Ntbi5sdHBfbWVtX2xlbmd0aCAtIHBzRW5jLT5zQ21uLnByZWRpY3RMUENPcmRlciA+PSBwc0VuY0N0cmwtPnBpdGNoTFsgMCBdICsgTFRQX09SREVSIC8gMgBzaWxrL2Zsb2F0L2ZpbmRfcHJlZF9jb2Vmc19GTFAuYwBhc3NlcnRpb24gZmFpbGVkOiBzUmFuZ2VFbmNfY29weTIub2ZmcyA8PSAxMjc1AHNpbGsvZmxvYXQvZW5jb2RlX2ZyYW1lX0ZMUC5jAGFzc2VydGlvbiBmYWlsZWQ6IHBzUmFuZ2VFbmMtPm9mZnMgPD0gMTI3NQ==");
base64DecodeToExistingUint8Array(bufferView, 17025, "Dyc0PURKT1RYXF9jZmlsb3J1d3p8foGDhYeJi46PkZOVl5mbnZ6goqOlp6iqq62usLGztLa3ubq7vb7AwcLExcfIycvMzc/Q0dPU1dfY2dvc3d/g4ePk5ufo6uvs7u/x8vP19vj5+vz9/wAAAAAAAAAcKzQ7QUZKTlFVV1pdX2JkZmlrbW9xc3R2eHp7fX+AgoOFhoiJioyNj5CRk5SVl5iZmpydnp+goqOkpaanqKmrrK2ur7CxsrO0tba3uLm6u7y8vb6/wMHCw8TFxsfIycrLy8zNzs/Q0dLT1NXW1tfY2drb3N3e3+Dg4eLj5OXm5+jp6uvs7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAAAAAAAAAAgdKTE4PkJGSk1QU1ZYW11fYWNlZ2lrbG5wcXN0dnd5ent9fn+BgoOEhoeIiYqMjY6PkJGSk5SVlpeYmZqcnZ6fn6ChoqOkpaanqKmqq6usra6vsLGxsrO0tbW2t7i5ubq7vL29vr/AwMHCw8PExcbGx8jIycrLy8zNzs7P0NHR0tPT1NXW1tfY2Nna29vc3d3e3+Dg4eLi4+Tl5ebn6Ojp6urr7O3t7u/w8PHy8/P09fb29/j5+fr7/P3/YXNzZXJ0aW9uIGZhaWxlZDogMABzaWxrL2VuY19BUEkuYwBhc3NlcnRpb24gZmFpbGVkOiAhcmV0AGFzc2VydGlvbiBmYWlsZWQ6IGVuY0NvbnRyb2wtPm5DaGFubmVsc0ludGVybmFsID09IDEgfHwgcHNFbmMtPnN0YXRlX0Z4eFsgMCBdLnNDbW4uZnNfa0h6ID09IHBzRW5jLT5zdGF0ZV9GeHhbIDEgXS5zQ21uLmZzX2tIegBhc3NlcnRpb24gZmFpbGVkOiBlbmNDb250cm9sLT5uQ2hhbm5lbHNBUEkgPT0gMSAmJiBlbmNDb250cm9sLT5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxAGFzc2VydGlvbiBmYWlsZWQ6IHBzRW5jLT5zdGF0ZV9GeHhbIDAgXS5zQ21uLmlucHV0QnVmSXggPT0gcHNFbmMtPnN0YXRlX0Z4eFsgMCBdLnNDbW4uZnJhbWVfbGVuZ3RoAGFzc2VydGlvbiBmYWlsZWQ6IGVuY0NvbnRyb2wtPm5DaGFubmVsc0ludGVybmFsID09IDEgfHwgcHNFbmMtPnN0YXRlX0Z4eFsgMSBdLnNDbW4uaW5wdXRCdWZJeCA9PSBwc0VuYy0+c3RhdGVfRnh4WyAxIF0uc0Ntbi5mcmFtZV9sZW5ndGgAAACAuwAAeAAAABUAAAAVAAAAAJpZPwAAAAAAAIA/AACAP8BGAAADAAAACAAAAHgAAAALAAAA8EYAAOBHAAAQSAAAgAcAAAMAAADwSQAAEH4AAEB/AAD4fwAAMEoAAIgBAABQZgAAMGcAAMBo");
base64DecodeToExistingUint8Array(bufferView, 18114, "AQACAAMABAAFAAYABwAIAAoADAAOABAAFAAYABwAIgAoADAAPABOAGQ=");
base64DecodeToExistingUint8Array(bufferView, 18181, "WlBLRT84MSgiHRQSCgAAAAAAAAAAbmRaVE5HQTozLScgGhQMAAAAAAAAdm5nXVZQS0ZBOzUvKB8XDwQAAAAAfndwaF9ZU05IQjw2LycgGREMAQAAhn94cmdhW1VOSEI8Ni8pIx0XEAoBkImCfHFrZV9YUkxGQDkzLSchGg8BmJGKhHt1b2liXFZQSkM9NzErJBQBopuUjoV/eXNsZmBaVE1HQTs1Lh4BrKWemI+Jg312cGpkXldRS0U/OC0UyMjIyMjIyMjGwby3sq2oo56ZlIFo");
base64DecodeToExistingUint8Array(bufferView, 18416, "CAAIAAgACAAQABAAEAAVABUAGAAdACIAJAAAAAAAAABqHI04UrseOghp3DqC7Vc7iWOyOwMqBTww3Dk8tD53PByjnjzR8sU8/obxPJurED0FrSo9hMJGPVPmZD0RiYI9h5+TPcuypT3Rvrg9Or/MPVSv4T0Uivc9DiUHPtn0Ej5fMR8+aNcrPorjOD4wUkY+lB9UPr9HYj6OxnA+sJd/PlJbhz5gD48+mOWWPnnbnj5w7qY+2BuvPvtgtz4Ru78+RifIPrei0D54Ktk+lLvhPgxT6j7e7fI+Bon7Pr4QAj8fWgY/JJ8KP1DeDj8rFhM/QUUXPyVqGz9zgx8/zo8jP+aNJz90fCs/P1ovPxkmMz/n3jY/mYM6PzMTPj/FjEE/d+9EP386SD8nbUs/zoZOP+WGUT/xbFQ/jjhXP2npWT9Ff1w/+vleP3NZYT+vnWM/wcZlP8/UZz8RyGk/0qBrP25fbT9QBG8/9I9wP+YCcj+9XXM/H6F0P7/NdT9X5HY/sOV3P5fSeD/jq3k/c3J6Pycnez/nyns/nV58PzXjfD+cWX0/vcJ9P4Yffj/ecH4/q7d+P8/0fj8mKX8/hlV/P756fz+WmX8/zLJ/PxTHfz8c138/guN/P93sfz+2838/ivh/P8j7fz/W/X8/B/9/P6X/fz/o/38//f9/PwAAgD/gAQAAh4gIO/////8FAGAAAwAgAAQACAACAAQABAAB");
base64DecodeToExistingUint8Array(bufferView, 18972, "cGkAADBt");
base64DecodeToExistingUint8Array(bufferView, 18992, "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/////////////////////wAAAAAAAAAAKQApACkAUgBSAHsApADIAN4=");
base64DecodeToExistingUint8Array(bufferView, 26250, "KQApACkAKQB7AHsAewCkAKQA8AAKARsBJwEpACkAKQApACkAKQApACkAewB7AHsAewDwAPAA8AAKAQoBMQE+AUgBUAF7AHsAewB7AHsAewB7AHsA8ADwAPAA8AAxATEBMQE+AT4BVwFfAWYBbAHwAPAA8ADwAPAA8ADwAPAAMQExATEBMQFXAVcBVwFfAV8BcgF4AX4BgwE=");
base64DecodeToExistingUint8Array(bufferView, 26416, "KAcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcoDxccHyIkJicpKissLS4vLzEyMzQ1Njc3OTo7PD0+Pz9BQkNERUZHRygUISkwNTk9QEJFR0lLTE5QUlVXWVtcXmBiZWdpa2xucHJ1d3l7fH6AKBcnMzxDSU9TV1teYWRmaWtvc3Z5fH6Bg4eLjpGUlpmbn6OmqayusbMjHDFBTllja3J4foSIjZGVmZ+lq7C0ub3Ax83T2Nzh5ejv9fsVITpPYXB9iZSdpq62vcPJz9nj6/P7ESM/Vmp7i5ilsbvFztbe5u36GR83S1tpdYCKkpqhqK60ub7I0Nfe5evw9f8QJEFZboCQn625xM/Z4ury+gspSmeAl6y/0eHx/wkrT26Ko7rP4/YMJ0dje5CktsbW5PH9CSxRcY6owNbr/wcxWn+gv9z3BjNfhqrL6gcvV3ubuNTtBjRhia7Q8AU5apfA5wU7b57K8wU3Z5O74AU8caHO+ARBeq/gBEN/tuoAAAAAAAAAAODg4ODg4ODgoKCgoLm5ubKyqIY9JeDg4ODg4ODg8PDw8M/Pz8bGt5BCKKCgoKCgoKCgubm5ucHBwbe3rIpAJvDw8PDw8PDwz8/Pz8zMzMHBtI9CKLm5ubm5ubm5wcHBwcHBwbe3rIpBJ8/Pz8/Pz8/PzMzMzMnJyby8sI1CKMHBwcHBwcHBwcHBwcLCwri4rYtBJ8zMzMzMzMzMycnJycbGxru7r4xCKA==");
base64DecodeToExistingUint8Array(bufferView, 26994, "YADAACABgAEgAIAA4ABAAaABQACgAAABYAHAAQgAaADIACgBiAEoAIgA6ABIAagBSACoAAgBaAHIARAAcADQADABkAEwAJAA8ABQAbABUACwABABcAHQARgAeADYADgBmAE4AJgA+ABYAbgBWAC4ABgBeAHYAQQAZADEACQBhAEkAIQA5ABEAaQBRACkAAQBZAHEAQwAbADMACwBjAEsAIwA7ABMAawBTACsAAwBbAHMARQAdADUADQBlAE0AJQA9ABUAbQBVAC0ABQBdAHUARwAfADcADwBnAE8AJwA/ABcAbwBXAC8ABwBfAHcAQEAYQDBACEBgQEhAIEA4QBBAaEBQQChAAEBYQHBAQkAaQDJACkBiQEpAIkA6QBJAakBSQCpAAkBaQHJAREAcQDRADEBkQExAJEA8QBRAbEBUQCxABEBcQHRARkAeQDZADkBmQE5AJkA+QBZAbkBWQC5ABkBeQHZAQUAZQDFACUBhQElAIUA5QBFAaUBRQClAAUBZQHFAQ0AbQDNAC0BjQEtAI0A7QBNAa0BTQCtAA0BbQHNARUAdQDVADUBlQE1AJUA9QBVAbUBVQC1ABUBdQHVAR0AfQDdAD0BnQE9AJ0A/QBdAb0BXQC9AB0BfQHdAQIAYgDCACIBggEiAIIA4gBCAaIBQgCiAAIBYgHCAQoAagDKACoBigEqAIoA6gBKAaoBSgCqAAoBagHKARIAcgDSADIBkgEyAJIA8gBSAbIBUgCyABIBcgHSARoAegDaADoBmgE6AJoA+gBaAboBWgC6ABoBegHaAQYAZgDGACYBhgEmAIYA5gBGAaYBRgCmAAYBZgHGAQ4AbgDOAC4BjgEuAI4A7gBOAa4BTgCuAA4BbgHOARYAdgDWADYBlgE2AJYA9gBWAbYBVgC2ABYBdgHWAR4AfgDeAD4BngE+AJ4A/gBeAb4BXgC+AB4BfgHeAQMAYwDDACMBgwEjAIMA4wBDAaMBQwCjAAMBYwHDAQsAawDLACsBiwErAIsA6wBLAasBSwCrAAsBawHLARMAcwDTADMBkwEzAJMA8wBTAbMBUwCzABMBcwHTARsAewDbADsBmwE7AJsA+wBbAbsBWwC7ABsBewHbAQcAZwDHACcBhwEnAIcA5wBHAacBRwCnAAcBZwHHAQ8AbwDPAC8BjwEvAI8A7wBPAa8BTwCvAA8BbwHPARcA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");
base64DecodeToExistingUint8Array(bufferView, 32316, "MHwAADBt");
base64DecodeToExistingUint8Array(bufferView, 32338, "GAAwAEgAYAAIACAAOABQAGgAEAAoAEAAWABwAAQAHAA0AEwAZAAMACQAPABUAGwAFAAsAEQAXAB0AAEAGQAxAEkAYQAJACEAOQBRAGkAEQApAEEAWQBxAAUAHQA1AE0AZQANACUAPQBVAG0AFQAtAEUAXQB1AAIAGgAyAEoAYgAKACIAOgBSAGoAEgAqAEIAWgByAAYAHgA2AE4AZgAOACYAPgBWAG4AFgAuAEYAXgB2AAMAGwAzAEsAYwALACMAOwBTAGsAEwArAEMAWwBzAAcAHwA3AE8AZwAPACcAPwBXAG8AFwAvAEcAXwB3AHgAAACIiAg8AgAAAAUAGAADAAgAAgAEAAQAAQ==");
base64DecodeToExistingUint8Array(bufferView, 32620, "UH4AADBt");
base64DecodeToExistingUint8Array(bufferView, 32642, "DAAYACQAMAAEABAAHAAoADQACAAUACAALAA4AAEADQAZACUAMQAFABEAHQApADUACQAVACEALQA5AAIADgAaACYAMgAGABIAHgAqADYACgAWACIALgA6AAMADwAbACcAMwAHABMAHwArADcACwAXACMALwA7ADwAAACJiIg8AwAAAAUADAADAAQABAAB");
base64DecodeToExistingUint8Array(bufferView, 32804, "gH8AADBtAAAAAAAAlYsAADeYAAD/pQAABLUAAGfFAABF1wAAweoAAP//AABhc3NlcnRpb24gZmFpbGVkOiBmbCtmczw9MzI3NjgAY2VsdC9sYXBsYWNlLmMAYXNzZXJ0aW9uIGZhaWxlZDogZnM+MA==");
base64DecodeToExistingUint8Array(bufferView, 32930, "zkAAAMhAAAC4QAAAqkAAAKJAAACaQAAAkEAAAIxAAACcQAAAlkAAAJJAAACOQAAAnEAAAJRAAACKQAAAkEAAAIxAAACUQAAAmEAAAI5AAABwQAAAcEAAAHBAAABwQAAAcEA=");
base64DecodeToExistingUint8Array(bufferView, 33040, "SH9BgUKAQYBAgD6AQIBAgFxOXE9cTlpPdClzKHIohBqEGpERoQywCrELGLMwijaHNoQ1hjiFN4Q3hD1yRmBKWEtYV0pZQltDZDtsMngoeiVhK04yU05UUVhLVkpXR1pJXUpdSm0ociR1InUijxGREpITogylCrIHvQa+CLEJF7I2cz9mQmJFY0pZR1tJW05ZVlBcQl1AZjtnPGg8dTR7LIojhR9hJk0tPVpdPGkqayluLXQmcSZwJnwahBuIE4wUmw6fEJ4Sqg2xCrsIwAavCZ8KFbI7bkdWS1VUU1tCWElXSFxLYkhpOms2czRyN3A4gTOEKJYhjB1iI00qKnlgQmwrbyh1LHsgeCR3IX8hhiKLFZMXmBSeGZoaphWtELgNuAqWDYsPFrI/ckpSVFNcUmc+YEhgQ2VJa0hxN3Y0fTR2NHU3hzGJJ50gkR1hIU0oAABmPwAATD8AACY/AAAAPwCGaz8AFC4/AHC9PgDQTD4CAQ==");
base64DecodeToExistingUint8Array(bufferView, 33424, "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");
base64DecodeToExistingUint8Array(bufferView, 36211, "QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNWFzc2VydGlvbiBmYWlsZWQ6IF9rPjAAY2VsdC9jd3JzLmM=");
base64DecodeToExistingUint8Array(bufferView, 36320, "QI4AAACRAAC8kwAAdJYAACiZAADYmwAAhJ4AAOyfAACooAAAHKEAAGihAACgoQAAwKEAANihAADkoQAAYXNzZXJ0aW9uIGZhaWxlZDogX24+PTI=");
base64DecodeToExistingUint8Array(bufferView, 36416, "AQ==");
base64DecodeToExistingUint8Array(bufferView, 37124, "AQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAADAAAABQAAAAcAAAAJAAAACwAAAA0AAAAPAAAAEQAAABMAAAAVAAAAFwAAABkAAAAbAAAAHQAAAB8AAAAhAAAAIwAAACUAAAAnAAAAKQAAACsAAAAtAAAALwAAADEAAAAzAAAANQAAADcAAAA5AAAAOwAAAD0AAAA/AAAAQQAAAEMAAABFAAAARwAAAEkAAABLAAAATQAAAE8AAABRAAAAUwAAAFUAAABXAAAAWQAAAFsAAABdAAAAXwAAAGEAAABjAAAA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");
base64DecodeToExistingUint8Array(bufferView, 42145, "QMpFG0z/UoJas2Kia2B1YXNzZXJ0aW9uIGZhaWxlZDogcW4gPD0gMjU2AAAAAAAACA0QExUXGBobHB0eHyAgISIiIyQkJSVhc3NlcnRpb24gZmFpbGVkOiBjb2RlZEJhbmRzID4gc3RhcnQAY2VsdC9yYXRlLmMAYXNzZXJ0aW9uIGZhaWxlZDogYml0c1tqXSA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IGViaXRzW2pdID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogQyplYml0c1tqXTw8QklUUkVTID09IGJpdHNbal0AYXNzZXJ0aW9uIGZhaWxlZDogZmluICE9IGZvdXQKSW4tcGxhY2UgRkZUIG5vdCBzdXBwb3J0ZWQAY2VsdC9raXNzX2ZmdC5jAGFzc2VydGlvbiBmYWlsZWQ6IG09PTQAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnNpZ25hbGxpbmc9PTAAY2VsdC9jZWx0X2VuY29kZXIuYwACAQBhc3NlcnRpb24gZmFpbGVkOiAhY2VsdF9pc25hbihmcmVxWzBdKSAmJiAoQz09MSB8fCAhY2VsdF9pc25hbihmcmVxW05dKSkAYXNzZXJ0aW9uIGZhaWxlZDogY291bnQ+MAAZFwI=");
base64DecodeToExistingUint8Array(bufferView, 42642, "gD8AAABAAABAQAAAgEAAAKBAAADAQAAA4EAAAABBAACAQQAAwEEAABBCAAAwQgAASEIAAGBCAAB4QgAAhkIAAJBCAACeQgAAsEIAANRCAAAGQw==");
base64DecodeToExistingUint8Array(bufferView, 42738, "gD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAABAQAAAQEAAAIBAAACgQAAAwEAAAABBAAAAQX58d21XKRMJBAIAAP//nG5WRjszLSglIR8cGhkXFhUUExIREBAPDw4NDQwMDAwLCwsKCgoJCQkJCQkICAgICAcHBwcHBwYGBgYGBgYGBgYGBgYGBgYFBQUFBQUFBQUFBQUEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAwMDAwMDAwMDAwMDAwMDAwMCYXNzZXJ0aW9uIGZhaWxlZDogIWNlbHRfaXNuYW4odG1wWzBdKQBhc3NlcnRpb24gZmFpbGVkOiAhY2VsdF9pc25hbihub3JtKQAAAAAAAAAz8AEN+/rw+Qv6ahoc8hXjBxLu7xXv9xTn/d4wC/Ph7OL3AvQF/wgJCQjzEu/e+xH1APwKAgoP+AL/AAUN/fAB+wMH5PMGJP0TxO/kB/Xi+QLW6/0G6iH3B+IV8hj17O779AzPzs8QCdv/CSLz4eEMECzWAvcI7voJJBMLDQzrA+T0AyEZ8gsBotkS9PXx+TE0CtUJOQgV+g7xLPgH4vP+9xn+gRL1zBrlGwr2BysG6CkK7uUKEQkK7/YU+hY3I7AkGejcDwntWBNAzd0RAPkp8BsED/8S8C/ZyvgN5+xm7vssC+RHAs37BQKt9+MIFcs62/kNJgki/9cVBOjc3+sgS/4BvP8v4yAUDL+pBRD0GCgPBxPm7xEG/tvi9yCB2QDh5QTqF/qzI8Mg2+gN9f/Y/RH5DQs77QoG7gANA/rpEwvvDf+wKMtF48oA/CHn/iYjJPEuAvPw+PgM6PfJ+/cgCwcM7vaq2jYl5xLVB+Xlyg0JFkYGI/kX8dT6B76rICjt9/kM8QcCBt0LHAAaDgEBBAwSIxbu/Q7/Bw748v0E/e35/+flGeb+Ierl5wT3BxUa4gr37AsbCgXuDvwC7/v59/MPHQH28PYjJPnq1BEeFhX/FvUg+PkF9gUe7B3s3gz8+gbzCvu8/xgJE+jAHxMb5kvTKSfWCAYX4hDnHiII2v0SEOEW/PcBFAkm4ADTAPrzC+fg6h/o9fX8/BTeFhQJ5xv7HOMdBhX67jYE0hcV8uEk1+gEFgoLByTg88zvGBzb3P8YCdojMBIC/y0KJxjaDQjwCBkLB+P1BxTi2tMO7uT3QT0Wy9rwJC4U2SDD+vrc3+7kOGUtC+Tp48MU0QIwG+8BKAEDzQ8jHBYjNcPjDPrrCgPsAucB+h8L/QH2zAZ+l3p/gH9/gH9sDH8wgNyAf3+AgH9ZgH+AgIB/f4CAo64UfUGufya2UVioTzPRkeYOU6iQGCObYp3Q0y5TxLEt7NcJBDQ2XfYEDQN7Bl6Ru/LhCgw1sfXr/tS4XEHHONp/yIB/f4BWdbWAf+2dkH+Af9BydoCAde/6eYB/gFI2ln9/32TZ6RKy3uP/4n/mf4B+gBvpsYiBf0hCHQe+yIuAIKgAAECoAAAZAAAAIA==");
base64DecodeToExistingUint8Array(bufferView, 43904, "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");
base64DecodeToExistingUint8Array(bufferView, 48048, "j6gfgILDVd12gMN/gO+Af2j3gCEtfwVTVICrgNMwy4Auf+99ddeLpYG8/6ewIGoHpLsAALC7AAAYAAAAAgAAAAE=");
base64DecodeToExistingUint8Array(bufferView, 48132, "BcEjPel9oz0llvQ94nQiPqwcSj7dJXE+NLqLPrR3nj7kv7A+rYjCPiXJ0z4YeuQ+GJX0PsgKAj8cfAk/SZ0QP8ptFz/A7R0/nx0kP1T+KT8ukS8/4Nc0P2PUOT/wiD4/0/dCP6sjRz8XD0s/2LxOP60vUj9qalU/zm9YP5pCWz+O5V0/S1tgP26mYj9kyWQ/m8ZmP2+gaD/3WGo/gPJrP99ubT8L0G4/yhdwP+BHcT/hYXI/TWdzP5ZZdD8MOnU//wl2P4rKdj+7fHc/wCF4P2K6eD+dR3k/S8p5PyRDej/ysno/Oxp7P8h5ez8g0ns/yCN8PzdvfD/ytHw/XvV8P+AwfT/sZ30/t5p9P7TJfT8G9X0/ER1+PxhCfj9OZH4/04N+P/2gfj/tu34/w9R+P7Prfj/vAH8/hxR/P40mfz9DN38/qkZ/P+NUfz8PYn8/L25/P2R5fz++g38/P41/PxiWfz84nn8/wqV/P6Osfz8Qs38/9bh/P3e+fz9yw38/Gch/P2zMfz9b0H8/BtR/P2/Xfz+D2n8/Zt1/PxXgfz+C4n8/zeR/P+bmfz/N6H8/kup/P0bsfz/I7X8/KO9/P3jwfz+m8X8/w/J/P7/zfz+69H8/lPV/P172fz8n938/z/d/P3f4fz/9+H8/lPl/Pwn6fz9/+n8/9Pp/P1n7fz+t+38/Afx/P1T8fz+Y/H8/2/x/Px79fz9Q/X8/gv1/P7X9fz/n/X8/Cf5/Pzv+fz9d/n8/fv5/P4/+fz+w/n8/0v5/P+P+fz/0/n8/Ff9/Pyb/fz83/38/R/9/P1j/fz9Y/38/af9/P3r/fz96/38/i/9/P5v/fz+b/38/m/9/P6z/fz+s/38/vf9/P73/fz+9/38/zv9/P87/fz/O/38/zv9/P87/fz/e/38/3v9/P97/fz/e/38/3v9/P97/fz/v/38/7/9/P+//fz/v/38/7/9/P+//fz/v/38/7/9/P+//fz/v/38/7/9/P+//fz/v/38/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8=");
base64DecodeToExistingUint8Array(bufferView, 48944, "5lo0OHdOMznT2ck5kpEzOsxgjDph+8k6mX4JO8uAMzvVJWM7dy6MO6iKqTtFuMk7h6bsO+guCTyuZh089wIzPJP/STxPWGI8XhF8PC6Rizy9x5k8XKyoPPM8uDyBecg87l/ZPDnw6jxjKv08NQcIPRDMET3N5Bs9YVAmPcsOMT0AHzw9/oBHPcY0Uz0/OF89aYtrPUUueD1pkII9ezCJPeD3jz2K5ZY9e/mdPbEzpT0hk6w9UBi0PTPCuz1PkcM9EoTLPQKb0z0f1ts91zPkPa+07D0hWPU9qB3+PaGCAz7yBgg+x5sMPt1AET409hU+RbsaPhGQHz5UdCQ+y2cpPjNqLj6NezM+Ups4PsXJPT4cBkM+WVBIPnqoTT63DVM+UoBYPggAXj5UjGM+8iRpPiXKbj4ke3Q+rDd6PgAAgD6r6YI++diFPoXNiD5Qx4s+N8aOPvfJkT6z0pQ+JuCXPg/ymj5sCJ4+HCOhPv9BpD7QZKc+sYuqPhy2rT5U5LA+0xW0PrpKtz7ogro++b29Pg38wD7iPMQ+VoDHPkfGyj6VDs4++1jRPnql1D7x89c+HETbPtmV3j4I6eE+pz3lPlOT6D4M6us+r0HvPhya8j4O8/U+iEz5PiKm/D4AAAA/76wBP7xZAz95BgU/8rIGPylfCD/6Cgo/VrYLPyxhDT98Cw8/E7UQP/JdEj8IBhQ/Q60VP4JTFz+2+Bg/3JwaP9U/HD+P4R0/+YEfPwQhIT+MviI/o1okPxf1JT/WjSc/8iQpPyi6Kj+YTSw/Ad8tP3JuLz/K+zA/+YYyP+0PND+nljU/BBs3P+WcOD9YHDo/PZk7P4MTPT8qiz4/AABAPxVyQT834UI/d01EP8O2RT/rHEc//n9IP+zfST+SPEs/4ZVMP+rrTT95Pk8/j41QPyvZUT8dIVM/c2VUPw2mVT/r4lY//BtYPy9RWT9zglo/ya9bPw7ZXD9D/l0/WB9fP0s8YD/8VGE/amliP4V5Yz88hWQ/oIxlP36PZj/WjWc/uodoP/Z8aT+cbWo/illrP9FAbD9PI20/BAFuP/HZbj/zrW8/HH1wP0lHcT98DHI/tMxyP/CHcz8QPnQ/E+90P/qadT+zQXY/P+N2P41/dz+tFng/fqh4PwE1eT80vHk/GD56P526ej/CMXs/d6N7P7sPfD+fdnw/Ath8P/QzfT9lin0/RNt9P7Mmfj+PbH4/66x+P6Pnfj/aHH8/f0x/P4F2fz8Cm38/0Ll/PxzTfz/F5n8/y/R/Py/9fz8AAIA/BAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAAABAAAAAUAAAAGAAAABwAAAAiAAAAKAAAADAAAAA8A==");
base64DecodeToExistingUint8Array(bufferView, 49986, "gD4AAIA+AACAPgAAgD4AAIA+AACAPgAAgD4AAIA+AACAPgAAgD4AAIA+AACAPgAAgD4AAIA+AACAPgAAgD7QJbQ+lzmtPgmlnz767Ys+zaxlPvipKj40MNI9WvENPVrxDb00MNK9+Kkqvs2sZb767Yu+CaWfvpc5rb7QJbS+h4qxPhuDlj5gI0k+xEKNPcRCjb1gI0m+G4OWvoeKsb6HirG+G4OWvmAjSb7EQo29xEKNPWAjST4bg5Y+h4qxPpc5rT7NrGU+WvENPfipKr4JpZ++0CW0vvrti740MNK9NDDSPfrtiz7QJbQ+CaWfPvipKj5a8Q29zaxlvpc5rb59Pac+0osKPtKLCr59Pae+fT2nvtKLCr7Siwo+fT2nPn09pz7Siwo+0osKvn09p759Pae+0osKvtKLCj59Pac+CaWfPlrxDT367Yu+lzmtvjQw0r3NrGU+0CW0PvipKj74qSq+0CW0vs2sZb40MNI9lzmtPvrtiz5a8Q29CaWfvhuDlj7EQo29h4qxvmAjSb5gI0k+h4qxPsRCjT0bg5a+G4OWvsRCjT2HirE+YCNJPmAjSb6HirG+xEKNvRuDlj767Ys++Kkqvpc5rb5a8Q090CW0PjQw0j0JpZ++zaxlvs2sZT4JpZ8+NDDSvdAltL5a8Q29lzmtPvipKj767Yu+YXNzZXJ0aW9uIGZhaWxlZDogc3QtPm1vZGUgPT0gTU9ERV9IWUJSSUQgfHwgY3Vycl9iYW5kd2lkdGggPT0gT1BVU19CQU5EV0lEVEhfV0lERUJBTkQAc3JjL29wdXNfZW5jb2Rlci5jAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5zaWxrX21vZGUuaW50ZXJuYWxTYW1wbGVSYXRlID09IDE2MDAw");
base64DecodeToExistingUint8Array(bufferView, 50672, "4C4AAOgDAACwNgAA6AMAAIA+AADoAwAAIE4AAOgDAADwVQAA6AM=");
base64DecodeToExistingUint8Array(bufferView, 50740, "4C4AABAnAAAQJwAA+CoAAPgqAACAPgAAvDQAALw0AACYOgAAmDoAACBOAACAPgAAgD4AAFBGAABQRgAAwF0AAFBGAABQRgAACFIAAAhSAAAAfQAA8FUAAPBVAABgbQAAYG0AAAD6AABwlAAAcJQAAFDDAABQwwAADQAAABEAAAARAAAAEwAAAAAAAAAIAAAABAAAAOF6VD/2KFw/nMcAABAAAAAEAAAAmplZP65HYT+cxwAAIAAAAAQAAADBymE/w/VoP5zHAAAwAAAACAAAALgeZT+DwGo/pMcAAEAAAAAIAAAAqMZrP9ejcD+kxwAAUAAAABAAAAAxCGw/16NwP6zHAABgAAAAEAAAANejcD+F63E/rMcAAIAAAAAQAAAAMzNzPzMzcz+sxwAAoAAAABAAAACPwnU/j8J1P6zHAADAAAAAIAAAANnOdz/Zznc/tMcAAAABAAAgAAAAmpl5P5qZeT+0xwAAwMcAACAAAADgyAAAIAAAAADKAAAgAAAAIMsAAEAAAAAAAAAAJZHguiDq7z8AAAAAAADwPyWR4Log6u8/3ksrz82o7z9aH/+a5jzvP1XPF7Xap+4/vqBk9qLr7T/XkG46uArtP4voz2UHCOw/td5vtOPm6j9YAHQU96rpPyJyVTQxWOg/UMWuabXy5j9Y5LYByH7lP5RFJ2y7AOQ/RytKS9184j+po+NqZPfgP6qpl6W+6N4/FsR6gkjv2z9LZsyPhQnZPz/p4VfuPdY/wmpufT+S0z+gvqdqaQvRPytyXzkIW80/J5liL5D3yD+hB8qvF/HEP8pirICMSsE/IsW+bFQKvD9hhQCFH0G2P4/ecB+5NbE/Q4TJnk7DqT8he3vfEXiiP/NHKOi855g/We0O5+l1jj8hAg6hSs1+PwAAAAAAAAAAwVNMzh7i7z8AAAAAAADwP8FTTM4e4u8/z0LImg2J7z8MbeeYf/buP4gSLXk8Le4/mk30twwx7T+1sMC6ngbsP8yZDhlms+o/3Hksx3U96T9RqyK7VqvnP5U2yU3cA+Y/davnpPdN5D93AJvei5DiPxOB6h9E0uA/xgDD0dky3j9TPgRVo9faP9kIYcE/ndc/qGoG4Z+M1D9uJH0YKa3RP1rvefZDCc4/GwBgK1cuyT9RlmsbkM7EP4vsWq3Z68A/6dYpXn4Kuz/fF/rUby61PwYNgUwAOLA/yr1E5fQvqD+mFfjtmHihP0v1U9J5Q5g/lM+f9I0BkD8Abjc9/6iDP95pGUbNmXU/4IWMy+EoYz/8qfHSTWJAPwAAAAAAAAAAuaajkCLa7z8AAAAAAADwP7mmo5Ai2u8/hQsW2ntp7z9ERs1417DuPyZTw4bAtO0/M9ouXVZ77D+pzhc5EwzrP6nqcSGHb+k/cuaRHgqv5z/W0WnEadTlP8CnpBSV6eM/OaAA5Ur44T/qgxvfzQngP1Vq1TJCTdw/Q13e+5+s2D8PWvbBhT7VPx8F28pDDdI/oGc3IxhBzj+Mi3rz4frIP/CuSIb7TMQ/dOMnH8w3wD/uYYrNIm+5PztOVcoAirM/6GEuyuhXrT8kM80qInmlP7tpbfnMgp4/Iix0b4/vlD8+Ed0W2YyLP13CX5umMoE/UAiy2AUHdD+ByCq+BBtlP9zuq5Ov21I/G8qaom1GNz8=");
base64DecodeToExistingUint8Array(bufferView, 52000, "yFEM0oT07z8AAAAAAADwP8hRDNKE9O8/9pUH6SnS7z/a08TxMpnvP9T9ENkPSu8/fp+7blvl7j9hwT+d2WvuPx3X8SV13u0/an9v7Dw+7T/J6jXBYIzsP3ckRQEuyus/Hrx+2gv56j860L80dxrqP/UlI4D+L+k/8kBDgz076D8OB1Pe2D3nP/fyr6N5OeY/TMjFIMkv5T/OuHiRbCLkP/+ZWhkBE+M/L5wx7RcD4j9j2QbNMvTgP01ahnKBz98/zY9k+zW+3T8VxjeQBbfbP+AHrag9vNk/YDMKk/PP1z/zHfzEAfTVP0qFZ/gFKtQ/5808FGBz0j+NyjQ3MtHQP9jRevDBiM4/ryd4Eiqbyz/ISJPeedrIP7XPWyMfR8Y/PVdCFB/hwz+1zQFAHajBP026kLvGNr8/LgwmONRzuz9mkgUKxAS4P4BUFsd55rQ/YkhOJm4Vsj+kFYSXhRuvP+yy6yCnlqo/l6hBRZOTpj8+eC/vWAmjP9XnrEfI3Z8/bM9NFzl2mj/08djo/8mVPw8LtaZ5x5E/VRds+h67jD/+pLEosveGPzy3lup+JYI/pfu1zFROfD9nH1R3n8J1PwXEfxU7dXA/dH+znJ1vaD/T8PMAksBhP/dS2/qnI1k/P8Gs7XlAUT/xQgCR+sJGP3uyzVM+gDw/JlGSIvCPMD/HVG5gehQhP32Jfzcgqws/8WjjiLX45D4=");
base64DecodeToExistingUint8Array(bufferView, 52545, "0VAAAAAAAAU=");
base64DecodeToExistingUint8Array(bufferView, 52564, "AQ==");
base64DecodeToExistingUint8Array(bufferView, 52588, "AgAAAAMAAAC40A==");
base64DecodeToExistingUint8Array(bufferView, 52612, "Ag==");
base64DecodeToExistingUint8Array(bufferView, 52627, "//////8=");
base64DecodeToExistingUint8Array(bufferView, 52868, "4NA=");
}
var scratchBuffer = new ArrayBuffer(16);
var i32ScratchView = new Int32Array(scratchBuffer);
var f32ScratchView = new Float32Array(scratchBuffer);
var f64ScratchView = new Float64Array(scratchBuffer);
function wasm2js_scratch_load_i32(index) {
return i32ScratchView[index];
}
function wasm2js_scratch_store_i32(index, value) {
i32ScratchView[index] = value;
}
function wasm2js_scratch_load_f64() {
return f64ScratchView[0];
}
function wasm2js_scratch_store_f64(value) {
f64ScratchView[0] = value;
}
function wasm2js_scratch_store_f32(value) {
f32ScratchView[2] = value;
}
function wasm2js_scratch_load_f32() {
return f32ScratchView[2];
}
function asmFunc(env) {
var memory = env.memory;
var buffer = memory.buffer;
var HEAP8 = new Int8Array(buffer);
var HEAP16 = new Int16Array(buffer);
var HEAP32 = new Int32Array(buffer);
var HEAPU8 = new Uint8Array(buffer);
var HEAPU16 = new Uint16Array(buffer);
var HEAPU32 = new Uint32Array(buffer);
var HEAPF32 = new Float32Array(buffer);
var HEAPF64 = new Float64Array(buffer);
var Math_imul = Math.imul;
var Math_fround = Math.fround;
var Math_abs = Math.abs;
var Math_clz32 = Math.clz32;
var Math_min = Math.min;
var Math_max = Math.max;
var Math_floor = Math.floor;
var Math_ceil = Math.ceil;
var Math_trunc = Math.trunc;
var Math_sqrt = Math.sqrt;
var abort = env.abort;
var nan = NaN;
var infinity = Infinity;
var emscripten_resize_heap = env.emscripten_resize_heap;
var emscripten_memcpy_big = env.emscripten_memcpy_big;
var __wasi_fd_close = env.fd_close;
var __wasi_fd_write = env.fd_write;
var abort = env.abort;
var setTempRet0 = env.setTempRet0;
var legalimport$__wasi_fd_seek = env.fd_seek;
var __stack_pointer = 5296384;
var i64toi32_i32$HIGH_BITS = 0;
// EMSCRIPTEN_START_FUNCS
function opus_encode_native($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) {
var $13 = 0, $14 = 0, $15 = 0, $16 = Math_fround(0), $17 = Math_fround(0), $18 = 0, $19 = 0, $20 = 0, $21 = Math_fround(0), $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = Math_fround(0), $27 = 0, $28 = Math_fround(0), $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = Math_fround(0), $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = Math_fround(0), $48 = Math_fround(0), $49 = Math_fround(0), $50 = 0, $51 = 0, $52 = 0;
$15 = __stack_pointer - 624 | 0;
__stack_pointer = $15;
$14 = $15;
HEAP32[$14 + 616 >> 2] = 0;
HEAP32[$0 + 18136 >> 2] = 0;
$13 = -1;
label$1 : {
if (($2 | 0) < 1) {
break label$1;
}
$23 = ($4 | 0) < 1276 ? $4 : 1276;
if (($23 | 0) < 1) {
break label$1;
}
if (($23 | 0) == 1) {
$13 = -2;
if (HEAP32[$0 + 144 >> 2] == (Math_imul($2, 10) | 0)) {
break label$1;
}
}
$19 = HEAP32[$0 >> 2] + $0 | 0;
$22 = HEAP32[$0 + 4 >> 2];
$38 = HEAP32[$0 + 108 >> 2] != 2051 ? HEAP32[$0 + 116 >> 2] : $38;
$13 = HEAP32[$0 + 168 >> 2];
HEAP32[$14 + 416 >> 2] = $14 + 612;
opus_custom_encoder_ctl($19, 10015, $14 + 416 | 0);
HEAP32[$14 + 544 >> 2] = 0;
$20 = ($5 | 0) < ($13 | 0) ? $5 : $13;
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
label$9 : {
if (HEAP32[$0 + 44 >> 2] < 7) {
break label$9;
}
$29 = HEAP32[$0 + 144 >> 2];
if (($29 | 0) < 16e3) {
break label$9;
}
$41 = 1;
$5 = Math_imul(HEAP32[$0 + 112 >> 2], $2);
if (($5 | 0) >= 1) {
$13 = 0;
while (1) {
$16 = HEAPF32[($13 << 2) + $1 >> 2];
$21 = $16 > $21 ? $21 : $16;
$17 = $16 < $17 ? $17 : $16;
$13 = $13 + 1 | 0;
if (($13 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$24 = HEAP32[$0 + 7640 >> 2];
$30 = HEAP32[$0 + 7636 >> 2];
run_analysis($0 + 188 | 0, HEAP32[$14 + 612 >> 2], $6, $7, $2, $8, $9, $10, $29, $20, $11, $14 + 544 | 0);
$16 = Math_fround(-$21);
$5 = 0;
if (Math_fround(Math_fround(1) / Math_fround(1 << $20)) >= ($16 < $17 ? $17 : $16)) {
break label$4;
}
if (HEAPF32[$14 + 580 >> 2] > Math_fround(.10000000149011612) ^ 1) {
break label$5;
}
$21 = Math_fround(HEAPF32[$0 + 18128 >> 2] * Math_fround(.9990000128746033));
$5 = Math_imul(HEAP32[$0 + 112 >> 2], $2);
if (($5 | 0) < 1) {
break label$8;
}
$13 = 0;
$16 = Math_fround(0);
while (1) {
$17 = HEAPF32[($13 << 2) + $1 >> 2];
$16 = Math_fround($16 + Math_fround($17 * $17));
$13 = $13 + 1 | 0;
if (($13 | 0) != ($5 | 0)) {
continue;
}
break;
}
$26 = Math_fround($5 | 0);
if (Math_fround($16 / $26) < $21) {
break label$6;
}
$13 = 0;
$16 = Math_fround(0);
while (1) {
$17 = HEAPF32[($13 << 2) + $1 >> 2];
$16 = Math_fround($16 + Math_fround($17 * $17));
$13 = $13 + 1 | 0;
if (($13 | 0) != ($5 | 0)) {
continue;
}
break;
}
break label$7;
}
$24 = -1;
if (HEAP32[$0 + 7648 >> 2]) {
tonality_analysis_reset($0 + 188 | 0);
}
$30 = -1;
break label$5;
}
$16 = Math_fround(0);
$26 = Math_fround($5 | 0);
if (Math_fround(Math_fround(0) / $26) < $21) {
break label$6;
}
}
$21 = Math_fround($16 / $26);
}
HEAPF32[$0 + 18128 >> 2] = $21;
}
HEAP32[$0 + 140 >> 2] = -1;
$41 = 0;
$5 = 1;
}
$51 = $5;
HEAP32[$0 + 18120 >> 2] = 0;
if (HEAP32[$14 + 544 >> 2]) {
if (HEAP32[$0 + 124 >> 2] == -1e3) {
$5 = $0;
label$19 : {
label$20 : {
$13 = HEAP32[$0 + 14228 >> 2];
if (($13 | 0) != 1002) {
if ($13) {
break label$20;
}
$13 = $14 + 564 | 0;
break label$19;
}
$13 = $14 + 572 | 0;
break label$19;
}
$13 = $14 + 568 | 0;
}
$46 = Math_floor(+Math_fround(Math_fround(Math_fround(1) - HEAPF32[$13 >> 2]) * Math_fround(100)) + .5);
label$18 : {
if (Math_abs($46) < 2147483648) {
$13 = ~~$46;
break label$18;
}
$13 = -2147483648;
}
HEAP32[$5 + 140 >> 2] = $13;
}
$6 = $0;
$5 = HEAP32[$14 + 576 >> 2];
$13 = 1101;
label$23 : {
if (($5 | 0) < 13) {
break label$23;
}
$13 = 1102;
if (($5 | 0) < 15) {
break label$23;
}
$13 = 1103;
if (($5 | 0) < 17) {
break label$23;
}
$13 = ($5 | 0) < 19 ? 1104 : 1105;
}
HEAP32[$6 + 18120 >> 2] = $13;
}
$16 = Math_fround(0);
if (!(HEAP32[$0 + 120 >> 2] == 1 | HEAP32[$0 + 112 >> 2] != 2)) {
$16 = compute_stereo_width($1, $2, HEAP32[$0 + 144 >> 2], $0 + 14260 | 0);
}
$5 = $2 ? $2 : HEAP32[$0 + 144 >> 2] / 400 | 0;
label$26 : {
label$27 : {
$13 = HEAP32[$0 + 164 >> 2];
if (($13 | 0) != -1e3) {
if (($13 | 0) == -1) {
break label$27;
}
$6 = HEAP32[$0 + 144 >> 2];
break label$26;
}
$6 = HEAP32[$0 + 144 >> 2];
$13 = Math_imul($6, HEAP32[$0 + 112 >> 2]) + ((Math_imul($6, 60) | 0) / ($5 | 0) | 0) | 0;
break label$26;
}
$6 = HEAP32[$0 + 144 >> 2];
$13 = (Math_imul($23, $6) << 3) / ($5 | 0) | 0;
}
HEAP32[$0 + 160 >> 2] = $13;
$5 = ($6 | 0) / ($2 | 0) | 0;
label$29 : {
label$30 : {
label$31 : {
$7 = HEAP32[$0 + 148 >> 2];
label$32 : {
if (!$7) {
$8 = (Math_imul($6, 12) | 0) / ($2 | 0) | 0;
$13 = ((($8 | 0) / 2 | 0) + ((Math_imul($13, 12) | 0) / 8 | 0) | 0) / ($8 | 0) | 0;
$23 = ($13 | 0) < ($23 | 0) ? $13 : $23;
$13 = (Math_imul($8, $23) << 3) / 12 | 0;
HEAP32[$0 + 160 >> 2] = $13;
$8 = 1;
if (($23 | 0) < 2) {
break label$32;
}
}
label$34 : {
if (($23 | 0) < 3 | (Math_imul($5, 24) | 0) > ($13 | 0)) {
break label$34;
}
$29 = Math_imul($5, $23);
if (($5 | 0) > 49) {
break label$31;
}
if (($29 | 0) < 300) {
break label$34;
}
if (($13 | 0) >= 2400) {
break label$30;
}
}
$8 = $23;
}
$13 = HEAP32[$0 + 14240 >> 2];
$13 = $13 ? $13 : 1101;
$6 = 0;
$2 = HEAP32[$0 + 14224 >> 2];
$15 = ($5 | 0) > 100 ? 1002 : $2 ? $2 : 1e3;
$1 = ($5 | 0) == 25 & ($15 | 0) != 1e3;
$23 = $1 ? 50 : $5;
label$35 : {
if (($23 | 0) > 16) {
$2 = $23;
break label$35;
}
if (!(($23 | 0) == 10 | ($15 | 0) != 1e3 ? ($4 | 0) != 1 : 0)) {
$1 = ($23 | 0) < 13;
$15 = 1e3;
$2 = ($23 | 0) == 12 ? 25 : 16;
break label$35;
}
$6 = 50 / ($23 | 0) | 0;
$1 = 3;
$2 = 50;
}
label$39 : {
if (($13 | 0) >= 1104) {
$4 = 1103;
if (($15 | 0) == 1e3) {
break label$39;
}
}
if (($13 | 0) == 1102) {
$4 = 1101;
if (($15 | 0) == 1002) {
break label$39;
}
}
$4 = ($13 | 0) < 1105 ? ($15 | 0) == 1001 ? 1104 : $13 : $13;
}
$23 = HEAP32[$0 + 14192 >> 2];
$13 = 0;
if (($2 | 0) <= 399) {
while (1) {
$13 = $13 + 1 | 0;
$2 = $2 << 1;
if (($2 | 0) < 400) {
continue;
}
break;
}
$13 = $13 << 3;
}
$2 = $3;
label$44 : {
label$45 : {
switch ($15 - 1e3 | 0) {
case 0:
$13 = $13 - 16 | ($4 << 5) + 96 & 224;
break label$44;
case 2:
$13 = ((($4 | 0) > 1102 ? $4 : 1102) << 5) - -64 & 96 | $13 | 128;
break label$44;
default:
break label$45;
}
}
$13 = $13 + 240 | $4 << 4 | 96;
}
HEAP8[$2 | 0] = $13 | ((($23 | 0) == 2) << 2 | $1);
$13 = $1 >>> 0 < 2;
if (($1 | 0) == 3) {
HEAP8[$3 + 1 | 0] = $6;
}
$13 = $13 ? 1 : 2;
if (HEAP32[$0 + 148 >> 2]) {
break label$1;
}
$0 = ($8 | 0) > ($13 | 0) ? $8 : $13;
$13 = opus_packet_pad($3, $13, $0) ? -3 : $0;
break label$1;
}
$42 = $29 << 3;
$9 = HEAP32[$0 + 40 >> 2];
$34 = HEAP32[$0 + 44 >> 2];
$8 = HEAP32[$0 + 112 >> 2];
$10 = $13;
if (($5 | 0) == 50) {
break label$29;
}
$44 = 1;
$10 = Math_imul(Math_imul($8, -40) - 20 | 0, $5 - 50 | 0) + $13 | 0;
break label$29;
}
$42 = $29 << 3;
$9 = HEAP32[$0 + 40 >> 2];
$34 = HEAP32[$0 + 44 >> 2];
$8 = HEAP32[$0 + 112 >> 2];
$10 = $13;
}
$10 = $7 ? $10 : (($10 | 0) / -12 | 0) + $10 | 0;
$32 = $34 + 90 | 0;
$25 = (Math_imul($10, $32) | 0) / 100 | 0;
$36 = Math_imul($9, 12) + 20 | 0;
$18 = (Math_imul($25, $9) | 0) / ($36 | 0) | 0;
$10 = 127;
label$49 : {
label$50 : {
switch (HEAP32[$0 + 124 >> 2] - 3001 | 0) {
case 1:
$10 = 0;
break label$49;
case 0:
break label$49;
default:
break label$50;
}
}
$10 = HEAP32[$0 + 140 >> 2];
if (($10 | 0) >= 0) {
$10 = Math_imul($10, 327) >> 8;
if (HEAP32[$0 + 108 >> 2] != 2049) {
break label$49;
}
$10 = ($10 | 0) < 115 ? $10 : 115;
break label$49;
}
$10 = HEAP32[$0 + 108 >> 2] == 2048 ? 115 : 48;
}
$11 = HEAP32[$0 + 120 >> 2];
label$53 : {
label$54 : {
if (($11 | 0) != -1e3) {
if (($8 | 0) != 2) {
break label$54;
}
HEAP32[$0 + 14192 >> 2] = $11;
$8 = $11;
break label$53;
}
if (($8 | 0) != 2) {
break label$54;
}
$8 = ((Math_imul(Math_imul($10, $10), 2e3) >>> 14 | 0) + (HEAP32[$0 + 14192 >> 2] == 2 ? 16e3 : 18e3) | 0) < ($25 - $18 | 0) ? 2 : 1;
}
HEAP32[$0 + 14192 >> 2] = $8;
}
$25 = !(HEAP32[$14 + 544 >> 2] | $41) & HEAP32[$0 + 184 >> 2] != 0;
HEAP32[$0 + 56 >> 2] = $25;
$11 = $44 ? Math_imul(Math_imul($8, -40) - 20 | 0, $5 - 50 | 0) + $13 | 0 : $13;
$11 = $7 ? $11 : (($11 | 0) / -12 | 0) + $11 | 0;
$11 = (Math_imul($32, $11) | 0) / 100 | 0;
$27 = (Math_imul($11, $9) | 0) / ($36 | 0) | 0;
$33 = HEAP32[$0 + 108 >> 2];
label$57 : {
if (($33 | 0) == 2051) {
$11 = 1002;
HEAP32[$0 + 14224 >> 2] = 1002;
$25 = $0 + 14224 | 0;
$33 = (($6 | 0) / 100 | 0) > ($2 | 0);
break label$57;
}
$18 = HEAP32[$0 + 136 >> 2];
label$59 : {
if (($18 | 0) == -1e3) {
$31 = $0;
$27 = $11 - $27 | 0;
$17 = Math_fround(Math_fround(1) - $16);
$21 = Math_fround(Math_fround($16 * Math_fround(1e4)) + Math_fround($17 * Math_fround(1e4)));
label$61 : {
if (Math_fround(Math_abs($21)) < Math_fround(2147483648)) {
$18 = ~~$21;
break label$61;
}
$18 = -2147483648;
}
$39 = $18;
$16 = Math_fround(Math_fround($16 * Math_fround(44e3)) + Math_fround($17 * Math_fround(64e3)));
label$63 : {
if (Math_fround(Math_abs($16)) < Math_fround(2147483648)) {
$11 = ~~$16;
break label$63;
}
$11 = -2147483648;
}
$11 = $39 + (Math_imul($11 - $18 | 0, Math_imul($10, $10)) >> 14) | 0;
$11 = ($33 | 0) == 2048 ? $11 + 8e3 | 0 : $11;
$18 = HEAP32[$0 + 14228 >> 2];
$18 = ($27 | 0) < ((($18 | 0) == 1002 ? $11 - 4e3 | 0 : ($18 | 0) > 0 ? $11 + 4e3 | 0 : $11) | 0) ? 1e3 : 1002;
HEAP32[$31 + 14224 >> 2] = $18;
if (!(!HEAP32[$0 + 48 >> 2] | 128 - $10 >> 4 >= ($9 | 0))) {
HEAP32[$0 + 14224 >> 2] = 1e3;
$18 = 1e3;
}
$11 = (Math_imul($44 ? 9e3 : 6e3, $2) | 0) / ($6 << 3) | 0;
if (($23 | 0) >= ($11 | 0) ? !(($10 | 0) > 100 & $25) : 0) {
break label$59;
}
$18 = ($11 | 0) > ($23 | 0) ? 1002 : 1e3;
}
HEAP32[$0 + 14224 >> 2] = $18;
}
$25 = $0 + 14224 | 0;
$6 = ($6 | 0) / 100 | 0;
$33 = ($6 | 0) > ($2 | 0);
if (($2 | 0) >= ($6 | 0)) {
$11 = $18;
break label$57;
}
$11 = 1002;
if (($18 | 0) == 1002) {
$11 = $18;
break label$57;
}
HEAP32[$25 >> 2] = 1002;
}
if (HEAP32[$0 + 176 >> 2]) {
HEAP32[$25 >> 2] = 1002;
$11 = 1002;
}
$27 = 0;
label$69 : {
label$70 : {
label$71 : {
$18 = HEAP32[$0 + 14228 >> 2];
if (($18 | 0) < 1) {
break label$71;
}
if (!(($11 | 0) != 1002 ? ($18 | 0) == 1002 : 0)) {
if (($11 | 0) != 1002) {
break label$71;
}
$6 = 1002;
if (($18 | 0) == 1002) {
break label$70;
}
}
$6 = 1002;
$45 = 1;
label$73 : {
if (($11 | 0) != 1002) {
$43 = 1;
$6 = $11;
break label$73;
}
$31 = 0;
if ($33) {
break label$69;
}
HEAP32[$25 >> 2] = $18;
$45 = 0;
$27 = 1;
$6 = $18;
}
$31 = 1;
break label$69;
}
$6 = $11;
}
$45 = 1;
$31 = 0;
}
label$75 : {
label$76 : {
if (($8 | 0) != 1 | HEAP32[$0 + 14232 >> 2] != 2 | (HEAP32[$0 + 68 >> 2] | ($18 | 0) == 1002)) {
break label$76;
}
if (($6 | 0) == 1002) {
break label$76;
}
$8 = 2;
HEAP32[$0 + 14192 >> 2] = 2;
HEAP32[$0 + 68 >> 2] = 1;
break label$75;
}
HEAP32[$0 + 68 >> 2] = 0;
}
$33 = $0 + $22 | 0;
$13 = $44 ? Math_imul(Math_imul($8, -40) - 20 | 0, $5 - 50 | 0) + $13 | 0 : $13;
$13 = $7 ? $13 : (($13 | 0) / -12 | 0) + $13 | 0;
$8 = (Math_imul($32, $13) | 0) / 100 | 0;
$39 = $0;
label$78 : {
label$79 : {
label$80 : {
label$81 : {
label$82 : {
label$83 : {
label$84 : {
if (($6 & -2) == 1e3) {
$7 = 1;
$11 = 1002;
$32 = 0;
$8 = ($34 | 0) <= 1 ? ($8 << 2) / 5 | 0 : $8;
$8 = $8 - ((Math_imul($8, $9) | 0) / (Math_imul($9, 6) + 10 | 0) | 0) | 0;
$9 = $8;
if (($6 | 0) != 1002) {
break label$84;
}
break label$83;
}
$11 = 1002;
if (($6 | 0) == 1002) {
$32 = 0;
$7 = 1;
if (($34 | 0) > 4) {
break label$83;
}
$8 = (Math_imul($8, 9) | 0) / 10 | 0;
break label$83;
}
$9 = $8 - ((Math_imul($8, $9) | 0) / ($36 | 0) | 0) | 0;
}
$8 = $9;
$32 = 0;
if (($18 | 0) == 1002) {
silk_InitEncoder($33, HEAP32[$0 + 180 >> 2], $14 + 440 | 0);
$32 = 1;
$6 = HEAP32[$0 + 14224 >> 2];
}
$7 = 1;
if (($6 | 0) == 1002) {
break label$83;
}
$7 = 0;
if (HEAP32[$0 + 84 >> 2] ? 0 : !HEAP32[$0 + 14252 >> 2]) {
break label$82;
}
$11 = $6;
}
$13 = Math_imul($10, $10);
$9 = (Math_imul($13, 2e3) >> 14) + 12e3 | 0;
$10 = (Math_imul($13, 2500) >> 14) + 11e3 | 0;
label$89 : {
label$90 : {
$6 = HEAP32[$0 + 14252 >> 2];
if (!$6) {
$13 = 1105;
$22 = 1;
if (((HEAP32[$0 + 14244 >> 2] < 1105 ? 2e3 : -2e3) + $9 | 0) <= ($8 | 0)) {
break label$80;
}
if ($6) {
break label$89;
}
if (HEAP32[$0 + 14244 >> 2] < 1104) {
break label$90;
}
$10 = $10 - 1e3 | 0;
break label$89;
}
if (($8 | 0) < ($9 | 0)) {
break label$89;
}
HEAP32[$0 + 14240 >> 2] = 1105;
HEAP32[$0 + 14244 >> 2] = 1105;
$13 = 1105;
break label$79;
}
$10 = $10 + 1e3 | 0;
}
if (($8 | 0) >= ($10 | 0)) {
$13 = 1104;
$22 = 1;
break label$80;
}
if (!$6) {
$13 = 1103;
$22 = 0;
if (((HEAP32[$0 + 14244 >> 2] < 1103 ? 9700 : 8300) | 0) <= ($8 | 0)) {
break label$80;
}
$13 = 9e3;
if ($6) {
break label$81;
}
$13 = HEAP32[$0 + 14244 >> 2] < 1102 ? 9700 : 8300;
break label$81;
}
$13 = 9e3;
if (($8 | 0) < 9e3) {
break label$81;
}
HEAP32[$0 + 14240 >> 2] = 1103;
HEAP32[$0 + 14244 >> 2] = 1103;
$13 = 1103;
break label$79;
}
$13 = HEAP32[$0 + 14240 >> 2];
break label$78;
}
$13 = ($8 | 0) < ($13 | 0) ? 1101 : 1103;
$22 = 0;
}
HEAP32[$39 + 14240 >> 2] = $13;
HEAP32[$0 + 14244 >> 2] = $13;
if ($6 | $7 | (HEAP32[$0 + 88 >> 2] | $22 ^ 1)) {
break label$79;
}
$13 = 1103;
HEAP32[$0 + 14240 >> 2] = 1103;
}
$6 = $11;
}
$9 = HEAP32[$0 + 132 >> 2];
if (($13 | 0) > ($9 | 0)) {
HEAP32[$0 + 14240 >> 2] = $9;
$13 = $9;
}
$9 = HEAP32[$0 + 128 >> 2];
if (($9 | 0) != -1e3) {
HEAP32[$0 + 14240 >> 2] = $9;
$13 = $9;
}
if (!(($6 | 0) == 1002 | ($29 | 0) > 1874)) {
$13 = ($13 | 0) < 1103 ? $13 : 1103;
HEAP32[$0 + 14240 >> 2] = $13;
}
$6 = HEAP32[$0 + 144 >> 2];
label$97 : {
if (($6 | 0) > 24e3) {
$22 = $13;
break label$97;
}
$22 = 1104;
label$99 : {
label$100 : {
label$101 : {
label$102 : {
if (($13 | 0) <= 1104) {
if (($6 | 0) >= 16001) {
$22 = $13;
break label$97;
}
if (($13 | 0) > 1103) {
break label$102;
}
if (($6 | 0) < 12001) {
break label$101;
}
$22 = $13;
break label$97;
}
HEAP32[$0 + 14240 >> 2] = 1104;
if (($6 | 0) >= 16001) {
break label$97;
}
}
$22 = 1103;
HEAP32[$0 + 14240 >> 2] = 1103;
if (($6 | 0) >= 12001) {
break label$97;
}
break label$100;
}
if (($13 | 0) > 1102) {
break label$100;
}
if (($6 | 0) > 8e3) {
$22 = $13;
break label$97;
}
$22 = $13;
if (($13 | 0) != 1102) {
break label$97;
}
break label$99;
}
$22 = 1102;
HEAP32[$0 + 14240 >> 2] = 1102;
if (($6 | 0) > 8e3) {
break label$97;
}
}
$22 = 1101;
HEAP32[$0 + 14240 >> 2] = 1101;
}
$13 = HEAP32[$0 + 18120 >> 2];
if (!(!$13 | ($9 | 0) != -1e3)) {
$11 = $0;
$18 = $13;
$9 = HEAP32[$0 + 14192 >> 2];
label$107 : {
label$108 : {
if ((Math_imul($9, 18e3) | 0) >= ($8 | 0)) {
$10 = 0;
if (!$7) {
break label$108;
}
$7 = 1;
$6 = 1101;
break label$107;
}
if ((Math_imul($9, 24e3) | 0) < ($8 | 0)) {
$10 = $7;
break label$108;
}
$10 = $7;
$6 = 1102;
if (!($7 ^ 1)) {
break label$107;
}
}
$7 = $10;
$6 = (Math_imul($9, 3e4) | 0) < ($8 | 0) ? (Math_imul($9, 44e3) | 0) < ($8 | 0) ? 1105 : 1104 : 1103;
}
$13 = ($6 | 0) < ($13 | 0) ? $18 : $6;
HEAP32[$11 + 18120 >> 2] = $13;
$22 = ($13 | 0) > ($22 | 0) ? $22 : $13;
HEAP32[$0 + 14240 >> 2] = $22;
}
$13 = 0;
label$113 : {
if (!HEAP32[$0 + 48 >> 2] | $7) {
break label$113;
}
$6 = HEAP32[$0 + 40 >> 2];
if (!$6) {
break label$113;
}
$7 = 125 - (($6 | 0) < 25 ? $6 : 25) | 0;
$9 = HEAP32[$0 + 52 >> 2];
$10 = ($9 | 0) == 1;
$11 = ($6 | 0) < 6;
$13 = $22;
label$114 : {
while (1) {
$6 = $13 << 3;
$18 = HEAP32[$6 + 41864 >> 2];
$6 = HEAP32[$6 + 41868 >> 2];
$6 = Math_imul(($18 - ($10 ? $6 : 0) | 0) + ($9 ? 0 : $6) | 0, $7);
$6 = (Math_imul($6 & 65535, 655) >>> 16 | 0) + Math_imul($6 >> 16, 655) | 0;
if (($8 | 0) > ($6 | 0) | $11) {
break label$114;
}
if (($13 | 0) > 1101) {
$13 = $13 - 1 | 0;
HEAP32[$0 + 14240 >> 2] = $13;
continue;
}
break;
}
HEAP32[$0 + 14240 >> 2] = $22;
$13 = 0;
break label$113;
}
$13 = ($6 | 0) < ($8 | 0);
}
HEAP32[$0 + 52 >> 2] = $13;
HEAP32[$14 + 400 >> 2] = $20;
opus_custom_encoder_ctl($19, 4036, $14 + 400 | 0);
$13 = HEAP32[$0 + 14224 >> 2];
if (!(($13 | 0) != 1002 | HEAP32[$0 + 14240 >> 2] != 1102)) {
HEAP32[$0 + 14240 >> 2] = 1103;
}
label$118 : {
label$119 : {
label$120 : {
label$121 : {
label$122 : {
label$123 : {
if (HEAP32[$0 + 176 >> 2]) {
$11 = 1101;
HEAP32[$0 + 14240 >> 2] = 1101;
break label$123;
}
$11 = HEAP32[$0 + 14240 >> 2];
if (($13 | 0) != 1e3) {
break label$123;
}
if (($11 | 0) > 1103) {
break label$122;
}
}
if (!(($13 | 0) != 1001 | ($11 | 0) > 1103)) {
HEAP32[$25 >> 2] = 1e3;
$13 = 1e3;
}
$7 = HEAP32[$0 + 144 >> 2];
$6 = ($7 | 0) / 50 | 0;
if (($6 | 0) < ($2 | 0)) {
break label$121;
}
$9 = $13;
break label$120;
}
$9 = 1001;
HEAP32[$0 + 14224 >> 2] = 1001;
$7 = HEAP32[$0 + 144 >> 2];
$6 = ($7 | 0) / 50 | 0;
if (($6 | 0) < ($2 | 0) | ((Math_imul($7, 3) | 0) / 50 | 0) < ($2 | 0)) {
break label$119;
}
break label$118;
}
$9 = 1e3;
if (($13 | 0) != 1e3) {
break label$119;
}
}
$13 = Math_imul($7, 3);
$10 = ($13 | 0) / 50 | 0;
if (($10 | 0) >= ($2 | 0)) {
break label$118;
}
if (($9 | 0) != 1e3) {
break label$119;
}
if ((($7 << 1) / 25 | 0) == ($2 | 0)) {
$6 = ($7 | 0) / 25 | 0;
break label$119;
}
$6 = (($13 | 0) / 25 | 0) == ($2 | 0) ? $10 : $6;
}
$13 = ($2 | 0) / ($6 | 0) | 0;
if (($30 | 0) != -1) {
HEAP32[$0 + 7640 >> 2] = $24;
HEAP32[$0 + 7636 >> 2] = $30;
}
$13 = encode_multiframe_packet($0, $1, $13, $6, $3, $4, $27, $20, $12);
break label$1;
}
if (HEAP32[$0 + 14248 >> 2]) {
HEAP32[$0 + 14248 >> 2] = 0;
$43 = 1;
$31 = 1;
$32 = 2;
}
$13 = HEAP32[$0 + 160 >> 2];
$30 = 0;
label$129 : {
if (!$31) {
$18 = 0;
$4 = 0;
break label$129;
}
$18 = 0;
$4 = 0;
if (($9 | 0) == 1002) {
break label$129;
}
$6 = HEAP32[$0 + 14192 >> 2];
$4 = Math_imul($6, 40) + 20 | 0;
$9 = (Math_imul(Math_imul($4, 200 - $5 | 0) + $13 | 0, 3) | 0) / 3200 | 0;
$4 = (((Math_imul(($23 << 3) - ($4 << 1) | 0, 240) | 0) / ((48e3 / ($5 | 0) | 0) + 240 | 0) | 0) + $4 | 0) / 8 | 0;
$4 = ($4 | 0) > ($9 | 0) ? $9 : $4;
$30 = ($6 << 3 | 4) < ($4 | 0) ? ($4 | 0) < 257 ? $4 : 257 : 0;
$18 = ($30 | 0) != 0;
$4 = $18;
}
$39 = $4;
$40 = $3 + 1 | 0;
$22 = $23 - 1 | 0;
ec_enc_init($14 + 440 | 0, $40, $22);
$34 = $2 + $38 | 0;
$4 = $15 - ((Math_imul($34, HEAP32[$0 + 112 >> 2]) << 2) + 15 & -16) | 0;
$20 = $4;
__stack_pointer = $4;
$31 = $0 + 14280 | 0;
$15 = HEAP32[$0 + 112 >> 2];
$9 = memcpy($4, $31 + (Math_imul($15, HEAP32[$0 + 172 >> 2] - $38 | 0) << 2) | 0, Math_imul($15, $38) << 2);
$27 = (Math_imul($2, $13) | 0) / ($7 << 3) | 0;
$6 = $0;
label$131 : {
if (HEAP32[$0 + 14224 >> 2] == 1002) {
$13 = silk_lin2log(60) << 8;
break label$131;
}
$13 = HEAP32[$33 + 8 >> 2];
}
$4 = HEAP32[$0 + 14200 >> 2];
$13 = $13 - $4 | 0;
$13 = Math_imul($13 >> 16, 983) + $4 + (Math_imul($13 & 65535, 983) >>> 16) | 0;
HEAP32[$6 + 14200 >> 2] = $13;
$24 = $0 + 14208 | 0;
$15 = silk_log2lin($13 >> 8);
$6 = HEAP32[$0 + 112 >> 2];
$13 = (Math_imul($38, $6) << 2) + $9 | 0;
$4 = HEAP32[$0 + 144 >> 2];
label$133 : {
if (HEAP32[$0 + 108 >> 2] == 2048) {
$4 = (Math_imul($15 << 16 >> 16, 2471) | 0) / (($4 | 0) / 1e3 | 0) | 0;
if (($2 | 0) < 1) {
break label$133;
}
$15 = $4 << 16 >> 16;
$7 = ((Math_imul($15, $4 >> 16) + (Math_imul($4 & 65535, $15) >> 16) | 0) + Math_imul(($4 >> 15) + 1 >> 1, $4) | 0) - 8388608 | 0;
$10 = $7 << 16 >> 16;
$15 = Math_imul($4, -471) + 268435456 | 0;
$4 = $15 >> 6;
$37 = $4 & 65535;
$36 = $15 >> 22;
$35 = Math_fround(Math_fround(((Math_imul($10, $37) >> 16) + Math_imul($36, $10) | 0) + Math_imul(($7 >> 15) + 1 >> 1, $4) | 0) * Math_fround(3.725290298461914e-9));
$7 = Math_imul(($15 >> 21) + 1 >> 1, $4);
$4 = $4 << 16 >> 16;
$47 = Math_fround(Math_fround(($7 + Math_imul($36, $4) | 0) + (Math_imul($4, $37) >> 16) | 0) * Math_fround(3.725290298461914e-9));
$48 = Math_fround(Math_fround($15 | 0) * Math_fround(3.725290298461914e-9));
$4 = 0;
$49 = Math_fround(Math_fround(0 - ($15 << 1) | 0) * Math_fround(3.725290298461914e-9));
$17 = HEAPF32[$0 + 14212 >> 2];
$21 = HEAPF32[$0 + 14208 >> 2];
while (1) {
$15 = Math_imul($4, $6) << 2;
$26 = HEAPF32[$15 + $1 >> 2];
$16 = Math_fround($48 * $26);
$28 = $16;
$16 = Math_fround($21 + $16);
$28 = Math_fround(Math_fround($28 - Math_fround($47 * $16)) + Math_fround(1.0000000031710769e-30));
HEAPF32[$0 + 14212 >> 2] = $28;
$21 = Math_fround(Math_fround($49 * $26) + Math_fround($17 - Math_fround($35 * $16)));
HEAPF32[$0 + 14208 >> 2] = $21;
HEAPF32[$13 + $15 >> 2] = $16;
$17 = $28;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
if (($6 | 0) != 2) {
break label$133;
}
$7 = $13 + 4 | 0;
$10 = $1 + 4 | 0;
$17 = HEAPF32[$0 + 14220 >> 2];
$21 = HEAPF32[$0 + 14216 >> 2];
$4 = 0;
while (1) {
$15 = $4 << 3;
$26 = HEAPF32[$15 + $10 >> 2];
$16 = Math_fround($48 * $26);
$28 = $16;
$16 = Math_fround($21 + $16);
$28 = Math_fround(Math_fround($28 - Math_fround($47 * $16)) + Math_fround(1.0000000031710769e-30));
HEAPF32[$0 + 14220 >> 2] = $28;
$21 = Math_fround(Math_fround($49 * $26) + Math_fround($17 - Math_fround($35 * $16)));
HEAPF32[$0 + 14216 >> 2] = $21;
HEAPF32[$7 + $15 >> 2] = $16;
$17 = $28;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$133;
}
$17 = Math_fround(Math_fround(18.900001525878906) / Math_fround($4 | 0));
$21 = Math_fround(Math_fround(1) - $17);
$16 = HEAPF32[$24 >> 2];
if (($6 | 0) != 2) {
$4 = 0;
if (($2 | 0) > 0) {
while (1) {
$15 = $4 << 2;
$26 = HEAPF32[$15 + $1 >> 2];
HEAPF32[$13 + $15 >> 2] = $26 - $16;
$16 = Math_fround(Math_fround($21 * $16) + Math_fround(Math_fround($17 * $26) + Math_fround(1.0000000031710769e-30)));
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
HEAPF32[$24 >> 2] = $16;
break label$133;
}
$26 = HEAPF32[$0 + 14216 >> 2];
if (($2 | 0) >= 1) {
$4 = 0;
while (1) {
$15 = $4 << 3;
$7 = $15 | 4;
$28 = HEAPF32[$7 + $1 >> 2];
$35 = HEAPF32[$1 + $15 >> 2];
HEAPF32[$13 + $15 >> 2] = $35 - $16;
HEAPF32[$7 + $13 >> 2] = $28 - $26;
$16 = Math_fround(Math_fround($21 * $16) + Math_fround(Math_fround($17 * $35) + Math_fround(1.0000000031710769e-30)));
$26 = Math_fround(Math_fround($21 * $26) + Math_fround(Math_fround($17 * $28) + Math_fround(1.0000000031710769e-30)));
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
HEAPF32[$0 + 14216 >> 2] = $26;
HEAPF32[$0 + 14208 >> 2] = $16;
}
label$142 : {
if (!$12) {
break label$142;
}
$16 = Math_fround(0);
$15 = Math_imul($2, $6);
if (($15 | 0) >= 1) {
$4 = 0;
while (1) {
$17 = HEAPF32[($4 << 2) + $13 >> 2];
$16 = Math_fround($16 + Math_fround($17 * $17));
$4 = $4 + 1 | 0;
if (($15 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
if ($16 == $16 ? !($16 < Math_fround(1e9) ^ 1) : 0) {
break label$142;
}
memset($13, 0, $15 << 2);
HEAP32[$24 + 8 >> 2] = 0;
HEAP32[$24 + 12 >> 2] = 0;
HEAP32[$24 >> 2] = 0;
HEAP32[$24 + 4 >> 2] = 0;
}
$21 = Math_fround(1);
label$145 : {
if (HEAP32[$25 >> 2] != 1002) {
$4 = 1;
$36 = $20;
$10 = $20 - ((Math_imul($2, $6) << 1) + 15 & -16) | 0;
__stack_pointer = $10;
$26 = HEAPF32[$14 + 580 >> 2];
$52 = HEAP32[$14 + 544 >> 2];
$13 = $23 - $30 | 0;
$27 = Math_imul(((($13 | 0) < ($27 | 0) ? $13 : $27) << 3) - 8 | 0, $5);
label$147 : {
label$148 : {
label$149 : {
label$150 : {
label$151 : {
label$152 : {
$24 = HEAP32[$25 >> 2];
if (($24 | 0) == 1001) {
$6 = (HEAP32[$0 + 52 >> 2] << 1) + (HEAP32[$0 + 144 >> 2] == (Math_imul($2, 50) | 0) ? 2 : 1) | 0;
$12 = HEAP32[$0 + 148 >> 2];
$15 = HEAP32[$0 + 14192 >> 2];
$13 = ($27 | 0) / ($15 | 0) | 0;
if (($13 | 0) < 12e3) {
break label$152;
}
$4 = 2;
if (($13 | 0) < 16e3) {
break label$152;
}
$4 = 3;
if (($13 | 0) < 2e4) {
break label$152;
}
$4 = 4;
if (($13 | 0) < 24e3) {
break label$152;
}
$4 = 5;
if (($13 | 0) < 32e3) {
break label$152;
}
$4 = 6;
if (($13 | 0) < 64e3) {
break label$152;
}
$4 = HEAP32[($6 << 2) + 50840 >> 2] + (($13 - 64e3 | 0) / 2 | 0) | 0;
break label$151;
}
HEAP32[$0 + 36 >> 2] = $27;
$12 = HEAP32[$0 + 14256 >> 2];
if ($12) {
break label$150;
}
$6 = $27;
break label$147;
}
$4 = Math_imul($4, 20);
$7 = $4 + 50720 | 0;
$20 = HEAP32[$7 >> 2];
$4 = $4 + 50700 | 0;
$6 = $6 << 2;
$37 = Math_imul($20 - $13 | 0, HEAP32[$4 + $6 >> 2]);
$4 = HEAP32[$4 >> 2];
$4 = ($37 + Math_imul(HEAP32[$6 + $7 >> 2], $13 - $4 | 0) | 0) / ($20 - $4 | 0) | 0;
}
$4 = $12 ? $4 : $4 + 100 | 0;
$4 = Math_imul(($11 | 0) == 1104 ? $4 + 300 | 0 : $4, $15);
$6 = ($15 | 0) == 2 ? ($13 | 0) > 11999 ? $4 - 1e3 | 0 : $4 : $4;
HEAP32[$0 + 36 >> 2] = $6;
$12 = HEAP32[$0 + 14256 >> 2];
if (!$12) {
break label$149;
}
$27 = $6;
}
if (HEAP32[$0 + 148 >> 2]) {
break label$148;
}
$6 = $27;
break label$147;
}
$21 = Math_fround(Math_fround(1) - Math_fround(exp(+Math_fround(Math_fround($6 - $27 | 0) * Math_fround(.0009765625)) * .6931471805599453)));
break label$147;
}
if (HEAP32[$0 + 176 >> 2]) {
$6 = $27;
break label$147;
}
$28 = Math_fround(8e3);
$7 = 13;
label$155 : {
label$156 : {
label$157 : {
$50 = HEAP32[$0 + 14240 >> 2];
switch ($50 - 1101 | 0) {
case 0:
break label$155;
case 1:
break label$157;
default:
break label$156;
}
}
$28 = Math_fround(12e3);
$7 = 15;
break label$155;
}
$28 = Math_fround(16e3);
$7 = 17;
}
$17 = Math_fround(0);
$37 = HEAP32[$0 + 112 >> 2];
if (($37 | 0) >= 1) {
$20 = 0;
while (1) {
$6 = Math_imul($20, 21);
$13 = 0;
while (1) {
$16 = HEAPF32[($6 + $13 << 2) + $12 >> 2];
$35 = $16;
$4 = $16 < Math_fround(.5);
$15 = ($4 ? $16 : Math_fround(.5)) > Math_fround(-2);
$16 = $15 ? Math_fround(.5) : Math_fround(-2);
$16 = $15 ? $4 ? $35 : $16 : $16;
$17 = Math_fround($17 + ($16 > Math_fround(0) ? Math_fround($16 * Math_fround(.5)) : $16));
$13 = $13 + 1 | 0;
if (($13 | 0) != ($7 | 0)) {
continue;
}
break;
}
$20 = $20 + 1 | 0;
if (($37 | 0) != ($20 | 0)) {
continue;
}
break;
}
}
$13 = (0 - ($27 << 1) | 0) / 3 | 0;
$16 = Math_fround($28 * Math_fround(Math_fround(Math_fround($17 / Math_fround($7 | 0)) * Math_fround($37 | 0)) + Math_fround(.20000000298023224)));
label$161 : {
if (Math_fround(Math_abs($16)) < Math_fround(2147483648)) {
$4 = ~~$16;
break label$161;
}
$4 = -2147483648;
}
$13 = ($4 | 0) > ($13 | 0) ? $4 : $13;
$13 = ($50 & -2) == 1104 ? (Math_imul($13, 3) | 0) / 5 | 0 : $13;
$6 = $27 + $13 | 0;
HEAP32[$0 + 36 >> 2] = $6;
}
$15 = HEAP32[$0 + 112 >> 2];
HEAP32[$0 + 8 >> 2] = $15;
$7 = HEAP32[$0 + 14192 >> 2];
HEAP32[$0 + 12 >> 2] = $7;
$4 = HEAP32[$0 + 144 >> 2];
HEAP32[$0 + 32 >> 2] = (Math_imul($2, 1e3) | 0) / ($4 | 0);
$13 = 8e3;
$12 = 8e3;
label$164 : {
label$165 : {
switch ($11 - 1101 | 0) {
default:
$12 = 12e3;
$13 = 16e3;
if (($11 | 0) == 1103 | ($24 | 0) == 1001) {
break label$164;
}
celt_fatal(50496, 50583, 1755);
abort();
case 0:
break label$164;
case 1:
break label$165;
}
}
$13 = 12e3;
$12 = 12e3;
}
HEAP32[$0 + 28 >> 2] = $13;
HEAP32[$0 + 20 >> 2] = 16e3;
HEAP32[$0 + 24 >> 2] = ($24 | 0) == 1001 ? 16e3 : 8e3;
label$167 : {
if (($24 | 0) != 1e3) {
break label$167;
}
$42 = $44 ? ($29 << 4) / 3 | 0 : $42;
if (($42 | 0) > 7999) {
break label$167;
}
HEAP32[$0 + 20 >> 2] = 12e3;
HEAP32[$0 + 28 >> 2] = $12;
if (($42 | 0) > 6999) {
break label$167;
}
HEAP32[$0 + 28 >> 2] = 8e3;
HEAP32[$0 + 20 >> 2] = 8e3;
}
$12 = $26 >= Math_fround(.10000000149011612);
$13 = $22 << 3;
HEAP32[$0 - -64 >> 2] = $13;
$20 = HEAP32[$0 + 148 >> 2];
HEAP32[$0 + 60 >> 2] = !$20;
label$168 : {
label$169 : {
label$170 : {
label$171 : {
if (!($18 ^ 1 | ($30 | 0) < 2)) {
$13 = ($30 << 3 ^ -1) + $13 | 0;
HEAP32[$0 + 64 >> 2] = $13;
if (($24 | 0) != 1001) {
break label$168;
}
$13 = $13 - 20 | 0;
HEAP32[$0 + 64 >> 2] = $13;
if (!$20) {
break label$169;
}
break label$171;
}
if (!$20) {
break label$170;
}
if (($24 | 0) != 1001) {
break label$168;
}
}
$6 = 1;
$20 = (HEAP32[$0 + 52 >> 2] << 1) + ((Math_imul($2, 50) | 0) == ($4 | 0) ? 2 : 1) | 0;
$18 = $0;
label$173 : {
label$174 : {
$13 = ((Math_imul($4, $13) | 0) / ($2 | 0) | 0) / ($7 | 0) | 0;
if (($13 | 0) < 12e3) {
break label$174;
}
$6 = 2;
if (($13 | 0) < 16e3) {
break label$174;
}
$6 = 3;
if (($13 | 0) < 2e4) {
break label$174;
}
$6 = 4;
if (($13 | 0) < 24e3) {
break label$174;
}
$6 = 5;
if (($13 | 0) < 32e3) {
break label$174;
}
$6 = 6;
if (($13 | 0) < 64e3) {
break label$174;
}
$6 = HEAP32[($20 << 2) + 50840 >> 2] + (($13 - 64e3 | 0) / 2 | 0) | 0;
break label$173;
}
$6 = Math_imul($6, 20);
$29 = $6 + 50720 | 0;
$24 = HEAP32[$29 >> 2];
$6 = $6 + 50700 | 0;
$20 = $20 << 2;
$27 = Math_imul($24 - $13 | 0, HEAP32[$6 + $20 >> 2]);
$6 = HEAP32[$6 >> 2];
$6 = ($27 + Math_imul(HEAP32[$20 + $29 >> 2], $13 - $6 | 0) | 0) / ($24 - $6 | 0) | 0;
}
$6 = Math_imul(($11 | 0) == 1104 ? $6 + 300 | 0 : $6, $7);
HEAP32[$18 + 64 >> 2] = (Math_imul(($7 | 0) == 2 ? ($13 | 0) > 11999 ? $6 - 1e3 | 0 : $6 : $6, $2) | 0) / ($4 | 0);
break label$168;
}
if (($24 | 0) != 1001) {
break label$168;
}
}
$6 = (Math_imul($2, $6) | 0) / ($4 | 0) | 0;
HEAP32[$0 + 64 >> 2] = ($6 | 0) > ($13 | 0) ? $13 : $6;
}
$6 = $0 + 8 | 0;
$12 = $52 ? $12 : -1;
if ($32) {
$13 = 0;
HEAP32[$14 + 432 >> 2] = 0;
$7 = ($4 | 0) / 400 | 0;
$20 = Math_imul((HEAP32[$0 + 172 >> 2] - $7 | 0) - HEAP32[$0 + 116 >> 2] | 0, $15) << 2;
$29 = ($20 + $0 | 0) + 14280 | 0;
$24 = HEAP32[$14 + 612 >> 2];
gain_fade($29, $29, Math_fround(0), Math_fround(1), HEAP32[$24 + 4 >> 2], $7, $15, HEAP32[$24 + 60 >> 2], $4);
memset($31, 0, $20);
$15 = HEAP32[$0 + 172 >> 2];
$4 = Math_imul($15, HEAP32[$0 + 112 >> 2]);
if (($4 | 0) >= 1) {
while (1) {
$16 = Math_fround(HEAPF32[(($13 << 2) + $0 | 0) + 14280 >> 2] * Math_fround(32768));
$16 = $16 > Math_fround(-32768) ? $16 : Math_fround(-32768);
HEAP16[($13 << 1) + $10 >> 1] = lrintf($16 < Math_fround(32767) ? $16 : Math_fround(32767));
$13 = $13 + 1 | 0;
if (($13 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
silk_Encode($33, $6, $10, $15, 0, $14 + 432 | 0, $32, $12);
HEAP32[$0 + 72 >> 2] = 0;
$15 = HEAP32[$0 + 112 >> 2];
}
$4 = Math_imul($2, $15);
if (($4 | 0) >= 1) {
$15 = Math_imul($15, $38);
$13 = 0;
while (1) {
$16 = Math_fround(HEAPF32[($13 + $15 << 2) + $9 >> 2] * Math_fround(32768));
$16 = $16 > Math_fround(-32768) ? $16 : Math_fround(-32768);
HEAP16[($13 << 1) + $10 >> 1] = lrintf($16 < Math_fround(32767) ? $16 : Math_fround(32767));
$13 = $13 + 1 | 0;
if (($13 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$13 = -3;
label$181 : {
if (!silk_Encode($33, $6, $10, $2, $14 + 440 | 0, $14 + 620 | 0, 0, $12)) {
$13 = HEAP32[$0 + 80 >> 2];
label$183 : {
label$184 : {
$4 = HEAP32[$0 + 14224 >> 2];
if (($4 | 0) == 1e3) {
if (($13 | 0) == 8e3) {
$11 = 1101;
break label$183;
}
if (($13 | 0) == 16e3) {
break label$184;
}
if (($13 | 0) != 12e3) {
break label$183;
}
$11 = 1102;
break label$183;
}
if (($13 | 0) == 16e3) {
break label$183;
}
celt_fatal(50602, 50583, 1863);
abort();
}
$11 = 1103;
}
label$187 : {
if (HEAP32[$0 + 96 >> 2]) {
$13 = HEAP32[$0 + 18132 >> 2];
HEAP32[$0 + 72 >> 2] = !$13;
if (!HEAP32[$14 + 620 >> 2]) {
break label$187;
}
if ($13) {
break label$181;
}
HEAP32[$0 + 14248 >> 2] = 1;
$43 = 0;
$4 = HEAP32[$0 + 14192 >> 2];
$13 = Math_imul($4, 40) + 20 | 0;
$15 = (Math_imul(HEAP32[$0 + 160 >> 2] + Math_imul($13, 200 - $5 | 0) | 0, 3) | 0) / 3200 | 0;
$13 = (((Math_imul(($23 << 3) - ($13 << 1) | 0, 240) | 0) / ((48e3 / ($5 | 0) | 0) + 240 | 0) | 0) + $13 | 0) / 8 | 0;
$13 = ($13 | 0) > ($15 | 0) ? $15 : $13;
$30 = ($4 << 3 | 4) < ($13 | 0) ? ($13 | 0) < 257 ? $13 : 257 : 0;
$39 = ($30 | 0) != 0;
break label$181;
}
HEAP32[$0 + 72 >> 2] = 0;
if (HEAP32[$14 + 620 >> 2]) {
break label$181;
}
}
$13 = 0;
HEAP32[$0 + 18136 >> 2] = 0;
$1 = HEAP32[$0 + 14192 >> 2];
$0 = HEAP32[$0 + 144 >> 2] / ($2 | 0) | 0;
if (($0 | 0) <= 399) {
while (1) {
$13 = $13 + 1 | 0;
$0 = $0 << 1;
if (($0 | 0) < 400) {
continue;
}
break;
}
$13 = $13 << 3;
}
label$191 : {
label$192 : {
switch ($4 - 1e3 | 0) {
case 0:
$0 = $13 - 16 | ($11 << 5) + 96 & 224;
break label$191;
case 2:
$0 = ((($11 | 0) > 1102 ? $11 : 1102) << 5) - -64 & 96 | $13 | 128;
break label$191;
default:
break label$192;
}
}
$0 = $13 + 240 | $11 << 4 | 96;
}
HEAP8[$3 | 0] = $0 | (($1 | 0) == 2) << 2;
$13 = 1;
}
break label$145;
}
$20 = $36;
}
$13 = 21;
$4 = $11 - 1101 | 0;
if ($4 >>> 0 <= 3) {
$13 = HEAP32[($4 << 2) + 50860 >> 2];
}
HEAP32[$14 + 384 >> 2] = $13;
opus_custom_encoder_ctl($19, 10012, $14 + 384 | 0);
HEAP32[$14 + 368 >> 2] = HEAP32[$0 + 14192 >> 2];
opus_custom_encoder_ctl($19, 10008, $14 + 368 | 0);
HEAP32[$14 + 352 >> 2] = -1;
opus_custom_encoder_ctl($19, 4002, $14 + 352 | 0);
label$196 : {
if (HEAP32[$0 + 14224 >> 2] == 1e3) {
$13 = HEAP32[$0 + 112 >> 2];
$10 = $20 - (((Math_imul($13, HEAP32[$0 + 144 >> 2]) | 0) / 400 << 2) + 15 & -16) | 0;
__stack_pointer = $10;
break label$196;
}
HEAP32[$14 + 336 >> 2] = 0;
opus_custom_encoder_ctl($19, 4006, $14 + 336 | 0);
HEAP32[$14 + 320 >> 2] = !HEAP32[$0 + 76 >> 2] << 1;
opus_custom_encoder_ctl($19, 10002, $14 + 320 | 0);
$13 = HEAP32[$0 + 148 >> 2];
$4 = HEAP32[$0 + 14224 >> 2];
label$198 : {
label$199 : {
label$200 : {
if (($4 | 0) == 1001) {
if (!$13) {
$13 = HEAP32[$0 + 112 >> 2];
$15 = HEAP32[$0 + 144 >> 2];
$5 = (Math_imul($13, $15) | 0) / 400 | 0;
$10 = $20 - (($5 << 2) + 15 & -16) | 0;
__stack_pointer = $10;
$4 = 1001;
break label$198;
}
HEAP32[$14 + 256 >> 2] = HEAP32[$0 + 160 >> 2] - HEAP32[$0 + 36 >> 2];
opus_custom_encoder_ctl($19, 4002, $14 + 256 | 0);
HEAP32[$14 + 240 >> 2] = 0;
opus_custom_encoder_ctl($19, 4020, $14 + 240 | 0);
break label$200;
}
if (!$13) {
break label$199;
}
HEAP32[$14 + 304 >> 2] = 1;
opus_custom_encoder_ctl($19, 4006, $14 + 304 | 0);
HEAP32[$14 + 288 >> 2] = HEAP32[$0 + 152 >> 2];
opus_custom_encoder_ctl($19, 4020, $14 + 288 | 0);
HEAP32[$14 + 272 >> 2] = HEAP32[$0 + 160 >> 2];
opus_custom_encoder_ctl($19, 4002, $14 + 272 | 0);
}
$4 = HEAP32[$25 >> 2];
}
$13 = HEAP32[$0 + 112 >> 2];
$15 = HEAP32[$0 + 144 >> 2];
$5 = (Math_imul($13, $15) | 0) / 400 | 0;
$10 = $20 - (($5 << 2) + 15 & -16) | 0;
__stack_pointer = $10;
if (($4 | 0) == 1e3) {
break label$196;
}
}
$6 = HEAP32[$0 + 14228 >> 2];
if (($6 | 0) == ($4 | 0) | ($6 | 0) < 1) {
break label$196;
}
memcpy($10, ((Math_imul(HEAP32[$0 + 172 >> 2] + ((($15 | 0) / -400 | 0) - $38 | 0) | 0, $13) << 2) + $0 | 0) + 14280 | 0, $5 << 2);
}
$4 = HEAP32[$0 + 172 >> 2];
$15 = Math_imul($4 - $34 | 0, $13);
label$203 : {
if (($15 | 0) >= 1) {
$4 = $0 + 14280 | 0;
$15 = $15 << 2;
memmove($31, $4 + (Math_imul($2, $13) << 2) | 0, $15);
memcpy($4 + $15 | 0, $9, Math_imul($13, $34) << 2);
break label$203;
}
memcpy($31, (Math_imul($34 - $4 | 0, $13) << 2) + $9 | 0, Math_imul($4, $13) << 2);
}
$16 = HEAPF32[$0 + 14204 >> 2];
if (!($16 < Math_fround(1) ^ 1 ? !($21 < Math_fround(1)) : 0)) {
$13 = HEAP32[$14 + 612 >> 2];
gain_fade($9, $9, $16, $21, HEAP32[$13 + 4 >> 2], $2, HEAP32[$0 + 112 >> 2], HEAP32[$13 + 60 >> 2], HEAP32[$0 + 144 >> 2]);
}
HEAPF32[$0 + 14204 >> 2] = $21;
$5 = HEAP32[$0 + 14224 >> 2];
if (!(HEAP32[$0 + 14192 >> 2] != 1 ? ($5 | 0) == 1001 : 0)) {
$4 = $0;
$13 = 16384;
label$208 : {
if (($8 | 0) > 32e3) {
break label$208;
}
$13 = 0;
if (($8 | 0) < 16e3) {
break label$208;
}
$13 = 16384 - ((65536e3 - ($8 << 11) | 0) / ($8 - 14e3 | 0) | 0) | 0;
}
HEAP32[$4 + 92 >> 2] = $13;
}
label$209 : {
if (HEAP32[$0 + 14256 >> 2] | HEAP32[$0 + 112 >> 2] != 2) {
break label$209;
}
$4 = HEAP16[$0 + 14196 >> 1];
$8 = HEAP32[$0 + 92 >> 2];
if (($8 | 0) > 16383 ? ($4 | 0) >= 16384 : 0) {
break label$209;
}
$21 = Math_fround(Math_fround(1) - Math_fround(Math_fround($8 | 0) * Math_fround(6103515625e-14)));
$13 = 0;
$15 = HEAP32[$14 + 612 >> 2];
$12 = 48e3 / HEAP32[$0 + 144 >> 2] | 0;
$6 = HEAP32[$15 + 4 >> 2] / ($12 | 0) | 0;
if (($6 | 0) > 0) {
$26 = Math_fround(Math_fround(1) - Math_fround(Math_fround($4 | 0) * Math_fround(6103515625e-14)));
$7 = HEAP32[$15 + 60 >> 2];
while (1) {
$4 = $13 << 3;
$15 = $9 + $4 | 0;
$16 = HEAPF32[$15 >> 2];
$28 = $16;
$17 = HEAPF32[(Math_imul($12, $13) << 2) + $7 >> 2];
$17 = Math_fround($17 * $17);
$35 = Math_fround(Math_fround($21 * $17) + Math_fround($26 * Math_fround(Math_fround(1) - $17)));
$4 = ($4 | 4) + $9 | 0;
$17 = HEAPF32[$4 >> 2];
$16 = Math_fround($35 * Math_fround(Math_fround($16 - $17) * Math_fround(.5)));
HEAPF32[$15 >> 2] = $28 - $16;
HEAPF32[$4 >> 2] = $17 + $16;
$13 = $13 + 1 | 0;
if (($13 | 0) != ($6 | 0)) {
continue;
}
break;
}
$13 = $6;
}
if (($2 | 0) > ($13 | 0)) {
while (1) {
$4 = $13 << 3;
$15 = $9 + $4 | 0;
$16 = HEAPF32[$15 >> 2];
$28 = $16;
$4 = ($4 | 4) + $9 | 0;
$17 = HEAPF32[$4 >> 2];
$16 = Math_fround($21 * Math_fround(Math_fround($16 - $17) * Math_fround(.5)));
HEAPF32[$15 >> 2] = $28 - $16;
HEAPF32[$4 >> 2] = $17 + $16;
$13 = $13 + 1 | 0;
if (($13 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
HEAP16[$0 + 14196 >> 1] = $8;
}
label$215 : {
label$216 : {
if (($5 | 0) == 1002 | (Math_clz32(HEAP32[$14 + 468 >> 2]) + (HEAP32[$14 + 460 >> 2] + (($5 | 0) == 1001 ? 5 : -15) | 0) | 0) > $22 << 3) {
break label$216;
}
if (($5 | 0) == 1001) {
ec_enc_bit_logp($14 + 440 | 0, $39, 12);
}
if (!$39) {
break label$216;
}
$6 = 1;
ec_enc_bit_logp($14 + 440 | 0, $43, 1);
$13 = HEAP32[$14 + 460 >> 2] + Math_clz32(HEAP32[$14 + 468 >> 2]) | 0;
$4 = $13 - 21 | 0;
$5 = $13 - 32 | 0;
$13 = HEAP32[$25 >> 2];
$4 = $22 - ((($13 | 0) == 1001 ? $4 : $5) + 7 >> 3) | 0;
$4 = ($4 | 0) < ($30 | 0) ? $4 : $30;
$4 = ($4 | 0) > 2 ? $4 : 2;
$5 = ($4 | 0) < 257 ? $4 : 257;
$7 = 0;
if (($13 | 0) != 1001) {
break label$215;
}
ec_enc_uint($14 + 440 | 0, $5 - 2 | 0, 256);
break label$215;
}
$6 = 0;
HEAP32[$0 + 14248 >> 2] = 0;
$7 = 1;
$5 = 0;
}
$12 = HEAP32[$25 >> 2];
label$218 : {
if (($12 | 0) == 1e3) {
$13 = HEAP32[$14 + 468 >> 2];
$4 = HEAP32[$14 + 460 >> 2];
ec_enc_done($14 + 440 | 0);
$13 = (Math_clz32($13) + $4 | 0) - 25 >> 3;
$15 = $13;
break label$218;
}
$13 = $22 - $5 | 0;
ec_enc_shrink($14 + 440 | 0, $13);
$15 = 0;
}
label$220 : {
if (!(HEAP32[$25 >> 2] != 1e3 | $6)) {
$4 = $43;
$8 = 0;
break label$220;
}
HEAP32[$14 + 224 >> 2] = $14 + 544;
opus_custom_encoder_ctl($19, 10022, $14 + 224 | 0);
if (HEAP32[$25 >> 2] == 1001) {
HEAP32[$14 + 432 >> 2] = HEAP32[$0 + 100 >> 2];
HEAP32[$14 + 436 >> 2] = HEAP32[$0 + 104 >> 2];
HEAP32[$14 + 208 >> 2] = $14 + 432;
opus_custom_encoder_ctl($19, 10028, $14 + 208 | 0);
}
$4 = $43;
$8 = 0;
if (!($6 & $4)) {
break label$220;
}
HEAP32[$14 + 192 >> 2] = 0;
opus_custom_encoder_ctl($19, 10010, $14 + 192 | 0);
HEAP32[$14 + 176 >> 2] = 0;
opus_custom_encoder_ctl($19, 4006, $14 + 176 | 0);
HEAP32[$14 + 160 >> 2] = -1;
opus_custom_encoder_ctl($19, 4002, $14 + 160 | 0);
if ((celt_encode_with_ec($19, $9, HEAP32[$0 + 144 >> 2] / 200 | 0, $13 + $40 | 0, $5, 0) | 0) < 0) {
$13 = -3;
break label$145;
}
HEAP32[$14 + 144 >> 2] = $14 + 616;
opus_custom_encoder_ctl($19, 4031, $14 + 144 | 0);
opus_custom_encoder_ctl($19, 4028, 0);
$4 = 1;
$8 = 1;
}
HEAP32[$14 + 128 >> 2] = ($12 | 0) == 1002 ? 0 : 17;
opus_custom_encoder_ctl($19, 10010, $14 + 128 | 0);
$12 = HEAP32[$25 >> 2];
label$224 : {
if (($12 | 0) == 1e3) {
break label$224;
}
$20 = HEAP32[$0 + 14228 >> 2];
if (!(($20 | 0) == ($12 | 0) | ($20 | 0) < 1)) {
opus_custom_encoder_ctl($19, 4028, 0);
celt_encode_with_ec($19, $10, HEAP32[$0 + 144 >> 2] / 400 | 0, $14 + 432 | 0, 2, 0);
HEAP32[$14 + 112 >> 2] = 0;
opus_custom_encoder_ctl($19, 10002, $14 + 112 | 0);
}
if (((HEAP32[$14 + 460 >> 2] + Math_clz32(HEAP32[$14 + 468 >> 2]) | 0) - 32 | 0) > $13 << 3) {
break label$224;
}
if (!(!HEAP32[$0 + 148 >> 2] | (!$8 | HEAP32[$25 >> 2] != 1001))) {
HEAP32[$14 + 96 >> 2] = HEAP32[$0 + 160 >> 2] - HEAP32[$0 + 36 >> 2];
opus_custom_encoder_ctl($19, 4002, $14 + 96 | 0);
}
HEAP32[$14 + 80 >> 2] = HEAP32[$0 + 148 >> 2];
opus_custom_encoder_ctl($19, 4006, $14 + 80 | 0);
$15 = celt_encode_with_ec($19, $9, $2, 0, $13, $14 + 440 | 0);
if (($15 | 0) < 0) {
$13 = -3;
break label$145;
}
if (!HEAP32[$0 + 148 >> 2] | (!$8 | HEAP32[$25 >> 2] != 1001)) {
break label$224;
}
memmove($15 + $40 | 0, $13 + $40 | 0, $5);
$13 = $5 + $13 | 0;
}
label$228 : {
if (!($4 | $7)) {
$4 = HEAP32[$0 + 144 >> 2];
opus_custom_encoder_ctl($19, 4028, 0);
HEAP32[$14 + 64 >> 2] = 0;
opus_custom_encoder_ctl($19, 10010, $14 - -64 | 0);
HEAP32[$14 + 48 >> 2] = 0;
opus_custom_encoder_ctl($19, 10002, $14 + 48 | 0);
HEAP32[$14 + 32 >> 2] = 0;
opus_custom_encoder_ctl($19, 4006, $14 + 32 | 0);
HEAP32[$14 + 16 >> 2] = -1;
opus_custom_encoder_ctl($19, 4002, $14 + 16 | 0);
$12 = ($4 | 0) / 400 | 0;
$4 = ($4 | 0) / 200 | 0;
if (HEAP32[$0 + 14224 >> 2] == 1001) {
ec_enc_shrink($14 + 440 | 0, $15);
$13 = $15;
}
$7 = $2 - $4 | 0;
celt_encode_with_ec($19, (Math_imul(HEAP32[$0 + 112 >> 2], $7 - $12 | 0) << 2) + $9 | 0, $12, $14 + 432 | 0, 2, 0);
if ((celt_encode_with_ec($19, (Math_imul(HEAP32[$0 + 112 >> 2], $7) << 2) + $9 | 0, $4, $13 + $40 | 0, $5, 0) | 0) < 0) {
break label$228;
}
HEAP32[$14 >> 2] = $14 + 616;
opus_custom_encoder_ctl($19, 4031, $14);
}
$12 = HEAP32[$0 + 14192 >> 2];
$7 = HEAP32[$0 + 14224 >> 2];
$13 = 0;
$4 = HEAP32[$0 + 144 >> 2] / ($2 | 0) | 0;
if (($4 | 0) <= 399) {
while (1) {
$13 = $13 + 1 | 0;
$4 = $4 << 1;
if (($4 | 0) < 400) {
continue;
}
break;
}
$13 = $13 << 3;
}
$4 = $3;
label$233 : {
label$234 : {
switch ($7 - 1e3 | 0) {
case 0:
$13 = $13 - 16 | ($11 << 5) + 96 & 224;
break label$233;
case 2:
$13 = ((($11 | 0) > 1102 ? $11 : 1102) << 5) - -64 & 96 | $13 | 128;
break label$233;
default:
break label$234;
}
}
$13 = $13 + 240 | $11 << 4 | 96;
}
HEAP8[$4 | 0] = $13 | (($12 | 0) == 2) << 2;
$12 = HEAP32[$14 + 468 >> 2];
HEAP32[$0 + 18136 >> 2] = $12 ^ HEAP32[$14 + 616 >> 2];
$13 = 1002;
$13 = $45 ? HEAP32[$25 >> 2] : $13;
HEAP32[$0 + 14228 >> 2] = $13;
HEAP32[$0 + 14252 >> 2] = 0;
HEAP32[$0 + 14236 >> 2] = $2;
$7 = HEAP32[$0 + 14192 >> 2];
HEAP32[$0 + 14232 >> 2] = $7;
label$238 : {
if (!(!HEAP32[$0 + 184 >> 2] | !(HEAP32[$14 + 544 >> 2] | $41))) {
label$240 : {
if (!($51 ^ 1 | HEAPF32[$14 + 580 >> 2] < Math_fround(.10000000149011612) ^ 1)) {
$21 = HEAPF32[$0 + 18128 >> 2];
$16 = Math_fround(0);
$4 = Math_imul(HEAP32[$0 + 112 >> 2], $2);
if (($4 | 0) >= 1) {
$13 = 0;
while (1) {
$17 = HEAPF32[($13 << 2) + $1 >> 2];
$16 = Math_fround($16 + Math_fround($17 * $17));
$13 = $13 + 1 | 0;
if (($13 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$41 = Math_fround(Math_fround($16 / Math_fround($4 | 0)) * Math_fround(316.2300109863281)) <= $21;
}
if ($41) {
$13 = HEAP32[$0 + 18124 >> 2];
HEAP32[$0 + 18124 >> 2] = $13 + 1;
if (($13 | 0) < 10) {
break label$238;
}
if (($13 | 0) < 30) {
break label$240;
}
HEAP32[$0 + 18124 >> 2] = 10;
break label$238;
}
HEAP32[$0 + 18124 >> 2] = 0;
break label$238;
}
$13 = 0;
HEAP32[$0 + 18136 >> 2] = 0;
$1 = HEAP32[$0 + 14224 >> 2];
$0 = HEAP32[$0 + 144 >> 2] / ($2 | 0) | 0;
if (($0 | 0) <= 399) {
while (1) {
$13 = $13 + 1 | 0;
$0 = $0 << 1;
if (($0 | 0) < 400) {
continue;
}
break;
}
$13 = $13 << 3;
}
label$248 : {
label$249 : {
switch ($1 - 1e3 | 0) {
case 0:
$0 = $13 - 16 | ($11 << 5) + 96 & 224;
break label$248;
case 2:
$0 = ((($11 | 0) > 1102 ? $11 : 1102) << 5) - -64 & 96 | $13 | 128;
break label$248;
default:
break label$249;
}
}
$0 = $13 + 240 | $11 << 4 | 96;
}
HEAP8[$3 | 0] = $0 | (($7 | 0) == 2) << 2;
$13 = 1;
break label$145;
}
HEAP32[$0 + 18124 >> 2] = 0;
}
label$252 : {
if (((HEAP32[$14 + 460 >> 2] + Math_clz32($12) | 0) - 32 | 0) > $22 << 3) {
HEAP8[$40 | 0] = 0;
HEAP32[$0 + 18136 >> 2] = 0;
$15 = 1;
break label$252;
}
if (HEAP32[$25 >> 2] != 1e3 | $6 | ($15 | 0) < 3) {
break label$252;
}
while (1) {
if (HEAPU8[$3 + $15 | 0]) {
break label$252;
}
$13 = ($15 | 0) > 3;
$15 = $15 - 1 | 0;
if ($13) {
continue;
}
break;
}
$15 = 2;
}
$2 = ($5 + $15 | 0) + 1 | 0;
label$255 : {
if (HEAP32[$0 + 148 >> 2]) {
$23 = $2;
break label$255;
}
$13 = -3;
if (opus_packet_pad($3, $2, $23)) {
break label$145;
}
}
$13 = $23;
break label$145;
}
$13 = -3;
}
}
__stack_pointer = $14 + 624 | 0;
return $13;
}
function celt_encode_with_ec($0, $1, $2, $3, $4, $5) {
var $6 = Math_fround(0), $7 = 0, $8 = Math_fround(0), $9 = 0, $10 = Math_fround(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, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = Math_fround(0), $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = Math_fround(0), $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, $60 = 0, $61 = 0, $62 = 0, $63 = Math_fround(0), $64 = 0, $65 = 0, $66 = Math_fround(0), $67 = 0, $68 = Math_fround(0), $69 = Math_fround(0), $70 = 0, $71 = Math_fround(0), $72 = Math_fround(0);
$39 = __stack_pointer - 192 | 0;
__stack_pointer = $39;
$13 = HEAP32[$0 + 8 >> 2];
$11 = HEAP32[$0 + 4 >> 2];
$16 = $39;
HEAP32[$16 + 28 >> 2] = 15;
HEAP32[$16 + 24 >> 2] = 0;
HEAP32[$16 + 20 >> 2] = 0;
HEAP32[$16 + 16 >> 2] = 0;
HEAP32[$16 + 4 >> 2] = 0;
$14 = HEAP32[$0 + 36 >> 2];
$20 = HEAP32[$0 + 32 >> 2];
$19 = HEAP32[$0 >> 2];
$18 = HEAP32[$19 + 32 >> 2];
$24 = HEAP32[$19 + 4 >> 2];
$30 = HEAP32[$19 + 8 >> 2];
HEAP32[$16 + 12 >> 2] = 0;
$7 = -1;
label$1 : {
if (!$1 | ($4 | 0) < 2) {
break label$1;
}
$21 = HEAP32[$19 + 36 >> 2];
if (($21 | 0) < 0) {
break label$1;
}
$37 = Math_imul(HEAP32[$0 + 28 >> 2], $2);
$28 = HEAP32[$19 + 44 >> 2];
while (1) {
if ($28 << $15 != ($37 | 0)) {
$2 = ($15 | 0) < ($21 | 0);
$15 = $15 + 1 | 0;
if ($2) {
continue;
}
break label$1;
}
break;
}
label$4 : {
if (!$5) {
$57 = 1;
$9 = 1;
$17 = 0;
break label$4;
}
$57 = ec_tell_frac($5);
$2 = HEAP32[$5 + 20 >> 2] + Math_clz32(HEAP32[$5 + 28 >> 2]) | 0;
$9 = $2 - 32 | 0;
$17 = $2 - 28 >> 3;
}
label$6 : {
label$7 : {
if (!HEAP32[$0 + 48 >> 2]) {
$21 = $24 + 1024 | 0;
$26 = ($4 | 0) < 1275 ? $4 : 1275;
$29 = $26 - $17 | 0;
$2 = HEAP32[$0 + 40 >> 2];
label$9 : {
if (HEAP32[$0 + 44 >> 2]) {
if (($2 | 0) == -1) {
break label$7;
}
$28 = HEAP32[$19 >> 2];
$42 = (Math_imul($2, $37) + ($28 >> 4) | 0) / ($28 >> 3) | 0;
$35 = $42 >> 6;
break label$9;
}
if (($2 | 0) == -1) {
break label$7;
}
$28 = HEAP32[$19 >> 2];
$28 = ((Math_imul($2, $37) + (($9 | 0) > 1 ? $9 : 0) | 0) + ($28 << 2) | 0) / ($28 << 3) | 0;
$28 = ($28 | 0) > ($26 | 0) ? $26 : $28;
$26 = ($28 | 0) > 2 ? $28 : 2;
$35 = $26 - $17 | 0;
}
$7 = $2;
break label$6;
}
celt_fatal(42472, 42508, 1547);
abort();
}
$35 = $29;
}
$2 = Math_imul($11, $21);
$48 = 3 - $15 | 0;
$21 = Math_imul($26, 400);
if (!$5) {
ec_enc_init($16 + 32 | 0, $3, $26);
$5 = $16 + 32 | 0;
}
$53 = $0 + 244 | 0;
$2 = $2 << 2;
$50 = Math_imul($11, $30);
$3 = $21 >> $48;
label$12 : {
if (!HEAP32[$0 + 52 >> 2] | ($42 | 0) < 1) {
break label$12;
}
$21 = (($9 | 0) == 1) << 1;
$28 = ($42 << 1) - HEAP32[$0 + 208 >> 2] >> 6;
$21 = ($21 | 0) > ($28 | 0) ? $21 : $28;
if (($29 | 0) <= ($21 | 0)) {
break label$12;
}
$26 = $17 + $21 | 0;
ec_enc_shrink($5, $26);
$29 = $21;
}
$21 = $2 + $53 | 0;
$27 = $50 << 2;
$12 = ($3 | 0) < ($7 | 0);
$31 = Math_imul($13, 40);
$32 = 400 >>> $15 | 0;
$23 = HEAP32[$19 + 12 >> 2];
$4 = $24 + $37 | 0;
$33 = $39 - ((Math_imul($11, $4) << 2) + 15 & -16) | 0;
$38 = $33;
__stack_pointer = $33;
$34 = HEAPF32[$0 + 224 >> 2];
$54 = HEAP32[$0 + 28 >> 2];
$39 = (Math_imul($37 - $24 | 0, $13) | 0) / ($54 | 0) | 0;
label$13 : {
label$14 : {
if (($39 | 0) >= 1) {
$2 = 0;
while (1) {
$6 = HEAPF32[($2 << 2) + $1 >> 2];
$10 = $6 > $10 ? $10 : $6;
$8 = $6 < $8 ? $8 : $6;
$2 = $2 + 1 | 0;
if (($39 | 0) != ($2 | 0)) {
continue;
}
break;
}
$6 = Math_fround(-$10);
if (($6 < $8 ? $8 : $6) < $34) {
break label$13;
}
$2 = 0;
$10 = Math_fround(0);
$8 = Math_fround(0);
while (1) {
$6 = HEAPF32[($2 << 2) + $1 >> 2];
$10 = $6 > $10 ? $10 : $6;
$8 = $6 < $8 ? $8 : $6;
$2 = $2 + 1 | 0;
if (($39 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$14;
}
if ($34 > Math_fround(0)) {
break label$13;
}
}
$6 = Math_fround(-$10);
$34 = $6 < $8 ? $8 : $6;
}
$22 = Math_imul($11, $24);
$28 = $21 + $27 | 0;
$12 = $12 ? $3 : $7;
$25 = ($7 | 0) == -1;
$58 = $31 + 20 | 0;
$31 = $32 - 50 | 0;
$51 = 1;
$10 = Math_fround(0);
$7 = (Math_imul($13, $24) | 0) / ($54 | 0) | 0;
label$18 : {
if (($7 | 0) < 1) {
$8 = Math_fround(0);
break label$18;
}
$39 = ($39 << 2) + $1 | 0;
$2 = 0;
$8 = Math_fround(0);
while (1) {
$6 = HEAPF32[($2 << 2) + $39 >> 2];
$10 = $6 > $10 ? $10 : $6;
$8 = $6 < $8 ? $8 : $6;
$2 = $2 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$2 = $22 << 2;
$39 = $27 + $28 | 0;
$7 = $25 ? $3 : $12;
$3 = Math_imul($31, $58);
$12 = ($14 | 0) > ($23 | 0);
$22 = $26 << 3;
$6 = Math_fround(-$10);
$6 = $6 < $8 ? $8 : $6;
HEAPF32[$0 + 224 >> 2] = $6;
$6 = $6 < $34 ? $34 : $6;
label$21 : {
if (($9 | 0) != 1) {
$31 = 0;
break label$21;
}
$9 = Math_fround(Math_fround(1) / Math_fround(1 << HEAP32[$0 + 60 >> 2])) >= $6;
ec_enc_bit_logp($5, $9, 15);
if ($9 ^ 1) {
$31 = 0;
$9 = 1;
break label$21;
}
$31 = 1;
label$24 : {
if (($42 | 0) < 1) {
$9 = $22;
break label$24;
}
$29 = 2;
$9 = $17 + 2 | 0;
$35 = ($9 | 0) > ($26 | 0) ? $26 : $9;
ec_enc_shrink($5, $35);
$26 = $35;
$9 = $26 << 3;
$22 = $9;
}
HEAP32[$5 + 20 >> 2] = ($9 - Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) + 32;
$51 = 0;
}
$17 = $2 + $53 | 0;
$53 = $27 + $39 | 0;
$43 = 1 << $15;
$46 = $7 - $3 | 0;
$25 = $12 ? $23 : $14;
$54 = ($11 | 0) > 1 ? $11 : 1;
$3 = $19 + 16 | 0;
$24 = ($24 << 2) + $33 | 0;
$2 = 0;
while (1) {
$7 = $2 << 2;
celt_preemphasis($7 + $1 | 0, (Math_imul($2, $4) << 2) + $24 | 0, $37, $11, HEAP32[$0 + 28 >> 2], $3, ($0 + $7 | 0) + 192 | 0, HEAP32[$0 + 16 >> 2] != 0 & $6 > Math_fround(65536));
$2 = $2 + 1 | 0;
if (($54 | 0) != ($2 | 0)) {
continue;
}
break;
}
$2 = 0;
if (!(HEAP32[$0 + 20 >> 2] | (!(HEAP32[$0 + 64 >> 2] != 0 & ($29 | 0) > 3 | (Math_imul($13, 12) | 0) < ($29 | 0)) | ($20 | $31)))) {
$2 = HEAP32[$0 + 24 >> 2] > 4;
}
$64 = HEAP32[$0 + 100 >> 2];
$52 = $0 + 120 | 0;
$59 = run_prefilter($0, $33, $17, $11, $37, $64, $16 + 28 | 0, $16 + 24 | 0, $16 + 80 | 0, $2, $29, $52);
$66 = HEAPF32[$16 + 24 >> 2];
label$28 : {
if (!($66 > Math_fround(.4000000059604645))) {
$1 = 0;
if (HEAPF32[$0 + 108 >> 2] > Math_fround(.4000000059604645) ^ 1) {
break label$28;
}
}
if (HEAP32[$52 >> 2]) {
$1 = 0;
if (+HEAPF32[$0 + 124 >> 2] > .3 ^ 1) {
break label$28;
}
}
$60 = +HEAP32[$16 + 28 >> 2];
$61 = +HEAP32[$0 + 104 >> 2];
$1 = $60 > $61 * 1.26 | $61 * .79 > $60;
}
$65 = $1;
label$31 : {
if (!$59) {
if (($9 + 16 | 0) > ($22 | 0) | $20) {
break label$31;
}
ec_enc_bit_logp($5, 0, 1);
break label$31;
}
ec_enc_bit_logp($5, 1, 1);
$2 = HEAP32[$16 + 28 >> 2];
$1 = $2 + 1 | 0;
$7 = Math_clz32($1);
$3 = 27 - $7 | 0;
ec_enc_uint($5, $3, 6);
ec_enc_bits($5, (-16 << $3) + $1 | 0, 31 - $7 | 0);
HEAP32[$16 + 28 >> 2] = $2;
ec_enc_bits($5, HEAP32[$16 + 80 >> 2], 3);
ec_enc_icdf($5, $64, 42528, 2);
}
$62 = 1;
if (!(HEAP32[$0 + 64 >> 2] | HEAP32[$0 + 24 >> 2] < 1)) {
$2 = 0;
$2 = !$20 | ($35 | 0) > 14 ? $2 : HEAP32[$0 + 184 >> 2] != 2;
$36 = transient_analysis($33, $4, $11, $16 + 12 | 0, $16 + 16 | 0, $2, $16 + 4 | 0);
}
$3 = $19;
label$35 : {
label$36 : {
if (!(!$15 | ((HEAP32[$5 + 20 >> 2] + Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) - 29 | 0) > ($22 | 0))) {
if ($36) {
break label$36;
}
$62 = 0;
}
$32 = $38 - ((Math_imul($11, $37) << 2) + 15 & -16) | 0;
$2 = $32;
__stack_pointer = $2;
$1 = ($50 << 2) + 15 & -16;
$38 = $2 - $1 | 0;
$2 = $38;
__stack_pointer = $2;
$4 = $2 - $1 | 0;
$2 = $4;
__stack_pointer = $2;
$40 = Math_imul($13, $30);
$31 = $2 - (($40 << 2) + 15 & -16) | 0;
$7 = $31;
__stack_pointer = $7;
$55 = 1;
$36 = 0;
$56 = 0;
break label$35;
}
$32 = $38 - ((Math_imul($11, $37) << 2) + 15 & -16) | 0;
$2 = $32;
__stack_pointer = $2;
$1 = ($50 << 2) + 15 & -16;
$38 = $2 - $1 | 0;
$2 = $38;
__stack_pointer = $2;
$4 = $2 - $1 | 0;
$2 = $4;
__stack_pointer = $2;
$40 = Math_imul($13, $30);
$31 = $2 - (($40 << 2) + 15 & -16) | 0;
$7 = $31;
__stack_pointer = $7;
$1 = HEAP32[$0 + 24 >> 2];
label$38 : {
if (($1 | 0) < 8) {
$62 = 0;
break label$38;
}
$62 = 0;
compute_mdcts($19, 0, $33, $32, $13, $11, $15, HEAP32[$0 + 28 >> 2], HEAP32[$0 + 72 >> 2]);
compute_band_energies($19, $32, $38, $25, $13, $15, HEAP32[$0 + 72 >> 2]);
amp2Log2($19, $25, $14, $38, $31, $13);
$49 = 1;
if (($40 | 0) < 1) {
break label$38;
}
$6 = Math_fround(Math_fround($15 | 0) * Math_fround(.5));
$2 = 0;
while (1) {
$1 = ($2 << 2) + $31 | 0;
HEAPF32[$1 >> 2] = $6 + HEAPF32[$1 >> 2];
$2 = $2 + 1 | 0;
if (($40 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$56 = $43;
}
compute_mdcts($3, $56, $33, $32, $13, $11, $15, HEAP32[$0 + 28 >> 2], HEAP32[$0 + 72 >> 2]);
label$41 : {
label$42 : {
$6 = HEAPF32[$32 >> 2];
if ($6 == $6) {
if (($13 | 0) == 1) {
break label$42;
}
$6 = HEAPF32[($37 << 2) + $32 >> 2];
$1 = 0;
if ($6 == $6) {
break label$41;
}
}
celt_fatal(42531, 42508, 1729);
abort();
}
$1 = 0;
if (($11 | 0) != 2) {
break label$41;
}
HEAP32[$16 + 16 >> 2] = 0;
$1 = 1;
}
$70 = $1;
compute_band_energies($19, $32, $38, $25, $13, $15, HEAP32[$0 + 72 >> 2]);
if (!(!HEAP32[$0 + 64 >> 2] | ($14 | 0) < 3)) {
$2 = 2;
while (1) {
$1 = ($2 << 2) + $38 | 0;
$6 = HEAPF32[$1 >> 2];
$8 = Math_fround(HEAPF32[$38 >> 2] * Math_fround(9999999747378752e-20));
$6 = $6 < $8 ? $6 : $8;
HEAPF32[$1 >> 2] = $6 > Math_fround(1.0000000036274937e-15) ? $6 : Math_fround(1.0000000036274937e-15);
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
amp2Log2($19, $25, $14, $38, $4, $13);
$2 = $7 - (($40 << 2) + 15 & -16) | 0;
$44 = $2;
__stack_pointer = $2;
$67 = $14 << 2;
$45 = memset($2, 0, $67);
$6 = Math_fround(0);
label$46 : {
label$47 : {
if ($20) {
break label$47;
}
$9 = HEAP32[$0 + 236 >> 2];
$6 = Math_fround(0);
if (!$9) {
break label$47;
}
$1 = HEAP32[$0 + 64 >> 2];
if ($1) {
break label$46;
}
label$48 : {
label$49 : {
label$50 : {
if (($13 | 0) < 1) {
break label$50;
}
$2 = HEAP32[$0 + 92 >> 2];
$1 = ($2 | 0) > 2 ? $2 : 2;
$47 = HEAPU16[$18 >> 1];
$12 = 0;
$3 = 0;
$8 = Math_fround(0);
$10 = Math_fround(0);
while (1) {
$17 = Math_imul($12, $30);
$7 = $47;
$2 = 0;
while (1) {
$6 = HEAPF32[($2 + $17 << 2) + $9 >> 2];
$41 = $6;
$24 = $6 < Math_fround(.25);
$27 = ($24 ? $6 : Math_fround(.25)) > Math_fround(-2);
$6 = $27 ? Math_fround(.25) : Math_fround(-2);
$6 = $27 ? $24 ? $41 : $6 : $6;
$6 = $6 > Math_fround(0) ? Math_fround($6 * Math_fround(.5)) : $6;
$8 = Math_fround($8 + Math_fround($6 * Math_fround(($2 << 1 | 1) - $1 | 0)));
$24 = $7 << 16;
$2 = $2 + 1 | 0;
$7 = HEAP16[($2 << 1) + $18 >> 1];
$24 = $7 - ($24 >> 16) | 0;
$10 = Math_fround($10 + Math_fround($6 * Math_fround($24 | 0)));
$3 = $3 + $24 | 0;
if (($1 | 0) != ($2 | 0)) {
continue;
}
break;
}
$12 = $12 + 1 | 0;
if (($12 | 0) != ($13 | 0)) {
continue;
}
break;
}
$2 = 0;
if (($3 | 0) <= 0) {
break label$50;
}
$6 = Math_fround(Math_fround(Math_fround($8 * Math_fround(6)) / Math_fround(Math_imul($1 + 1 | 0, Math_imul($1 - 1 | 0, Math_imul($1, $13))) | 0)) * Math_fround(.5));
$6 = $6 < Math_fround(.03099999949336052) ? $6 : Math_fround(.03099999949336052);
$8 = Math_fround($10 / Math_fround($3 | 0));
$3 = HEAP16[($1 << 1) + $18 >> 1] / 2 << 16 >> 16;
while (1) {
$7 = $2;
$2 = $2 + 1 | 0;
if (HEAP16[($2 << 1) + $18 >> 1] < ($3 | 0)) {
continue;
}
break;
}
$34 = $6 > Math_fround(-.03099999949336052) ? $6 : Math_fround(-.03099999949336052);
$10 = Math_fround($8 + Math_fround(.20000000298023224));
$2 = 0;
$24 = 0;
while (1) {
$8 = Math_fround($10 + Math_fround($34 * Math_fround($2 - $7 | 0)));
$3 = $2 << 2;
$6 = HEAPF32[$9 + $3 >> 2];
if (($13 | 0) == 2) {
$63 = HEAPF32[($2 + $30 << 2) + $9 >> 2];
$6 = $6 > $63 ? $6 : $63;
}
$6 = Math_fround(($6 < Math_fround(0) ? $6 : Math_fround(0)) - $8);
if (!($6 > Math_fround(.25) ^ 1)) {
HEAPF32[$3 + $45 >> 2] = $6 + Math_fround(-.25);
$24 = $24 + 1 | 0;
}
$2 = $2 + 1 | 0;
if (($2 | 0) != ($1 | 0)) {
continue;
}
break;
}
if (($24 | 0) < 3) {
break label$48;
}
$6 = Math_fround($10 + Math_fround(.25));
$10 = Math_fround(0);
if (!($6 > Math_fround(0) ^ 1)) {
break label$49;
}
$2 = 0;
while (1) {
$7 = ($2 << 2) + $45 | 0;
HEAPF32[$7 >> 2] = Math_max(Math_fround(HEAPF32[$7 >> 2] + Math_fround(-.25)), Math_fround(0));
$2 = $2 + 1 | 0;
if (($2 | 0) != ($1 | 0)) {
continue;
}
break;
}
$10 = $6;
break label$48;
}
celt_fatal(42604, 42508, 1770);
abort();
}
memset($45, 0, $1 << 2);
$34 = Math_fround(0);
}
$71 = Math_fround($34 * Math_fround(64));
$6 = Math_fround($10 + Math_fround(.20000000298023224));
}
$63 = $6;
$1 = HEAP32[$0 + 64 >> 2];
if ($1) {
break label$46;
}
$8 = Math_fround(0);
if (($14 | 0) > ($20 | 0)) {
$34 = $55 ? Math_fround(0) : Math_fround(Math_fround($15 | 0) * Math_fround(.5));
$6 = Math_fround(-10);
$2 = $20;
while (1) {
$6 = Math_fround($6 + Math_fround(-1));
$10 = Math_fround(HEAPF32[($2 << 2) + $4 >> 2] - $34);
$6 = $6 > $10 ? $6 : $10;
if (($13 | 0) == 2) {
$10 = Math_fround(HEAPF32[($2 + $30 << 2) + $4 >> 2] - $34);
$6 = $6 > $10 ? $6 : $10;
}
$8 = Math_fround($8 + $6);
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$6 = HEAPF32[$0 + 240 >> 2];
$68 = Math_fround(Math_min(Math_fround(Math_max(Math_fround(Math_fround($8 / Math_fround($14 - $20 | 0)) - $6), Math_fround(-1.5))), Math_fround(3)));
HEAPF32[$0 + 240 >> 2] = $6 + Math_fround($68 * Math_fround(.019999999552965164));
$1 = 0;
}
if (!$49) {
memcpy($31, $4, $40 << 2);
}
label$64 : {
if (!$15) {
break label$64;
}
$2 = (HEAP32[$5 + 20 >> 2] + Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) - 29 | 0;
label$65 : {
if (($22 | 0) < ($2 | 0) | $36) {
break label$65;
}
$36 = 0;
if ($1 | $20 | HEAP32[$0 + 24 >> 2] < 5) {
break label$65;
}
$2 = 1;
$6 = HEAPF32[$21 >> 2];
label$66 : {
label$67 : {
if (($13 | 0) == 1) {
HEAPF32[$16 + 80 >> 2] = $6;
if (($14 | 0) < 2) {
break label$66;
}
while (1) {
$6 = Math_fround($6 + Math_fround(-1));
$1 = $2 << 2;
$8 = HEAPF32[$21 + $1 >> 2];
$6 = $6 > $8 ? $6 : $8;
HEAPF32[($16 + 80 | 0) + $1 >> 2] = $6;
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$67;
}
$8 = HEAPF32[($30 << 2) + $21 >> 2];
$6 = $6 > $8 ? $6 : $8;
HEAPF32[$16 + 80 >> 2] = $6;
if (($14 | 0) < 2) {
break label$66;
}
while (1) {
$6 = Math_fround($6 + Math_fround(-1));
$1 = $2 << 2;
$8 = HEAPF32[$21 + $1 >> 2];
$10 = HEAPF32[($2 + $30 << 2) + $21 >> 2];
$8 = $8 > $10 ? $8 : $10;
$6 = $6 > $8 ? $6 : $8;
HEAPF32[($16 + 80 | 0) + $1 >> 2] = $6;
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
if (($14 | 0) < 2) {
break label$66;
}
$2 = $14 - 2 | 0;
while (1) {
$1 = ($16 + 80 | 0) + ($2 << 2) | 0;
$6 = HEAPF32[$1 >> 2];
$8 = Math_fround(HEAPF32[$1 + 4 >> 2] + Math_fround(-1));
HEAPF32[$1 >> 2] = $6 > $8 ? $6 : $8;
$1 = ($2 | 0) > 0;
$2 = $2 - 1 | 0;
if ($1) {
continue;
}
break;
}
}
$24 = ($13 | 0) > 1 ? $13 : 1;
$7 = $14 - 1 | 0;
$3 = 0;
$27 = ($14 | 0) < 4;
$6 = Math_fround(0);
while (1) {
if (!$27) {
$1 = Math_imul($3, $30);
$2 = 2;
while (1) {
$6 = Math_fround($6 + Math_fround(Math_max(Math_fround(Math_fround(Math_max(HEAPF32[($1 + $2 << 2) + $4 >> 2], Math_fround(0))) - Math_fround(Math_max(HEAPF32[($16 + 80 | 0) + ($2 << 2) >> 2], Math_fround(0)))), Math_fround(0))));
$2 = $2 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$3 = $3 + 1 | 0;
if (($24 | 0) != ($3 | 0)) {
continue;
}
break;
}
if (!(Math_fround($6 / Math_fround(Math_imul($14 - 3 | 0, $13) | 0)) > Math_fround(1) ^ 1)) {
compute_mdcts($19, $43, $33, $32, $13, $11, $15, HEAP32[$0 + 28 >> 2], HEAP32[$0 + 72 >> 2]);
compute_band_energies($19, $32, $38, $25, $13, $15, HEAP32[$0 + 72 >> 2]);
amp2Log2($19, $25, $14, $38, $4, $13);
if (($40 | 0) >= 1) {
$6 = Math_fround(Math_fround($15 | 0) * Math_fround(.5));
$2 = 0;
while (1) {
$1 = ($2 << 2) + $31 | 0;
HEAPF32[$1 >> 2] = $6 + HEAPF32[$1 >> 2];
$2 = $2 + 1 | 0;
if (($40 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
HEAP32[$16 + 12 >> 2] = 1045220557;
$56 = $43;
$36 = 1;
}
$2 = (HEAP32[$5 + 20 >> 2] + Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) - 29 | 0;
}
if (($2 | 0) > ($22 | 0)) {
break label$64;
}
ec_enc_bit_logp($5, $36, 3);
}
$27 = $44 - ((Math_imul($13, $37) << 2) + 15 & -16) | 0;
$1 = $27;
__stack_pointer = $1;
normalise_bands($19, $32, $1, $38, $25, $13, $43);
$7 = 0;
if (!((Math_imul($13, 15) | 0) > ($35 | 0) | $20 | HEAP32[$0 + 24 >> 2] < 2)) {
$7 = !HEAP32[$0 + 64 >> 2];
}
$2 = ($30 << 2) + 15 & -16;
$49 = $1 - $2 | 0;
$1 = $49;
__stack_pointer = $1;
$1 = $1 - $2 | 0;
__stack_pointer = $1;
$12 = $1 - $2 | 0;
$3 = $12;
__stack_pointer = $3;
$72 = dynalloc_analysis($4, $31, $30, $20, $14, $13, $49, HEAP32[$0 + 60 >> 2], HEAP32[$19 + 56 >> 2], $36, HEAP32[$0 + 44 >> 2], HEAP32[$0 + 52 >> 2], $18, $15, $35, $16 + 8 | 0, HEAP32[$0 + 64 >> 2], $45, $52, $1, $3);
$33 = $3 - $2 | 0;
$3 = $33;
__stack_pointer = $3;
label$79 : {
if ($7) {
$2 = 20480 / ($35 | 0) | 0;
$44 = tf_analysis($19, $25, $36, $33, ($2 | 0) < 78 ? 80 : $2 + 2 | 0, $27, $37, $15, HEAPF32[$16 + 12 >> 2], HEAP32[$16 + 16 >> 2], $1);
if (($14 | 0) <= ($23 | 0)) {
break label$79;
}
$2 = (($25 << 2) + $33 | 0) - 4 | 0;
while (1) {
HEAP32[($23 << 2) + $33 >> 2] = HEAP32[$2 >> 2];
$23 = $23 + 1 | 0;
if (($23 | 0) != ($14 | 0)) {
continue;
}
break;
}
break label$79;
}
if (!(!$20 | !HEAP32[$16 + 4 >> 2])) {
$44 = 0;
if (($14 | 0) < 1) {
break label$79;
}
$2 = 0;
while (1) {
HEAP32[($2 << 2) + $33 >> 2] = 1;
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$79;
}
if (!(!$20 | ($35 | 0) > 14 | HEAP32[$0 + 184 >> 2] == 2)) {
$44 = $36;
if (($14 | 0) < 1) {
break label$79;
}
memset($33, 0, $67);
break label$79;
}
$44 = 0;
if (($14 | 0) < 1) {
break label$79;
}
$2 = 0;
while (1) {
HEAP32[($2 << 2) + $33 >> 2] = $36;
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$55 = $0 + 100 | 0;
$31 = ($13 | 0) > 1 ? $13 : 1;
$24 = $3 - (($40 << 2) + 15 & -16) | 0;
$45 = $24;
__stack_pointer = $24;
$9 = 0;
while (1) {
$32 = ($14 | 0) <= ($20 | 0);
if (!$32) {
$3 = Math_imul($9, $30);
$2 = $20;
while (1) {
$1 = $2 + $3 << 2;
$7 = $4 + $1 | 0;
$6 = HEAPF32[$7 >> 2];
if (!(Math_fround(Math_abs(Math_fround($6 - HEAPF32[$1 + $21 >> 2]))) < Math_fround(2) ^ 1)) {
HEAPF32[$7 >> 2] = $6 + Math_fround(HEAPF32[$1 + $53 >> 2] * Math_fround(-.25));
}
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$9 = $9 + 1 | 0;
if (($31 | 0) != ($9 | 0)) {
continue;
}
break;
}
quant_coarse_energy($19, $20, $14, $25, $4, $21, $22, $24, $5, $13, $15, $29, HEAP32[$0 + 12 >> 2], $0 + 84 | 0, HEAP32[$0 + 24 >> 2] > 3, HEAP32[$0 + 56 >> 2], HEAP32[$0 + 64 >> 2]);
$47 = 0;
$1 = HEAP32[$5 + 4 >> 2] << 3;
$7 = (HEAP32[$5 + 20 >> 2] + Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) - 32 | 0;
$2 = $36 ? 2 : 4;
$23 = ($15 | 0) != 0 & $1 >>> 0 >= $7 + ($2 | 1) >>> 0;
$17 = 0;
label$90 : {
if ($32) {
break label$90;
}
$3 = ($20 << 2) + $33 | 0;
$11 = $1 - $23 | 0;
label$91 : {
if ($11 >>> 0 >= $2 + $7 >>> 0) {
ec_enc_bit_logp($5, HEAP32[$3 >> 2], $2);
$7 = (HEAP32[$5 + 20 >> 2] + Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) - 32 | 0;
$17 = HEAP32[$3 >> 2];
break label$91;
}
HEAP32[$3 >> 2] = 0;
$17 = 0;
}
$2 = $20 + 1 | 0;
if (($14 | 0) == ($2 | 0)) {
break label$90;
}
$3 = $36 ? 4 : 5;
$9 = $17;
while (1) {
$1 = ($2 << 2) + $33 | 0;
label$94 : {
if ($3 + $7 >>> 0 <= $11 >>> 0) {
ec_enc_bit_logp($5, HEAP32[$1 >> 2] ^ $9, $3);
$9 = HEAP32[$1 >> 2];
$17 = $17 | $9;
$7 = (HEAP32[$5 + 20 >> 2] + Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) - 32 | 0;
break label$94;
}
HEAP32[$1 >> 2] = $9;
}
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
label$96 : {
if (!$23) {
break label$96;
}
$2 = ($15 << 3) + 1744 | 0;
$1 = $36 << 2;
if (HEAPU8[$2 + ($17 + $1 | 0) | 0] == HEAPU8[(($1 | 2) + $17 | 0) + $2 | 0]) {
break label$96;
}
ec_enc_bit_logp($5, $44, 1);
$47 = $44 << 1;
}
if (!$32) {
$7 = ($36 << 2) + $47 | 0;
$3 = $15 << 3;
$2 = $20;
while (1) {
$1 = ($2 << 2) + $33 | 0;
HEAP32[$1 >> 2] = HEAP8[((HEAP32[$1 >> 2] + $7 | 0) + $3 | 0) + 1744 | 0];
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
if (((HEAP32[$5 + 20 >> 2] + Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) - 28 | 0) <= ($22 | 0)) {
label$100 : {
if (HEAP32[$0 + 64 >> 2]) {
$2 = 2;
HEAP32[$0 + 80 >> 2] = 2;
HEAP32[$0 + 100 >> 2] = 0;
break label$100;
}
$1 = $0;
label$102 : {
label$103 : {
label$104 : {
if ($20) {
if (!HEAP32[$0 + 24 >> 2]) {
break label$103;
}
if ($36) {
break label$104;
}
$2 = 3;
break label$102;
}
$2 = HEAP32[$0 + 24 >> 2];
if (!(($2 | 0) > 2 ? !((Math_imul($13, 10) | 0) > ($29 | 0) | $56) : 0)) {
if (!$2) {
break label$103;
}
break label$104;
}
$2 = spreading_decision($19, $27, $0 + 88 | 0, HEAP32[$0 + 80 >> 2], $0 + 96 | 0, $55, ($59 | 0) != 0, $25, $13, $43, $12);
break label$102;
}
$2 = 2;
break label$102;
}
$2 = 0;
}
HEAP32[$1 + 80 >> 2] = $2;
}
ec_enc_icdf($5, $2, 42630, 5);
}
if (HEAP32[$0 + 64 >> 2]) {
HEAP32[$49 >> 2] = ($35 | 0) > 26 ? 8 : ($35 | 0) / 3 | 0;
}
$35 = $45 - (($30 << 2) + 15 & -16) | 0;
$45 = $35;
__stack_pointer = $35;
init_caps($19, $35, $15, $13);
$12 = $22 << 3;
$3 = 0;
$7 = ec_tell_frac($5);
if (!$32) {
$29 = 6;
$25 = $20;
while (1) {
$2 = $25;
$25 = $2 + 1 | 0;
$9 = $2 << 2;
$23 = $49 + $9 | 0;
$1 = 0;
label$111 : {
if ((($29 << 3) + $7 | 0) >= ($12 - $3 | 0)) {
break label$111;
}
label$112 : {
$22 = $9 + $35 | 0;
if (HEAP32[$22 >> 2] <= 0) {
$9 = 0;
break label$112;
}
$2 = Math_imul(HEAP16[($25 << 1) + $18 >> 1] - HEAP16[($2 << 1) + $18 >> 1] | 0, $13) << $15;
$7 = $2 << 3;
$2 = ($2 | 0) > 48 ? $2 : 48;
$17 = ($2 | 0) > ($7 | 0) ? $7 : $2;
$9 = $29;
$2 = 0;
while (1) {
$11 = HEAP32[$23 >> 2];
ec_enc_bit_logp($5, ($11 | 0) > ($2 | 0), $9);
$7 = ec_tell_frac($5);
if (($2 | 0) >= ($11 | 0)) {
$9 = $2;
break label$112;
}
$1 = $1 + $17 | 0;
$3 = $3 + $17 | 0;
if (($7 + 8 | 0) < ($12 - $3 | 0)) {
$9 = 1;
$2 = $2 + 1 | 0;
if (HEAP32[$22 >> 2] <= ($1 | 0)) {
break label$112;
}
continue;
}
break;
}
$29 = ($29 | 0) > 2 ? $29 - 1 | 0 : 2;
break label$111;
}
if (!$9) {
break label$111;
}
$29 = ($29 | 0) > 2 ? $29 - 1 | 0 : 2;
}
HEAP32[$23 >> 2] = $1;
if (($14 | 0) != ($25 | 0)) {
continue;
}
break;
}
}
if (($13 | 0) == 2) {
if ($15) {
$18 = HEAP32[$19 + 32 >> 2];
$17 = HEAPU16[$18 >> 1];
$10 = Math_fround(1.0000000036274937e-15);
$9 = 0;
$34 = Math_fround(1.0000000036274937e-15);
while (1) {
$2 = $17 << 16 >> 16 << $15;
$9 = $9 + 1 | 0;
$17 = HEAP16[($9 << 1) + $18 >> 1];
$1 = $17 << $15;
if (($2 | 0) < ($1 | 0)) {
while (1) {
$6 = HEAPF32[($2 << 2) + $27 >> 2];
$8 = HEAPF32[($2 + $37 << 2) + $27 >> 2];
$34 = Math_fround($34 + Math_fround(Math_fround(Math_abs(Math_fround($6 + $8))) + Math_fround(Math_abs(Math_fround($6 - $8)))));
$10 = Math_fround($10 + Math_fround(Math_fround(Math_abs($6)) + Math_fround(Math_abs($8))));
$2 = $2 + 1 | 0;
if (($2 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
if (($9 | 0) != 13) {
continue;
}
break;
}
$2 = HEAP16[$18 + 26 >> 1] << $15 + 1;
HEAP32[$16 + 20 >> 2] = Math_fround(Math_fround($34 * Math_fround(.7071070075035095)) * Math_fround($2 + ($15 >>> 0 < 2 ? 5 : 13) | 0)) > Math_fround($10 * Math_fround($2 | 0));
}
$2 = hysteresis_decision(Math_fround(($46 | 0) / 1e3 | 0), 42640, 42736, 21, HEAP32[$0 + 232 >> 2]);
$2 = ($2 | 0) < ($20 | 0) ? $20 : $2;
HEAP32[$0 + 232 >> 2] = ($2 | 0) > ($14 | 0) ? $14 : $2;
}
$9 = 5;
if (($7 + 48 | 0) <= ($12 - $3 | 0)) {
$22 = $5;
label$123 : {
if (!(HEAP32[$0 + 64 >> 2] ? 0 : ($20 | 0) <= 0)) {
HEAP32[$0 + 228 >> 2] = 0;
$9 = 5;
break label$123;
}
$12 = HEAP32[$0 + 232 >> 2];
$34 = HEAPF32[$16 + 12 >> 2];
$10 = Math_fround(4);
label$126 : {
if (($46 | 0) < 64e3) {
break label$126;
}
$10 = Math_fround(5);
if (($46 | 0) > 79999) {
break label$126;
}
$10 = Math_fround(Math_fround(Math_fround($46 - 64e3 >> 10) * Math_fround(.0625)) + Math_fround(4));
}
if (($13 | 0) == 2) {
$23 = HEAP32[$19 + 32 >> 2];
$11 = HEAPU16[$23 >> 1];
$8 = Math_fround(0);
$18 = 0;
while (1) {
$2 = $11 << 16;
$6 = Math_fround(0);
$18 = $18 + 1 | 0;
$11 = HEAP16[($18 << 1) + $23 >> 1];
$2 = $2 >> 16;
$7 = $11 - $2 << $15;
if (($7 | 0) >= 1) {
$2 = $2 << $15;
$9 = ($2 << 2) + $27 | 0;
$17 = ($2 + $37 << 2) + $27 | 0;
$2 = 0;
while (1) {
$1 = $2 << 2;
$6 = Math_fround($6 + Math_fround(HEAPF32[$9 + $1 >> 2] * HEAPF32[$1 + $17 >> 2]));
$2 = $2 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$8 = Math_fround($8 + $6);
if (($18 | 0) != 8) {
continue;
}
break;
}
$41 = Math_fround(Math_min(Math_fround(Math_abs(Math_fround($8 * Math_fround(.125)))), Math_fround(1)));
$8 = $41;
if (($12 | 0) >= 9) {
$11 = HEAPU16[$23 + 16 >> 1];
$18 = 8;
$8 = $41;
while (1) {
$2 = $11 << 16;
$6 = Math_fround(0);
$18 = $18 + 1 | 0;
$11 = HEAP16[($18 << 1) + $23 >> 1];
$2 = $2 >> 16;
$7 = $11 - $2 << $15;
if (($7 | 0) >= 1) {
$2 = $2 << $15;
$9 = ($2 << 2) + $27 | 0;
$17 = ($2 + $37 << 2) + $27 | 0;
$2 = 0;
while (1) {
$1 = $2 << 2;
$6 = Math_fround($6 + Math_fround(HEAPF32[$9 + $1 >> 2] * HEAPF32[$1 + $17 >> 2]));
$2 = $2 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$6 = Math_fround(Math_abs($6));
$8 = $6 > $8 ? $8 : $6;
if (($12 | 0) != ($18 | 0)) {
continue;
}
break;
}
}
$61 = log(+Math_fround(Math_fround(1.0010000467300415) - Math_fround($41 * $41)));
$6 = Math_fround(Math_min(Math_fround(Math_abs($8)), Math_fround(1)));
$60 = log(+Math_fround(Math_fround(1.0010000467300415) - Math_fround($6 * $6)));
$6 = Math_fround(HEAPF32[$0 + 228 >> 2] + Math_fround(.25));
$8 = Math_fround($61 * 1.4426950408889634);
$41 = Math_fround($8 * Math_fround(.5));
$69 = Math_fround($60 * 1.4426950408889634);
$41 = Math_fround(($41 > $69 ? $41 : $69) * Math_fround(-.5));
HEAPF32[$0 + 228 >> 2] = $6 < $41 ? $6 : $41;
$10 = Math_fround($10 + Math_fround(Math_max(Math_fround($8 * Math_fround(.75)), Math_fround(-4))));
}
$7 = $14 - 1 | 0;
$9 = 2 - $14 | 0;
$6 = Math_fround(0);
$17 = 0;
while (1) {
if (($14 | 0) >= 2) {
$1 = Math_imul(HEAP32[$19 + 8 >> 2], $17);
$2 = 0;
while (1) {
$6 = Math_fround($6 + Math_fround(HEAPF32[($1 + $2 << 2) + $4 >> 2] * Math_fround(($2 << 1) + $9 | 0)));
$2 = $2 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$17 = $17 + 1 | 0;
if (($31 | 0) != ($17 | 0)) {
continue;
}
break;
}
$6 = Math_fround(Math_fround(Math_fround($6 / Math_fround(Math_imul($7, $13) | 0)) + Math_fround(1)) / Math_fround(6));
$2 = $6 > Math_fround(2);
$1 = $6 < Math_fround(-2);
$8 = $1 ? $2 ? Math_fround(2) : Math_fround(-2) : Math_fround(2);
$6 = Math_fround(Math_fround(Math_fround($10 - ($1 ? $8 : $2 ? $8 : $6)) - $71) - Math_fround($34 + $34));
if (HEAP32[$52 >> 2]) {
$8 = Math_fround(HEAPF32[$0 + 128 >> 2] + Math_fround(.05000000074505806));
$8 = Math_fround($8 + $8);
$2 = $8 > Math_fround(2);
$1 = $8 < Math_fround(-2);
$10 = $1 ? $2 ? Math_fround(2) : Math_fround(-2) : Math_fround(2);
$6 = Math_fround($6 - ($1 ? $10 : $2 ? $10 : $8));
}
$6 = Math_fround(Math_floor(Math_fround($6 + Math_fround(.5))));
label$138 : {
if (Math_fround(Math_abs($6)) < Math_fround(2147483648)) {
$2 = ~~$6;
break label$138;
}
$2 = -2147483648;
}
$2 = ($2 | 0) < 10 ? $2 : 10;
$9 = ($2 | 0) > 0 ? $2 : 0;
}
ec_enc_icdf($22, $9, 42820, 7);
$7 = ec_tell_frac($5);
}
if (($42 | 0) >= 1) {
$2 = 1275 >>> $48 | 0;
$4 = HEAP32[$19 + 36 >> 2];
if ($20) {
$1 = (Math_imul($13, -72) + $42 | 0) - 32 | 0;
$1 = ($1 | 0) > 0 ? $1 : 0;
} else {
$1 = $42 - ($58 << 3) | 0;
}
$11 = ($2 | 0) > ($26 | 0);
$18 = $4 - $15 | 0;
$17 = HEAP32[$0 + 52 >> 2];
$1 = $17 ? (HEAP32[$0 + 216 >> 2] >> $18) + $1 | 0 : $1;
$2 = $11 ? $26 : $2;
$44 = $2;
label$146 : {
label$147 : {
label$148 : {
if (!$20) {
$23 = HEAP32[$19 + 32 >> 2];
$4 = HEAP32[$0 + 92 >> 2];
$26 = HEAP32[$19 + 8 >> 2];
$12 = $4 ? $4 : $26;
$11 = HEAP16[$23 + ($12 << 1) >> 1] << $15;
$29 = HEAP32[$0 + 236 >> 2];
$25 = HEAP32[$0 + 64 >> 2];
$8 = HEAPF32[$0 + 228 >> 2];
$22 = HEAP32[$0 + 232 >> 2];
$6 = HEAPF32[$16 + 12 >> 2];
$48 = HEAP32[$16 + 8 >> 2];
$11 = ($13 | 0) == 2 ? (HEAP16[((($12 | 0) > ($22 | 0) ? $22 : $12) << 1) + $23 >> 1] << $15) + $11 | 0 : $11;
$47 = HEAP32[$52 >> 2];
$4 = $1;
label$151 : {
if (!$47) {
break label$151;
}
$10 = HEAPF32[$0 + 136 >> 2];
$4 = $1;
if (+$10 < .4 ^ 1) {
break label$151;
}
$43 = $1;
$10 = Math_fround(Math_fround(Math_fround(.4000000059604645) - $10) * Math_fround($11 << 3));
label$152 : {
if (Math_fround(Math_abs($10)) < Math_fround(2147483648)) {
$4 = ~~$10;
break label$152;
}
$4 = -2147483648;
}
$4 = $43 - $4 | 0;
}
if (($13 | 0) == 2) {
$43 = $4;
$12 = ($12 | 0) > ($22 | 0) ? $22 : $12;
$12 = (HEAP16[($12 << 1) + $23 >> 1] << $15) - $12 | 0;
$10 = Math_fround(Math_fround(Math_fround(Math_fround($12 | 0) * Math_fround(.800000011920929)) / Math_fround($11 | 0)) * Math_fround($4 | 0));
$8 = Math_fround(Math_fround(($8 < Math_fround(1) ? $8 : Math_fround(1)) + Math_fround(-.10000000149011612)) * Math_fround($12 << 3));
$8 = $8 > $10 ? $10 : $8;
label$157 : {
if (Math_fround(Math_abs($8)) < Math_fround(2147483648)) {
$12 = ~~$8;
break label$157;
}
$12 = -2147483648;
}
$4 = $43 - $12 | 0;
}
$4 = ((-19 << $15) + $48 | 0) + $4 | 0;
$8 = Math_fround(Math_fround($6 + Math_fround(-.04399999976158142)) * Math_fround($4 | 0));
label$154 : {
if (Math_fround(Math_abs($8)) < Math_fround(2147483648)) {
$12 = ~~$8;
break label$154;
}
$12 = -2147483648;
}
$4 = $12 + $4 | 0;
if (!(!$47 | $25)) {
$8 = Math_fround($11 << 3);
$10 = Math_fround(HEAPF32[$0 + 124 >> 2] + Math_fround(-.15000000596046448));
$10 = Math_fround(Math_fround($8 * Math_fround(1.2000000476837158)) * ($10 < Math_fround(0) ? Math_fround(-.11999999731779099) : Math_fround($10 + Math_fround(-.11999999731779099))));
label$161 : {
if (Math_fround(Math_abs($10)) < Math_fround(2147483648)) {
$12 = ~~$10;
break label$161;
}
$12 = -2147483648;
}
$8 = Math_fround($8 * Math_fround(.800000011920929));
label$163 : {
if (Math_fround(Math_abs($8)) < Math_fround(2147483648)) {
$22 = ~~$8;
break label$163;
}
$22 = -2147483648;
}
$4 = $12 + (($65 ? $22 : 0) + $4 | 0) | 0;
}
$12 = !$29 | ($25 | 0) != 0;
if (!$12) {
$22 = ($4 | 0) / 4 | 0;
$25 = $22;
$8 = Math_fround($63 * Math_fround($11 << 3));
label$166 : {
if (Math_fround(Math_abs($8)) < Math_fround(2147483648)) {
$11 = ~~$8;
break label$166;
}
$11 = -2147483648;
}
$4 = $11 + $4 | 0;
$4 = ($4 | 0) < ($22 | 0) ? $25 : $4;
}
$11 = $4 >> 2;
$22 = $4;
$8 = Math_fround($72 * Math_fround(Math_imul(HEAP16[(($26 << 1) + $23 | 0) - 4 >> 1] << $15, $13) << 3));
label$168 : {
if (Math_fround(Math_abs($8)) < Math_fround(2147483648)) {
$23 = ~~$8;
break label$168;
}
$23 = -2147483648;
}
$11 = ($11 | 0) < ($23 | 0) ? $23 : $11;
$4 = ($4 | 0) < ($11 | 0) ? $22 : $11;
if (!(!$17 | $12 ^ 1)) {
$8 = Math_fround(Math_fround($4 - $1 | 0) * Math_fround(.6700000166893005));
label$171 : {
if (Math_fround(Math_abs($8)) < Math_fround(2147483648)) {
$4 = ~~$8;
break label$171;
}
$4 = -2147483648;
}
$4 = $4 + $1 | 0;
}
$12 = $4;
if ($29 | $6 < Math_fround(.20000000298023224) ^ 1) {
break label$147;
}
$11 = 96e3 - $46 | 0;
$11 = ($11 | 0) < 32e3 ? $11 : 32e3;
$6 = Math_fround(Math_fround((($11 | 0) < 0 ? Math_fround(0) : Math_fround(Math_fround($11 | 0) * Math_fround(3099999958067201e-21))) * $68) * Math_fround($4 | 0));
if (!(Math_fround(Math_abs($6)) < Math_fround(2147483648))) {
break label$148;
}
$12 = ~~$6 + $4 | 0;
break label$147;
}
$4 = HEAP32[$0 + 188 >> 2];
$1 = ((($4 | 0) < 100 ? 96 >>> $48 | 0 : 0) + $1 | 0) - (($4 | 0) > 100 ? 144 >>> $48 | 0 : 0) | 0;
$6 = HEAPF32[$16 + 12 >> 2];
$8 = Math_fround(Math_fround($6 + Math_fround(-.25)) * Math_fround(400));
label$173 : {
if (Math_fround(Math_abs($8)) < Math_fround(2147483648)) {
$4 = ~~$8;
break label$173;
}
$4 = -2147483648;
}
$1 = $1 + $4 | 0;
$4 = $6 > Math_fround(.699999988079071) ? ($1 | 0) > 400 ? $1 : 400 : $1;
$1 = (($3 + $7 | 0) + 63 >> 6) + 2 | 0;
$3 = ($3 + $57 | 0) + 359 >> 6;
$1 = ($1 | 0) > ($3 | 0) ? $1 : $3;
break label$146;
}
$12 = $4 - -2147483648 | 0;
}
$4 = $12;
$1 = $1 << 1;
$4 = ($1 | 0) < ($4 | 0) ? $1 : $4;
$1 = (($3 + $7 | 0) + 63 >> 6) + 2 | 0;
}
$4 = $4 + $7 | 0;
$7 = $4 + 32 >> 6;
$1 = ($1 | 0) > ($7 | 0) ? $1 : $7;
$7 = ($1 | 0) > ($2 | 0) ? $44 : $1;
$6 = Math_fround(.0010000000474974513);
$1 = HEAP32[$0 + 220 >> 2];
if (($1 | 0) <= 969) {
HEAP32[$0 + 220 >> 2] = $1 + 1;
$6 = Math_fround(Math_fround(1) / Math_fround($1 + 21 | 0));
}
$1 = $51 ? $7 : 2;
label$176 : {
if (!$17) {
break label$176;
}
$7 = HEAP32[$0 + 208 >> 2] + (($51 ? $7 << 6 : 128) - $42 | 0) | 0;
HEAP32[$0 + 208 >> 2] = $7;
$12 = $0;
$3 = (($51 ? $4 - $42 | 0 : 0) << $18) - HEAP32[$0 + 216 >> 2] | 0;
$4 = HEAP32[$0 + 212 >> 2];
$6 = Math_fround($6 * Math_fround($3 - $4 | 0));
label$177 : {
if (Math_fround(Math_abs($6)) < Math_fround(2147483648)) {
$3 = ~~$6;
break label$177;
}
$3 = -2147483648;
}
$4 = $3 + $4 | 0;
HEAP32[$12 + 212 >> 2] = $4;
HEAP32[$0 + 216 >> 2] = 0 - $4;
if (($7 | 0) > -1) {
break label$176;
}
HEAP32[$0 + 208 >> 2] = 0;
$1 = ($51 ? ($7 | 0) / -64 | 0 : 0) + $1 | 0;
}
$26 = ($1 | 0) > ($2 | 0) ? $2 : $1;
ec_enc_shrink($5, $26);
}
$1 = ($30 << 2) + 15 & -16;
$2 = $45 - $1 | 0;
__stack_pointer = $2;
$4 = $2 - $1 | 0;
$7 = $4;
__stack_pointer = $7;
$3 = $7 - $1 | 0;
$11 = $3;
__stack_pointer = $3;
$23 = $26 << 6;
$7 = $23 + (ec_tell_frac($5) ^ -1) | 0;
$17 = 0;
$22 = $19;
$29 = $20;
$25 = $14;
$55 = $0 + 232 | 0;
$57 = $16 + 20 | 0;
$12 = $7;
$1 = 0;
label$179 : {
if ($15 >>> 0 < 2) {
break label$179;
}
$1 = 0;
if (!$36) {
break label$179;
}
$17 = (($15 << 3) + 16 | 0) <= ($7 | 0);
$1 = $17 << 3;
}
$18 = $12 - $1 | 0;
$58 = $16 + 80 | 0;
$45 = $4;
$44 = $2;
$43 = $3;
$47 = $13;
$65 = $15;
$42 = $5;
$59 = HEAP32[$0 + 92 >> 2];
if (HEAP32[$52 >> 2]) {
$12 = HEAP32[$0 + 152 >> 2];
$48 = $12;
$7 = 13;
label$181 : {
if ((Math_imul($13, 32e3) | 0) > ($46 | 0)) {
break label$181;
}
$7 = 16;
if ((Math_imul($13, 48e3) | 0) > ($46 | 0)) {
break label$181;
}
$7 = 18;
if ((Math_imul($13, 6e4) | 0) > ($46 | 0)) {
break label$181;
}
$7 = (Math_imul($13, 8e4) | 0) > ($46 | 0) ? 19 : 20;
}
$7 = ($7 | 0) < ($12 | 0) ? $48 : $7;
} else {
$7 = $14 - 1 | 0;
}
$7 = clt_compute_allocation($22, $29, $25, $49, $35, $9, $55, $57, $18, $58, $45, $44, $43, $47, $65, $42, 1, $59, HEAP32[$0 + 64 >> 2] ? 1 : $7);
$9 = $7;
$18 = HEAP32[$0 + 92 >> 2];
if ($18) {
$9 = $18 + 1 | 0;
$18 = $18 - 1 | 0;
$18 = ($7 | 0) < ($18 | 0) ? $18 : $7;
$9 = ($9 | 0) < ($18 | 0) ? $9 : $18;
}
$18 = $26 << 3;
HEAP32[$0 + 92 >> 2] = $9;
quant_fine_energy($19, $20, $14, $21, $24, $2, $5, $13);
$9 = 0;
$11 = $11 - ($40 + 15 & -16) | 0;
__stack_pointer = $11;
quant_all_bands(1, $19, $20, $14, $27, ($13 | 0) == 2 ? ($37 << 2) + $27 | 0 : 0, $11, $38, $4, $56, HEAP32[$0 + 80 >> 2], HEAP32[$16 + 20 >> 2], HEAP32[$0 + 232 >> 2], $33, $23 - $1 | 0, HEAP32[$16 + 80 >> 2], $5, $15, $7, $0 + 76 | 0, HEAP32[$0 + 24 >> 2], HEAP32[$0 + 72 >> 2], HEAP32[$0 + 68 >> 2]);
if ($17) {
ec_enc_bits($5, HEAP32[$0 + 116 >> 2] < 2, 1);
}
quant_energy_finalise($19, $20, $14, $21, $24, $2, $3, (($18 - HEAP32[$5 + 20 >> 2] | 0) - Math_clz32(HEAP32[$5 + 28 >> 2]) | 0) + 32 | 0, $5, $13);
$27 = $50 << 2;
$3 = memset($53, 0, $27);
while (1) {
if (!$32) {
$4 = Math_imul($9, $30);
$2 = $20;
while (1) {
$1 = $2 + $4 << 2;
$12 = $3 + $1 | 0;
$6 = HEAPF32[$1 + $24 >> 2];
$1 = $6 > Math_fround(.5);
$7 = ($1 ? Math_fround(.5) : $6) < Math_fround(-.5);
$8 = $7 ? Math_fround(-.5) : Math_fround(.5);
HEAPF32[$12 >> 2] = $1 ? $8 : $7 ? $8 : $6;
$2 = $2 + 1 | 0;
if (($14 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$9 = $9 + 1 | 0;
if (($31 | 0) != ($9 | 0)) {
continue;
}
break;
}
if (!(!($51 ^ 1) | ($40 | 0) < 1)) {
$2 = 0;
while (1) {
HEAP32[($2 << 2) + $21 >> 2] = -1042284544;
$2 = $2 + 1 | 0;
if (($40 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$2 = HEAP32[$16 + 28 >> 2];
HEAP32[$0 + 112 >> 2] = $64;
HEAPF32[$0 + 108 >> 2] = $66;
HEAP32[$0 + 104 >> 2] = $2;
if ($70) {
$2 = $30 << 2;
memcpy($21 + $2 | 0, $21, $2);
}
label$190 : {
if ($36) {
$2 = 0;
if (($50 | 0) <= 0) {
break label$190;
}
while (1) {
$1 = $2 << 2;
$7 = $28 + $1 | 0;
$6 = HEAPF32[$7 >> 2];
$8 = HEAPF32[$1 + $21 >> 2];
HEAPF32[$7 >> 2] = $6 < $8 ? $6 : $8;
$2 = $2 + 1 | 0;
if (($50 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$190;
}
memcpy($39, $28, $27);
memcpy($28, $21, $27);
}
$3 = ($20 | 0) < 1;
$4 = 0;
while (1) {
if (!$3) {
$7 = Math_imul($4, $30);
$2 = 0;
while (1) {
$1 = $2 + $7 << 2;
HEAP32[$21 + $1 >> 2] = 0;
HEAP32[$1 + $39 >> 2] = -1042284544;
HEAP32[$1 + $28 >> 2] = -1042284544;
$2 = $2 + 1 | 0;
if (($20 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
if (($14 | 0) < ($30 | 0)) {
$7 = Math_imul($4, $30);
$2 = $14;
while (1) {
$1 = $2 + $7 << 2;
HEAP32[$21 + $1 >> 2] = 0;
HEAP32[$1 + $39 >> 2] = -1042284544;
HEAP32[$1 + $28 >> 2] = -1042284544;
$2 = $2 + 1 | 0;
if (($30 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$4 = $4 + 1 | 0;
if (($54 | 0) != ($4 | 0)) {
continue;
}
break;
}
$2 = 0;
$2 = !$36 & ($62 ^ -1) ? $2 : HEAP32[$0 + 116 >> 2] + 1 | 0;
HEAP32[$0 + 116 >> 2] = $2;
HEAP32[$0 + 76 >> 2] = HEAP32[$5 + 28 >> 2];
ec_enc_done($5);
$7 = HEAP32[$5 + 44 >> 2] ? -3 : $26;
}
__stack_pointer = $16 + 192 | 0;
return $7;
}
function run_analysis($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) {
var $12 = Math_fround(0), $13 = Math_fround(0), $14 = 0, $15 = 0, $16 = 0, $17 = Math_fround(0), $18 = Math_fround(0), $19 = Math_fround(0), $20 = Math_fround(0), $21 = Math_fround(0), $22 = 0, $23 = Math_fround(0), $24 = Math_fround(0), $25 = Math_fround(0), $26 = Math_fround(0), $27 = 0, $28 = 0, $29 = Math_fround(0), $30 = Math_fround(0), $31 = Math_fround(0), $32 = 0, $33 = Math_fround(0), $34 = 0, $35 = Math_fround(0), $36 = 0, $37 = Math_fround(0), $38 = Math_fround(0), $39 = Math_fround(0), $40 = Math_fround(0), $41 = Math_fround(0), $42 = Math_fround(0), $43 = Math_fround(0), $44 = Math_fround(0), $45 = Math_fround(0), $46 = Math_fround(0), $47 = Math_fround(0), $48 = 0, $49 = Math_fround(0), $50 = 0, $51 = 0, $52 = Math_fround(0), $53 = 0, $54 = Math_fround(0), $55 = 0, $56 = Math_fround(0), $57 = Math_fround(0), $58 = 0, $59 = Math_fround(0), $60 = Math_fround(0), $61 = Math_fround(0), $62 = Math_fround(0), $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = Math_fround(0), $68 = Math_fround(0), $69 = Math_fround(0), $70 = Math_fround(0), $71 = 0, $72 = 0, $73 = Math_fround(0);
$14 = __stack_pointer - 11360 | 0;
__stack_pointer = $14;
if ($2) {
$15 = (Math_imul($8, 95) | 0) / 50 | 0;
$3 = $3 & -2;
$63 = ($3 | 0) > ($15 | 0) ? $15 : $3;
$50 = HEAP32[$0 + 7440 >> 2];
$51 = $63 - $50 | 0;
if (($51 | 0) >= 1) {
$64 = $0 + 7464 | 0;
$71 = $0 + 3852 | 0;
$72 = $0 + 4812 | 0;
$65 = $0 + 7592 | 0;
$53 = $0 + 2892 | 0;
$55 = ($8 | 0) / 50 | 0;
$12 = Math_fround(Math_fround(.0005699999746866524) / Math_fround(1 << (($9 | 0) > 8 ? $9 : 8) - 8));
$56 = Math_fround($12 * $12);
$73 = Math_fround($56 * Math_fround(3));
while (1) {
$8 = ($51 | 0) > ($55 | 0);
if (!HEAP32[$0 + 7460 >> 2]) {
HEAP32[$0 + 7460 >> 2] = 1;
HEAP32[$0 + 5772 >> 2] = 240;
}
$22 = $8 ? $55 : $51;
$48 = HEAP32[$0 + 7436 >> 2];
$8 = HEAP32[$0 + 8 >> 2];
label$5 : {
if (($8 | 0) != 16e3) {
$16 = $50;
if (($8 | 0) != 48e3) {
break label$5;
}
$22 = ($22 | 0) / 2 | 0;
$16 = ($50 | 0) / 2 | 0;
break label$5;
}
$22 = (Math_imul($22, 3) | 0) / 2 | 0;
$16 = (Math_imul($50, 3) | 0) / 2 | 0;
}
$28 = HEAP32[$1 + 72 >> 2];
$3 = HEAP32[$0 + 5772 >> 2];
$15 = (($3 << 2) + $0 | 0) + 2892 | 0;
$3 = 720 - $3 | 0;
$45 = Math_fround(downmix_and_resample($10, $2, $15, $65, ($3 | 0) > ($22 | 0) ? $22 : $3, $16, $5, $6, $7, $8) + HEAPF32[$0 + 7456 >> 2]);
HEAPF32[$0 + 7456 >> 2] = $45;
$8 = HEAP32[$0 + 5772 >> 2] + $22 | 0;
label$7 : {
if (($8 | 0) <= 719) {
HEAP32[$0 + 5772 >> 2] = $8;
break label$7;
}
$8 = $48 + 1 | 0;
$57 = Math_fround(Math_fround(1) / Math_fround((($48 | 0) < 100 ? $8 : 100) | 0));
$46 = Math_fround(Math_fround(1) / Math_fround((($48 | 0) < 25 ? $8 : 25) | 0));
$29 = Math_fround(Math_fround(1) / Math_fround((($48 | 0) < 10 ? $8 : 10) | 0));
$32 = HEAP32[$0 + 7444 >> 2];
HEAP32[$0 + 7444 >> 2] = $32 + (($32 | 0) > 98 ? -99 : 1);
$27 = is_digital_silence($53, 720, 1, $9);
$8 = 0;
while (1) {
$3 = ($14 + 5760 | 0) + ($8 << 3) | 0;
$15 = $8 << 2;
$12 = HEAPF32[$15 + 48944 >> 2];
$15 = $15 + $53 | 0;
HEAPF32[$3 >> 2] = $12 * HEAPF32[$15 >> 2];
HEAPF32[$3 + 4 >> 2] = $12 * HEAPF32[$15 + 960 >> 2];
$3 = 479 - $8 | 0;
$15 = ($14 + 5760 | 0) + ($3 << 3) | 0;
HEAPF32[$15 >> 2] = $12 * HEAPF32[($3 << 2) + $53 >> 2];
HEAPF32[$15 + 4 >> 2] = $12 * HEAPF32[(719 - $8 << 2) + $53 >> 2];
$8 = $8 + 1 | 0;
if (($8 | 0) != 240) {
continue;
}
break;
}
memcpy($53, $72, 960);
$8 = HEAP32[$0 + 5772 >> 2];
$3 = $22 + $8 | 0;
$12 = downmix_and_resample($10, $2, $71, $65, $3 - 720 | 0, ($16 - $8 | 0) + 720 | 0, $5, $6, $7, HEAP32[$0 + 8 >> 2]);
HEAP32[$0 + 5772 >> 2] = $3 - 480;
HEAPF32[$0 + 7456 >> 2] = $12;
$36 = ($32 << 6) + $0 | 0;
$34 = $36 + 7604 | 0;
if ($27) {
$8 = HEAP32[$0 + 7444 >> 2];
$8 = ($8 + (($8 | 0) < 2 ? 98 : -2) << 6) + $0 | 0;
$16 = $8 + 7660 | 0;
$15 = HEAP32[$16 >> 2];
$3 = HEAP32[$16 + 4 >> 2];
$16 = $15;
$15 = $34;
HEAP32[$15 + 56 >> 2] = $16;
HEAP32[$15 + 60 >> 2] = $3;
$16 = $8 + 7652 | 0;
$3 = HEAP32[$16 >> 2];
$15 = HEAP32[$16 + 4 >> 2];
$16 = $3;
$3 = $34;
HEAP32[$3 + 48 >> 2] = $16;
HEAP32[$3 + 52 >> 2] = $15;
$16 = $8 + 7644 | 0;
$15 = HEAP32[$16 >> 2];
$3 = HEAP32[$16 + 4 >> 2];
$16 = $15;
$15 = $34;
HEAP32[$15 + 40 >> 2] = $16;
HEAP32[$15 + 44 >> 2] = $3;
$16 = $8 + 7636 | 0;
$3 = HEAP32[$16 >> 2];
$15 = HEAP32[$16 + 4 >> 2];
$16 = $3;
$3 = $34;
HEAP32[$3 + 32 >> 2] = $16;
HEAP32[$3 + 36 >> 2] = $15;
$16 = $8 + 7628 | 0;
$15 = HEAP32[$16 >> 2];
$3 = HEAP32[$16 + 4 >> 2];
$16 = $15;
$15 = $34;
HEAP32[$15 + 24 >> 2] = $16;
HEAP32[$15 + 28 >> 2] = $3;
$16 = $8 + 7620 | 0;
$3 = HEAP32[$16 >> 2];
$15 = HEAP32[$16 + 4 >> 2];
$16 = $3;
$3 = $34;
HEAP32[$3 + 16 >> 2] = $16;
HEAP32[$3 + 20 >> 2] = $15;
$16 = $8 + 7612 | 0;
$15 = HEAP32[$16 >> 2];
$3 = HEAP32[$16 + 4 >> 2];
$16 = $15;
$15 = $34;
HEAP32[$15 + 8 >> 2] = $16;
HEAP32[$15 + 12 >> 2] = $3;
$16 = $8 + 7604 | 0;
$3 = HEAP32[$16 >> 2];
$15 = HEAP32[$16 + 4 >> 2];
$8 = $3;
$3 = $34;
HEAP32[$3 >> 2] = $8;
HEAP32[$3 + 4 >> 2] = $15;
break label$7;
}
opus_fft_c($28, $14 + 5760 | 0, $14 + 1920 | 0);
$8 = 1;
$25 = HEAPF32[$14 + 1920 >> 2];
if ($25 != $25) {
HEAP32[$34 >> 2] = 0;
break label$7;
}
while (1) {
$3 = ((0 - $8 << 3) + $14 | 0) + 5760 | 0;
$19 = HEAPF32[$3 >> 2];
$15 = ($14 + 1920 | 0) + ($8 << 3) | 0;
$18 = HEAPF32[$15 >> 2];
$12 = Math_fround($19 - $18);
$17 = HEAPF32[$15 + 4 >> 2];
$26 = HEAPF32[$3 + 4 >> 2];
$13 = Math_fround($17 + $26);
$20 = Math_fround(0);
$3 = $8 << 2;
$15 = $3 + $0 | 0;
$28 = $15;
$27 = $15;
$23 = Math_fround($18 + $19);
$19 = Math_fround($23 * $23);
$18 = Math_fround($17 - $26);
$17 = Math_fround($18 * $18);
$24 = Math_fround(0);
label$13 : {
if (Math_fround($19 + $17) < Math_fround(1.000000045813705e-18)) {
break label$13;
}
$24 = Math_fround(($18 < Math_fround(0) ? Math_fround(-1.5707963705062866) : Math_fround(1.5707963705062866)) - Math_fround(Math_fround(Math_fround($18 * $23) * Math_fround(Math_fround($19 * Math_fround(.43157973885536194)) + $17)) / Math_fround(Math_fround(Math_fround($19 * Math_fround(.6784840226173401)) + $17) * Math_fround(Math_fround($19 * Math_fround(.0859554186463356)) + $17))));
if (!($19 < $17 ^ 1)) {
break label$13;
}
$24 = $18 < Math_fround(0) ? Math_fround(-1.5707963705062866) : Math_fround(1.5707963705062866);
$18 = Math_fround($23 * $18);
$24 = Math_fround(Math_fround($24 + Math_fround(Math_fround($18 * Math_fround($19 + Math_fround($17 * Math_fround(.43157973885536194)))) / Math_fround(Math_fround($19 + Math_fround($17 * Math_fround(.6784840226173401))) * Math_fround($19 + Math_fround($17 * Math_fround(.0859554186463356)))))) - ($18 < Math_fround(0) ? Math_fround(-1.5707963705062866) : Math_fround(1.5707963705062866)));
}
$24 = Math_fround($24 * Math_fround(.15915493667125702));
$22 = $15 + 12 | 0;
$23 = Math_fround($24 - HEAPF32[$22 >> 2]);
$16 = $15 + 972 | 0;
$19 = Math_fround($23 - HEAPF32[$16 >> 2]);
$18 = Math_fround($12 * $12);
$17 = Math_fround($13 * $13);
label$14 : {
if (Math_fround($18 + $17) < Math_fround(1.000000045813705e-18)) {
break label$14;
}
if (!($18 > $17 ^ 1)) {
$20 = Math_fround(($12 < Math_fround(0) ? Math_fround(-1.5707963705062866) : Math_fround(1.5707963705062866)) - Math_fround(Math_fround(Math_fround($12 * $13) * Math_fround($18 + Math_fround($17 * Math_fround(.43157973885536194)))) / Math_fround(Math_fround($18 + Math_fround($17 * Math_fround(.6784840226173401))) * Math_fround($18 + Math_fround($17 * Math_fround(.0859554186463356))))));
break label$14;
}
$20 = $12 < Math_fround(0) ? Math_fround(-1.5707963705062866) : Math_fround(1.5707963705062866);
$12 = Math_fround($12 * $13);
$20 = Math_fround(Math_fround($20 + Math_fround(Math_fround($12 * Math_fround(Math_fround($18 * Math_fround(.43157973885536194)) + $17)) / Math_fround(Math_fround(Math_fround($18 * Math_fround(.6784840226173401)) + $17) * Math_fround(Math_fround($18 * Math_fround(.0859554186463356)) + $17)))) - ($12 < Math_fround(0) ? Math_fround(-1.5707963705062866) : Math_fround(1.5707963705062866)));
}
$18 = Math_fround($20 * Math_fround(.15915493667125702));
$17 = Math_fround($18 - $24);
$12 = Math_fround($17 - $23);
$32 = lrintf($12);
$16 = $3 + $14 | 0;
$13 = Math_fround($19 - Math_fround(lrintf($19) | 0));
$12 = Math_fround($12 - Math_fround($32 | 0));
HEAPF32[$16 >> 2] = Math_fround(Math_abs($13)) + Math_fround(Math_abs($12));
$15 = $15 + 1932 | 0;
$19 = HEAPF32[$15 >> 2];
$12 = Math_fround($12 * $12);
$12 = Math_fround($12 * $12);
HEAPF32[($14 + 1e4 | 0) + $3 >> 2] = Math_fround(Math_fround(1) / Math_fround(Math_fround($12 * Math_fround(62341.81640625)) + Math_fround(1))) + Math_fround(-.014999999664723873);
$13 = Math_fround($13 * $13);
HEAPF32[($14 + 960 | 0) + $3 >> 2] = Math_fround(Math_fround(1) / Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($19 + Math_fround($13 * $13)) + Math_fround($12 + $12)) * Math_fround(.25)) * Math_fround(62341.81640625)) + Math_fround(1))) + Math_fround(-.014999999664723873);
HEAPF32[$28 + 12 >> 2] = $18;
HEAPF32[$27 + 972 >> 2] = $17;
HEAPF32[$15 >> 2] = $12;
$8 = $8 + 1 | 0;
if (($8 | 0) != 240) {
continue;
}
break;
}
$8 = 2;
$12 = HEAPF32[$14 + 10008 >> 2];
while (1) {
$3 = $8 << 2;
$15 = $3 + ($14 + 960 | 0) | 0;
$19 = HEAPF32[$15 >> 2];
$18 = HEAPF32[($3 + $14 | 0) + 9996 >> 2];
$3 = $8 + 1 | 0;
$13 = HEAPF32[($14 + 1e4 | 0) + ($3 << 2) >> 2];
$18 = $13 < $18 ? $18 : $13;
$12 = Math_fround(($12 < $18 ? $12 : $18) + Math_fround(-.10000000149011612));
HEAPF32[$15 >> 2] = ($12 < $19 ? $19 : $12) * Math_fround(.8999999761581421);
$12 = $13;
$8 = $3;
if (($8 | 0) != 239) {
continue;
}
break;
}
$58 = $36 + 7620 | 0;
HEAP32[$58 >> 2] = 0;
$27 = HEAP32[$0 + 7436 >> 2];
if (!$27) {
HEAP32[$0 + 7008 >> 2] = 1343554297;
HEAP32[$0 + 7012 >> 2] = 1343554297;
HEAP32[$0 + 7080 >> 2] = -803929351;
HEAP32[$0 + 7084 >> 2] = -803929351;
HEAP32[$0 + 7088 >> 2] = -803929351;
HEAP32[$0 + 7092 >> 2] = -803929351;
HEAP32[$0 + 7016 >> 2] = 1343554297;
HEAP32[$0 + 7020 >> 2] = 1343554297;
HEAP32[$0 + 7096 >> 2] = -803929351;
HEAP32[$0 + 7100 >> 2] = -803929351;
HEAP32[$0 + 7024 >> 2] = 1343554297;
HEAP32[$0 + 7028 >> 2] = 1343554297;
HEAP32[$0 + 7104 >> 2] = -803929351;
HEAP32[$0 + 7108 >> 2] = -803929351;
HEAP32[$0 + 7032 >> 2] = 1343554297;
HEAP32[$0 + 7036 >> 2] = 1343554297;
HEAP32[$0 + 7112 >> 2] = -803929351;
HEAP32[$0 + 7116 >> 2] = -803929351;
HEAP32[$0 + 7040 >> 2] = 1343554297;
HEAP32[$0 + 7044 >> 2] = 1343554297;
HEAP32[$0 + 7048 >> 2] = 1343554297;
HEAP32[$0 + 7052 >> 2] = 1343554297;
HEAP32[$0 + 7120 >> 2] = -803929351;
HEAP32[$0 + 7124 >> 2] = -803929351;
HEAP32[$0 + 7056 >> 2] = 1343554297;
HEAP32[$0 + 7060 >> 2] = 1343554297;
HEAP32[$0 + 7136 >> 2] = -803929351;
HEAP32[$0 + 7140 >> 2] = -803929351;
HEAP32[$0 + 7128 >> 2] = -803929351;
HEAP32[$0 + 7132 >> 2] = -803929351;
HEAP32[$0 + 7064 >> 2] = 1343554297;
HEAP32[$0 + 7068 >> 2] = 1343554297;
HEAP32[$0 + 7072 >> 2] = 1343554297;
HEAP32[$0 + 7144 >> 2] = -803929351;
HEAP32[$0 + 7148 >> 2] = -803929351;
HEAP32[$0 + 7076 >> 2] = 1343554297;
}
$12 = Math_fround($25 + $25);
$17 = Math_fround($12 * $12);
$12 = HEAPF32[$14 + 1924 >> 2];
$12 = Math_fround($12 + $12);
$17 = Math_fround($17 + Math_fround($12 * $12));
$12 = HEAPF32[$14 + 1928 >> 2];
$20 = Math_fround($12 * $12);
$12 = HEAPF32[$14 + 5752 >> 2];
$20 = Math_fround($20 + Math_fround($12 * $12));
$12 = HEAPF32[$14 + 1932 >> 2];
$20 = Math_fround($20 + Math_fround($12 * $12));
$12 = HEAPF32[$14 + 5756 >> 2];
$17 = Math_fround($17 + Math_fround($20 + Math_fround($12 * $12)));
$12 = HEAPF32[$14 + 1936 >> 2];
$20 = Math_fround($12 * $12);
$12 = HEAPF32[$14 + 5744 >> 2];
$20 = Math_fround($20 + Math_fround($12 * $12));
$12 = HEAPF32[$14 + 1940 >> 2];
$20 = Math_fround($20 + Math_fround($12 * $12));
$12 = HEAPF32[$14 + 5748 >> 2];
$17 = Math_fround($17 + Math_fround($20 + Math_fround($12 * $12)));
$12 = HEAPF32[$14 + 1944 >> 2];
$20 = Math_fround($12 * $12);
$12 = HEAPF32[$14 + 5736 >> 2];
$20 = Math_fround($20 + Math_fround($12 * $12));
$12 = HEAPF32[$14 + 1948 >> 2];
$20 = Math_fround($20 + Math_fround($12 * $12));
$12 = HEAPF32[$14 + 5740 >> 2];
$23 = Math_fround(Math_fround(log(+Math_fround(Math_fround($17 + Math_fround($20 + Math_fround($12 * $12))) + Math_fround(1.000000013351432e-10)))) * Math_fround(.7213475108146667));
HEAPF32[$14 + 9888 >> 2] = $23;
$24 = Math_fround(0);
$16 = 0;
$8 = 4;
$35 = Math_fround(0);
$30 = Math_fround(0);
$31 = Math_fround(0);
$49 = Math_fround(0);
$37 = Math_fround(0);
$38 = Math_fround(0);
while (1) {
$19 = Math_fround(0);
$18 = Math_fround(0);
$13 = Math_fround(0);
$32 = $16 + 1 | 0;
$28 = $32 << 2;
$22 = HEAP32[$28 + 49904 >> 2];
if (($22 | 0) > ($8 | 0)) {
while (1) {
$3 = ($14 + 1920 | 0) + ($8 << 3) | 0;
$12 = HEAPF32[$3 >> 2];
$17 = Math_fround($12 * $12);
$15 = ((0 - $8 << 3) + $14 | 0) + 5760 | 0;
$12 = HEAPF32[$15 >> 2];
$17 = Math_fround($17 + Math_fround($12 * $12));
$12 = HEAPF32[$3 + 4 >> 2];
$17 = Math_fround($17 + Math_fround($12 * $12));
$12 = HEAPF32[$15 + 4 >> 2];
$12 = Math_fround($17 + Math_fround($12 * $12));
$13 = Math_fround($13 + $12);
$3 = $8 << 2;
$18 = Math_fround($18 + Math_fround($12 * Math_fround(Math_max(HEAPF32[$3 + ($14 + 960 | 0) >> 2], Math_fround(0)))));
$19 = Math_fround($19 + Math_fround(Math_fround($12 + $12) * Math_fround(Math_fround(.5) - HEAPF32[$3 + $14 >> 2])));
$8 = $8 + 1 | 0;
if (($22 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
if (!($13 == $13 ? !($13 < Math_fround(1e9) ^ 1) : 0)) {
HEAP32[$34 >> 2] = 0;
break label$7;
}
$3 = $16 << 2;
$8 = $3 + (Math_imul(HEAP32[$0 + 7432 >> 2], 72) + $0 | 0) | 0;
HEAPF32[$8 + 5856 >> 2] = $13;
$15 = ($14 + 9888 | 0) + $28 | 0;
$26 = Math_fround($13 + Math_fround(1.000000013351432e-10));
$12 = Math_fround(log(+$26));
HEAPF32[$15 >> 2] = $12 * Math_fround(.7213475108146667);
HEAPF32[($14 + 11200 | 0) + $3 >> 2] = $12;
HEAPF32[$8 + 6432 >> 2] = $12;
label$22 : {
if ($27) {
$8 = $0 + $3 | 0;
$17 = HEAPF32[$8 + 7008 >> 2];
$20 = HEAPF32[$8 + 7080 >> 2];
break label$22;
}
$8 = $0 + $3 | 0;
HEAPF32[$8 + 7080 >> 2] = $12;
HEAPF32[$8 + 7008 >> 2] = $12;
$17 = $12;
$20 = $12;
}
$8 = $0 + $3 | 0;
$15 = $8 + 7008 | 0;
$28 = $8 + 7080 | 0;
label$24 : {
if (+$20 > +$17 + 7.5 ^ 1) {
break label$24;
}
if (!(Math_fround($20 - $12) > Math_fround($12 - $17) ^ 1)) {
$20 = Math_fround($20 + Math_fround(-.009999999776482582));
HEAPF32[$28 >> 2] = $20;
break label$24;
}
$17 = Math_fround($17 + Math_fround(.009999999776482582));
HEAPF32[$15 >> 2] = $17;
}
$13 = Math_fround($13 + Math_fround(1.0000000036274937e-15));
label$26 : {
if (!($12 > $20 ^ 1)) {
HEAPF32[$28 >> 2] = $12;
$20 = Math_fround($12 + Math_fround(-15));
$17 = $17 < $20 ? $20 : $17;
HEAPF32[$15 >> 2] = $17;
$20 = $12;
break label$26;
}
if ($12 < $17 ^ 1) {
break label$26;
}
HEAPF32[$15 >> 2] = $12;
$17 = Math_fround($12 + Math_fround(15));
$20 = $17 < $20 ? $17 : $20;
HEAPF32[$28 >> 2] = $20;
$17 = $12;
}
$26 = Math_fround(Math_sqrt($26));
$19 = Math_fround($19 / $13);
$13 = Math_fround($18 / $13);
$15 = $8 + 5776 | 0;
$18 = HEAPF32[$8 + 5856 >> 2];
$25 = HEAPF32[$8 + 5928 >> 2];
$33 = HEAPF32[$8 + 6e3 >> 2];
$39 = HEAPF32[$8 + 6072 >> 2];
$40 = HEAPF32[$8 + 6144 >> 2];
$41 = HEAPF32[$8 + 6216 >> 2];
$42 = HEAPF32[$8 + 6288 >> 2];
$43 = HEAPF32[$8 + 6360 >> 2];
$18 = Math_fround(Math_min(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_sqrt($18)) + Math_fround(0)) + Math_fround(Math_sqrt($25))) + Math_fround(Math_sqrt($33))) + Math_fround(Math_sqrt($39))) + Math_fround(Math_sqrt($40))) + Math_fround(Math_sqrt($41))) + Math_fround(Math_sqrt($42))) + Math_fround(Math_sqrt($43))) / Math_fround(Math_sqrt(+Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($18 + Math_fround(0)) + $25) + $33) + $39) + $40) + $41) + $42) + $43) * Math_fround(8)) + 1e-15))), Math_fround(.9900000095367432)));
$18 = Math_fround($18 * $18);
$18 = Math_fround($18 * $18);
$25 = Math_fround(HEAPF32[$15 >> 2] * $18);
$13 = $13 > $25 ? $13 : $25;
HEAPF32[($14 + 11280 | 0) + $3 >> 2] = $13;
$24 = Math_fround($24 + $13);
$12 = Math_fround(Math_fround($12 - $17) / Math_fround(Math_fround($20 - $17) + Math_fround(9999999747378752e-21)));
$24 = $16 >>> 0 >= 9 ? Math_fround($24 - HEAPF32[($3 + $14 | 0) + 11244 >> 2]) : $24;
$38 = Math_fround($38 + $26);
$30 = Math_fround($30 + $19);
$49 = Math_fround($49 + $18);
$37 = Math_fround($37 + $12);
HEAPF32[$15 >> 2] = $13;
$12 = Math_fround(Math_fround(Math_fround(Math_fround($16 - 18 | 0) * Math_fround(.029999999329447746)) + Math_fround(1)) * $24);
$35 = $12 < $35 ? $35 : $12;
$31 = Math_fround($31 + Math_fround($13 * Math_fround($16 - 8 | 0)));
$8 = $22;
$16 = $32;
if (($16 | 0) != 18) {
continue;
}
break;
}
HEAPF32[$14 + 9808 >> 2] = $23;
$13 = Math_fround($23 + Math_fround(-2.5));
HEAPF32[$14 + 9728 >> 2] = $13;
$3 = 1;
$15 = 4;
$19 = $23;
while (1) {
$8 = $3 << 2;
$22 = HEAP32[$8 + 49904 >> 2];
$12 = Math_fround($22 - $15 | 0);
$18 = Math_fround(Math_fround($12 + $12) * Math_fround(.25));
$19 = Math_fround($19 + $18);
$12 = HEAPF32[($14 + 9888 | 0) + $8 >> 2];
$19 = $12 > $19 ? $19 : $12;
HEAPF32[($14 + 9808 | 0) + $8 >> 2] = $19;
$13 = Math_fround($13 - $18);
$12 = Math_fround($12 + Math_fround(-2.5));
$13 = $12 < $13 ? $13 : $12;
HEAPF32[($14 + 9728 | 0) + $8 >> 2] = $13;
$15 = $22;
$3 = $3 + 1 | 0;
if (($3 | 0) != 19) {
continue;
}
break;
}
$3 = 16;
$15 = 192;
$12 = HEAPF32[$14 + 9796 >> 2];
$13 = HEAPF32[$14 + 9876 >> 2];
while (1) {
$8 = $3;
$3 = $8 << 2;
$22 = $3 + ($14 + 9808 | 0) | 0;
$16 = HEAP32[$3 + 49904 >> 2];
$19 = Math_fround($15 - $16 | 0);
$19 = Math_fround(Math_fround($19 + $19) * Math_fround(.25));
$13 = Math_fround($13 + $19);
$18 = HEAPF32[$22 >> 2];
$13 = $13 < $18 ? $13 : $18;
HEAPF32[$22 >> 2] = $13;
$12 = Math_fround($12 - $19);
$3 = ($14 + 9728 | 0) + $3 | 0;
$19 = HEAPF32[$3 >> 2];
$12 = $12 > $19 ? $12 : $19;
HEAPF32[$3 >> 2] = $12;
$3 = $8 - 1 | 0;
$15 = $16;
if ($8) {
continue;
}
break;
}
$8 = 0;
while (1) {
$44 = Math_fround(0);
$15 = ($8 + $36 | 0) + 7648 | 0;
$3 = $8 << 2;
$66 = Math_floor(+Math_fround(Math_fround(Math_fround(Math_max(Math_fround(HEAPF32[$3 + ($14 + 9728 | 0) >> 2] - $23), Math_fround(0))) + Math_fround(Math_max(Math_fround($23 - Math_fround(HEAPF32[($14 + 9808 | 0) + $3 >> 2] + Math_fround(2.5))), Math_fround(0)))) * Math_fround(64)) + .5);
label$32 : {
if (Math_abs($66) < 2147483648) {
$3 = ~~$66;
break label$32;
}
$3 = -2147483648;
}
HEAP8[$15 | 0] = ($3 | 0) < 255 ? $3 : 255;
$15 = 0;
$8 = $8 + 1 | 0;
if (($8 | 0) != 19) {
$23 = HEAPF32[($14 + 9888 | 0) + ($8 << 2) >> 2];
continue;
}
break;
}
while (1) {
$8 = Math_imul($15, 72) + $0 | 0;
$19 = HEAPF32[$8 + 6500 >> 2];
$18 = HEAPF32[$8 + 6496 >> 2];
$17 = HEAPF32[$8 + 6448 >> 2];
$20 = HEAPF32[$8 + 6444 >> 2];
$24 = HEAPF32[$8 + 6440 >> 2];
$23 = HEAPF32[$8 + 6436 >> 2];
$26 = HEAPF32[$8 + 6432 >> 2];
$25 = HEAPF32[$8 + 6492 >> 2];
$33 = HEAPF32[$8 + 6488 >> 2];
$39 = HEAPF32[$8 + 6484 >> 2];
$40 = HEAPF32[$8 + 6480 >> 2];
$41 = HEAPF32[$8 + 6476 >> 2];
$42 = HEAPF32[$8 + 6472 >> 2];
$43 = HEAPF32[$8 + 6468 >> 2];
$54 = HEAPF32[$8 + 6464 >> 2];
$47 = HEAPF32[$8 + 6460 >> 2];
$59 = HEAPF32[$8 + 6456 >> 2];
$52 = HEAPF32[$8 + 6452 >> 2];
$12 = Math_fround(999999986991104);
$3 = 0;
while (1) {
$8 = Math_imul($3, 72) + $0 | 0;
$13 = Math_fround($26 - HEAPF32[$8 + 6432 >> 2]);
$21 = Math_fround(Math_fround($13 * $13) + Math_fround(0));
$13 = Math_fround($23 - HEAPF32[$8 + 6436 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($24 - HEAPF32[$8 + 6440 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($20 - HEAPF32[$8 + 6444 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($17 - HEAPF32[$8 + 6448 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($52 - HEAPF32[$8 + 6452 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($59 - HEAPF32[$8 + 6456 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($47 - HEAPF32[$8 + 6460 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($54 - HEAPF32[$8 + 6464 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($43 - HEAPF32[$8 + 6468 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($42 - HEAPF32[$8 + 6472 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($41 - HEAPF32[$8 + 6476 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($40 - HEAPF32[$8 + 6480 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($39 - HEAPF32[$8 + 6484 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($33 - HEAPF32[$8 + 6488 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($25 - HEAPF32[$8 + 6492 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($18 - HEAPF32[$8 + 6496 >> 2]);
$21 = Math_fround($21 + Math_fround($13 * $13));
$13 = Math_fround($19 - HEAPF32[$8 + 6500 >> 2]);
$13 = Math_fround($21 + Math_fround($13 * $13));
$12 = ($3 | 0) == ($15 | 0) ? $12 : $12 < $13 ? $12 : $13;
$3 = $3 + 1 | 0;
if (($3 | 0) != 8) {
continue;
}
break;
}
$44 = Math_fround($44 + $12);
$15 = $15 + 1 | 0;
if (($15 | 0) != 8) {
continue;
}
break;
}
$17 = Math_fround(0);
$26 = ($48 | 0) < 2 ? Math_fround(0) : Math_fround(Math_fround(1) - $57);
$25 = Math_fround($44 * Math_fround(.125));
$48 = HEAP32[$0 + 5852 >> 2];
$16 = 0;
$28 = 4;
$27 = 0;
$20 = Math_fround(0);
$18 = Math_fround(0);
$19 = Math_fround(0);
while (1) {
$12 = Math_fround(0);
$8 = $28;
$32 = $16 + 1 | 0;
$22 = HEAP32[($32 << 2) + 49904 >> 2];
if (($8 | 0) < ($22 | 0)) {
while (1) {
$3 = ($14 + 1920 | 0) + ($8 << 3) | 0;
$13 = HEAPF32[$3 >> 2];
$23 = Math_fround($13 * $13);
$15 = ((0 - $8 << 3) + $14 | 0) + 5760 | 0;
$13 = HEAPF32[$15 >> 2];
$23 = Math_fround($23 + Math_fround($13 * $13));
$13 = HEAPF32[$3 + 4 >> 2];
$23 = Math_fround($23 + Math_fround($13 * $13));
$13 = HEAPF32[$15 + 4 >> 2];
$12 = Math_fround($12 + Math_fround($23 + Math_fround($13 * $13)));
$8 = $8 + 1 | 0;
if (($22 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
$3 = $16 << 2;
$8 = ($3 + $0 | 0) + 7152 | 0;
$13 = Math_fround($26 * HEAPF32[$8 >> 2]);
$13 = $12 < $13 ? $13 : $12;
HEAPF32[$8 >> 2] = $13;
$8 = $16 >>> 0 < 11;
$24 = Math_fround($18 + $12);
$23 = Math_fround($19 + $12);
$20 = $12 < $20 ? $20 : $12;
if (!($20 < Math_fround($12 * Math_fround(1e9)) ^ 1)) {
$33 = $12 > $13 ? $12 : $13;
$13 = Math_fround($22 - $28 | 0);
$27 = Math_fround($56 * $13) < $12 ? $32 : $33 > Math_fround($73 * $13) ? $32 : $27;
}
$18 = $8 ? $24 : $18;
$19 = $8 ? $19 : $23;
HEAP32[($14 + 10960 | 0) + $3 >> 2] = Math_fround($17 * (($16 | 0) < ($48 | 0) ? Math_fround(.009999999776482582) : Math_fround(.05000000074505806))) > $12;
$13 = Math_fround($17 * Math_fround(.05000000074505806));
$17 = $12 < $13 ? $13 : $12;
$28 = $22;
$16 = $32;
if (($16 | 0) != 18) {
continue;
}
break;
}
if (HEAP32[$0 + 8 >> 2] == 48e3) {
$13 = Math_fround($26 * HEAPF32[$0 + 7224 >> 2]);
$12 = Math_fround($45 * Math_fround(.00027777778450399637));
$13 = $12 < $13 ? $13 : $12;
HEAPF32[$0 + 7224 >> 2] = $13;
$20 = $12 > $13 ? $12 : $13;
$8 = ($48 | 0) == 20;
$13 = $8 ? Math_fround(10) : Math_fround(30);
$27 = (Math_fround(Math_fround($56 * $13) * Math_fround(160)) < $12 ^ 1 ? !($20 > Math_fround(Math_fround($56 * Math_fround($13 * Math_fround(3))) * Math_fround(160))) : 0) ? $27 : 20;
HEAP32[$14 + 11032 >> 2] = Math_fround(($8 ? Math_fround(.009999999776482582) : Math_fround(.05000000074505806)) * $17) > $12;
$19 = Math_fround($12 + $19);
}
$12 = Math_fround($25 / Math_fround(18));
HEAPF32[$36 + 7644 >> 2] = $19 > $18 ? Math_fround($18 / $19) : Math_fround(1);
label$44 : {
if (($27 | 0) == 20) {
$27 = HEAP32[$14 + 11032 >> 2] ? 18 : 20;
break label$44;
}
$8 = $27 - 1 | 0;
if ($8 >>> 0 > 17) {
break label$44;
}
$27 = HEAP32[($14 + 10960 | 0) + ($8 << 2) >> 2] ? $8 : $27;
}
$59 = Math_fround(Math_sqrt($12));
$13 = Math_fround(HEAPF32[$0 + 7424 >> 2] + Math_fround(-.003000000026077032));
$12 = Math_fround(Math_fround(log10(+$38)) * Math_fround(20));
$13 = $12 < $13 ? $13 : $12;
HEAPF32[$0 + 7424 >> 2] = $13;
$19 = Math_fround(Math_fround(Math_fround(1) - $46) * HEAPF32[$0 + 7428 >> 2]);
HEAPF32[$0 + 7428 >> 2] = Math_fround($13 + Math_fround(-30)) > $12 ? Math_fround($46 + $19) : $19;
$16 = HEAP32[$0 + 7436 >> 2];
$3 = 0;
$12 = HEAPF32[$14 + 11204 >> 2];
$13 = HEAPF32[$14 + 11200 >> 2];
$19 = HEAPF32[$14 + 11260 >> 2];
$18 = HEAPF32[$14 + 11256 >> 2];
$17 = HEAPF32[$14 + 11252 >> 2];
$20 = HEAPF32[$14 + 11248 >> 2];
$24 = HEAPF32[$14 + 11244 >> 2];
$23 = HEAPF32[$14 + 11240 >> 2];
$26 = HEAPF32[$14 + 11236 >> 2];
$25 = HEAPF32[$14 + 11232 >> 2];
$33 = HEAPF32[$14 + 11228 >> 2];
$39 = HEAPF32[$14 + 11224 >> 2];
$40 = HEAPF32[$14 + 11220 >> 2];
$41 = HEAPF32[$14 + 11216 >> 2];
$42 = HEAPF32[$14 + 11212 >> 2];
$43 = HEAPF32[$14 + 11208 >> 2];
while (1) {
$8 = $3 << 6;
HEAPF32[($14 + 11168 | 0) + ($3 << 2) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($13 * HEAPF32[$8 + 49984 >> 2]) + Math_fround(0)) + Math_fround($12 * HEAPF32[($8 | 4) + 49984 >> 2])) + Math_fround($43 * HEAPF32[($8 | 8) + 49984 >> 2])) + Math_fround($42 * HEAPF32[($8 | 12) + 49984 >> 2])) + Math_fround($41 * HEAPF32[($8 | 16) + 49984 >> 2])) + Math_fround($40 * HEAPF32[($8 | 20) + 49984 >> 2])) + Math_fround($39 * HEAPF32[($8 | 24) + 49984 >> 2])) + Math_fround($33 * HEAPF32[($8 | 28) + 49984 >> 2])) + Math_fround($25 * HEAPF32[($8 | 32) + 49984 >> 2])) + Math_fround($26 * HEAPF32[($8 | 36) + 49984 >> 2])) + Math_fround($23 * HEAPF32[($8 | 40) + 49984 >> 2])) + Math_fround($24 * HEAPF32[($8 | 44) + 49984 >> 2])) + Math_fround($20 * HEAPF32[($8 | 48) + 49984 >> 2])) + Math_fround($17 * HEAPF32[($8 | 52) + 49984 >> 2])) + Math_fround($18 * HEAPF32[($8 | 56) + 49984 >> 2])) + Math_fround($19 * HEAPF32[($8 | 60) + 49984 >> 2]);
$3 = $3 + 1 | 0;
if (($3 | 0) != 8) {
continue;
}
break;
}
$22 = 0;
while (1) {
$15 = $22 << 4;
$12 = Math_fround(0);
$8 = 0;
while (1) {
$3 = ($8 << 2) + $0 | 0;
$12 = Math_fround($12 + Math_fround(Math_fround(HEAPF32[($8 + $15 << 2) + 49984 >> 2] * Math_fround(.5)) * Math_fround(HEAPF32[$3 + 7080 >> 2] + HEAPF32[$3 + 7008 >> 2])));
$8 = $8 + 1 | 0;
if (($8 | 0) != 16) {
continue;
}
break;
}
HEAPF32[($14 + 9968 | 0) + ($22 << 2) >> 2] = $12;
$22 = $22 + 1 | 0;
if (($22 | 0) != 8) {
continue;
}
break;
}
$20 = Math_fround($30 / Math_fround(18));
HEAPF32[$58 >> 2] = $20 + Math_fround(Math_fround(Math_fround(1) - $20) * (($16 | 0) < 10 ? Math_fround(.5) : Math_fround($37 / Math_fround(18))));
$12 = Math_fround($35 / Math_fround(9));
$13 = Math_fround(HEAPF32[$0 + 5848 >> 2] * Math_fround(.800000011920929));
$12 = $12 > $13 ? $12 : $13;
HEAPF32[$0 + 5848 >> 2] = $12;
$3 = $36 + 7612 | 0;
HEAPF32[$3 >> 2] = $31 * Math_fround(.015625);
$15 = ($16 | 0) < 9999 ? $16 + 1 | 0 : 1e4;
HEAP32[$0 + 7436 >> 2] = $15;
HEAP32[$0 + 7432 >> 2] = (HEAP32[$0 + 7432 >> 2] + 1 | 0) % 8;
$22 = $36 + 7608 | 0;
HEAPF32[$22 >> 2] = $12;
$24 = HEAPF32[$0 + 7260 >> 2];
$23 = HEAPF32[$0 + 7228 >> 2];
$26 = HEAPF32[$0 + 7292 >> 2];
$47 = Math_fround($23 + $26);
$13 = HEAPF32[$14 + 11168 >> 2];
$52 = HEAPF32[$0 + 7324 >> 2];
$35 = Math_fround($13 + $52);
$44 = HEAPF32[$0 + 7356 >> 2];
$21 = Math_fround(Math_fround(Math_fround($24 * Math_fround(.6969299912452698)) + Math_fround(Math_fround($47 * Math_fround(.49195000529289246)) - Math_fround($35 * Math_fround(.12298999726772308)))) - Math_fround($44 * Math_fround(1.4349000453948975)));
HEAPF32[$14 + 11056 >> 2] = $21;
$25 = HEAPF32[$0 + 7264 >> 2];
$33 = HEAPF32[$0 + 7232 >> 2];
$39 = HEAPF32[$0 + 7296 >> 2];
$30 = Math_fround($33 + $39);
$19 = HEAPF32[$14 + 11172 >> 2];
$31 = HEAPF32[$0 + 7328 >> 2];
$37 = Math_fround($19 + $31);
$38 = HEAPF32[$0 + 7360 >> 2];
$60 = Math_fround(Math_fround(Math_fround($25 * Math_fround(.6969299912452698)) + Math_fround(Math_fround($30 * Math_fround(.49195000529289246)) - Math_fround($37 * Math_fround(.12298999726772308)))) - Math_fround($38 * Math_fround(1.4349000453948975)));
HEAPF32[$14 + 11060 >> 2] = $60;
$40 = HEAPF32[$0 + 7268 >> 2];
$41 = HEAPF32[$0 + 7236 >> 2];
$42 = HEAPF32[$0 + 7300 >> 2];
$45 = Math_fround($41 + $42);
$18 = HEAPF32[$14 + 11176 >> 2];
$46 = HEAPF32[$0 + 7332 >> 2];
$57 = Math_fround($18 + $46);
$67 = HEAPF32[$0 + 7364 >> 2];
$61 = Math_fround(Math_fround(Math_fround($40 * Math_fround(.6969299912452698)) + Math_fround(Math_fround($45 * Math_fround(.49195000529289246)) - Math_fround($57 * Math_fround(.12298999726772308)))) - Math_fround($67 * Math_fround(1.4349000453948975)));
HEAPF32[$14 + 11064 >> 2] = $61;
$68 = HEAPF32[$0 + 7272 >> 2];
$43 = HEAPF32[$0 + 7240 >> 2];
$54 = HEAPF32[$0 + 7304 >> 2];
$17 = HEAPF32[$14 + 11180 >> 2];
$69 = HEAPF32[$0 + 7336 >> 2];
$70 = HEAPF32[$0 + 7368 >> 2];
$62 = Math_fround(Math_fround(Math_fround($68 * Math_fround(.6969299912452698)) + Math_fround(Math_fround(Math_fround($43 + $54) * Math_fround(.49195000529289246)) - Math_fround(Math_fround($17 + $69) * Math_fround(.12298999726772308)))) - Math_fround($70 * Math_fround(1.4349000453948975)));
HEAPF32[$14 + 11068 >> 2] = $62;
$12 = Math_fround(Math_fround(1) - $29);
HEAPF32[$0 + 7368 >> 2] = Math_fround($29 * $17) + Math_fround($70 * $12);
HEAPF32[$0 + 7364 >> 2] = Math_fround($29 * $18) + Math_fround($12 * $67);
HEAPF32[$0 + 7360 >> 2] = Math_fround($29 * $19) + Math_fround($12 * $38);
HEAPF32[$0 + 7356 >> 2] = Math_fround($29 * $13) + Math_fround($12 * $44);
HEAPF32[$14 + 11096 >> 2] = Math_fround(Math_fround($57 * Math_fround(.5345199704170227)) - Math_fround($45 * Math_fround(.26725998520851135))) - Math_fround($40 * Math_fround(.5345199704170227));
HEAPF32[$14 + 11092 >> 2] = Math_fround(Math_fround($37 * Math_fround(.5345199704170227)) - Math_fround($30 * Math_fround(.26725998520851135))) - Math_fround($25 * Math_fround(.5345199704170227));
$35 = Math_fround(Math_fround(Math_fround($35 * Math_fround(.5345199704170227)) - Math_fround($47 * Math_fround(.26725998520851135))) - Math_fround($24 * Math_fround(.5345199704170227)));
HEAPF32[$14 + 11088 >> 2] = $35;
$44 = Math_fround(Math_fround(Math_fround($17 - $69) * Math_fround(.6324599981307983)) + Math_fround(Math_fround($43 - $54) * Math_fround(.31622999906539917)));
HEAPF32[$14 + 11084 >> 2] = $44;
$30 = Math_fround(Math_fround(Math_fround($18 - $46) * Math_fround(.6324599981307983)) + Math_fround(Math_fround($41 - $42) * Math_fround(.31622999906539917)));
HEAPF32[$14 + 11080 >> 2] = $30;
$31 = Math_fround(Math_fround(Math_fround($19 - $31) * Math_fround(.6324599981307983)) + Math_fround(Math_fround($33 - $39) * Math_fround(.31622999906539917)));
HEAPF32[$14 + 11076 >> 2] = $31;
$37 = Math_fround(Math_fround(Math_fround($13 - $52) * Math_fround(.6324599981307983)) + Math_fround(Math_fround($23 - $26) * Math_fround(.31622999906539917)));
HEAPF32[$14 + 11072 >> 2] = $37;
$8 = ($16 | 0) < 3 ? 20 : $27;
$52 = Math_fround($49 / Math_fround(18));
$47 = HEAPF32[$0 + 7388 >> 2];
label$49 : {
if (($15 | 0) <= 5) {
$12 = HEAPF32[$0 + 7420 >> 2];
$30 = HEAPF32[$0 + 7412 >> 2];
$31 = HEAPF32[$0 + 7408 >> 2];
$49 = HEAPF32[$0 + 7404 >> 2];
$38 = HEAPF32[$0 + 7400 >> 2];
$45 = HEAPF32[$0 + 7396 >> 2];
$46 = HEAPF32[$0 + 7392 >> 2];
break label$49;
}
$47 = Math_fround(Math_fround($21 * Math_fround($29 * $21)) + Math_fround($12 * $47));
HEAPF32[$0 + 7388 >> 2] = $47;
$46 = Math_fround(Math_fround($60 * Math_fround($29 * $60)) + Math_fround($12 * HEAPF32[$0 + 7392 >> 2]));
HEAPF32[$0 + 7392 >> 2] = $46;
$45 = Math_fround(Math_fround($61 * Math_fround($29 * $61)) + Math_fround($12 * HEAPF32[$0 + 7396 >> 2]));
HEAPF32[$0 + 7396 >> 2] = $45;
$38 = Math_fround(Math_fround($62 * Math_fround($29 * $62)) + Math_fround($12 * HEAPF32[$0 + 7400 >> 2]));
HEAPF32[$0 + 7400 >> 2] = $38;
$49 = Math_fround(Math_fround($37 * Math_fround($29 * $37)) + Math_fround($12 * HEAPF32[$0 + 7404 >> 2]));
HEAPF32[$0 + 7404 >> 2] = $49;
$31 = Math_fround(Math_fround($31 * Math_fround($29 * $31)) + Math_fround($12 * HEAPF32[$0 + 7408 >> 2]));
HEAPF32[$0 + 7408 >> 2] = $31;
$30 = Math_fround(Math_fround($30 * Math_fround($29 * $30)) + Math_fround($12 * HEAPF32[$0 + 7412 >> 2]));
HEAPF32[$0 + 7412 >> 2] = $30;
HEAPF32[$0 + 7416 >> 2] = Math_fround($44 * Math_fround($29 * $44)) + Math_fround($12 * HEAPF32[$0 + 7416 >> 2]);
$12 = Math_fround(Math_fround($35 * Math_fround($29 * $35)) + Math_fround($12 * HEAPF32[$0 + 7420 >> 2]));
HEAPF32[$0 + 7420 >> 2] = $12;
}
HEAPF32[$14 + 11056 >> 2] = $13 - HEAPF32[$14 + 9968 >> 2];
HEAPF32[$14 + 11060 >> 2] = $19 - HEAPF32[$14 + 9972 >> 2];
HEAPF32[$14 + 11064 >> 2] = $18 - HEAPF32[$14 + 9976 >> 2];
HEAPF32[$14 + 11068 >> 2] = $17 - HEAPF32[$14 + 9980 >> 2];
HEAPF32[$0 + 7260 >> 2] = $23;
HEAPF32[$0 + 7328 >> 2] = $39;
HEAPF32[$0 + 7228 >> 2] = $13;
HEAPF32[$0 + 7296 >> 2] = $25;
HEAPF32[$0 + 7264 >> 2] = $33;
HEAPF32[$0 + 7332 >> 2] = $42;
HEAPF32[$0 + 7232 >> 2] = $19;
HEAPF32[$0 + 7300 >> 2] = $40;
HEAPF32[$0 + 7268 >> 2] = $41;
HEAPF32[$0 + 7336 >> 2] = $54;
HEAPF32[$0 + 7236 >> 2] = $18;
HEAPF32[$0 + 7304 >> 2] = $68;
HEAPF32[$0 + 7272 >> 2] = $43;
HEAPF32[$0 + 7240 >> 2] = $17;
HEAPF32[$0 + 7324 >> 2] = $26;
HEAPF32[$0 + 7292 >> 2] = $24;
$15 = HEAP32[$0 + 7308 >> 2];
HEAP32[$0 + 7308 >> 2] = HEAP32[$0 + 7276 >> 2];
HEAP32[$0 + 7340 >> 2] = $15;
HEAP32[$0 + 7276 >> 2] = HEAP32[$0 + 7244 >> 2];
HEAP32[$0 + 7244 >> 2] = HEAP32[$14 + 11184 >> 2];
HEAP32[$0 + 7344 >> 2] = HEAP32[$0 + 7312 >> 2];
HEAP32[$0 + 7312 >> 2] = HEAP32[$0 + 7280 >> 2];
HEAP32[$0 + 7280 >> 2] = HEAP32[$0 + 7248 >> 2];
HEAP32[$0 + 7248 >> 2] = HEAP32[$14 + 11188 >> 2];
HEAP32[$0 + 7348 >> 2] = HEAP32[$0 + 7316 >> 2];
HEAP32[$0 + 7316 >> 2] = HEAP32[$0 + 7284 >> 2];
HEAP32[$0 + 7284 >> 2] = HEAP32[$0 + 7252 >> 2];
HEAP32[$0 + 7252 >> 2] = HEAP32[$14 + 11192 >> 2];
HEAP32[$0 + 7352 >> 2] = HEAP32[$0 + 7320 >> 2];
HEAP32[$0 + 7320 >> 2] = HEAP32[$0 + 7288 >> 2];
HEAP32[$0 + 7288 >> 2] = HEAP32[$0 + 7256 >> 2];
HEAP32[$0 + 7256 >> 2] = HEAP32[$14 + 11196 >> 2];
HEAPF32[$14 + 11132 >> 2] = Math_fround(Math_sqrt($12)) + Math_fround(-1.9187949895858765);
HEAPF32[$14 + 11124 >> 2] = Math_fround(Math_sqrt($30)) + Math_fround(-1.260756015777588);
HEAPF32[$14 + 11120 >> 2] = Math_fround(Math_sqrt($31)) + Math_fround(-2.1633129119873047);
HEAPF32[$14 + 11116 >> 2] = Math_fround(Math_sqrt($49)) + Math_fround(-3.7732150554656982);
HEAPF32[$14 + 11112 >> 2] = Math_fround(Math_sqrt($38)) + Math_fround(-1.599784016609192);
HEAPF32[$14 + 11108 >> 2] = Math_fround(Math_sqrt($45)) + Math_fround(-1.7706340551376343);
HEAPF32[$14 + 11104 >> 2] = Math_fround(Math_sqrt($46)) + Math_fround(-3.475287914276123);
HEAPF32[$14 + 11100 >> 2] = Math_fround(Math_sqrt($47)) + Math_fround(-5.6849470138549805);
HEAPF32[$14 + 11128 >> 2] = $59 + Math_fround(-.7799999713897705);
HEAPF32[$14 + 11136 >> 2] = HEAPF32[$22 >> 2] + Math_fround(-.15472300350666046);
$12 = HEAPF32[$58 >> 2];
HEAPF32[$14 + 11144 >> 2] = $52 + Math_fround(-.7437170147895813);
HEAPF32[$14 + 11140 >> 2] = $12 + Math_fround(-.7246429920196533);
HEAPF32[$14 + 11148 >> 2] = HEAPF32[$3 >> 2] + Math_fround(.06921599805355072);
HEAPF32[$14 + 11152 >> 2] = HEAPF32[$0 + 7428 >> 2] + Math_fround(-.06792999804019928);
compute_dense(43872, $14 + 9600 | 0, $14 + 11056 | 0);
compute_gru(48016, $64, $14 + 9600 | 0);
compute_dense(48096, $14 + 11048 | 0, $64);
HEAP32[$36 + 7640 >> 2] = HEAP32[$14 + 11052 >> 2];
$3 = HEAP32[$14 + 11048 >> 2];
HEAP32[$36 + 7636 >> 2] = $8;
HEAP32[$36 + 7624 >> 2] = $3;
HEAP32[$0 + 5852 >> 2] = $8;
HEAPF32[$36 + 7616 >> 2] = $20;
HEAP32[$34 >> 2] = 1;
}
$50 = $50 + $55 | 0;
$51 = $51 - $55 | 0;
if (($51 | 0) > 0) {
continue;
}
break;
}
}
HEAP32[$0 + 7440 >> 2] = $63 - $4;
}
tonality_get_info($0, $11, $4);
__stack_pointer = $14 + 11360 | 0;
}
function dlmalloc($0) {
$0 = $0 | 0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0;
$12 = __stack_pointer - 16 | 0;
__stack_pointer = $12;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
label$9 : {
label$10 : {
label$11 : {
label$12 : {
if ($0 >>> 0 <= 244) {
$6 = HEAP32[13232];
$4 = $0 >>> 0 < 11 ? 16 : $0 + 11 & -8;
$2 = $4 >>> 3 | 0;
$0 = $6 >>> $2 | 0;
if ($0 & 3) {
$4 = (($0 ^ -1) & 1) + $2 | 0;
$3 = $4 << 3;
$2 = HEAP32[$3 + 52976 >> 2];
$0 = $2 + 8 | 0;
$1 = HEAP32[$2 + 8 >> 2];
$3 = $3 + 52968 | 0;
label$15 : {
if (($1 | 0) == ($3 | 0)) {
HEAP32[13232] = __wasm_rotl_i32(-2, $4) & $6;
break label$15;
}
HEAP32[$1 + 12 >> 2] = $3;
HEAP32[$3 + 8 >> 2] = $1;
}
$1 = $4 << 3;
HEAP32[$2 + 4 >> 2] = $1 | 3;
$2 = $2 + $1 | 0;
HEAP32[$2 + 4 >> 2] = HEAP32[$2 + 4 >> 2] | 1;
break label$1;
}
$9 = HEAP32[13234];
if ($9 >>> 0 >= $4 >>> 0) {
break label$12;
}
if ($0) {
$1 = $0 << $2;
$0 = 2 << $2;
$0 = $1 & ($0 | 0 - $0);
$0 = ($0 & 0 - $0) - 1 | 0;
$1 = $0;
$0 = $0 >>> 12 & 16;
$2 = $1 >>> $0 | 0;
$1 = $2 >>> 5 & 8;
$3 = $0 | $1;
$0 = $2 >>> $1 | 0;
$2 = $0 >>> 2 & 4;
$1 = $3 | $2;
$0 = $0 >>> $2 | 0;
$2 = $0 >>> 1 & 2;
$1 = $1 | $2;
$0 = $0 >>> $2 | 0;
$2 = $0 >>> 1 & 1;
$1 = ($1 | $2) + ($0 >>> $2 | 0) | 0;
$3 = $1 << 3;
$2 = HEAP32[$3 + 52976 >> 2];
$0 = HEAP32[$2 + 8 >> 2];
$3 = $3 + 52968 | 0;
label$18 : {
if (($0 | 0) == ($3 | 0)) {
$6 = __wasm_rotl_i32(-2, $1) & $6;
HEAP32[13232] = $6;
break label$18;
}
HEAP32[$0 + 12 >> 2] = $3;
HEAP32[$3 + 8 >> 2] = $0;
}
$0 = $2 + 8 | 0;
HEAP32[$2 + 4 >> 2] = $4 | 3;
$3 = $2 + $4 | 0;
$5 = $1 << 3;
$1 = $5 - $4 | 0;
HEAP32[$3 + 4 >> 2] = $1 | 1;
HEAP32[$2 + $5 >> 2] = $1;
if ($9) {
$5 = $9 >>> 3 | 0;
$4 = ($5 << 3) + 52968 | 0;
$2 = HEAP32[13237];
$5 = 1 << $5;
label$21 : {
if (!($6 & $5)) {
HEAP32[13232] = $5 | $6;
$5 = $4;
break label$21;
}
$5 = HEAP32[$4 + 8 >> 2];
}
HEAP32[$4 + 8 >> 2] = $2;
HEAP32[$5 + 12 >> 2] = $2;
HEAP32[$2 + 12 >> 2] = $4;
HEAP32[$2 + 8 >> 2] = $5;
}
HEAP32[13237] = $3;
HEAP32[13234] = $1;
break label$1;
}
$8 = HEAP32[13233];
if (!$8) {
break label$12;
}
$0 = (0 - $8 & $8) - 1 | 0;
$1 = $0;
$0 = $0 >>> 12 & 16;
$2 = $1 >>> $0 | 0;
$1 = $2 >>> 5 & 8;
$3 = $0 | $1;
$0 = $2 >>> $1 | 0;
$2 = $0 >>> 2 & 4;
$1 = $3 | $2;
$0 = $0 >>> $2 | 0;
$2 = $0 >>> 1 & 2;
$1 = $1 | $2;
$0 = $0 >>> $2 | 0;
$2 = $0 >>> 1 & 1;
$3 = HEAP32[(($1 | $2) + ($0 >>> $2 | 0) << 2) + 53232 >> 2];
$2 = (HEAP32[$3 + 4 >> 2] & -8) - $4 | 0;
$1 = $3;
while (1) {
label$24 : {
$0 = HEAP32[$1 + 16 >> 2];
if (!$0) {
$0 = HEAP32[$1 + 20 >> 2];
if (!$0) {
break label$24;
}
}
$1 = (HEAP32[$0 + 4 >> 2] & -8) - $4 | 0;
$5 = $1;
$1 = $2 >>> 0 > $1 >>> 0;
$2 = $1 ? $5 : $2;
$3 = $1 ? $0 : $3;
$1 = $0;
continue;
}
break;
}
$10 = $3 + $4 | 0;
if ($10 >>> 0 <= $3 >>> 0) {
break label$11;
}
$11 = HEAP32[$3 + 24 >> 2];
$5 = HEAP32[$3 + 12 >> 2];
if (($5 | 0) != ($3 | 0)) {
$0 = HEAP32[$3 + 8 >> 2];
HEAP32[$0 + 12 >> 2] = $5;
HEAP32[$5 + 8 >> 2] = $0;
break label$2;
}
$1 = $3 + 20 | 0;
$0 = HEAP32[$1 >> 2];
if (!$0) {
$0 = HEAP32[$3 + 16 >> 2];
if (!$0) {
break label$10;
}
$1 = $3 + 16 | 0;
}
while (1) {
$7 = $1;
$5 = $0;
$1 = $0 + 20 | 0;
$0 = HEAP32[$1 >> 2];
if ($0) {
continue;
}
$1 = $5 + 16 | 0;
$0 = HEAP32[$5 + 16 >> 2];
if ($0) {
continue;
}
break;
}
HEAP32[$7 >> 2] = 0;
break label$2;
}
$4 = -1;
if ($0 >>> 0 > 4294967231) {
break label$12;
}
$0 = $0 + 11 | 0;
$4 = $0 & -8;
$9 = HEAP32[13233];
if (!$9) {
break label$12;
}
$7 = 31;
if ($4 >>> 0 <= 16777215) {
$0 = $0 >>> 8 | 0;
$1 = $0;
$0 = $0 + 1048320 >>> 16 & 8;
$2 = $1 << $0;
$1 = $2;
$2 = $2 + 520192 >>> 16 & 4;
$1 = $1 << $2;
$3 = $1;
$1 = $1 + 245760 >>> 16 & 2;
$0 = ($3 << $1 >>> 15 | 0) - ($0 | $2 | $1) | 0;
$7 = ($0 << 1 | $4 >>> $0 + 21 & 1) + 28 | 0;
}
$2 = 0 - $4 | 0;
$1 = HEAP32[($7 << 2) + 53232 >> 2];
label$31 : {
label$32 : {
label$33 : {
if (!$1) {
$0 = 0;
break label$33;
}
$0 = 0;
$3 = $4 << (($7 | 0) == 31 ? 0 : 25 - ($7 >>> 1 | 0) | 0);
while (1) {
label$36 : {
$6 = (HEAP32[$1 + 4 >> 2] & -8) - $4 | 0;
if ($6 >>> 0 >= $2 >>> 0) {
break label$36;
}
$5 = $1;
$2 = $6;
if ($2) {
break label$36;
}
$2 = 0;
$0 = $1;
break label$32;
}
$6 = HEAP32[$1 + 20 >> 2];
$1 = HEAP32[(($3 >>> 29 & 4) + $1 | 0) + 16 >> 2];
$0 = $6 ? ($6 | 0) == ($1 | 0) ? $0 : $6 : $0;
$3 = $3 << 1;
if ($1) {
continue;
}
break;
}
}
if (!($0 | $5)) {
$0 = 2 << $7;
$0 = ($0 | 0 - $0) & $9;
if (!$0) {
break label$12;
}
$0 = (0 - $0 & $0) - 1 | 0;
$1 = $0;
$0 = $0 >>> 12 & 16;
$1 = $1 >>> $0 | 0;
$3 = $1 >>> 5 & 8;
$6 = $0 | $3;
$0 = $1 >>> $3 | 0;
$1 = $0 >>> 2 & 4;
$3 = $6 | $1;
$0 = $0 >>> $1 | 0;
$1 = $0 >>> 1 & 2;
$3 = $3 | $1;
$0 = $0 >>> $1 | 0;
$1 = $0 >>> 1 & 1;
$0 = HEAP32[(($3 | $1) + ($0 >>> $1 | 0) << 2) + 53232 >> 2];
}
if (!$0) {
break label$31;
}
}
while (1) {
$6 = (HEAP32[$0 + 4 >> 2] & -8) - $4 | 0;
$3 = $6 >>> 0 < $2 >>> 0;
$2 = $3 ? $6 : $2;
$5 = $3 ? $0 : $5;
$1 = HEAP32[$0 + 16 >> 2];
if (!$1) {
$1 = HEAP32[$0 + 20 >> 2];
}
$0 = $1;
if ($0) {
continue;
}
break;
}
}
if (!$5 | HEAP32[13234] - $4 >>> 0 <= $2 >>> 0) {
break label$12;
}
$7 = $4 + $5 | 0;
if ($7 >>> 0 <= $5 >>> 0) {
break label$11;
}
$8 = HEAP32[$5 + 24 >> 2];
$3 = HEAP32[$5 + 12 >> 2];
if (($5 | 0) != ($3 | 0)) {
$0 = HEAP32[$5 + 8 >> 2];
HEAP32[$0 + 12 >> 2] = $3;
HEAP32[$3 + 8 >> 2] = $0;
break label$3;
}
$1 = $5 + 20 | 0;
$0 = HEAP32[$1 >> 2];
if (!$0) {
$0 = HEAP32[$5 + 16 >> 2];
if (!$0) {
break label$9;
}
$1 = $5 + 16 | 0;
}
while (1) {
$6 = $1;
$3 = $0;
$1 = $0 + 20 | 0;
$0 = HEAP32[$1 >> 2];
if ($0) {
continue;
}
$1 = $3 + 16 | 0;
$0 = HEAP32[$3 + 16 >> 2];
if ($0) {
continue;
}
break;
}
HEAP32[$6 >> 2] = 0;
break label$3;
}
$0 = HEAP32[13234];
if ($4 >>> 0 <= $0 >>> 0) {
$2 = HEAP32[13237];
$1 = $0 - $4 | 0;
label$45 : {
if ($1 >>> 0 >= 16) {
HEAP32[13234] = $1;
$3 = $2 + $4 | 0;
HEAP32[13237] = $3;
HEAP32[$3 + 4 >> 2] = $1 | 1;
HEAP32[$0 + $2 >> 2] = $1;
HEAP32[$2 + 4 >> 2] = $4 | 3;
break label$45;
}
HEAP32[13237] = 0;
HEAP32[13234] = 0;
HEAP32[$2 + 4 >> 2] = $0 | 3;
$0 = $0 + $2 | 0;
HEAP32[$0 + 4 >> 2] = HEAP32[$0 + 4 >> 2] | 1;
}
$0 = $2 + 8 | 0;
break label$1;
}
$3 = HEAP32[13235];
if ($4 >>> 0 < $3 >>> 0) {
$2 = $3 - $4 | 0;
HEAP32[13235] = $2;
$0 = HEAP32[13238];
$1 = $4 + $0 | 0;
HEAP32[13238] = $1;
HEAP32[$1 + 4 >> 2] = $2 | 1;
HEAP32[$0 + 4 >> 2] = $4 | 3;
$0 = $0 + 8 | 0;
break label$1;
}
$0 = 0;
$9 = $4 + 47 | 0;
$1 = $9;
if (HEAP32[13350]) {
$2 = HEAP32[13352];
} else {
HEAP32[13353] = -1;
HEAP32[13354] = -1;
HEAP32[13351] = 4096;
HEAP32[13352] = 4096;
HEAP32[13350] = $12 + 12 & -16 ^ 1431655768;
HEAP32[13355] = 0;
HEAP32[13343] = 0;
$2 = 4096;
}
$6 = $1 + $2 | 0;
$7 = 0 - $2 | 0;
$5 = $6 & $7;
if ($5 >>> 0 <= $4 >>> 0) {
break label$1;
}
$2 = HEAP32[13342];
if ($2) {
$1 = HEAP32[13340];
$8 = $5 + $1 | 0;
if ($2 >>> 0 < $8 >>> 0 | $1 >>> 0 >= $8 >>> 0) {
break label$1;
}
}
if (HEAPU8[53372] & 4) {
break label$6;
}
label$51 : {
label$52 : {
$2 = HEAP32[13238];
if ($2) {
$0 = 53376;
while (1) {
$1 = HEAP32[$0 >> 2];
if (HEAP32[$0 + 4 >> 2] + $1 >>> 0 > $2 >>> 0 ? $1 >>> 0 <= $2 >>> 0 : 0) {
break label$52;
}
$0 = HEAP32[$0 + 8 >> 2];
if ($0) {
continue;
}
break;
}
}
$3 = sbrk(0);
if (($3 | 0) == -1) {
break label$7;
}
$6 = $5;
$0 = HEAP32[13351];
$2 = $0 - 1 | 0;
if ($3 & $2) {
$6 = ($5 - $3 | 0) + ($2 + $3 & 0 - $0) | 0;
}
if ($6 >>> 0 > 2147483646 | $4 >>> 0 >= $6 >>> 0) {
break label$7;
}
$0 = HEAP32[13342];
if ($0) {
$2 = HEAP32[13340];
$1 = $6 + $2 | 0;
if ($0 >>> 0 < $1 >>> 0 | $2 >>> 0 >= $1 >>> 0) {
break label$7;
}
}
$0 = sbrk($6);
if (($3 | 0) != ($0 | 0)) {
break label$51;
}
break label$5;
}
$6 = $6 - $3 & $7;
if ($6 >>> 0 > 2147483646) {
break label$7;
}
$3 = sbrk($6);
if (($3 | 0) == (HEAP32[$0 >> 2] + HEAP32[$0 + 4 >> 2] | 0)) {
break label$8;
}
$0 = $3;
}
if (!(($0 | 0) == -1 | $4 + 48 >>> 0 <= $6 >>> 0)) {
$2 = HEAP32[13352];
$2 = $2 + ($9 - $6 | 0) & 0 - $2;
if ($2 >>> 0 > 2147483646) {
$3 = $0;
break label$5;
}
if ((sbrk($2) | 0) != -1) {
$6 = $2 + $6 | 0;
$3 = $0;
break label$5;
}
sbrk(0 - $6 | 0);
break label$7;
}
$3 = $0;
if (($0 | 0) != -1) {
break label$5;
}
break label$7;
}
abort();
}
$5 = 0;
break label$2;
}
$3 = 0;
break label$3;
}
if (($3 | 0) != -1) {
break label$5;
}
}
HEAP32[13343] = HEAP32[13343] | 4;
}
if ($5 >>> 0 > 2147483646) {
break label$4;
}
$3 = sbrk($5);
$1 = ($3 | 0) == -1;
$0 = sbrk(0);
if ($1 | $3 >>> 0 >= $0 >>> 0 | ($0 | 0) == -1) {
break label$4;
}
$6 = $0 - $3 | 0;
if ($6 >>> 0 <= $4 + 40 >>> 0) {
break label$4;
}
}
$0 = HEAP32[13340] + $6 | 0;
HEAP32[13340] = $0;
if (HEAPU32[13341] < $0 >>> 0) {
HEAP32[13341] = $0;
}
label$62 : {
label$63 : {
label$64 : {
$2 = HEAP32[13238];
if ($2) {
$0 = 53376;
while (1) {
$1 = HEAP32[$0 >> 2];
$5 = HEAP32[$0 + 4 >> 2];
if (($1 + $5 | 0) == ($3 | 0)) {
break label$64;
}
$0 = HEAP32[$0 + 8 >> 2];
if ($0) {
continue;
}
break;
}
break label$63;
}
$0 = HEAP32[13236];
if (!($0 >>> 0 <= $3 >>> 0 ? $0 : 0)) {
HEAP32[13236] = $3;
}
$0 = 0;
HEAP32[13345] = $6;
HEAP32[13344] = $3;
HEAP32[13240] = -1;
HEAP32[13241] = HEAP32[13350];
HEAP32[13347] = 0;
while (1) {
$2 = $0 << 3;
$1 = $2 + 52968 | 0;
HEAP32[$2 + 52976 >> 2] = $1;
HEAP32[$2 + 52980 >> 2] = $1;
$0 = $0 + 1 | 0;
if (($0 | 0) != 32) {
continue;
}
break;
}
$0 = $6 - 40 | 0;
$2 = $3 + 8 & 7 ? -8 - $3 & 7 : 0;
$1 = $0 - $2 | 0;
HEAP32[13235] = $1;
$2 = $2 + $3 | 0;
HEAP32[13238] = $2;
HEAP32[$2 + 4 >> 2] = $1 | 1;
HEAP32[($0 + $3 | 0) + 4 >> 2] = 40;
HEAP32[13239] = HEAP32[13354];
break label$62;
}
if (HEAP32[$0 + 12 >> 2] & 8 | ($2 >>> 0 < $1 >>> 0 | $2 >>> 0 >= $3 >>> 0)) {
break label$63;
}
HEAP32[$0 + 4 >> 2] = $5 + $6;
$0 = $2 + 8 & 7 ? -8 - $2 & 7 : 0;
$1 = $2 + $0 | 0;
HEAP32[13238] = $1;
$3 = HEAP32[13235] + $6 | 0;
$0 = $3 - $0 | 0;
HEAP32[13235] = $0;
HEAP32[$1 + 4 >> 2] = $0 | 1;
HEAP32[($2 + $3 | 0) + 4 >> 2] = 40;
HEAP32[13239] = HEAP32[13354];
break label$62;
}
$5 = HEAP32[13236];
if ($5 >>> 0 > $3 >>> 0) {
HEAP32[13236] = $3;
}
$1 = $3 + $6 | 0;
$0 = 53376;
label$70 : {
label$71 : {
label$72 : {
label$73 : {
label$74 : {
label$75 : {
while (1) {
if (HEAP32[$0 >> 2] != ($1 | 0)) {
$0 = HEAP32[$0 + 8 >> 2];
if ($0) {
continue;
}
break label$75;
}
break;
}
if (!(HEAPU8[$0 + 12 | 0] & 8)) {
break label$74;
}
}
$0 = 53376;
while (1) {
$1 = HEAP32[$0 >> 2];
if ($1 >>> 0 <= $2 >>> 0) {
$1 = HEAP32[$0 + 4 >> 2] + $1 | 0;
if ($1 >>> 0 > $2 >>> 0) {
break label$73;
}
}
$0 = HEAP32[$0 + 8 >> 2];
continue;
}
}
HEAP32[$0 >> 2] = $3;
HEAP32[$0 + 4 >> 2] = HEAP32[$0 + 4 >> 2] + $6;
$7 = ($3 + 8 & 7 ? -8 - $3 & 7 : 0) + $3 | 0;
HEAP32[$7 + 4 >> 2] = $4 | 3;
$6 = ($1 + 8 & 7 ? -8 - $1 & 7 : 0) + $1 | 0;
$1 = ($6 - $7 | 0) - $4 | 0;
$4 = $4 + $7 | 0;
if (($2 | 0) == ($6 | 0)) {
HEAP32[13238] = $4;
$0 = HEAP32[13235] + $1 | 0;
HEAP32[13235] = $0;
HEAP32[$4 + 4 >> 2] = $0 | 1;
break label$71;
}
if (HEAP32[13237] == ($6 | 0)) {
HEAP32[13237] = $4;
$0 = HEAP32[13234] + $1 | 0;
HEAP32[13234] = $0;
HEAP32[$4 + 4 >> 2] = $0 | 1;
HEAP32[$0 + $4 >> 2] = $0;
break label$71;
}
$0 = HEAP32[$6 + 4 >> 2];
if (($0 & 3) == 1) {
$9 = $0 & -8;
label$83 : {
if ($0 >>> 0 <= 255) {
$8 = $0 >>> 3 | 0;
$0 = ($8 << 3) + 52968 | 0;
$3 = HEAP32[$6 + 8 >> 2];
$2 = HEAP32[$6 + 12 >> 2];
if (($3 | 0) == ($2 | 0)) {
HEAP32[13232] = HEAP32[13232] & __wasm_rotl_i32(-2, $8);
break label$83;
}
HEAP32[$3 + 12 >> 2] = $2;
HEAP32[$2 + 8 >> 2] = $3;
break label$83;
}
$8 = HEAP32[$6 + 24 >> 2];
$3 = HEAP32[$6 + 12 >> 2];
label$86 : {
if (($6 | 0) != ($3 | 0)) {
$0 = HEAP32[$6 + 8 >> 2];
HEAP32[$0 + 12 >> 2] = $3;
HEAP32[$3 + 8 >> 2] = $0;
break label$86;
}
label$89 : {
$0 = $6 + 20 | 0;
$2 = HEAP32[$0 >> 2];
if ($2) {
break label$89;
}
$0 = $6 + 16 | 0;
$2 = HEAP32[$0 >> 2];
if ($2) {
break label$89;
}
$3 = 0;
break label$86;
}
while (1) {
$5 = $0;
$3 = $2;
$0 = $2 + 20 | 0;
$2 = HEAP32[$0 >> 2];
if ($2) {
continue;
}
$0 = $3 + 16 | 0;
$2 = HEAP32[$3 + 16 >> 2];
if ($2) {
continue;
}
break;
}
HEAP32[$5 >> 2] = 0;
}
if (!$8) {
break label$83;
}
$2 = HEAP32[$6 + 28 >> 2];
$0 = ($2 << 2) + 53232 | 0;
label$91 : {
if (HEAP32[$0 >> 2] == ($6 | 0)) {
HEAP32[$0 >> 2] = $3;
if ($3) {
break label$91;
}
HEAP32[13233] = HEAP32[13233] & __wasm_rotl_i32(-2, $2);
break label$83;
}
HEAP32[(HEAP32[$8 + 16 >> 2] == ($6 | 0) ? 16 : 20) + $8 >> 2] = $3;
if (!$3) {
break label$83;
}
}
HEAP32[$3 + 24 >> 2] = $8;
$0 = HEAP32[$6 + 16 >> 2];
if ($0) {
HEAP32[$3 + 16 >> 2] = $0;
HEAP32[$0 + 24 >> 2] = $3;
}
$0 = HEAP32[$6 + 20 >> 2];
if (!$0) {
break label$83;
}
HEAP32[$3 + 20 >> 2] = $0;
HEAP32[$0 + 24 >> 2] = $3;
}
$6 = $6 + $9 | 0;
$1 = $1 + $9 | 0;
}
HEAP32[$6 + 4 >> 2] = HEAP32[$6 + 4 >> 2] & -2;
HEAP32[$4 + 4 >> 2] = $1 | 1;
HEAP32[$1 + $4 >> 2] = $1;
if ($1 >>> 0 <= 255) {
$2 = $1 >>> 3 | 0;
$0 = ($2 << 3) + 52968 | 0;
$2 = 1 << $2;
$1 = HEAP32[13232];
label$95 : {
if (!($2 & $1)) {
HEAP32[13232] = $2 | $1;
$2 = $0;
break label$95;
}
$2 = HEAP32[$0 + 8 >> 2];
}
HEAP32[$0 + 8 >> 2] = $4;
HEAP32[$2 + 12 >> 2] = $4;
HEAP32[$4 + 12 >> 2] = $0;
HEAP32[$4 + 8 >> 2] = $2;
break label$71;
}
$0 = 31;
if ($1 >>> 0 <= 16777215) {
$0 = $1 >>> 8 | 0;
$3 = $0;
$0 = $0 + 1048320 >>> 16 & 8;
$2 = $3 << $0;
$3 = $2;
$2 = $2 + 520192 >>> 16 & 4;
$3 = $3 << $2;
$5 = $3;
$3 = $3 + 245760 >>> 16 & 2;
$0 = ($5 << $3 >>> 15 | 0) - ($0 | $2 | $3) | 0;
$0 = ($0 << 1 | $1 >>> $0 + 21 & 1) + 28 | 0;
}
HEAP32[$4 + 28 >> 2] = $0;
HEAP32[$4 + 16 >> 2] = 0;
HEAP32[$4 + 20 >> 2] = 0;
$2 = ($0 << 2) + 53232 | 0;
$3 = HEAP32[13233];
$5 = 1 << $0;
label$98 : {
if (!($3 & $5)) {
HEAP32[13233] = $3 | $5;
HEAP32[$2 >> 2] = $4;
break label$98;
}
$0 = $1 << (($0 | 0) == 31 ? 0 : 25 - ($0 >>> 1 | 0) | 0);
$3 = HEAP32[$2 >> 2];
while (1) {
$2 = $3;
if ((HEAP32[$2 + 4 >> 2] & -8) == ($1 | 0)) {
break label$72;
}
$3 = $0 >>> 29 | 0;
$0 = $0 << 1;
$6 = ($3 & 4) + $2 | 0;
$5 = $6 + 16 | 0;
$3 = HEAP32[$5 >> 2];
if ($3) {
continue;
}
break;
}
HEAP32[$6 + 16 >> 2] = $4;
}
HEAP32[$4 + 24 >> 2] = $2;
HEAP32[$4 + 12 >> 2] = $4;
HEAP32[$4 + 8 >> 2] = $4;
break label$71;
}
$0 = $6 - 40 | 0;
$5 = $3 + 8 & 7 ? -8 - $3 & 7 : 0;
$7 = $0 - $5 | 0;
HEAP32[13235] = $7;
$5 = $3 + $5 | 0;
HEAP32[13238] = $5;
HEAP32[$5 + 4 >> 2] = $7 | 1;
HEAP32[($0 + $3 | 0) + 4 >> 2] = 40;
HEAP32[13239] = HEAP32[13354];
$0 = (($1 - 39 & 7 ? 39 - $1 & 7 : 0) + $1 | 0) - 47 | 0;
$5 = $2 + 16 >>> 0 > $0 >>> 0 ? $2 : $0;
HEAP32[$5 + 4 >> 2] = 27;
$0 = HEAP32[13347];
$7 = HEAP32[13346];
HEAP32[$5 + 16 >> 2] = $7;
HEAP32[$5 + 20 >> 2] = $0;
$7 = HEAP32[13345];
$0 = HEAP32[13344];
HEAP32[$5 + 8 >> 2] = $0;
HEAP32[$5 + 12 >> 2] = $7;
HEAP32[13346] = $5 + 8;
HEAP32[13345] = $6;
HEAP32[13344] = $3;
HEAP32[13347] = 0;
$0 = $5 + 24 | 0;
while (1) {
HEAP32[$0 + 4 >> 2] = 7;
$3 = $0 + 8 | 0;
$0 = $0 + 4 | 0;
if ($1 >>> 0 > $3 >>> 0) {
continue;
}
break;
}
if (($2 | 0) == ($5 | 0)) {
break label$62;
}
HEAP32[$5 + 4 >> 2] = HEAP32[$5 + 4 >> 2] & -2;
$6 = $5 - $2 | 0;
HEAP32[$2 + 4 >> 2] = $6 | 1;
HEAP32[$5 >> 2] = $6;
if ($6 >>> 0 <= 255) {
$1 = $6 >>> 3 | 0;
$0 = ($1 << 3) + 52968 | 0;
$1 = 1 << $1;
$3 = HEAP32[13232];
label$103 : {
if (!($1 & $3)) {
HEAP32[13232] = $1 | $3;
$1 = $0;
break label$103;
}
$1 = HEAP32[$0 + 8 >> 2];
}
HEAP32[$0 + 8 >> 2] = $2;
HEAP32[$1 + 12 >> 2] = $2;
HEAP32[$2 + 12 >> 2] = $0;
HEAP32[$2 + 8 >> 2] = $1;
break label$62;
}
$0 = 31;
HEAP32[$2 + 16 >> 2] = 0;
HEAP32[$2 + 20 >> 2] = 0;
if ($6 >>> 0 <= 16777215) {
$0 = $6 >>> 8 | 0;
$1 = $0;
$0 = $0 + 1048320 >>> 16 & 8;
$1 = $1 << $0;
$3 = $1;
$1 = $1 + 520192 >>> 16 & 4;
$3 = $3 << $1;
$5 = $3;
$3 = $3 + 245760 >>> 16 & 2;
$0 = ($5 << $3 >>> 15 | 0) - ($0 | $1 | $3) | 0;
$0 = ($0 << 1 | $6 >>> $0 + 21 & 1) + 28 | 0;
}
HEAP32[$2 + 28 >> 2] = $0;
$1 = ($0 << 2) + 53232 | 0;
$3 = HEAP32[13233];
$5 = 1 << $0;
label$106 : {
if (!($3 & $5)) {
HEAP32[13233] = $3 | $5;
HEAP32[$1 >> 2] = $2;
break label$106;
}
$0 = $6 << (($0 | 0) == 31 ? 0 : 25 - ($0 >>> 1 | 0) | 0);
$3 = HEAP32[$1 >> 2];
while (1) {
$1 = $3;
if ((HEAP32[$1 + 4 >> 2] & -8) == ($6 | 0)) {
break label$70;
}
$3 = $0 >>> 29 | 0;
$0 = $0 << 1;
$7 = ($3 & 4) + $1 | 0;
$5 = $7 + 16 | 0;
$3 = HEAP32[$5 >> 2];
if ($3) {
continue;
}
break;
}
HEAP32[$7 + 16 >> 2] = $2;
}
HEAP32[$2 + 24 >> 2] = $1;
HEAP32[$2 + 12 >> 2] = $2;
HEAP32[$2 + 8 >> 2] = $2;
break label$62;
}
$0 = HEAP32[$2 + 8 >> 2];
HEAP32[$0 + 12 >> 2] = $4;
HEAP32[$2 + 8 >> 2] = $4;
HEAP32[$4 + 24 >> 2] = 0;
HEAP32[$4 + 12 >> 2] = $2;
HEAP32[$4 + 8 >> 2] = $0;
}
$0 = $7 + 8 | 0;
break label$1;
}
$0 = HEAP32[$1 + 8 >> 2];
HEAP32[$0 + 12 >> 2] = $2;
HEAP32[$1 + 8 >> 2] = $2;
HEAP32[$2 + 24 >> 2] = 0;
HEAP32[$2 + 12 >> 2] = $1;
HEAP32[$2 + 8 >> 2] = $0;
}
$0 = HEAP32[13235];
if ($4 >>> 0 >= $0 >>> 0) {
break label$4;
}
$2 = $0 - $4 | 0;
HEAP32[13235] = $2;
$0 = HEAP32[13238];
$1 = $4 + $0 | 0;
HEAP32[13238] = $1;
HEAP32[$1 + 4 >> 2] = $2 | 1;
HEAP32[$0 + 4 >> 2] = $4 | 3;
$0 = $0 + 8 | 0;
break label$1;
}
HEAP32[__errno_location() >> 2] = 48;
$0 = 0;
break label$1;
}
label$109 : {
if (!$8) {
break label$109;
}
$1 = HEAP32[$5 + 28 >> 2];
$0 = ($1 << 2) + 53232 | 0;
label$110 : {
if (HEAP32[$0 >> 2] == ($5 | 0)) {
HEAP32[$0 >> 2] = $3;
if ($3) {
break label$110;
}
$9 = __wasm_rotl_i32(-2, $1) & $9;
HEAP32[13233] = $9;
break label$109;
}
HEAP32[(HEAP32[$8 + 16 >> 2] == ($5 | 0) ? 16 : 20) + $8 >> 2] = $3;
if (!$3) {
break label$109;
}
}
HEAP32[$3 + 24 >> 2] = $8;
$0 = HEAP32[$5 + 16 >> 2];
if ($0) {
HEAP32[$3 + 16 >> 2] = $0;
HEAP32[$0 + 24 >> 2] = $3;
}
$0 = HEAP32[$5 + 20 >> 2];
if (!$0) {
break label$109;
}
HEAP32[$3 + 20 >> 2] = $0;
HEAP32[$0 + 24 >> 2] = $3;
}
label$113 : {
if ($2 >>> 0 <= 15) {
$0 = $2 + $4 | 0;
HEAP32[$5 + 4 >> 2] = $0 | 3;
$0 = $0 + $5 | 0;
HEAP32[$0 + 4 >> 2] = HEAP32[$0 + 4 >> 2] | 1;
break label$113;
}
HEAP32[$5 + 4 >> 2] = $4 | 3;
HEAP32[$7 + 4 >> 2] = $2 | 1;
HEAP32[$2 + $7 >> 2] = $2;
if ($2 >>> 0 <= 255) {
$2 = $2 >>> 3 | 0;
$0 = ($2 << 3) + 52968 | 0;
$2 = 1 << $2;
$1 = HEAP32[13232];
label$116 : {
if (!($2 & $1)) {
HEAP32[13232] = $2 | $1;
$2 = $0;
break label$116;
}
$2 = HEAP32[$0 + 8 >> 2];
}
HEAP32[$0 + 8 >> 2] = $7;
HEAP32[$2 + 12 >> 2] = $7;
HEAP32[$7 + 12 >> 2] = $0;
HEAP32[$7 + 8 >> 2] = $2;
break label$113;
}
$0 = 31;
if ($2 >>> 0 <= 16777215) {
$0 = $2 >>> 8 | 0;
$1 = $0;
$0 = $0 + 1048320 >>> 16 & 8;
$1 = $1 << $0;
$3 = $1;
$1 = $1 + 520192 >>> 16 & 4;
$4 = $3 << $1;
$3 = $4;
$4 = $4 + 245760 >>> 16 & 2;
$0 = ($3 << $4 >>> 15 | 0) - ($0 | $1 | $4) | 0;
$0 = ($0 << 1 | $2 >>> $0 + 21 & 1) + 28 | 0;
}
HEAP32[$7 + 28 >> 2] = $0;
HEAP32[$7 + 16 >> 2] = 0;
HEAP32[$7 + 20 >> 2] = 0;
$1 = ($0 << 2) + 53232 | 0;
label$119 : {
$4 = 1 << $0;
label$120 : {
if (!($9 & $4)) {
HEAP32[13233] = $4 | $9;
HEAP32[$1 >> 2] = $7;
break label$120;
}
$0 = $2 << (($0 | 0) == 31 ? 0 : 25 - ($0 >>> 1 | 0) | 0);
$4 = HEAP32[$1 >> 2];
while (1) {
$1 = $4;
if ((HEAP32[$1 + 4 >> 2] & -8) == ($2 | 0)) {
break label$119;
}
$4 = $0 >>> 29 | 0;
$0 = $0 << 1;
$6 = ($4 & 4) + $1 | 0;
$3 = $6 + 16 | 0;
$4 = HEAP32[$3 >> 2];
if ($4) {
continue;
}
break;
}
HEAP32[$6 + 16 >> 2] = $7;
}
HEAP32[$7 + 24 >> 2] = $1;
HEAP32[$7 + 12 >> 2] = $7;
HEAP32[$7 + 8 >> 2] = $7;
break label$113;
}
$0 = HEAP32[$1 + 8 >> 2];
HEAP32[$0 + 12 >> 2] = $7;
HEAP32[$1 + 8 >> 2] = $7;
HEAP32[$7 + 24 >> 2] = 0;
HEAP32[$7 + 12 >> 2] = $1;
HEAP32[$7 + 8 >> 2] = $0;
}
$0 = $5 + 8 | 0;
break label$1;
}
label$123 : {
if (!$11) {
break label$123;
}
$1 = HEAP32[$3 + 28 >> 2];
$0 = ($1 << 2) + 53232 | 0;
label$124 : {
if (HEAP32[$0 >> 2] == ($3 | 0)) {
HEAP32[$0 >> 2] = $5;
if ($5) {
break label$124;
}
HEAP32[13233] = __wasm_rotl_i32(-2, $1) & $8;
break label$123;
}
HEAP32[(HEAP32[$11 + 16 >> 2] == ($3 | 0) ? 16 : 20) + $11 >> 2] = $5;
if (!$5) {
break label$123;
}
}
HEAP32[$5 + 24 >> 2] = $11;
$0 = HEAP32[$3 + 16 >> 2];
if ($0) {
HEAP32[$5 + 16 >> 2] = $0;
HEAP32[$0 + 24 >> 2] = $5;
}
$0 = HEAP32[$3 + 20 >> 2];
if (!$0) {
break label$123;
}
HEAP32[$5 + 20 >> 2] = $0;
HEAP32[$0 + 24 >> 2] = $5;
}
label$127 : {
if ($2 >>> 0 <= 15) {
$0 = $2 + $4 | 0;
HEAP32[$3 + 4 >> 2] = $0 | 3;
$0 = $0 + $3 | 0;
HEAP32[$0 + 4 >> 2] = HEAP32[$0 + 4 >> 2] | 1;
break label$127;
}
HEAP32[$3 + 4 >> 2] = $4 | 3;
HEAP32[$10 + 4 >> 2] = $2 | 1;
HEAP32[$2 + $10 >> 2] = $2;
if ($9) {
$4 = $9 >>> 3 | 0;
$1 = ($4 << 3) + 52968 | 0;
$0 = HEAP32[13237];
$4 = 1 << $4;
label$130 : {
if (!($6 & $4)) {
HEAP32[13232] = $4 | $6;
$4 = $1;
break label$130;
}
$4 = HEAP32[$1 + 8 >> 2];
}
HEAP32[$1 + 8 >> 2] = $0;
HEAP32[$4 + 12 >> 2] = $0;
HEAP32[$0 + 12 >> 2] = $1;
HEAP32[$0 + 8 >> 2] = $4;
}
HEAP32[13237] = $10;
HEAP32[13234] = $2;
}
$0 = $3 + 8 | 0;
}
__stack_pointer = $12 + 16 | 0;
return $0 | 0;
}
function silk_pitch_analysis_core_FLP($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) {
var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = Math_fround(0), $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = Math_fround(0), $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = Math_fround(0), $33 = 0, $34 = 0, $35 = 0, $36 = Math_fround(0), $37 = 0, $38 = Math_fround(0), $39 = 0, $40 = Math_fround(0), $41 = Math_fround(0), $42 = Math_fround(0), $43 = 0;
$15 = __stack_pointer - 11552 | 0;
__stack_pointer = $15;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
if (!(!(1 << $8 & 69888) | $8 >>> 0 > 16)) {
if (($9 | 0) <= -1) {
break label$8;
}
if (($9 | 0) >= 3) {
break label$7;
}
$16 = Math_imul($10, 5);
$17 = $16 + 20 | 0;
$19 = $17 << 3;
$20 = Math_imul($8, $17);
label$10 : {
if (($8 | 0) == 16) {
if (($20 | 0) >= 1) {
$12 = $20;
while (1) {
$13 = $12 - 1 | 0;
$22 = ($15 + 2720 | 0) + ($13 << 1) | 0;
$14 = lrintf(HEAPF32[($13 << 2) + $0 >> 2]);
$14 = ($14 | 0) > -32768 ? $14 : -32768;
HEAP16[$22 >> 1] = ($14 | 0) < 32767 ? $14 : 32767;
$14 = ($12 | 0) > 1;
$12 = $13;
if ($14) {
continue;
}
break;
}
}
HEAP32[$15 + 8544 >> 2] = 0;
HEAP32[$15 + 8548 >> 2] = 0;
silk_resampler_down2($15 + 8544 | 0, $15 + 8896 | 0, $15 + 2720 | 0, $20);
if (($16 | 0) < -19) {
break label$10;
}
$12 = $19;
while (1) {
$13 = $12 - 1 | 0;
HEAPF32[($15 + 10176 | 0) + ($13 << 2) >> 2] = HEAP16[($15 + 8896 | 0) + ($13 << 1) >> 1];
$14 = ($12 | 0) > 1;
$12 = $13;
if ($14) {
continue;
}
break;
}
break label$10;
}
if (($8 | 0) == 12) {
if (($20 | 0) >= 1) {
$12 = $20;
while (1) {
$13 = $12 - 1 | 0;
$22 = ($15 + 2720 | 0) + ($13 << 1) | 0;
$14 = lrintf(HEAPF32[($13 << 2) + $0 >> 2]);
$14 = ($14 | 0) > -32768 ? $14 : -32768;
HEAP16[$22 >> 1] = ($14 | 0) < 32767 ? $14 : 32767;
$14 = ($12 | 0) > 1;
$12 = $13;
if ($14) {
continue;
}
break;
}
}
$22 = $15 + 8560 | 0;
HEAP32[$22 >> 2] = 0;
HEAP32[$22 + 4 >> 2] = 0;
HEAP32[$15 + 8552 >> 2] = 0;
HEAP32[$15 + 8556 >> 2] = 0;
HEAP32[$15 + 8544 >> 2] = 0;
HEAP32[$15 + 8548 >> 2] = 0;
silk_resampler_down2_3($15 + 8544 | 0, $15 + 8896 | 0, $15 + 2720 | 0, $20);
if (($16 | 0) < -19) {
break label$10;
}
$12 = $19;
while (1) {
$13 = $12 - 1 | 0;
HEAPF32[($15 + 10176 | 0) + ($13 << 2) >> 2] = HEAP16[($15 + 8896 | 0) + ($13 << 1) >> 1];
$14 = ($12 | 0) > 1;
$12 = $13;
if ($14) {
continue;
}
break;
}
break label$10;
}
if (($8 | 0) != 8) {
break label$6;
}
if (($16 | 0) < -19) {
break label$10;
}
$12 = $19;
while (1) {
$13 = $12 - 1 | 0;
$22 = ($15 + 8896 | 0) + ($13 << 1) | 0;
$14 = lrintf(HEAPF32[($13 << 2) + $0 >> 2]);
$14 = ($14 | 0) > -32768 ? $14 : -32768;
HEAP16[$22 >> 1] = ($14 | 0) < 32767 ? $14 : 32767;
$14 = ($12 | 0) > 1;
$12 = $13;
if ($14) {
continue;
}
break;
}
}
$17 = $17 << 2;
HEAP32[$15 + 8544 >> 2] = 0;
HEAP32[$15 + 8548 >> 2] = 0;
silk_resampler_down2($15 + 8544 | 0, $15 + 8576 | 0, $15 + 8896 | 0, $19);
label$20 : {
if (($16 | 0) < -19) {
break label$20;
}
$12 = $17;
while (1) {
$13 = $12 - 1 | 0;
HEAPF32[($15 + 9536 | 0) + ($13 << 2) >> 2] = HEAP16[($15 + 8576 | 0) + ($13 << 1) >> 1];
$14 = ($12 | 0) > 1;
$12 = $13;
if ($14) {
continue;
}
break;
}
if (($16 | 0) < -19) {
break label$20;
}
$12 = $17;
while (1) {
$25 = HEAPF32[(($12 << 2) + $15 | 0) + 9528 >> 2];
$13 = $12 - 1 | 0;
$14 = ($15 + 9536 | 0) + ($13 << 2) | 0;
$18 = HEAPF32[$14 >> 2];
label$23 : {
if (Math_fround(Math_abs($18)) < Math_fround(2147483648)) {
$16 = ~~$18;
break label$23;
}
$16 = -2147483648;
}
$25 = Math_fround($25 + Math_fround($16 | 0));
$18 = Math_fround(32767);
label$26 : {
if ($25 > Math_fround(32767)) {
break label$26;
}
$18 = Math_fround(-32768);
if ($25 < Math_fround(-32768)) {
break label$26;
}
$18 = $25;
}
label$25 : {
if (Math_fround(Math_abs($18)) < Math_fround(2147483648)) {
$16 = ~~$18;
break label$25;
}
$16 = -2147483648;
}
HEAPF32[$14 >> 2] = $16 | 0;
$14 = ($12 | 0) > 2;
$12 = $13;
if ($14) {
continue;
}
break;
}
}
$16 = 0;
memset($15 + 6160 | 0, 0, Math_imul($10, 596));
if (($10 | 0) >= 2) {
$12 = $10 >> 1;
$19 = ($12 | 0) > 1 ? $12 : 1;
$17 = ($15 + 9536 | 0) + ($17 << 2) | 0;
$12 = $15 + 9856 | 0;
while (1) {
$20 = $12 + 160 | 0;
if ($20 >>> 0 > $17 >>> 0) {
break label$5;
}
$13 = $12 - 32 | 0;
if ($13 >>> 0 < $15 + 9536 >>> 0) {
break label$4;
}
if ($12 + 128 >>> 0 > $17 >>> 0) {
break label$3;
}
celt_pitch_xcorr_c($12, $12 - 288 | 0, $15 + 5888 | 0, 40, 65, $11);
$18 = HEAPF32[$15 + 6144 >> 2];
$21 = silk_energy_FLP($12, 40);
$23 = silk_energy_FLP($13, 40);
$34 = +$18;
$21 = $21 + $23 + 16e4;
HEAPF32[$15 + 6192 >> 2] = HEAPF32[$15 + 6192 >> 2] + Math_fround(($34 + $34) / $21);
$12 = 9;
while (1) {
$14 = ($15 + 6160 | 0) + ($12 << 2) | 0;
$22 = $14;
$18 = HEAPF32[$14 >> 2];
$23 = +HEAPF32[((0 - $12 << 2) + $15 | 0) + 6176 >> 2];
$34 = $23 + $23;
$14 = $13 - 4 | 0;
$23 = +HEAPF32[$14 >> 2];
$39 = $23 * $23;
$23 = +HEAPF32[$13 + 156 >> 2];
$21 = $21 + ($39 - $23 * $23);
HEAPF32[$22 >> 2] = $18 + Math_fround($34 / $21);
$13 = $14;
$12 = $12 + 1 | 0;
if (($12 | 0) != 73) {
continue;
}
break;
}
$12 = $20;
$16 = $16 + 1 | 0;
if (($19 | 0) != ($16 | 0)) {
continue;
}
break;
}
}
$27 = $8 << 1;
$35 = Math_imul($8, 5);
$30 = Math_imul($8, 18);
$31 = $30 - 1 | 0;
$14 = $10 << 2;
$12 = 72;
while (1) {
$13 = ($15 + 6160 | 0) + ($12 << 2) | 0;
$18 = HEAPF32[$13 >> 2];
HEAPF32[$13 >> 2] = $18 + Math_fround(Math_fround($18 * Math_fround($12 | 0)) * Math_fround(-.000244140625));
$13 = $12 >>> 0 > 8;
$12 = $12 - 1 | 0;
if ($13) {
continue;
}
break;
}
$13 = ($9 << 1) + 4 | 0;
silk_insertion_sort_decreasing_FLP($15 + 6192 | 0, $15 + 5744 | 0, 65, $13);
label$32 : {
$18 = HEAPF32[$15 + 6192 >> 2];
label$33 : {
if (!($18 < Math_fround(.20000000298023224) ^ 1)) {
memset($1, 0, $14);
break label$33;
}
label$35 : {
if (($9 | 0) < -1) {
break label$35;
}
$18 = Math_fround($18 * $6);
$16 = ($13 | 0) > 1 ? $13 : 1;
$12 = 0;
while (1) {
$14 = $12 << 2;
if (HEAPF32[($14 + $15 | 0) + 6192 >> 2] > $18 ^ 1) {
$13 = $12;
break label$35;
}
$14 = ($15 + 5744 | 0) + $14 | 0;
HEAP32[$14 >> 2] = (HEAP32[$14 >> 2] << 1) + 16;
$12 = $12 + 1 | 0;
if (($16 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$12 = 0;
if (($13 | 0) <= 0) {
break label$2;
}
memset($15 + 5462 | 0, 0, 274);
while (1) {
HEAP16[($15 + 5440 | 0) + (HEAP32[($15 + 5744 | 0) + ($12 << 2) >> 2] << 1) >> 1] = 1;
$12 = $12 + 1 | 0;
if (($13 | 0) != ($12 | 0)) {
continue;
}
break;
}
$12 = 146;
$14 = HEAPU16[$15 + 5730 >> 1];
while (1) {
$13 = ($15 + 5440 | 0) + ($12 << 1) | 0;
$16 = HEAPU16[$13 - 4 >> 1];
HEAP16[$13 >> 1] = HEAPU16[$13 >> 1] + ($14 + $16 | 0);
$13 = 16;
$17 = $12 >>> 0 > 16;
$14 = $16;
$12 = $12 - 1 | 0;
if ($17) {
continue;
}
break;
}
while (1) {
$12 = $13 + 1 | 0;
if (HEAP16[($15 + 5440 | 0) + ($12 << 1) >> 1] >= 1) {
HEAP32[($15 + 5744 | 0) + ($28 << 2) >> 2] = $13;
$28 = $28 + 1 | 0;
}
$13 = $12;
if (($12 | 0) != 144) {
continue;
}
break;
}
$13 = 146;
$14 = HEAPU16[$15 + 5728 >> 1];
$16 = HEAPU16[$15 + 5730 >> 1];
while (1) {
$17 = $14;
$22 = $14 + $16 | 0;
$12 = ($15 + 5440 | 0) + ($13 << 1) | 0;
$14 = HEAPU16[$12 - 6 >> 1];
HEAP16[$12 >> 1] = HEAPU16[$12 >> 1] + ($14 + $22 | 0);
$12 = 16;
$20 = $13 >>> 0 > 16;
$16 = $17;
$13 = $13 - 1 | 0;
if ($20) {
continue;
}
break;
}
$17 = 0;
while (1) {
if (HEAP16[($15 + 5440 | 0) + ($12 << 1) >> 1] >= 1) {
HEAP16[($15 + 5440 | 0) + ($17 << 1) >> 1] = $12 - 2;
$17 = $17 + 1 | 0;
}
$12 = $12 + 1 | 0;
if (($12 | 0) != 147) {
continue;
}
break;
}
$20 = 0;
memset($15 + 6160 | 0, 0, 2384);
if (($10 | 0) >= 1) {
$13 = ($8 | 0) == 8 ? $0 + 640 | 0 : $15 + 10816 | 0;
$19 = ($17 | 0) < 1;
while (1) {
$21 = silk_energy_FLP($13, 40);
if (!$19) {
$23 = $21 + 1;
$12 = 0;
while (1) {
$18 = Math_fround(0);
$14 = HEAP16[($15 + 5440 | 0) + ($12 << 1) >> 1] << 2;
$16 = $13 - $14 | 0;
$21 = silk_inner_product_FLP($16, $13, 40);
if (!($21 > 0 ^ 1)) {
$18 = Math_fround(($21 + $21) / ($23 + silk_energy_FLP($16, 40)));
}
HEAPF32[(($15 + 6160 | 0) + Math_imul($20, 596) | 0) + $14 >> 2] = $18;
$12 = $12 + 1 | 0;
if (($17 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$13 = $13 + 160 | 0;
$20 = $20 + 1 | 0;
if (($20 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
if (($5 | 0) < 1) {
$6 = Math_fround(0);
} else {
$5 = ($8 | 0) == 12 ? ($5 << 1) / 3 | 0 : $5 >>> (($8 | 0) == 16) | 0;
$6 = Math_fround(log10(+Math_fround($5 | 0)) * 3.32192809488736);
}
$40 = $6;
if (($28 | 0) >= 1) {
$12 = ($10 | 0) == 4;
$20 = $12 ? ($8 | 0) == 8 ? ($9 | 0) > 0 ? 11 : 3 : 3 : 3;
$16 = $12 ? 10048 : 10007;
$17 = $12 ? 11 : 3;
$36 = Math_fround($10 | 0);
$41 = Math_fround($36 * $7);
$38 = Math_fround($36 * Math_fround(.20000000298023224));
$24 = -1;
$7 = Math_fround(-1e3);
$6 = Math_fround(0);
$29 = ($10 | 0) < 1;
$37 = ($5 | 0) < 1;
$5 = 0;
while (1) {
$14 = HEAP32[($15 + 5744 | 0) + ($26 << 2) >> 2];
$13 = 0;
while (1) {
$19 = ($15 + 5840 | 0) + ($13 << 2) | 0;
HEAP32[$19 >> 2] = 0;
$18 = Math_fround(0);
$12 = 0;
if (!$29) {
while (1) {
$18 = Math_fround(HEAPF32[(($15 + 6160 | 0) + Math_imul($12, 596) | 0) + (HEAP8[(Math_imul($12, $17) + $13 | 0) + $16 | 0] + $14 << 2) >> 2] + $18);
$12 = $12 + 1 | 0;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
HEAPF32[$19 >> 2] = $18;
}
$13 = $13 + 1 | 0;
if (($20 | 0) != ($13 | 0)) {
continue;
}
break;
}
$18 = Math_fround(-1e3);
$12 = 0;
$13 = 0;
while (1) {
$25 = HEAPF32[($15 + 5840 | 0) + ($12 << 2) >> 2];
$19 = $25 > $18;
$18 = $19 ? $25 : $18;
$13 = $19 ? $12 : $13;
$12 = $12 + 1 | 0;
if (($20 | 0) != ($12 | 0)) {
continue;
}
break;
}
$32 = Math_fround(log10(+Math_fround($14 | 0)) * 3.32192809488736);
$25 = Math_fround($18 - Math_fround($38 * $32));
$42 = $18;
if (!$37) {
$32 = Math_fround($32 - $40);
$32 = Math_fround($32 * $32);
$25 = Math_fround($25 - Math_fround(Math_fround($32 * Math_fround($38 * HEAPF32[$4 >> 2])) / Math_fround($32 + Math_fround(.5))));
}
$12 = $7 < $25 & $18 > $41;
$6 = $12 ? $42 : $6;
$7 = $12 ? $25 : $7;
$24 = $12 ? $14 : $24;
$5 = $12 ? $13 : $5;
$26 = $26 + 1 | 0;
if (($26 | 0) != ($28 | 0)) {
continue;
}
break;
}
if (($24 | 0) != -1) {
break label$32;
}
}
$22 = $1;
HEAP32[$22 >> 2] = 0;
HEAP32[$22 + 4 >> 2] = 0;
HEAP32[$22 + 8 >> 2] = 0;
HEAP32[$22 + 12 >> 2] = 0;
}
HEAP32[$4 >> 2] = 0;
HEAP16[$2 >> 1] = 0;
HEAP8[$3 | 0] = 0;
$12 = 1;
break label$1;
}
HEAPF32[$4 >> 2] = $6 / $36;
$43 = $2;
label$62 : {
if (($8 | 0) <= 8) {
$12 = 0;
if (($10 | 0) > 0) {
while (1) {
$13 = HEAP8[(Math_imul($12, $17) + $5 | 0) + $16 | 0] + $24 | 0;
$13 = ($13 | 0) > 16 ? $13 : 16;
HEAP32[($12 << 2) + $1 >> 2] = ($13 | 0) < 144 ? $13 : 144;
$12 = $12 + 1 | 0;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
$12 = $24 - 16 | 0;
break label$62;
}
label$66 : {
if (($8 | 0) == 12) {
$12 = Math_imul($24 << 16 >> 16, 3);
$12 = ($12 >> 1) + ($12 & 1) | 0;
break label$66;
}
$12 = $24 << 1;
}
label$68 : {
if (($27 | 0) >= ($30 | 0)) {
$26 = $27;
if (($12 | 0) > ($27 | 0)) {
break label$68;
}
$26 = ($12 | 0) < ($31 | 0) ? $31 : $12;
break label$68;
}
$26 = $31;
if (($12 | 0) >= ($30 | 0)) {
break label$68;
}
$26 = ($12 | 0) < ($27 | 0) ? $27 : $12;
}
$29 = 10016;
$24 = 10040;
$17 = 12;
$4 = 12;
label$70 : {
switch ($10 - 2 | 0) {
default:
celt_fatal(10770, 10329, 518);
abort();
case 2:
$24 = ($9 << 3) + 10240 | 0;
$17 = HEAP8[$9 + 10264 | 0];
$29 = 10096;
$4 = 34;
break;
case 0:
break label$70;
}
}
$12 = $26 + 2 | 0;
$31 = ($12 | 0) < ($31 | 0) ? $12 : $31;
$12 = $26 - 2 | 0;
$28 = ($12 | 0) > ($27 | 0) ? $12 : $27;
$37 = 0 - $28 << 2;
$8 = Math_imul($8, 80) + $0 | 0;
$5 = $8;
$16 = 0;
while (1) {
$12 = $16 << 1;
$14 = HEAP8[($12 | 1) + $24 | 0];
$19 = HEAP8[$12 + $24 | 0];
$12 = 1 - $19 | 0;
celt_pitch_xcorr_c($5, ($5 + $37 | 0) - ($14 << 2) | 0, $15 + 2720 | 0, $35, $14 + $12 | 0, $11);
$13 = ($14 | 0) < ($19 | 0);
if (!$13) {
$20 = ($13 ? $19 : $14) + $12 | 0;
$12 = 0;
$13 = $19;
while (1) {
HEAP32[($15 + 11456 | 0) + ($12 << 2) >> 2] = HEAP32[($15 + 2720 | 0) + ($14 - $13 << 2) >> 2];
$13 = $13 + 1 | 0;
$12 = $12 + 1 | 0;
if (($20 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
if (($17 | 0) >= 1) {
$20 = Math_imul($4, $16);
$19 = ($15 + 11456 | 0) + (0 - $19 << 2) | 0;
$12 = 0;
while (1) {
$14 = (HEAP8[($12 + $20 | 0) + $29 | 0] << 2) + $19 | 0;
$33 = HEAP32[$14 >> 2];
$22 = HEAP32[$14 + 4 >> 2];
$13 = (Math_imul($16, 680) + $15 | 0) + Math_imul($12, 20) | 0;
HEAP32[$13 >> 2] = $33;
HEAP32[$13 + 4 >> 2] = $22;
HEAP32[$13 + 16 >> 2] = HEAP32[$14 + 16 >> 2];
$33 = HEAP32[$14 + 12 >> 2];
$22 = HEAP32[$14 + 8 >> 2];
HEAP32[$13 + 8 >> 2] = $22;
HEAP32[$13 + 12 >> 2] = $33;
$12 = $12 + 1 | 0;
if (($17 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$5 = ($35 << 2) + $5 | 0;
$16 = $16 + 1 | 0;
if (($16 | 0) != ($10 | 0)) {
continue;
}
break;
}
$29 = 10016;
$24 = 10040;
$17 = 12;
$0 = 12;
label$78 : {
switch ($10 - 2 | 0) {
default:
celt_fatal(10770, 10329, 584);
abort();
case 2:
$24 = ($9 << 3) + 10240 | 0;
$17 = HEAP8[$9 + 10264 | 0];
$29 = 10096;
$0 = 34;
break;
case 0:
break label$78;
}
}
$5 = $8;
$16 = 0;
while (1) {
$12 = $16 << 1;
$19 = HEAP8[$24 + $12 | 0];
$13 = $5 - ($28 + $19 << 2) | 0;
$21 = silk_energy_FLP($13, $35) + .001;
HEAPF32[$15 + 11456 >> 2] = $21;
$14 = HEAP8[($12 | 1) + $24 | 0];
if (($19 | 0) < ($14 | 0)) {
$12 = 1;
$20 = ($14 - $19 | 0) + 1 | 0;
while (1) {
$23 = +HEAPF32[($35 - $12 << 2) + $13 >> 2];
$23 = $21 - $23 * $23;
$14 = $12 << 2;
$21 = +HEAPF32[$13 - $14 >> 2];
$21 = $23 + $21 * $21;
HEAPF32[($15 + 11456 | 0) + $14 >> 2] = $21;
$12 = $12 + 1 | 0;
if (($20 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
if (($17 | 0) >= 1) {
$20 = Math_imul($0, $16);
$19 = ($15 + 11456 | 0) + (0 - $19 << 2) | 0;
$12 = 0;
while (1) {
$14 = (HEAP8[($12 + $20 | 0) + $29 | 0] << 2) + $19 | 0;
$33 = HEAP32[$14 >> 2];
$22 = HEAP32[$14 + 4 >> 2];
$13 = (($15 + 2720 | 0) + Math_imul($16, 680) | 0) + Math_imul($12, 20) | 0;
HEAP32[$13 >> 2] = $33;
HEAP32[$13 + 4 >> 2] = $22;
HEAP32[$13 + 16 >> 2] = HEAP32[$14 + 16 >> 2];
$33 = HEAP32[$14 + 12 >> 2];
$22 = HEAP32[$14 + 8 >> 2];
HEAP32[$13 + 8 >> 2] = $22;
HEAP32[$13 + 12 >> 2] = $33;
$12 = $12 + 1 | 0;
if (($17 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$5 = ($35 << 2) + $5 | 0;
$16 = $16 + 1 | 0;
if (($16 | 0) != ($10 | 0)) {
continue;
}
break;
}
label$86 : {
if (($10 | 0) != 4) {
$24 = 10016;
$0 = 12;
$19 = 12;
break label$86;
}
$24 = 10096;
$0 = 34;
$19 = HEAP8[$9 + 10264 | 0];
}
$21 = silk_energy_FLP($8, Math_imul($10, $35));
$5 = 0;
if (($28 | 0) <= ($31 | 0)) {
$7 = Math_fround(Math_fround(.05000000074505806) / Math_fround($26 | 0));
$34 = $21 + 1;
$25 = Math_fround(-1e3);
$29 = ($10 | 0) < 1;
$20 = 0;
while (1) {
$17 = 0;
if (($19 | 0) > 0) {
while (1) {
$18 = Math_fround(0);
label$92 : {
if ($29) {
break label$92;
}
$21 = 0;
$12 = 0;
$23 = $34;
while (1) {
$16 = $20 << 2;
$14 = Math_imul($17, 20);
$13 = Math_imul($12, 680);
$23 = $23 + +HEAPF32[$16 + ($14 + ($13 + ($15 + 2720 | 0) | 0) | 0) >> 2];
$21 = $21 + +HEAPF32[(($13 + $15 | 0) + $14 | 0) + $16 >> 2];
$12 = $12 + 1 | 0;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
if ($21 > 0 ^ 1) {
break label$92;
}
$18 = Math_fround(Math_fround(Math_fround(1) - Math_fround($7 * Math_fround($17 | 0))) * Math_fround(($21 + $21) / $23));
}
if (!($18 > $25 ^ 1)) {
$12 = (HEAP8[$17 + 10096 | 0] + $28 | 0) < ($30 | 0);
$26 = $12 ? $28 : $26;
$25 = $12 ? $18 : $25;
$5 = $12 ? $17 : $5;
}
$17 = $17 + 1 | 0;
if (($19 | 0) != ($17 | 0)) {
continue;
}
break;
}
}
$20 = $20 + 1 | 0;
$12 = ($28 | 0) < ($31 | 0);
$28 = $28 + 1 | 0;
if ($12) {
continue;
}
break;
}
}
if (($10 | 0) >= 1) {
$12 = 0;
while (1) {
$16 = ($12 << 2) + $1 | 0;
$13 = HEAP8[(Math_imul($0, $12) + $5 | 0) + $24 | 0] + $26 | 0;
HEAP32[$16 >> 2] = $13;
label$97 : {
if (($27 | 0) > ($30 | 0)) {
$14 = $27;
if (($14 | 0) < ($13 | 0)) {
break label$97;
}
$14 = ($13 | 0) < ($30 | 0) ? $30 : $13;
break label$97;
}
$14 = $30;
if (($14 | 0) < ($13 | 0)) {
break label$97;
}
$14 = ($13 | 0) < ($27 | 0) ? $27 : $13;
}
HEAP32[$16 >> 2] = $14;
$12 = $12 + 1 | 0;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
$12 = $26 - $27 | 0;
}
HEAP16[$43 >> 1] = $12;
HEAP8[$3 | 0] = $5;
$12 = 0;
if (HEAP16[$2 >> 1] > -1) {
break label$1;
}
celt_fatal(10737, 10329, 474);
abort();
}
celt_fatal(10267, 10329, 112);
abort();
}
celt_fatal(10366, 10329, 115);
abort();
}
celt_fatal(10418, 10329, 116);
abort();
}
celt_fatal(10470, 10329, 151);
abort();
}
celt_fatal(10500, 10329, 173);
abort();
}
celt_fatal(10580, 10329, 178);
abort();
}
celt_fatal(10622, 10329, 179);
abort();
}
celt_fatal(10701, 10329, 241);
abort();
}
__stack_pointer = $15 + 11552 | 0;
return $12;
}
function opus_encoder_ctl($0, $1, $2) {
$0 = $0 | 0;
$1 = $1 | 0;
$2 = $2 | 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
$3 = __stack_pointer - 208 | 0;
__stack_pointer = $3;
HEAP32[$3 + 204 >> 2] = $2;
$4 = HEAP32[$0 >> 2] + $0 | 0;
$2 = -5;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
label$9 : {
label$10 : {
label$11 : {
label$12 : {
label$13 : {
label$14 : {
label$15 : {
label$16 : {
label$17 : {
label$18 : {
label$19 : {
label$20 : {
label$21 : {
label$22 : {
label$23 : {
label$24 : {
label$25 : {
switch ($1 - 4e3 | 0) {
default:
label$46 : {
switch ($1 - 10015 | 0) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 10:
break label$1;
case 0:
break label$2;
case 11:
break label$4;
case 9:
break label$5;
default:
break label$46;
}
}
switch ($1 - 11002 | 0) {
case 17:
break label$23;
case 16:
break label$24;
case 0:
break label$6;
default:
break label$1;
}
case 0:
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
$4 = $1 - 2048 | 0;
if ($4 >>> 0 > 3 | ($4 | 0) == 2 | (HEAP32[$0 + 108 >> 2] != ($1 | 0) ? !HEAP32[$0 + 14252 >> 2] : 0)) {
break label$1;
}
HEAP32[$0 + 108 >> 2] = $1;
HEAP32[$0 + 192 >> 2] = $1;
$2 = 0;
break label$1;
case 1:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 108 >> 2];
$2 = 0;
break label$1;
case 2:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$4 = $0;
$1 = HEAP32[$2 >> 2];
label$49 : {
if (($1 | 0) == -1e3) {
$5 = $1;
break label$49;
}
$2 = -1;
$5 = $1;
if (($1 | 0) == -1) {
break label$49;
}
if (($1 | 0) < 1) {
break label$1;
}
$5 = 500;
if (($1 | 0) < 501) {
break label$49;
}
$2 = Math_imul(HEAP32[$0 + 112 >> 2], 3e5);
$5 = ($1 | 0) > ($2 | 0) ? $2 : $1;
}
$2 = $5;
HEAP32[$4 + 164 >> 2] = $2;
$2 = 0;
break label$1;
case 3:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$1 = HEAP32[$2 >> 2];
if (!$1) {
$2 = -1;
break label$1;
}
$4 = HEAP32[$0 + 14236 >> 2];
if (!$4) {
$4 = HEAP32[$0 + 144 >> 2] / 400 | 0;
}
$2 = HEAP32[$0 + 164 >> 2];
label$53 : {
if (($2 | 0) != -1) {
if (($2 | 0) != -1e3) {
break label$53;
}
$2 = HEAP32[$0 + 112 >> 2];
$0 = HEAP32[$0 + 144 >> 2];
$2 = Math_imul($2, $0) + ((Math_imul($0, 60) | 0) / ($4 | 0) | 0) | 0;
break label$53;
}
$2 = (Math_imul(HEAP32[$0 + 144 >> 2], 10208) | 0) / ($4 | 0) | 0;
}
HEAP32[$1 >> 2] = $2;
$2 = 0;
break label$1;
case 22:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$1 = HEAP32[$2 >> 2];
label$55 : {
if (($1 | 0) >= 1) {
$2 = -1;
if (HEAP32[$0 + 112 >> 2] >= ($1 | 0)) {
break label$55;
}
break label$1;
}
$2 = -1;
if (($1 | 0) != -1e3) {
break label$1;
}
}
HEAP32[$0 + 120 >> 2] = $1;
$2 = 0;
break label$1;
case 23:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 120 >> 2];
$2 = 0;
break label$1;
case 4:
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 - 1101 >>> 0 > 4) {
break label$1;
}
HEAP32[$0 + 132 >> 2] = $1;
if (($1 | 0) == 1101) {
HEAP32[$0 + 20 >> 2] = 8e3;
$2 = 0;
break label$1;
}
if (($1 | 0) == 1102) {
HEAP32[$0 + 20 >> 2] = 12e3;
$2 = 0;
break label$1;
}
HEAP32[$0 + 20 >> 2] = 16e3;
$2 = 0;
break label$1;
case 5:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 132 >> 2];
$2 = 0;
break label$1;
case 8:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$1 = HEAP32[$2 >> 2];
if ($1 - 1101 >>> 0 >= 5) {
$2 = -1;
if (($1 | 0) != -1e3) {
break label$1;
}
}
HEAP32[$0 + 128 >> 2] = $1;
if (($1 | 0) == 1101) {
HEAP32[$0 + 20 >> 2] = 8e3;
$2 = 0;
break label$1;
}
if (($1 | 0) == 1102) {
HEAP32[$0 + 20 >> 2] = 12e3;
$2 = 0;
break label$1;
}
HEAP32[$0 + 20 >> 2] = 16e3;
$2 = 0;
break label$1;
case 9:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 14240 >> 2];
$2 = 0;
break label$1;
case 16:
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 1) {
break label$1;
}
HEAP32[$0 + 184 >> 2] = $1;
$2 = 0;
break label$1;
case 17:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 184 >> 2];
$2 = 0;
break label$1;
case 10:
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 10) {
break label$1;
}
HEAP32[$0 + 44 >> 2] = $1;
HEAP32[$3 >> 2] = $1;
opus_custom_encoder_ctl($4, 4010, $3);
$2 = 0;
break label$1;
case 11:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 44 >> 2];
$2 = 0;
break label$1;
case 12:
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 1) {
break label$1;
}
HEAP32[$0 + 48 >> 2] = $1;
$2 = 0;
break label$1;
case 13:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 48 >> 2];
$2 = 0;
break label$1;
case 14:
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 100) {
break label$1;
}
HEAP32[$0 + 40 >> 2] = $1;
HEAP32[$3 + 16 >> 2] = $1;
opus_custom_encoder_ctl($4, 4014, $3 + 16 | 0);
$2 = 0;
break label$1;
case 15:
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 40 >> 2];
$2 = 0;
break label$1;
case 6:
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 1) {
break label$1;
}
HEAP32[$0 + 148 >> 2] = $1;
HEAP32[$0 + 60 >> 2] = 1 - $1;
$2 = 0;
break label$1;
case 18:
case 19:
case 26:
case 30:
case 32:
case 33:
case 34:
case 35:
case 38:
case 39:
case 44:
case 45:
case 48:
break label$1;
case 43:
break label$10;
case 42:
break label$11;
case 41:
break label$12;
case 40:
break label$13;
case 37:
break label$14;
case 36:
break label$15;
case 31:
break label$16;
case 29:
break label$17;
case 27:
break label$18;
case 25:
break label$19;
case 24:
break label$20;
case 21:
break label$21;
case 20:
break label$22;
case 7:
break label$25;
case 49:
break label$3;
case 28:
break label$7;
case 47:
break label$8;
case 46:
break label$9;
}
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 148 >> 2];
$2 = 0;
break label$1;
}
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 + 1 >>> 0 > 101) {
break label$1;
}
HEAP32[$0 + 140 >> 2] = $1;
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 140 >> 2];
$2 = 0;
break label$1;
}
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 1) {
break label$1;
}
HEAP32[$0 + 152 >> 2] = $1;
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 152 >> 2];
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$1 = HEAP32[$2 >> 2];
if ($1 - 3001 >>> 0 >= 2) {
$2 = -1;
if (($1 | 0) != -1e3) {
break label$1;
}
}
HEAP32[$0 + 124 >> 2] = $1;
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 124 >> 2];
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$1 = HEAP32[$2 >> 2];
if (!$1) {
$2 = -1;
break label$1;
}
$4 = HEAP32[$0 + 144 >> 2] / 400 | 0;
HEAP32[$1 >> 2] = $4;
$2 = 0;
if (HEAP32[$0 + 108 >> 2] == 2051) {
break label$1;
}
HEAP32[$1 >> 2] = HEAP32[$0 + 116 >> 2] + $4;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 144 >> 2];
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 18136 >> 2];
$2 = 0;
break label$1;
}
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 - 8 >>> 0 > 16) {
break label$1;
}
HEAP32[$0 + 168 >> 2] = $1;
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 168 >> 2];
$2 = 0;
break label$1;
}
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 - 5e3 >>> 0 > 9) {
break label$1;
}
HEAP32[$0 + 156 >> 2] = $1;
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 156 >> 2];
$2 = 0;
break label$1;
}
$1 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 1) {
break label$1;
}
HEAP32[$0 + 76 >> 2] = $1;
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 76 >> 2];
$2 = 0;
break label$1;
}
$0 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $0 + 4;
$2 = -1;
$0 = HEAP32[$0 >> 2];
if ($0 >>> 0 > 1) {
break label$1;
}
HEAP32[$3 + 32 >> 2] = $0;
opus_custom_encoder_ctl($4, 4046, $3 + 32 | 0);
$2 = 0;
break label$1;
}
$0 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $0 + 4;
$0 = HEAP32[$0 >> 2];
if (!$0) {
$2 = -1;
break label$1;
}
HEAP32[$3 + 48 >> 2] = $0;
opus_custom_encoder_ctl($4, 4047, $3 + 48 | 0);
$2 = 0;
break label$1;
}
$1 = HEAP32[$0 + 4 >> 2];
tonality_analysis_reset($0 + 188 | 0);
$2 = 0;
memset($0 + 14192 | 0, 0, 3948);
opus_custom_encoder_ctl($4, 4028, 0);
silk_InitEncoder($0 + $1 | 0, HEAP32[$0 + 180 >> 2], $3 + 104 | 0);
HEAP32[$0 + 14252 >> 2] = 1;
HEAP32[$0 + 14204 >> 2] = 1065353216;
HEAP16[$0 + 14196 >> 1] = 16384;
HEAP32[$0 + 14240 >> 2] = 1105;
HEAP32[$0 + 14224 >> 2] = 1001;
HEAP32[$0 + 14192 >> 2] = HEAP32[$0 + 112 >> 2];
HEAP32[$0 + 14200 >> 2] = silk_lin2log(60) << 8;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$1 = HEAP32[$2 >> 2];
if ($1 - 1e3 >>> 0 >= 3) {
$2 = -1;
if (($1 | 0) != -1e3) {
break label$1;
}
}
HEAP32[$0 + 136 >> 2] = $1;
$2 = 0;
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
HEAP32[$0 + 176 >> 2] = $2;
HEAP32[$3 + 64 >> 2] = $2;
$2 = opus_custom_encoder_ctl($4, 10024, $3 - -64 | 0);
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
HEAP32[$0 + 14256 >> 2] = $2;
HEAP32[$3 + 80 >> 2] = $2;
$2 = opus_custom_encoder_ctl($4, 10026, $3 + 80 | 0);
break label$1;
}
$2 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $2 + 4;
$6 = HEAP32[$2 >> 2];
if (!$6) {
$2 = -1;
break label$1;
}
if (!(!HEAP32[$0 + 56 >> 2] | (HEAP32[$0 + 14228 >> 2] & -2) != 1e3)) {
$2 = HEAP32[$0 + 4 >> 2];
HEAP32[$6 >> 2] = 1;
if (HEAP32[$0 + 12 >> 2] < 1) {
$2 = 0;
break label$1;
}
$7 = $0 + $2 | 0;
$4 = 0;
$5 = 1;
while (1) {
$1 = 0;
$1 = $5 ? HEAP32[(Math_imul($4, 10064) + $7 | 0) + 6084 >> 2] > 9 : $1;
HEAP32[$6 >> 2] = $1;
$2 = 0;
$5 = $1;
$4 = $4 + 1 | 0;
if (($4 | 0) < HEAP32[$0 + 12 >> 2]) {
continue;
}
break;
}
break label$1;
}
if (HEAP32[$0 + 184 >> 2]) {
HEAP32[$6 >> 2] = HEAP32[$0 + 18124 >> 2] > 9;
$2 = 0;
break label$1;
}
$2 = 0;
HEAP32[$6 >> 2] = 0;
break label$1;
}
$0 = HEAP32[$3 + 204 >> 2];
HEAP32[$3 + 204 >> 2] = $0 + 4;
$0 = HEAP32[$0 >> 2];
if (!$0) {
$2 = -1;
break label$1;
}
HEAP32[$3 + 96 >> 2] = $0;
$2 = opus_custom_encoder_ctl($4, 10015, $3 + 96 | 0);
}
__stack_pointer = $3 + 208 | 0;
return $2 | 0;
}
function silk_Encode($0, $1, $2, $3, $4, $5, $6, $7) {
var $8 = 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, $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, $47 = 0;
$16 = __stack_pointer - 32 | 0;
$15 = $16;
__stack_pointer = $15;
if (HEAP32[$1 + 68 >> 2]) {
HEAP32[$0 + 14728 >> 2] = 1;
HEAP32[$0 + 4664 >> 2] = 1;
}
HEAP32[$0 + 5748 >> 2] = 0;
HEAP32[$0 + 15812 >> 2] = 0;
if (!check_control_input($1)) {
$34 = $0 + 10064 | 0;
HEAP32[$1 + 88 >> 2] = 0;
label$3 : {
if (HEAP32[$1 + 4 >> 2] <= HEAP32[$0 + 20196 >> 2]) {
break label$3;
}
$14 = silk_init_encoder($34, HEAP32[$0 + 5092 >> 2]);
HEAP32[$0 + 20144 >> 2] = 1;
HEAP32[$0 + 20148 >> 2] = 0;
HEAP32[$0 + 20136 >> 2] = 0;
HEAP32[$0 + 20140 >> 2] = 0;
HEAP32[$0 + 20128 >> 2] = 0;
HEAP32[$0 + 20152 >> 2] = 1;
HEAP32[$0 + 20156 >> 2] = 16384;
if (HEAP32[$0 + 20192 >> 2] != 2) {
break label$3;
}
memcpy($0 + 15840 | 0, $0 + 5776 | 0, 300);
$20 = HEAP32[$0 + 4 >> 2];
$12 = HEAP32[$0 >> 2];
HEAP32[$0 + 10064 >> 2] = $12;
HEAP32[$0 + 10068 >> 2] = $20;
}
$24 = HEAP32[$1 + 24 >> 2];
label$4 : {
if (($24 | 0) != HEAP32[$0 + 4612 >> 2]) {
$8 = HEAP32[$1 + 4 >> 2];
$21 = 1;
break label$4;
}
$8 = HEAP32[$1 + 4 >> 2];
$21 = ($8 | 0) != HEAP32[$0 + 20196 >> 2];
}
$9 = HEAP32[$1 >> 2];
HEAP32[$0 + 20196 >> 2] = $8;
HEAP32[$0 + 20192 >> 2] = $9;
$10 = Math_imul($3, 100);
$9 = HEAP32[$1 + 8 >> 2];
$18 = ($10 | 0) / ($9 | 0) | 0;
label$6 : {
label$7 : {
label$8 : {
label$9 : {
if ($6) {
if (($18 | 0) != 1) {
break label$6;
}
if (($6 | 0) == 2) {
$12 = HEAP32[$0 + 28 >> 2];
$20 = HEAP32[$0 + 24 >> 2];
HEAP32[$15 + 24 >> 2] = $20;
HEAP32[$15 + 28 >> 2] = $12;
$20 = HEAP32[$0 + 20 >> 2];
$12 = HEAP32[$0 + 16 >> 2];
HEAP32[$15 + 16 >> 2] = $12;
HEAP32[$15 + 20 >> 2] = $20;
$13 = HEAP32[$0 + 4576 >> 2];
}
$9 = 0;
label$12 : {
if (($8 | 0) > 0) {
$11 = ($6 | 0) != 2;
$23 = $15;
break label$12;
}
HEAP32[$1 + 24 >> 2] = 10;
$35 = HEAP32[$1 + 36 >> 2];
HEAP32[$1 + 36 >> 2] = 0;
break label$9;
}
label$14 : {
while (1) {
$8 = Math_imul($9, 10064) + $0 | 0;
$10 = silk_init_encoder($8, HEAP32[$8 + 5092 >> 2]);
if (!$11) {
$12 = HEAP32[$15 + 20 >> 2];
$20 = HEAP32[$15 + 16 >> 2];
HEAP32[$8 + 16 >> 2] = $20;
HEAP32[$8 + 20 >> 2] = $12;
$20 = HEAP32[$23 + 28 >> 2];
$12 = HEAP32[$23 + 24 >> 2];
HEAP32[$8 + 24 >> 2] = $12;
HEAP32[$8 + 28 >> 2] = $20;
HEAP32[$8 + 32 >> 2] = $13;
}
if (!$10) {
$8 = HEAP32[$1 + 4 >> 2];
$9 = $9 + 1 | 0;
if (($8 | 0) <= ($9 | 0)) {
break label$14;
}
continue;
}
break;
}
celt_fatal(17522, 17507, 222);
abort();
}
$24 = HEAP32[$1 + 24 >> 2];
HEAP32[$1 + 24 >> 2] = 10;
$35 = HEAP32[$1 + 36 >> 2];
$14 = 0;
HEAP32[$1 + 36 >> 2] = 0;
if (($8 | 0) < 1) {
break label$9;
}
while (1) {
$9 = Math_imul($14, 10064) + $0 | 0;
HEAP32[$9 + 4680 >> 2] = 1;
HEAP32[$9 + 4668 >> 2] = 0;
$14 = $14 + 1 | 0;
if (($14 | 0) != ($8 | 0)) {
continue;
}
break;
}
$14 = 0;
break label$9;
}
if ((Math_imul($9, $18) | 0) != ($10 | 0) | ($3 | 0) < 0) {
break label$7;
}
$9 = Math_imul($9, $24);
$24 = 0;
if ((Math_imul($3, 1e3) | 0) > ($9 | 0)) {
break label$8;
}
}
label$19 : {
label$20 : {
label$21 : {
label$22 : {
if (($8 | 0) < 1) {
break label$22;
}
$11 = $21 ^ -1;
$10 = 0;
while (1) {
$8 = 0;
$9 = Math_imul($10, 10064) + $0 | 0;
$8 = ($10 | 0) == 1 ? HEAP32[$0 + 4576 >> 2] : $8;
$14 = silk_control_encoder($9, $1, HEAP32[$0 + 20208 >> 2], $10, $8);
if ($14) {
break label$20;
}
label$26 : {
if (!HEAP32[$9 + 4664 >> 2] & $11) {
break label$26;
}
$8 = 0;
if (HEAP32[$0 + 5744 >> 2] < 1) {
break label$26;
}
while (1) {
HEAP32[(($8 << 2) + $9 | 0) + 4724 >> 2] = 0;
$8 = $8 + 1 | 0;
if (($8 | 0) < HEAP32[$0 + 5744 >> 2]) {
continue;
}
break;
}
}
HEAP32[$9 + 6080 >> 2] = HEAP32[$9 + 6076 >> 2];
$8 = HEAP32[$1 + 4 >> 2];
$10 = $10 + 1 | 0;
if (($8 | 0) > ($10 | 0)) {
continue;
}
break;
}
$14 = 0;
if (($8 | 0) != 1) {
break label$22;
}
$8 = HEAP32[$0 + 4576 >> 2];
break label$21;
}
$8 = HEAP32[$0 + 4576 >> 2];
if (($8 | 0) != HEAP32[$0 + 14640 >> 2]) {
break label$19;
}
}
$27 = ($18 | 0) > 1 ? $18 >> 1 : 1;
$39 = $27 << 1;
$40 = $27 - 1 | 0;
$41 = $0 + 10212 | 0;
$20 = $0 + 17232 | 0;
$36 = $0 + 14784 | 0;
$42 = $0 + 15164 | 0;
$43 = $0 + 5100 | 0;
$44 = $0 + 20128 | 0;
$25 = $0 + 20180 | 0;
$45 = $0 + 14788 | 0;
$29 = $0 + 20162 | 0;
$30 = $0 + 15160 | 0;
$31 = $0 + 15840 | 0;
$26 = $0 + 5096 | 0;
$28 = $0 + 5776 | 0;
$37 = Math_imul($18, 10);
$32 = Math_imul($37, $8);
$22 = $16 - (((Math_imul($32, HEAP32[$0 + 4556 >> 2]) | 0) / (Math_imul($8, 1e3) | 0) << 1) + 15 & -16) | 0;
__stack_pointer = $22;
$21 = 0;
label$28 : {
while (1) {
$10 = HEAP32[$0 + 5740 >> 2];
$8 = HEAP32[$0 + 4584 >> 2] - $10 | 0;
$11 = ($8 | 0) < ($32 | 0) ? $8 : $32;
$19 = (Math_imul($11, HEAP32[$0 + 4556 >> 2]) | 0) / (Math_imul(HEAP32[$0 + 4576 >> 2], 1e3) | 0) | 0;
label$30 : {
label$31 : {
label$32 : {
label$33 : {
label$34 : {
label$35 : {
label$36 : {
switch (HEAP32[$1 >> 2] - 1 | 0) {
case 1:
label$38 : {
switch (HEAP32[$1 + 4 >> 2] - 1 | 0) {
case 1:
$9 = HEAP32[$0 + 5748 >> 2];
$8 = 0;
$13 = ($19 | 0) < 1;
if (!$13) {
while (1) {
HEAP16[($8 << 1) + $22 >> 1] = HEAPU16[($8 << 2) + $2 >> 1];
$8 = $8 + 1 | 0;
if (($19 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
if (!(HEAP32[$0 + 20200 >> 2] != 1 | $9)) {
memcpy($31, $28, 300);
}
$8 = silk_resampler($28, (($10 << 1) + $26 | 0) + 4 | 0, $22, $19);
HEAP32[$0 + 5740 >> 2] = HEAP32[$0 + 5740 >> 2] + $11;
$9 = HEAP32[$0 + 15804 >> 2];
$10 = HEAP32[$0 + 14648 >> 2] - $9 | 0;
$11 = Math_imul(HEAP32[$0 + 14640 >> 2], $37);
$10 = ($10 | 0) < ($11 | 0) ? $10 : $11;
$11 = $8 + $14 | 0;
$8 = 0;
if (!$13) {
while (1) {
HEAP16[($8 << 1) + $22 >> 1] = HEAPU16[($8 << 2 | 2) + $2 >> 1];
$8 = $8 + 1 | 0;
if (($19 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
$8 = silk_resampler($31, (($9 << 1) + $30 | 0) + 4 | 0, $22, $19);
HEAP32[$0 + 15804 >> 2] = HEAP32[$0 + 15804 >> 2] + $10;
$14 = $8 + $11 | 0;
$8 = HEAP32[$0 + 5740 >> 2];
break label$35;
case 0:
break label$38;
default:
break label$34;
}
}
$8 = 0;
if (($19 | 0) >= 1) {
while (1) {
$9 = $8 << 2;
$9 = HEAP16[($9 | 2) + $2 >> 1] + HEAP16[$2 + $9 >> 1] | 0;
HEAP16[($8 << 1) + $22 >> 1] = ($9 >>> 1 | 0) + ($9 & 1);
$8 = $8 + 1 | 0;
if (($19 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
$14 = silk_resampler($28, (($10 << 1) + $26 | 0) + 4 | 0, $22, $19) + $14 | 0;
label$47 : {
if (HEAP32[$0 + 5748 >> 2] | HEAP32[$0 + 20200 >> 2] != 2) {
break label$47;
}
$14 = silk_resampler($31, ((HEAP32[$0 + 15804 >> 2] << 1) + $30 | 0) + 4 | 0, $22, $19) + $14 | 0;
$13 = HEAP32[$0 + 4584 >> 2];
if (($13 | 0) < 1) {
break label$47;
}
$17 = HEAP32[$0 + 15804 >> 2];
$18 = HEAP32[$0 + 5740 >> 2];
$8 = 0;
while (1) {
$9 = $8 + 2 | 0;
$10 = ($18 + $9 << 1) + $26 | 0;
HEAP16[$10 >> 1] = HEAP16[($9 + $17 << 1) + $30 >> 1] + HEAP16[$10 >> 1] >>> 1;
$8 = $8 + 1 | 0;
if (($13 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
$8 = HEAP32[$0 + 5740 >> 2] + $11 | 0;
HEAP32[$0 + 5740 >> 2] = $8;
break label$35;
case 0:
break label$36;
default:
break label$34;
}
}
if (HEAP32[$1 + 4 >> 2] != 1) {
break label$34;
}
$9 = silk_resampler($28, (($10 << 1) + $26 | 0) + 4 | 0, memcpy($22, $2, $19 << 1), $19);
$8 = HEAP32[$0 + 5740 >> 2] + $11 | 0;
HEAP32[$0 + 5740 >> 2] = $8;
$14 = $9 + $14 | 0;
}
$46 = HEAP32[$1 >> 2];
HEAP32[$0 + 20208 >> 2] = 0;
$9 = HEAP32[$0 + 4584 >> 2];
$12 = 0;
if (($9 | 0) > ($8 | 0)) {
break label$28;
}
if (($8 | 0) != ($9 | 0)) {
break label$33;
}
$8 = HEAP32[$1 + 4 >> 2];
if (HEAP32[$0 + 15804 >> 2] != HEAP32[$0 + 14648 >> 2] ? ($8 | 0) != 1 : 0) {
break label$32;
}
if (HEAP32[$0 + 5748 >> 2] | $6) {
break label$30;
}
$17 = 0;
HEAP16[$15 + 14 >> 1] = 0;
HEAP8[$15 + 14 | 0] = 0 - (256 >>> Math_imul(HEAP32[$0 + 5744 >> 2] + 1 | 0, $8) | 0);
ec_enc_icdf($4, 0, $15 + 14 | 0, 8);
$11 = HEAP32[$1 + 4 >> 2];
if (($11 | 0) <= 0) {
break label$31;
}
while (1) {
$8 = 0;
$9 = 0;
$13 = Math_imul($17, 10064) + $0 | 0;
$10 = HEAP32[$13 + 5744 >> 2];
if (($10 | 0) >= 1) {
while (1) {
$9 = HEAP32[(($8 << 2) + $13 | 0) + 4724 >> 2] << $8 | $9;
$8 = $8 + 1 | 0;
if (($10 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
HEAP8[$13 + 4723 | 0] = ($9 | 0) > 0;
if (!(!$9 | ($10 | 0) < 2)) {
ec_enc_icdf($4, $9 - 1 | 0, HEAP32[($10 << 2) + 5808 >> 2], 8);
$11 = HEAP32[$1 + 4 >> 2];
}
$17 = $17 + 1 | 0;
if (($17 | 0) < ($11 | 0)) {
continue;
}
break;
}
break label$31;
}
celt_fatal(17672, 17507, 320);
abort();
}
celt_fatal(17758, 17507, 336);
abort();
}
celt_fatal(17857, 17507, 337);
abort();
}
$10 = 0;
if (HEAP32[$0 + 5744 >> 2] > 0) {
while (1) {
if (($11 | 0) >= 1) {
$17 = $10 - 1 | 0;
$33 = $10 + $25 | 0;
$13 = $10 << 2;
$18 = $45 + $13 | 0;
$16 = Math_imul($10, 6) + $29 | 0;
$9 = 0;
while (1) {
$8 = Math_imul($9, 10064) + $0 | 0;
if (HEAP32[($13 + $8 | 0) + 4724 >> 2]) {
label$59 : {
if (($11 | 0) != 2 | $9) {
break label$59;
}
silk_stereo_encode_pred($4, $16);
if (HEAP32[$18 >> 2]) {
break label$59;
}
silk_stereo_encode_mid_only($4, HEAP8[$33 | 0]);
}
$12 = $8;
$23 = $4;
$47 = $10;
label$60 : {
if ($10) {
$11 = 2;
if (HEAP32[(($17 << 2) + $8 | 0) + 4724 >> 2]) {
break label$60;
}
}
$11 = 0;
}
silk_encode_indices($12, $23, $47, 1, $11);
$11 = Math_imul($10, 36) + $8 | 0;
silk_encode_pulses($4, HEAP8[$11 + 6129 | 0], HEAP8[$11 + 6130 | 0], (Math_imul($10, 320) + $8 | 0) + 6208 | 0, HEAP32[$8 + 4584 >> 2]);
$11 = HEAP32[$1 + 4 >> 2];
}
$9 = $9 + 1 | 0;
if (($11 | 0) > ($9 | 0)) {
continue;
}
break;
}
}
$10 = $10 + 1 | 0;
if (($10 | 0) < HEAP32[$0 + 5744 >> 2]) {
continue;
}
break;
}
}
$8 = 0;
if (($11 | 0) > 0) {
while (1) {
$9 = Math_imul($8, 10064) + $0 | 0;
HEAP32[$9 + 4724 >> 2] = 0;
HEAP32[$9 + 4728 >> 2] = 0;
HEAP32[$9 + 4732 >> 2] = 0;
$8 = $8 + 1 | 0;
if (($8 | 0) < HEAP32[$1 + 4 >> 2]) {
continue;
}
break;
}
}
HEAP32[$0 + 20184 >> 2] = (HEAP32[$4 + 20 >> 2] + Math_clz32(HEAP32[$4 + 28 >> 2]) | 0) - 32;
}
silk_HP_variable_cutoff($0);
$8 = HEAP32[$1 + 28 >> 2];
$10 = HEAP32[$1 + 24 >> 2];
$9 = (Math_imul($8, $10) | 0) / 1e3 | 0;
$9 = $6 ? $9 : $9 - HEAP32[$0 + 20184 >> 2] | 0;
$11 = ($9 | 0) / HEAP32[$0 + 5744 >> 2] | 0;
$9 = Math_imul($11 << 16 >> 16, ($10 | 0) == 10 ? 100 : 50) - (HEAP32[$0 + 20188 >> 2] << 1) | 0;
label$65 : {
if ($6) {
break label$65;
}
$10 = HEAP32[$0 + 5748 >> 2];
if (($10 | 0) < 1) {
break label$65;
}
$9 = ((HEAP32[$0 + 20184 >> 2] + ((Math_imul($10, $11) - HEAP32[$4 + 20 >> 2] | 0) - Math_clz32(HEAP32[$4 + 28 >> 2]) | 0) << 1) + $9 | 0) - -64 | 0;
}
label$66 : {
if (($8 | 0) >= 5001) {
$16 = $8;
if (($8 | 0) < ($9 | 0)) {
break label$66;
}
$16 = ($9 | 0) > 5e3 ? $9 : 5e3;
break label$66;
}
$16 = 5e3;
if (($9 | 0) > 5e3) {
break label$66;
}
$16 = ($8 | 0) > ($9 | 0) ? $8 : $9;
}
label$68 : {
if (HEAP32[$1 + 4 >> 2] == 2) {
$8 = HEAP32[$0 + 5748 >> 2];
silk_stereo_LR_to_MS($44, $43, $42, Math_imul($8, 6) + $29 | 0, $8 + $25 | 0, $15 + 16 | 0, $16, HEAP32[$0 + 4532 >> 2], HEAP32[$1 + 60 >> 2], HEAP32[$0 + 4576 >> 2], HEAP32[$0 + 4584 >> 2]);
$8 = HEAP32[$0 + 5748 >> 2];
label$70 : {
if (!HEAPU8[$25 + $8 | 0]) {
if (HEAP32[$0 + 20212 >> 2] == 1) {
$12 = $20;
HEAP32[$12 >> 2] = 0;
HEAP32[$12 + 4 >> 2] = 0;
HEAP32[$12 + 8 >> 2] = 0;
HEAP32[$0 + 10080 >> 2] = 0;
HEAP32[$0 + 10084 >> 2] = 0;
memset($41, 0, 4384);
HEAP8[$0 + 17232 | 0] = 10;
HEAP32[$0 + 14540 >> 2] = 100;
HEAP32[$0 + 14608 >> 2] = 100;
HEAP8[$0 + 14605 | 0] = 0;
HEAP32[$0 + 14728 >> 2] = 1;
HEAP32[$0 + 14556 >> 2] = 65536;
}
silk_encode_do_VAD_FLP($34, $7);
break label$70;
}
HEAP8[$8 + $36 | 0] = 0;
}
if ($6) {
break label$68;
}
silk_stereo_encode_pred($4, Math_imul(HEAP32[$0 + 5748 >> 2], 6) + $29 | 0);
$8 = HEAP32[$0 + 5748 >> 2];
if (HEAPU8[$36 + $8 | 0]) {
break label$68;
}
silk_stereo_encode_mid_only($4, HEAP8[$8 + $25 | 0]);
break label$68;
}
HEAP32[$0 + 5096 >> 2] = HEAP32[$0 + 20132 >> 2];
$12 = (HEAP32[$0 + 4584 >> 2] << 1) + $26 | 0;
HEAP32[$0 + 20132 >> 2] = HEAPU16[$12 >> 1] | HEAPU16[$12 + 2 >> 1] << 16;
}
$33 = Math_imul($19, $46);
silk_encode_do_VAD_FLP($0, $7);
$13 = HEAP32[$1 + 4 >> 2];
if (($13 | 0) >= 1) {
$18 = !$21 & ($27 | 0) == 2;
$8 = 0;
while (1) {
$10 = HEAP32[$1 + 56 >> 2];
$11 = (Math_imul($10, 3) | 0) / 5 | 0;
label$75 : {
if ($18) {
break label$75;
}
$11 = $10;
if (($27 | 0) != 3) {
break label$75;
}
$11 = ($10 << 1) / 5 | 0;
if (!$21) {
break label$75;
}
$11 = $10;
if (($21 | 0) != 1) {
break label$75;
}
$11 = (Math_imul($10, 3) | 0) / 4 | 0;
}
$17 = ($21 | 0) == ($40 | 0) & HEAP32[$1 + 52 >> 2] != 0;
label$76 : {
if (($13 | 0) == 1) {
$9 = $16;
break label$76;
}
$9 = HEAP32[($15 + 16 | 0) + ($8 << 2) >> 2];
if (HEAP32[$15 + 20 >> 2] < 1 | $8) {
break label$76;
}
$11 = $11 - (($10 | 0) / ($39 | 0) | 0) | 0;
$17 = 0;
}
if (($9 | 0) >= 1) {
$10 = Math_imul($8, 10064) + $0 | 0;
silk_control_SNR($10, $9);
$12 = $5;
$23 = $4;
$9 = 0;
label$79 : {
if (HEAP32[$0 + 5748 >> 2] <= ($8 | 0)) {
break label$79;
}
if ($8) {
$9 = 1;
if (HEAP32[$0 + 20212 >> 2]) {
break label$79;
}
}
$9 = 2;
}
$14 = silk_encode_frame_FLP($10, $12, $23, $9, $11, $17);
$13 = HEAP32[$1 + 4 >> 2];
}
$9 = Math_imul($8, 10064) + $0 | 0;
HEAP32[$9 + 5740 >> 2] = 0;
HEAP32[$9 + 4668 >> 2] = 0;
HEAP32[$9 + 5748 >> 2] = HEAP32[$9 + 5748 >> 2] + 1;
$8 = $8 + 1 | 0;
if (($13 | 0) > ($8 | 0)) {
continue;
}
break;
}
}
$18 = $33 << 1;
$3 = $3 - $19 | 0;
$16 = HEAP32[$0 + 5748 >> 2];
HEAP32[$0 + 20212 >> 2] = HEAP8[($25 + $16 | 0) - 1 | 0];
label$81 : {
if (HEAP32[$0 + 5744 >> 2] != ($16 | 0) | HEAP32[$5 >> 2] < 1) {
break label$81;
}
$17 = 0;
$8 = 0;
if (($13 | 0) >= 1) {
while (1) {
$9 = $8 << 1;
$8 = 0;
$10 = Math_imul($17, 10064) + $0 | 0;
$11 = HEAP32[$10 + 5744 >> 2];
if (($11 | 0) >= 1) {
while (1) {
$9 = (HEAP8[($8 + $10 | 0) + 4720 | 0] | $9) << 1;
$8 = $8 + 1 | 0;
if (($11 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
$8 = HEAP8[$10 + 4723 | 0] | $9;
$17 = $17 + 1 | 0;
if (($17 | 0) != ($13 | 0)) {
continue;
}
break;
}
}
if (!$6) {
ec_enc_patch_initial_bits($4, $8, Math_imul($16 + 1 | 0, $13));
}
if (!(!HEAP32[$0 + 6080 >> 2] | (HEAP32[$0 + 16144 >> 2] ? 0 : HEAP32[$1 + 4 >> 2] != 1))) {
HEAP32[$5 >> 2] = 0;
}
$9 = HEAP32[$1 + 24 >> 2];
$8 = (HEAP32[$0 + 20188 >> 2] + (HEAP32[$5 >> 2] << 3) | 0) + ((Math_imul($9, HEAP32[$1 + 28 >> 2]) | 0) / -1e3 | 0) | 0;
$8 = ($8 | 0) > 0 ? $8 : 0;
HEAP32[$0 + 20188 >> 2] = ($8 | 0) < 1e4 ? $8 : 1e4;
$8 = HEAP32[$0 + 20204 >> 2];
if (HEAP32[$0 + 4532 >> 2] < ((Math_imul($8 << 16 >> 16, 3188) >> 16) + 13 | 0)) {
HEAP32[$0 + 20204 >> 2] = 0;
HEAP32[$0 + 20208 >> 2] = 1;
break label$81;
}
HEAP32[$0 + 20208 >> 2] = 0;
HEAP32[$0 + 20204 >> 2] = $8 + $9;
}
$2 = $2 + $18 | 0;
$21 = $21 + 1 | 0;
if ($3) {
continue;
}
break;
}
$12 = HEAP32[$0 + 20208 >> 2];
}
$10 = HEAP32[$1 + 4 >> 2];
HEAP32[$0 + 20200 >> 2] = $10;
$8 = $12;
HEAP32[$1 + 76 >> 2] = $8;
$8 = HEAP32[$0 + 4576 >> 2];
$38 = ($8 | 0) == 16 ? !HEAP32[$0 + 28 >> 2] : $38;
HEAP32[$1 + 80 >> 2] = $38;
HEAP32[$1 + 72 >> 2] = Math_imul($8 << 16 >> 16, 1e3);
$8 = 0;
$8 = HEAP32[$1 + 60 >> 2] ? $8 : HEAP16[$0 + 20156 >> 1];
HEAP32[$1 + 84 >> 2] = $8;
label$93 : {
if (!$6) {
break label$93;
}
HEAP32[$1 + 36 >> 2] = $35;
HEAP32[$1 + 24 >> 2] = $24;
if (($10 | 0) < 1) {
break label$93;
}
$8 = 0;
while (1) {
$9 = Math_imul($8, 10064) + $0 | 0;
HEAP32[$9 + 4680 >> 2] = 0;
HEAP32[$9 + 4668 >> 2] = 0;
$8 = $8 + 1 | 0;
if (($10 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
$8 = HEAP8[$0 + 4765 | 0];
HEAP32[$1 + 92 >> 2] = $8;
HEAP32[$1 + 96 >> 2] = HEAP16[(($8 << 1 & -4) + (HEAP8[$0 + 4766 | 0] << 1) | 0) + 5840 >> 1];
}
__stack_pointer = $15 + 32 | 0;
return $14;
}
celt_fatal(17545, 17507, 262);
abort();
}
celt_fatal(17487, 17507, 241);
abort();
}
celt_fatal(17487, 17507, 235);
abort();
}
celt_fatal(17487, 17507, 206);
abort();
}
celt_fatal(17487, 17507, 170);
abort();
}
function quant_all_bands($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22) {
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = Math_fround(0), $34 = Math_fround(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 = Math_fround(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, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = Math_fround(0), $87 = 0, $88 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = Math_fround(0);
$27 = __stack_pointer - 1568 | 0;
$25 = $27;
__stack_pointer = $25;
$28 = 1;
$37 = HEAP32[$1 + 32 >> 2];
$63 = $37 + ($2 << 1) | 0;
$41 = HEAP16[$63 >> 1] << $17;
$49 = $5 ? 2 : 1;
$31 = $25 - ((Math_imul($49, (HEAP16[((HEAP32[$1 + 8 >> 2] << 1) + $37 | 0) - 2 >> 1] << $17) - $41 | 0) << 2) + 15 & -16) | 0;
$26 = $31;
__stack_pointer = $26;
$27 = HEAP32[$1 + 8 >> 2];
$29 = HEAP16[(($27 << 1) + $37 | 0) - 2 >> 1];
$38 = $29 << $17 << 2;
$50 = !$11 & (($0 | 0) != 0 & ($5 | 0) != 0) & ($20 | 0) > 7;
$59 = $50 | !$0;
$39 = $9 ? 1 << $17 : 1;
label$1 : {
if ($50) {
$28 = HEAP16[($27 << 1) + $37 >> 1] - $29 << $17;
$32 = $26 - (($28 << 2) + 15 & -16) | 0;
$26 = $32;
__stack_pointer = $26;
break label$1;
}
$32 = $4 + $38 | 0;
}
$27 = ($28 << 2) + 15 & -16;
$64 = $26 - $27 | 0;
$26 = $64;
__stack_pointer = $26;
$65 = $26 - $27 | 0;
$26 = $65;
__stack_pointer = $26;
$66 = $26 - $27 | 0;
$26 = $66;
__stack_pointer = $26;
$67 = $26 - $27 | 0;
$26 = $67;
__stack_pointer = $26;
$60 = $26 - $27 | 0;
__stack_pointer = $60;
HEAP32[$25 + 1532 >> 2] = $16;
HEAP32[$25 + 1540 >> 2] = $7;
HEAP32[$25 + 1520 >> 2] = $12;
HEAP32[$25 + 1504 >> 2] = $0;
HEAP32[$25 + 1512 >> 2] = $1;
$27 = HEAP32[$19 >> 2];
HEAP32[$25 + 1556 >> 2] = $22;
HEAP32[$25 + 1548 >> 2] = $21;
HEAP32[$25 + 1524 >> 2] = $10;
HEAP32[$25 + 1544 >> 2] = $27;
$0 = ($39 | 0) > 1;
HEAP32[$25 + 1560 >> 2] = $0;
HEAP32[$25 + 1552 >> 2] = 0;
HEAP32[$25 + 1508 >> 2] = $59;
if (($2 | 0) < ($3 | 0)) {
$101 = $5 ? $31 : 0;
$102 = ($10 | 0) != 3 | $0;
$45 = $16 + 28 | 0;
$46 = $16 + 8 | 0;
$103 = $59 ^ 1;
$21 = $49 - 1 | 0;
$68 = $2 + 2 | 0;
$51 = $2 + 1 | 0;
$69 = $3 - 1 | 0;
$27 = 0 - $41 << 2;
$38 = ($31 + $38 | 0) - ($41 << 2) | 0;
$104 = $27 + $38 | 0;
$42 = $27 + $31 | 0;
$70 = -1 << $39 ^ -1;
$52 = $2;
$10 = 1;
while (1) {
$22 = $52;
HEAP32[$25 + 1516 >> 2] = $22;
label$5 : {
label$6 : {
$52 = $22 + 1 | 0;
$35 = ($22 << 1) + $37 | 0;
$0 = HEAP16[$35 >> 1] << $17;
$27 = (HEAP16[($52 << 1) + $37 >> 1] << $17) - $0 | 0;
if (($27 | 0) > 0) {
$61 = ec_tell_frac($16);
$26 = $14 - $61 | 0;
HEAP32[$25 + 1536 >> 2] = $26 - 1;
$71 = $15 - (($2 | 0) == ($22 | 0) ? 0 : $61) | 0;
$36 = 0;
label$8 : {
if (($18 | 0) <= ($22 | 0)) {
break label$8;
}
$15 = $18 - $22 | 0;
$15 = HEAP32[($22 << 2) + $8 >> 2] + (($71 | 0) / ((($15 | 0) < 3 ? $15 : 3) | 0) | 0) | 0;
$15 = ($15 | 0) > ($26 | 0) ? $26 : $15;
$36 = 16383;
if (($15 | 0) > 16383) {
break label$8;
}
$36 = ($15 | 0) > 0 ? $15 : 0;
}
$15 = $0 << 2;
$40 = !$59 | (((HEAP16[$35 >> 1] << $17) - $27 | 0) < HEAP16[$63 >> 1] << $17 ? ($22 | 0) != ($51 | 0) : 0) ? $40 : $10 ? $22 : $40 ? $40 : $22;
$0 = $5 + $15 | 0;
$72 = ($22 | 0) != ($51 | 0);
label$11 : {
if ($72) {
break label$11;
}
$26 = HEAP32[$1 + 32 >> 2];
$28 = HEAP16[$26 + ($51 << 1) >> 1];
$10 = $28 - HEAP16[($2 << 1) + $26 >> 1] << $17;
$9 = $10 << 2;
$26 = HEAP16[($68 << 1) + $26 >> 1] - $28 << $17;
$28 = ($10 << 1) - $26 << 2;
$26 = $26 - $10 << 2;
memcpy($31 + $9 | 0, $31 + $28 | 0, $26);
if (!$11) {
break label$11;
}
memcpy($9 + $38 | 0, $28 + $38 | 0, $26);
}
$43 = $5 ? $0 : 0;
$20 = $4 + $15 | 0;
$62 = $22 << 2;
$15 = HEAP32[$62 + $13 >> 2];
HEAP32[$25 + 1528 >> 2] = $15;
$29 = HEAP32[$1 + 12 >> 2] > ($22 | 0);
$32 = $29 ? $32 : 0;
$44 = ($22 | 0) == ($69 | 0);
$47 = $44 ? 0 : $32;
$30 = -1;
label$12 : {
if (!$40) {
$0 = $70;
$26 = $0;
break label$12;
}
$0 = $70;
$26 = $0;
if (!(($15 | 0) < 0 | $102)) {
break label$12;
}
$15 = ((HEAP16[($40 << 1) + $37 >> 1] << $17) - $41 | 0) - $27 | 0;
$30 = ($15 | 0) > 0 ? $15 : 0;
$0 = $41 + $30 | 0;
$15 = $40;
while (1) {
$26 = $15;
$15 = $15 - 1 | 0;
if (HEAP16[($15 << 1) + $37 >> 1] << $17 > ($0 | 0)) {
continue;
}
break;
}
$9 = $0 + $27 | 0;
$10 = $40 - 1 | 0;
$28 = (($22 | 0) < ($40 | 0) ? $40 : $22) - 1 | 0;
while (1) {
label$16 : {
$0 = $10;
if (($28 | 0) == ($0 | 0)) {
$0 = $28;
break label$16;
}
$10 = $0 + 1 | 0;
if (HEAP16[($10 << 1) + $37 >> 1] << $17 < ($9 | 0)) {
continue;
}
}
break;
}
$28 = ($0 | 0) < ($26 | 0) ? $15 : $0;
$0 = 0;
$26 = 0;
while (1) {
$10 = Math_imul($15, $49);
$0 = HEAPU8[$10 + $6 | 0] | $0;
$26 = HEAPU8[($10 + $21 | 0) + $6 | 0] | $26;
$10 = ($15 | 0) != ($28 | 0);
$15 = $15 + 1 | 0;
if ($10) {
continue;
}
break;
}
}
$32 = $50 ? $32 : $47;
$20 = $29 ? $20 : $31;
$9 = $29 ? $43 : $101;
if (!$11) {
break label$6;
}
if (!(($12 | 0) != ($22 | 0) | $103)) {
$15 = HEAP16[$35 >> 1] << $17;
if (($41 | 0) >= ($15 | 0)) {
break label$6;
}
$15 = $15 - $41 | 0;
$29 = ($15 | 0) > 1 ? $15 : 1;
$15 = 0;
while (1) {
$10 = $15 << 2;
$28 = $31 + $10 | 0;
HEAPF32[$28 >> 2] = Math_fround(HEAPF32[$28 >> 2] + HEAPF32[$10 + $38 >> 2]) * Math_fround(.5);
$15 = $15 + 1 | 0;
if (($29 | 0) != ($15 | 0)) {
continue;
}
break;
}
break label$6;
}
if (($12 | 0) == ($22 | 0)) {
break label$6;
}
$10 = $30 << 2;
$28 = ($30 | 0) == -1;
$29 = $28 ? 0 : $31 + $10 | 0;
$15 = $36 >>> 1 | 0;
label$21 : {
if (($22 | 0) == ($69 | 0)) {
$30 = 0;
$10 = $28 ? 0 : $10 + $38 | 0;
$20 = quant_band($25 + 1504 | 0, $20, $27, $15, $39, $29, $17, 0, Math_fround(1), $32, $0);
break label$21;
}
$10 = $28 ? 0 : $10 + $38 | 0;
$20 = quant_band($25 + 1504 | 0, $20, $27, $15, $39, $29, $17, (HEAP16[$35 >> 1] << $17 << 2) + $42 | 0, Math_fround(1), $32, $0);
$30 = (HEAP16[$35 >> 1] << $17 << 2) + $104 | 0;
}
$15 = quant_band($25 + 1504 | 0, $9, $27, $15, $39, $10, $17, $30, Math_fround(1), $32, $26);
break label$5;
}
celt_fatal(41890, 41800, 1495);
abort();
}
label$23 : {
if ($9) {
if (!($50 ^ 1 | ($12 | 0) <= ($22 | 0))) {
$33 = HEAPF32[$7 + $62 >> 2];
$34 = HEAPF32[(HEAP32[$1 + 8 >> 2] + $22 << 2) + $7 >> 2];
$73 = HEAP32[$16 + 4 >> 2];
$74 = HEAP32[$16 >> 2];
$24 = $46;
$23 = HEAP32[$24 + 8 >> 2];
$15 = HEAP32[$24 + 12 >> 2];
$10 = $23;
$75 = $25 + 1496 | 0;
$23 = $75;
HEAP32[$23 >> 2] = $10;
HEAP32[$23 + 4 >> 2] = $15;
$23 = HEAP32[$24 + 4 >> 2];
$15 = HEAP32[$24 >> 2];
$10 = $15;
$15 = $25;
HEAP32[$15 + 1488 >> 2] = $10;
HEAP32[$15 + 1492 >> 2] = $23;
$47 = HEAP32[$16 + 24 >> 2];
$76 = $15 + 1480 | 0;
HEAP32[$76 >> 2] = HEAP32[$45 + 16 >> 2];
$77 = $15 + 1472 | 0;
$24 = $45;
$23 = HEAP32[$24 + 8 >> 2];
$15 = HEAP32[$24 + 12 >> 2];
$10 = $23;
$23 = $77;
HEAP32[$23 >> 2] = $10;
HEAP32[$23 + 4 >> 2] = $15;
$23 = HEAP32[$24 + 4 >> 2];
$15 = HEAP32[$24 >> 2];
$10 = $15;
$15 = $25;
HEAP32[$15 + 1464 >> 2] = $10;
HEAP32[$15 + 1468 >> 2] = $23;
$78 = $15 + 1408 | 0;
$53 = $15 + 1560 | 0;
HEAP32[$78 >> 2] = HEAP32[$53 >> 2];
$79 = $15 + 1400 | 0;
$43 = $15 + 1552 | 0;
$24 = $43;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$10 = $23;
$23 = $79;
HEAP32[$23 >> 2] = $10;
HEAP32[$23 + 4 >> 2] = $15;
$54 = $25 + 1544 | 0;
$24 = $54;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$10 = $15;
$80 = $25 + 1392 | 0;
$15 = $80;
HEAP32[$15 >> 2] = $10;
HEAP32[$15 + 4 >> 2] = $23;
$55 = $25 + 1536 | 0;
$24 = $55;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$10 = $23;
$81 = $25 + 1384 | 0;
$23 = $81;
HEAP32[$23 >> 2] = $10;
HEAP32[$23 + 4 >> 2] = $15;
$56 = $25 + 1528 | 0;
$24 = $56;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$10 = $15;
$82 = $25 + 1376 | 0;
$15 = $82;
HEAP32[$15 >> 2] = $10;
HEAP32[$15 + 4 >> 2] = $23;
$57 = $25 + 1520 | 0;
$24 = $57;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$10 = $23;
$83 = $25 + 1368 | 0;
$23 = $83;
HEAP32[$23 >> 2] = $10;
HEAP32[$23 + 4 >> 2] = $15;
$58 = $25 + 1512 | 0;
$24 = $58;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$10 = $15;
$84 = $25 + 1360 | 0;
$15 = $84;
HEAP32[$15 >> 2] = $10;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $25;
$23 = HEAP32[$24 + 1504 >> 2];
$15 = HEAP32[$24 + 1508 >> 2];
$10 = $23;
$23 = $24;
HEAP32[$23 + 1352 >> 2] = $10;
HEAP32[$23 + 1356 >> 2] = $15;
$11 = $27 << 2;
$10 = memcpy($64, $20, $11);
$28 = memcpy($65, $9, $11);
HEAP32[$43 >> 2] = -1;
$15 = 0;
$85 = $0 | $26;
$0 = 0;
$48 = Math_fround(($33 < $34 ? $33 : $34) / Math_fround(3));
$86 = Math_fround($34 + $48);
$48 = Math_fround($33 + $48);
$33 = Math_fround(0);
$30 = ($30 | 0) == -1 ? 0 : ($30 << 2) + $31 | 0;
$0 = $44 ? $0 : (HEAP16[$35 >> 1] << $17 << 2) + $42 | 0;
$105 = quant_band_stereo($23 + 1504 | 0, $20, $9, $27, $36, $39, $30, $17, $0, $32, $85);
$34 = Math_fround(0);
while (1) {
$0 = $15 << 2;
$34 = Math_fround($34 + Math_fround(HEAPF32[$10 + $0 >> 2] * HEAPF32[$0 + $20 >> 2]));
$15 = $15 + 1 | 0;
if (($27 | 0) != ($15 | 0)) {
continue;
}
break;
}
$15 = 0;
while (1) {
$0 = $15 << 2;
$33 = Math_fround($33 + Math_fround(HEAPF32[$28 + $0 >> 2] * HEAPF32[$0 + $9 >> 2]));
$15 = $15 + 1 | 0;
if (($27 | 0) != ($15 | 0)) {
continue;
}
break;
}
$24 = $16;
$15 = HEAP32[$24 + 40 >> 2];
$23 = HEAP32[$24 + 44 >> 2];
$0 = $15;
$87 = $25 + 1456 | 0;
$15 = $87;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$15 = HEAP32[$24 + 36 >> 2];
$23 = HEAP32[$24 + 32 >> 2];
$0 = $23;
$88 = $25 + 1448 | 0;
$23 = $88;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
$23 = HEAP32[$24 + 28 >> 2];
$15 = HEAP32[$24 + 24 >> 2];
$0 = $15;
$89 = $25 + 1440 | 0;
$15 = $89;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$15 = HEAP32[$24 + 20 >> 2];
$23 = HEAP32[$24 + 16 >> 2];
$0 = $23;
$90 = $25 + 1432 | 0;
$23 = $90;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $46;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$91 = $25 + 1424 | 0;
$15 = $91;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $16;
$23 = HEAP32[$24 >> 2];
$26 = $23;
$15 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$24 = $58;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$24 = $15;
$92 = $25 + 1296 | 0;
$15 = $92;
HEAP32[$15 >> 2] = $24;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $57;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$24 = $23;
$93 = $25 + 1304 | 0;
$23 = $93;
HEAP32[$23 >> 2] = $24;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $56;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$24 = $15;
$94 = $25 + 1312 | 0;
$15 = $94;
HEAP32[$15 >> 2] = $24;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $55;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$24 = $23;
$95 = $25 + 1320 | 0;
$23 = $95;
HEAP32[$23 >> 2] = $24;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $54;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$24 = $15;
$96 = $25 + 1328 | 0;
$15 = $96;
HEAP32[$15 >> 2] = $24;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $43;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$24 = $23;
$97 = $25 + 1336 | 0;
$23 = $97;
HEAP32[$23 >> 2] = $24;
HEAP32[$23 + 4 >> 2] = $15;
$98 = $25 + 1344 | 0;
HEAP32[$98 >> 2] = HEAP32[$53 >> 2];
$23 = $25;
HEAP32[$23 + 1416 >> 2] = $26;
$15 = $0;
HEAP32[$23 + 1420 >> 2] = $15;
$24 = $23;
$15 = HEAP32[$23 + 1504 >> 2];
$23 = HEAP32[$23 + 1508 >> 2];
$0 = $15;
$15 = $24;
HEAP32[$15 + 1288 >> 2] = $0;
HEAP32[$15 + 1292 >> 2] = $23;
$106 = memcpy($66, $20, $11);
$107 = memcpy($67, $9, $11);
if (!$44) {
memcpy($60, (HEAP16[$35 >> 1] << $17 << 2) + $42 | 0, $11);
}
$99 = $47 + $74 | 0;
$100 = $73 - $47 | 0;
$29 = memcpy($25, $99, $100);
HEAP32[$16 + 4 >> 2] = $73;
HEAP32[$16 >> 2] = $74;
$24 = $75;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $46;
HEAP32[$23 + 8 >> 2] = $0;
HEAP32[$23 + 12 >> 2] = $15;
$24 = $29;
$15 = HEAP32[$24 + 1488 >> 2];
$23 = HEAP32[$24 + 1492 >> 2];
$0 = $15;
$15 = $46;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
HEAP32[$16 + 24 >> 2] = $47;
HEAP32[$45 + 16 >> 2] = HEAP32[$76 >> 2];
$24 = $77;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $45;
HEAP32[$23 + 8 >> 2] = $0;
HEAP32[$23 + 12 >> 2] = $15;
$24 = $29;
$15 = HEAP32[$24 + 1464 >> 2];
$23 = HEAP32[$24 + 1468 >> 2];
$0 = $15;
$15 = $45;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $84;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $58;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $83;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$15 = $57;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $82;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $56;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $81;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$15 = $55;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $80;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $54;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $79;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$15 = $43;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
HEAP32[$53 >> 2] = HEAP32[$78 >> 2];
$24 = $29;
$23 = HEAP32[$24 + 1352 >> 2];
$15 = HEAP32[$24 + 1356 >> 2];
$0 = $23;
$23 = $24;
HEAP32[$23 + 1504 >> 2] = $0;
HEAP32[$23 + 1508 >> 2] = $15;
$26 = memcpy($20, $10, $11);
$9 = memcpy($9, $28, $11);
if (!$72) {
$15 = HEAP32[$1 + 32 >> 2];
$20 = HEAP16[$15 + ($51 << 1) >> 1];
$0 = $20 - HEAP16[($2 << 1) + $15 >> 1] << $17;
$15 = HEAP16[($68 << 1) + $15 >> 1] - $20 << $17;
memcpy(($0 << 2) + $31 | 0, (($0 << 1) - $15 << 2) + $31 | 0, $15 - $0 << 2);
}
HEAP32[$29 + 1552 >> 2] = 1;
$15 = 0;
$0 = 0;
$34 = Math_fround($48 * $34);
$33 = Math_fround($86 * $33);
$108 = Math_fround($34 + $33);
$33 = Math_fround(0);
$0 = $44 ? $0 : (HEAP16[$35 >> 1] << $17 << 2) + $42 | 0;
$20 = quant_band_stereo($29 + 1504 | 0, $26, $9, $27, $36, $39, $30, $17, $0, $32, $85);
$34 = Math_fround(0);
while (1) {
$0 = $15 << 2;
$34 = Math_fround($34 + Math_fround(HEAPF32[$10 + $0 >> 2] * HEAPF32[$0 + $26 >> 2]));
$15 = $15 + 1 | 0;
if (($27 | 0) != ($15 | 0)) {
continue;
}
break;
}
$15 = 0;
while (1) {
$0 = $15 << 2;
$33 = Math_fround($33 + Math_fround(HEAPF32[$28 + $0 >> 2] * HEAPF32[$0 + $9 >> 2]));
$15 = $15 + 1 | 0;
if (($27 | 0) != ($15 | 0)) {
continue;
}
break;
}
if (!(Math_fround(Math_fround($48 * $34) + Math_fround($86 * $33)) <= $108 ^ 1)) {
$15 = HEAP32[$29 + 1416 >> 2];
$23 = HEAP32[$24 + 1420 >> 2];
$0 = $15;
$15 = $16;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $87;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $16;
HEAP32[$23 + 40 >> 2] = $0;
HEAP32[$23 + 44 >> 2] = $15;
$24 = $88;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$15 = $16;
HEAP32[$15 + 32 >> 2] = $0;
HEAP32[$15 + 36 >> 2] = $23;
$24 = $89;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $16;
HEAP32[$23 + 24 >> 2] = $0;
HEAP32[$23 + 28 >> 2] = $15;
$24 = $90;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$15 = $16;
HEAP32[$15 + 16 >> 2] = $0;
HEAP32[$15 + 20 >> 2] = $23;
$24 = $91;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $46;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $92;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$15 = $58;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $93;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $57;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $94;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$15 = $56;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $95;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $55;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
$24 = $96;
$15 = HEAP32[$24 >> 2];
$23 = HEAP32[$24 + 4 >> 2];
$0 = $15;
$15 = $54;
HEAP32[$15 >> 2] = $0;
HEAP32[$15 + 4 >> 2] = $23;
$24 = $97;
$23 = HEAP32[$24 >> 2];
$15 = HEAP32[$24 + 4 >> 2];
$0 = $23;
$23 = $43;
HEAP32[$23 >> 2] = $0;
HEAP32[$23 + 4 >> 2] = $15;
HEAP32[$53 >> 2] = HEAP32[$98 >> 2];
$24 = $29;
$15 = HEAP32[$24 + 1288 >> 2];
$23 = HEAP32[$24 + 1292 >> 2];
$0 = $15;
$15 = $24;
HEAP32[$15 + 1504 >> 2] = $0;
HEAP32[$15 + 1508 >> 2] = $23;
memcpy($26, $106, $11);
memcpy($9, $107, $11);
if (!$44) {
memcpy((HEAP16[$35 >> 1] << $17 << 2) + $42 | 0, $60, $11);
}
memcpy($99, $29, $100);
$20 = $105;
}
$11 = 0;
break label$23;
}
$11 = 0;
HEAP32[$25 + 1552 >> 2] = 0;
$15 = 0;
$10 = ($30 | 0) == -1 ? 0 : ($30 << 2) + $31 | 0;
$15 = $44 ? $15 : (HEAP16[$35 >> 1] << $17 << 2) + $42 | 0;
$20 = quant_band_stereo($25 + 1504 | 0, $20, $9, $27, $36, $39, $10, $17, $15, $32, $0 | $26);
break label$23;
}
$11 = 0;
$15 = 0;
$10 = ($30 | 0) == -1 ? 0 : ($30 << 2) + $31 | 0;
$15 = $44 ? $15 : (HEAP16[$35 >> 1] << $17 << 2) + $42 | 0;
$20 = quant_band($25 + 1504 | 0, $20, $27, $36, $39, $10, $17, $15, Math_fround(1), $32, $0 | $26);
}
$15 = $20;
}
$0 = Math_imul($22, $49);
HEAP8[$6 + $0 | 0] = $20;
HEAP8[($0 + $21 | 0) + $6 | 0] = $15;
$15 = HEAP32[$8 + $62 >> 2];
HEAP32[$25 + 1560 >> 2] = 0;
$15 = ($61 + $71 | 0) + $15 | 0;
$10 = $27 << 3 < ($36 | 0);
if (($3 | 0) != ($52 | 0)) {
continue;
}
break;
}
$27 = HEAP32[$25 + 1544 >> 2];
}
HEAP32[$19 >> 2] = $27;
__stack_pointer = $25 + 1568 | 0;
}
function silk_NSQ_c($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) {
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, $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, $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, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0;
$15 = __stack_pointer;
$60 = $15;
HEAP32[$1 + 4340 >> 2] = HEAP8[$2 + 34 | 0];
$32 = HEAP32[$1 + 4328 >> 2];
$19 = HEAPU8[$2 + 31 | 0];
$23 = HEAP8[$2 + 29 | 0];
$22 = HEAP8[$2 + 30 | 0];
$18 = HEAP32[$0 + 4592 >> 2];
$17 = HEAP32[$0 + 4584 >> 2];
$16 = $18 + $17 | 0;
$34 = $15 - (($16 << 2) + 15 & -16) | 0;
$15 = $34;
__stack_pointer = $15;
$39 = $15 - (($16 << 1) + 15 & -16) | 0;
$16 = $39;
__stack_pointer = $16;
$15 = HEAP32[$0 + 4588 >> 2];
$40 = $16 - (($15 << 2) + 15 & -16) | 0;
__stack_pointer = $40;
HEAP32[$1 + 4332 >> 2] = $18;
HEAP32[$1 + 4336 >> 2] = $18;
label$1 : {
label$2 : {
label$3 : {
$16 = HEAP32[$0 + 4580 >> 2];
if (($16 | 0) >= 1) {
$30 = $13 << 16 >> 16;
$25 = HEAP16[(($23 << 1 & -4) + ($22 << 1) | 0) + 5840 >> 1];
$41 = $25 + 944 | 0;
$46 = Math_imul($30, $41 << 16 >> 16);
$47 = $25 - 944 | 0;
$61 = Math_imul(0 - ($47 << 16) >> 16, $30);
$48 = ($19 & 255) == 4;
$62 = $48 ? 3 : 1;
$63 = $25 - 80 | 0;
$64 = $1 + 3900 | 0;
$16 = $13 >>> 1 | 0;
$65 = 512 - $16 | 0;
$42 = $16 - 512 | 0;
$49 = $14 << 16 >> 16;
$43 = ($18 << 1) + $1 | 0;
$44 = Math_imul($25, $30);
$66 = ($13 | 0) < 2049;
$28 = $1 + 3840 | 0;
$67 = $28;
while (1) {
$22 = $24 << 2;
$29 = HEAP32[$22 + $8 >> 2];
HEAP32[$1 + 4348 >> 2] = 0;
$19 = 1;
$21 = (($24 >>> 1 | $48) << 5) + $5 | 0;
label$6 : {
if (($23 & 255) != 2) {
break label$6;
}
$23 = 2;
$32 = HEAP32[($24 << 2) + $12 >> 2];
if ($24 & $62) {
break label$6;
}
$18 = HEAP32[$0 + 4592 >> 2];
$13 = HEAP32[$0 + 4640 >> 2];
$16 = ($18 - $32 | 0) - $13 | 0;
if (($16 | 0) <= 2) {
break label$3;
}
$16 = $16 - 2 | 0;
silk_LPC_analysis_filter(($16 << 1) + $39 | 0, (Math_imul($15, $24) + $16 << 1) + $1 | 0, $21, $18 - $16 | 0, $13, HEAP32[$0 + 5092 >> 2]);
HEAP32[$1 + 4348 >> 2] = 1;
HEAP32[$1 + 4332 >> 2] = HEAP32[$0 + 4592 >> 2];
$23 = HEAPU8[$2 + 29 | 0];
$19 = 0;
}
$20 = $11 + $22 | 0;
$14 = HEAP32[$20 >> 2];
$16 = ($14 | 0) > 1 ? $14 : 1;
$13 = Math_clz32($16);
$15 = $16 << $13 - 1;
$18 = $15 >> 16;
$17 = 536870911 / ($18 | 0) | 0;
$35 = ($17 >> 15) + 1 >> 1;
$26 = $15 & 65535;
$17 = $17 << 16;
$15 = $17 >> 16;
$18 = 0 - ((Math_imul($26, $15) >> 16) + Math_imul($15, $18) << 3) | 0;
$15 = ((Math_imul($18, $35) + $17 | 0) + Math_imul($18 >> 16, $15) | 0) + (Math_imul($18 & 65528, $15) >> 16) | 0;
$18 = 15 - $13 | 0;
$27 = HEAP32[$12 + $22 >> 2];
label$7 : {
if ($16 >>> 0 <= 131071) {
$16 = 0 - $18 | 0;
$18 = 2147483647 >>> $16 | 0;
$13 = -2147483648 >> $16;
$17 = (($15 | 0) > ($18 | 0) ? $18 : ($13 | 0) > ($15 | 0) ? $13 : $15) << $16;
break label$7;
}
$17 = $15 >> $18;
}
$33 = HEAP32[$0 + 4588 >> 2];
if (($33 | 0) >= 1) {
$15 = ($17 >> 4) + 1 | 0;
$18 = $15 << 15 >> 16;
$13 = ($15 >> 16) + 1 >> 1;
$15 = 0;
while (1) {
$16 = HEAP16[($15 << 1) + $3 >> 1];
HEAP32[($15 << 2) + $40 >> 2] = (Math_imul($16 >> 16, $18) + Math_imul($13, $16) | 0) + (Math_imul($16 & 65535, $18) >> 16);
$15 = $15 + 1 | 0;
if (($33 | 0) != ($15 | 0)) {
continue;
}
break;
}
}
label$11 : {
if ($19) {
break label$11;
}
$17 = $24 ? $17 : Math_imul($17 >> 16, $49) + (Math_imul($17 & 65535, $49) >> 16) << 2;
$18 = HEAP32[$1 + 4332 >> 2];
$15 = ($18 - $27 | 0) - 2 | 0;
if (($15 | 0) >= ($18 | 0)) {
break label$11;
}
$13 = $17 & 65535;
$17 = $17 >> 16;
while (1) {
$16 = HEAP16[($15 << 1) + $39 >> 1];
HEAP32[($15 << 2) + $34 >> 2] = (Math_imul($16, $13) >> 16) + Math_imul($16, $17);
$15 = $15 + 1 | 0;
if (($18 | 0) != ($15 | 0)) {
continue;
}
break;
}
}
$15 = HEAP32[$1 + 4344 >> 2];
if (($15 | 0) != ($14 | 0)) {
$16 = $15 >> 31;
$18 = Math_clz32($16 ^ $15 + $16);
$16 = $15 << $18 - 1;
$35 = $16;
$15 = $14 >> 31;
$13 = Math_clz32($15 ^ $14 + $15);
$17 = $14 << $13 - 1;
$15 = 536870911 / ($17 >> 16) << 16 >> 16;
$16 = (Math_imul($15, $16 & 65535) >> 16) + Math_imul($16 >> 16, $15) | 0;
$19 = $16 >> 31;
$26 = $19;
$19 = $17 >> 31;
$14 = $19;
$19 = $26;
$14 = __wasm_i64_mul($16, $19, $17, $14);
$17 = $14;
$19 = i64toi32_i32$HIGH_BITS;
$17 = $35 - ((($19 & 536870911) << 3 | $17 >>> 29) & -8) | 0;
$15 = (Math_imul($17 >> 16, $15) + $16 | 0) + (Math_imul($17 & 65535, $15) >> 16) | 0;
$16 = $18 - $13 | 0;
$18 = $16 + 13 | 0;
$16 = $16 + 29 | 0;
label$15 : {
if (($16 | 0) <= 15) {
$16 = 0 - $18 | 0;
$18 = 2147483647 >>> $16 | 0;
$13 = -2147483648 >> $16;
$18 = (($15 | 0) > ($18 | 0) ? $18 : ($13 | 0) > ($15 | 0) ? $13 : $15) << $16;
break label$15;
}
$18 = ($16 | 0) < 48 ? $15 >> $18 : 0;
}
$15 = HEAP32[$0 + 4592 >> 2];
if (($15 | 0) >= 1) {
$17 = $18 & 65535;
$14 = $18 >> 16;
$15 = HEAP32[$1 + 4336 >> 2] - $15 | 0;
while (1) {
$16 = (($15 << 2) + $1 | 0) + 1280 | 0;
$19 = $16;
$16 = HEAP32[$16 >> 2];
$13 = $16 << 16 >> 16;
HEAP32[$19 >> 2] = ((Math_imul($17, $13) >> 16) + Math_imul($13, $14) | 0) + Math_imul(($16 >> 15) + 1 >> 1, $18);
$15 = $15 + 1 | 0;
if (($15 | 0) < HEAP32[$1 + 4336 >> 2]) {
continue;
}
break;
}
}
label$19 : {
if (HEAP32[$1 + 4348 >> 2] | ($23 & 255) != 2) {
break label$19;
}
$17 = HEAP32[$1 + 4332 >> 2];
$15 = ($17 - $27 | 0) - 2 | 0;
if (($15 | 0) >= ($17 | 0)) {
break label$19;
}
$14 = $18 & 65535;
$19 = $18 >> 16;
while (1) {
$16 = ($15 << 2) + $34 | 0;
$26 = $16;
$16 = HEAP32[$16 >> 2];
$13 = $16 << 16 >> 16;
HEAP32[$26 >> 2] = ((Math_imul($14, $13) >> 16) + Math_imul($13, $19) | 0) + Math_imul(($16 >> 15) + 1 >> 1, $18);
$15 = $15 + 1 | 0;
if (($17 | 0) != ($15 | 0)) {
continue;
}
break;
}
}
$13 = $18 & 65535;
$15 = HEAP32[$1 + 4320 >> 2];
$16 = $15 << 16 >> 16;
$17 = $18 >> 16;
HEAP32[$1 + 4320 >> 2] = ((Math_imul($13, $16) >> 16) + Math_imul($17, $16) | 0) + Math_imul(($15 >> 15) + 1 >> 1, $18);
$15 = HEAP32[$1 + 4324 >> 2];
$16 = $15 << 16 >> 16;
HEAP32[$1 + 4324 >> 2] = ((Math_imul($16, $13) >> 16) + Math_imul($16, $17) | 0) + Math_imul(($15 >> 15) + 1 >> 1, $18);
$15 = 0;
$16 = 0;
while (1) {
$14 = (($16 << 2) + $1 | 0) + 3840 | 0;
$26 = $14;
$14 = HEAP32[$14 >> 2];
$19 = $14 << 16 >> 16;
HEAP32[$26 >> 2] = ((Math_imul($19, $13) >> 16) + Math_imul($17, $19) | 0) + Math_imul(($14 >> 15) + 1 >> 1, $18);
$16 = $16 + 1 | 0;
if (($16 | 0) != 16) {
continue;
}
break;
}
while (1) {
$16 = (($15 << 2) + $1 | 0) + 4224 | 0;
$19 = $16;
$16 = HEAP32[$16 >> 2];
$14 = $16 << 16 >> 16;
HEAP32[$19 >> 2] = ((Math_imul($14, $13) >> 16) + Math_imul($14, $17) | 0) + Math_imul(($16 >> 15) + 1 >> 1, $18);
$15 = $15 + 1 | 0;
if (($15 | 0) != 24) {
continue;
}
break;
}
HEAP32[$1 + 4344 >> 2] = HEAP32[$20 >> 2];
$33 = HEAP32[$0 + 4588 >> 2];
$14 = HEAP32[$20 >> 2];
}
if (($33 | 0) >= 1) {
$36 = Math_imul($24, 10) + $6 | 0;
$27 = 0;
$50 = ($23 & 255) != 2;
$68 = $50 | ($32 | 0) > 0;
$15 = $29 >> 2;
$51 = ($15 | $29 << 15) >> 16;
$16 = HEAP32[$10 + $22 >> 2];
$52 = $16 >> 16;
$29 = HEAP32[$0 + 4636 >> 2];
$69 = $29 >> 1;
$70 = $29 & 1;
$53 = HEAP32[$0 + 4640 >> 2];
$71 = $53 >> 1;
$54 = $14 << 10 >> 16;
$55 = $15 << 16 >> 16;
$56 = $16 << 16 >> 16;
$72 = ($14 >> 21) + 1 >> 1;
$14 = Math_imul($24, 48) + $7 | 0;
$15 = $29 - 1 | 0;
$35 = $14 + ($15 << 1) | 0;
$26 = (($15 << 2) + $1 | 0) + 4224 | 0;
$37 = ((HEAP32[$1 + 4336 >> 2] - $32 << 2) + $1 | 0) + 1284 | 0;
$31 = ((HEAP32[$1 + 4332 >> 2] - $32 << 2) + $34 | 0) + 8 | 0;
$57 = HEAP16[$9 + $22 >> 1];
$15 = HEAP32[$1 + 4340 >> 2];
$20 = $64;
while (1) {
HEAP32[$1 + 4340 >> 2] = Math_imul($15, 196314165) + 907633515;
$16 = HEAP16[$21 >> 1];
$15 = HEAP32[$20 >> 2];
$13 = (Math_imul($16, $15 >> 16) + $71 | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 2 >> 1];
$15 = HEAP32[$20 - 4 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 4 >> 1];
$15 = HEAP32[$20 - 8 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 6 >> 1];
$15 = HEAP32[$20 - 12 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 8 >> 1];
$15 = HEAP32[$20 - 16 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 10 >> 1];
$15 = HEAP32[$20 - 20 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 12 >> 1];
$15 = HEAP32[$20 - 24 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 14 >> 1];
$15 = HEAP32[$20 - 28 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 16 >> 1];
$15 = HEAP32[$20 - 32 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 18 >> 1];
$15 = HEAP32[$20 - 36 >> 2];
$38 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
if (($53 | 0) == 16) {
$16 = HEAP16[$21 + 20 >> 1];
$15 = HEAP32[$20 - 40 >> 2];
$13 = (Math_imul($16, $15 >> 16) + $38 | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 22 >> 1];
$15 = HEAP32[$20 - 44 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 24 >> 1];
$15 = HEAP32[$20 - 48 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 26 >> 1];
$15 = HEAP32[$20 - 52 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 28 >> 1];
$15 = HEAP32[$20 - 56 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$21 + 30 >> 1];
$15 = HEAP32[$20 - 60 >> 2];
$38 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
}
$45 = 0;
if (!$50) {
$16 = HEAP16[$36 >> 1];
$15 = HEAP32[$31 >> 2];
$13 = Math_imul($16, $15 >> 16) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$36 + 2 >> 1];
$15 = HEAP32[$31 - 4 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$36 + 4 >> 1];
$15 = HEAP32[$31 - 8 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$36 + 6 >> 1];
$15 = HEAP32[$31 - 12 >> 2];
$13 = ($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0;
$16 = HEAP16[$36 + 8 >> 1];
$15 = HEAP32[$31 - 16 >> 2];
$45 = (($13 + Math_imul($16, $15 >> 16) | 0) + (Math_imul($15 & 65535, $16) >> 16) | 0) + 2 | 0;
$31 = $31 + 4 | 0;
}
if ($70) {
break label$2;
}
$16 = HEAP32[$1 + 4224 >> 2];
$15 = HEAP32[$1 + 4324 >> 2];
HEAP32[$1 + 4224 >> 2] = $15;
$18 = HEAP16[$14 >> 1];
$17 = (Math_imul($18, $15 >> 16) + $69 | 0) + (Math_imul($15 & 65535, $18) >> 16) | 0;
$15 = 2;
if (($29 | 0) >= 3) {
while (1) {
$13 = $1 + 4224 | 0;
$19 = $15 - 1 | 0;
$22 = $13 + ($19 << 2) | 0;
$18 = HEAP32[$22 >> 2];
HEAP32[$22 >> 2] = $16;
$22 = ($15 << 2) + $13 | 0;
$23 = HEAP32[$22 >> 2];
$13 = HEAP16[($19 << 1) + $14 >> 1];
HEAP32[$22 >> 2] = $18;
$13 = (Math_imul($16 >> 16, $13) + $17 | 0) + (Math_imul($16 & 65535, $13) >> 16) | 0;
$16 = HEAP16[($15 << 1) + $14 >> 1];
$17 = ($13 + Math_imul($16, $18 >> 16) | 0) + (Math_imul($18 & 65535, $16) >> 16) | 0;
$16 = $23;
$15 = $15 + 2 | 0;
if (($29 | 0) > ($15 | 0)) {
continue;
}
break;
}
}
HEAP32[$26 >> 2] = $16;
if (!$68) {
break label$1;
}
$15 = HEAP32[$1 + 4320 >> 2];
$18 = $15 & 65535;
$15 = $15 >> 16;
$13 = HEAP16[$35 >> 1];
$22 = ((Math_imul($57, $18) >> 16) + Math_imul($57, $15) | 0) + ((Math_imul($13, $16 >> 16) + $17 | 0) + (Math_imul($16 & 65535, $13) >> 16) << 1) | 0;
$13 = Math_imul($15, $52) + (Math_imul($18, $52) >> 16) | 0;
$15 = HEAP32[((HEAP32[$1 + 4336 >> 2] << 2) + $1 | 0) + 1276 >> 2];
$23 = ($13 + Math_imul($15 >> 16, $56) | 0) + (Math_imul($15 & 65535, $56) >> 16) | 0;
$15 = (($38 << 2) - $22 | 0) - $23 | 0;
label$29 : {
if (($32 | 0) >= 1) {
$13 = ($15 << 1) + $45 | 0;
$15 = HEAP32[$37 - 4 >> 2];
$16 = HEAP32[$37 - 8 >> 2] + HEAP32[$37 >> 2] | 0;
$15 = $13 - (((Math_imul($15 >> 16, $51) + Math_imul($16 >> 16, $55) | 0) + (Math_imul($16 & 65535, $55) >> 16) | 0) + (Math_imul($15 & 65535, $51) >> 16) << 1) >> 2;
$37 = $37 + 4 | 0;
break label$29;
}
$15 = $15 >> 1;
}
label$31 : {
label$32 : {
label$33 : {
label$34 : {
$58 = ($27 << 2) + $40 | 0;
$15 = HEAP32[$58 >> 2] - ($15 + 1 >> 1) | 0;
$15 = HEAP32[$1 + 4340 >> 2] < 0 ? 0 - $15 | 0 : $15;
$15 = ($15 | 0) > -31744 ? $15 : -31744;
$13 = ($15 | 0) < 30720 ? $15 : 30720;
$15 = $13 - $25 | 0;
$16 = $15;
label$35 : {
if ($66) {
break label$35;
}
$16 = $15 - $42 | 0;
if (($15 | 0) > ($42 | 0)) {
break label$35;
}
if (($15 | 0) >= ($65 | 0)) {
break label$34;
}
$16 = $15 + $42 | 0;
}
$15 = $16;
if (($15 | 0) >= 1024) {
$16 = ($15 & -1024) + $63 | 0;
$17 = Math_imul($16 << 16 >> 16, $30);
$18 = $16 + 1024 | 0;
$19 = Math_imul($18 << 16 >> 16, $30);
break label$31;
}
$16 = $25;
$18 = $41;
$17 = $44;
$19 = $46;
switch (($15 >> 10) + 1 | 0) {
case 1:
break label$31;
case 0:
break label$33;
default:
break label$32;
}
}
$16 = $25;
$18 = $41;
$17 = $44;
$19 = $46;
if (($15 | 0) >= 0) {
break label$31;
}
}
$16 = $47;
$18 = $25;
$17 = $61;
$19 = $44;
break label$31;
}
$16 = ($15 & -1024 | 80) + $25 | 0;
$17 = Math_imul(0 - ($16 << 16) >> 16, $30);
$18 = $16 + 1024 | 0;
$19 = Math_imul(0 - ($18 << 16) >> 16, $30);
}
$59 = $4 + $27 | 0;
$15 = $13 - $18 << 16 >> 16;
$19 = Math_imul($15, $15) + $19 | 0;
$15 = $13 - $16 << 16 >> 16;
$15 = ($19 | 0) < (Math_imul($15, $15) + $17 | 0) ? $18 : $16;
HEAP8[$59 | 0] = ($15 >>> 9 | 0) + 1 >>> 1;
$15 = $15 << 4;
$18 = ($45 << 1) + (HEAP32[$1 + 4340 >> 2] < 0 ? 0 - $15 | 0 : $15) | 0;
$15 = $18 + ($38 << 4) | 0;
$16 = (Math_imul($15 >> 16, $54) + Math_imul($15, $72) | 0) + (Math_imul($15 & 65534, $54) >> 16) | 0;
HEAP16[($27 << 1) + $43 >> 1] = ($16 | 0) > 8388479 ? 32767 : ($16 | 0) < -8388736 ? -32768 : ($16 >>> 7 | 0) + 1 >>> 1 | 0;
HEAP32[$20 + 4 >> 2] = $15;
$15 = $15 - (HEAP32[$58 >> 2] << 4) | 0;
HEAP32[$1 + 4324 >> 2] = $15;
$15 = $15 - ($22 << 2) | 0;
HEAP32[$1 + 4320 >> 2] = $15;
HEAP32[((HEAP32[$1 + 4336 >> 2] << 2) + $1 | 0) + 1280 >> 2] = $15 - ($23 << 2);
$15 = HEAP32[$1 + 4332 >> 2];
HEAP32[($15 << 2) + $34 >> 2] = $18 << 1;
HEAP32[$1 + 4332 >> 2] = $15 + 1;
HEAP32[$1 + 4336 >> 2] = HEAP32[$1 + 4336 >> 2] + 1;
$15 = HEAP32[$1 + 4340 >> 2] + HEAP8[$59 | 0] | 0;
HEAP32[$1 + 4340 >> 2] = $15;
$20 = $20 + 4 | 0;
$27 = $27 + 1 | 0;
if (($33 | 0) != ($27 | 0)) {
continue;
}
break;
}
}
$15 = ($33 << 2) + $1 | 0;
$19 = $15 + 3896 | 0;
$14 = HEAP32[$19 >> 2];
$17 = HEAP32[$19 + 4 >> 2];
$13 = $14;
$14 = $67;
HEAP32[$14 + 56 >> 2] = $13;
HEAP32[$14 + 60 >> 2] = $17;
$19 = $15 + 3888 | 0;
$17 = HEAP32[$19 >> 2];
$14 = HEAP32[$19 + 4 >> 2];
$13 = $17;
$17 = $28;
HEAP32[$17 + 48 >> 2] = $13;
HEAP32[$17 + 52 >> 2] = $14;
$19 = $15 + 3880 | 0;
$14 = HEAP32[$19 >> 2];
$17 = HEAP32[$19 + 4 >> 2];
$13 = $14;
$14 = $28;
HEAP32[$14 + 40 >> 2] = $13;
HEAP32[$14 + 44 >> 2] = $17;
$19 = $15 + 3872 | 0;
$17 = HEAP32[$19 >> 2];
$14 = HEAP32[$19 + 4 >> 2];
$13 = $17;
$17 = $28;
HEAP32[$17 + 32 >> 2] = $13;
HEAP32[$17 + 36 >> 2] = $14;
$19 = $15 + 3864 | 0;
$14 = HEAP32[$19 >> 2];
$17 = HEAP32[$19 + 4 >> 2];
$13 = $14;
$14 = $28;
HEAP32[$14 + 24 >> 2] = $13;
HEAP32[$14 + 28 >> 2] = $17;
$19 = $15 + 3856 | 0;
$17 = HEAP32[$19 >> 2];
$14 = HEAP32[$19 + 4 >> 2];
$13 = $17;
$17 = $28;
HEAP32[$17 + 16 >> 2] = $13;
HEAP32[$17 + 20 >> 2] = $14;
$19 = $15 + 3848 | 0;
$14 = HEAP32[$19 >> 2];
$17 = HEAP32[$19 + 4 >> 2];
$13 = $14;
$14 = $28;
HEAP32[$14 + 8 >> 2] = $13;
HEAP32[$14 + 12 >> 2] = $17;
$19 = $15 + 3840 | 0;
$17 = HEAP32[$19 >> 2];
$14 = HEAP32[$19 + 4 >> 2];
$13 = $17;
$17 = $28;
HEAP32[$17 >> 2] = $13;
HEAP32[$17 + 4 >> 2] = $14;
$16 = HEAP32[$0 + 4580 >> 2];
$24 = $24 + 1 | 0;
if (($16 | 0) > ($24 | 0)) {
$15 = HEAP32[$0 + 4588 >> 2];
$4 = $15 + $4 | 0;
$16 = $15 << 1;
$3 = $16 + $3 | 0;
$43 = $16 + $43 | 0;
$23 = HEAPU8[$2 + 29 | 0];
continue;
}
break;
}
$17 = HEAP32[$0 + 4584 >> 2];
$18 = HEAP32[$0 + 4592 >> 2];
}
HEAP32[$1 + 4328 >> 2] = HEAP32[(($16 << 2) + $12 | 0) - 4 >> 2];
$15 = memmove($1, ($17 << 1) + $1 | 0, $18 << 1) + 1280 | 0;
memmove($15, (HEAP32[$0 + 4584 >> 2] << 2) + $15 | 0, HEAP32[$0 + 4592 >> 2] << 2);
__stack_pointer = $60;
return;
}
celt_fatal(16318, 16350, 146);
abort();
}
celt_fatal(16361, 16350, 250);
abort();
}
celt_fatal(16408, 16350, 258);
abort();
}
function silk_encode_frame_FLP($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 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, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = Math_fround(0), $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
$9 = __stack_pointer - 13584 | 0;
__stack_pointer = $9;
HEAP32[$9 + 40 >> 2] = 0;
HEAP32[$9 + 44 >> 2] = 0;
HEAP32[$9 + 32 >> 2] = 0;
HEAP32[$9 + 36 >> 2] = 0;
$10 = HEAP32[$0 + 4620 >> 2];
HEAP8[$0 + 4770 | 0] = $10 & 3;
HEAP32[$0 + 4620 >> 2] = $10 + 1;
$10 = HEAP32[$0 + 4592 >> 2];
silk_LP_variable_cutoff($0 + 16 | 0, $0 + 5098 | 0, HEAP32[$0 + 4584 >> 2]);
$14 = $10 << 2;
$28 = $0 + 7180 | 0;
$15 = $14 + $28 | 0;
$11 = Math_imul(HEAP32[$0 + 4576 >> 2], 5);
$12 = $15 + ($11 << 2) | 0;
$13 = HEAP32[$0 + 4584 >> 2];
if (($13 | 0) >= 1) {
$10 = $13;
while (1) {
$6 = $10 - 1 | 0;
HEAPF32[($6 << 2) + $12 >> 2] = HEAP16[(($10 << 1) + $0 | 0) + 5096 >> 1];
$7 = ($10 | 0) > 1;
$10 = $6;
if ($7) {
continue;
}
break;
}
}
HEAPF32[$12 >> 2] = HEAPF32[$12 >> 2] + Math_fround(9.999999974752427e-7);
$10 = $13 >> 3;
$6 = ($11 + $10 << 2) + $15 | 0;
HEAPF32[$6 >> 2] = HEAPF32[$6 >> 2] + Math_fround(9.999999974752427e-7);
$6 = (($10 << 1) + $11 << 2) + $15 | 0;
HEAPF32[$6 >> 2] = HEAPF32[$6 >> 2] + Math_fround(-9.999999974752427e-7);
$6 = (Math_imul($10, 3) + $11 << 2) + $15 | 0;
HEAPF32[$6 >> 2] = HEAPF32[$6 >> 2] + Math_fround(-9.999999974752427e-7);
$6 = (($10 << 2) + $11 << 2) + $15 | 0;
HEAPF32[$6 >> 2] = HEAPF32[$6 >> 2] + Math_fround(9.999999974752427e-7);
$6 = (Math_imul($10, 5) + $11 << 2) + $15 | 0;
HEAPF32[$6 >> 2] = HEAPF32[$6 >> 2] + Math_fround(9.999999974752427e-7);
$6 = (Math_imul($10, 6) + $11 << 2) + $15 | 0;
HEAPF32[$6 >> 2] = HEAPF32[$6 >> 2] + Math_fround(-9.999999974752427e-7);
$10 = (Math_imul($10, 7) + $11 << 2) + $15 | 0;
HEAPF32[$10 >> 2] = HEAPF32[$10 >> 2] + Math_fround(-9.999999974752427e-7);
label$3 : {
if (HEAP32[$0 + 4680 >> 2]) {
break label$3;
}
$20 = $0 + 4736 | 0;
silk_find_pitch_lags_FLP($0, $9 + 8480 | 0, $9 + 5792 | 0, $15, HEAP32[$0 + 5092 >> 2]);
$10 = ($9 + 5792 | 0) + $14 | 0;
silk_noise_shape_analysis_FLP($0, $9 + 8480 | 0, $10, $15);
silk_find_pred_coefs_FLP($0, $9 + 8480 | 0, $10, $15, $3);
silk_process_gains_FLP($0, $9 + 8480 | 0, $3);
if (!(!HEAP32[$0 + 6092 >> 2] | HEAP32[$0 + 4532 >> 2] < 78)) {
$10 = HEAP32[$0 + 5748 >> 2];
HEAP32[(($10 << 2) + $0 | 0) + 4724 >> 2] = 1;
memcpy($9 + 9232 | 0, $0 + 148 | 0, 4352);
$12 = (Math_imul($10, 36) + $0 | 0) + 6100 | 0;
$7 = $0 + 4768 | 0;
$7 = HEAPU16[$7 >> 1] | HEAPU16[$7 + 2 >> 1] << 16;
HEAP16[$12 + 32 >> 1] = $7;
HEAP16[$12 + 34 >> 1] = $7 >>> 16;
$8 = $0 + 4760 | 0;
$6 = HEAPU16[$8 >> 1] | HEAPU16[$8 + 2 >> 1] << 16;
$7 = HEAPU16[$8 + 4 >> 1] | HEAPU16[$8 + 6 >> 1] << 16;
$8 = $6;
$6 = $12;
HEAP16[$6 + 24 >> 1] = $8;
HEAP16[$6 + 26 >> 1] = $8 >>> 16;
HEAP16[$6 + 28 >> 1] = $7;
HEAP16[$6 + 30 >> 1] = $7 >>> 16;
$8 = $0 + 4752 | 0;
$7 = HEAPU16[$8 >> 1] | HEAPU16[$8 + 2 >> 1] << 16;
$6 = HEAPU16[$8 + 4 >> 1] | HEAPU16[$8 + 6 >> 1] << 16;
$8 = $7;
$7 = $12;
HEAP16[$7 + 16 >> 1] = $8;
HEAP16[$7 + 18 >> 1] = $8 >>> 16;
HEAP16[$7 + 20 >> 1] = $6;
HEAP16[$7 + 22 >> 1] = $6 >>> 16;
$8 = $0 + 4744 | 0;
$6 = HEAPU16[$8 >> 1] | HEAPU16[$8 + 2 >> 1] << 16;
$7 = HEAPU16[$8 + 4 >> 1] | HEAPU16[$8 + 6 >> 1] << 16;
$8 = $6;
$6 = $12;
HEAP16[$6 + 8 >> 1] = $8;
HEAP16[$6 + 10 >> 1] = $8 >>> 16;
HEAP16[$6 + 12 >> 1] = $7;
HEAP16[$6 + 14 >> 1] = $7 >>> 16;
$6 = HEAPU16[$0 + 4740 >> 1] | HEAPU16[$0 + 4742 >> 1] << 16;
$7 = HEAPU16[$0 + 4736 >> 1] | HEAPU16[$0 + 4738 >> 1] << 16;
$8 = $7;
$7 = $12;
HEAP16[$7 >> 1] = $8;
HEAP16[$7 + 2 >> 1] = $8 >>> 16;
HEAP16[$7 + 4 >> 1] = $6;
HEAP16[$7 + 6 >> 1] = $6 >>> 16;
$10 = HEAP32[$0 + 4580 >> 2];
memcpy($9 + 48 | 0, $9 + 8480 | 0, $10 << 2);
$8 = $9 + 1344 | 0;
$11 = $0 + 4540 | 0;
$14 = ($3 | 0) == 2;
$6 = HEAP32[$0 + 5748 >> 2];
if (!(HEAP32[(($6 << 2) + $0 | 0) + 4720 >> 2] ? $6 : 0)) {
HEAP8[$0 + 4540 | 0] = HEAPU8[$0 + 7168 | 0];
$10 = HEAPU8[$12 | 0] + HEAPU8[$0 + 6096 | 0] | 0;
HEAP8[$12 | 0] = $10 << 24 >> 24 < 63 ? $10 : 63;
$10 = HEAP32[$0 + 4580 >> 2];
}
silk_gains_dequant($8, $7, $11, $14, $10);
$7 = HEAP32[$0 + 4580 >> 2];
if (($7 | 0) >= 1) {
$10 = 0;
while (1) {
$6 = $10 << 2;
HEAPF32[$6 + ($9 + 8480 | 0) >> 2] = Math_fround(HEAP32[($9 + 1344 | 0) + $6 >> 2]) * Math_fround(152587890625e-16);
$10 = $10 + 1 | 0;
if (($7 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
silk_NSQ_wrapper_FLP($0, $9 + 8480 | 0, $12, $9 + 9232 | 0, (Math_imul(HEAP32[$0 + 5748 >> 2], 320) + $0 | 0) + 6208 | 0, $15);
memcpy($9 + 8480 | 0, $9 + 48 | 0, HEAP32[$0 + 4580 >> 2] << 2);
}
$16 = silk_gains_ID($20, HEAP32[$0 + 4580 >> 2]);
$8 = $2;
$6 = HEAP32[$8 + 40 >> 2];
$7 = HEAP32[$8 + 44 >> 2];
$11 = $6;
$29 = $9 + 5784 | 0;
$6 = $29;
HEAP32[$6 >> 2] = $11;
HEAP32[$6 + 4 >> 2] = $7;
$6 = HEAP32[$8 + 36 >> 2];
$7 = HEAP32[$8 + 32 >> 2];
$11 = $7;
$30 = $9 + 5776 | 0;
$7 = $30;
HEAP32[$7 >> 2] = $11;
HEAP32[$7 + 4 >> 2] = $6;
$7 = HEAP32[$8 + 28 >> 2];
$6 = HEAP32[$8 + 24 >> 2];
$11 = $6;
$31 = $9 + 5768 | 0;
$6 = $31;
HEAP32[$6 >> 2] = $11;
HEAP32[$6 + 4 >> 2] = $7;
$6 = HEAP32[$8 + 20 >> 2];
$7 = HEAP32[$8 + 16 >> 2];
$11 = $7;
$32 = $9 + 5760 | 0;
$7 = $32;
HEAP32[$7 >> 2] = $11;
HEAP32[$7 + 4 >> 2] = $6;
$7 = HEAP32[$8 + 12 >> 2];
$6 = HEAP32[$8 + 8 >> 2];
$11 = $6;
$33 = $9 + 5752 | 0;
$6 = $33;
HEAP32[$6 >> 2] = $11;
HEAP32[$6 + 4 >> 2] = $7;
$6 = HEAP32[$8 + 4 >> 2];
$7 = HEAP32[$8 >> 2];
HEAP32[$9 + 5744 >> 2] = $7;
HEAP32[$9 + 5748 >> 2] = $6;
$21 = $0 + 148 | 0;
memcpy($9 + 9232 | 0, $21, 4352);
$41 = $0 + 4736 | 0;
$34 = ($3 | 0) == 2;
$42 = $4 - 5 | 0;
$26 = $0 + 7168 | 0;
$24 = $0 + 4772 | 0;
$35 = HEAP32[$0 + 5768 >> 2];
$36 = HEAPU16[$0 + 5772 >> 1];
$43 = HEAPU8[$0 + 4770 | 0];
$13 = 256;
$27 = -1;
$14 = -1;
while (1) {
$10 = ($16 | 0) == ($27 | 0);
label$10 : {
if ($10) {
$11 = $25;
break label$10;
}
if (($14 | 0) == ($16 | 0)) {
$11 = $22;
break label$10;
}
if ($17) {
$7 = HEAP32[$9 + 5748 >> 2];
$6 = HEAP32[$9 + 5744 >> 2];
$8 = $6;
$6 = $2;
HEAP32[$6 >> 2] = $8;
HEAP32[$6 + 4 >> 2] = $7;
$8 = $29;
$7 = HEAP32[$8 >> 2];
$6 = HEAP32[$8 + 4 >> 2];
$8 = $7;
$7 = $2;
HEAP32[$7 + 40 >> 2] = $8;
HEAP32[$7 + 44 >> 2] = $6;
$8 = $30;
$6 = HEAP32[$8 >> 2];
$7 = HEAP32[$8 + 4 >> 2];
$8 = $6;
$6 = $2;
HEAP32[$6 + 32 >> 2] = $8;
HEAP32[$6 + 36 >> 2] = $7;
$8 = $31;
$7 = HEAP32[$8 >> 2];
$6 = HEAP32[$8 + 4 >> 2];
$8 = $7;
$7 = $2;
HEAP32[$7 + 24 >> 2] = $8;
HEAP32[$7 + 28 >> 2] = $6;
$8 = $32;
$6 = HEAP32[$8 >> 2];
$7 = HEAP32[$8 + 4 >> 2];
$8 = $6;
$6 = $2;
HEAP32[$6 + 16 >> 2] = $8;
HEAP32[$6 + 20 >> 2] = $7;
$8 = $33;
$7 = HEAP32[$8 >> 2];
$6 = HEAP32[$8 + 4 >> 2];
$8 = $7;
$7 = $2;
HEAP32[$7 + 8 >> 2] = $8;
HEAP32[$7 + 12 >> 2] = $6;
memcpy($21, $9 + 9232 | 0, 4352);
HEAP16[$0 + 5772 >> 1] = $36;
HEAP8[$0 + 4770 | 0] = $43;
HEAP32[$0 + 5768 >> 2] = $35;
}
silk_NSQ_wrapper_FLP($0, $9 + 8480 | 0, $20, $21, $24, $15);
if (!(($17 | 0) != 6 | $19)) {
$8 = $2;
$6 = HEAP32[$8 + 16 >> 2];
$7 = HEAP32[$8 + 20 >> 2];
$11 = $6;
$6 = $9 + 5736 | 0;
HEAP32[$6 >> 2] = $11;
HEAP32[$6 + 4 >> 2] = $7;
$6 = HEAP32[$8 + 12 >> 2];
$7 = HEAP32[$8 + 8 >> 2];
$11 = $7;
$7 = $9 + 5728 | 0;
HEAP32[$7 >> 2] = $11;
HEAP32[$7 + 4 >> 2] = $6;
$7 = HEAP32[$8 + 4 >> 2];
$6 = HEAP32[$8 >> 2];
HEAP32[$9 + 5720 >> 2] = $6;
HEAP32[$9 + 5724 >> 2] = $7;
$18 = HEAP32[$8 + 24 >> 2];
$6 = HEAP32[$8 + 40 >> 2];
$7 = HEAP32[$8 + 36 >> 2];
$11 = $7;
$7 = $9 + 5704 | 0;
HEAP32[$7 >> 2] = $11;
HEAP32[$7 + 4 >> 2] = $6;
HEAP32[$9 + 5712 >> 2] = HEAP32[$8 + 44 >> 2];
$7 = HEAP32[$8 + 32 >> 2];
$6 = HEAP32[$8 + 28 >> 2];
HEAP32[$9 + 5696 >> 2] = $6;
HEAP32[$9 + 5700 >> 2] = $7;
}
silk_encode_indices($0, $2, HEAP32[$0 + 5748 >> 2], 0, $3);
silk_encode_pulses($2, HEAP8[$0 + 4765 | 0], HEAP8[$0 + 4766 | 0], $24, HEAP32[$0 + 4584 >> 2]);
$11 = (HEAP32[$2 + 20 >> 2] + Math_clz32(HEAP32[$2 + 28 >> 2]) | 0) - 32 | 0;
if (!($19 | ($11 | 0) <= ($4 | 0) | ($17 | 0) != 6)) {
$6 = HEAP32[$9 + 5724 >> 2];
$7 = HEAP32[$9 + 5720 >> 2];
$8 = $7;
$7 = $2;
HEAP32[$7 >> 2] = $8;
HEAP32[$7 + 4 >> 2] = $6;
$8 = $9 + 5736 | 0;
$6 = HEAP32[$8 >> 2];
$7 = HEAP32[$8 + 4 >> 2];
$8 = $6;
$6 = $2;
HEAP32[$6 + 16 >> 2] = $8;
HEAP32[$6 + 20 >> 2] = $7;
$8 = $9 + 5728 | 0;
$7 = HEAP32[$8 >> 2];
$6 = HEAP32[$8 + 4 >> 2];
$8 = $7;
$7 = $2;
HEAP32[$7 + 8 >> 2] = $8;
HEAP32[$7 + 12 >> 2] = $6;
HEAP32[$7 + 24 >> 2] = $18;
HEAP32[$7 + 44 >> 2] = HEAP32[$9 + 5712 >> 2];
$8 = $9 + 5704 | 0;
$6 = HEAP32[$8 >> 2];
$7 = HEAP32[$8 + 4 >> 2];
$8 = $6;
$6 = $2;
HEAP32[$6 + 36 >> 2] = $8;
HEAP32[$6 + 40 >> 2] = $7;
$6 = HEAP32[$9 + 5700 >> 2];
$7 = HEAP32[$9 + 5696 >> 2];
$8 = $7;
$7 = $2;
HEAP32[$7 + 28 >> 2] = $8;
HEAP32[$7 + 32 >> 2] = $6;
$7 = HEAPU8[$9 + 9224 | 0];
HEAP8[$0 + 7168 | 0] = $7;
$6 = HEAP32[$0 + 4580 >> 2];
if (($6 | 0) >= 1) {
memset($41, 4, $6);
}
if (!$34) {
HEAP8[$20 | 0] = $7;
}
HEAP32[$0 + 5768 >> 2] = $35;
HEAP16[$0 + 5772 >> 1] = $36;
$6 = HEAP32[$0 + 4584 >> 2];
if (($6 | 0) >= 1) {
memset($24, 0, $6);
}
silk_encode_indices($0, $2, HEAP32[$0 + 5748 >> 2], 0, $3);
silk_encode_pulses($2, HEAP8[$0 + 4765 | 0], HEAP8[$0 + 4766 | 0], $24, HEAP32[$0 + 4584 >> 2]);
$11 = (HEAP32[$2 + 20 >> 2] + Math_clz32(HEAP32[$2 + 28 >> 2]) | 0) - 32 | 0;
}
if ($5 | $17) {
break label$10;
}
if (($4 | 0) >= ($11 | 0)) {
break label$3;
}
}
label$19 : {
label$20 : {
label$21 : {
label$22 : {
label$23 : {
label$24 : {
if (($17 | 0) == 6) {
if (!$19 | !(($4 | 0) < ($11 | 0) | $10)) {
break label$3;
}
$7 = HEAP32[$9 + 5724 >> 2];
$6 = HEAP32[$9 + 5720 >> 2];
$3 = $6;
$6 = $2;
HEAP32[$6 >> 2] = $3;
HEAP32[$6 + 4 >> 2] = $7;
$8 = $9 + 5736 | 0;
$7 = HEAP32[$8 >> 2];
$6 = HEAP32[$8 + 4 >> 2];
$3 = $7;
$7 = $2;
HEAP32[$7 + 16 >> 2] = $3;
HEAP32[$7 + 20 >> 2] = $6;
$8 = $9 + 5728 | 0;
$6 = HEAP32[$8 >> 2];
$7 = HEAP32[$8 + 4 >> 2];
$3 = $6;
$6 = $2;
HEAP32[$6 + 8 >> 2] = $3;
HEAP32[$6 + 12 >> 2] = $7;
HEAP32[$6 + 24 >> 2] = $18;
HEAP32[$6 + 44 >> 2] = HEAP32[$9 + 5712 >> 2];
$8 = $9 + 5704 | 0;
$7 = HEAP32[$8 >> 2];
$6 = HEAP32[$8 + 4 >> 2];
$3 = $7;
$7 = $2;
HEAP32[$7 + 36 >> 2] = $3;
HEAP32[$7 + 40 >> 2] = $6;
$7 = HEAP32[$9 + 5700 >> 2];
$6 = HEAP32[$9 + 5696 >> 2];
$3 = $6;
$6 = $2;
HEAP32[$6 + 28 >> 2] = $3;
HEAP32[$6 + 32 >> 2] = $7;
if ($18 >>> 0 >= 1276) {
break label$24;
}
memcpy(HEAP32[$2 >> 2], $9 + 48 | 0, $18);
memcpy($21, $9 + 1344 | 0, 4352);
HEAP8[$26 | 0] = $44;
break label$3;
}
label$26 : {
label$27 : {
label$28 : {
label$29 : {
if (($4 | 0) < ($11 | 0)) {
if ($17 >>> 0 < 2 | $19) {
break label$29;
}
$37 = Math_fround(HEAPF32[$9 + 9172 >> 2] * Math_fround(1.5));
HEAPF32[$9 + 9172 >> 2] = $37 > Math_fround(1.5) ? $37 : Math_fround(1.5);
$38 = 0;
HEAP8[$0 + 4766 | 0] = 0;
$16 = -1;
break label$28;
}
if (($11 | 0) >= ($42 | 0)) {
break label$3;
}
if (!$10) {
$8 = $2;
$7 = HEAP32[$8 + 16 >> 2];
$6 = HEAP32[$8 + 20 >> 2];
$12 = $7;
$7 = $9 + 5736 | 0;
HEAP32[$7 >> 2] = $12;
HEAP32[$7 + 4 >> 2] = $6;
$7 = HEAP32[$8 + 12 >> 2];
$6 = HEAP32[$8 + 8 >> 2];
$12 = $6;
$6 = $9 + 5728 | 0;
HEAP32[$6 >> 2] = $12;
HEAP32[$6 + 4 >> 2] = $7;
$6 = HEAP32[$8 + 4 >> 2];
$7 = HEAP32[$8 >> 2];
HEAP32[$9 + 5720 >> 2] = $7;
HEAP32[$9 + 5724 >> 2] = $6;
$18 = HEAP32[$8 + 24 >> 2];
$7 = HEAP32[$8 + 40 >> 2];
$6 = HEAP32[$8 + 36 >> 2];
$12 = $6;
$6 = $9 + 5704 | 0;
HEAP32[$6 >> 2] = $12;
HEAP32[$6 + 4 >> 2] = $7;
HEAP32[$9 + 5712 >> 2] = HEAP32[$8 + 44 >> 2];
$6 = HEAP32[$8 + 32 >> 2];
$7 = HEAP32[$8 + 28 >> 2];
HEAP32[$9 + 5696 >> 2] = $7;
HEAP32[$9 + 5700 >> 2] = $6;
if ($18 >>> 0 >= 1276) {
break label$23;
}
memcpy($9 + 48 | 0, HEAP32[$2 >> 2], $18);
memcpy($9 + 1344 | 0, $21, 4352);
$44 = HEAPU8[$26 | 0];
}
$23 = $13 << 16 >> 16;
$19 = 1;
if (!$38) {
break label$22;
}
$25 = $11;
$11 = $22;
$27 = $16;
break label$26;
}
$39 = $13 << 16 >> 16;
$38 = 1;
if ($19) {
break label$27;
}
$22 = $11;
}
$40 = HEAP32[$0 + 4580 >> 2];
if (($40 | 0) < 1) {
break label$21;
}
$11 = 0;
$14 = HEAP32[$0 + 4588 >> 2];
$12 = $14;
while (1) {
$6 = 0;
$10 = Math_imul($11, $14);
$8 = $11 + 1 | 0;
if (($10 | 0) < (Math_imul($8, $14) | 0)) {
while (1) {
$7 = HEAP8[($0 + $10 | 0) + 4772 | 0];
$45 = $7;
$7 = $7 >> 31;
$6 = ($7 ^ $7 + $45) + $6 | 0;
$10 = $10 + 1 | 0;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
label$35 : {
label$36 : {
if ($17) {
$10 = $11 << 2;
if (HEAP32[$10 + $9 >> 2] <= ($6 | 0) | HEAP32[($9 + 32 | 0) + $10 >> 2]) {
break label$36;
}
}
HEAP16[($9 + 24 | 0) + ($11 << 1) >> 1] = $13;
HEAP32[($11 << 2) + $9 >> 2] = $6;
break label$35;
}
HEAP32[($9 + 32 | 0) + $10 >> 2] = 1;
}
$12 = $12 + $14 | 0;
$11 = $8;
if (($40 | 0) != ($11 | 0)) {
continue;
}
break;
}
break label$21;
}
$14 = $16;
$16 = $14;
if (!$19) {
break label$20;
}
}
$10 = $39 - $23 | 0;
$6 = ((Math_imul($10, $4 - $25 | 0) | 0) / ($11 - $25 | 0) | 0) + $23 | 0;
$7 = $6 << 16 >> 16;
$10 = $10 >> 2;
$13 = $23 + $10 | 0;
if (($7 | 0) > ($13 | 0)) {
break label$19;
}
$10 = $39 - $10 | 0;
$13 = ($10 | 0) > ($7 | 0) ? $10 : $6;
break label$19;
}
celt_fatal(16895, 16942, 251);
abort();
}
celt_fatal(16972, 16942, 281);
abort();
}
$10 = silk_log2lin((($11 - $4 << 7) / HEAP32[$0 + 4584 >> 2] | 0) + 2048 | 0);
$13 = (Math_imul($10 & 65535, $23) >>> 16 | 0) + Math_imul($10 >> 16, $23) | 0;
$25 = $11;
$11 = $22;
$27 = $16;
break label$19;
}
$11 = $22;
}
$14 = $16;
$13 = $13 << 16 >> 16 < 16384 ? $13 << 1 : 32767;
}
$10 = 0;
$12 = HEAP32[$0 + 4580 >> 2];
if (($12 | 0) >= 1) {
while (1) {
$7 = $13;
$6 = $10 << 2;
$7 = HEAP32[$6 + ($9 + 32 | 0) >> 2] ? HEAPU16[($9 + 24 | 0) + ($10 << 1) >> 1] : $7;
$8 = ($9 + 1328 | 0) + $6 | 0;
$7 = $7 << 16 >> 16;
$6 = HEAP32[($9 + $6 | 0) + 9208 >> 2];
$6 = (Math_imul($7, $6 & 65535) >> 16) + Math_imul($6 >> 16, $7) | 0;
$6 = ($6 | 0) > -8388608 ? $6 : -8388608;
HEAP32[$8 >> 2] = (($6 | 0) < 8388607 ? $6 : 8388607) << 8;
$10 = $10 + 1 | 0;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
HEAP8[$0 + 7168 | 0] = HEAPU8[$9 + 9224 | 0];
silk_gains_quant($20, $9 + 1328 | 0, $26, $34, $12);
$16 = silk_gains_ID($20, HEAP32[$0 + 4580 >> 2]);
$10 = 0;
$7 = HEAP32[$0 + 4580 >> 2];
if (($7 | 0) >= 1) {
while (1) {
$6 = $10 << 2;
HEAPF32[$6 + ($9 + 8480 | 0) >> 2] = Math_fround(HEAP32[($9 + 1328 | 0) + $6 >> 2]) * Math_fround(152587890625e-16);
$10 = $10 + 1 | 0;
if (($7 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
$17 = $17 + 1 | 0;
$22 = $11;
continue;
}
}
memmove($28, ((HEAP32[$0 + 4584 >> 2] << 2) + $0 | 0) + 7180 | 0, HEAP32[$0 + 4592 >> 2] + Math_imul(HEAP32[$0 + 4576 >> 2], 5) << 2);
$10 = 0;
if (!HEAP32[$0 + 4680 >> 2]) {
$10 = HEAP32[((HEAP32[$0 + 4580 >> 2] << 2) + $9 | 0) + 8704 >> 2];
HEAP32[$0 + 4664 >> 2] = 0;
HEAP8[$0 + 4541 | 0] = HEAPU8[$0 + 4765 | 0];
HEAP32[$0 + 4544 >> 2] = $10;
$10 = (HEAP32[$2 + 20 >> 2] + Math_clz32(HEAP32[$2 + 28 >> 2]) | 0) - 25 >> 3;
}
HEAP32[$1 >> 2] = $10;
__stack_pointer = $9 + 13584 | 0;
return 0;
}
function printf_core($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = 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;
$7 = __stack_pointer - 80 | 0;
__stack_pointer = $7;
HEAP32[$7 + 76 >> 2] = $1;
$22 = $7 + 55 | 0;
$20 = $7 + 56 | 0;
$1 = 0;
label$1 : {
label$2 : while (1) {
label$3 : {
if (($17 | 0) < 0) {
break label$3;
}
if ((2147483647 - $17 | 0) < ($1 | 0)) {
HEAP32[__errno_location() >> 2] = 61;
$17 = -1;
break label$3;
}
$17 = $1 + $17 | 0;
}
label$5 : {
label$7 : {
label$8 : {
$13 = HEAP32[$7 + 76 >> 2];
$1 = $13;
$8 = HEAPU8[$1 | 0];
if ($8) {
while (1) {
label$11 : {
$8 = $8 & 255;
label$12 : {
if (!$8) {
$8 = $1;
break label$12;
}
if (($8 | 0) != 37) {
break label$11;
}
$8 = $1;
while (1) {
if (HEAPU8[$1 + 1 | 0] != 37) {
break label$12;
}
$9 = $1 + 2 | 0;
HEAP32[$7 + 76 >> 2] = $9;
$8 = $8 + 1 | 0;
$12 = HEAPU8[$1 + 2 | 0];
$1 = $9;
if (($12 | 0) == 37) {
continue;
}
break;
}
}
$1 = $8 - $13 | 0;
if ($0) {
out($0, $13, $1);
}
if ($1) {
continue label$2;
}
$1 = isdigit(HEAP8[HEAP32[$7 + 76 >> 2] + 1 | 0]);
$10 = $7;
$8 = HEAP32[$7 + 76 >> 2];
label$16 : {
if (!(!$1 | HEAPU8[$8 + 2 | 0] != 36)) {
$21 = 1;
$1 = $8 + 3 | 0;
$19 = HEAP8[$8 + 1 | 0] - 48 | 0;
break label$16;
}
$1 = $8 + 1 | 0;
$19 = -1;
}
HEAP32[$10 + 76 >> 2] = $1;
$18 = 0;
$12 = HEAP8[$1 | 0];
$9 = $12 - 32 | 0;
label$18 : {
if ($9 >>> 0 > 31) {
$8 = $1;
break label$18;
}
$8 = $1;
$9 = 1 << $9;
if (!($9 & 75913)) {
break label$18;
}
while (1) {
$8 = $1 + 1 | 0;
HEAP32[$7 + 76 >> 2] = $8;
$18 = $9 | $18;
$12 = HEAP8[$1 + 1 | 0];
$9 = $12 - 32 | 0;
if ($9 >>> 0 >= 32) {
break label$18;
}
$1 = $8;
$9 = 1 << $9;
if ($9 & 75913) {
continue;
}
break;
}
}
label$21 : {
if (($12 | 0) == 42) {
$10 = $7;
label$23 : {
label$24 : {
if (!isdigit(HEAP8[$8 + 1 | 0])) {
break label$24;
}
$8 = HEAP32[$7 + 76 >> 2];
if (HEAPU8[$8 + 2 | 0] != 36) {
break label$24;
}
HEAP32[((HEAP8[$8 + 1 | 0] << 2) + $4 | 0) - 192 >> 2] = 10;
$15 = HEAP32[((HEAP8[$8 + 1 | 0] << 3) + $3 | 0) - 384 >> 2];
$21 = 1;
$1 = $8 + 3 | 0;
break label$23;
}
if ($21) {
break label$8;
}
$21 = 0;
$15 = 0;
if ($0) {
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
$15 = HEAP32[$1 >> 2];
}
$1 = HEAP32[$7 + 76 >> 2] + 1 | 0;
}
HEAP32[$10 + 76 >> 2] = $1;
if (($15 | 0) > -1) {
break label$21;
}
$15 = 0 - $15 | 0;
$18 = $18 | 8192;
break label$21;
}
$15 = getint($7 + 76 | 0);
if (($15 | 0) < 0) {
break label$8;
}
$1 = HEAP32[$7 + 76 >> 2];
}
$11 = -1;
label$26 : {
if (HEAPU8[$1 | 0] != 46) {
break label$26;
}
if (HEAPU8[$1 + 1 | 0] == 42) {
label$28 : {
if (!isdigit(HEAP8[$1 + 2 | 0])) {
break label$28;
}
$1 = HEAP32[$7 + 76 >> 2];
if (HEAPU8[$1 + 3 | 0] != 36) {
break label$28;
}
HEAP32[((HEAP8[$1 + 2 | 0] << 2) + $4 | 0) - 192 >> 2] = 10;
$11 = HEAP32[((HEAP8[$1 + 2 | 0] << 3) + $3 | 0) - 384 >> 2];
$1 = $1 + 4 | 0;
HEAP32[$7 + 76 >> 2] = $1;
break label$26;
}
if ($21) {
break label$8;
}
if ($0) {
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
$11 = HEAP32[$1 >> 2];
} else {
$11 = 0;
}
$1 = HEAP32[$7 + 76 >> 2] + 2 | 0;
HEAP32[$7 + 76 >> 2] = $1;
break label$26;
}
HEAP32[$7 + 76 >> 2] = $1 + 1;
$11 = getint($7 + 76 | 0);
$1 = HEAP32[$7 + 76 >> 2];
}
$8 = 0;
while (1) {
$9 = $8;
$16 = -1;
if (HEAP8[$1 | 0] - 65 >>> 0 > 57) {
break label$1;
}
$12 = $1 + 1 | 0;
HEAP32[$7 + 76 >> 2] = $12;
$8 = HEAP8[$1 | 0];
$1 = $12;
$8 = HEAPU8[(Math_imul($9, 58) + $8 | 0) + 1071 | 0];
if ($8 - 1 >>> 0 < 8) {
continue;
}
break;
}
label$32 : {
label$33 : {
if (($8 | 0) != 19) {
if (!$8) {
break label$1;
}
if (($19 | 0) >= 0) {
HEAP32[($19 << 2) + $4 >> 2] = $8;
$10 = ($19 << 3) + $3 | 0;
$14 = HEAP32[$10 >> 2];
$10 = HEAP32[$10 + 4 >> 2];
HEAP32[$7 + 64 >> 2] = $14;
HEAP32[$7 + 68 >> 2] = $10;
break label$33;
}
if (!$0) {
break label$5;
}
pop_arg($7 - -64 | 0, $8, $2, $6);
$12 = HEAP32[$7 + 76 >> 2];
break label$32;
}
if (($19 | 0) > -1) {
break label$1;
}
}
$1 = 0;
if (!$0) {
continue label$2;
}
}
$14 = $18 & -65537;
$8 = $18 & 8192 ? $14 : $18;
$16 = 0;
$19 = 1116;
$18 = $20;
label$36 : {
label$37 : {
label$38 : {
label$39 : {
label$40 : {
label$41 : {
label$42 : {
label$43 : {
label$44 : {
label$45 : {
label$46 : {
label$47 : {
label$48 : {
label$49 : {
label$50 : {
label$51 : {
$1 = HEAP8[$12 - 1 | 0];
$1 = $9 ? ($1 & 15) == 3 ? $1 & -33 : $1 : $1;
switch ($1 - 88 | 0) {
case 11:
break label$36;
case 9:
case 13:
case 14:
case 15:
break label$37;
case 27:
break label$42;
case 12:
case 17:
break label$45;
case 23:
break label$46;
case 0:
case 32:
break label$47;
case 24:
break label$48;
case 22:
break label$49;
case 29:
break label$50;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 10:
case 16:
case 18:
case 19:
case 20:
case 21:
case 25:
case 26:
case 28:
case 30:
case 31:
break label$7;
default:
break label$51;
}
}
label$52 : {
switch ($1 - 65 | 0) {
case 0:
case 4:
case 5:
case 6:
break label$37;
case 2:
break label$40;
case 1:
case 3:
break label$7;
default:
break label$52;
}
}
if (($1 | 0) == 83) {
break label$41;
}
break label$7;
}
$10 = HEAP32[$7 + 64 >> 2];
$9 = $10;
$14 = HEAP32[$7 + 68 >> 2];
$1 = $14;
$19 = 1116;
break label$44;
}
$1 = 0;
label$53 : {
switch ($9 & 255) {
case 0:
HEAP32[HEAP32[$7 + 64 >> 2] >> 2] = $17;
continue label$2;
case 1:
HEAP32[HEAP32[$7 + 64 >> 2] >> 2] = $17;
continue label$2;
case 2:
$10 = $17;
$14 = $10 >> 31;
$10 = HEAP32[$7 + 64 >> 2];
HEAP32[$10 >> 2] = $17;
HEAP32[$10 + 4 >> 2] = $14;
continue label$2;
case 3:
HEAP16[HEAP32[$7 + 64 >> 2] >> 1] = $17;
continue label$2;
case 4:
HEAP8[HEAP32[$7 + 64 >> 2]] = $17;
continue label$2;
case 6:
HEAP32[HEAP32[$7 + 64 >> 2] >> 2] = $17;
continue label$2;
case 7:
break label$53;
default:
continue label$2;
}
}
$10 = $17;
$14 = $10 >> 31;
$10 = HEAP32[$7 + 64 >> 2];
HEAP32[$10 >> 2] = $17;
HEAP32[$10 + 4 >> 2] = $14;
continue label$2;
}
$11 = $11 >>> 0 > 8 ? $11 : 8;
$8 = $8 | 8;
$1 = 120;
}
$14 = HEAP32[$7 + 64 >> 2];
$10 = HEAP32[$7 + 68 >> 2];
$13 = fmt_x($14, $10, $20, $1 & 32);
if (!($8 & 8)) {
break label$43;
}
$10 = HEAP32[$7 + 64 >> 2];
$14 = HEAP32[$7 + 68 >> 2];
if (!($10 | $14)) {
break label$43;
}
$19 = ($1 >>> 4 | 0) + 1116 | 0;
$16 = 2;
break label$43;
}
$14 = HEAP32[$7 + 64 >> 2];
$10 = HEAP32[$7 + 68 >> 2];
$13 = fmt_o($14, $10, $20);
if (!($8 & 8)) {
break label$43;
}
$1 = $20 - $13 | 0;
$11 = ($1 | 0) < ($11 | 0) ? $11 : $1 + 1 | 0;
break label$43;
}
$14 = HEAP32[$7 + 68 >> 2];
$1 = $14;
$10 = HEAP32[$7 + 64 >> 2];
$9 = $10;
if (($14 | 0) < -1 ? 1 : ($14 | 0) <= -1) {
$10 = $9;
$9 = 0 - $10 | 0;
$14 = $1;
$10 = $14 + (($10 | 0) != 0) | 0;
$10 = 0 - $10 | 0;
$1 = $10;
HEAP32[$7 + 64 >> 2] = $9;
HEAP32[$7 + 68 >> 2] = $10;
$16 = 1;
$19 = 1116;
break label$44;
}
if ($8 & 2048) {
$16 = 1;
$19 = 1117;
break label$44;
}
$16 = $8 & 1;
$19 = $16 ? 1118 : 1116;
}
$10 = $1;
$13 = fmt_u($9, $10, $20);
}
$8 = ($11 | 0) > -1 ? $8 & -65537 : $8;
$10 = HEAP32[$7 + 64 >> 2];
$9 = $10;
$1 = HEAP32[$7 + 68 >> 2];
if (!(!!($10 | $1) | $11)) {
$11 = 0;
$13 = $20;
break label$7;
}
$1 = !($9 | $1) + ($20 - $13 | 0) | 0;
$11 = ($1 | 0) < ($11 | 0) ? $11 : $1;
break label$7;
}
$1 = HEAP32[$7 + 64 >> 2];
$13 = $1 ? $1 : 1126;
$1 = memchr($13, 0, $11);
$18 = $1 ? $1 : $11 + $13 | 0;
$8 = $14;
$11 = $1 ? $1 - $13 | 0 : $11;
break label$7;
}
$9 = HEAP32[$7 + 64 >> 2];
if ($11) {
break label$39;
}
$1 = 0;
pad($0, 32, $15, 0, $8);
break label$38;
}
HEAP32[$7 + 12 >> 2] = 0;
HEAP32[$7 + 8 >> 2] = HEAP32[$7 + 64 >> 2];
HEAP32[$7 + 64 >> 2] = $7 + 8;
$11 = -1;
$9 = $7 + 8 | 0;
}
$1 = 0;
label$64 : {
while (1) {
$12 = HEAP32[$9 >> 2];
if (!$12) {
break label$64;
}
$12 = wctomb($7 + 4 | 0, $12);
$13 = ($12 | 0) < 0;
if (!($13 | $11 - $1 >>> 0 < $12 >>> 0)) {
$9 = $9 + 4 | 0;
$1 = $1 + $12 | 0;
if ($11 >>> 0 > $1 >>> 0) {
continue;
}
break label$64;
}
break;
}
$16 = -1;
if ($13) {
break label$1;
}
}
pad($0, 32, $15, $1, $8);
if (!$1) {
$1 = 0;
break label$38;
}
$9 = 0;
$12 = HEAP32[$7 + 64 >> 2];
while (1) {
$13 = HEAP32[$12 >> 2];
if (!$13) {
break label$38;
}
$13 = wctomb($7 + 4 | 0, $13);
$9 = $13 + $9 | 0;
if (($9 | 0) > ($1 | 0)) {
break label$38;
}
out($0, $7 + 4 | 0, $13);
$12 = $12 + 4 | 0;
if ($1 >>> 0 > $9 >>> 0) {
continue;
}
break;
}
}
pad($0, 32, $15, $1, $8 ^ 8192);
$1 = ($1 | 0) < ($15 | 0) ? $15 : $1;
continue label$2;
}
$1 = FUNCTION_TABLE[$5 | 0]($0, HEAPF64[$7 + 64 >> 3], $15, $11, $8, $1) | 0;
continue label$2;
}
$10 = HEAP32[$7 + 64 >> 2];
HEAP8[$7 + 55 | 0] = $10;
$11 = 1;
$13 = $22;
$8 = $14;
break label$7;
}
$9 = $1 + 1 | 0;
HEAP32[$7 + 76 >> 2] = $9;
$8 = HEAPU8[$1 + 1 | 0];
$1 = $9;
continue;
}
}
$16 = $17;
if ($0) {
break label$1;
}
if (!$21) {
break label$5;
}
$1 = 1;
while (1) {
$8 = HEAP32[($1 << 2) + $4 >> 2];
if ($8) {
pop_arg(($1 << 3) + $3 | 0, $8, $2, $6);
$16 = 1;
$1 = $1 + 1 | 0;
if (($1 | 0) != 10) {
continue;
}
break label$1;
}
break;
}
$16 = 1;
if ($1 >>> 0 >= 10) {
break label$1;
}
while (1) {
if (HEAP32[($1 << 2) + $4 >> 2]) {
break label$8;
}
$1 = $1 + 1 | 0;
if (($1 | 0) != 10) {
continue;
}
break;
}
break label$1;
}
$16 = -1;
break label$1;
}
$12 = $18 - $13 | 0;
$18 = ($11 | 0) < ($12 | 0) ? $12 : $11;
$9 = $18 + $16 | 0;
$1 = ($9 | 0) > ($15 | 0) ? $9 : $15;
pad($0, 32, $1, $9, $8);
out($0, $19, $16);
pad($0, 48, $1, $9, $8 ^ 65536);
pad($0, 48, $18, $12, 0);
out($0, $13, $12);
pad($0, 32, $1, $9, $8 ^ 8192);
continue;
}
break;
}
$16 = 0;
}
__stack_pointer = $7 + 80 | 0;
return $16;
}
function silk_NSQ_del_dec_c($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) {
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, $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;
$15 = __stack_pointer - 176 | 0;
$28 = $15;
__stack_pointer = $15;
$30 = HEAP32[$1 + 4328 >> 2];
$15 = $15 - (Math_imul(HEAP32[$0 + 4628 >> 2], 1300) + 15 & -16) | 0;
$29 = $15;
__stack_pointer = $15;
$21 = HEAP32[$0 + 4628 >> 2];
$27 = memset($15, 0, Math_imul($21, 1300));
if (($21 | 0) >= 1) {
$17 = $1 + 4224 | 0;
$16 = $1 + 3840 | 0;
$22 = HEAP32[((HEAP32[$0 + 4592 >> 2] << 2) + $1 | 0) + 1276 >> 2];
$24 = HEAP32[$1 + 4324 >> 2];
$25 = HEAP32[$1 + 4320 >> 2];
$31 = HEAPU8[$2 + 34 | 0];
while (1) {
$15 = Math_imul($18, 1300) + $27 | 0;
HEAP32[$15 + 1296 >> 2] = 0;
$19 = $18 + $31 & 3;
HEAP32[$15 + 1292 >> 2] = $19;
HEAP32[$15 + 1288 >> 2] = $19;
HEAP32[$15 + 1284 >> 2] = $24;
HEAP32[$15 + 1280 >> 2] = $25;
HEAP32[$15 + 1024 >> 2] = $22;
$20 = HEAP32[$16 + 4 >> 2];
$23 = HEAP32[$16 >> 2];
HEAP32[$15 >> 2] = $23;
HEAP32[$15 + 4 >> 2] = $20;
$23 = HEAP32[$16 + 12 >> 2];
$20 = HEAP32[$16 + 8 >> 2];
HEAP32[$15 + 8 >> 2] = $20;
HEAP32[$15 + 12 >> 2] = $23;
$20 = HEAP32[$16 + 20 >> 2];
$23 = HEAP32[$16 + 16 >> 2];
HEAP32[$15 + 16 >> 2] = $23;
HEAP32[$15 + 20 >> 2] = $20;
$23 = HEAP32[$16 + 28 >> 2];
$20 = HEAP32[$16 + 24 >> 2];
HEAP32[$15 + 24 >> 2] = $20;
HEAP32[$15 + 28 >> 2] = $23;
$20 = HEAP32[$16 + 36 >> 2];
$23 = HEAP32[$16 + 32 >> 2];
HEAP32[$15 + 32 >> 2] = $23;
HEAP32[$15 + 36 >> 2] = $20;
$23 = HEAP32[$16 + 44 >> 2];
$20 = HEAP32[$16 + 40 >> 2];
HEAP32[$15 + 40 >> 2] = $20;
HEAP32[$15 + 44 >> 2] = $23;
$20 = HEAP32[$16 + 52 >> 2];
$23 = HEAP32[$16 + 48 >> 2];
HEAP32[$15 + 48 >> 2] = $23;
HEAP32[$15 + 52 >> 2] = $20;
$23 = HEAP32[$16 + 60 >> 2];
$20 = HEAP32[$16 + 56 >> 2];
HEAP32[$15 + 56 >> 2] = $20;
HEAP32[$15 + 60 >> 2] = $23;
memcpy($15 + 1184 | 0, $17, 96);
$18 = $18 + 1 | 0;
if (($21 | 0) != ($18 | 0)) {
continue;
}
break;
}
}
$24 = HEAPU8[$2 + 29 | 0];
$17 = HEAP8[$2 + 30 | 0];
HEAP32[$28 + 172 >> 2] = 0;
$18 = HEAP32[$0 + 4588 >> 2];
$26 = ($18 | 0) < 40 ? $18 : 40;
label$3 : {
if (($24 | 0) == 2) {
$19 = HEAP32[$0 + 4580 >> 2];
if (($19 | 0) < 1) {
break label$3;
}
$15 = 0;
while (1) {
$16 = HEAP32[($15 << 2) + $12 >> 2] - 3 | 0;
$26 = ($16 | 0) > ($26 | 0) ? $26 : $16;
$15 = $15 + 1 | 0;
if (($19 | 0) != ($15 | 0)) {
continue;
}
break;
}
break label$3;
}
if (($30 | 0) < 1) {
break label$3;
}
$15 = $30 - 3 | 0;
$26 = ($15 | 0) > ($26 | 0) ? $26 : $15;
}
$22 = HEAPU8[$2 + 31 | 0];
$15 = HEAP32[$0 + 4592 >> 2];
$16 = $15 + HEAP32[$0 + 4584 >> 2] | 0;
$35 = $29 - (($16 << 2) + 15 & -16) | 0;
$19 = $35;
__stack_pointer = $19;
$38 = $19 - (($16 << 1) + 15 & -16) | 0;
$16 = $38;
__stack_pointer = $16;
$31 = $16 - (($18 << 2) + 15 & -16) | 0;
__stack_pointer = $31;
HEAP32[$1 + 4332 >> 2] = $15;
HEAP32[$1 + 4336 >> 2] = $15;
$32 = ($15 << 1) + $1 | 0;
label$6 : {
$25 = HEAP32[$0 + 4580 >> 2];
if (($25 | 0) >= 1) {
$46 = HEAP16[(($24 << 24 >> 24 << 1 & -4) + ($17 << 1) | 0) + 5840 >> 1];
$42 = ($22 & 255) == 4;
$47 = $42 ? 3 : 1;
$43 = $14 << 16 >> 16;
$14 = 0;
while (1) {
$33 = $14 << 2;
$25 = HEAP32[$33 + $8 >> 2];
HEAP32[$1 + 4348 >> 2] = 0;
$36 = 1;
$44 = (($14 >>> 1 | $42) << 5) + $5 | 0;
label$9 : {
if (($24 & 255) != 2) {
break label$9;
}
$24 = 2;
$30 = HEAP32[($14 << 2) + $12 >> 2];
if ($14 & $47) {
break label$9;
}
label$10 : {
if (($14 | 0) != 2) {
break label$10;
}
$16 = 0;
$15 = 0;
$21 = HEAP32[$0 + 4628 >> 2];
if (($21 | 0) >= 2) {
$19 = HEAP32[$27 + 1296 >> 2];
$18 = 1;
while (1) {
$17 = HEAP32[(Math_imul($18, 1300) + $27 | 0) + 1296 >> 2];
$20 = $17;
$17 = ($19 | 0) > ($17 | 0);
$19 = $17 ? $20 : $19;
$15 = $17 ? $18 : $15;
$18 = $18 + 1 | 0;
if (($21 | 0) != ($18 | 0)) {
continue;
}
break;
}
}
if (($21 | 0) > 0) {
while (1) {
if (($15 | 0) != ($16 | 0)) {
$18 = Math_imul($16, 1300) + $27 | 0;
HEAP32[$18 + 1296 >> 2] = HEAP32[$18 + 1296 >> 2] + 134217727;
}
$16 = $16 + 1 | 0;
if (($21 | 0) != ($16 | 0)) {
continue;
}
break;
}
}
if (($26 | 0) < 1) {
$37 = 0;
break label$10;
}
$17 = HEAP32[$28 + 172 >> 2] + $26 | 0;
$37 = 0;
$16 = 0;
while (1) {
$18 = $16 - $26 | 0;
$19 = ($17 - 1 | 0) % 40 | 0;
$17 = ($19 | 0) < 0 ? $19 + 40 | 0 : $19;
$19 = (Math_imul($15, 1300) + $27 | 0) + ($17 << 2) | 0;
HEAP8[$18 + $4 | 0] = (HEAP32[$19 + 544 >> 2] >>> 9 | 0) + 1 >>> 1;
$22 = HEAP32[$11 + 4 >> 2];
$24 = $22 << 16 >> 16;
$21 = HEAP32[$19 + 704 >> 2];
$21 = ((Math_imul($24, $21 & 65535) >> 16) + Math_imul($21 >> 16, $24) | 0) + Math_imul(($22 >> 15) + 1 >> 1, $21) | 0;
HEAP16[($18 << 1) + $32 >> 1] = ($21 | 0) > 536862719 ? 32767 : ($21 | 0) < -536879104 ? -32768 : ($21 >>> 13 | 0) + 1 >>> 1 | 0;
HEAP32[((HEAP32[$1 + 4336 >> 2] + $18 << 2) + $1 | 0) + 1280 >> 2] = HEAP32[$19 + 1024 >> 2];
$16 = $16 + 1 | 0;
if (($26 | 0) != ($16 | 0)) {
continue;
}
break;
}
}
$16 = HEAP32[$0 + 4592 >> 2];
$18 = HEAP32[$0 + 4640 >> 2];
$15 = ($16 - $30 | 0) - $18 | 0;
if (($15 | 0) <= 2) {
break label$6;
}
$15 = $15 - 2 | 0;
silk_LPC_analysis_filter(($15 << 1) + $38 | 0, (Math_imul(HEAP32[$0 + 4588 >> 2], $14) + $15 << 1) + $1 | 0, $44, $16 - $15 | 0, $18, HEAP32[$0 + 5092 >> 2]);
$15 = HEAP32[$0 + 4592 >> 2];
HEAP32[$1 + 4348 >> 2] = 1;
HEAP32[$1 + 4332 >> 2] = $15;
$24 = HEAPU8[$2 + 29 | 0];
$36 = 0;
}
$39 = $11 + $33 | 0;
$22 = HEAP32[$39 >> 2];
$16 = ($22 | 0) > 1 ? $22 : 1;
$19 = Math_clz32($16);
$15 = $16 << $19 - 1;
$18 = $15 >> 16;
$21 = 536870911 / ($18 | 0) | 0;
$17 = ($21 >> 15) + 1 >> 1;
$20 = $15 & 65535;
$21 = $21 << 16;
$15 = $21 >> 16;
$18 = 0 - ((Math_imul($20, $15) >> 16) + Math_imul($15, $18) << 3) | 0;
$15 = ((Math_imul($18, $17) + $21 | 0) + Math_imul($18 >> 16, $15) | 0) + (Math_imul($18 & 65528, $15) >> 16) | 0;
$18 = 15 - $19 | 0;
$45 = HEAP32[$12 + $33 >> 2];
$29 = HEAP32[$0 + 4628 >> 2];
label$18 : {
if ($16 >>> 0 <= 131071) {
$16 = 0 - $18 | 0;
$18 = 2147483647 >>> $16 | 0;
$19 = -2147483648 >> $16;
$17 = (($15 | 0) > ($18 | 0) ? $18 : ($15 | 0) < ($19 | 0) ? $19 : $15) << $16;
break label$18;
}
$17 = $15 >> $18;
}
$34 = $25 << 15;
$19 = HEAP32[$0 + 4588 >> 2];
if (($19 | 0) >= 1) {
$15 = ($17 >> 4) + 1 | 0;
$18 = $15 << 15 >> 16;
$21 = ($15 >> 16) + 1 >> 1;
$15 = 0;
while (1) {
$16 = HEAP16[($15 << 1) + $3 >> 1];
HEAP32[($15 << 2) + $31 >> 2] = (Math_imul($16 >> 16, $18) + Math_imul($16, $21) | 0) + (Math_imul($16 & 65535, $18) >> 16);
$15 = $15 + 1 | 0;
if (($19 | 0) != ($15 | 0)) {
continue;
}
break;
}
}
$25 = $25 >> 2;
$34 = $34 & -65536;
$40 = Math_imul($14, 48);
$41 = Math_imul($14, 10);
$20 = $24 << 24;
label$22 : {
if ($36) {
break label$22;
}
$17 = $14 ? $17 : Math_imul($17 >> 16, $43) + (Math_imul($17 & 65535, $43) >> 16) << 2;
$18 = HEAP32[$1 + 4332 >> 2];
$15 = ($18 - $45 | 0) - 2 | 0;
if (($15 | 0) >= ($18 | 0)) {
break label$22;
}
$21 = $17 & 65535;
$17 = $17 >> 16;
while (1) {
$16 = HEAP16[($15 << 1) + $38 >> 1];
HEAP32[($15 << 2) + $35 >> 2] = (Math_imul($21, $16) >> 16) + Math_imul($16, $17);
$15 = $15 + 1 | 0;
if (($18 | 0) != ($15 | 0)) {
continue;
}
break;
}
}
$36 = $25 | $34;
$34 = $7 + $40 | 0;
$40 = $6 + $41 | 0;
$41 = $20 >> 24;
$15 = HEAP32[$1 + 4344 >> 2];
if (($22 | 0) != ($15 | 0)) {
$16 = $15 >> 31;
$18 = Math_clz32($16 ^ $15 + $16);
$16 = $15 << $18 - 1;
$25 = $16;
$15 = $22 >> 31;
$19 = Math_clz32($15 ^ $15 + $22);
$21 = $22 << $19 - 1;
$15 = 536870911 / ($21 >> 16) << 16 >> 16;
$16 = (Math_imul($15, $16 & 65535) >> 16) + Math_imul($16 >> 16, $15) | 0;
$23 = $16 >> 31;
$17 = $23;
$23 = $21 >> 31;
$20 = $23;
$23 = $17;
$20 = __wasm_i64_mul($16, $23, $21, $20);
$17 = $20;
$23 = i64toi32_i32$HIGH_BITS;
$21 = $25 - ((($23 & 536870911) << 3 | $17 >>> 29) & -8) | 0;
$15 = (Math_imul($21 >> 16, $15) + $16 | 0) + (Math_imul($21 & 65535, $15) >> 16) | 0;
$16 = $18 - $19 | 0;
$18 = $16 + 13 | 0;
$16 = $16 + 29 | 0;
label$26 : {
if (($16 | 0) <= 15) {
$16 = 0 - $18 | 0;
$18 = 2147483647 >>> $16 | 0;
$19 = -2147483648 >> $16;
$15 = (($15 | 0) > ($18 | 0) ? $18 : ($15 | 0) < ($19 | 0) ? $19 : $15) << $16;
break label$26;
}
$15 = ($16 | 0) < 48 ? $15 >> $18 : 0;
}
$16 = HEAP32[$0 + 4592 >> 2];
if (($16 | 0) >= 1) {
$21 = $15 & 65535;
$17 = $15 >> 16;
$16 = HEAP32[$1 + 4336 >> 2] - $16 | 0;
while (1) {
$18 = (($16 << 2) + $1 | 0) + 1280 | 0;
$20 = $18;
$18 = HEAP32[$18 >> 2];
$19 = $18 << 16 >> 16;
HEAP32[$20 >> 2] = ((Math_imul($21, $19) >> 16) + Math_imul($19, $17) | 0) + Math_imul(($18 >> 15) + 1 >> 1, $15);
$16 = $16 + 1 | 0;
if (($16 | 0) < HEAP32[$1 + 4336 >> 2]) {
continue;
}
break;
}
}
label$30 : {
if (HEAP32[$1 + 4348 >> 2] | ($24 & 255) != 2) {
break label$30;
}
$18 = HEAP32[$1 + 4332 >> 2];
$16 = ($18 - $45 | 0) - 2 | 0;
$21 = $18 - $26 | 0;
if (($16 | 0) >= ($21 | 0)) {
break label$30;
}
$17 = $15 & 65535;
$22 = $15 >> 16;
while (1) {
$18 = ($16 << 2) + $35 | 0;
$20 = $18;
$18 = HEAP32[$18 >> 2];
$19 = $18 << 16 >> 16;
HEAP32[$20 >> 2] = ((Math_imul($17, $19) >> 16) + Math_imul($19, $22) | 0) + Math_imul(($18 >> 15) + 1 >> 1, $15);
$16 = $16 + 1 | 0;
if (($21 | 0) != ($16 | 0)) {
continue;
}
break;
}
}
if (($29 | 0) >= 1) {
$16 = $15 & 65535;
$18 = $15 >> 16;
$25 = 0;
while (1) {
$21 = Math_imul($25, 1300) + $27 | 0;
$19 = HEAP32[$21 + 1280 >> 2];
$17 = $19 << 16 >> 16;
HEAP32[$21 + 1280 >> 2] = (Math_imul($18, $17) + (Math_imul($16, $17) >> 16) | 0) + Math_imul(($19 >> 15) + 1 >> 1, $15);
$19 = HEAP32[$21 + 1284 >> 2];
$17 = $19 << 16 >> 16;
HEAP32[$21 + 1284 >> 2] = ((Math_imul($17, $16) >> 16) + Math_imul($18, $17) | 0) + Math_imul(($19 >> 15) + 1 >> 1, $15);
$17 = 0;
while (1) {
$19 = ($17 << 2) + $21 | 0;
$20 = $19;
$19 = HEAP32[$19 >> 2];
$22 = $19 << 16 >> 16;
HEAP32[$20 >> 2] = ((Math_imul($22, $16) >> 16) + Math_imul($18, $22) | 0) + Math_imul(($19 >> 15) + 1 >> 1, $15);
$19 = 0;
$17 = $17 + 1 | 0;
if (($17 | 0) != 16) {
continue;
}
break;
}
$17 = 0;
while (1) {
$22 = (($17 << 2) + $21 | 0) + 1184 | 0;
$20 = $22;
$22 = HEAP32[$22 >> 2];
$24 = $22 << 16 >> 16;
HEAP32[$20 >> 2] = ((Math_imul($24, $16) >> 16) + Math_imul($18, $24) | 0) + Math_imul(($22 >> 15) + 1 >> 1, $15);
$17 = $17 + 1 | 0;
if (($17 | 0) != 24) {
continue;
}
break;
}
while (1) {
$17 = ($19 << 2) + $21 | 0;
$22 = $17 + 864 | 0;
$20 = $22;
$22 = HEAP32[$17 + 864 >> 2];
$24 = $22 << 16 >> 16;
HEAP32[$20 >> 2] = ((Math_imul($24, $16) >> 16) + Math_imul($18, $24) | 0) + Math_imul(($22 >> 15) + 1 >> 1, $15);
$17 = $17 + 1024 | 0;
$20 = $17;
$17 = HEAP32[$17 >> 2];
$22 = $17 << 16 >> 16;
HEAP32[$20 >> 2] = ((Math_imul($22, $16) >> 16) + Math_imul($18, $22) | 0) + Math_imul(($17 >> 15) + 1 >> 1, $15);
$19 = $19 + 1 | 0;
if (($19 | 0) != 40) {
continue;
}
break;
}
$25 = $25 + 1 | 0;
if (($29 | 0) != ($25 | 0)) {
continue;
}
break;
}
}
HEAP32[$1 + 4344 >> 2] = HEAP32[$39 >> 2];
$29 = HEAP32[$0 + 4628 >> 2];
$22 = HEAP32[$39 >> 2];
$19 = HEAP32[$0 + 4588 >> 2];
}
silk_noise_shape_quantizer_del_dec($1, $27, $41, $31, $4, $32, $35, $28, $44, $40, $34, $30, $36, HEAP32[$9 + $33 >> 2], HEAP32[$10 + $33 >> 2], $22, $13, $46, $19, $37, HEAP32[$0 + 4636 >> 2], HEAP32[$0 + 4640 >> 2], HEAP32[$0 + 4672 >> 2], $29, $28 + 172 | 0, $26);
$18 = HEAP32[$0 + 4588 >> 2];
$4 = $18 + $4 | 0;
$15 = $18 << 1;
$32 = $32 + $15 | 0;
$14 = $14 + 1 | 0;
$25 = HEAP32[$0 + 4580 >> 2];
if (($14 | 0) < ($25 | 0)) {
$37 = $37 + 1 | 0;
$3 = $3 + $15 | 0;
$24 = HEAPU8[$2 + 29 | 0];
continue;
}
break;
}
$21 = HEAP32[$0 + 4628 >> 2];
}
$19 = 0;
if (($21 | 0) >= 2) {
$16 = HEAP32[$27 + 1296 >> 2];
$15 = 1;
while (1) {
$17 = HEAP32[(Math_imul($15, 1300) + $27 | 0) + 1296 >> 2];
$3 = $17;
$17 = ($16 | 0) > ($17 | 0);
$16 = $17 ? $3 : $16;
$19 = $17 ? $15 : $19;
$15 = $15 + 1 | 0;
if (($21 | 0) != ($15 | 0)) {
continue;
}
break;
}
}
$22 = Math_imul($19, 1300) + $27 | 0;
HEAP8[$2 + 34 | 0] = HEAP32[$22 + 1292 >> 2];
if (($26 | 0) >= 1) {
$21 = HEAP32[$28 + 172 >> 2] + $26 | 0;
$15 = HEAP32[(($25 << 2) + $11 | 0) - 4 >> 2];
$17 = $15 << 10 >> 16;
$24 = ($15 >> 21) + 1 >> 1;
$15 = 0;
while (1) {
$16 = $15 - $26 | 0;
$18 = ($21 - 1 | 0) % 40 | 0;
$21 = ($18 | 0) < 0 ? $18 + 40 | 0 : $18;
$18 = ($21 << 2) + $22 | 0;
HEAP8[$16 + $4 | 0] = (HEAP32[$18 + 544 >> 2] >>> 9 | 0) + 1 >>> 1;
$19 = HEAP32[$18 + 704 >> 2];
$19 = (Math_imul($19 >> 16, $17) + Math_imul($19, $24) | 0) + (Math_imul($19 & 65535, $17) >> 16) | 0;
HEAP16[($16 << 1) + $32 >> 1] = ($19 | 0) > 8388479 ? 32767 : ($19 | 0) < -8388736 ? -32768 : ($19 >>> 7 | 0) + 1 >>> 1 | 0;
HEAP32[((HEAP32[$1 + 4336 >> 2] + $16 << 2) + $1 | 0) + 1280 >> 2] = HEAP32[$18 + 1024 >> 2];
$15 = $15 + 1 | 0;
if (($26 | 0) != ($15 | 0)) {
continue;
}
break;
}
$18 = HEAP32[$0 + 4588 >> 2];
}
$15 = ($18 << 2) + $22 | 0;
$17 = HEAP32[$15 + 4 >> 2];
$20 = HEAP32[$15 >> 2];
HEAP32[$1 + 3840 >> 2] = $20;
HEAP32[$1 + 3844 >> 2] = $17;
$20 = HEAP32[$15 + 60 >> 2];
$17 = HEAP32[$15 + 56 >> 2];
$2 = $17;
$17 = $1 + 3896 | 0;
HEAP32[$17 >> 2] = $2;
HEAP32[$17 + 4 >> 2] = $20;
$17 = HEAP32[$15 + 52 >> 2];
$20 = HEAP32[$15 + 48 >> 2];
$2 = $20;
$20 = $1 + 3888 | 0;
HEAP32[$20 >> 2] = $2;
HEAP32[$20 + 4 >> 2] = $17;
$20 = HEAP32[$15 + 44 >> 2];
$17 = HEAP32[$15 + 40 >> 2];
$2 = $17;
$17 = $1 + 3880 | 0;
HEAP32[$17 >> 2] = $2;
HEAP32[$17 + 4 >> 2] = $20;
$17 = HEAP32[$15 + 36 >> 2];
$20 = HEAP32[$15 + 32 >> 2];
$2 = $20;
$20 = $1 + 3872 | 0;
HEAP32[$20 >> 2] = $2;
HEAP32[$20 + 4 >> 2] = $17;
$20 = HEAP32[$15 + 28 >> 2];
$17 = HEAP32[$15 + 24 >> 2];
$2 = $17;
$17 = $1 + 3864 | 0;
HEAP32[$17 >> 2] = $2;
HEAP32[$17 + 4 >> 2] = $20;
$17 = HEAP32[$15 + 20 >> 2];
$20 = HEAP32[$15 + 16 >> 2];
$2 = $20;
$20 = $1 + 3856 | 0;
HEAP32[$20 >> 2] = $2;
HEAP32[$20 + 4 >> 2] = $17;
$20 = HEAP32[$15 + 12 >> 2];
$17 = HEAP32[$15 + 8 >> 2];
$2 = $17;
$17 = $1 + 3848 | 0;
HEAP32[$17 >> 2] = $2;
HEAP32[$17 + 4 >> 2] = $20;
memcpy($1 + 4224 | 0, $22 + 1184 | 0, 96);
HEAP32[$1 + 4320 >> 2] = HEAP32[$22 + 1280 >> 2];
HEAP32[$1 + 4324 >> 2] = HEAP32[$22 + 1284 >> 2];
HEAP32[$1 + 4328 >> 2] = HEAP32[((HEAP32[$0 + 4580 >> 2] << 2) + $12 | 0) - 4 >> 2];
$15 = memmove($1, (HEAP32[$0 + 4584 >> 2] << 1) + $1 | 0, HEAP32[$0 + 4592 >> 2] << 1) + 1280 | 0;
memmove($15, (HEAP32[$0 + 4584 >> 2] << 2) + $15 | 0, HEAP32[$0 + 4592 >> 2] << 2);
__stack_pointer = $28 + 176 | 0;
return;
}
celt_fatal(16175, 16207, 253);
abort();
}
function silk_noise_shape_quantizer_del_dec($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25) {
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, $40 = 0, $41 = 0, $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, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0;
$26 = __stack_pointer;
$63 = $26;
label$1 : {
if (($23 | 0) > 0) {
$30 = $26 - (Math_imul($23, 56) + 15 & -16) | 0;
__stack_pointer = $30;
if (($18 | 0) >= 1) {
$64 = $15 >> 6;
$31 = $16 << 16 >> 16;
$38 = Math_imul($31, $17 << 16 >> 16);
$39 = $17 + 944 | 0;
$42 = Math_imul($39 << 16 >> 16, $31);
$43 = $17 - 944 | 0;
$65 = Math_imul(0 - ($43 << 16) >> 16, $31);
$66 = $17 - 80 | 0;
$44 = $14 >> 16;
$67 = $20 >> 1;
$68 = $20 & 1;
$69 = $21 >> 1;
$45 = $12 >> 16;
$26 = $16 >>> 1 | 0;
$70 = 512 - $26 | 0;
$40 = $26 - 512 | 0;
$46 = $14 << 16 >> 16;
$47 = $13 << 16 >> 16;
$14 = $22 << 16 >> 16;
$48 = $12 << 16 >> 16;
$49 = $20 - 1 | 0;
$71 = ($49 << 1) + $10 | 0;
$34 = ((HEAP32[$0 + 4336 >> 2] - $11 << 2) + $0 | 0) + 1284 | 0;
$32 = ((HEAP32[$0 + 4332 >> 2] - $11 << 2) + $6 | 0) + 8 | 0;
$72 = ($2 | 0) != 2;
$73 = ($20 | 0) < 3;
$74 = ($16 | 0) < 2049;
$75 = ($19 | 0) > 0;
while (1) {
label$5 : {
if ($72) {
$37 = 0;
break label$5;
}
$12 = HEAP16[$9 >> 1];
$16 = HEAP32[$32 >> 2];
$2 = Math_imul($12, $16 >> 16) + (Math_imul($16 & 65535, $12) >> 16) | 0;
$12 = HEAP16[$9 + 2 >> 1];
$16 = HEAP32[$32 - 4 >> 2];
$2 = ($2 + Math_imul($12, $16 >> 16) | 0) + (Math_imul($16 & 65535, $12) >> 16) | 0;
$12 = HEAP16[$9 + 4 >> 1];
$16 = HEAP32[$32 - 8 >> 2];
$2 = ($2 + Math_imul($12, $16 >> 16) | 0) + (Math_imul($16 & 65535, $12) >> 16) | 0;
$12 = HEAP16[$9 + 6 >> 1];
$16 = HEAP32[$32 - 12 >> 2];
$2 = ($2 + Math_imul($12, $16 >> 16) | 0) + (Math_imul($16 & 65535, $12) >> 16) | 0;
$12 = HEAP16[$9 + 8 >> 1];
$16 = HEAP32[$32 - 16 >> 2];
$37 = (($2 + Math_imul($12, $16 >> 16) | 0) + (Math_imul($16 & 65535, $12) >> 16) << 1) + 4 | 0;
$32 = $32 + 4 | 0;
}
$35 = 0;
label$7 : {
if (($11 | 0) < 1) {
$50 = 0;
break label$7;
}
$16 = HEAP32[$34 - 4 >> 2];
$12 = HEAP32[$34 - 8 >> 2] + HEAP32[$34 >> 2] | 0;
$50 = $37 - (((Math_imul($16 >> 16, $45) + Math_imul($12 >> 16, $48) | 0) + (Math_imul($12 & 65535, $48) >> 16) | 0) + (Math_imul($16 & 65535, $45) >> 16) << 2) | 0;
$34 = $34 + 4 | 0;
}
$76 = $33 + 15 | 0;
$36 = $33 << 2;
$77 = $36 + $3 | 0;
$51 = HEAP16[$8 + 18 >> 1];
$52 = HEAP16[$8 + 16 >> 1];
$53 = HEAP16[$8 + 14 >> 1];
$54 = HEAP16[$8 + 12 >> 1];
$55 = HEAP16[$8 + 10 >> 1];
$56 = HEAP16[$8 + 8 >> 1];
$57 = HEAP16[$8 + 6 >> 1];
$58 = HEAP16[$8 + 4 >> 1];
$59 = HEAP16[$8 + 2 >> 1];
$60 = HEAP16[$8 >> 1];
while (1) {
$27 = Math_imul($35, 1300) + $1 | 0;
HEAP32[$27 + 1288 >> 2] = Math_imul(HEAP32[$27 + 1288 >> 2], 196314165) + 907633515;
$16 = ($76 << 2) + $27 | 0;
$12 = HEAP32[$16 >> 2];
$2 = (Math_imul($12 >> 16, $60) + $69 | 0) + (Math_imul($12 & 65535, $60) >> 16) | 0;
$12 = HEAP32[$16 - 4 >> 2];
$2 = ($2 + Math_imul($12 >> 16, $59) | 0) + (Math_imul($12 & 65535, $59) >> 16) | 0;
$12 = HEAP32[$16 - 8 >> 2];
$2 = ($2 + Math_imul($12 >> 16, $58) | 0) + (Math_imul($12 & 65535, $58) >> 16) | 0;
$12 = HEAP32[$16 - 12 >> 2];
$2 = ($2 + Math_imul($12 >> 16, $57) | 0) + (Math_imul($12 & 65535, $57) >> 16) | 0;
$12 = HEAP32[$16 - 16 >> 2];
$2 = ($2 + Math_imul($12 >> 16, $56) | 0) + (Math_imul($12 & 65535, $56) >> 16) | 0;
$12 = HEAP32[$16 - 20 >> 2];
$2 = ($2 + Math_imul($12 >> 16, $55) | 0) + (Math_imul($12 & 65535, $55) >> 16) | 0;
$12 = HEAP32[$16 - 24 >> 2];
$2 = ($2 + Math_imul($12 >> 16, $54) | 0) + (Math_imul($12 & 65535, $54) >> 16) | 0;
$12 = HEAP32[$16 - 28 >> 2];
$2 = ($2 + Math_imul($12 >> 16, $53) | 0) + (Math_imul($12 & 65535, $53) >> 16) | 0;
$12 = HEAP32[$16 - 32 >> 2];
$2 = ($2 + Math_imul($12 >> 16, $52) | 0) + (Math_imul($12 & 65535, $52) >> 16) | 0;
$12 = HEAP32[$16 - 36 >> 2];
$12 = ($2 + Math_imul($12 >> 16, $51) | 0) + (Math_imul($12 & 65535, $51) >> 16) | 0;
if (($21 | 0) == 16) {
$2 = HEAP16[$8 + 20 >> 1];
$26 = HEAP32[$16 - 40 >> 2];
$2 = (Math_imul($2, $26 >> 16) + $12 | 0) + (Math_imul($26 & 65535, $2) >> 16) | 0;
$26 = HEAP16[$8 + 22 >> 1];
$12 = HEAP32[$16 - 44 >> 2];
$2 = ($2 + Math_imul($26, $12 >> 16) | 0) + (Math_imul($12 & 65535, $26) >> 16) | 0;
$26 = HEAP16[$8 + 24 >> 1];
$12 = HEAP32[$16 - 48 >> 2];
$2 = ($2 + Math_imul($26, $12 >> 16) | 0) + (Math_imul($12 & 65535, $26) >> 16) | 0;
$26 = HEAP16[$8 + 26 >> 1];
$12 = HEAP32[$16 - 52 >> 2];
$2 = ($2 + Math_imul($26, $12 >> 16) | 0) + (Math_imul($12 & 65535, $26) >> 16) | 0;
$12 = HEAP16[$8 + 28 >> 1];
$16 = HEAP32[$16 - 56 >> 2];
$2 = ($2 + Math_imul($12, $16 >> 16) | 0) + (Math_imul($16 & 65535, $12) >> 16) | 0;
$12 = HEAP16[$8 + 30 >> 1];
$16 = HEAP32[$27 + $36 >> 2];
$12 = ($2 + Math_imul($12, $16 >> 16) | 0) + (Math_imul($16 & 65535, $12) >> 16) | 0;
}
if ($68) {
break label$1;
}
$41 = $12 << 4;
$12 = HEAP32[$27 + 1184 >> 2];
$16 = (HEAP32[$27 + 1284 >> 2] + Math_imul($12 >> 16, $14) | 0) + (Math_imul($12 & 65535, $14) >> 16) | 0;
HEAP32[$27 + 1184 >> 2] = $16;
$26 = HEAP16[$10 >> 1];
$15 = (Math_imul($26, $16 >> 16) + $67 | 0) + (Math_imul($16 & 65535, $26) >> 16) | 0;
$16 = HEAP32[$27 + 1188 >> 2] - $16 | 0;
$16 = (Math_imul($16 >> 16, $14) + $12 | 0) + (Math_imul($16 & 65535, $14) >> 16) | 0;
$12 = 2;
if (!$73) {
while (1) {
$26 = $27 + 1184 | 0;
$13 = $12 - 1 | 0;
$19 = $26 + ($13 << 2) | 0;
$22 = HEAP32[$19 >> 2];
$28 = $12 << 2;
$29 = $28 + $26 | 0;
$2 = HEAP32[$29 >> 2];
HEAP32[$19 >> 2] = $16;
$19 = HEAP32[($28 | 4) + $26 >> 2];
$13 = HEAP16[($13 << 1) + $10 >> 1];
$26 = $2 - $16 | 0;
$26 = (Math_imul($26 >> 16, $14) + $22 | 0) + (Math_imul($26 & 65535, $14) >> 16) | 0;
HEAP32[$29 >> 2] = $26;
$13 = (Math_imul($16 >> 16, $13) + $15 | 0) + (Math_imul($16 & 65535, $13) >> 16) | 0;
$16 = HEAP16[($12 << 1) + $10 >> 1];
$15 = ($13 + Math_imul($16, $26 >> 16) | 0) + (Math_imul($26 & 65535, $16) >> 16) | 0;
$16 = $19 - $26 | 0;
$16 = (Math_imul($16 >> 16, $14) + $2 | 0) + (Math_imul($16 & 65535, $14) >> 16) | 0;
$12 = $12 + 2 | 0;
if (($20 | 0) > ($12 | 0)) {
continue;
}
break;
}
}
HEAP32[(($49 << 2) + $27 | 0) + 1184 >> 2] = $16;
label$13 : {
label$14 : {
label$15 : {
label$16 : {
$61 = HEAP32[$77 >> 2];
$12 = HEAP32[$27 + 1280 >> 2];
$26 = $12 & 65535;
$12 = $12 >> 16;
$2 = HEAP16[$71 >> 1];
$13 = ((Math_imul($47, $26) >> 16) + Math_imul($47, $12) | 0) + ((Math_imul($2, $16 >> 16) + $15 | 0) + (Math_imul($16 & 65535, $2) >> 16) << 1) << 2;
$62 = HEAP32[$24 >> 2];
$16 = HEAP32[(($62 << 2) + $27 | 0) + 1024 >> 2];
$15 = ((Math_imul($12, $44) + (Math_imul($26, $44) >> 16) | 0) + Math_imul($16 >> 16, $46) | 0) + (Math_imul($16 & 65535, $46) >> 16) << 2;
$16 = $61 - (((($41 + $50 | 0) - $13 | 0) - $15 >> 3) + 1 >> 1) | 0;
$19 = HEAP32[$27 + 1288 >> 2] < 0;
$16 = $19 ? 0 - $16 | 0 : $16;
$16 = ($16 | 0) > -31744 ? $16 : -31744;
$2 = ($16 | 0) < 30720 ? $16 : 30720;
$16 = $2 - $17 | 0;
$12 = $16;
label$17 : {
if ($74) {
break label$17;
}
$12 = $16 - $40 | 0;
if (($16 | 0) > ($40 | 0)) {
break label$17;
}
if (($16 | 0) >= ($70 | 0)) {
break label$16;
}
$12 = $16 + $40 | 0;
}
$16 = $12;
if (($16 | 0) >= 1024) {
$12 = ($16 & -1024) + $66 | 0;
$28 = Math_imul($12 << 16 >> 16, $31);
$26 = $12 + 1024 | 0;
$29 = Math_imul($26 << 16 >> 16, $31);
break label$13;
}
$28 = $38;
$29 = $42;
$12 = $17;
$26 = $39;
switch (($16 >> 10) + 1 | 0) {
case 1:
break label$13;
case 0:
break label$15;
default:
break label$14;
}
}
$28 = $38;
$29 = $42;
$12 = $17;
$26 = $39;
if (($16 | 0) >= 0) {
break label$13;
}
}
$28 = $65;
$29 = $38;
$12 = $43;
$26 = $17;
break label$13;
}
$12 = ($16 & -1024 | 80) + $17 | 0;
$28 = Math_imul(0 - ($12 << 16) >> 16, $31);
$26 = $12 + 1024 | 0;
$29 = Math_imul(0 - ($26 << 16) >> 16, $31);
}
$22 = HEAP32[$27 + 1296 >> 2];
$16 = Math_imul($35, 56) + $30 | 0;
$27 = $2 - $12 << 16 >> 16;
$28 = Math_imul($27, $27) + $28 >> 10;
$2 = $2 - $26 << 16 >> 16;
$29 = Math_imul($2, $2) + $29 >> 10;
$2 = ($28 | 0) < ($29 | 0);
$27 = $2 ? $26 : $12;
HEAP32[$16 + 28 >> 2] = $27;
$12 = $2 ? $12 : $26;
HEAP32[$16 >> 2] = $12;
HEAP32[$16 + 32 >> 2] = ($2 ? $29 : $28) + $22;
HEAP32[$16 + 4 >> 2] = ($2 ? $28 : $29) + $22;
$12 = $12 << 4;
$12 = ($19 ? 0 - $12 | 0 : $12) + $37 | 0;
HEAP32[$16 + 24 >> 2] = $12;
$26 = $27 << 4;
$26 = ($19 ? 0 - $26 | 0 : $26) + $37 | 0;
HEAP32[$16 + 52 >> 2] = $26;
$12 = $12 + $41 | 0;
HEAP32[$16 + 8 >> 2] = $12;
$26 = $26 + $41 | 0;
HEAP32[$16 + 36 >> 2] = $26;
$2 = $61 << 4;
$12 = $12 - $2 | 0;
HEAP32[$16 + 16 >> 2] = $12;
$26 = $26 - $2 | 0;
HEAP32[$16 + 44 >> 2] = $26;
$12 = $12 - $13 | 0;
HEAP32[$16 + 12 >> 2] = $12;
$26 = $26 - $13 | 0;
HEAP32[$16 + 40 >> 2] = $26;
HEAP32[$16 + 20 >> 2] = $12 - $15;
HEAP32[$16 + 48 >> 2] = $26 - $15;
$35 = $35 + 1 | 0;
if (($35 | 0) != ($23 | 0)) {
continue;
}
break;
}
$16 = 0;
$12 = ($62 - 1 | 0) % 40 | 0;
$12 = ($12 | 0) < 0 ? $12 + 40 | 0 : $12;
HEAP32[$24 >> 2] = $12;
$15 = ($12 + $25 | 0) % 40 | 0;
$2 = 0;
$19 = ($23 | 0) < 2;
if (!$19) {
$26 = HEAP32[$30 + 4 >> 2];
$12 = 1;
while (1) {
$13 = HEAP32[(Math_imul($12, 56) + $30 | 0) + 4 >> 2];
$22 = $13;
$13 = ($13 | 0) < ($26 | 0);
$26 = $13 ? $22 : $26;
$2 = $13 ? $12 : $2;
$12 = $12 + 1 | 0;
if (($23 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$15 = $15 << 2;
$28 = $15 + (Math_imul($2, 1300) + $1 | 0) | 0;
$26 = HEAP32[$28 + 384 >> 2];
while (1) {
if (HEAP32[((Math_imul($16, 1300) + $1 | 0) + $15 | 0) + 384 >> 2] != ($26 | 0)) {
$12 = Math_imul($16, 56) + $30 | 0;
HEAP32[$12 + 4 >> 2] = HEAP32[$12 + 4 >> 2] + 134217727;
$2 = $12;
$12 = $12 + 32 | 0;
HEAP32[$12 >> 2] = HEAP32[$2 + 32 >> 2] + 134217727;
}
$16 = $16 + 1 | 0;
if (($23 | 0) != ($16 | 0)) {
continue;
}
break;
}
$12 = HEAP32[$30 + 32 >> 2];
$26 = HEAP32[$30 + 4 >> 2];
$2 = 0;
$16 = 1;
$13 = 0;
if (!$19) {
while (1) {
$19 = Math_imul($16, 56) + $30 | 0;
$22 = HEAP32[$19 + 4 >> 2];
$29 = $22;
$22 = ($22 | 0) > ($26 | 0);
$26 = $22 ? $29 : $26;
$19 = HEAP32[$19 + 32 >> 2];
$29 = $19;
$19 = ($12 | 0) > ($19 | 0);
$12 = $19 ? $29 : $12;
$13 = $22 ? $16 : $13;
$2 = $19 ? $16 : $2;
$16 = $16 + 1 | 0;
if (($23 | 0) != ($16 | 0)) {
continue;
}
break;
}
}
if (($12 | 0) < ($26 | 0)) {
memcpy((Math_imul($13, 1300) + $1 | 0) + $36 | 0, (Math_imul($2, 1300) + $1 | 0) + $36 | 0, 1300 - $36 | 0);
$16 = Math_imul($13, 56) + $30 | 0;
$12 = Math_imul($2, 56) + $30 | 0;
HEAP32[$16 + 24 >> 2] = HEAP32[$12 + 52 >> 2];
$13 = HEAP32[$12 + 48 >> 2];
$2 = HEAP32[$12 + 44 >> 2];
HEAP32[$16 + 16 >> 2] = $2;
HEAP32[$16 + 20 >> 2] = $13;
$2 = HEAP32[$12 + 40 >> 2];
$13 = HEAP32[$12 + 36 >> 2];
HEAP32[$16 + 8 >> 2] = $13;
HEAP32[$16 + 12 >> 2] = $2;
$13 = HEAP32[$12 + 32 >> 2];
$2 = HEAP32[$12 + 28 >> 2];
HEAP32[$16 >> 2] = $2;
HEAP32[$16 + 4 >> 2] = $13;
}
if (!(($25 | 0) > ($33 | 0) ? !$75 : 0)) {
$16 = $33 - $25 | 0;
HEAP8[$16 + $4 | 0] = (HEAP32[$28 + 544 >> 2] >>> 9 | 0) + 1 >>> 1;
$2 = ($16 << 1) + $5 | 0;
$12 = HEAP32[$7 + $15 >> 2];
$26 = $12 << 16 >> 16;
$16 = HEAP32[$28 + 704 >> 2];
$16 = ((Math_imul($26, $16 & 65535) >> 16) + Math_imul($16 >> 16, $26) | 0) + Math_imul(($12 >> 15) + 1 >> 1, $16) | 0;
HEAP16[$2 >> 1] = ($16 | 0) > 8388479 ? 32767 : ($16 | 0) < -8388736 ? -32768 : ($16 >>> 7 | 0) + 1 >>> 1 | 0;
HEAP32[((HEAP32[$0 + 4336 >> 2] - $25 << 2) + $0 | 0) + 1280 >> 2] = HEAP32[$28 + 1024 >> 2];
HEAP32[(HEAP32[$0 + 4332 >> 2] - $25 << 2) + $6 >> 2] = HEAP32[$28 + 864 >> 2];
}
HEAP32[$0 + 4336 >> 2] = HEAP32[$0 + 4336 >> 2] + 1;
HEAP32[$0 + 4332 >> 2] = HEAP32[$0 + 4332 >> 2] + 1;
$13 = $33 + 16 | 0;
$26 = 0;
while (1) {
$16 = Math_imul($26, 1300) + $1 | 0;
$12 = Math_imul($26, 56) + $30 | 0;
HEAP32[$16 + 1280 >> 2] = HEAP32[$12 + 12 >> 2];
HEAP32[$16 + 1284 >> 2] = HEAP32[$12 + 16 >> 2];
$2 = HEAP32[$12 + 8 >> 2];
HEAP32[($13 << 2) + $16 >> 2] = $2;
HEAP32[((HEAP32[$24 >> 2] << 2) + $16 | 0) + 704 >> 2] = $2;
$2 = HEAP32[$12 >> 2];
HEAP32[((HEAP32[$24 >> 2] << 2) + $16 | 0) + 544 >> 2] = $2;
HEAP32[((HEAP32[$24 >> 2] << 2) + $16 | 0) + 864 >> 2] = HEAP32[$12 + 24 >> 2] << 1;
HEAP32[((HEAP32[$24 >> 2] << 2) + $16 | 0) + 1024 >> 2] = HEAP32[$12 + 20 >> 2];
$2 = HEAP32[$16 + 1288 >> 2] + (($2 >> 9) + 1 >> 1) | 0;
HEAP32[$16 + 1288 >> 2] = $2;
HEAP32[((HEAP32[$24 >> 2] << 2) + $16 | 0) + 384 >> 2] = $2;
HEAP32[$16 + 1296 >> 2] = HEAP32[$12 + 4 >> 2];
$26 = $26 + 1 | 0;
if (($26 | 0) != ($23 | 0)) {
continue;
}
break;
}
HEAP32[(HEAP32[$24 >> 2] << 2) + $7 >> 2] = $64;
$33 = $33 + 1 | 0;
if (($33 | 0) != ($18 | 0)) {
continue;
}
break;
}
}
$14 = 0;
$26 = $18 << 2;
while (1) {
$16 = Math_imul($14, 1300) + $1 | 0;
$12 = $26 + $16 | 0;
$13 = HEAP32[$12 >> 2];
$2 = HEAP32[$12 + 4 >> 2];
HEAP32[$16 >> 2] = $13;
HEAP32[$16 + 4 >> 2] = $2;
$13 = HEAP32[$12 + 60 >> 2];
$2 = HEAP32[$12 + 56 >> 2];
HEAP32[$16 + 56 >> 2] = $2;
HEAP32[$16 + 60 >> 2] = $13;
$2 = HEAP32[$12 + 52 >> 2];
$13 = HEAP32[$12 + 48 >> 2];
HEAP32[$16 + 48 >> 2] = $13;
HEAP32[$16 + 52 >> 2] = $2;
$13 = HEAP32[$12 + 44 >> 2];
$2 = HEAP32[$12 + 40 >> 2];
HEAP32[$16 + 40 >> 2] = $2;
HEAP32[$16 + 44 >> 2] = $13;
$2 = HEAP32[$12 + 36 >> 2];
$13 = HEAP32[$12 + 32 >> 2];
HEAP32[$16 + 32 >> 2] = $13;
HEAP32[$16 + 36 >> 2] = $2;
$13 = HEAP32[$12 + 28 >> 2];
$2 = HEAP32[$12 + 24 >> 2];
HEAP32[$16 + 24 >> 2] = $2;
HEAP32[$16 + 28 >> 2] = $13;
$2 = HEAP32[$12 + 20 >> 2];
$13 = HEAP32[$12 + 16 >> 2];
HEAP32[$16 + 16 >> 2] = $13;
HEAP32[$16 + 20 >> 2] = $2;
$13 = HEAP32[$12 + 12 >> 2];
$2 = HEAP32[$12 + 8 >> 2];
HEAP32[$16 + 8 >> 2] = $2;
HEAP32[$16 + 12 >> 2] = $13;
$14 = $14 + 1 | 0;
if (($23 | 0) != ($14 | 0)) {
continue;
}
break;
}
__stack_pointer = $63;
return;
}
celt_fatal(16226, 16207, 364);
abort();
}
celt_fatal(16271, 16207, 422);
abort();
}
function dynalloc_analysis($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20) {
var $21 = Math_fround(0), $22 = 0, $23 = Math_fround(0), $24 = 0, $25 = 0, $26 = Math_fround(0), $27 = Math_fround(0), $28 = Math_fround(0), $29 = 0, $30 = 0, $31 = Math_fround(0), $32 = 0, $33 = Math_fround(0), $34 = 0, $35 = 0, $36 = Math_fround(0), $37 = 0, $38 = 0, $39 = 0, $40 = Math_fround(0), $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = Math_fround(0);
$24 = __stack_pointer;
$41 = $24;
$22 = (Math_imul($2, $5) << 2) + 15 & -16;
$30 = $24 - $22 | 0;
$24 = $30;
__stack_pointer = $24;
$32 = $24 - $22 | 0;
$29 = $32;
__stack_pointer = $29;
$24 = 0;
$38 = memset($6, 0, $2 << 2);
$25 = ($4 | 0) < 1;
if (!$25) {
$21 = Math_fround(9 - $7 | 0);
$6 = 0;
while (1) {
$22 = $6 << 2;
$7 = $6 + 5 | 0;
HEAPF32[$32 + $22 >> 2] = Math_fround(Math_fround(Math_imul($7, $7) | 0) * Math_fround(.006200000178068876)) + Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAP16[($6 << 1) + $8 >> 1]) * Math_fround(.0625)) + Math_fround(.5)) + $21) - HEAPF32[$22 + 32928 >> 2]);
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$37 = ($5 | 0) > 1 ? $5 : 1;
$33 = Math_fround(-31.899999618530273);
label$3 : {
label$4 : {
label$5 : {
label$6 : {
while (1) {
if (!$25) {
$22 = Math_imul($2, $24);
$6 = 0;
while (1) {
$21 = Math_fround(HEAPF32[($6 + $22 << 2) + $0 >> 2] - HEAPF32[($6 << 2) + $32 >> 2]);
$33 = $21 < $33 ? $33 : $21;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
$24 = $24 + 1 | 0;
if (($37 | 0) != ($24 | 0)) {
continue;
}
$24 = $29;
$22 = ($2 << 2) + 15 & -16;
$6 = $24 - $22 | 0;
__stack_pointer = $6;
$22 = $6 - $22 | 0;
__stack_pointer = $22;
if (($4 | 0) < 1) {
break label$6;
}
$7 = 0;
while (1) {
$25 = $7 << 2;
HEAPF32[$25 + $6 >> 2] = HEAPF32[$0 + $25 >> 2] - HEAPF32[$25 + $32 >> 2];
$7 = $7 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (!(($5 | 0) != 2 | ($4 | 0) < 1)) {
$7 = 0;
while (1) {
$25 = $7 << 2;
$8 = $25 + $6 | 0;
$21 = HEAPF32[$8 >> 2];
$23 = Math_fround(HEAPF32[($2 + $7 << 2) + $0 >> 2] - HEAPF32[$25 + $32 >> 2]);
HEAPF32[$8 >> 2] = $21 > $23 ? $21 : $23;
$7 = $7 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$8 = memcpy($22, $6, $4 << 2);
if (($4 | 0) > 1) {
break label$5;
}
$34 = $4 - 2 | 0;
$35 = 0;
break label$4;
}
$24 = $24 + 1 | 0;
if (($37 | 0) != ($24 | 0)) {
continue;
}
break;
}
$24 = $29;
$22 = ($2 << 2) + 15 & -16;
$6 = $24 - $22 | 0;
__stack_pointer = $6;
$22 = $6 - $22 | 0;
__stack_pointer = $22;
}
memcpy($22, $6, $4 << 2);
$34 = $4 - 2 | 0;
$39 = ($5 | 0) == 2;
break label$3;
}
$21 = HEAPF32[$6 >> 2];
$22 = 1;
while (1) {
$7 = ($22 << 2) + $6 | 0;
$23 = HEAPF32[$7 >> 2];
$21 = Math_fround($21 + Math_fround(-2));
$21 = $21 < $23 ? $23 : $21;
HEAPF32[$7 >> 2] = $21;
$22 = $22 + 1 | 0;
if (($22 | 0) != ($4 | 0)) {
continue;
}
break;
}
$34 = $4 - 2 | 0;
$35 = 0;
if (($4 | 0) <= 1) {
break label$4;
}
$22 = $34;
while (1) {
$7 = ($22 << 2) + $6 | 0;
$21 = HEAPF32[$7 >> 2];
$23 = Math_fround(HEAPF32[$7 + 4 >> 2] + Math_fround(-3));
HEAPF32[$7 >> 2] = $21 > $23 ? $21 : $23;
$7 = ($22 | 0) > 0;
$22 = $22 - 1 | 0;
if ($7) {
continue;
}
break;
}
$35 = 1;
}
$39 = ($5 | 0) == 2;
if (($4 | 0) < 1) {
break label$3;
}
$21 = Math_fround(Math_max(Math_fround($33 + Math_fround(-12)), Math_fround(0)));
$22 = 0;
while (1) {
$7 = $22 << 2;
$23 = HEAPF32[$7 + $6 >> 2];
$23 = Math_fround(Math_floor(Math_fround(Math_fround(HEAPF32[$7 + $8 >> 2] - ($21 > $23 ? $21 : $23)) + Math_fround(.5))));
label$16 : {
if (Math_fround(Math_abs($23)) < Math_fround(2147483648)) {
$24 = ~~$23;
break label$16;
}
$24 = -2147483648;
}
$29 = $7 + $20 | 0;
$25 = $24;
$7 = ($25 | 0) > 0 ? 0 : 0 - $25 | 0;
HEAP32[$29 >> 2] = 32 >>> (($7 | 0) < 5 ? $7 : 5);
$22 = $22 + 1 | 0;
if (($22 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
label$18 : {
if (!($16 | (($13 | 0) < 1 | ($14 | 0) < 51))) {
$42 = $4 - 3 | 0;
$8 = 0;
$43 = ($4 | 0) > 4;
$44 = $4 - 1 << 2;
$16 = 0;
while (1) {
$7 = Math_imul($2, $16);
$6 = $7 << 2;
$24 = $30 + $6 | 0;
$20 = $1 + $6 | 0;
$36 = HEAPF32[$20 >> 2];
$6 = HEAP32[$20 >> 2];
HEAP32[$24 >> 2] = $6;
$23 = $36;
$6 = 1;
if ($35) {
while (1) {
$22 = ($6 + $7 << 2) + $1 | 0;
$26 = HEAPF32[$22 - 4 >> 2];
$23 = Math_fround($23 + Math_fround(1.5));
$21 = HEAPF32[$22 >> 2];
$23 = $21 > $23 ? $23 : $21;
HEAPF32[($6 << 2) + $24 >> 2] = $23;
$8 = Math_fround($26 + Math_fround(.5)) < $21 ? $6 : $8;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
if (($8 | 0) >= 1) {
$21 = HEAPF32[($8 << 2) + $24 >> 2];
$6 = $8;
while (1) {
$22 = $6 - 1 | 0;
$25 = ($22 << 2) + $24 | 0;
$23 = HEAPF32[$25 >> 2];
$21 = Math_fround($21 + Math_fround(2));
$26 = HEAPF32[($7 + $22 << 2) + $1 >> 2];
$21 = $21 < $26 ? $21 : $26;
$21 = $21 > $23 ? $23 : $21;
HEAPF32[$25 >> 2] = $21;
$25 = ($6 | 0) > 1;
$6 = $22;
if ($25) {
continue;
}
break;
}
}
$6 = 2;
if ($43) {
while (1) {
$22 = ($6 + $7 << 2) + $1 | 0;
$25 = $22 - 8 | 0;
$21 = HEAPF32[$25 >> 2];
$23 = HEAPF32[$25 + 4 >> 2];
$25 = $21 > $23;
$26 = HEAPF32[$22 + 4 >> 2];
$27 = HEAPF32[$22 + 8 >> 2];
$29 = $26 > $27;
$28 = $25 ? $21 : $23;
$40 = $29 ? $26 : $27;
$21 = $25 ? $23 : $21;
$23 = $29 ? $27 : $26;
$25 = $21 > $23;
$31 = $25 ? $28 : $40;
$21 = $25 ? $21 : $23;
$29 = ($6 << 2) + $24 | 0;
$23 = HEAPF32[$29 >> 2];
$45 = $23;
$26 = HEAPF32[$22 >> 2];
$27 = $25 ? $40 : $28;
$22 = $26 > $27 ^ 1;
label$27 : {
if (!$22) {
$28 = $21 > $26 ? $26 : $21;
if (!($21 > $27 ^ 1)) {
break label$27;
}
$28 = $27 > $31 ? $31 : $27;
break label$27;
}
$28 = $21 > $27 ? $27 : $21;
if (!($21 > $26 ^ 1)) {
break label$27;
}
$28 = $26 < $31 ? $26 : $31;
}
if (!(Math_fround($28 + Math_fround(-1)) < $45)) {
label$30 : {
if (!$22) {
$28 = $21 > $26 ? $26 : $21;
if (!($21 > $27 ^ 1)) {
break label$30;
}
$28 = $27 > $31 ? $31 : $27;
break label$30;
}
$28 = $21 > $27 ? $27 : $21;
if (!($21 > $26 ^ 1)) {
break label$30;
}
$28 = $26 < $31 ? $26 : $31;
}
$21 = $28;
$23 = Math_fround($21 + Math_fround(-1));
}
HEAPF32[$29 >> 2] = $23;
$6 = $6 + 1 | 0;
if (($34 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$21 = HEAPF32[$20 + 4 >> 2];
$6 = $36 > $21;
$26 = HEAPF32[$24 >> 2];
$27 = $6 ? $36 : $21;
$23 = HEAPF32[$20 + 8 >> 2];
$21 = $6 ? $21 : $36;
$21 = Math_fround(($23 > $27 ? $27 : $21 < $23 ? $23 : $21) + Math_fround(-1));
HEAPF32[$24 >> 2] = $21 < $26 ? $26 : $21;
$23 = HEAPF32[$24 + 4 >> 2];
HEAPF32[$24 + 4 >> 2] = $21 < $23 ? $23 : $21;
$6 = ($34 << 2) + $24 | 0;
$20 = $6;
$27 = HEAPF32[$6 >> 2];
$6 = ($7 + $42 << 2) + $1 | 0;
$21 = HEAPF32[$6 >> 2];
$23 = HEAPF32[$6 + 4 >> 2];
$22 = $21 > $23;
$31 = $22 ? $21 : $23;
$26 = HEAPF32[$6 + 8 >> 2];
$21 = $22 ? $23 : $21;
$21 = Math_fround(($26 > $31 ? $31 : $21 < $26 ? $26 : $21) + Math_fround(-1));
HEAPF32[$20 >> 2] = $21 < $27 ? $27 : $21;
$6 = $24 + $44 | 0;
$23 = HEAPF32[$6 >> 2];
HEAPF32[$6 >> 2] = $21 < $23 ? $23 : $21;
$6 = 0;
if (($4 | 0) >= 1) {
while (1) {
$22 = $6 << 2;
$7 = $24 + $22 | 0;
$21 = HEAPF32[$7 >> 2];
$23 = HEAPF32[$22 + $32 >> 2];
HEAPF32[$7 >> 2] = $21 > $23 ? $21 : $23;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$16 = $16 + 1 | 0;
if (($37 | 0) != ($16 | 0)) {
continue;
}
break;
}
label$34 : {
label$35 : {
if (!$39) {
if (($3 | 0) >= ($4 | 0)) {
break label$34;
}
$6 = $3;
while (1) {
$24 = $6 << 2;
$22 = $30 + $24 | 0;
HEAPF32[$22 >> 2] = Math_max(Math_fround(HEAPF32[$0 + $24 >> 2] - HEAPF32[$22 >> 2]), Math_fround(0));
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
break label$35;
}
if (($3 | 0) >= ($4 | 0)) {
break label$34;
}
$6 = $3;
while (1) {
$1 = $2 + $6 << 2;
$22 = $30 + $1 | 0;
$21 = HEAPF32[$22 >> 2];
$7 = $6 << 2;
$24 = $30 + $7 | 0;
$23 = Math_fround(HEAPF32[$24 >> 2] + Math_fround(-4));
$21 = $21 > $23 ? $21 : $23;
HEAPF32[$22 >> 2] = $21;
$23 = HEAPF32[$24 >> 2];
$21 = Math_fround($21 + Math_fround(-4));
$21 = $21 < $23 ? $23 : $21;
HEAPF32[$24 >> 2] = $21;
HEAPF32[$24 >> 2] = Math_fround(Math_fround(Math_max(Math_fround(HEAPF32[$0 + $7 >> 2] - $21), Math_fround(0))) + Math_fround(Math_max(Math_fround(HEAPF32[$0 + $1 >> 2] - HEAPF32[$22 >> 2]), Math_fround(0)))) * Math_fround(.5);
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$1 = ($3 | 0) < ($4 | 0);
if (!$1) {
break label$34;
}
$6 = $3;
while (1) {
$24 = $6 << 2;
$22 = $30 + $24 | 0;
$21 = HEAPF32[$22 >> 2];
$23 = HEAPF32[$17 + $24 >> 2];
HEAPF32[$22 >> 2] = $21 > $23 ? $21 : $23;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (!$1) {
break label$34;
}
$6 = $3;
while (1) {
$24 = $6 << 2;
$21 = HEAPF32[$30 + $24 >> 2];
$21 = Math_fround(Math_floor(Math_fround(Math_fround(Math_fround(exp(+($21 < Math_fround(4) ? $21 : Math_fround(4)) * .6931471805599453)) * Math_fround(13)) + Math_fround(.5))));
label$41 : {
if (Math_fround(Math_abs($21)) < Math_fround(2147483648)) {
$22 = ~~$21;
break label$41;
}
$22 = -2147483648;
}
HEAP32[$19 + $24 >> 2] = $22;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$1 = ($3 | 0) >= ($4 | 0);
if (!(!$11 & ($10 | 0) != 0 | ($9 | $1))) {
$6 = $3;
while (1) {
$24 = ($6 << 2) + $30 | 0;
HEAPF32[$24 >> 2] = HEAPF32[$24 >> 2] * Math_fround(.5);
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
if (!$1) {
$6 = $3;
while (1) {
$21 = Math_fround(2);
label$47 : {
if (($6 | 0) >= 8) {
$21 = Math_fround(.5);
if (($6 | 0) < 12) {
break label$47;
}
}
$24 = ($6 << 2) + $30 | 0;
HEAPF32[$24 >> 2] = HEAPF32[$24 >> 2] * $21;
}
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
label$49 : {
if (!HEAP32[$18 >> 2]) {
break label$49;
}
$22 = ($4 | 0) < 19 ? $4 : 19;
if (($22 | 0) <= ($3 | 0)) {
break label$49;
}
$6 = $3;
while (1) {
$24 = ($6 << 2) + $30 | 0;
HEAPF32[$24 >> 2] = HEAPF32[$24 >> 2] + Math_fround(Math_fround(HEAPU8[($6 + $18 | 0) + 44 | 0]) * Math_fround(.015625));
$6 = $6 + 1 | 0;
if (($22 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$22 = 0;
if ($1) {
break label$18;
}
$8 = ($14 << 1) / 3 | 0;
$1 = 0;
$7 = HEAPU16[($3 << 1) + $12 >> 1];
$29 = (!$10 | !$9 & ($11 | 0) != 0) ^ 1;
while (1) {
$25 = $3 << 2;
$6 = $30 + $25 | 0;
$21 = HEAPF32[$6 >> 2];
$21 = $21 < Math_fround(4) ? $21 : Math_fround(4);
HEAPF32[$6 >> 2] = $21;
$6 = $7 << 16;
$24 = $3 + 1 | 0;
$7 = HEAP16[($24 << 1) + $12 >> 1];
$22 = Math_imul($7 - ($6 >> 16) | 0, $5) << $13;
label$52 : {
if (($22 | 0) <= 5) {
if (Math_fround(Math_abs($21)) < Math_fround(2147483648)) {
$6 = ~~$21;
} else {
$6 = -2147483648;
}
$22 = Math_imul($22, $6) << 3;
break label$52;
}
if (($22 | 0) >= 49) {
$21 = Math_fround($21 * Math_fround(8));
label$57 : {
if (Math_fround(Math_abs($21)) < Math_fround(2147483648)) {
$6 = ~~$21;
break label$57;
}
$6 = -2147483648;
}
$22 = (Math_imul($22, $6) << 3) / 8 | 0;
break label$52;
}
$21 = Math_fround(Math_fround($21 * Math_fround($22 | 0)) / Math_fround(6));
label$59 : {
if (Math_fround(Math_abs($21)) < Math_fround(2147483648)) {
$6 = ~~$21;
break label$59;
}
$6 = -2147483648;
}
$22 = Math_imul($6, 48);
}
$22 = $22 + $1 | 0;
if (!($22 >> 6 <= ($8 | 0) | $29)) {
$22 = $8 << 6;
HEAP32[($3 << 2) + $38 >> 2] = $22 - $1;
break label$18;
}
HEAP32[$25 + $38 >> 2] = $6;
$3 = $24;
$1 = $22;
if (($4 | 0) != ($24 | 0)) {
continue;
}
break;
}
break label$18;
}
$22 = 0;
if (($3 | 0) >= ($4 | 0)) {
break label$18;
}
while (1) {
HEAP32[($3 << 2) + $19 >> 2] = 13;
$3 = $3 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
HEAP32[$15 >> 2] = $22;
__stack_pointer = $41;
return $33;
}
function opus_fft_impl($0, $1) {
var $2 = 0, $3 = Math_fround(0), $4 = 0, $5 = Math_fround(0), $6 = Math_fround(0), $7 = 0, $8 = Math_fround(0), $9 = 0, $10 = 0, $11 = Math_fround(0), $12 = 0, $13 = Math_fround(0), $14 = 0, $15 = Math_fround(0), $16 = Math_fround(0), $17 = Math_fround(0), $18 = 0, $19 = Math_fround(0), $20 = Math_fround(0), $21 = 0, $22 = Math_fround(0), $23 = Math_fround(0), $24 = Math_fround(0), $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = Math_fround(0), $32 = Math_fround(0), $33 = Math_fround(0), $34 = 0, $35 = 0, $36 = 0, $37 = Math_fround(0), $38 = 0, $39 = 0, $40 = Math_fround(0), $41 = Math_fround(0), $42 = Math_fround(0), $43 = Math_fround(0), $44 = Math_fround(0), $45 = Math_fround(0), $46 = Math_fround(0), $47 = Math_fround(0), $48 = Math_fround(0), $49 = Math_fround(0), $50 = 0;
$29 = __stack_pointer - 32 | 0;
__stack_pointer = $29;
$14 = HEAP32[$0 + 8 >> 2];
HEAP32[$29 >> 2] = 1;
$7 = $0 + 12 | 0;
$9 = 1;
while (1) {
$2 = $4;
$10 = $2 << 2;
$18 = HEAPU16[($10 | 2) + $7 >> 1];
$4 = $2 + 1 | 0;
$9 = Math_imul(HEAP16[$7 + $10 >> 1], $9);
HEAP32[($4 << 2) + $29 >> 2] = $9;
if (($18 | 0) != 1) {
continue;
}
break;
}
$38 = ($14 | 0) > 0 ? $14 : 0;
$35 = HEAP16[(($4 << 2) + $0 | 0) + 10 >> 1];
label$2 : {
while (1) {
$12 = $35;
$4 = 0;
$35 = 1;
$30 = $2;
if ($2) {
$35 = HEAP16[(($30 << 2) + $0 | 0) + 10 >> 1];
$4 = $30 << 1;
}
label$5 : {
label$6 : {
switch (HEAP16[(($4 << 1) + $0 | 0) + 12 >> 1] - 2 | 0) {
case 0:
if (($12 | 0) != 4) {
break label$2;
}
$4 = 0;
$2 = $1;
$10 = HEAP32[($30 << 2) + $29 >> 2];
if (($10 | 0) <= 0) {
break label$5;
}
while (1) {
$6 = HEAPF32[$2 >> 2];
$3 = HEAPF32[$2 + 32 >> 2];
HEAPF32[$2 + 32 >> 2] = $6 - $3;
HEAPF32[$2 >> 2] = $3 + $6;
$7 = $2 + 36 | 0;
$6 = HEAPF32[$7 >> 2];
$3 = HEAPF32[$2 + 4 >> 2];
HEAPF32[$2 + 4 >> 2] = $6 + $3;
HEAPF32[$2 + 36 >> 2] = $3 - $6;
$6 = HEAPF32[$2 + 8 >> 2];
$3 = HEAPF32[$2 + 40 >> 2];
$7 = $2 + 44 | 0;
$5 = HEAPF32[$7 >> 2];
$8 = Math_fround(Math_fround($3 + $5) * Math_fround(.7071067690849304));
HEAPF32[$2 + 40 >> 2] = $6 - $8;
$9 = $2 + 12 | 0;
$11 = HEAPF32[$9 >> 2];
$3 = Math_fround(Math_fround($5 - $3) * Math_fround(.7071067690849304));
HEAPF32[$2 + 44 >> 2] = $11 - $3;
HEAPF32[$2 + 8 >> 2] = $6 + $8;
HEAPF32[$2 + 12 >> 2] = $3 + $11;
$6 = HEAPF32[$2 + 48 >> 2];
$3 = HEAPF32[$2 + 16 >> 2];
$7 = $2 + 52 | 0;
$5 = HEAPF32[$7 >> 2];
HEAPF32[$2 + 48 >> 2] = $3 - $5;
$9 = $2 + 20 | 0;
$8 = HEAPF32[$9 >> 2];
HEAPF32[$2 + 52 >> 2] = $6 + $8;
HEAPF32[$2 + 20 >> 2] = $8 - $6;
HEAPF32[$2 + 16 >> 2] = $5 + $3;
$6 = HEAPF32[$2 + 24 >> 2];
$7 = $2 + 60 | 0;
$3 = HEAPF32[$7 >> 2];
$5 = HEAPF32[$2 + 56 >> 2];
$8 = Math_fround(Math_fround($3 - $5) * Math_fround(.7071067690849304));
HEAPF32[$2 + 56 >> 2] = $6 - $8;
$9 = $2 + 28 | 0;
$11 = HEAPF32[$9 >> 2];
$3 = Math_fround(Math_fround($3 + $5) * Math_fround(-.7071067690849304));
HEAPF32[$2 + 60 >> 2] = $11 - $3;
HEAPF32[$2 + 28 >> 2] = $3 + $11;
HEAPF32[$2 + 24 >> 2] = $6 + $8;
$2 = $2 - -64 | 0;
$4 = $4 + 1 | 0;
if (($10 | 0) != ($4 | 0)) {
continue;
}
break;
}
break label$5;
case 2:
$34 = HEAP32[($30 << 2) + $29 >> 2];
if (($12 | 0) == 1) {
$4 = 0;
$2 = $1;
if (($34 | 0) < 1) {
break label$5;
}
while (1) {
$6 = HEAPF32[$2 >> 2];
$3 = HEAPF32[$2 + 16 >> 2];
$5 = Math_fround($6 + $3);
$8 = HEAPF32[$2 + 8 >> 2];
$11 = HEAPF32[$2 + 24 >> 2];
$15 = Math_fround($8 + $11);
HEAPF32[$2 + 16 >> 2] = $5 - $15;
HEAPF32[$2 >> 2] = $5 + $15;
$7 = $2 + 20 | 0;
$12 = $7;
$5 = HEAPF32[$2 + 4 >> 2];
$15 = HEAPF32[$2 + 20 >> 2];
$20 = Math_fround($5 + $15);
$7 = $2 + 12 | 0;
$22 = HEAPF32[$7 >> 2];
$9 = $2 + 28 | 0;
$16 = HEAPF32[$9 >> 2];
$17 = Math_fround($22 + $16);
HEAPF32[$12 >> 2] = $20 - $17;
$5 = Math_fround($5 - $15);
$8 = Math_fround($8 - $11);
HEAPF32[$2 + 28 >> 2] = $5 + $8;
$6 = Math_fround($6 - $3);
$3 = Math_fround($22 - $16);
HEAPF32[$2 + 24 >> 2] = $6 - $3;
HEAPF32[$2 + 12 >> 2] = $5 - $8;
HEAPF32[$2 + 8 >> 2] = $6 + $3;
HEAPF32[$2 + 4 >> 2] = $20 + $17;
$2 = $2 + 32 | 0;
$4 = $4 + 1 | 0;
if (($34 | 0) != ($4 | 0)) {
continue;
}
break;
}
break label$5;
}
if (($34 | 0) < 1) {
break label$5;
}
$26 = Math_imul($12, 3);
$27 = $12 << 1;
$21 = $34 << $38;
$28 = Math_imul($21, 3);
$39 = $21 << 1;
$50 = HEAP32[$0 + 48 >> 2];
$36 = 0;
while (1) {
if (($12 | 0) >= 1) {
$2 = (Math_imul($35, $36) << 3) + $1 | 0;
$25 = 0;
$4 = $50;
$7 = $4;
$9 = $4;
while (1) {
$10 = ($12 << 3) + $2 | 0;
$6 = HEAPF32[$10 + 4 >> 2];
$3 = HEAPF32[$10 >> 2];
$18 = ($26 << 3) + $2 | 0;
$5 = HEAPF32[$18 + 4 >> 2];
$8 = HEAPF32[$18 >> 2];
$11 = HEAPF32[$9 >> 2];
$15 = HEAPF32[$9 + 4 >> 2];
$20 = HEAPF32[$4 >> 2];
$22 = HEAPF32[$4 + 4 >> 2];
$16 = HEAPF32[$7 >> 2];
$14 = ($27 << 3) + $2 | 0;
$17 = HEAPF32[$14 + 4 >> 2];
$13 = HEAPF32[$14 >> 2];
$19 = HEAPF32[$7 + 4 >> 2];
$31 = Math_fround(Math_fround($16 * $17) + Math_fround($13 * $19));
$23 = HEAPF32[$2 + 4 >> 2];
$24 = Math_fround($31 + $23);
HEAPF32[$2 + 4 >> 2] = $24;
$16 = Math_fround(Math_fround($13 * $16) - Math_fround($17 * $19));
$17 = HEAPF32[$2 >> 2];
$13 = Math_fround($16 + $17);
HEAPF32[$2 >> 2] = $13;
$19 = Math_fround(Math_fround($11 * $6) + Math_fround($3 * $15));
$32 = Math_fround(Math_fround($20 * $5) + Math_fround($8 * $22));
$33 = Math_fround($19 + $32);
HEAPF32[$14 + 4 >> 2] = $24 - $33;
$6 = Math_fround(Math_fround($3 * $11) - Math_fround($6 * $15));
$3 = Math_fround(Math_fround($8 * $20) - Math_fround($5 * $22));
$5 = Math_fround($6 + $3);
HEAPF32[$14 >> 2] = $13 - $5;
HEAPF32[$2 >> 2] = $5 + HEAPF32[$2 >> 2];
HEAPF32[$2 + 4 >> 2] = $33 + HEAPF32[$2 + 4 >> 2];
$5 = Math_fround($23 - $31);
$6 = Math_fround($6 - $3);
HEAPF32[$10 + 4 >> 2] = $5 - $6;
$3 = Math_fround($17 - $16);
$8 = Math_fround($19 - $32);
HEAPF32[$10 >> 2] = $3 + $8;
HEAPF32[$18 + 4 >> 2] = $5 + $6;
HEAPF32[$18 >> 2] = $3 - $8;
$2 = $2 + 8 | 0;
$4 = ($28 << 3) + $4 | 0;
$7 = ($39 << 3) + $7 | 0;
$9 = ($21 << 3) + $9 | 0;
$25 = $25 + 1 | 0;
if (($25 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$36 = $36 + 1 | 0;
if (($36 | 0) != ($34 | 0)) {
continue;
}
break;
}
break label$5;
case 1:
$28 = HEAP32[($30 << 2) + $29 >> 2];
if (($28 | 0) < 1) {
break label$5;
}
$25 = $12 << 1;
$27 = HEAP32[$0 + 48 >> 2];
$14 = $28 << $38;
$6 = HEAPF32[($27 + (Math_imul($14, $12) << 3) | 0) + 4 >> 2];
$21 = $14 << 1;
$26 = 0;
while (1) {
$2 = (Math_imul($26, $35) << 3) + $1 | 0;
$7 = $27;
$9 = $7;
$18 = $12;
while (1) {
$4 = ($12 << 3) + $2 | 0;
$3 = HEAPF32[$4 >> 2];
$5 = HEAPF32[$9 >> 2];
$8 = HEAPF32[$4 + 4 >> 2];
$11 = HEAPF32[$9 + 4 >> 2];
$15 = Math_fround(Math_fround($3 * $5) - Math_fround($8 * $11));
$10 = ($25 << 3) + $2 | 0;
$20 = HEAPF32[$10 >> 2];
$22 = HEAPF32[$7 >> 2];
$16 = HEAPF32[$10 + 4 >> 2];
$17 = HEAPF32[$7 + 4 >> 2];
$13 = Math_fround(Math_fround($20 * $22) - Math_fround($16 * $17));
$19 = Math_fround($15 + $13);
HEAPF32[$4 >> 2] = HEAPF32[$2 >> 2] - Math_fround($19 * Math_fround(.5));
$3 = Math_fround(Math_fround($5 * $8) + Math_fround($3 * $11));
$5 = Math_fround(Math_fround($22 * $16) + Math_fround($20 * $17));
$8 = Math_fround($3 + $5);
HEAPF32[$4 + 4 >> 2] = HEAPF32[$2 + 4 >> 2] - Math_fround($8 * Math_fround(.5));
HEAPF32[$2 >> 2] = $19 + HEAPF32[$2 >> 2];
HEAPF32[$2 + 4 >> 2] = $8 + HEAPF32[$2 + 4 >> 2];
$3 = Math_fround($6 * Math_fround($3 - $5));
HEAPF32[$10 >> 2] = $3 + HEAPF32[$4 >> 2];
$5 = Math_fround($6 * Math_fround($15 - $13));
HEAPF32[$10 + 4 >> 2] = HEAPF32[$4 + 4 >> 2] - $5;
HEAPF32[$4 >> 2] = HEAPF32[$4 >> 2] - $3;
HEAPF32[$4 + 4 >> 2] = $5 + HEAPF32[$4 + 4 >> 2];
$2 = $2 + 8 | 0;
$7 = ($21 << 3) + $7 | 0;
$9 = ($14 << 3) + $9 | 0;
$18 = $18 - 1 | 0;
if ($18) {
continue;
}
break;
}
$26 = $26 + 1 | 0;
if (($28 | 0) != ($26 | 0)) {
continue;
}
break;
}
break label$5;
case 3:
break label$6;
default:
break label$5;
}
}
$28 = HEAP32[($30 << 2) + $29 >> 2];
if (($28 | 0) < 1) {
break label$5;
}
$18 = HEAP32[$0 + 48 >> 2];
$26 = $28 << $38;
$2 = Math_imul($26, $12);
$4 = $18 + ($2 << 4) | 0;
$6 = HEAPF32[$4 + 4 >> 2];
$3 = HEAPF32[$4 >> 2];
$2 = ($2 << 3) + $18 | 0;
$5 = HEAPF32[$2 + 4 >> 2];
$8 = HEAPF32[$2 >> 2];
$39 = $12 << 2;
$36 = Math_imul($12, 3);
$34 = $12 << 1;
$27 = 0;
while (1) {
if (($12 | 0) >= 1) {
$2 = (Math_imul($27, $35) << 3) + $1 | 0;
$4 = $2 + ($12 << 3) | 0;
$7 = ($34 << 3) + $2 | 0;
$9 = ($36 << 3) + $2 | 0;
$10 = ($39 << 3) + $2 | 0;
$25 = 0;
while (1) {
$11 = HEAPF32[$2 >> 2];
$15 = HEAPF32[$2 + 4 >> 2];
$14 = Math_imul($25, $26);
$21 = ($14 << 4) + $18 | 0;
$16 = HEAPF32[$21 >> 2];
$17 = HEAPF32[$7 + 4 >> 2];
$13 = HEAPF32[$7 >> 2];
$19 = HEAPF32[$21 + 4 >> 2];
$31 = Math_fround(Math_fround($16 * $17) + Math_fround($13 * $19));
$21 = Math_imul($14, 24) + $18 | 0;
$23 = HEAPF32[$21 >> 2];
$24 = HEAPF32[$9 + 4 >> 2];
$32 = HEAPF32[$9 >> 2];
$33 = HEAPF32[$21 + 4 >> 2];
$37 = Math_fround(Math_fround($23 * $24) + Math_fround($32 * $33));
$20 = Math_fround($31 + $37);
$21 = ($14 << 3) + $18 | 0;
$40 = HEAPF32[$21 >> 2];
$41 = HEAPF32[$4 + 4 >> 2];
$42 = HEAPF32[$4 >> 2];
$43 = HEAPF32[$21 + 4 >> 2];
$44 = Math_fround(Math_fround($40 * $41) + Math_fround($42 * $43));
$14 = ($14 << 5) + $18 | 0;
$45 = HEAPF32[$14 >> 2];
$46 = HEAPF32[$10 + 4 >> 2];
$47 = HEAPF32[$10 >> 2];
$48 = HEAPF32[$14 + 4 >> 2];
$49 = Math_fround(Math_fround($45 * $46) + Math_fround($47 * $48));
$22 = Math_fround($44 + $49);
HEAPF32[$2 + 4 >> 2] = $15 + Math_fround($20 + $22);
$13 = Math_fround(Math_fround($13 * $16) - Math_fround($17 * $19));
$19 = Math_fround(Math_fround($32 * $23) - Math_fround($24 * $33));
$16 = Math_fround($13 + $19);
$23 = Math_fround(Math_fround($42 * $40) - Math_fround($41 * $43));
$24 = Math_fround(Math_fround($47 * $45) - Math_fround($46 * $48));
$17 = Math_fround($23 + $24);
HEAPF32[$2 >> 2] = $11 + Math_fround($16 + $17);
$13 = Math_fround($13 - $19);
$19 = Math_fround($23 - $24);
$23 = Math_fround(Math_fround($6 * $13) + Math_fround($5 * $19));
$24 = Math_fround($15 + Math_fround(Math_fround($3 * $20) + Math_fround($8 * $22)));
HEAPF32[$4 + 4 >> 2] = $23 + $24;
$32 = Math_fround($11 + Math_fround(Math_fround($3 * $16) + Math_fround($8 * $17)));
$31 = Math_fround($31 - $37);
$33 = Math_fround($44 - $49);
$37 = Math_fround(Math_fround($6 * $31) + Math_fround($5 * $33));
HEAPF32[$4 >> 2] = $32 - $37;
HEAPF32[$10 + 4 >> 2] = $24 - $23;
HEAPF32[$10 >> 2] = $37 + $32;
$13 = Math_fround(Math_fround($6 * $19) - Math_fround($5 * $13));
$15 = Math_fround($15 + Math_fround(Math_fround($8 * $20) + Math_fround($3 * $22)));
HEAPF32[$7 + 4 >> 2] = $13 + $15;
$20 = Math_fround(Math_fround($5 * $31) - Math_fround($6 * $33));
$11 = Math_fround($11 + Math_fround(Math_fround($8 * $16) + Math_fround($3 * $17)));
HEAPF32[$7 >> 2] = $20 + $11;
HEAPF32[$9 + 4 >> 2] = $15 - $13;
HEAPF32[$9 >> 2] = $11 - $20;
$10 = $10 + 8 | 0;
$9 = $9 + 8 | 0;
$7 = $7 + 8 | 0;
$4 = $4 + 8 | 0;
$2 = $2 + 8 | 0;
$25 = $25 + 1 | 0;
if (($25 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$27 = $27 + 1 | 0;
if (($28 | 0) != ($27 | 0)) {
continue;
}
break;
}
}
$2 = $30 - 1 | 0;
if (($30 | 0) > 0) {
continue;
}
break;
}
__stack_pointer = $29 + 32 | 0;
return;
}
celt_fatal(42449, 42433, 76);
abort();
}
function clt_compute_allocation($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18) {
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, $39 = 0, $40 = 0, $41 = 0, $42 = 0;
$19 = __stack_pointer;
$41 = $19;
$8 = ($8 | 0) > 0 ? $8 : 0;
$39 = (($8 | 0) > 7) << 3;
$33 = $8 - $39 | 0;
$37 = HEAP32[$0 + 8 >> 2];
label$1 : {
if (($13 | 0) != 2) {
break label$1;
}
$35 = HEAPU8[($2 - $1 | 0) + 42192 | 0];
if (($35 | 0) > ($33 | 0)) {
$35 = 0;
break label$1;
}
$8 = $33 - $35 | 0;
$36 = (($8 | 0) > 7) << 3;
$33 = $8 - $36 | 0;
}
$8 = ($37 << 2) + 15 & -16;
$23 = $19 - $8 | 0;
$19 = $23;
__stack_pointer = $19;
$30 = $19 - $8 | 0;
$19 = $30;
__stack_pointer = $19;
$27 = $19 - $8 | 0;
$19 = $27;
__stack_pointer = $19;
$28 = $13 << 3;
$34 = $19 - $8 | 0;
__stack_pointer = $34;
$38 = ($1 | 0) >= ($2 | 0);
if (!$38) {
$25 = $14 + 3 | 0;
$24 = Math_imul(($5 - $14 | 0) - 5 | 0, $13);
$26 = HEAP32[$0 + 32 >> 2];
$20 = HEAPU16[$26 + ($1 << 1) >> 1];
$8 = $1;
while (1) {
$5 = $20 << 16;
$21 = $8 << 2;
$19 = $8 + 1 | 0;
$20 = HEAP16[($19 << 1) + $26 >> 1];
$5 = $20 - ($5 >> 16) | 0;
$22 = Math_imul($5, 3) << $14 << 3 >> 4;
HEAP32[$27 + $21 >> 2] = ($22 | 0) < ($28 | 0) ? $28 : $22;
HEAP32[$21 + $34 >> 2] = (Math_imul(Math_imul(($8 ^ -1) + $2 | 0, $24), $5) << $25 >> 6) - ($5 << $14 == 1 ? $28 : 0);
$8 = $19;
if (($2 | 0) != ($19 | 0)) {
continue;
}
break;
}
}
$40 = HEAP32[$0 + 48 >> 2];
$32 = $40 - 1 | 0;
$29 = 1;
label$6 : {
while (1) {
$31 = $29 + $32 >> 1;
if (!$38) {
$25 = Math_imul($31, $37);
$24 = HEAP32[$0 + 32 >> 2];
$21 = HEAPU16[$24 + ($2 << 1) >> 1];
$26 = HEAP32[$0 + 52 >> 2];
$20 = 0;
$8 = $2;
$22 = 0;
while (1) {
$5 = $21 << 16 >> 16;
$8 = $8 - 1 | 0;
$21 = HEAP16[($8 << 1) + $24 >> 1];
$5 = Math_imul(Math_imul($5 - $21 | 0, $13), HEAPU8[($8 + $25 | 0) + $26 | 0]) << $14;
$19 = $5 >> 2;
$22 = !$22;
if (($5 | 0) >= 4) {
$19 = HEAP32[($8 << 2) + $34 >> 2] + $19 | 0;
$19 = ($19 | 0) > 0 ? $19 : 0;
}
$5 = $8 << 2;
$19 = HEAP32[$5 + $3 >> 2] + $19 | 0;
label$11 : {
if (!(($19 | 0) < HEAP32[$5 + $27 >> 2] ? $22 : 0)) {
$5 = HEAP32[$4 + $5 >> 2];
$19 = ($5 | 0) > ($19 | 0) ? $19 : $5;
$22 = 1;
break label$11;
}
$19 = ($19 | 0) < ($28 | 0) ? 0 : $28;
$22 = 0;
}
$20 = $20 + $19 | 0;
if (($1 | 0) < ($8 | 0)) {
continue;
}
break;
}
$8 = ($20 | 0) > ($33 | 0);
$29 = $8 ? $29 : $31 + 1 | 0;
$32 = $8 ? $31 - 1 | 0 : $32;
if (($29 | 0) <= ($32 | 0)) {
continue;
}
$31 = $1;
if ($38) {
break label$6;
}
$42 = Math_imul($29, $37);
$26 = Math_imul($29 - 1 | 0, $37);
$32 = HEAP32[$0 + 32 >> 2];
$25 = HEAPU16[$32 + ($1 << 1) >> 1];
$24 = HEAP32[$0 + 52 >> 2];
$8 = $1;
$31 = $8;
while (1) {
$19 = $25 << 16;
$5 = $8 + 1 | 0;
$25 = HEAP16[($5 << 1) + $32 >> 1];
$19 = Math_imul($25 - ($19 >> 16) | 0, $13);
$20 = Math_imul($19, HEAPU8[($8 + $26 | 0) + $24 | 0]) << $14;
if (($29 | 0) >= ($40 | 0)) {
$19 = HEAP32[($8 << 2) + $4 >> 2];
} else {
$19 = Math_imul(HEAPU8[($8 + $42 | 0) + $24 | 0], $19) << $14 >> 2;
}
$21 = $20 >> 2;
if (($20 | 0) >= 4) {
$20 = HEAP32[($8 << 2) + $34 >> 2] + $21 | 0;
$21 = ($20 | 0) > 0 ? $20 : 0;
}
if (($19 | 0) >= 1) {
$19 = HEAP32[($8 << 2) + $34 >> 2] + $19 | 0;
$19 = ($19 | 0) > 0 ? $19 : 0;
}
$20 = $8 << 2;
$22 = HEAP32[$20 + $3 >> 2];
$21 = (($29 | 0) > 1 ? $22 : 0) + $21 | 0;
HEAP32[$20 + $23 >> 2] = $21;
$19 = ($19 - $21 | 0) + $22 | 0;
HEAP32[$20 + $30 >> 2] = ($19 | 0) > 0 ? $19 : 0;
$31 = ($22 | 0) > 0 ? $8 : $31;
$8 = $5;
if (($8 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$6;
}
$8 = ($33 | 0) < 0;
$29 = $8 ? $29 : $31 + 1 | 0;
$32 = $8 ? $31 - 1 | 0 : $32;
if (($29 | 0) <= ($32 | 0)) {
continue;
}
break;
}
$31 = $1;
}
$3 = ($13 | 0) > 1;
$24 = 64;
$25 = 0;
$26 = 0;
while (1) {
label$20 : {
$22 = $24 + $25 >> 1;
$5 = $2;
$20 = 0;
$21 = 0;
if (!$38) {
while (1) {
$5 = $5 - 1 | 0;
$8 = $5 << 2;
$19 = (Math_imul(HEAP32[$30 + $8 >> 2], $22) >> 6) + HEAP32[$8 + $23 >> 2] | 0;
label$23 : {
if (!(($19 | 0) < HEAP32[$8 + $27 >> 2] ? !$21 : 0)) {
$8 = HEAP32[$4 + $8 >> 2];
$8 = ($8 | 0) > ($19 | 0) ? $19 : $8;
$21 = 1;
break label$23;
}
$8 = ($19 | 0) < ($28 | 0) ? 0 : $28;
$21 = 0;
}
$20 = $20 + $8 | 0;
if (($1 | 0) < ($5 | 0)) {
continue;
}
break;
}
$8 = ($20 | 0) > ($33 | 0);
$25 = $8 ? $25 : $22;
$24 = $8 ? $22 : $24;
$26 = $26 + 1 | 0;
if (($26 | 0) != 6) {
continue;
}
$8 = 0;
$20 = $2;
$21 = 0;
while (1) {
$20 = $20 - 1 | 0;
$19 = $20 << 2;
$5 = HEAP32[$19 + $23 >> 2] + (Math_imul(HEAP32[$19 + $30 >> 2], $25) >> 6) | 0;
$22 = ($5 | 0) >= HEAP32[$19 + $27 >> 2];
$24 = $19 + $10 | 0;
$5 = $21 ? $5 : $22 ? $5 : ($5 | 0) < ($28 | 0) ? 0 : $28;
$19 = HEAP32[$4 + $19 >> 2];
$19 = ($5 | 0) < ($19 | 0) ? $5 : $19;
HEAP32[$24 >> 2] = $19;
$8 = $8 + $19 | 0;
$21 = $21 | $22;
if (($1 | 0) < ($20 | 0)) {
continue;
}
break;
}
break label$20;
}
$8 = 0;
$19 = ($33 | 0) < 0;
$25 = $19 ? $25 : $22;
$24 = $19 ? $22 : $24;
$26 = $26 + 1 | 0;
if (($26 | 0) != 6) {
continue;
}
}
break;
}
$22 = $2 - 1 | 0;
label$27 : {
label$28 : {
if (($31 | 0) >= ($22 | 0)) {
$5 = $2;
$19 = $35;
break label$28;
}
$32 = $1 + 2 | 0;
$30 = $28 + 8 | 0;
$21 = $2;
while (1) {
$19 = HEAP32[$0 + 32 >> 2];
$20 = HEAP16[$19 + ($21 << 1) >> 1];
$5 = $22;
$25 = HEAP16[($5 << 1) + $19 >> 1];
$29 = $20 - $25 | 0;
$34 = $5 << 2;
$22 = $34 + $10 | 0;
$23 = HEAP32[$22 >> 2];
$24 = $33 - $8 | 0;
$19 = HEAP16[($1 << 1) + $19 >> 1];
$26 = ($24 >>> 0) / ($20 - $19 >>> 0) | 0;
$19 = Math_imul($19 - $20 | 0, $26) + $24 + ($19 - $25) | 0;
$20 = ($23 + Math_imul($29, $26) | 0) + (($19 | 0) > 0 ? $19 : 0) | 0;
$19 = HEAP32[$27 + $34 >> 2];
if (($20 | 0) >= ((($19 | 0) > ($30 | 0) ? $19 : $30) | 0)) {
label$32 : {
label$33 : {
if ($16) {
if (!(($21 | 0) <= ($32 | 0) | (Math_imul(($21 | 0) > 17 ? ($17 | 0) < ($21 | 0) ? 9 : 7 : 0, $29) << $14 << 3 >> 4 < ($20 | 0) ? ($5 | 0) <= ($18 | 0) : 0))) {
ec_enc_bit_logp($15, 0, 1);
break label$32;
}
ec_enc_bit_logp($15, 1, 1);
break label$33;
}
if (!ec_dec_bit_logp($15, 1)) {
break label$32;
}
}
$5 = $21;
$19 = $35;
break label$27;
}
$20 = $20 - 8 | 0;
$23 = HEAP32[$22 >> 2];
$8 = $8 + 8 | 0;
}
$19 = $35;
if (($19 | 0) >= 1) {
$19 = HEAPU8[($5 - $1 | 0) + 42192 | 0];
}
$20 = ($20 | 0) < ($28 | 0) ? 0 : $28;
HEAP32[$22 >> 2] = $20;
$8 = (($8 - ($23 + $35 | 0) | 0) + $20 | 0) + $19 | 0;
$35 = $19;
$21 = $5;
$22 = $21 - 1 | 0;
if (($31 | 0) < ($22 | 0)) {
continue;
}
break;
}
}
$33 = $33 + $39 | 0;
}
label$38 : {
label$39 : {
label$40 : {
if (($1 | 0) < ($5 | 0)) {
label$42 : {
label$43 : {
label$44 : {
label$45 : {
$17 = $36;
label$46 : {
if (($19 | 0) >= 1) {
if (!$16) {
break label$45;
}
$19 = HEAP32[$6 >> 2];
$19 = ($5 | 0) > ($19 | 0) ? $19 : $5;
HEAP32[$6 >> 2] = $19;
ec_enc_uint($15, $19 - $1 | 0, ($5 - $1 | 0) + 1 | 0);
$19 = HEAP32[$6 >> 2];
break label$46;
}
HEAP32[$6 >> 2] = 0;
$19 = 0;
}
$20 = ($19 | 0) > ($1 | 0);
$19 = $20 ? 0 : $17;
if (!$36 | !$20) {
break label$43;
}
if (!$16) {
break label$44;
}
ec_enc_bit_logp($15, HEAP32[$7 >> 2], 1);
break label$42;
}
$19 = ec_dec_uint($15, ($5 - $1 | 0) + 1 | 0) + $1 | 0;
HEAP32[$6 >> 2] = $19;
$20 = ($1 | 0) < ($19 | 0);
$19 = $20 ? 0 : $36;
if (!$36 | !$20) {
break label$43;
}
}
HEAP32[$7 >> 2] = ec_dec_bit_logp($15, 1);
break label$42;
}
HEAP32[$7 >> 2] = 0;
}
$31 = $14 << 3;
$22 = HEAP32[$0 + 32 >> 2];
$30 = HEAP16[$22 + ($1 << 1) >> 1];
$25 = ($33 - $8 | 0) + $19 | 0;
$20 = HEAP16[($5 << 1) + $22 >> 1];
$23 = ($25 >>> 0) / ($20 - $30 >>> 0) | 0;
$24 = Math_imul($23, $30 - $20 | 0);
$20 = $30;
$8 = $1;
while (1) {
$21 = $20 << 16;
$27 = ($8 << 2) + $10 | 0;
$19 = $8 + 1 | 0;
$20 = HEAP16[($19 << 1) + $22 >> 1];
HEAP32[$27 >> 2] = HEAP32[$27 >> 2] + Math_imul($20 - ($21 >> 16) | 0, $23);
$8 = $19;
if (($5 | 0) != ($19 | 0)) {
continue;
}
break;
}
$8 = $24 + $25 | 0;
$21 = $30;
$19 = $1;
while (1) {
$27 = $21 << 16;
$23 = ($19 << 2) + $10 | 0;
$20 = $19 + 1 | 0;
$21 = HEAP16[($20 << 1) + $22 >> 1];
$19 = $21 - ($27 >> 16) | 0;
$19 = ($8 | 0) < ($19 | 0) ? $8 : $19;
HEAP32[$23 >> 2] = $19 + HEAP32[$23 >> 2];
$8 = $8 - $19 | 0;
$19 = $20;
if (($19 | 0) != ($5 | 0)) {
continue;
}
break;
}
$29 = ($13 | 0) > 1 ? 4 : 3;
$27 = 0;
label$50 : {
while (1) {
if (($1 | 0) == ($5 | 0)) {
break label$50;
}
$8 = $1 << 2;
$19 = $10 + $8 | 0;
$20 = HEAP32[$19 >> 2];
if (($20 | 0) <= -1) {
break label$40;
}
$23 = $30 << 16;
$21 = $20 + $27 | 0;
$25 = $1 + 1 | 0;
$30 = HEAP16[($25 << 1) + $22 >> 1];
$23 = $30 - ($23 >> 16) << $14;
label$52 : {
if (($23 | 0) >= 2) {
$26 = 0;
$20 = $21 - HEAP32[$4 + $8 >> 2] | 0;
$20 = ($20 | 0) > 0 ? $20 : 0;
$24 = $21 - $20 | 0;
HEAP32[$19 >> 2] = $24;
$21 = Math_imul($13, $23);
if (!(HEAP32[$7 >> 2] | (($23 | 0) == 2 | ($13 | 0) != 2))) {
$26 = HEAP32[$6 >> 2] > ($1 | 0);
}
$21 = $21 + $26 | 0;
$26 = $21 << 3;
$15 = (($23 | 0) == 2 ? $26 >> 2 : 0) + Math_imul($21, -21) | 0;
$23 = Math_imul(HEAP16[HEAP32[$0 + 56 >> 2] + ($1 << 1) >> 1] + $31 | 0, $21);
$1 = $15 + ($23 >> 1) | 0;
$34 = $24 + $1 | 0;
label$55 : {
if (($34 | 0) < $21 << 4) {
$1 = ($23 >> 2) + $1 | 0;
break label$55;
}
if ((Math_imul($21, 24) | 0) <= ($34 | 0)) {
break label$55;
}
$1 = ($23 >> 3) + $1 | 0;
}
$23 = $8 + $11 | 0;
$24 = (($21 << 2) + $24 | 0) + $1 | 0;
$21 = ((($24 | 0) > 0 ? $24 : 0) >>> 0) / ($21 >>> 0) >>> 3 | 0;
HEAP32[$23 >> 2] = $21;
$24 = HEAP32[$19 >> 2];
if ((Math_imul($13, $21) | 0) > $24 >> 3) {
$21 = $24 >> $3 >> 3;
HEAP32[$23 >> 2] = $21;
}
$21 = ($21 | 0) < 8 ? $21 : 8;
HEAP32[$23 >> 2] = $21;
HEAP32[$8 + $12 >> 2] = (HEAP32[$19 >> 2] + $1 | 0) <= (Math_imul($21, $26) | 0);
HEAP32[$19 >> 2] = HEAP32[$19 >> 2] - Math_imul(HEAP32[$23 >> 2], $28);
break label$52;
}
$1 = $21 - $28 | 0;
$20 = ($1 | 0) > 0 ? $1 : 0;
HEAP32[$19 >> 2] = $21 - $20;
HEAP32[$8 + $11 >> 2] = 0;
HEAP32[$8 + $12 >> 2] = 1;
}
if ($20) {
$1 = $8 + $11 | 0;
$15 = $1;
$21 = $20 >>> $29 | 0;
$1 = HEAP32[$1 >> 2];
$23 = 8 - $1 | 0;
$21 = ($21 | 0) < ($23 | 0) ? $21 : $23;
HEAP32[$15 >> 2] = $1 + $21;
$1 = Math_imul($21, $28);
HEAP32[$8 + $12 >> 2] = ($1 | 0) >= ($20 - $27 | 0);
$27 = $20 - $1 | 0;
} else {
$27 = 0;
}
if (HEAP32[$19 >> 2] <= -1) {
break label$39;
}
$1 = $25;
if (HEAP32[$8 + $11 >> 2] > -1) {
continue;
}
break;
}
celt_fatal(42296, 42253, 514);
abort();
}
HEAP32[$9 >> 2] = $27;
if (($2 | 0) > ($5 | 0)) {
$8 = $5;
while (1) {
$19 = $8 << 2;
$20 = $19 + $11 | 0;
$1 = $10 + $19 | 0;
$21 = HEAP32[$1 >> 2] >> $3 >> 3;
HEAP32[$20 >> 2] = $21;
if (HEAP32[$1 >> 2] != (Math_imul($21, $28) | 0)) {
break label$38;
}
HEAP32[$1 >> 2] = 0;
HEAP32[$12 + $19 >> 2] = HEAP32[$20 >> 2] < 1;
$8 = $8 + 1 | 0;
if (($8 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $41;
return $5;
}
celt_fatal(42216, 42253, 391);
abort();
}
celt_fatal(42265, 42253, 442);
abort();
}
celt_fatal(42265, 42253, 513);
abort();
}
celt_fatal(42328, 42253, 524);
abort();
}
function compute_theta($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
var $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = Math_fround(0), $16 = Math_fround(0), $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = Math_fround(0), $22 = 0, $23 = 0, $24 = 0, $25 = 0;
$22 = HEAP32[$0 + 36 >> 2];
$14 = HEAP32[$0 + 28 >> 2];
$12 = HEAP32[$0 + 16 >> 2];
$23 = HEAP32[$0 >> 2];
$11 = 1;
$19 = HEAP32[$5 >> 2];
$24 = HEAP32[$0 + 8 >> 2];
$20 = HEAP32[$0 + 12 >> 2];
$8 = HEAP16[HEAP32[$24 + 56 >> 2] + ($20 << 1) >> 1] + ($8 << 3) | 0;
$13 = ($19 - $8 | 0) - 32 | 0;
$17 = $8 >> 1;
$8 = ($4 | 0) == 2 & ($9 | 0) != 0;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
label$9 : {
label$10 : {
label$11 : {
label$12 : {
$17 = $17 + ($8 ? -16 : -4) | 0;
$8 = ($4 << 1) + ($8 ? -2 : -1) | 0;
$8 = (Math_imul($17, $8) + $19 | 0) / ($8 | 0) | 0;
$8 = ($8 | 0) > ($13 | 0) ? $13 : $8;
$8 = ($8 | 0) < 64 ? $8 : 64;
if (($8 | 0) >= 4) {
$11 = (HEAP16[(($8 & 7) << 1) + 42144 >> 1] >> 14 - ($8 >>> 3 | 0)) + 1 & -2;
if (($11 | 0) >= 257) {
break label$12;
}
}
$11 = ($12 | 0) > ($20 | 0) ? $11 : $9 ? 1 : $11;
label$14 : {
label$15 : {
label$16 : {
if ($23) {
$8 = stereo_itheta($2, $3, $9, $4, HEAP32[$0 + 44 >> 2]);
$19 = ec_tell_frac($14);
if (($11 | 0) == 1) {
break label$14;
}
label$18 : {
label$19 : {
if ($9) {
$0 = HEAP32[$0 + 48 >> 2];
if ($0) {
break label$19;
}
$0 = Math_imul($8, $11) - -8192 >> 14;
break label$18;
}
$8 = Math_imul($8, $11);
$13 = $8 - -8192 | 0;
$12 = $13 >> 14;
label$21 : {
if (($12 | 0) >= ($11 | 0)) {
$0 = $12;
break label$21;
}
if (($8 | 0) < 8192) {
$0 = $12;
break label$21;
}
if (!HEAP32[$0 + 56 >> 2]) {
$0 = $12;
break label$21;
}
$0 = $11;
$13 = (($13 & -16384) >>> 0) / ($0 >>> 0) << 16;
$8 = Math_imul($13 >> 13, $13 >> 16) + 32768 >> 16;
$18 = ((Math_imul($8, ((Math_imul((Math_imul($8, -626) + 16384 >> 15) + 8277 | 0, $8) << 1) + 32768 & -65536) - 501415936 >> 16) + 16384 >>> 15 | 0) - $8 << 16) - -2147483648 >> 16;
$17 = Math_clz32($18);
$8 = 1073741824 - $13 | 0;
$8 = Math_imul($8 >> 13, $8 >> 16) + 32768 >> 16;
$8 = ((Math_imul($8, ((Math_imul((Math_imul($8, -626) + 16384 >> 15) + 8277 | 0, $8) << 1) + 32768 & -65536) - 501415936 >> 16) + 16384 >>> 15 | 0) - $8 << 16) - -2147483648 >> 16;
$13 = Math_clz32($8);
$18 = $18 << $17 - 17 << 16 >> 16;
$8 = $8 << $13 - 17 << 16 >> 16;
$8 = Math_imul(($17 - $13 << 11) - (Math_imul($18, (Math_imul($18, -2597) + 16384 >> 15) + 7932 | 0) + 16384 >>> 15 | 0) + (Math_imul($8, (Math_imul($8, -2597) + 16384 >> 15) + 7932 | 0) + 16384 >>> 15) << 16 >> 16, ($4 << 23) - 8388608 >> 16) + 16384 >> 15;
$13 = HEAP32[$5 >> 2];
if (($8 | 0) > ($13 | 0)) {
break label$21;
}
$0 = (0 - $13 | 0) > ($8 | 0) ? 0 : $12;
}
if (($7 | 0) < 2) {
break label$16;
}
break label$9;
}
$8 = Math_imul($8, $11) + (((($8 | 0) > 8192 ? 32767 : -32767) | 0) / ($11 | 0) | 0) | 0;
$8 = ($8 | 0) < 0 ? 0 : $8 >> 14;
$0 = (($0 ^ -1) >>> 31 | 0) + (($8 | 0) < ($11 | 0) ? $8 : $11 - 1 | 0) | 0;
}
if (($4 | 0) <= 2) {
break label$9;
}
$8 = ($11 | 0) / 2 | 0;
$12 = Math_imul($8, 3) + 3 | 0;
$13 = Math_imul($0, 3);
$7 = ($0 | 0) > ($8 | 0);
ec_encode($14, $7 ? ($12 + ($8 ^ -1) | 0) + $0 | 0 : $13, $7 ? ($12 - $8 | 0) + $0 | 0 : $13 + 3 | 0, $8 + $12 | 0);
break label$8;
}
$19 = ec_tell_frac($14);
if (($11 | 0) == 1) {
break label$11;
}
if (!(!$9 | ($4 | 0) < 3)) {
$17 = $14;
$8 = ($11 | 0) / 2 | 0;
$7 = $8 + 1 | 0;
$12 = Math_imul($7, 3);
$13 = $8 + $12 | 0;
$0 = ec_decode($14, $13);
label$26 : {
if (($12 | 0) > ($0 | 0)) {
$0 = ($0 | 0) / 3 | 0;
break label$26;
}
$0 = $0 - ($7 << 1) | 0;
}
$7 = Math_imul($0, 3);
$18 = ($0 | 0) > ($8 | 0);
ec_dec_update($17, $18 ? (($8 ^ -1) + $12 | 0) + $0 | 0 : $7, $18 ? ($12 - $8 | 0) + $0 | 0 : $7 + 3 | 0, $13);
break label$8;
}
if ($9 ? 0 : ($7 | 0) <= 1) {
break label$15;
}
$0 = ec_dec_uint($14, $11 + 1 | 0);
break label$8;
}
$18 = $11 - $0 | 0;
$17 = $18 + 1 | 0;
$25 = $0 + 1 | 0;
$8 = $11 >> 1;
$13 = ($8 | 0) < ($0 | 0);
$7 = $13 ? $17 : $25;
$8 = $8 + 1 | 0;
$12 = Math_imul($8, $8);
$8 = $13 ? $12 - (Math_imul($18 + 2 | 0, $17) >> 1) | 0 : Math_imul($0, $25) >> 1;
ec_encode($14, $8, $7 + $8 | 0, $12);
break label$8;
}
$7 = $14;
$2 = $11 >> 1;
$9 = $2 + 1 | 0;
$3 = Math_imul($9, $9);
$0 = ec_decode($14, $3);
label$30 : {
if (($0 | 0) < Math_imul($2, $9) >> 1) {
$9 = isqrt32($0 << 3 | 1) - 1 >>> 1 | 0;
$0 = $9 + 1 | 0;
$2 = Math_imul($0, $9) >>> 1 | 0;
break label$30;
}
$9 = $11 + 1 | 0;
$2 = $9;
$9 = ($9 << 1) - isqrt32(($0 ^ -1) + $3 << 3 | 1) >>> 1 | 0;
$0 = $2 - $9 | 0;
$2 = $3 - (Math_imul($0, ($11 - $9 | 0) + 2 | 0) >> 1) | 0;
}
ec_dec_update($7, $2, $0 + $2 | 0, $3);
$8 = ($9 << 14 >>> 0) / ($11 >>> 0) | 0;
break label$5;
}
if (!$9) {
break label$5;
}
$9 = 0;
$12 = 0;
label$32 : {
if (($8 | 0) < 8193) {
break label$32;
}
$11 = HEAP32[$0 + 52 >> 2];
if ($11) {
break label$32;
}
$12 = 1;
if (($4 | 0) < 1) {
break label$32;
}
$12 = !$11;
$11 = 0;
while (1) {
$8 = ($11 << 2) + $3 | 0;
HEAPF32[$8 >> 2] = -HEAPF32[$8 >> 2];
$11 = $11 + 1 | 0;
if (($11 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
if (($4 | 0) < 1) {
break label$10;
}
$15 = HEAPF32[($20 << 2) + $22 >> 2];
$16 = HEAPF32[(HEAP32[$24 + 8 >> 2] + $20 << 2) + $22 >> 2];
$21 = Math_fround(Math_fround(Math_sqrt(Math_fround(Math_fround(Math_fround($15 * $15) + Math_fround(1.0000000036274937e-15)) + Math_fround($16 * $16)))) + Math_fround(1.0000000036274937e-15));
$16 = Math_fround($16 / $21);
$15 = Math_fround($15 / $21);
while (1) {
$11 = $9 << 2;
$8 = $11 + $2 | 0;
HEAPF32[$8 >> 2] = Math_fround($15 * HEAPF32[$8 >> 2]) + Math_fround($16 * HEAPF32[$3 + $11 >> 2]);
$9 = $9 + 1 | 0;
if (($9 | 0) != ($4 | 0)) {
continue;
}
break;
}
break label$10;
}
celt_fatal(42160, 41800, 669);
abort();
}
$12 = 0;
if (!$9) {
break label$7;
}
}
$4 = 0;
label$35 : {
if (HEAP32[$5 >> 2] < 17) {
break label$35;
}
$4 = 0;
if (HEAP32[$0 + 32 >> 2] < 17) {
break label$35;
}
if ($23) {
ec_enc_bit_logp($14, $12, 2);
$4 = $12;
break label$35;
}
$4 = ec_dec_bit_logp($14, 2);
}
$12 = HEAP32[$0 + 52 >> 2] ? 0 : $4;
break label$7;
}
ec_enc_uint($14, $0, $11 + 1 | 0);
}
if (($0 | 0) <= -1) {
break label$6;
}
$0 = $0 << 14;
$8 = ($0 >>> 0) / ($11 >>> 0) | 0;
if (!$9 | !$23) {
break label$5;
}
if ($0 >>> 0 < $11 >>> 0) {
$12 = 0;
if (($4 | 0) < 1) {
break label$7;
}
$15 = HEAPF32[($20 << 2) + $22 >> 2];
$16 = HEAPF32[(HEAP32[$24 + 8 >> 2] + $20 << 2) + $22 >> 2];
$21 = Math_fround(Math_fround(Math_sqrt(Math_fround(Math_fround(Math_fround($15 * $15) + Math_fround(1.0000000036274937e-15)) + Math_fround($16 * $16)))) + Math_fround(1.0000000036274937e-15));
$16 = Math_fround($16 / $21);
$15 = Math_fround($15 / $21);
$9 = 0;
while (1) {
$0 = $9 << 2;
$11 = $2 + $0 | 0;
HEAPF32[$11 >> 2] = Math_fround($15 * HEAPF32[$11 >> 2]) + Math_fround($16 * HEAPF32[$0 + $3 >> 2]);
$9 = $9 + 1 | 0;
if (($9 | 0) != ($4 | 0)) {
continue;
}
break;
}
break label$7;
}
if (($4 | 0) < 1) {
break label$5;
}
$9 = 0;
while (1) {
$0 = $9 << 2;
$11 = $2 + $0 | 0;
$16 = Math_fround(HEAPF32[$11 >> 2] * Math_fround(.7071067690849304));
$0 = $0 + $3 | 0;
$15 = Math_fround(HEAPF32[$0 >> 2] * Math_fround(.7071067690849304));
HEAPF32[$11 >> 2] = $16 + $15;
HEAPF32[$0 >> 2] = $15 - $16;
$9 = $9 + 1 | 0;
if (($9 | 0) != ($4 | 0)) {
continue;
}
break;
}
break label$5;
}
$4 = ec_tell_frac($14);
$0 = $4 - $19 | 0;
HEAP32[$5 >> 2] = HEAP32[$5 >> 2] - $0;
break label$4;
}
celt_fatal(42104, 41800, 838);
abort();
}
$9 = ec_tell_frac($14);
$0 = $9 - $19 | 0;
HEAP32[$5 >> 2] = HEAP32[$5 >> 2] - $0;
$9 = 16384;
if (($8 | 0) == 16384) {
break label$3;
}
if ($8) {
break label$2;
}
$12 = $8;
}
HEAP32[$10 >> 2] = HEAP32[$10 >> 2] & (-1 << $6 ^ -1);
$4 = -16384;
$3 = 32767;
$9 = 0;
$2 = 0;
break label$1;
}
HEAP32[$10 >> 2] = HEAP32[$10 >> 2] & (-1 << $6 ^ -1) << $6;
$2 = 32767;
$12 = 0;
$3 = 0;
$4 = 16384;
break label$1;
}
$2 = $8 << 16;
$9 = Math_imul($2 >> 13, $2 >> 16) + 32768 >> 16;
$3 = ((Math_imul($9, ((Math_imul((Math_imul($9, -626) + 16384 >> 15) + 8277 | 0, $9) << 1) + 32768 & -65536) - 501415936 >> 16) + 16384 >>> 15 | 0) - $9 << 16) - -2147483648 >> 16;
$11 = Math_clz32($3);
$9 = 1073741824 - $2 | 0;
$9 = Math_imul($9 >> 13, $9 >> 16) + 32768 >> 16;
$2 = ((Math_imul($9, ((Math_imul((Math_imul($9, -626) + 16384 >> 15) + 8277 | 0, $9) << 1) + 32768 & -65536) - 501415936 >> 16) + 16384 >>> 15 | 0) - $9 << 16) - -2147483648 >> 16;
$9 = Math_clz32($2);
$5 = $11 - $9 << 11;
$11 = $3 << $11 - 17 << 16 >> 16;
$9 = $2 << $9 - 17 << 16 >> 16;
$4 = Math_imul($5 - (Math_imul($11, (Math_imul($11, -2597) + 16384 >> 15) + 7932 | 0) + 16384 >>> 15 | 0) + (Math_imul($9, (Math_imul($9, -2597) + 16384 >> 15) + 7932 | 0) + 16384 >>> 15) << 16 >> 16, ($4 << 23) - 8388608 >> 16) + 16384 >> 15;
$12 = 0;
$9 = $8;
}
HEAP32[$1 + 20 >> 2] = $0;
HEAP32[$1 + 16 >> 2] = $9;
HEAP32[$1 + 12 >> 2] = $4;
HEAP32[$1 + 8 >> 2] = $2;
HEAP32[$1 + 4 >> 2] = $3;
HEAP32[$1 >> 2] = $12;
}
function silk_noise_shape_analysis_FLP($0, $1, $2, $3) {
var $4 = 0, $5 = Math_fround(0), $6 = 0, $7 = 0, $8 = 0, $9 = Math_fround(0), $10 = Math_fround(0), $11 = 0, $12 = Math_fround(0), $13 = 0, $14 = Math_fround(0), $15 = 0, $16 = Math_fround(0), $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = Math_fround(0), $22 = Math_fround(0), $23 = Math_fround(0), $24 = 0, $25 = 0, $26 = 0;
$11 = __stack_pointer - 1184 | 0;
__stack_pointer = $11;
$13 = HEAP32[$0 + 4600 >> 2];
$4 = HEAP32[$0 + 4716 >> 2];
$5 = Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4700 >> 2] + HEAP32[$0 + 4696 >> 2] | 0) * Math_fround(.5)) * Math_fround(30517578125e-15));
HEAPF32[$1 + 696 >> 2] = $5;
$10 = Math_fround($4 | 0);
$12 = Math_fround($10 * Math_fround(.0078125));
$9 = Math_fround(1 / (exp(+Math_fround(Math_fround($12 + Math_fround(-20)) * Math_fround(-.25))) + 1));
HEAPF32[$1 + 700 >> 2] = $9;
if (!HEAP32[$0 + 4676 >> 2]) {
$14 = Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4532 >> 2]) * Math_fround(-.00390625)) + Math_fround(1));
$12 = Math_fround($12 - Math_fround($14 * Math_fround($14 * Math_fround(Math_fround(Math_fround($5 * Math_fround(.5)) + Math_fround(.5)) * Math_fround($9 + $9)))));
}
label$2 : {
if (HEAPU8[$0 + 4765 | 0] == 2) {
HEAP8[$0 + 4766 | 0] = 0;
$5 = HEAPF32[$0 + 10060 >> 2];
$21 = Math_fround($12 + Math_fround($5 + $5));
break label$2;
}
$16 = Math_fround(Math_fround(Math_fround(Math_fround($10 * Math_fround(-.4000000059604645)) * Math_fround(.0078125)) + Math_fround(6)) * Math_fround(Math_fround(1) - $5));
$4 = Math_imul(HEAP16[$0 + 4580 >> 1], 5);
$6 = ($4 | 0) / 2 | 0;
$5 = Math_fround(0);
if (($4 | 0) >= 2) {
$7 = HEAP32[$0 + 4576 >> 2] << 1;
$14 = Math_fround($7 | 0);
$9 = Math_fround(0);
$4 = 0;
$8 = $7 << 2;
while (1) {
$10 = Math_fround(log10(+Math_fround($14 + Math_fround(silk_energy_FLP($2, $7)))) * 3.32192809488736);
$5 = $4 ? Math_fround($5 + Math_fround(Math_abs(Math_fround($10 - $9)))) : $5;
$2 = $2 + $8 | 0;
$9 = $10;
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$21 = Math_fround($16 + $12);
if (!(Math_fround(Math_fround($6 - 1 | 0) * Math_fround(.6000000238418579)) < $5 ^ 1)) {
HEAP8[$0 + 4766 | 0] = 0;
break label$2;
}
HEAP8[$0 + 4766 | 0] = 1;
}
$2 = HEAP32[$0 + 4580 >> 2];
label$7 : {
if (($2 | 0) < 1) {
$4 = 0;
break label$7;
}
$15 = $3 - ($13 << 2) | 0;
$5 = Math_fround(HEAPF32[$1 + 704 >> 2] * Math_fround(.0010000000474974513));
$23 = Math_fround(Math_fround(.9399999976158142) / Math_fround(Math_fround($5 * $5) + Math_fround(1)));
$10 = Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4672 >> 2]) * Math_fround(152587890625e-16)) + Math_fround(HEAPF32[$1 + 700 >> 2] * Math_fround(.009999999776482582)));
$22 = Math_fround(Math_fround(1) - Math_fround($10 * $10));
$16 = Math_fround(-$10);
while (1) {
$4 = HEAP32[$0 + 4576 >> 2];
$6 = Math_imul($4, 3);
$2 = (HEAP32[$0 + 4604 >> 2] - $6 | 0) / 2 | 0;
silk_apply_sine_window_FLP($11 + 224 | 0, $15, 1, $2);
$7 = $2 << 2;
memcpy($7 + ($11 + 224 | 0) | 0, $7 + $15 | 0, Math_imul($4, 12));
$4 = $2 + $6 << 2;
silk_apply_sine_window_FLP($4 + ($11 + 224 | 0) | 0, $4 + $15 | 0, 2, $2);
$8 = HEAP32[$0 + 4588 >> 2];
$2 = HEAP32[$0 + 4636 >> 2];
$4 = HEAP32[$0 + 4604 >> 2];
label$10 : {
if (HEAP32[$0 + 4672 >> 2] >= 1) {
silk_warped_autocorrelation_FLP($11 + 112 | 0, $11 + 224 | 0, $10, $4, $2);
break label$10;
}
silk_autocorrelation_FLP($11 + 112 | 0, $11 + 224 | 0, $4, $2 + 1 | 0);
}
$5 = HEAPF32[$11 + 112 >> 2];
HEAPF32[$11 + 112 >> 2] = $5 + Math_fround(Math_fround($5 * Math_fround(29999999242136255e-21)) + Math_fround(1));
$5 = silk_schur_FLP($11, $11 + 112 | 0, HEAP32[$0 + 4636 >> 2]);
$2 = (Math_imul($17, 96) + $1 | 0) + 244 | 0;
silk_k2a_FLP($2, $11, HEAP32[$0 + 4636 >> 2]);
$3 = ($17 << 2) + $1 | 0;
$9 = Math_fround(Math_sqrt($5));
HEAPF32[$3 >> 2] = $9;
$7 = HEAP32[$0 + 4636 >> 2];
if (HEAP32[$0 + 4672 >> 2] >= 1) {
$5 = Math_fround(HEAPF32[(($7 << 2) + $2 | 0) - 4 >> 2] * $16);
if (($7 | 0) >= 2) {
$4 = $7 - 2 | 0;
while (1) {
$5 = Math_fround(Math_fround($5 + HEAPF32[($4 << 2) + $2 >> 2]) * $16);
$6 = ($4 | 0) > 0;
$4 = $4 - 1 | 0;
if ($6) {
continue;
}
break;
}
}
HEAPF32[$3 >> 2] = $9 * Math_fround(Math_fround(1) / Math_fround(Math_fround(1) - $5));
}
$24 = $8 << 2;
silk_bwexpander_FLP($2, $7, $23);
$6 = HEAP32[$0 + 4636 >> 2];
label$15 : {
if (HEAP32[$0 + 4672 >> 2] >= 1) {
$18 = $6 - 1 | 0;
$20 = ($6 | 0) < 2;
if (!$20) {
$5 = HEAPF32[($18 << 2) + $2 >> 2];
$4 = $18;
while (1) {
$7 = $4 - 1 | 0;
$8 = ($7 << 2) + $2 | 0;
$5 = Math_fround(HEAPF32[$8 >> 2] - Math_fround($10 * $5));
HEAPF32[$8 >> 2] = $5;
$8 = ($4 | 0) > 1;
$4 = $7;
if ($8) {
continue;
}
break;
}
}
$7 = ($6 | 0) < 1;
if ($7) {
break label$15;
}
$5 = HEAPF32[$2 >> 2];
$12 = Math_fround($22 / Math_fround(Math_fround($10 * $5) + Math_fround(1)));
HEAPF32[$2 >> 2] = $12 * $5;
$13 = 1;
if (($6 | 0) != 1) {
while (1) {
$4 = ($13 << 2) + $2 | 0;
HEAPF32[$4 >> 2] = $12 * HEAPF32[$4 >> 2];
$13 = $13 + 1 | 0;
if (($13 | 0) != ($6 | 0)) {
continue;
}
break;
}
if ($7) {
break label$15;
}
$13 = ($6 | 0) == 1;
}
$25 = ($18 << 2) + $2 | 0;
$19 = 0;
$7 = 0;
while (1) {
$5 = Math_fround(-1);
$4 = 0;
while (1) {
$9 = Math_fround(Math_abs(HEAPF32[($4 << 2) + $2 >> 2]));
$8 = $9 > $5;
$5 = $8 ? $9 : $5;
$7 = $8 ? $4 : $7;
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
if ($5 <= Math_fround(3.999000072479248)) {
break label$15;
}
if (!$20) {
$9 = HEAPF32[$2 >> 2];
$4 = 1;
while (1) {
$8 = ($4 << 2) + $2 | 0;
$14 = HEAPF32[$8 >> 2];
HEAPF32[$8 - 4 >> 2] = $9 + Math_fround($10 * $14);
$9 = $14;
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$9 = Math_fround(Math_fround(1) / $12);
$4 = 0;
while (1) {
$8 = ($4 << 2) + $2 | 0;
HEAPF32[$8 >> 2] = $9 * HEAPF32[$8 >> 2];
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
silk_bwexpander_FLP($2, $6, Math_fround(Math_fround(.9900000095367432) - Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($19 | 0) * Math_fround(.10000000149011612)) + Math_fround(.800000011920929)) * Math_fround($5 + Math_fround(-3.999000072479248))) / Math_fround($5 * Math_fround($7 + 1 | 0)))));
if (!$20) {
$5 = HEAPF32[$25 >> 2];
$4 = $18;
while (1) {
$8 = $4 - 1 | 0;
$3 = ($8 << 2) + $2 | 0;
$5 = Math_fround(HEAPF32[$3 >> 2] - Math_fround($10 * $5));
HEAPF32[$3 >> 2] = $5;
$3 = ($4 | 0) > 1;
$4 = $8;
if ($3) {
continue;
}
break;
}
}
$5 = HEAPF32[$2 >> 2];
$12 = Math_fround($22 / Math_fround(Math_fround($10 * $5) + Math_fround(1)));
HEAPF32[$2 >> 2] = $12 * $5;
$4 = 1;
if (!$13) {
while (1) {
$8 = ($4 << 2) + $2 | 0;
HEAPF32[$8 >> 2] = $12 * HEAPF32[$8 >> 2];
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$19 = $19 + 1 | 0;
if (($19 | 0) != 10) {
continue;
}
break;
}
break label$15;
}
$3 = 0;
$7 = 0;
if (($6 | 0) < 1) {
break label$15;
}
while (1) {
$5 = Math_fround(-1);
$4 = 0;
while (1) {
$9 = Math_fround(Math_abs(HEAPF32[($4 << 2) + $2 >> 2]));
$8 = $9 > $5;
$5 = $8 ? $9 : $5;
$7 = $8 ? $4 : $7;
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
if ($5 <= Math_fround(3.999000072479248)) {
break label$15;
}
silk_bwexpander_FLP($2, $6, Math_fround(Math_fround(.9900000095367432) - Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($3 | 0) * Math_fround(.10000000149011612)) + Math_fround(.800000011920929)) * Math_fround($5 + Math_fround(-3.999000072479248))) / Math_fround($5 * Math_fround($7 + 1 | 0)))));
$3 = $3 + 1 | 0;
if (($3 | 0) != 10) {
continue;
}
break;
}
}
$15 = $15 + $24 | 0;
$2 = HEAP32[$0 + 4580 >> 2];
$17 = $17 + 1 | 0;
if (($2 | 0) > ($17 | 0)) {
continue;
}
break;
}
$4 = 0;
$26 = exp2(+Math_fround($21 * Math_fround(-.1599999964237213)));
if (($2 | 0) < 1) {
break label$7;
}
$7 = ($2 | 0) > 0;
$5 = Math_fround($26);
while (1) {
$6 = ($4 << 2) + $1 | 0;
HEAPF32[$6 >> 2] = Math_fround(HEAPF32[$6 >> 2] * $5) + Math_fround(1.2483305931091309);
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
$4 = $7;
}
$14 = Math_fround(HEAP32[$0 + 4532 >> 2]);
$9 = Math_fround(Math_fround($14 * Math_fround(.00390625)) * Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4696 >> 2]) * Math_fround(30517578125e-15)) + Math_fround(-1)) * Math_fround(.5)) + Math_fround(1)) * Math_fround(4)));
$13 = HEAPU8[$0 + 4765 | 0];
label$33 : {
label$34 : {
label$35 : {
if (($13 | 0) == 2) {
if ($4) {
$10 = Math_fround(Math_fround(.20000000298023224) / Math_fround(HEAP32[$0 + 4576 >> 2]));
$6 = 0;
while (1) {
$7 = ($6 << 2) + $1 | 0;
$5 = Math_fround($10 + Math_fround(Math_fround(3) / Math_fround(HEAP32[$7 + 228 >> 2])));
HEAPF32[$7 + 628 >> 2] = $5 + Math_fround(-1);
HEAPF32[$7 + 644 >> 2] = Math_fround(Math_fround(1) - $5) - Math_fround($9 * $5);
$6 = $6 + 1 | 0;
if (($6 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$9 = Math_fround(Math_fround(Math_fround($14 * Math_fround(-.26249998807907104)) * Math_fround(.00390625)) + Math_fround(-.25));
break label$35;
}
$5 = Math_fround(Math_fround(1.2999999523162842) / Math_fround(HEAP32[$0 + 4576 >> 2]));
$10 = Math_fround($5 + Math_fround(-1));
HEAPF32[$1 + 628 >> 2] = $10;
HEAPF32[$1 + 644 >> 2] = Math_fround(Math_fround(1) - $5) + Math_fround(Math_fround($9 * $5) * Math_fround(-.6000000238418579));
if (($2 | 0) <= 1) {
if (!$4) {
break label$33;
}
$9 = Math_fround(-.25);
$10 = Math_fround(0);
break label$34;
}
HEAPF32[$1 + 632 >> 2] = $10;
HEAP32[$1 + 648 >> 2] = HEAP32[$1 + 644 >> 2];
$6 = 2;
$9 = Math_fround(-.25);
if (($2 | 0) == 2) {
break label$35;
}
$8 = $1 + 628 | 0;
$3 = $1 + 644 | 0;
while (1) {
$7 = $6 << 2;
HEAP32[$8 + $7 >> 2] = HEAP32[$1 + 628 >> 2];
HEAP32[$3 + $7 >> 2] = HEAP32[$1 + 644 >> 2];
$6 = $6 + 1 | 0;
if (($6 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
if (($13 | 0) == 2) {
if (!$4) {
break label$33;
}
$10 = Math_fround(Math_fround(Math_sqrt(HEAPF32[$0 + 10060 >> 2])) * Math_fround(Math_fround(Math_fround(Math_fround(1) - Math_fround(Math_fround(Math_fround(1) - HEAPF32[$1 + 700 >> 2]) * HEAPF32[$1 + 696 >> 2])) * Math_fround(.20000000298023224)) + Math_fround(.30000001192092896)));
break label$34;
}
$10 = Math_fround(0);
if (!$4) {
break label$33;
}
}
$4 = 0;
while (1) {
$5 = HEAPF32[$0 + 7172 >> 2];
$5 = Math_fround($5 + Math_fround(Math_fround($10 - $5) * Math_fround(.4000000059604645)));
HEAPF32[$0 + 7172 >> 2] = $5;
$6 = ($4 << 2) + $1 | 0;
HEAPF32[$6 + 676 >> 2] = $5;
$5 = HEAPF32[$0 + 7176 >> 2];
$5 = Math_fround($5 + Math_fround(Math_fround($9 - $5) * Math_fround(.4000000059604645)));
HEAPF32[$0 + 7176 >> 2] = $5;
HEAPF32[$6 + 660 >> 2] = $5;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $11 + 1184 | 0;
}
function silk_VAD_GetSA_Q8_c($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0;
$4 = __stack_pointer - 48 | 0;
$10 = $4;
__stack_pointer = $4;
$2 = HEAP32[$0 + 4584 >> 2];
if (($2 | 0) < 321) {
if (($2 & -8) == ($2 | 0)) {
HEAP32[$10 >> 2] = 0;
$3 = $2 >> 3;
$6 = $2 >> 2;
$7 = $3 + $6 | 0;
HEAP32[$10 + 4 >> 2] = $7;
$8 = $3 + $7 | 0;
HEAP32[$10 + 8 >> 2] = $8;
$9 = $6 + $8 | 0;
HEAP32[$10 + 12 >> 2] = $9;
$13 = $2 >> 1;
$5 = $4 - (($13 + $9 << 1) + 15 & -16) | 0;
__stack_pointer = $5;
silk_ana_filt_bank_1($1, $0 + 36 | 0, $5, ($9 << 1) + $5 | 0, HEAP32[$0 + 4584 >> 2]);
silk_ana_filt_bank_1($5, $0 + 44 | 0, $5, ($8 << 1) + $5 | 0, $13);
silk_ana_filt_bank_1($5, $0 + 52 | 0, $5, ($7 << 1) + $5 | 0, $6);
$4 = $3 - 1 | 0;
$3 = ($4 << 1) + $5 | 0;
$8 = HEAP16[$3 >> 1] >> 1;
HEAP16[$3 >> 1] = $8;
if (($2 | 0) >= 16) {
$3 = $8;
while (1) {
$6 = $4 - 1 | 0;
$2 = ($6 << 1) + $5 | 0;
$1 = $2;
$2 = HEAP16[$2 >> 1] >> 1;
HEAP16[$1 >> 1] = $2;
HEAP16[($4 << 1) + $5 >> 1] = $3 - $2;
$7 = ($4 | 0) > 1;
$3 = $2;
$4 = $6;
if ($7) {
continue;
}
break;
}
}
$4 = $0 + 92 | 0;
HEAP16[$5 >> 1] = HEAPU16[$5 >> 1] - HEAPU16[$4 >> 1];
HEAP16[$0 + 92 >> 1] = $8;
while (1) {
$2 = HEAP32[$0 + 4584 >> 2];
$4 = $11 << 2;
$13 = $4 + ($10 + 32 | 0) | 0;
$16 = $0 + $4 | 0;
$9 = $16 + 60 | 0;
$9 = HEAP32[$9 >> 2];
HEAP32[$13 >> 2] = $9;
$3 = 4 - $11 | 0;
$12 = $2 >> ($3 >>> 0 < 3 ? $3 : 3);
$15 = ($12 | 0) > 3;
label$6 : {
if (!$15) {
$1 = ($9 | 0) > -1 ? $9 : 2147483647;
$4 = 0;
break label$6;
}
$8 = $12 >> 2;
$6 = ($8 | 0) > 1 ? $8 : 1;
$14 = $4 + $10 | 0;
$7 = HEAP32[$14 >> 2];
$4 = 0;
$2 = 0;
while (1) {
$3 = HEAP16[($4 + $7 << 1) + $5 >> 1] >> 3;
$2 = Math_imul($3, $3) + $2 | 0;
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
$4 = $2 + $9 | 0;
$1 = ($4 | 0) > -1 ? $4 : 2147483647;
$4 = 0;
if (!$15) {
break label$6;
}
$7 = HEAP32[$14 >> 2];
$2 = 0;
while (1) {
$3 = HEAP16[(($4 + $8 | 0) + $7 << 1) + $5 >> 1] >> 3;
$2 = Math_imul($3, $3) + $2 | 0;
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
$4 = $1 + $2 | 0;
$1 = ($4 | 0) > -1 ? $4 : 2147483647;
$4 = 0;
$12 = ($12 | 0) < 4;
if ($12) {
break label$6;
}
$7 = $8 << 1;
$9 = HEAP32[$14 >> 2];
$2 = 0;
while (1) {
$3 = HEAP16[(($4 + $7 | 0) + $9 << 1) + $5 >> 1] >> 3;
$2 = Math_imul($3, $3) + $2 | 0;
$4 = $4 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
$4 = $1 + $2 | 0;
$1 = ($4 | 0) > -1 ? $4 : 2147483647;
$4 = 0;
if ($12) {
break label$6;
}
$7 = Math_imul($8, 3);
$8 = HEAP32[$14 >> 2];
$2 = 0;
while (1) {
$3 = HEAP16[(($2 + $7 | 0) + $8 << 1) + $5 >> 1] >> 3;
$4 = Math_imul($3, $3) + $4 | 0;
$2 = $2 + 1 | 0;
if (($6 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$2 = ($4 >>> 1 | 0) + $1 | 0;
HEAP32[$13 >> 2] = ($2 | 0) > -1 ? $2 : 2147483647;
HEAP32[$16 + 60 >> 2] = $4;
$11 = $11 + 1 | 0;
if (($11 | 0) != 4) {
continue;
}
break;
}
$4 = 0;
$2 = HEAP32[$0 + 144 >> 2];
if (($2 | 0) <= 999) {
HEAP32[$0 + 144 >> 2] = $2 + 1;
$4 = 32767 / (($2 >> 4) + 1 | 0) | 0;
}
$2 = 128;
$12 = HEAP32[$10 + 32 >> 2];
$3 = $12 + HEAP32[$0 + 128 >> 2] | 0;
$6 = ($3 | 0) > -1 ? $3 : 2147483647;
$5 = 2147483647 / ($6 | 0) | 0;
$3 = 128;
$7 = HEAP32[$0 + 96 >> 2];
label$13 : {
if ($7 << 3 < ($6 | 0)) {
break label$13;
}
$3 = 1024;
if (($6 | 0) < ($7 | 0)) {
break label$13;
}
$3 = $7 << 16 >> 16;
$3 = (Math_imul($3, $5 >> 16) + Math_imul(($7 >> 15) + 1 >> 1, $5) | 0) + (Math_imul($5 & 65535, $3) >> 16) | 0;
$3 = $3 >> 16 << 11 | $3 >>> 5 & 2047;
}
$6 = $0 + 112 | 0;
$1 = $6;
$6 = HEAP32[$0 + 112 >> 2];
$5 = $5 - $6 | 0;
$3 = (($3 | 0) > ($4 | 0) ? $3 : $4) << 16 >> 16;
$3 = (Math_imul($3, $5 >> 16) + $6 | 0) + (Math_imul($5 & 65535, $3) >> 16) | 0;
HEAP32[$1 >> 2] = $3;
$3 = 2147483647 / ($3 | 0) | 0;
$5 = ($3 | 0) < 16777215 ? $3 : 16777215;
HEAP32[$0 + 96 >> 2] = $5;
$15 = HEAP32[$10 + 36 >> 2];
$3 = $15 + HEAP32[$0 + 132 >> 2] | 0;
$6 = ($3 | 0) > -1 ? $3 : 2147483647;
$3 = 2147483647 / ($6 | 0) | 0;
$7 = HEAP32[$0 + 100 >> 2];
label$14 : {
if ($7 << 3 < ($6 | 0)) {
break label$14;
}
$2 = 1024;
if (($6 | 0) < ($7 | 0)) {
break label$14;
}
$2 = $7 << 16 >> 16;
$2 = (Math_imul($2, $3 >> 16) + Math_imul(($7 >> 15) + 1 >> 1, $3) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
$2 = $2 >> 16 << 11 | $2 >>> 5 & 2047;
}
$6 = $0 + 116 | 0;
$1 = $6;
$6 = HEAP32[$0 + 116 >> 2];
$3 = $3 - $6 | 0;
$2 = (($2 | 0) > ($4 | 0) ? $2 : $4) << 16 >> 16;
$2 = (Math_imul($2, $3 >> 16) + $6 | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
HEAP32[$1 >> 2] = $2;
$2 = 2147483647 / ($2 | 0) | 0;
HEAP32[$0 + 100 >> 2] = ($2 | 0) < 16777215 ? $2 : 16777215;
$14 = HEAP32[$10 + 40 >> 2];
$2 = $14 + HEAP32[$0 + 136 >> 2] | 0;
$7 = ($2 | 0) > -1 ? $2 : 2147483647;
$6 = 2147483647 / ($7 | 0) | 0;
$2 = 128;
$3 = 128;
$8 = HEAP32[$0 + 104 >> 2];
label$15 : {
if ($8 << 3 < ($7 | 0)) {
break label$15;
}
$3 = 1024;
if (($7 | 0) < ($8 | 0)) {
break label$15;
}
$3 = $8 << 16 >> 16;
$3 = (Math_imul($3, $6 >> 16) + Math_imul(($8 >> 15) + 1 >> 1, $6) | 0) + (Math_imul($6 & 65535, $3) >> 16) | 0;
$3 = $3 >> 16 << 11 | $3 >>> 5 & 2047;
}
$7 = $0 + 120 | 0;
$1 = $7;
$7 = HEAP32[$0 + 120 >> 2];
$6 = $6 - $7 | 0;
$3 = (($3 | 0) > ($4 | 0) ? $3 : $4) << 16 >> 16;
$3 = (Math_imul($3, $6 >> 16) + $7 | 0) + (Math_imul($6 & 65535, $3) >> 16) | 0;
HEAP32[$1 >> 2] = $3;
$3 = 2147483647 / ($3 | 0) | 0;
HEAP32[$0 + 104 >> 2] = ($3 | 0) < 16777215 ? $3 : 16777215;
$17 = HEAP32[$10 + 44 >> 2];
$3 = $17 + HEAP32[$0 + 140 >> 2] | 0;
$6 = ($3 | 0) > -1 ? $3 : 2147483647;
$3 = 2147483647 / ($6 | 0) | 0;
$7 = HEAP32[$0 + 108 >> 2];
label$16 : {
if ($7 << 3 < ($6 | 0)) {
break label$16;
}
$2 = 1024;
if (($6 | 0) < ($7 | 0)) {
break label$16;
}
$2 = $7 << 16 >> 16;
$2 = (Math_imul($2, $3 >> 16) + Math_imul(($7 >> 15) + 1 >> 1, $3) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
$2 = $2 >> 16 << 11 | $2 >>> 5 & 2047;
}
$4 = (($2 | 0) > ($4 | 0) ? $2 : $4) << 16 >> 16;
$2 = HEAP32[$0 + 124 >> 2];
$3 = $3 - $2 | 0;
$6 = $0 + 124 | 0;
$4 = (Math_imul($3 >> 16, $4) + $2 | 0) + (Math_imul($3 & 65535, $4) >> 16) | 0;
HEAP32[$6 >> 2] = $4;
$4 = 2147483647 / ($4 | 0) | 0;
HEAP32[$0 + 108 >> 2] = ($4 | 0) < 16777215 ? $4 : 16777215;
$3 = $12;
$7 = 0;
$6 = 0;
$4 = 0;
while (1) {
$2 = $3 - $5 | 0;
label$18 : {
if (($2 | 0) >= 1) {
$8 = $4 << 2;
$9 = $3 >>> 0 < 8388608;
$3 = (($9 ? $3 << 8 : $3) | 0) / (($9 ? $5 : $5 >> 8) + 1 | 0) | 0;
HEAP32[$8 + ($10 + 16 | 0) >> 2] = $3;
$3 = (silk_lin2log($3) << 16) - 67108864 >> 16;
$9 = Math_imul($3, $3);
$6 = $9 + $6 | 0;
if (($2 | 0) <= 1048575) {
$5 = Math_clz32($2);
$1 = 24 - $5 | 0;
$9 = 0 - $1 | 0;
$11 = $2;
label$21 : {
if (!$1) {
break label$21;
}
$11 = $2 << $9 | $2 >>> 56 - $5;
if ($2 >>> 0 <= 127) {
break label$21;
}
$11 = $2 << $5 + 8 | $2 >>> $1;
}
$16 = Math_imul($11 & 127, 13959168) >>> 16 | 0;
$11 = ($5 & 1 ? 32768 : 46214) >>> ($5 >>> 1) | 0;
$13 = Math_imul($11 + (Math_imul($11, $16) >>> 16 | 0) >>> 10 | 0, $3);
label$22 : {
if (!$1) {
break label$22;
}
if ($2 >>> 0 <= 127) {
$2 = $2 << $9 | $2 >>> 56 - $5;
break label$22;
}
$2 = $2 << $5 + 8 | $2 >>> $1;
}
$3 = Math_imul((Math_imul(Math_imul($2 & 127, 13959168) >>> 16 | 0, $11) >>> 16 | 0) + $11 << 6 & 65472, $3) + ($13 << 16) >> 16;
}
$2 = HEAP32[$8 + 1936 >> 2];
$7 = (Math_imul($2 >> 16, $3) + $7 | 0) + (Math_imul($2 & 65535, $3) >> 16) | 0;
break label$18;
}
HEAP32[($10 + 16 | 0) + ($4 << 2) >> 2] = 256;
}
$4 = $4 + 1 | 0;
if (($4 | 0) != 4) {
$2 = $4 << 2;
$3 = HEAP32[$2 + ($10 + 32 | 0) >> 2];
$5 = HEAP32[($0 + $2 | 0) + 96 >> 2];
continue;
}
break;
}
$4 = ($6 | 0) / 4 | 0;
$2 = -128;
if (($6 | 0) >= 4) {
$2 = Math_clz32($4);
$3 = 24 - $2 | 0;
label$27 : {
if (!$3) {
break label$27;
}
if ($4 >>> 0 <= 127) {
$4 = $4 << 0 - $3 | $4 >>> 56 - $2;
break label$27;
}
$4 = $4 << $2 + 8 | $4 >>> $3;
}
$1 = Math_imul($4 & 127, 13959168) >>> 16 | 0;
$4 = ($2 & 1 ? 32768 : 46214) >>> ($2 >>> 1) | 0;
$2 = (Math_imul(Math_imul($4 + (Math_imul($4, $1) >>> 16 | 0) | 0, 196608) >> 16, 45e3) >> 16) - 128 | 0;
}
$4 = silk_sigm_Q15($2);
HEAP32[$0 + 4712 >> 2] = (silk_sigm_Q15($7) << 1) - 32768;
$2 = HEAP32[$0 + 4584 >> 2];
$3 = HEAP32[$0 + 4576 >> 2];
$5 = ((($15 - HEAP32[$0 + 100 >> 2] >> 4 << 1) + ($12 - HEAP32[$0 + 96 >> 2] >> 4) | 0) + Math_imul($14 - HEAP32[$0 + 104 >> 2] >> 4, 3) | 0) + ($17 - HEAP32[$0 + 108 >> 2] >> 4 << 2) >> (($2 | 0) == (Math_imul($3, 20) | 0));
label$29 : {
if (($5 | 0) <= 0) {
$4 = $4 >> 1;
break label$29;
}
if (($5 | 0) > 16383) {
break label$29;
}
$4 = $4 << 16 >> 16;
$6 = $5 << 16;
$5 = Math_clz32($6);
$7 = ($5 & 1 ? 32768 : 46214) >>> ($5 >>> 1) | 0;
$5 = ($7 + (Math_imul((wasm2js_i32$0 = 0, wasm2js_i32$1 = Math_imul(__wasm_rotl_i32($6, $5 + 8 | 0) & 127, 13959168) >>> 16 | 0, wasm2js_i32$2 = ($5 | 0) == 24, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1), $7) >>> 16 | 0) | 0) + 32768 | 0;
$4 = (Math_imul($4, $5 & 65535) >> 16) + Math_imul($5 >>> 16 | 0, $4) | 0;
}
$5 = $4 >> 7;
HEAP32[$0 + 4532 >> 2] = ($5 | 0) < 255 ? $5 : 255;
$5 = $0 + 76 | 0;
$1 = $5;
$5 = HEAP32[$0 + 76 >> 2];
$6 = HEAP32[$10 + 16 >> 2] - $5 | 0;
$4 = Math_imul($4 << 16 >> 16, $4) >> ((Math_imul($3, 10) | 0) == ($2 | 0) ? 21 : 20);
$2 = (Math_imul($4, $6 >> 16) + $5 | 0) + (Math_imul($6 & 65535, $4) >> 16) | 0;
HEAP32[$1 >> 2] = $2;
HEAP32[$0 + 4696 >> 2] = silk_sigm_Q15(Math_imul(silk_lin2log($2), 3) - 5120 >> 4);
$2 = $0 + 80 | 0;
$1 = $2;
$2 = HEAP32[$0 + 80 >> 2];
$3 = HEAP32[$10 + 20 >> 2] - $2 | 0;
$2 = (Math_imul($3 >> 16, $4) + $2 | 0) + (Math_imul($3 & 65535, $4) >> 16) | 0;
HEAP32[$1 >> 2] = $2;
HEAP32[$0 + 4700 >> 2] = silk_sigm_Q15(Math_imul(silk_lin2log($2), 3) - 5120 >> 4);
$2 = $0 + 84 | 0;
$1 = $2;
$2 = HEAP32[$0 + 84 >> 2];
$3 = HEAP32[$10 + 24 >> 2] - $2 | 0;
$2 = (Math_imul($3 >> 16, $4) + $2 | 0) + (Math_imul($3 & 65535, $4) >> 16) | 0;
HEAP32[$1 >> 2] = $2;
HEAP32[$0 + 4704 >> 2] = silk_sigm_Q15(Math_imul(silk_lin2log($2), 3) - 5120 >> 4);
$2 = $0 + 88 | 0;
$1 = $2;
$2 = HEAP32[$0 + 88 >> 2];
$3 = HEAP32[$10 + 28 >> 2] - $2 | 0;
$4 = (Math_imul($3 >> 16, $4) + $2 | 0) + (Math_imul($3 & 65535, $4) >> 16) | 0;
HEAP32[$1 >> 2] = $4;
HEAP32[$0 + 4708 >> 2] = silk_sigm_Q15(Math_imul(silk_lin2log($4), 3) - 5120 >> 4);
__stack_pointer = $10 + 48 | 0;
return 0;
}
celt_fatal(1846, 1835, 106);
abort();
}
celt_fatal(1776, 1835, 104);
abort();
}
function opus_custom_encoder_ctl($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0;
$3 = __stack_pointer - 16 | 0;
__stack_pointer = $3;
HEAP32[$3 + 12 >> 2] = $2;
$2 = -5;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
label$9 : {
label$10 : {
label$11 : {
label$12 : {
label$13 : {
label$14 : {
label$15 : {
label$16 : {
label$17 : {
label$18 : {
label$19 : {
label$20 : {
label$21 : {
label$22 : {
label$23 : {
switch ($1 - 4002 | 0) {
default:
switch ($1 - 10002 | 0) {
case 6:
break label$15;
case 0:
break label$20;
case 10:
break label$21;
case 8:
break label$22;
case 24:
break label$3;
case 22:
break label$4;
case 13:
break label$6;
case 26:
break label$7;
case 20:
break label$8;
case 14:
break label$9;
default:
break label$1;
}
case 1:
case 2:
case 3:
case 5:
case 6:
case 7:
case 9:
case 10:
case 11:
case 13:
case 14:
case 15:
case 16:
case 17:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 27:
case 28:
case 30:
case 31:
case 32:
case 33:
case 36:
case 37:
case 38:
case 39:
case 40:
case 41:
case 42:
case 43:
break label$1;
case 26:
break label$10;
case 45:
break label$11;
case 44:
break label$12;
case 35:
break label$13;
case 34:
break label$14;
case 0:
break label$16;
case 4:
break label$17;
case 18:
break label$18;
case 12:
break label$19;
case 8:
break label$23;
case 29:
break label$5;
}
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 10) {
break label$1;
}
HEAP32[$0 + 24 >> 2] = $1;
break label$2;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if (($1 | 0) < 0 | HEAP32[HEAP32[$0 >> 2] + 8 >> 2] <= ($1 | 0)) {
break label$1;
}
HEAP32[$0 + 32 >> 2] = $1;
break label$2;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if (($1 | 0) < 1 | HEAP32[HEAP32[$0 >> 2] + 8 >> 2] < ($1 | 0)) {
break label$1;
}
HEAP32[$0 + 36 >> 2] = $1;
break label$2;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 2) {
break label$1;
}
HEAP32[$0 + 12 >> 2] = !$1;
HEAP32[$0 + 20 >> 2] = ($1 | 0) != 2;
break label$2;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 100) {
break label$1;
}
HEAP32[$0 + 56 >> 2] = $1;
break label$2;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
HEAP32[$0 + 52 >> 2] = HEAP32[$2 >> 2];
break label$2;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
HEAP32[$0 + 44 >> 2] = HEAP32[$2 >> 2];
break label$2;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
$1 = HEAP32[$2 >> 2];
if (($1 | 0) <= 500) {
$2 = -1;
if (($1 | 0) != -1) {
break label$1;
}
}
$2 = Math_imul(HEAP32[$0 + 4 >> 2], 26e4);
HEAP32[$0 + 40 >> 2] = ($1 | 0) < ($2 | 0) ? $1 : $2;
break label$2;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 - 1 >>> 0 > 1) {
break label$1;
}
HEAP32[$0 + 8 >> 2] = $1;
break label$2;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 - 8 >>> 0 > 16) {
break label$1;
}
HEAP32[$0 + 60 >> 2] = $1;
break label$2;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
HEAP32[HEAP32[$2 >> 2] >> 2] = HEAP32[$0 + 60 >> 2];
break label$2;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = -1;
$1 = HEAP32[$1 >> 2];
if ($1 >>> 0 > 1) {
break label$1;
}
HEAP32[$0 + 68 >> 2] = $1;
break label$2;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 68 >> 2];
break label$2;
}
$2 = 0;
$1 = HEAP32[$0 + 4 >> 2];
$5 = HEAP32[$0 >> 2];
$4 = HEAP32[$5 + 4 >> 2];
$6 = HEAP32[$5 + 8 >> 2];
memset($0 + 76 | 0, 0, Math_imul($1, (($4 << 2) + ($6 << 4) | 0) + 4096 | 0) + 168 | 0);
$5 = Math_imul(HEAP32[$5 + 8 >> 2], $1);
if (($5 | 0) >= 1) {
$4 = (Math_imul($4 + 1024 | 0, $1) << 2) + $0 | 0;
$1 = Math_imul($1, $6) << 2;
$4 = ($4 + $1 | 0) + 244 | 0;
$6 = $1 + $4 | 0;
while (1) {
$1 = $2 << 2;
HEAP32[$6 + $1 >> 2] = -1042284544;
HEAP32[$1 + $4 >> 2] = -1042284544;
$2 = $2 + 1 | 0;
if (($5 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$2 = 0;
HEAP32[$0 + 216 >> 2] = 0;
HEAP32[$0 + 96 >> 2] = 0;
HEAP32[$0 + 100 >> 2] = 0;
HEAP32[$0 + 88 >> 2] = 256;
HEAP32[$0 + 80 >> 2] = 2;
HEAP32[$0 + 84 >> 2] = 1065353216;
break label$1;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
HEAP32[$0 + 48 >> 2] = HEAP32[$2 >> 2];
break label$2;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = 0;
$1 = HEAP32[$1 >> 2];
if (!$1) {
break label$1;
}
$5 = HEAP32[$1 + 4 >> 2];
$4 = HEAP32[$1 >> 2];
HEAP32[$0 + 120 >> 2] = $4;
HEAP32[$0 + 124 >> 2] = $5;
$4 = HEAP32[$1 + 60 >> 2];
$5 = HEAP32[$1 + 56 >> 2];
HEAP32[$0 + 176 >> 2] = $5;
HEAP32[$0 + 180 >> 2] = $4;
$5 = HEAP32[$1 + 52 >> 2];
$4 = HEAP32[$1 + 48 >> 2];
HEAP32[$0 + 168 >> 2] = $4;
HEAP32[$0 + 172 >> 2] = $5;
$4 = HEAP32[$1 + 44 >> 2];
$5 = HEAP32[$1 + 40 >> 2];
HEAP32[$0 + 160 >> 2] = $5;
HEAP32[$0 + 164 >> 2] = $4;
$5 = HEAP32[$1 + 36 >> 2];
$4 = HEAP32[$1 + 32 >> 2];
HEAP32[$0 + 152 >> 2] = $4;
HEAP32[$0 + 156 >> 2] = $5;
$4 = HEAP32[$1 + 28 >> 2];
$5 = HEAP32[$1 + 24 >> 2];
HEAP32[$0 + 144 >> 2] = $5;
HEAP32[$0 + 148 >> 2] = $4;
$5 = HEAP32[$1 + 20 >> 2];
$4 = HEAP32[$1 + 16 >> 2];
HEAP32[$0 + 136 >> 2] = $4;
HEAP32[$0 + 140 >> 2] = $5;
$4 = HEAP32[$1 + 12 >> 2];
$5 = HEAP32[$1 + 8 >> 2];
HEAP32[$0 + 128 >> 2] = $5;
HEAP32[$0 + 132 >> 2] = $4;
break label$1;
}
$1 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $1 + 4;
$2 = 0;
$1 = HEAP32[$1 >> 2];
if (!$1) {
break label$1;
}
$5 = HEAP32[$1 + 4 >> 2];
$4 = HEAP32[$1 >> 2];
HEAP32[$0 + 184 >> 2] = $4;
HEAP32[$0 + 188 >> 2] = $5;
break label$1;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 >> 2];
break label$2;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
$2 = HEAP32[$2 >> 2];
if (!$2) {
$2 = -1;
break label$1;
}
HEAP32[$2 >> 2] = HEAP32[$0 + 76 >> 2];
break label$2;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
HEAP32[$0 + 64 >> 2] = HEAP32[$2 >> 2];
break label$2;
}
$2 = HEAP32[$3 + 12 >> 2];
HEAP32[$3 + 12 >> 2] = $2 + 4;
HEAP32[$0 + 236 >> 2] = HEAP32[$2 >> 2];
}
$2 = 0;
}
__stack_pointer = $3 + 16 | 0;
return $2;
}
function silk_resampler_private_down_FIR($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 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;
$10 = __stack_pointer;
$20 = $10;
$6 = HEAP32[$0 + 268 >> 2];
$8 = HEAP32[$0 + 276 >> 2];
$10 = $10 - (($6 + $8 << 2) + 15 & -16) | 0;
__stack_pointer = $10;
$17 = $0 + 24 | 0;
$12 = memcpy($10, $17, $8 << 2);
$10 = HEAP32[$0 + 296 >> 2];
$18 = $10 + 4 | 0;
$15 = HEAP32[$0 + 272 >> 2];
$5 = $10;
while (1) {
$13 = ($3 | 0) < ($6 | 0) ? $3 : $6;
silk_resampler_private_AR2($0, ($8 << 2) + $12 | 0, $2, $5, $13);
$14 = $13 << 16;
label$2 : {
label$3 : {
label$4 : {
label$5 : {
label$6 : {
$16 = HEAP32[$0 + 276 >> 2];
switch ($16 - 18 | 0) {
case 18:
break label$3;
case 6:
break label$5;
case 0:
break label$6;
default:
break label$4;
}
}
if (($14 | 0) < 1) {
break label$2;
}
$19 = HEAP32[$0 + 280 >> 2];
$21 = $19 << 16 >> 16;
$5 = 0;
while (1) {
$7 = Math_imul($5 & 65535, $21) >> 16;
$8 = Math_imul($7, 18) + $18 | 0;
$9 = HEAP16[$8 >> 1];
$6 = ($5 >> 16 << 2) + $12 | 0;
$4 = HEAP32[$6 >> 2];
$11 = (Math_imul($9, $4 & 65535) >> 16) + Math_imul($4 >> 16, $9) | 0;
$9 = HEAP16[$8 + 2 >> 1];
$4 = HEAP32[$6 + 4 >> 2];
$11 = ($11 + Math_imul($9, $4 >> 16) | 0) + (Math_imul($4 & 65535, $9) >> 16) | 0;
$9 = HEAP16[$8 + 4 >> 1];
$4 = HEAP32[$6 + 8 >> 2];
$11 = ($11 + Math_imul($9, $4 >> 16) | 0) + (Math_imul($4 & 65535, $9) >> 16) | 0;
$9 = HEAP16[$8 + 6 >> 1];
$4 = HEAP32[$6 + 12 >> 2];
$11 = ($11 + Math_imul($9, $4 >> 16) | 0) + (Math_imul($4 & 65535, $9) >> 16) | 0;
$9 = HEAP16[$8 + 8 >> 1];
$4 = HEAP32[$6 + 16 >> 2];
$11 = ($11 + Math_imul($9, $4 >> 16) | 0) + (Math_imul($4 & 65535, $9) >> 16) | 0;
$9 = HEAP16[$8 + 10 >> 1];
$4 = HEAP32[$6 + 20 >> 2];
$11 = ($11 + Math_imul($9, $4 >> 16) | 0) + (Math_imul($4 & 65535, $9) >> 16) | 0;
$9 = HEAP16[$8 + 12 >> 1];
$4 = HEAP32[$6 + 24 >> 2];
$11 = ($11 + Math_imul($9, $4 >> 16) | 0) + (Math_imul($4 & 65535, $9) >> 16) | 0;
$9 = HEAP16[$8 + 14 >> 1];
$4 = HEAP32[$6 + 28 >> 2];
$9 = ($11 + Math_imul($9, $4 >> 16) | 0) + (Math_imul($4 & 65535, $9) >> 16) | 0;
$8 = HEAP16[$8 + 16 >> 1];
$4 = HEAP32[$6 + 32 >> 2];
$9 = ($9 + Math_imul($8, $4 >> 16) | 0) + (Math_imul($4 & 65535, $8) >> 16) | 0;
$8 = Math_imul(($7 ^ -1) + $19 | 0, 18) + $18 | 0;
$7 = HEAP16[$8 >> 1];
$4 = HEAP32[$6 + 68 >> 2];
$9 = ($9 + Math_imul($7, $4 >> 16) | 0) + (Math_imul($4 & 65535, $7) >> 16) | 0;
$7 = HEAP16[$8 + 2 >> 1];
$4 = HEAP32[$6 + 64 >> 2];
$9 = ($9 + Math_imul($7, $4 >> 16) | 0) + (Math_imul($4 & 65535, $7) >> 16) | 0;
$7 = HEAP16[$8 + 4 >> 1];
$4 = HEAP32[$6 + 60 >> 2];
$9 = ($9 + Math_imul($7, $4 >> 16) | 0) + (Math_imul($4 & 65535, $7) >> 16) | 0;
$7 = HEAP16[$8 + 6 >> 1];
$4 = HEAP32[$6 + 56 >> 2];
$9 = ($9 + Math_imul($7, $4 >> 16) | 0) + (Math_imul($4 & 65535, $7) >> 16) | 0;
$7 = HEAP16[$8 + 8 >> 1];
$4 = HEAP32[$6 + 52 >> 2];
$9 = ($9 + Math_imul($7, $4 >> 16) | 0) + (Math_imul($4 & 65535, $7) >> 16) | 0;
$7 = HEAP16[$8 + 10 >> 1];
$4 = HEAP32[$6 + 48 >> 2];
$9 = ($9 + Math_imul($7, $4 >> 16) | 0) + (Math_imul($4 & 65535, $7) >> 16) | 0;
$7 = HEAP16[$8 + 12 >> 1];
$4 = HEAP32[$6 + 44 >> 2];
$9 = ($9 + Math_imul($7, $4 >> 16) | 0) + (Math_imul($4 & 65535, $7) >> 16) | 0;
$7 = HEAP16[$8 + 14 >> 1];
$4 = HEAP32[$6 + 40 >> 2];
$8 = HEAP16[$8 + 16 >> 1];
$6 = HEAP32[$6 + 36 >> 2];
$6 = ((($9 + Math_imul($7, $4 >> 16) | 0) + (Math_imul($4 & 65535, $7) >> 16) | 0) + Math_imul($8, $6 >> 16) | 0) + (Math_imul($6 & 65535, $8) >> 16) | 0;
$8 = ($6 >> 5) + 1 >> 1;
HEAP16[$1 >> 1] = ($6 | 0) > 2097119 ? 32767 : ($8 | 0) > -32768 ? $8 : -32768;
$1 = $1 + 2 | 0;
$5 = $5 + $15 | 0;
if (($14 | 0) > ($5 | 0)) {
continue;
}
break;
}
break label$2;
}
$8 = 0;
if (($14 | 0) <= 0) {
break label$2;
}
while (1) {
$4 = HEAP16[$10 + 4 >> 1];
$6 = ($8 >> 16 << 2) + $12 | 0;
$5 = HEAP32[$6 + 92 >> 2] + HEAP32[$6 >> 2] | 0;
$7 = (Math_imul($4, $5 & 65535) >> 16) + Math_imul($5 >> 16, $4) | 0;
$4 = HEAP16[$10 + 6 >> 1];
$5 = HEAP32[$6 + 88 >> 2] + HEAP32[$6 + 4 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 8 >> 1];
$5 = HEAP32[$6 + 84 >> 2] + HEAP32[$6 + 8 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 10 >> 1];
$5 = HEAP32[$6 + 80 >> 2] + HEAP32[$6 + 12 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 12 >> 1];
$5 = HEAP32[$6 + 76 >> 2] + HEAP32[$6 + 16 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 14 >> 1];
$5 = HEAP32[$6 + 72 >> 2] + HEAP32[$6 + 20 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 16 >> 1];
$5 = HEAP32[$6 + 68 >> 2] + HEAP32[$6 + 24 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 18 >> 1];
$5 = HEAP32[$6 + 64 >> 2] + HEAP32[$6 + 28 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 20 >> 1];
$5 = HEAP32[$6 + 60 >> 2] + HEAP32[$6 + 32 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 22 >> 1];
$5 = HEAP32[$6 + 56 >> 2] + HEAP32[$6 + 36 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 24 >> 1];
$5 = HEAP32[$6 + 52 >> 2] + HEAP32[$6 + 40 >> 2] | 0;
$4 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$5 = HEAP16[$10 + 26 >> 1];
$6 = HEAP32[$6 + 48 >> 2] + HEAP32[$6 + 44 >> 2] | 0;
$6 = ($4 + Math_imul($5, $6 >> 16) | 0) + (Math_imul($6 & 65535, $5) >> 16) | 0;
$5 = ($6 >> 5) + 1 >> 1;
HEAP16[$1 >> 1] = ($6 | 0) > 2097119 ? 32767 : ($5 | 0) > -32768 ? $5 : -32768;
$1 = $1 + 2 | 0;
$8 = $8 + $15 | 0;
if (($14 | 0) > ($8 | 0)) {
continue;
}
break;
}
break label$2;
}
celt_fatal(6400, 6420, 139);
abort();
}
$8 = 0;
if (($14 | 0) <= 0) {
break label$2;
}
while (1) {
$4 = HEAP16[$10 + 4 >> 1];
$6 = ($8 >> 16 << 2) + $12 | 0;
$5 = HEAP32[$6 + 140 >> 2] + HEAP32[$6 >> 2] | 0;
$7 = (Math_imul($4, $5 & 65535) >> 16) + Math_imul($5 >> 16, $4) | 0;
$4 = HEAP16[$10 + 6 >> 1];
$5 = HEAP32[$6 + 136 >> 2] + HEAP32[$6 + 4 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 8 >> 1];
$5 = HEAP32[$6 + 132 >> 2] + HEAP32[$6 + 8 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 10 >> 1];
$5 = HEAP32[$6 + 128 >> 2] + HEAP32[$6 + 12 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 12 >> 1];
$5 = HEAP32[$6 + 124 >> 2] + HEAP32[$6 + 16 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 14 >> 1];
$5 = HEAP32[$6 + 120 >> 2] + HEAP32[$6 + 20 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 16 >> 1];
$5 = HEAP32[$6 + 116 >> 2] + HEAP32[$6 + 24 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 18 >> 1];
$5 = HEAP32[$6 + 112 >> 2] + HEAP32[$6 + 28 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 20 >> 1];
$5 = HEAP32[$6 + 108 >> 2] + HEAP32[$6 + 32 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 22 >> 1];
$5 = HEAP32[$6 + 104 >> 2] + HEAP32[$6 + 36 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 24 >> 1];
$5 = HEAP32[$6 + 100 >> 2] + HEAP32[$6 + 40 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 26 >> 1];
$5 = HEAP32[$6 + 96 >> 2] + HEAP32[$6 + 44 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 28 >> 1];
$5 = HEAP32[$6 + 92 >> 2] + HEAP32[$6 + 48 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 30 >> 1];
$5 = HEAP32[$6 + 88 >> 2] + HEAP32[$6 + 52 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 32 >> 1];
$5 = HEAP32[$6 + 84 >> 2] + HEAP32[$6 + 56 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 34 >> 1];
$5 = HEAP32[$6 + 80 >> 2] + HEAP32[$6 + 60 >> 2] | 0;
$7 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$4 = HEAP16[$10 + 36 >> 1];
$5 = HEAP32[$6 + 76 >> 2] + HEAP32[$6 + 64 >> 2] | 0;
$4 = ($7 + Math_imul($4, $5 >> 16) | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$5 = HEAP16[$10 + 38 >> 1];
$6 = HEAP32[$6 + 72 >> 2] + HEAP32[$6 + 68 >> 2] | 0;
$6 = ($4 + Math_imul($5, $6 >> 16) | 0) + (Math_imul($6 & 65535, $5) >> 16) | 0;
$5 = ($6 >> 5) + 1 >> 1;
HEAP16[$1 >> 1] = ($6 | 0) > 2097119 ? 32767 : ($5 | 0) > -32768 ? $5 : -32768;
$1 = $1 + 2 | 0;
$8 = $8 + $15 | 0;
if (($14 | 0) > ($8 | 0)) {
continue;
}
break;
}
}
$3 = $3 - $13 | 0;
if (($3 | 0) >= 2) {
memcpy($12, ($13 << 2) + $12 | 0, $16 << 2);
$2 = ($13 << 1) + $2 | 0;
$5 = HEAP32[$0 + 296 >> 2];
$8 = HEAP32[$0 + 276 >> 2];
$6 = HEAP32[$0 + 268 >> 2];
continue;
}
break;
}
memcpy($17, ($13 << 2) + $12 | 0, $16 << 2);
__stack_pointer = $20;
}
function silk_stereo_LR_to_MS($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
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;
$11 = __stack_pointer - 16 | 0;
$16 = $11;
__stack_pointer = $11;
$23 = $1 - 4 | 0;
$13 = $10 + 2 | 0;
$24 = $11 - (($13 << 1) + 15 & -16) | 0;
$18 = $24;
__stack_pointer = $18;
if (($10 | 0) >= -1) {
$21 = ($13 | 0) > 1 ? $13 : 1;
$11 = 0;
while (1) {
$13 = $11 << 1;
$15 = $13 - 4 | 0;
$12 = HEAP16[$15 + $2 >> 1];
$15 = HEAP16[$1 + $15 >> 1];
$14 = $15 + $12 | 0;
HEAP16[$13 + $23 >> 1] = ($14 >>> 1 | 0) + ($14 & 1);
$19 = $13 + $24 | 0;
$13 = $15 - $12 | 0;
$13 = ($13 >> 1) + ($13 & 1) | 0;
$13 = ($13 | 0) > -32768 ? $13 : -32768;
HEAP16[$19 >> 1] = ($13 | 0) < 32767 ? $13 : 32767;
$11 = $11 + 1 | 0;
if (($21 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
$19 = HEAP32[$0 + 4 >> 2];
HEAP16[$23 >> 1] = $19;
HEAP16[$23 + 2 >> 1] = $19 >>> 16;
$14 = HEAP32[$0 + 8 >> 2];
HEAP32[$24 >> 2] = $14;
$11 = $10 << 1;
$19 = $23 + $11 | 0;
HEAP32[$0 + 4 >> 2] = HEAPU16[$19 >> 1] | HEAPU16[$19 + 2 >> 1] << 16;
$19 = $11 + $24 | 0;
HEAP32[$0 + 8 >> 2] = HEAPU16[$19 >> 1] | HEAPU16[$19 + 2 >> 1] << 16;
$13 = $11 + 15 & -16;
$18 = $18 - $13 | 0;
$15 = $18;
__stack_pointer = $15;
$11 = 0;
$17 = $15 - $13 | 0;
$20 = $17;
__stack_pointer = $17;
label$3 : {
if (($10 | 0) <= 0) {
$11 = ($10 << 1) + 15 & -16;
$20 = $20 - $11 | 0;
$13 = $20;
__stack_pointer = $13;
$22 = $13 - $11 | 0;
__stack_pointer = $22;
break label$3;
}
$21 = $14 >>> 16 | 0;
$13 = HEAPU16[$23 >> 1];
while (1) {
$15 = $11 << 1;
$19 = HEAP16[$15 + $1 >> 1] + ($13 << 16 >> 16) | 0;
$11 = $11 + 1 | 0;
$13 = HEAP16[($11 << 1) + $23 >> 1];
$12 = (($13 << 1) + $19 >>> 1 | 0) + 1 >>> 1 | 0;
HEAP16[$15 + $18 >> 1] = $12;
HEAP16[$15 + $17 >> 1] = $13 - $12;
if (($10 | 0) != ($11 | 0)) {
continue;
}
break;
}
$11 = ($10 << 1) + 15 & -16;
$20 = $20 - $11 | 0;
$13 = $20;
__stack_pointer = $13;
$22 = $13 - $11 | 0;
__stack_pointer = $22;
if (($10 | 0) < 1) {
break label$3;
}
$13 = 0;
while (1) {
$11 = $21;
$15 = $13 << 1;
$21 = HEAP16[($24 + $15 | 0) + 4 >> 1];
$12 = (($21 + ($14 << 16 >> 16) | 0) + ($11 << 16 >> 16 << 1) >>> 1 | 0) + 1 >>> 1 | 0;
HEAP16[$15 + $20 >> 1] = $12;
HEAP16[$15 + $22 >> 1] = $11 - $12;
$14 = $11;
$13 = $13 + 1 | 0;
if (($13 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
$11 = (Math_imul($9, 10) | 0) == ($10 | 0);
$13 = $11 ? 328 : 655;
$15 = $7 << 16 >> 16;
$15 = Math_imul($15, $15);
$13 = (Math_imul($13, $15 & 65535) >>> 16 | 0) + Math_imul($15 >>> 16 | 0, $13) | 0;
$7 = silk_stereo_find_predictor($16 + 4 | 0, $18, $20, $0 + 12 | 0, $10, $13);
HEAP32[$16 + 8 >> 2] = $7;
$26 = silk_stereo_find_predictor($16, $17, $22, $0 + 20 | 0, $10, $13);
HEAP32[$16 + 12 >> 2] = $26;
$21 = ($11 ? -1200 : -600) + $6 | 0;
$15 = ($21 | 0) > 1 ? $21 : 1;
$14 = Math_clz32($15);
$12 = $15 << $14 - 1;
$17 = $12;
$11 = HEAP32[$16 >> 2] + Math_imul(HEAP16[$16 + 4 >> 1], 3) | 0;
$22 = ($11 | 0) < 65536 ? $11 : 65536;
$20 = Math_imul($22, 3);
$11 = $20 + 851968 | 0;
$18 = $11 >> 31;
$18 = Math_clz32($18 ^ $11 + $18);
$11 = $11 << $18 - 1;
$27 = $11;
$6 = $11 >> 31;
$25 = $6;
$11 = 536870911 / ($11 >> 16) << 16 >> 16;
$12 = (Math_imul($11, $12 & 65535) >> 16) + Math_imul($12 >> 16, $11) | 0;
$6 = $12 >> 31;
$19 = $6;
$6 = $25;
$19 = __wasm_i64_mul($27, $6, $12, $19);
$25 = $19;
$6 = i64toi32_i32$HIGH_BITS;
$17 = $17 - ((($6 & 536870911) << 3 | $25 >>> 29) & -8) | 0;
$12 = (Math_imul($17 >> 16, $11) + $12 | 0) + (Math_imul($17 & 65535, $11) >> 16) | 0;
$11 = Math_imul($9 << 16 >> 16, 600) + 2e3 | 0;
$6 = $5;
$14 = ($14 - $18 | 0) + 10 | 0;
label$7 : {
if (($14 | 0) <= -1) {
$14 = 0 - $14 | 0;
$18 = 2147483647 >>> $14 | 0;
$17 = -2147483648 >> $14;
$12 = (($12 | 0) > ($18 | 0) ? $18 : ($12 | 0) < ($17 | 0) ? $17 : $12) << $14;
break label$7;
}
$12 = ($14 | 0) < 32 ? $12 >> $14 : 0;
}
HEAP32[$6 >> 2] = $12;
label$9 : {
if (($11 | 0) > ($12 | 0)) {
HEAP32[$5 >> 2] = $11;
$12 = $15 - $11 | 0;
HEAP32[$5 + 4 >> 2] = $12;
$12 = ($12 << 1) - $11 | 0;
$14 = $12 >> 31;
$18 = Math_clz32($14 ^ $12 + $14);
$14 = $12 << $18 - 1;
$27 = $14;
$17 = $11 << 16 >> 16;
$12 = $20 + 65536 | 0;
$12 = (Math_imul($17, $12 & 65535) >> 16) + Math_imul($12 >> 16, $17) | 0;
$17 = $12 >> 31;
$17 = Math_clz32($17 ^ $12 + $17);
$20 = $12 << $17 - 1;
$12 = 536870911 / ($20 >> 16) << 16 >> 16;
$14 = (Math_imul($12, $14 & 65535) >> 16) + Math_imul($14 >> 16, $12) | 0;
$19 = $14 >> 31;
$6 = $19;
$19 = $20 >> 31;
$25 = $19;
$19 = $6;
$25 = __wasm_i64_mul($14, $19, $20, $25);
$6 = $25;
$19 = i64toi32_i32$HIGH_BITS;
$20 = $27 - ((($19 & 536870911) << 3 | $6 >>> 29) & -8) | 0;
$12 = (Math_imul($20 >> 16, $12) + $14 | 0) + (Math_imul($20 & 65535, $12) >> 16) | 0;
$14 = ($18 - $17 | 0) + 13 | 0;
label$11 : {
if (($14 | 0) <= -1) {
$14 = 0 - $14 | 0;
$18 = 2147483647 >>> $14 | 0;
$17 = -2147483648 >> $14;
$12 = (($12 | 0) > ($18 | 0) ? $18 : ($12 | 0) < ($17 | 0) ? $17 : $12) << $14;
break label$11;
}
$12 = ($14 | 0) < 32 ? $12 >> $14 : 0;
}
$12 = ($12 | 0) > 0 ? $12 : 0;
$12 = ($12 | 0) < 16384 ? $12 : 16384;
break label$9;
}
HEAP32[$5 + 4 >> 2] = $15 - $12;
$12 = 16384;
}
$14 = HEAP16[$0 + 28 >> 1];
$12 = $12 - $14 | 0;
HEAP16[$0 + 28 >> 1] = (Math_imul($12 >>> 16 | 0, $13) + (Math_imul($12 & 65535, $13 << 16 >> 16) >>> 16 | 0) | 0) + $14;
$6 = 0;
HEAP8[$4 | 0] = 0;
label$13 : {
label$14 : {
label$15 : {
label$16 : {
label$17 : {
label$18 : {
if ($8) {
HEAP32[$16 + 8 >> 2] = 0;
HEAP32[$16 + 12 >> 2] = 0;
silk_stereo_quant_pred($16 + 8 | 0, $3);
break label$18;
}
$13 = $15 << 3;
label$20 : {
if (!HEAPU16[$0 + 30 >> 1]) {
label$22 : {
if ((Math_imul($11, 13) | 0) > ($13 | 0)) {
$11 = HEAP16[$0 + 28 >> 1];
break label$22;
}
$11 = HEAP16[$0 + 28 >> 1];
if (((Math_imul($11, $22 & 65535) >> 16) + Math_imul($22 >> 16, $11) | 0) > 818) {
break label$20;
}
}
HEAP32[$16 + 12 >> 2] = Math_imul($26 << 16 >> 16, $11) >> 14;
HEAP32[$16 + 8 >> 2] = Math_imul($7 << 16 >> 16, $11) >> 14;
silk_stereo_quant_pred($16 + 8 | 0, $3);
HEAP32[$16 + 8 >> 2] = 0;
HEAP32[$16 + 12 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 >> 2] = $15;
HEAP8[$4 | 0] = 1;
break label$17;
}
label$24 : {
if ((Math_imul($11, 11) | 0) > ($13 | 0)) {
$11 = HEAP16[$0 + 28 >> 1];
break label$24;
}
$11 = HEAP16[$0 + 28 >> 1];
if (((Math_imul($11, $22 & 65535) >> 16) + Math_imul($22 >> 16, $11) | 0) > 327) {
break label$20;
}
}
HEAP32[$16 + 12 >> 2] = Math_imul($26 << 16 >> 16, $11) >> 14;
HEAP32[$16 + 8 >> 2] = Math_imul($7 << 16 >> 16, $11) >> 14;
silk_stereo_quant_pred($16 + 8 | 0, $3);
HEAP32[$16 + 8 >> 2] = 0;
HEAP32[$16 + 12 >> 2] = 0;
break label$18;
}
if (($11 | 0) >= 15566) {
silk_stereo_quant_pred($16 + 8 | 0, $3);
$6 = 16384;
break label$18;
}
HEAP32[$16 + 12 >> 2] = Math_imul($26 << 16 >> 16, $11) >> 14;
HEAP32[$16 + 8 >> 2] = Math_imul($7 << 16 >> 16, $11) >> 14;
silk_stereo_quant_pred($16 + 8 | 0, $3);
$6 = HEAP16[$0 + 28 >> 1];
}
if (HEAPU8[$4 | 0] != 1) {
break label$16;
}
}
$11 = HEAPU16[$0 + 32 >> 1] + ($10 - ($9 << 3) | 0) | 0;
HEAP16[$0 + 32 >> 1] = $11;
if ((Math_imul($9, 5) | 0) > $11 << 16 >> 16) {
HEAP8[$4 | 0] = 0;
break label$14;
}
HEAP16[$0 + 32 >> 1] = 1e4;
break label$15;
}
HEAP16[$0 + 32 >> 1] = 0;
}
if (HEAPU8[$4 | 0]) {
break label$13;
}
}
if (HEAP32[$5 + 4 >> 2] > 0) {
break label$13;
}
HEAP32[$5 + 4 >> 2] = 1;
HEAP32[$5 >> 2] = ($15 | 0) > 2 ? $21 - 1 | 0 : 1;
}
$11 = $9 << 3;
$13 = 65536 / ($11 | 0) | 0;
$7 = HEAP32[$16 + 12 >> 2];
$8 = HEAP32[$16 + 8 >> 2];
if (($9 | 0) >= 1) {
$13 = $13 << 16 >> 16;
$15 = HEAP16[$0 + 30 >> 1];
$12 = $6 - $15 | 0;
$22 = (Math_imul($13, $12 & 65535) >> 16) + Math_imul($12 >> 16, $13) << 10;
$12 = HEAP16[$0 + 2 >> 1];
$9 = (Math_imul($7 - $12 << 16 >> 16, $13) >> 15) + 1 >> 1;
$14 = HEAP16[$0 >> 1];
$5 = (Math_imul($8 - $14 << 16 >> 16, $13) >> 15) + 1 >> 1;
$4 = ($11 | 0) > 1 ? $11 : 1;
$13 = 0;
$21 = 0 - $14 | 0;
$18 = 0 - $12 | 0;
$15 = $15 << 10;
while (1) {
$12 = $13 << 1;
$14 = $13 + 1 | 0;
$13 = $14 << 1;
$17 = HEAP16[$24 + $13 >> 1];
$15 = $15 + $22 | 0;
$18 = $18 - $9 | 0;
$20 = $18 << 16 >> 16;
$13 = HEAP16[$13 + $23 >> 1];
$19 = ((Math_imul($17, $15 >> 16) + Math_imul($20, $13 >> 5) | 0) + (Math_imul($15 & 64512, $17) >> 16) | 0) + (Math_imul($13 << 11 & 63488, $20) >> 16) | 0;
$13 = (HEAP16[$1 + $12 >> 1] + HEAP16[$12 + $23 >> 1] | 0) + ($13 << 1) | 0;
$3 = ($12 + $2 | 0) - 2 | 0;
$21 = $21 - $5 | 0;
$12 = $21 << 16 >> 16;
$13 = (Math_imul($12, $13 >> 7) + $19 | 0) + (Math_imul($13 << 9 & 65024, $12) >> 16) | 0;
$12 = ($13 >> 7) + 1 >> 1;
HEAP16[$3 >> 1] = ($13 | 0) > 8388479 ? 32767 : ($12 | 0) > -32768 ? $12 : -32768;
$13 = $14;
if (($13 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
if (($10 | 0) > ($11 | 0)) {
$18 = $6 >> 6;
$17 = $6 << 10 & 64512;
$12 = 0 - ($7 << 16) >> 16;
$14 = 0 - ($8 << 16) >> 16;
while (1) {
$13 = $11 << 1;
$3 = ($13 + $2 | 0) - 2 | 0;
$11 = $11 + 1 | 0;
$15 = $11 << 1;
$21 = HEAP16[$24 + $15 >> 1];
$15 = HEAP16[$15 + $23 >> 1];
$13 = (HEAP16[$1 + $13 >> 1] + HEAP16[$13 + $23 >> 1] | 0) + ($15 << 1) | 0;
$13 = ((((Math_imul($18, $21) + Math_imul($15 >> 5, $12) | 0) + (Math_imul($17, $21) >> 16) | 0) + (Math_imul($15 << 11 & 63488, $12) >> 16) | 0) + Math_imul($13 >> 7, $14) | 0) + (Math_imul($13 << 9 & 65024, $14) >> 16) | 0;
$15 = ($13 >> 7) + 1 >> 1;
HEAP16[$3 >> 1] = ($13 | 0) > 8388479 ? 32767 : ($15 | 0) > -32768 ? $15 : -32768;
if (($10 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
HEAP16[$0 + 30 >> 1] = $6;
HEAP16[$0 + 2 >> 1] = $7;
HEAP16[$0 >> 1] = $8;
__stack_pointer = $16 + 16 | 0;
}
function __rem_pio2_large($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 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;
$8 = __stack_pointer - 560 | 0;
__stack_pointer = $8;
$7 = ($2 - 3 | 0) / 24 | 0;
$19 = ($7 | 0) > 0 ? $7 : 0;
$13 = Math_imul($19, -24) + $2 | 0;
$12 = HEAP32[($4 << 2) + 33424 >> 2];
$15 = $3 - 1 | 0;
if (($12 + $15 | 0) >= 0) {
$6 = $3 + $12 | 0;
$2 = $19 - $15 | 0;
$7 = 0;
while (1) {
$5 = ($2 | 0) < 0 ? 0 : +HEAP32[($2 << 2) + 33440 >> 2];
HEAPF64[($8 + 320 | 0) + ($7 << 3) >> 3] = $5;
$2 = $2 + 1 | 0;
$7 = $7 + 1 | 0;
if (($7 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$18 = $13 - 24 | 0;
$6 = 0;
$10 = ($12 | 0) > 0 ? $12 : 0;
$11 = ($3 | 0) < 1;
while (1) {
label$6 : {
if ($11) {
$5 = 0;
break label$6;
}
$7 = $6 + $15 | 0;
$2 = 0;
$5 = 0;
while (1) {
$5 = $5 + HEAPF64[($2 << 3) + $0 >> 3] * HEAPF64[($8 + 320 | 0) + ($7 - $2 << 3) >> 3];
$2 = $2 + 1 | 0;
if (($3 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
HEAPF64[($6 << 3) + $8 >> 3] = $5;
$2 = ($6 | 0) == ($10 | 0);
$6 = $6 + 1 | 0;
if (!$2) {
continue;
}
break;
}
$23 = 47 - $13 | 0;
$21 = 48 - $13 | 0;
$24 = $13 - 25 | 0;
$6 = $12;
label$9 : {
while (1) {
$5 = HEAPF64[($6 << 3) + $8 >> 3];
$2 = 0;
$7 = $6;
$15 = ($6 | 0) < 1;
if (!$15) {
while (1) {
$10 = $2 << 2;
$10 = $10 + ($8 + 480 | 0) | 0;
$16 = $5;
$9 = $5 * 5.960464477539063e-8;
label$14 : {
if (Math_abs($9) < 2147483648) {
$11 = ~~$9;
break label$14;
}
$11 = -2147483648;
}
$9 = +($11 | 0);
$5 = $16 + $9 * -16777216;
label$13 : {
if (Math_abs($5) < 2147483648) {
$11 = ~~$5;
break label$13;
}
$11 = -2147483648;
}
HEAP32[$10 >> 2] = $11;
$7 = $7 - 1 | 0;
$5 = HEAPF64[($7 << 3) + $8 >> 3] + $9;
$2 = $2 + 1 | 0;
if (($6 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$5 = scalbn($5, $18);
$5 = $5 + floor($5 * .125) * -8;
label$17 : {
if (Math_abs($5) < 2147483648) {
$17 = ~~$5;
break label$17;
}
$17 = -2147483648;
}
$5 = $5 - +($17 | 0);
label$19 : {
label$20 : {
label$21 : {
$22 = ($18 | 0) < 1;
label$22 : {
if (!$22) {
$7 = ($6 << 2) + $8 | 0;
$2 = $7 + 476 | 0;
$11 = $2;
$2 = HEAP32[$7 + 476 >> 2];
$7 = $2;
$2 = $2 >> $21;
$7 = $7 - ($2 << $21) | 0;
HEAP32[$11 >> 2] = $7;
$17 = $2 + $17 | 0;
$14 = $7 >> $23;
break label$22;
}
if ($18) {
break label$21;
}
$14 = HEAP32[(($6 << 2) + $8 | 0) + 476 >> 2] >> 23;
}
if (($14 | 0) < 1) {
break label$19;
}
break label$20;
}
$14 = 2;
if (!($5 >= .5 ^ 1)) {
break label$20;
}
$14 = 0;
break label$19;
}
$2 = 0;
$11 = 0;
if (!$15) {
while (1) {
$15 = ($8 + 480 | 0) + ($2 << 2) | 0;
$7 = HEAP32[$15 >> 2];
$10 = 16777215;
label$26 : {
label$27 : {
if ($11) {
break label$27;
}
$10 = 16777216;
if ($7) {
break label$27;
}
$11 = 0;
break label$26;
}
HEAP32[$15 >> 2] = $10 - $7;
$11 = 1;
}
$2 = $2 + 1 | 0;
if (($6 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
label$28 : {
if ($22) {
break label$28;
}
label$29 : {
switch ($24 | 0) {
case 0:
$7 = ($6 << 2) + $8 | 0;
$2 = $7 + 476 | 0;
HEAP32[$2 >> 2] = HEAP32[$7 + 476 >> 2] & 8388607;
break label$28;
case 1:
break label$29;
default:
break label$28;
}
}
$7 = ($6 << 2) + $8 | 0;
$2 = $7 + 476 | 0;
HEAP32[$2 >> 2] = HEAP32[$7 + 476 >> 2] & 4194303;
}
$17 = $17 + 1 | 0;
if (($14 | 0) != 2) {
break label$19;
}
$5 = 1 - $5;
$14 = 2;
if (!$11) {
break label$19;
}
$5 = $5 - scalbn(1, $18);
}
if ($5 == 0) {
$7 = 0;
label$32 : {
$2 = $6;
if (($12 | 0) >= ($2 | 0)) {
break label$32;
}
while (1) {
$2 = $2 - 1 | 0;
$7 = HEAP32[($8 + 480 | 0) + ($2 << 2) >> 2] | $7;
if (($2 | 0) > ($12 | 0)) {
continue;
}
break;
}
if (!$7) {
break label$32;
}
$13 = $18;
while (1) {
$13 = $13 - 24 | 0;
$6 = $6 - 1 | 0;
if (!HEAP32[($8 + 480 | 0) + ($6 << 2) >> 2]) {
continue;
}
break;
}
break label$9;
}
$2 = 1;
while (1) {
$7 = $2;
$2 = $2 + 1 | 0;
if (!HEAP32[($8 + 480 | 0) + ($12 - $7 << 2) >> 2]) {
continue;
}
break;
}
$10 = $6 + $7 | 0;
while (1) {
$7 = $3 + $6 | 0;
$6 = $6 + 1 | 0;
HEAPF64[($8 + 320 | 0) + ($7 << 3) >> 3] = HEAP32[($19 + $6 << 2) + 33440 >> 2];
$2 = 0;
$5 = 0;
if (($3 | 0) >= 1) {
while (1) {
$5 = $5 + HEAPF64[($2 << 3) + $0 >> 3] * HEAPF64[($8 + 320 | 0) + ($7 - $2 << 3) >> 3];
$2 = $2 + 1 | 0;
if (($3 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
HEAPF64[($6 << 3) + $8 >> 3] = $5;
if (($6 | 0) < ($10 | 0)) {
continue;
}
break;
}
$6 = $10;
continue;
}
break;
}
$5 = scalbn($5, 24 - $13 | 0);
label$39 : {
if (!($5 >= 16777216 ^ 1)) {
$3 = $6 << 2;
$3 = $3 + ($8 + 480 | 0) | 0;
$16 = $5;
$9 = $5 * 5.960464477539063e-8;
label$42 : {
if (Math_abs($9) < 2147483648) {
$2 = ~~$9;
break label$42;
}
$2 = -2147483648;
}
$5 = $16 + +($2 | 0) * -16777216;
label$41 : {
if (Math_abs($5) < 2147483648) {
$7 = ~~$5;
break label$41;
}
$7 = -2147483648;
}
HEAP32[$3 >> 2] = $7;
$6 = $6 + 1 | 0;
break label$39;
}
if (Math_abs($5) < 2147483648) {
$2 = ~~$5;
} else {
$2 = -2147483648;
}
$13 = $18;
}
HEAP32[($8 + 480 | 0) + ($6 << 2) >> 2] = $2;
}
$5 = scalbn(1, $13);
label$47 : {
if (($6 | 0) <= -1) {
break label$47;
}
$2 = $6;
while (1) {
HEAPF64[($2 << 3) + $8 >> 3] = $5 * +HEAP32[($8 + 480 | 0) + ($2 << 2) >> 2];
$5 = $5 * 5.960464477539063e-8;
$3 = ($2 | 0) > 0;
$2 = $2 - 1 | 0;
if ($3) {
continue;
}
break;
}
$10 = 0;
if (($6 | 0) < 0) {
break label$47;
}
$12 = ($12 | 0) > 0 ? $12 : 0;
$7 = $6;
while (1) {
$0 = $10 >>> 0 > $12 >>> 0 ? $12 : $10;
$11 = $6 - $7 | 0;
$2 = 0;
$5 = 0;
while (1) {
$5 = $5 + HEAPF64[($2 << 3) + 36208 >> 3] * HEAPF64[($2 + $7 << 3) + $8 >> 3];
$3 = ($0 | 0) != ($2 | 0);
$2 = $2 + 1 | 0;
if ($3) {
continue;
}
break;
}
HEAPF64[($8 + 160 | 0) + ($11 << 3) >> 3] = $5;
$7 = $7 - 1 | 0;
$2 = ($6 | 0) != ($10 | 0);
$10 = $10 + 1 | 0;
if ($2) {
continue;
}
break;
}
}
label$51 : {
label$52 : {
label$53 : {
switch ($4 | 0) {
case 3:
label$56 : {
if (($6 | 0) < 1) {
break label$56;
}
$5 = HEAPF64[($8 + 160 | 0) + ($6 << 3) >> 3];
$2 = $6;
while (1) {
$3 = $2 - 1 | 0;
$7 = ($8 + 160 | 0) + ($3 << 3) | 0;
$9 = HEAPF64[$7 >> 3];
$16 = $9;
$9 = $9 + $5;
HEAPF64[($8 + 160 | 0) + ($2 << 3) >> 3] = $5 + ($16 - $9);
HEAPF64[$7 >> 3] = $9;
$7 = ($2 | 0) > 1;
$5 = $9;
$2 = $3;
if ($7) {
continue;
}
break;
}
if (($6 | 0) < 2) {
break label$56;
}
$5 = HEAPF64[($8 + 160 | 0) + ($6 << 3) >> 3];
$2 = $6;
while (1) {
$3 = $2 - 1 | 0;
$7 = ($8 + 160 | 0) + ($3 << 3) | 0;
$9 = HEAPF64[$7 >> 3];
$16 = $9;
$9 = $9 + $5;
HEAPF64[($8 + 160 | 0) + ($2 << 3) >> 3] = $5 + ($16 - $9);
HEAPF64[$7 >> 3] = $9;
$7 = ($2 | 0) > 2;
$5 = $9;
$2 = $3;
if ($7) {
continue;
}
break;
}
if (($6 | 0) <= 1) {
break label$56;
}
while (1) {
$20 = $20 + HEAPF64[($8 + 160 | 0) + ($6 << 3) >> 3];
$2 = ($6 | 0) > 2;
$6 = $6 - 1 | 0;
if ($2) {
continue;
}
break;
}
}
$5 = HEAPF64[$8 + 160 >> 3];
if ($14) {
break label$52;
}
HEAPF64[$1 >> 3] = $5;
$5 = HEAPF64[$8 + 168 >> 3];
HEAPF64[$1 + 16 >> 3] = $20;
HEAPF64[$1 + 8 >> 3] = $5;
break label$51;
case 0:
$5 = 0;
if (($6 | 0) >= 0) {
while (1) {
$5 = $5 + HEAPF64[($8 + 160 | 0) + ($6 << 3) >> 3];
$2 = ($6 | 0) > 0;
$6 = $6 - 1 | 0;
if ($2) {
continue;
}
break;
}
}
HEAPF64[$1 >> 3] = $14 ? -$5 : $5;
break label$51;
case 1:
case 2:
break label$53;
default:
break label$51;
}
}
$5 = 0;
if (($6 | 0) >= 0) {
$2 = $6;
while (1) {
$5 = $5 + HEAPF64[($8 + 160 | 0) + ($2 << 3) >> 3];
$3 = ($2 | 0) > 0;
$2 = $2 - 1 | 0;
if ($3) {
continue;
}
break;
}
}
HEAPF64[$1 >> 3] = $14 ? -$5 : $5;
$5 = HEAPF64[$8 + 160 >> 3] - $5;
$2 = 1;
if (($6 | 0) >= 1) {
while (1) {
$5 = $5 + HEAPF64[($8 + 160 | 0) + ($2 << 3) >> 3];
$3 = ($2 | 0) != ($6 | 0);
$2 = $2 + 1 | 0;
if ($3) {
continue;
}
break;
}
}
HEAPF64[$1 + 8 >> 3] = $14 ? -$5 : $5;
break label$51;
}
HEAPF64[$1 >> 3] = -$5;
$5 = HEAPF64[$8 + 168 >> 3];
HEAPF64[$1 + 16 >> 3] = -$20;
HEAPF64[$1 + 8 >> 3] = -$5;
}
__stack_pointer = $8 + 560 | 0;
return $17 & 7;
}
function silk_NLSF_del_dec_quant($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
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;
$10 = __stack_pointer - 320 | 0;
__stack_pointer = $10;
$16 = $6 << 16 >> 16;
$6 = -10;
while (1) {
$11 = $6 << 10;
label$2 : {
if (($6 | 0) >= 1) {
$13 = $11 | 922;
$11 = $11 - 102 | 0;
break label$2;
}
if (!$6) {
$13 = $11 | 922;
break label$2;
}
$12 = $11 + 1024 | 0;
$13 = ($6 | 0) == -1 ? $12 : $12 | 102;
$11 = $11 | 102;
}
$12 = ($6 << 2) + 40 | 0;
HEAP32[$12 + $10 >> 2] = Math_imul($13 << 16 >> 16, $16) >> 16;
HEAP32[($10 + 80 | 0) + $12 >> 2] = Math_imul($11 << 16 >> 16, $16) >> 16;
$6 = $6 + 1 | 0;
if (($6 | 0) != 10) {
continue;
}
break;
}
HEAP16[$10 + 224 >> 1] = 0;
HEAP32[$10 + 192 >> 2] = 0;
if (($9 | 0) < 1) {
$20 = 0;
} else {
$20 = $8 << 16 >> 16;
$8 = $9;
$16 = 1;
while (1) {
$24 = $8;
$8 = $8 - 1 | 0;
label$8 : {
label$9 : {
label$10 : {
$23 = ($16 | 0) < 1;
label$11 : {
if ($23) {
break label$11;
}
$6 = $8 << 1;
$22 = HEAP16[$6 + $4 >> 1] + $5 | 0;
$12 = HEAPU16[$1 + $6 >> 1];
$21 = HEAPU8[$3 + $8 | 0];
$15 = HEAP16[$2 + $6 >> 1];
$6 = 0;
while (1) {
$17 = ($10 + 224 | 0) + ($6 << 1) | 0;
$13 = Math_imul(HEAP16[$17 >> 1], $21) >> 8;
$11 = Math_imul($12 - $13 << 16 >> 16, $7) >> 16;
$11 = ($11 | 0) > -10 ? $11 : -10;
$11 = ($11 | 0) < 9 ? $11 : 9;
HEAP8[(($10 + 240 | 0) + ($6 << 4) | 0) + $8 | 0] = $11;
$14 = ($11 << 2) + 40 | 0;
$18 = HEAP32[$14 + ($10 + 80 | 0) >> 2] + $13 | 0;
HEAP16[$17 >> 1] = $18;
$17 = $6 + $16 | 0;
$13 = HEAP32[$10 + $14 >> 2] + $13 | 0;
HEAP16[($10 + 224 | 0) + ($17 << 1) >> 1] = $13;
label$13 : {
if (($11 | 0) >= 3) {
if (($11 | 0) == 3) {
$19 = 280;
$14 = HEAPU8[$22 + 7 | 0];
break label$13;
}
$11 = Math_imul($11, 43);
$19 = $11 + 151 | 0;
$14 = $11 + 108 | 0;
break label$13;
}
if (($11 | 0) <= -4) {
if (($11 | 0) == -4) {
$19 = HEAPU8[$22 + 1 | 0];
$14 = 280;
break label$13;
}
$11 = Math_imul($11, -43);
$19 = $11 + 65 | 0;
$14 = $11 + 108 | 0;
break label$13;
}
$11 = $11 + $22 | 0;
$19 = HEAPU8[$11 + 5 | 0];
$14 = HEAPU8[$11 + 4 | 0];
}
$11 = ($10 + 192 | 0) + ($6 << 2) | 0;
$25 = $11;
$11 = HEAP32[$11 >> 2];
$26 = $11 + Math_imul($20, $14) | 0;
$14 = $12 - $18 << 16 >> 16;
HEAP32[$25 >> 2] = $26 + Math_imul(Math_imul($14, $14), $15);
$14 = Math_imul($19, $20) + $11 | 0;
$11 = $12 - $13 << 16 >> 16;
HEAP32[($10 + 192 | 0) + ($17 << 2) >> 2] = $14 + Math_imul(Math_imul($11, $11), $15);
$6 = $6 + 1 | 0;
if (($16 | 0) != ($6 | 0)) {
continue;
}
break;
}
if (($16 | 0) >= 3) {
$11 = 0;
$6 = HEAP32[$10 + 208 >> 2];
$12 = HEAP32[$10 + 192 >> 2];
if (($6 | 0) < ($12 | 0)) {
break label$10;
}
$15 = $6;
$6 = $12;
break label$9;
}
$6 = 0;
if ($23) {
break label$11;
}
while (1) {
HEAP8[(($10 + 240 | 0) + ($6 + $16 << 4) | 0) + $8 | 0] = HEAPU8[(($10 + 240 | 0) + ($6 << 4) | 0) + $8 | 0] + 1;
$6 = $6 + 1 | 0;
if (($16 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$16 = $16 << 1;
$6 = $16;
if (($6 | 0) > 3) {
break label$8;
}
while (1) {
HEAP8[(($10 + 240 | 0) + ($6 << 4) | 0) + $8 | 0] = HEAPU8[(($10 + 240 | 0) + ($6 - $16 << 4) | 0) + $8 | 0];
$6 = $6 + 1 | 0;
if (($6 | 0) != 4) {
continue;
}
break;
}
break label$8;
}
HEAP32[$10 + 208 >> 2] = $12;
HEAP32[$10 + 192 >> 2] = $6;
$11 = HEAPU16[$10 + 224 >> 1];
HEAP16[$10 + 224 >> 1] = HEAPU16[$10 + 232 >> 1];
HEAP16[$10 + 232 >> 1] = $11;
$11 = 4;
$15 = $12;
}
HEAP32[$10 + 176 >> 2] = $6;
HEAP32[$10 + 160 >> 2] = $15;
HEAP32[$10 + 304 >> 2] = $11;
$12 = 1;
$11 = HEAP32[$10 + 212 >> 2];
$13 = HEAP32[$10 + 196 >> 2];
label$21 : {
if (($11 | 0) >= ($13 | 0)) {
$17 = $11;
$11 = $13;
break label$21;
}
HEAP32[$10 + 212 >> 2] = $13;
HEAP32[$10 + 196 >> 2] = $11;
$12 = HEAPU16[$10 + 226 >> 1];
HEAP16[$10 + 226 >> 1] = HEAPU16[$10 + 234 >> 1];
HEAP16[$10 + 234 >> 1] = $12;
$12 = 5;
$17 = $13;
}
HEAP32[$10 + 180 >> 2] = $11;
HEAP32[$10 + 164 >> 2] = $17;
HEAP32[$10 + 308 >> 2] = $12;
$12 = 2;
$13 = HEAP32[$10 + 216 >> 2];
$14 = HEAP32[$10 + 200 >> 2];
label$23 : {
if (($13 | 0) >= ($14 | 0)) {
$18 = $13;
$13 = $14;
break label$23;
}
HEAP32[$10 + 216 >> 2] = $14;
HEAP32[$10 + 200 >> 2] = $13;
$12 = HEAPU16[$10 + 228 >> 1];
HEAP16[$10 + 228 >> 1] = HEAPU16[$10 + 236 >> 1];
HEAP16[$10 + 236 >> 1] = $12;
$12 = 6;
$18 = $14;
}
HEAP32[$10 + 184 >> 2] = $13;
HEAP32[$10 + 168 >> 2] = $18;
HEAP32[$10 + 312 >> 2] = $12;
$19 = 3;
$12 = HEAP32[$10 + 220 >> 2];
$21 = HEAP32[$10 + 204 >> 2];
label$25 : {
if (($12 | 0) >= ($21 | 0)) {
$14 = $12;
$12 = $21;
break label$25;
}
HEAP32[$10 + 220 >> 2] = $21;
HEAP32[$10 + 204 >> 2] = $12;
$14 = HEAPU16[$10 + 230 >> 1];
HEAP16[$10 + 230 >> 1] = HEAPU16[$10 + 238 >> 1];
HEAP16[$10 + 238 >> 1] = $14;
$19 = 7;
$14 = $21;
}
HEAP32[$10 + 188 >> 2] = $12;
HEAP32[$10 + 172 >> 2] = $14;
HEAP32[$10 + 316 >> 2] = $19;
while (1) {
$19 = ($15 | 0) > ($17 | 0);
$15 = $19 ? $17 : $15;
$17 = ($18 | 0) < ($15 | 0);
$15 = $17 ? $18 : $15;
$18 = ($14 | 0) < ($15 | 0);
$21 = $18 ? $14 : $15;
$6 = ($6 | 0) > 0 ? $6 : 0;
$15 = ($11 | 0) > ($6 | 0);
$6 = $15 ? $11 : $6;
$11 = ($13 | 0) > ($6 | 0);
$6 = $11 ? $13 : $6;
$14 = $6;
$6 = ($6 | 0) < ($12 | 0);
if (($21 | 0) < (($6 ? $12 : $14) | 0)) {
$6 = $6 ? 3 : $11 ? 2 : $15;
$11 = $6 << 2;
$12 = $18 ? 3 : $17 ? 2 : $19;
$13 = $12 << 2;
HEAP32[($11 | $10 + 304) >> 2] = HEAP32[($13 | $10 + 304) >> 2] ^ 4;
$15 = $12 | 4;
HEAP32[($10 + 192 | $11) >> 2] = HEAP32[($10 + 192 | 0) + ($15 << 2) >> 2];
HEAP32[($10 + 176 | $11) >> 2] = 0;
HEAP16[($10 + 224 | $6 << 1) >> 1] = HEAPU16[($10 + 224 | $15 << 1) >> 1];
HEAP32[($10 + 160 | $13) >> 2] = 2147483647;
$11 = ($10 + 240 | 0) + ($12 << 4) | 0;
$14 = HEAP32[$11 >> 2];
$12 = HEAP32[$11 + 4 >> 2];
$6 = ($10 + 240 | 0) + ($6 << 4) | 0;
HEAP32[$6 >> 2] = $14;
HEAP32[$6 + 4 >> 2] = $12;
$14 = HEAP32[$11 + 12 >> 2];
$12 = HEAP32[$11 + 8 >> 2];
HEAP32[$6 + 8 >> 2] = $12;
HEAP32[$6 + 12 >> 2] = $14;
$12 = HEAP32[$10 + 188 >> 2];
$14 = HEAP32[$10 + 172 >> 2];
$13 = HEAP32[$10 + 184 >> 2];
$18 = HEAP32[$10 + 168 >> 2];
$11 = HEAP32[$10 + 180 >> 2];
$17 = HEAP32[$10 + 164 >> 2];
$6 = HEAP32[$10 + 176 >> 2];
$15 = HEAP32[$10 + 160 >> 2];
continue;
}
break;
}
$6 = ($10 + 240 | 0) + $8 | 0;
HEAP8[$6 | 0] = HEAPU8[$6 | 0] + (HEAP32[$10 + 304 >> 2] >>> 2 | 0);
$11 = $6 + 16 | 0;
HEAP8[$11 | 0] = HEAPU8[$6 + 16 | 0] + (HEAP32[$10 + 308 >> 2] >>> 2 | 0);
$11 = $6 + 48 | 0;
HEAP8[$11 | 0] = HEAPU8[$6 + 48 | 0] + (HEAP32[$10 + 316 >> 2] >>> 2 | 0);
$14 = $6;
$6 = $6 + 32 | 0;
HEAP8[$6 | 0] = HEAPU8[$14 + 32 | 0] + (HEAP32[$10 + 312 >> 2] >>> 2 | 0);
}
if (($24 | 0) > 1) {
continue;
}
break;
}
$6 = HEAP32[$10 + 220 >> 2];
$11 = HEAP32[$10 + 216 >> 2];
$16 = HEAP32[$10 + 212 >> 2];
$12 = HEAP32[$10 + 208 >> 2];
$13 = HEAP32[$10 + 204 >> 2];
$8 = HEAP32[$10 + 200 >> 2];
$15 = HEAP32[$10 + 196 >> 2];
$20 = HEAP32[$10 + 192 >> 2];
}
$17 = ($20 | 0) > ($15 | 0);
$15 = $17 ? $15 : $20;
$20 = ($15 | 0) > ($8 | 0);
$8 = $20 ? $8 : $15;
$15 = ($13 | 0) < ($8 | 0);
$13 = $15 ? $13 : $8;
$8 = ($13 | 0) > ($12 | 0);
$12 = $8 ? $12 : $13;
$13 = ($16 | 0) < ($12 | 0);
$16 = $13 ? $16 : $12;
$12 = ($16 | 0) > ($11 | 0);
$1 = $12 ? 6 : $13 ? 5 : $8 ? 4 : $15 ? 3 : $20 ? 2 : $17;
$16 = $12 ? $11 : $16;
$12 = ($16 | 0) > ($6 | 0);
$11 = $12 ? 7 : $1;
if (($9 | 0) > 0) {
memcpy($0, ($10 + 240 | 0) + (($11 & 3) << 4) | 0, $9);
}
HEAP8[$0 | 0] = HEAPU8[$0 | 0] + ($11 >>> 2 | 0);
__stack_pointer = $10 + 320 | 0;
return $12 ? $6 : $16;
}
function silk_control_encoder($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0;
HEAP32[$0 + 6076 >> 2] = HEAP32[$1 + 48 >> 2];
HEAP32[$0 + 4676 >> 2] = HEAP32[$1 + 52 >> 2];
$6 = HEAP32[$1 + 8 >> 2];
HEAP32[$0 + 4556 >> 2] = $6;
HEAP32[$0 + 4564 >> 2] = HEAP32[$1 + 12 >> 2];
HEAP32[$0 + 4568 >> 2] = HEAP32[$1 + 16 >> 2];
HEAP32[$0 + 4572 >> 2] = HEAP32[$1 + 20 >> 2];
HEAP32[$0 + 6088 >> 2] = HEAP32[$1 + 40 >> 2];
HEAP32[$0 + 5752 >> 2] = HEAP32[$1 >> 2];
$5 = HEAP32[$1 + 4 >> 2];
HEAP32[$0 + 5760 >> 2] = $3;
HEAP32[$0 + 4536 >> 2] = $2;
HEAP32[$0 + 5756 >> 2] = $5;
label$1 : {
label$2 : {
if (!(HEAP32[$0 + 4680 >> 2] | !HEAP32[$0 + 4668 >> 2])) {
$1 = 0;
if (HEAP32[$0 + 4560 >> 2] == ($6 | 0)) {
break label$2;
}
$4 = HEAP32[$0 + 4576 >> 2];
if (($4 | 0) < 1) {
break label$2;
}
return silk_setup_resamplers($0, $4);
}
$4 = (wasm2js_i32$0 = $4, wasm2js_i32$1 = silk_control_audio_bandwidth($0, $1), wasm2js_i32$2 = $4, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$8 = silk_setup_resamplers($0, $4);
$6 = 0;
$2 = HEAP32[$1 + 24 >> 2];
if (($2 | 0) != HEAP32[$0 + 4612 >> 2]) {
label$5 : {
label$6 : {
switch ($2 - 10 | 0) {
default:
if (($2 | 0) == 40 | ($2 | 0) == 60) {
break label$5;
}
break;
case 0:
case 10:
break label$5;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
break label$6;
}
}
$6 = -103;
}
label$8 : {
if (($2 | 0) <= 10) {
HEAP32[$0 + 5744 >> 2] = 1;
HEAP32[$0 + 4580 >> 2] = ($2 | 0) == 10 ? 2 : 1;
$3 = $4 << 16 >> 16;
HEAP32[$0 + 4584 >> 2] = Math_imul($3, $2 << 16 >> 16);
HEAP32[$0 + 4548 >> 2] = Math_imul($3, 14);
if (HEAP32[$0 + 4576 >> 2] == 8) {
HEAP32[$0 + 4688 >> 2] = 2169;
break label$8;
}
HEAP32[$0 + 4688 >> 2] = 2157;
break label$8;
}
HEAP32[$0 + 4580 >> 2] = 4;
HEAP32[$0 + 5744 >> 2] = ($2 >>> 0) / 20;
$3 = $4 << 16 >> 16;
HEAP32[$0 + 4584 >> 2] = Math_imul($3, 20);
HEAP32[$0 + 4548 >> 2] = Math_imul($3, 24);
if (HEAP32[$0 + 4576 >> 2] == 8) {
HEAP32[$0 + 4688 >> 2] = 2146;
break label$8;
}
HEAP32[$0 + 4688 >> 2] = 2112;
}
HEAP32[$0 + 4608 >> 2] = 0;
HEAP32[$0 + 4612 >> 2] = $2;
}
label$12 : {
label$13 : {
label$14 : {
label$15 : {
if (!(!(1 << $4 & 69888) | $4 >>> 0 > 16)) {
label$17 : {
label$18 : {
$2 = HEAP32[$0 + 4580 >> 2];
switch ($2 - 2 | 0) {
case 0:
case 2:
break label$17;
default:
break label$18;
}
}
celt_fatal(6692, 6671, 242);
abort();
}
label$19 : {
if (HEAP32[$0 + 4576 >> 2] == ($4 | 0)) {
$5 = HEAP32[$0 + 4584 >> 2];
$3 = HEAP32[$0 + 4588 >> 2];
break label$19;
}
HEAP32[$0 + 7168 >> 2] = 0;
HEAP32[$0 + 7172 >> 2] = 0;
HEAP32[$0 + 5748 >> 2] = 0;
HEAP32[$0 + 5740 >> 2] = 0;
HEAP32[$0 + 16 >> 2] = 0;
HEAP32[$0 + 20 >> 2] = 0;
HEAP32[$0 + 4608 >> 2] = 0;
HEAP32[$0 + 7176 >> 2] = 0;
memset($0 + 148 | 0, 0, 4384);
$3 = 10;
HEAP8[$0 + 7168 | 0] = 10;
HEAP32[$0 + 4664 >> 2] = 1;
HEAP32[$0 + 4544 >> 2] = 100;
HEAP32[$0 + 4576 >> 2] = $4;
HEAP8[$0 + 4541 | 0] = 0;
HEAP32[$0 + 4492 >> 2] = 65536;
HEAP32[$0 + 4476 >> 2] = 100;
label$21 : {
if (($4 | 0) == 8) {
HEAP32[$0 + 4688 >> 2] = ($2 | 0) == 4 ? 2146 : 2169;
$5 = 3576;
break label$21;
}
HEAP32[$0 + 4688 >> 2] = ($2 | 0) == 4 ? 2112 : 2157;
$3 = ($4 | 0) == 12;
$5 = $3 ? 3576 : 5700;
$3 = $3 ? 10 : 16;
}
HEAP32[$0 + 4692 >> 2] = $5;
HEAP32[$0 + 4640 >> 2] = $3;
$3 = Math_imul($4, 5);
HEAP32[$0 + 4588 >> 2] = $3;
HEAP32[$0 + 4596 >> 2] = $4 << 1;
HEAP32[$0 + 4592 >> 2] = Math_imul($4, 20);
HEAP32[$0 + 4552 >> 2] = Math_imul($4, 18);
$5 = Math_imul(Math_imul($4, 327680) >> 16, $2);
HEAP32[$0 + 4584 >> 2] = $5;
HEAP32[$0 + 4548 >> 2] = Math_imul(($2 | 0) == 4 ? 24 : 14, $4);
if (($4 | 0) == 16) {
HEAP32[$0 + 4684 >> 2] = 5872;
$3 = 80;
break label$19;
}
if (($4 | 0) == 12) {
HEAP32[$0 + 4684 >> 2] = 5866;
$3 = 60;
break label$19;
}
HEAP32[$0 + 4684 >> 2] = 5857;
}
if ((Math_imul($2, $3) | 0) != ($5 | 0)) {
break label$15;
}
$2 = HEAP32[$1 + 36 >> 2];
if ($2 >>> 0 >= 11) {
break label$14;
}
label$25 : {
$3 = $0;
label$26 : {
if (!$2) {
HEAP32[$0 + 4652 >> 2] = 52429;
HEAP32[$0 + 4644 >> 2] = 0;
HEAP32[$0 + 4648 >> 2] = 6;
HEAP32[$0 + 4636 >> 2] = 12;
HEAP32[$0 + 4660 >> 2] = 2;
HEAP32[$0 + 4628 >> 2] = 1;
HEAP32[$0 + 4632 >> 2] = 0;
$5 = Math_imul($4, 3);
break label$26;
}
if (($2 | 0) <= 1) {
HEAP32[$0 + 4652 >> 2] = 49807;
HEAP32[$0 + 4644 >> 2] = 1;
HEAP32[$0 + 4648 >> 2] = 8;
HEAP32[$0 + 4636 >> 2] = 14;
HEAP32[$0 + 4660 >> 2] = 3;
HEAP32[$0 + 4628 >> 2] = 1;
HEAP32[$0 + 4632 >> 2] = 0;
break label$13;
}
if (($2 | 0) != 2) {
break label$25;
}
HEAP32[$0 + 4652 >> 2] = 52429;
HEAP32[$0 + 4644 >> 2] = 0;
HEAP32[$0 + 4648 >> 2] = 6;
HEAP32[$0 + 4636 >> 2] = 12;
HEAP32[$0 + 4660 >> 2] = 2;
HEAP32[$0 + 4628 >> 2] = 2;
HEAP32[$0 + 4632 >> 2] = 0;
$5 = Math_imul($4, 3);
}
HEAP32[$3 + 4600 >> 2] = $5;
$3 = 6;
break label$12;
}
if (($2 | 0) <= 3) {
HEAP32[$0 + 4652 >> 2] = 49807;
HEAP32[$0 + 4644 >> 2] = 1;
HEAP32[$0 + 4648 >> 2] = 8;
HEAP32[$0 + 4636 >> 2] = 14;
HEAP32[$0 + 4660 >> 2] = 4;
HEAP32[$0 + 4628 >> 2] = 2;
HEAP32[$0 + 4632 >> 2] = 0;
break label$13;
}
if (($2 | 0) <= 5) {
HEAP32[$0 + 4652 >> 2] = 48497;
HEAP32[$0 + 4644 >> 2] = 1;
HEAP32[$0 + 4648 >> 2] = 10;
HEAP32[$0 + 4636 >> 2] = 16;
HEAP32[$0 + 4660 >> 2] = 6;
HEAP32[$0 + 4628 >> 2] = 2;
HEAP32[$0 + 4632 >> 2] = 1;
$5 = Math_imul($4, 5);
HEAP32[$0 + 4600 >> 2] = $5;
$7 = Math_imul($4, 983);
$3 = 10;
break label$12;
}
if (($2 | 0) <= 7) {
HEAP32[$0 + 4652 >> 2] = 47186;
HEAP32[$0 + 4644 >> 2] = 1;
HEAP32[$0 + 4648 >> 2] = 12;
HEAP32[$0 + 4636 >> 2] = 20;
HEAP32[$0 + 4660 >> 2] = 8;
HEAP32[$0 + 4628 >> 2] = 3;
HEAP32[$0 + 4632 >> 2] = 1;
$5 = Math_imul($4, 5);
HEAP32[$0 + 4600 >> 2] = $5;
$7 = Math_imul($4, 983);
$3 = 12;
break label$12;
}
HEAP32[$0 + 4652 >> 2] = 45875;
HEAP32[$0 + 4644 >> 2] = 2;
HEAP32[$0 + 4648 >> 2] = 16;
HEAP32[$0 + 4636 >> 2] = 24;
HEAP32[$0 + 4660 >> 2] = 16;
HEAP32[$0 + 4628 >> 2] = 4;
HEAP32[$0 + 4632 >> 2] = 1;
$5 = Math_imul($4, 5);
HEAP32[$0 + 4600 >> 2] = $5;
$7 = Math_imul($4, 983);
$3 = 16;
break label$12;
}
celt_fatal(6609, 6671, 241);
abort();
}
celt_fatal(6765, 6671, 302);
abort();
}
celt_fatal(6863, 6671, 315);
abort();
}
$5 = Math_imul($4, 5);
HEAP32[$0 + 4600 >> 2] = $5;
$3 = 8;
}
HEAP32[$0 + 4672 >> 2] = $7;
HEAP32[$0 + 4624 >> 2] = $2;
HEAP32[$0 + 4604 >> 2] = Math_imul($4, 5) + ($5 << 1);
$4 = HEAP32[$0 + 4640 >> 2];
$4 = ($3 | 0) < ($4 | 0) ? $3 : $4;
HEAP32[$0 + 4648 >> 2] = $4;
if (($4 | 0) >= 17) {
break label$1;
}
$4 = HEAP32[$1 + 32 >> 2];
HEAP32[$0 + 4616 >> 2] = $4;
$2 = HEAP32[$0 + 6092 >> 2];
$1 = HEAP32[$1 + 44 >> 2];
HEAP32[$0 + 6092 >> 2] = $1;
if ($1) {
$3 = $0;
if ($2) {
$1 = (Math_imul($4 >> 16, -26214) - (Math_imul($4 & 65535, 26214) >>> 16 | 0) | 0) + 7 | 0;
$1 = ($1 | 0) > 2 ? $1 : 2;
} else {
$1 = 7;
}
HEAP32[$3 + 6096 >> 2] = $1;
}
$1 = $6 + $8 | 0;
HEAP32[$0 + 4668 >> 2] = 1;
}
return $1;
}
celt_fatal(6917, 6671, 393);
abort();
}
function silk_encode_pulses($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 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;
$5 = __stack_pointer - 32 | 0;
__stack_pointer = $5;
$10 = $5;
HEAP32[$5 + 24 >> 2] = 0;
HEAP32[$5 + 28 >> 2] = 0;
HEAP32[$5 + 16 >> 2] = 0;
HEAP32[$5 + 20 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
HEAP32[$5 + 12 >> 2] = 0;
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
label$1 : {
label$2 : {
label$3 : {
$7 = $4 & -16;
if (($7 | 0) < ($4 | 0)) {
if (($4 | 0) != 120) {
break label$3;
}
HEAP8[$3 + 120 | 0] = 0;
HEAP8[$3 + 121 | 0] = 0;
HEAP8[$3 + 122 | 0] = 0;
HEAP8[$3 + 123 | 0] = 0;
HEAP8[$3 + 124 | 0] = 0;
HEAP8[$3 + 125 | 0] = 0;
HEAP8[$3 + 126 | 0] = 0;
HEAP8[$3 + 127 | 0] = 0;
$7 = 128;
HEAP8[$3 + 128 | 0] = 0;
HEAP8[$3 + 129 | 0] = 0;
HEAP8[$3 + 130 | 0] = 0;
HEAP8[$3 + 131 | 0] = 0;
HEAP8[$3 + 132 | 0] = 0;
HEAP8[$3 + 133 | 0] = 0;
HEAP8[$3 + 134 | 0] = 0;
HEAP8[$3 + 135 | 0] = 0;
$15 = $5 - 512 | 0;
$8 = $15;
__stack_pointer = $8;
$17 = 8;
break label$2;
}
$17 = $4 >> 4;
$15 = $5 - ($7 << 2) | 0;
$8 = $15;
__stack_pointer = $8;
if (($4 | 0) > 15) {
break label$2;
}
$5 = ($17 << 2) + 15 & -16;
$16 = $8 - $5 | 0;
$6 = $16;
__stack_pointer = $6;
$19 = $6 - $5 | 0;
__stack_pointer = $19;
break label$1;
}
celt_fatal(9312, 9354, 89);
abort();
}
$5 = 0;
while (1) {
$6 = HEAP8[$3 + $5 | 0];
$9 = $6;
$6 = $6 >> 31;
HEAP32[($5 << 2) + $15 >> 2] = $6 ^ $6 + $9;
$6 = $5 | 1;
$11 = ($6 << 2) + $15 | 0;
$6 = HEAP8[$3 + $6 | 0];
$9 = $6;
$6 = $6 >> 31;
HEAP32[$11 >> 2] = $6 ^ $6 + $9;
$6 = $5 | 2;
$11 = ($6 << 2) + $15 | 0;
$6 = HEAP8[$3 + $6 | 0];
$9 = $6;
$6 = $6 >> 31;
HEAP32[$11 >> 2] = $6 ^ $6 + $9;
$6 = $5 | 3;
$11 = ($6 << 2) + $15 | 0;
$6 = HEAP8[$3 + $6 | 0];
$9 = $6;
$6 = $6 >> 31;
HEAP32[$11 >> 2] = $6 ^ $6 + $9;
$5 = $5 + 4 | 0;
if (($7 | 0) > ($5 | 0)) {
continue;
}
break;
}
$5 = ($17 << 2) + 15 & -16;
$16 = $8 - $5 | 0;
$6 = $16;
__stack_pointer = $6;
$19 = $6 - $5 | 0;
__stack_pointer = $19;
$24 = HEAPU8[8120];
$23 = HEAPU8[8119];
$20 = HEAPU8[8118];
$14 = HEAPU8[8117];
$6 = 0;
$5 = $15;
while (1) {
$7 = $22 << 2;
$18 = $19 + $7 | 0;
HEAP32[$18 >> 2] = 0;
$25 = $7 + $16 | 0;
$7 = HEAP32[$5 + 4 >> 2];
$8 = HEAP32[$5 >> 2];
while (1) {
$13 = 1;
label$8 : {
label$9 : {
$7 = $7 + $8 | 0;
if (($14 | 0) < ($7 | 0)) {
$9 = $12;
$7 = $6;
break label$9;
}
HEAP32[$10 >> 2] = $7;
$9 = HEAP32[$5 + 12 >> 2] + HEAP32[$5 + 8 >> 2] | 0;
if (($14 | 0) < ($9 | 0)) {
$9 = $12;
break label$9;
}
HEAP32[$10 + 4 >> 2] = $9;
$6 = HEAP32[$5 + 20 >> 2] + HEAP32[$5 + 16 >> 2] | 0;
if (($14 | 0) < ($6 | 0)) {
break label$9;
}
HEAP32[$10 + 8 >> 2] = $6;
$6 = HEAP32[$5 + 28 >> 2] + HEAP32[$5 + 24 >> 2] | 0;
if (($14 | 0) < ($6 | 0)) {
break label$9;
}
HEAP32[$10 + 12 >> 2] = $6;
$6 = HEAP32[$5 + 36 >> 2] + HEAP32[$5 + 32 >> 2] | 0;
if (($14 | 0) < ($6 | 0)) {
break label$9;
}
HEAP32[$10 + 16 >> 2] = $6;
$6 = HEAP32[$5 + 44 >> 2] + HEAP32[$5 + 40 >> 2] | 0;
if (($14 | 0) < ($6 | 0)) {
break label$9;
}
HEAP32[$10 + 20 >> 2] = $6;
$6 = HEAP32[$5 + 52 >> 2] + HEAP32[$5 + 48 >> 2] | 0;
if (($14 | 0) < ($6 | 0)) {
break label$9;
}
HEAP32[$10 + 24 >> 2] = $6;
$6 = HEAP32[$5 + 60 >> 2] + HEAP32[$5 + 56 >> 2] | 0;
if (($14 | 0) < ($6 | 0)) {
break label$9;
}
HEAP32[$10 + 28 >> 2] = $6;
$21 = 0;
break label$8;
}
$21 = 1;
}
$8 = $7 + $9 | 0;
label$12 : {
if (($20 | 0) < ($8 | 0)) {
$11 = $9;
$8 = $7;
break label$12;
}
HEAP32[$10 >> 2] = $8;
$11 = HEAP32[$10 + 12 >> 2] + HEAP32[$10 + 8 >> 2] | 0;
if (($20 | 0) < ($11 | 0)) {
$11 = $9;
break label$12;
}
HEAP32[$10 + 4 >> 2] = $11;
$6 = HEAP32[$10 + 20 >> 2] + HEAP32[$10 + 16 >> 2] | 0;
if (($20 | 0) < ($6 | 0)) {
break label$12;
}
HEAP32[$10 + 8 >> 2] = $6;
$6 = HEAP32[$10 + 28 >> 2] + HEAP32[$10 + 24 >> 2] | 0;
if (($20 | 0) < ($6 | 0)) {
break label$12;
}
HEAP32[$10 + 12 >> 2] = $6;
$13 = 0;
}
$7 = -1;
$6 = $8 + $11 | 0;
label$15 : {
if (($23 | 0) < ($6 | 0)) {
$12 = $11;
$6 = $8;
break label$15;
}
HEAP32[$10 >> 2] = $6;
$12 = HEAP32[$10 + 12 >> 2] + HEAP32[$10 + 8 >> 2] | 0;
if (($23 | 0) < ($12 | 0)) {
$12 = $11;
break label$15;
}
HEAP32[$10 + 4 >> 2] = $12;
$7 = 0;
}
$8 = $13 + $21 | 0;
label$18 : {
$9 = $6 + $12 | 0;
if (($24 | 0) >= ($9 | 0)) {
HEAP32[$25 >> 2] = $9;
if (($7 | 0) == ($8 | 0)) {
break label$18;
}
}
HEAP32[$18 >> 2] = HEAP32[$18 >> 2] + 1;
$8 = HEAP32[$5 >> 2] >> 1;
HEAP32[$5 >> 2] = $8;
$7 = HEAP32[$5 + 4 >> 2] >> 1;
HEAP32[$5 + 4 >> 2] = $7;
HEAP32[$5 + 8 >> 2] = HEAP32[$5 + 8 >> 2] >> 1;
HEAP32[$5 + 12 >> 2] = HEAP32[$5 + 12 >> 2] >> 1;
HEAP32[$5 + 16 >> 2] = HEAP32[$5 + 16 >> 2] >> 1;
HEAP32[$5 + 20 >> 2] = HEAP32[$5 + 20 >> 2] >> 1;
HEAP32[$5 + 24 >> 2] = HEAP32[$5 + 24 >> 2] >> 1;
HEAP32[$5 + 28 >> 2] = HEAP32[$5 + 28 >> 2] >> 1;
HEAP32[$5 + 32 >> 2] = HEAP32[$5 + 32 >> 2] >> 1;
HEAP32[$5 + 36 >> 2] = HEAP32[$5 + 36 >> 2] >> 1;
HEAP32[$5 + 40 >> 2] = HEAP32[$5 + 40 >> 2] >> 1;
HEAP32[$5 + 44 >> 2] = HEAP32[$5 + 44 >> 2] >> 1;
HEAP32[$5 + 48 >> 2] = HEAP32[$5 + 48 >> 2] >> 1;
HEAP32[$5 + 52 >> 2] = HEAP32[$5 + 52 >> 2] >> 1;
HEAP32[$5 + 56 >> 2] = HEAP32[$5 + 56 >> 2] >> 1;
HEAP32[$5 + 60 >> 2] = HEAP32[$5 + 60 >> 2] >> 1;
continue;
}
break;
}
$5 = $5 - -64 | 0;
$18 = 1;
$22 = $22 + 1 | 0;
if (($22 | 0) != ($17 | 0)) {
continue;
}
break;
}
}
$13 = 2147483647;
$20 = $1 >> 1;
$14 = Math_imul($20, 9);
$11 = 0;
$21 = 0;
while (1) {
$7 = HEAPU8[($11 + $14 | 0) + 8528 | 0];
if ($18) {
$9 = Math_imul($11, 18);
$12 = $9 + 8337 | 0;
$5 = 0;
while (1) {
$6 = $12;
$8 = $5 << 2;
if (HEAP32[$19 + $8 >> 2] <= 0) {
$6 = (HEAP32[$8 + $16 >> 2] + $9 | 0) + 8320 | 0;
}
$7 = HEAPU8[$6 | 0] + $7 | 0;
$5 = $5 + 1 | 0;
if (($17 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$5 = ($7 | 0) < ($13 | 0);
$21 = $5 ? $11 : $21;
$13 = $5 ? $7 : $13;
$11 = $11 + 1 | 0;
if (($11 | 0) != 9) {
continue;
}
break;
}
ec_enc_icdf($0, $21, Math_imul($20, 9) + 8496 | 0, 8);
label$24 : {
if (!$18) {
break label$24;
}
$12 = Math_imul($21, 18) + 8128 | 0;
$7 = 0;
while (1) {
$8 = $7 << 2;
$5 = HEAP32[$19 + $8 >> 2];
label$26 : {
if (!$5) {
ec_enc_icdf($0, HEAP32[$8 + $16 >> 2], $12, 8);
break label$26;
}
ec_enc_icdf($0, 17, $12, 8);
if (($5 | 0) >= 2) {
$6 = $5 - 1 | 0;
$5 = 0;
while (1) {
ec_enc_icdf($0, 17, 8290, 8);
$5 = $5 + 1 | 0;
if (($6 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
ec_enc_icdf($0, HEAP32[$8 + $16 >> 2], 8290, 8);
}
$7 = $7 + 1 | 0;
if (($17 | 0) != ($7 | 0)) {
continue;
}
break;
}
if (!$18) {
break label$24;
}
$5 = 0;
while (1) {
if (HEAP32[($5 << 2) + $16 >> 2] >= 1) {
silk_shell_encoder($0, ($5 << 6) + $15 | 0);
}
$5 = $5 + 1 | 0;
if (($17 | 0) != ($5 | 0)) {
continue;
}
break;
}
if (!$18) {
break label$24;
}
$13 = 0;
while (1) {
$9 = HEAP32[($13 << 2) + $19 >> 2];
if (($9 | 0) >= 1) {
$11 = ($13 << 4) + $3 | 0;
$12 = 0;
while (1) {
$5 = HEAP8[$12 + $11 | 0];
$6 = $5;
$5 = $5 >> 31;
$8 = ($5 ^ $5 + $6) << 24 >> 24;
$5 = $9;
if (($5 | 0) != 1) {
while (1) {
$6 = $5 - 1 | 0;
ec_enc_icdf($0, $8 >>> $6 & 1, 5824, 8);
$7 = ($5 | 0) > 2;
$5 = $6;
if ($7) {
continue;
}
break;
}
}
ec_enc_icdf($0, $8 & 1, 5824, 8);
$12 = $12 + 1 | 0;
if (($12 | 0) != 16) {
continue;
}
break;
}
}
$13 = $13 + 1 | 0;
if (($17 | 0) != ($13 | 0)) {
continue;
}
break;
}
}
silk_encode_signs($0, $3, $4, $1, $2, $16);
__stack_pointer = $10 + 32 | 0;
}
function compute_gru($0, $1, $2) {
var $3 = Math_fround(0), $4 = 0, $5 = 0, $6 = Math_fround(0), $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = Math_fround(0), $17 = Math_fround(0);
$9 = __stack_pointer - 512 | 0;
__stack_pointer = $9;
$7 = HEAP32[$0 + 16 >> 2];
label$1 : {
if (($7 | 0) < 1) {
break label$1;
}
$10 = Math_imul($7, 3);
$13 = HEAP32[$0 + 12 >> 2];
$5 = HEAP32[$0 >> 2];
while (1) {
HEAPF32[($9 + 256 | 0) + ($4 << 2) >> 2] = HEAP8[$4 + $5 | 0];
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (($7 | 0) < 1) {
break label$1;
}
$14 = HEAP32[$0 + 4 >> 2];
$5 = 0;
$8 = ($13 | 0) < 1;
while (1) {
if (!$8) {
$12 = ($9 + 256 | 0) + ($5 << 2) | 0;
$3 = HEAPF32[$12 >> 2];
$4 = 0;
while (1) {
$3 = Math_fround($3 + Math_fround(HEAPF32[($4 << 2) + $2 >> 2] * Math_fround(HEAP8[(Math_imul($4, $10) + $5 | 0) + $14 | 0])));
$4 = $4 + 1 | 0;
if (($13 | 0) != ($4 | 0)) {
continue;
}
break;
}
HEAPF32[$12 >> 2] = $3;
}
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
$12 = HEAP32[$0 + 8 >> 2];
$5 = 0;
while (1) {
$8 = ($9 + 256 | 0) + ($5 << 2) | 0;
$3 = HEAPF32[$8 >> 2];
$4 = 0;
while (1) {
$3 = Math_fround($3 + Math_fround(HEAPF32[($4 << 2) + $1 >> 2] * Math_fround(HEAP8[(Math_imul($4, $10) + $5 | 0) + $12 | 0])));
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
HEAPF32[$8 >> 2] = $3;
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
$4 = 0;
if (($7 | 0) <= 0) {
break label$1;
}
while (1) {
$3 = Math_fround(1);
$5 = ($9 + 256 | 0) + ($4 << 2) | 0;
$6 = Math_fround(Math_fround(HEAPF32[$5 >> 2] * Math_fround(.0078125)) * Math_fround(.5));
label$9 : {
if ($6 < Math_fround(8) ^ 1) {
break label$9;
}
$3 = Math_fround(0);
if ($6 > Math_fround(-8) ^ 1) {
break label$9;
}
$3 = Math_fround(.5);
if ($6 != $6) {
break label$9;
}
$11 = $6 < Math_fround(0);
$6 = $11 ? Math_fround(-$6) : $6;
$3 = Math_fround(Math_floor(Math_fround(Math_fround($6 * Math_fround(25)) + Math_fround(.5))));
label$10 : {
if (Math_fround(Math_abs($3)) < Math_fround(2147483648)) {
$8 = ~~$3;
break label$10;
}
$8 = -2147483648;
}
$3 = HEAPF32[($8 << 2) + 48128 >> 2];
$6 = Math_fround($6 + Math_fround(Math_fround($8 | 0) * Math_fround(-.03999999910593033)));
$3 = Math_fround($3 + Math_fround(Math_fround(Math_fround(1) - Math_fround($3 * $6)) * Math_fround($6 * Math_fround(Math_fround(1) - Math_fround($3 * $3)))));
$3 = Math_fround(Math_fround(($11 ? Math_fround(-$3) : $3) * Math_fround(.5)) + Math_fround(.5));
}
HEAPF32[$5 >> 2] = $3;
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (($7 | 0) < 1) {
break label$1;
}
$5 = HEAP32[$0 >> 2];
$4 = 0;
while (1) {
HEAPF32[($9 + 128 | 0) + ($4 << 2) >> 2] = HEAP8[($4 + $7 | 0) + $5 | 0];
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (($7 | 0) < 1) {
break label$1;
}
$8 = $7 + $14 | 0;
$5 = 0;
$15 = ($13 | 0) < 1;
while (1) {
if (!$15) {
$11 = ($9 + 128 | 0) + ($5 << 2) | 0;
$3 = HEAPF32[$11 >> 2];
$4 = 0;
while (1) {
$3 = Math_fround($3 + Math_fround(HEAPF32[($4 << 2) + $2 >> 2] * Math_fround(HEAP8[(Math_imul($4, $10) + $5 | 0) + $8 | 0])));
$4 = $4 + 1 | 0;
if (($13 | 0) != ($4 | 0)) {
continue;
}
break;
}
HEAPF32[$11 >> 2] = $3;
}
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
$8 = $7 + $12 | 0;
$5 = 0;
while (1) {
$11 = ($9 + 128 | 0) + ($5 << 2) | 0;
$3 = HEAPF32[$11 >> 2];
$4 = 0;
while (1) {
$3 = Math_fround($3 + Math_fround(HEAPF32[($4 << 2) + $1 >> 2] * Math_fround(HEAP8[(Math_imul($4, $10) + $5 | 0) + $8 | 0])));
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
HEAPF32[$11 >> 2] = $3;
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
$4 = 0;
if (($7 | 0) <= 0) {
break label$1;
}
while (1) {
$3 = Math_fround(1);
$5 = ($9 + 128 | 0) + ($4 << 2) | 0;
$6 = Math_fround(Math_fround(HEAPF32[$5 >> 2] * Math_fround(.0078125)) * Math_fround(.5));
label$19 : {
if ($6 < Math_fround(8) ^ 1) {
break label$19;
}
$3 = Math_fround(0);
if ($6 > Math_fround(-8) ^ 1) {
break label$19;
}
$3 = Math_fround(.5);
if ($6 != $6) {
break label$19;
}
$11 = $6 < Math_fround(0);
$6 = $11 ? Math_fround(-$6) : $6;
$3 = Math_fround(Math_floor(Math_fround(Math_fround($6 * Math_fround(25)) + Math_fround(.5))));
label$20 : {
if (Math_fround(Math_abs($3)) < Math_fround(2147483648)) {
$8 = ~~$3;
break label$20;
}
$8 = -2147483648;
}
$3 = HEAPF32[($8 << 2) + 48128 >> 2];
$6 = Math_fround($6 + Math_fround(Math_fround($8 | 0) * Math_fround(-.03999999910593033)));
$3 = Math_fround($3 + Math_fround(Math_fround(Math_fround(1) - Math_fround($3 * $6)) * Math_fround($6 * Math_fround(Math_fround(1) - Math_fround($3 * $3)))));
$3 = Math_fround(Math_fround(($11 ? Math_fround(-$3) : $3) * Math_fround(.5)) + Math_fround(.5));
}
HEAPF32[$5 >> 2] = $3;
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (($7 | 0) < 1) {
break label$1;
}
$5 = $7 << 1;
$8 = HEAP32[$0 >> 2];
$4 = 0;
while (1) {
HEAPF32[($4 << 2) + $9 >> 2] = HEAP8[($4 + $5 | 0) + $8 | 0];
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
$4 = 0;
if (($7 | 0) <= 0) {
break label$1;
}
while (1) {
$5 = $4 << 2;
HEAPF32[$5 + ($9 + 384 | 0) >> 2] = HEAPF32[$1 + $5 >> 2] * HEAPF32[($9 + 128 | 0) + $5 >> 2];
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (($7 | 0) < 1) {
break label$1;
}
$0 = $7 << 1;
$14 = $14 + $0 | 0;
$5 = 0;
$11 = ($13 | 0) < 1;
while (1) {
if (!$11) {
$8 = ($5 << 2) + $9 | 0;
$3 = HEAPF32[$8 >> 2];
$4 = 0;
while (1) {
$3 = Math_fround($3 + Math_fround(HEAPF32[($4 << 2) + $2 >> 2] * Math_fround(HEAP8[(Math_imul($4, $10) + $5 | 0) + $14 | 0])));
$4 = $4 + 1 | 0;
if (($13 | 0) != ($4 | 0)) {
continue;
}
break;
}
HEAPF32[$8 >> 2] = $3;
}
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
$12 = $0 + $12 | 0;
$5 = 0;
while (1) {
$13 = ($5 << 2) + $9 | 0;
$3 = HEAPF32[$13 >> 2];
$4 = 0;
while (1) {
$3 = Math_fround($3 + Math_fround(HEAPF32[($9 + 384 | 0) + ($4 << 2) >> 2] * Math_fround(HEAP8[(Math_imul($4, $10) + $5 | 0) + $12 | 0])));
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
HEAPF32[$13 >> 2] = $3;
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
$4 = 0;
if (($7 | 0) <= 0) {
break label$1;
}
while (1) {
$10 = $4 << 2;
$3 = HEAPF32[$10 + ($9 + 256 | 0) >> 2];
$16 = Math_fround($3 * HEAPF32[$1 + $10 >> 2]);
$17 = Math_fround(Math_fround(1) - $3);
$3 = Math_fround(1);
$10 = $9 + $10 | 0;
$6 = Math_fround(HEAPF32[$10 >> 2] * Math_fround(.0078125));
label$30 : {
if ($6 < Math_fround(8) ^ 1) {
break label$30;
}
$3 = Math_fround(-1);
if ($6 > Math_fround(-8) ^ 1) {
break label$30;
}
$3 = Math_fround(0);
if ($6 != $6) {
break label$30;
}
$12 = $6 < Math_fround(0);
$6 = $12 ? Math_fround(-$6) : $6;
$3 = Math_fround(Math_floor(Math_fround(Math_fround($6 * Math_fround(25)) + Math_fround(.5))));
label$31 : {
if (Math_fround(Math_abs($3)) < Math_fround(2147483648)) {
$5 = ~~$3;
break label$31;
}
$5 = -2147483648;
}
$3 = HEAPF32[($5 << 2) + 48128 >> 2];
$6 = Math_fround($6 + Math_fround(Math_fround($5 | 0) * Math_fround(-.03999999910593033)));
$3 = Math_fround($3 + Math_fround(Math_fround(Math_fround(1) - Math_fround($3 * $6)) * Math_fround($6 * Math_fround(Math_fround(1) - Math_fround($3 * $3)))));
$3 = $12 ? Math_fround(-$3) : $3;
}
HEAPF32[$10 >> 2] = $16 + Math_fround($17 * $3);
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (($7 | 0) < 1) {
break label$1;
}
memcpy($1, $9, $7 << 2);
}
__stack_pointer = $9 + 512 | 0;
}
function quant_band($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
var $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = Math_fround(0), $17 = Math_fround(0), $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
$22 = ($2 >>> 0) / ($4 >>> 0) | 0;
$24 = HEAP32[$0 >> 2];
label$1 : {
if (($2 | 0) == 1) {
$5 = 0;
if (HEAP32[$0 + 32 >> 2] >= 8) {
$9 = HEAP32[$0 + 28 >> 2];
label$4 : {
if ($24) {
$5 = HEAPF32[$1 >> 2] < Math_fround(0);
ec_enc_bits($9, $5, 1);
break label$4;
}
$5 = ec_dec_bits($9, 1);
}
HEAP32[$0 + 32 >> 2] = HEAP32[$0 + 32 >> 2] - 8;
}
if (HEAP32[$0 + 4 >> 2]) {
HEAPF32[$1 >> 2] = $5 ? Math_fround(-1) : Math_fround(1);
}
$10 = 1;
if (!$7) {
break label$1;
}
HEAP32[$7 >> 2] = HEAP32[$1 >> 2];
return 1;
}
$21 = HEAP32[$0 + 24 >> 2];
$11 = ($21 | 0) > 0;
label$7 : {
if (!$5) {
$9 = $5;
break label$7;
}
if (!$9) {
$9 = $5;
break label$7;
}
if (!(!($22 & 1) & ($21 | 0) != 0 | (($21 | 0) > 0 | ($4 | 0) > 1))) {
$9 = $5;
break label$7;
}
memcpy($9, $5, $2 << 2);
}
$19 = $11 ? $21 : 0;
if (($21 | 0) >= 1) {
while (1) {
label$13 : {
if ($24) {
if (($12 | 0) == 31) {
break label$13;
}
$15 = $2 >> $12;
$5 = $15 >> 1;
$20 = ($5 | 0) > 1 ? $5 : 1;
$14 = 1 << $12;
$18 = $14 << 1;
$11 = 0;
while (1) {
$5 = 0;
if (($15 | 0) >= 2) {
while (1) {
$13 = (Math_imul($5, $18) + $11 << 2) + $1 | 0;
$23 = $13;
$16 = Math_fround(HEAPF32[$13 >> 2] * Math_fround(.7071067690849304));
$13 = ((($5 << 1 | 1) << $12) + $11 << 2) + $1 | 0;
$17 = Math_fround(HEAPF32[$13 >> 2] * Math_fround(.7071067690849304));
HEAPF32[$23 >> 2] = $16 + $17;
HEAPF32[$13 >> 2] = $16 - $17;
$5 = $5 + 1 | 0;
if (($20 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$11 = $11 + 1 | 0;
if (($14 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
if (!$9 | ($12 | 0) == 31) {
break label$13;
}
$15 = $2 >> $12;
$5 = $15 >> 1;
$20 = ($5 | 0) > 1 ? $5 : 1;
$14 = 1 << $12;
$18 = $14 << 1;
$11 = 0;
while (1) {
$5 = 0;
if (($15 | 0) >= 2) {
while (1) {
$13 = (Math_imul($5, $18) + $11 << 2) + $9 | 0;
$23 = $13;
$16 = Math_fround(HEAPF32[$13 >> 2] * Math_fround(.7071067690849304));
$13 = ((($5 << 1 | 1) << $12) + $11 << 2) + $9 | 0;
$17 = Math_fround(HEAPF32[$13 >> 2] * Math_fround(.7071067690849304));
HEAPF32[$23 >> 2] = $16 + $17;
HEAPF32[$13 >> 2] = $16 - $17;
$5 = $5 + 1 | 0;
if (($20 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$11 = $11 + 1 | 0;
if (($14 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
$10 = HEAPU8[($10 & 15) + 41920 | 0] | HEAPU8[($10 >> 4) + 41920 | 0] << 2;
$12 = $12 + 1 | 0;
if (($19 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$12 = $4 >> $19;
$15 = $22 << $19;
label$21 : {
if (!($15 & 1 | ($21 | 0) > -1)) {
$22 = $21;
while (1) {
if (!(!$24 | ($12 | 0) < 1)) {
$5 = $15 >> 1;
$20 = ($5 | 0) > 1 ? $5 : 1;
$18 = $12 << 1;
$11 = 0;
while (1) {
$5 = 0;
if (($15 | 0) >= 2) {
while (1) {
$13 = (Math_imul($5, $18) + $11 << 2) + $1 | 0;
$14 = $13;
$16 = Math_fround(HEAPF32[$13 >> 2] * Math_fround(.7071067690849304));
$13 = (Math_imul($5 << 1 | 1, $12) + $11 << 2) + $1 | 0;
$17 = Math_fround(HEAPF32[$13 >> 2] * Math_fround(.7071067690849304));
HEAPF32[$14 >> 2] = $16 + $17;
HEAPF32[$13 >> 2] = $16 - $17;
$5 = $5 + 1 | 0;
if (($20 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$11 = $11 + 1 | 0;
if (($12 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
$14 = $15 >> 1;
if (!(!$9 | ($12 | 0) < 1)) {
$20 = ($14 | 0) > 1 ? $14 : 1;
$18 = $12 << 1;
$11 = 0;
while (1) {
$5 = 0;
if (($15 | 0) >= 2) {
while (1) {
$13 = (Math_imul($5, $18) + $11 << 2) + $9 | 0;
$23 = $13;
$16 = Math_fround(HEAPF32[$13 >> 2] * Math_fround(.7071067690849304));
$13 = (Math_imul($5 << 1 | 1, $12) + $11 << 2) + $9 | 0;
$17 = Math_fround(HEAPF32[$13 >> 2] * Math_fround(.7071067690849304));
HEAPF32[$23 >> 2] = $16 + $17;
HEAPF32[$13 >> 2] = $16 - $17;
$5 = $5 + 1 | 0;
if (($20 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$11 = $11 + 1 | 0;
if (($12 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
$25 = $25 + 1 | 0;
$5 = $12 << 1;
$10 = $10 << $12 | $10;
if ($15 & 2) {
break label$21;
}
$11 = ($22 | 0) < -1;
$22 = $22 + 1 | 0;
$12 = $5;
$15 = $14;
if ($11) {
continue;
}
break;
}
break label$21;
}
$14 = $15;
$5 = $12;
}
$11 = ($4 | 0) == 1;
label$32 : {
if (($5 | 0) < 2) {
break label$32;
}
if ($24) {
deinterleave_hadamard($1, $14 >> $19, $5 << $19, $11);
}
if (!$9) {
break label$32;
}
deinterleave_hadamard($9, $14 >> $19, $5 << $19, $11);
}
$10 = quant_partition($0, $1, $2, $3, $5, $9, $6, $8, $10);
if (!HEAP32[$0 + 4 >> 2]) {
break label$1;
}
if (($5 | 0) >= 2) {
interleave_hadamard($1, $14 >> $19, $5 << $19, $11);
}
label$35 : {
if (!$25) {
$13 = $5;
break label$35;
}
$18 = 0;
while (1) {
$14 = $14 << 1;
$13 = $5 >> 1;
$15 = $10 >>> $13 | 0;
if (($5 | 0) >= 2) {
$9 = $14 >> 1;
$12 = ($9 | 0) > 1 ? $9 : 1;
$20 = $5 & -2;
$9 = 0;
while (1) {
$5 = 0;
if (($14 | 0) >= 2) {
while (1) {
$11 = (Math_imul($5, $20) + $9 << 2) + $1 | 0;
$0 = $11;
$16 = Math_fround(HEAPF32[$11 >> 2] * Math_fround(.7071067690849304));
$11 = (Math_imul($5 << 1 | 1, $13) + $9 << 2) + $1 | 0;
$17 = Math_fround(HEAPF32[$11 >> 2] * Math_fround(.7071067690849304));
HEAPF32[$0 >> 2] = $16 + $17;
HEAPF32[$11 >> 2] = $16 - $17;
$5 = $5 + 1 | 0;
if (($12 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$9 = $9 + 1 | 0;
if (($13 | 0) != ($9 | 0)) {
continue;
}
break;
}
}
$10 = $10 | $15;
$5 = $13;
$18 = $18 + 1 | 0;
if (($25 | 0) != ($18 | 0)) {
continue;
}
break;
}
}
$12 = 0;
if (($21 | 0) > 0) {
while (1) {
$10 = HEAPU8[$10 + 41936 | 0];
if (($12 | 0) != 31) {
$15 = $2 >> $12;
$5 = $15 >> 1;
$20 = ($5 | 0) > 1 ? $5 : 1;
$14 = 1 << $12;
$18 = $14 << 1;
$9 = 0;
while (1) {
$5 = 0;
if (($15 | 0) >= 2) {
while (1) {
$11 = (Math_imul($5, $18) + $9 << 2) + $1 | 0;
$0 = $11;
$16 = Math_fround(HEAPF32[$11 >> 2] * Math_fround(.7071067690849304));
$11 = ((($5 << 1 | 1) << $12) + $9 << 2) + $1 | 0;
$17 = Math_fround(HEAPF32[$11 >> 2] * Math_fround(.7071067690849304));
HEAPF32[$0 >> 2] = $16 + $17;
HEAPF32[$11 >> 2] = $16 - $17;
$5 = $5 + 1 | 0;
if (($20 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$9 = $9 + 1 | 0;
if (($14 | 0) != ($9 | 0)) {
continue;
}
break;
}
}
$12 = $12 + 1 | 0;
if (($19 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$11 = $13 << $19;
if (!(!$7 | ($2 | 0) < 1)) {
$16 = Math_fround(Math_sqrt(+($2 | 0)));
$5 = 0;
while (1) {
$9 = $5 << 2;
HEAPF32[$9 + $7 >> 2] = HEAPF32[$1 + $9 >> 2] * $16;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$10 = (-1 << $11 ^ -1) & $10;
}
return $10;
}
function update_filter($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = Math_fround(0), $14 = Math_fround(0), $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
$2 = HEAP32[$0 + 8 >> 2];
$1 = HEAP32[$0 + 12 >> 2];
$5 = ($2 >>> 0) / ($1 >>> 0) | 0;
HEAP32[$0 + 36 >> 2] = $5;
$3 = Math_imul(HEAP32[$0 + 16 >> 2], 20);
$6 = HEAP32[$3 + 50884 >> 2];
HEAP32[$0 + 48 >> 2] = $6;
$11 = HEAP32[$0 + 24 >> 2];
$4 = HEAP32[$3 + 50880 >> 2];
HEAP32[$0 + 24 >> 2] = $4;
HEAP32[$0 + 40 >> 2] = $2 - Math_imul($1, $5);
$17 = HEAP32[$0 + 28 >> 2];
label$1 : {
label$2 : {
label$3 : {
if ($1 >>> 0 < $2 >>> 0) {
HEAPF32[$0 + 44 >> 2] = Math_fround(HEAPF32[$3 + 50888 >> 2] * Math_fround($1 >>> 0)) / Math_fround($2 >>> 0);
$3 = ($4 >>> 0) / ($1 >>> 0) | 0;
$5 = $4 - Math_imul($3, $1) | 0;
$4 = 4294967295 / ($2 >>> 0) | 0;
if ($5 >>> 0 > $4 >>> 0 | $3 >>> 0 > $4 >>> 0) {
break label$2;
}
$4 = Math_imul($2, $3);
$3 = (Math_imul($2, $5) >>> 0) / ($1 >>> 0) | 0;
if ($4 >>> 0 > ($3 ^ -1) >>> 0) {
break label$2;
}
$4 = ($3 + $4 | 0) + 7 & -8;
HEAP32[$0 + 24 >> 2] = $4;
$3 = $1 << 1 >>> 0 < $2 >>> 0;
$5 = $1 << 2 >>> 0 < $2 >>> 0;
$7 = $1 << 3;
$6 = $6 >>> $3 >>> $5 >>> ($7 >>> 0 < $2 >>> 0) | 0;
if (!($2 >>> 0 <= $7 >>> 0 ? !($3 | $5) : 0)) {
HEAP32[$0 + 48 >> 2] = $6;
}
$3 = $1 << 4 >>> 0 < $2 >>> 0;
$2 = $6 >>> $3 | 0;
if ($2 ? !$3 : 0) {
break label$3;
}
$6 = $2 ? $2 : 1;
HEAP32[$0 + 48 >> 2] = $6;
break label$3;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$3 + 50892 >> 2];
}
$2 = Math_imul($1, $4);
$5 = Math_imul($4, $6) + 8 | 0;
label$7 : {
if ($2 >>> 0 <= $5 >>> 0) {
$3 = 1;
if (536870911 / ($1 >>> 0) >>> 0 >= $4 >>> 0) {
break label$7;
}
}
$3 = 0;
$2 = $5;
if (536870903 / ($6 >>> 0) >>> 0 < $4 >>> 0) {
break label$2;
}
}
if (HEAPU32[$0 + 80 >> 2] < $2 >>> 0) {
$1 = dlrealloc(HEAP32[$0 + 76 >> 2], $2 << 2);
if (!$1) {
break label$2;
}
HEAP32[$0 + 80 >> 2] = $2;
HEAP32[$0 + 76 >> 2] = $1;
}
$9 = $0;
label$10 : {
label$11 : {
label$12 : {
if (!$3) {
$1 = -4;
$2 = HEAP32[$0 + 24 >> 2];
$6 = HEAP32[$0 + 48 >> 2];
$4 = Math_imul($2, $6) + 4 | 0;
if (($4 | 0) > -4) {
break label$12;
}
$5 = HEAP32[$0 + 16 >> 2];
break label$11;
}
$2 = HEAP32[$0 + 24 >> 2];
$8 = HEAP32[$0 + 12 >> 2];
if ($8) {
$5 = ($2 | 0) / -2 | 0;
$13 = Math_fround($8 >>> 0);
$7 = 0;
while (1) {
if ($2) {
$4 = Math_imul($2, $7);
$14 = Math_fround(Math_fround($7 >>> 0) / $13);
$3 = HEAP32[Math_imul(HEAP32[$0 + 16 >> 2], 20) + 50896 >> 2];
$6 = HEAP32[$0 + 76 >> 2];
$1 = 0;
while (1) {
$10 = ($1 + $4 << 2) + $6 | 0;
$1 = $1 + 1 | 0;
HEAPF32[$10 >> 2] = sinc(HEAPF32[$0 + 44 >> 2], Math_fround(Math_fround($5 + $1 | 0) - $14), $2, $3);
if (($1 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$7 = $7 + 1 | 0;
if (($8 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
$1 = HEAP32[$0 + 16 >> 2] > 8 ? 5 : 6;
break label$10;
}
$14 = Math_fround($2 >>> 1 >>> 0);
$5 = HEAP32[$0 + 16 >> 2];
$3 = HEAP32[Math_imul($5, 20) + 50896 >> 2];
$13 = Math_fround($6 >>> 0);
$6 = HEAP32[$0 + 76 >> 2];
while (1) {
HEAPF32[(($1 << 2) + $6 | 0) + 16 >> 2] = sinc(HEAPF32[$0 + 44 >> 2], Math_fround(Math_fround(Math_fround($1 | 0) / $13) - $14), $2, $3);
$1 = $1 + 1 | 0;
if (($4 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$1 = ($5 | 0) > 8 ? 7 : 8;
}
HEAP32[$9 + 84 >> 2] = $1;
$1 = (HEAP32[$0 + 32 >> 2] + $2 | 0) - 1 | 0;
$2 = HEAP32[$0 + 28 >> 2];
if ($1 >>> 0 > $2 >>> 0) {
$2 = HEAP32[$0 + 20 >> 2];
if (536870911 / ($2 >>> 0) >>> 0 < $1 >>> 0) {
break label$2;
}
$2 = dlrealloc(HEAP32[$0 + 72 >> 2], Math_imul($1, $2) << 2);
if (!$2) {
break label$2;
}
HEAP32[$0 + 28 >> 2] = $1;
HEAP32[$0 + 72 >> 2] = $2;
$2 = $1;
}
if (!HEAP32[$0 + 56 >> 2]) {
$1 = Math_imul(HEAP32[$0 + 20 >> 2], $2);
if (!$1) {
return 0;
}
memset(HEAP32[$0 + 72 >> 2], 0, $1 << 2);
return 0;
}
$2 = HEAP32[$0 + 24 >> 2];
if ($11 >>> 0 < $2 >>> 0) {
$8 = HEAP32[$0 + 20 >> 2];
if (!$8) {
return 0;
}
$18 = $11 - 1 | 0;
$19 = ($8 << 2) - 4 | 0;
$20 = HEAP32[$0 + 68 >> 2];
while (1) {
$7 = $12 << 2;
$8 = $8 - 1 | 0;
$15 = $8 << 2;
$5 = $15 + $20 | 0;
$4 = HEAP32[$5 >> 2];
$9 = $4 << 1;
$1 = $4 + $18 | 0;
if ($1) {
$3 = Math_imul($8, $17);
$6 = Math_imul(HEAP32[$0 + 28 >> 2], $8);
$2 = HEAP32[$0 + 72 >> 2];
while (1) {
$1 = $1 - 1 | 0;
HEAP32[(($4 + $1 | 0) + $6 << 2) + $2 >> 2] = HEAP32[($1 + $3 << 2) + $2 >> 2];
if ($1) {
continue;
}
break;
}
}
$16 = $19 - $7 | 0;
$9 = $9 + $11 | 0;
if ($4) {
memset(HEAP32[$0 + 72 >> 2] + Math_imul(HEAP32[$0 + 28 >> 2], $16) | 0, 0, $4 << 2);
}
HEAP32[$5 >> 2] = 0;
$10 = HEAP32[$0 + 24 >> 2];
label$28 : {
if ($10 >>> 0 > $9 >>> 0) {
$6 = $9 - 1 | 0;
if ($6) {
$5 = $10 - 2 | 0;
$7 = $9 - 2 | 0;
$4 = Math_imul(HEAP32[$0 + 28 >> 2], $8);
$3 = HEAP32[$0 + 72 >> 2];
$1 = 0;
$2 = 0;
while (1) {
HEAP32[(($1 + $5 | 0) + $4 << 2) + $3 >> 2] = HEAP32[(($1 + $7 | 0) + $4 << 2) + $3 >> 2];
$1 = $2 ^ -1;
$2 = $2 + 1 | 0;
if (($6 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$1 = $10 - 1 | 0;
if ($6 >>> 0 < $1 >>> 0) {
memset(HEAP32[$0 + 72 >> 2] + Math_imul(HEAP32[$0 + 28 >> 2], $16) | 0, 0, $1 - $6 << 2);
}
$1 = HEAP32[$0 + 60 >> 2] + $15 | 0;
HEAP32[$1 >> 2] = HEAP32[$1 >> 2] + ($10 - $9 >>> 1 | 0);
break label$28;
}
$3 = $9 - $10 >>> 1 | 0;
HEAP32[$5 >> 2] = $3;
$1 = $3 - 1 | 0;
$2 = HEAP32[$0 + 24 >> 2];
if (($1 | 0) == (0 - $2 | 0)) {
break label$28;
}
$1 = $1 + $2 | 0;
$6 = $1 >>> 0 > 1 ? $1 : 1;
$5 = Math_imul(HEAP32[$0 + 28 >> 2], $8);
$2 = HEAP32[$0 + 72 >> 2];
$1 = 0;
while (1) {
$4 = $1 + $5 | 0;
HEAP32[($4 << 2) + $2 >> 2] = HEAP32[($3 + $4 << 2) + $2 >> 2];
$1 = $1 + 1 | 0;
if (($6 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$12 = $12 + 1 | 0;
if ($8) {
continue;
}
break;
}
return 0;
}
$1 = 0;
if (!HEAP32[$0 + 20 >> 2] | $2 >>> 0 >= $11 >>> 0) {
break label$1;
}
$12 = HEAP32[$0 + 68 >> 2];
$7 = 0;
while (1) {
$8 = ($7 << 2) + $12 | 0;
$1 = HEAP32[$8 >> 2];
$3 = $11 - $2 >>> 1 | 0;
HEAP32[$8 >> 2] = $3;
$9 = $1 + $3 | 0;
$1 = $9 - 1 | 0;
$2 = HEAP32[$0 + 24 >> 2];
if (($1 | 0) != (0 - $2 | 0)) {
$1 = $1 + $2 | 0;
$6 = $1 >>> 0 > 1 ? $1 : 1;
$5 = Math_imul(HEAP32[$0 + 28 >> 2], $7);
$2 = HEAP32[$0 + 72 >> 2];
$1 = 0;
while (1) {
$4 = $1 + $5 | 0;
HEAP32[($4 << 2) + $2 >> 2] = HEAP32[($3 + $4 << 2) + $2 >> 2];
$1 = $1 + 1 | 0;
if (($6 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
HEAP32[$8 >> 2] = $9;
$7 = $7 + 1 | 0;
if ($7 >>> 0 >= HEAPU32[$0 + 20 >> 2]) {
return 0;
} else {
$2 = HEAP32[$0 + 24 >> 2];
continue;
}
}
}
HEAP32[$0 + 24 >> 2] = $11;
HEAP32[$0 + 84 >> 2] = 9;
$1 = 1;
}
return $1;
}
function dlfree($0) {
$0 = $0 | 0;
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
label$1 : {
label$2 : {
if (!$0) {
break label$2;
}
$3 = $0 - 8 | 0;
$1 = HEAP32[$0 - 4 >> 2];
$0 = $1 & -8;
$5 = $3 + $0 | 0;
label$3 : {
if ($1 & 1) {
break label$3;
}
if (!($1 & 3)) {
break label$2;
}
$1 = HEAP32[$3 >> 2];
$3 = $3 - $1 | 0;
$4 = HEAP32[13236];
if ($3 >>> 0 < $4 >>> 0) {
break label$2;
}
$0 = $0 + $1 | 0;
if (HEAP32[13237] != ($3 | 0)) {
if ($1 >>> 0 <= 255) {
$7 = $1 >>> 3 | 0;
$1 = ($7 << 3) + 52968 | 0;
$6 = HEAP32[$3 + 8 >> 2];
$2 = HEAP32[$3 + 12 >> 2];
if (($6 | 0) == ($2 | 0)) {
HEAP32[13232] = HEAP32[13232] & __wasm_rotl_i32(-2, $7);
break label$3;
}
HEAP32[$6 + 12 >> 2] = $2;
HEAP32[$2 + 8 >> 2] = $6;
break label$3;
}
$7 = HEAP32[$3 + 24 >> 2];
$2 = HEAP32[$3 + 12 >> 2];
label$7 : {
if (($2 | 0) != ($3 | 0)) {
$1 = HEAP32[$3 + 8 >> 2];
HEAP32[$1 + 12 >> 2] = $2;
HEAP32[$2 + 8 >> 2] = $1;
break label$7;
}
label$10 : {
$1 = $3 + 20 | 0;
$4 = HEAP32[$1 >> 2];
if ($4) {
break label$10;
}
$1 = $3 + 16 | 0;
$4 = HEAP32[$1 >> 2];
if ($4) {
break label$10;
}
$2 = 0;
break label$7;
}
while (1) {
$6 = $1;
$2 = $4;
$1 = $2 + 20 | 0;
$4 = HEAP32[$1 >> 2];
if ($4) {
continue;
}
$1 = $2 + 16 | 0;
$4 = HEAP32[$2 + 16 >> 2];
if ($4) {
continue;
}
break;
}
HEAP32[$6 >> 2] = 0;
}
if (!$7) {
break label$3;
}
$4 = HEAP32[$3 + 28 >> 2];
$1 = ($4 << 2) + 53232 | 0;
label$12 : {
if (HEAP32[$1 >> 2] == ($3 | 0)) {
HEAP32[$1 >> 2] = $2;
if ($2) {
break label$12;
}
HEAP32[13233] = HEAP32[13233] & __wasm_rotl_i32(-2, $4);
break label$3;
}
HEAP32[(HEAP32[$7 + 16 >> 2] == ($3 | 0) ? 16 : 20) + $7 >> 2] = $2;
if (!$2) {
break label$3;
}
}
HEAP32[$2 + 24 >> 2] = $7;
$1 = HEAP32[$3 + 16 >> 2];
if ($1) {
HEAP32[$2 + 16 >> 2] = $1;
HEAP32[$1 + 24 >> 2] = $2;
}
$1 = HEAP32[$3 + 20 >> 2];
if (!$1) {
break label$3;
}
HEAP32[$2 + 20 >> 2] = $1;
HEAP32[$1 + 24 >> 2] = $2;
break label$3;
}
$1 = HEAP32[$5 + 4 >> 2];
if (($1 & 3) != 3) {
break label$3;
}
HEAP32[13234] = $0;
HEAP32[$5 + 4 >> 2] = $1 & -2;
break label$1;
}
if ($3 >>> 0 >= $5 >>> 0) {
break label$2;
}
$1 = HEAP32[$5 + 4 >> 2];
if (!($1 & 1)) {
break label$2;
}
label$15 : {
if (!($1 & 2)) {
if (HEAP32[13238] == ($5 | 0)) {
HEAP32[13238] = $3;
$0 = HEAP32[13235] + $0 | 0;
HEAP32[13235] = $0;
HEAP32[$3 + 4 >> 2] = $0 | 1;
if (HEAP32[13237] != ($3 | 0)) {
break label$2;
}
HEAP32[13234] = 0;
HEAP32[13237] = 0;
return;
}
if (HEAP32[13237] == ($5 | 0)) {
HEAP32[13237] = $3;
$0 = HEAP32[13234] + $0 | 0;
HEAP32[13234] = $0;
break label$1;
}
$0 = ($1 & -8) + $0 | 0;
label$19 : {
if ($1 >>> 0 <= 255) {
$4 = HEAP32[$5 + 12 >> 2];
$2 = HEAP32[$5 + 8 >> 2];
$5 = $1 >>> 3 | 0;
if (($2 | 0) == ($4 | 0)) {
HEAP32[13232] = HEAP32[13232] & __wasm_rotl_i32(-2, $5);
break label$19;
}
HEAP32[$2 + 12 >> 2] = $4;
HEAP32[$4 + 8 >> 2] = $2;
break label$19;
}
$7 = HEAP32[$5 + 24 >> 2];
$2 = HEAP32[$5 + 12 >> 2];
label$24 : {
if (($5 | 0) != ($2 | 0)) {
$1 = HEAP32[$5 + 8 >> 2];
HEAP32[$1 + 12 >> 2] = $2;
HEAP32[$2 + 8 >> 2] = $1;
break label$24;
}
label$27 : {
$1 = $5 + 20 | 0;
$4 = HEAP32[$1 >> 2];
if ($4) {
break label$27;
}
$1 = $5 + 16 | 0;
$4 = HEAP32[$1 >> 2];
if ($4) {
break label$27;
}
$2 = 0;
break label$24;
}
while (1) {
$6 = $1;
$2 = $4;
$1 = $2 + 20 | 0;
$4 = HEAP32[$1 >> 2];
if ($4) {
continue;
}
$1 = $2 + 16 | 0;
$4 = HEAP32[$2 + 16 >> 2];
if ($4) {
continue;
}
break;
}
HEAP32[$6 >> 2] = 0;
}
if (!$7) {
break label$19;
}
$4 = HEAP32[$5 + 28 >> 2];
$1 = ($4 << 2) + 53232 | 0;
label$29 : {
if (HEAP32[$1 >> 2] == ($5 | 0)) {
HEAP32[$1 >> 2] = $2;
if ($2) {
break label$29;
}
HEAP32[13233] = HEAP32[13233] & __wasm_rotl_i32(-2, $4);
break label$19;
}
HEAP32[(HEAP32[$7 + 16 >> 2] == ($5 | 0) ? 16 : 20) + $7 >> 2] = $2;
if (!$2) {
break label$19;
}
}
HEAP32[$2 + 24 >> 2] = $7;
$1 = HEAP32[$5 + 16 >> 2];
if ($1) {
HEAP32[$2 + 16 >> 2] = $1;
HEAP32[$1 + 24 >> 2] = $2;
}
$1 = HEAP32[$5 + 20 >> 2];
if (!$1) {
break label$19;
}
HEAP32[$2 + 20 >> 2] = $1;
HEAP32[$1 + 24 >> 2] = $2;
}
HEAP32[$3 + 4 >> 2] = $0 | 1;
HEAP32[$0 + $3 >> 2] = $0;
if (HEAP32[13237] != ($3 | 0)) {
break label$15;
}
HEAP32[13234] = $0;
return;
}
HEAP32[$5 + 4 >> 2] = $1 & -2;
HEAP32[$3 + 4 >> 2] = $0 | 1;
HEAP32[$0 + $3 >> 2] = $0;
}
if ($0 >>> 0 <= 255) {
$1 = $0 >>> 3 | 0;
$0 = ($1 << 3) + 52968 | 0;
$1 = 1 << $1;
$4 = HEAP32[13232];
label$33 : {
if (!($1 & $4)) {
HEAP32[13232] = $1 | $4;
$1 = $0;
break label$33;
}
$1 = HEAP32[$0 + 8 >> 2];
}
HEAP32[$0 + 8 >> 2] = $3;
HEAP32[$1 + 12 >> 2] = $3;
HEAP32[$3 + 12 >> 2] = $0;
HEAP32[$3 + 8 >> 2] = $1;
return;
}
$1 = 31;
HEAP32[$3 + 16 >> 2] = 0;
HEAP32[$3 + 20 >> 2] = 0;
if ($0 >>> 0 <= 16777215) {
$1 = $0 >>> 8 | 0;
$2 = $1;
$1 = $1 + 1048320 >>> 16 & 8;
$4 = $2 << $1;
$2 = $4;
$4 = $4 + 520192 >>> 16 & 4;
$2 = $2 << $4;
$6 = $2;
$2 = $2 + 245760 >>> 16 & 2;
$1 = ($6 << $2 >>> 15 | 0) - ($1 | $4 | $2) | 0;
$1 = ($1 << 1 | $0 >>> $1 + 21 & 1) + 28 | 0;
}
HEAP32[$3 + 28 >> 2] = $1;
$4 = ($1 << 2) + 53232 | 0;
label$36 : {
label$37 : {
$2 = HEAP32[13233];
$5 = 1 << $1;
label$38 : {
if (!($2 & $5)) {
HEAP32[13233] = $2 | $5;
HEAP32[$4 >> 2] = $3;
break label$38;
}
$1 = $0 << (($1 | 0) == 31 ? 0 : 25 - ($1 >>> 1 | 0) | 0);
$2 = HEAP32[$4 >> 2];
while (1) {
$4 = $2;
if ((HEAP32[$2 + 4 >> 2] & -8) == ($0 | 0)) {
break label$37;
}
$2 = $1 >>> 29 | 0;
$1 = $1 << 1;
$6 = ($2 & 4) + $4 | 0;
$5 = $6 + 16 | 0;
$2 = HEAP32[$5 >> 2];
if ($2) {
continue;
}
break;
}
HEAP32[$6 + 16 >> 2] = $3;
}
HEAP32[$3 + 24 >> 2] = $4;
HEAP32[$3 + 12 >> 2] = $3;
HEAP32[$3 + 8 >> 2] = $3;
break label$36;
}
$0 = HEAP32[$4 + 8 >> 2];
HEAP32[$0 + 12 >> 2] = $3;
HEAP32[$4 + 8 >> 2] = $3;
HEAP32[$3 + 24 >> 2] = 0;
HEAP32[$3 + 12 >> 2] = $4;
HEAP32[$3 + 8 >> 2] = $0;
}
$3 = HEAP32[13240] - 1 | 0;
HEAP32[13240] = $3 ? $3 : -1;
}
return;
}
HEAP32[$3 + 4 >> 2] = $0 | 1;
HEAP32[$0 + $3 >> 2] = $0;
}
function dispose_chunk($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
$5 = $0 + $1 | 0;
label$1 : {
label$2 : {
$2 = HEAP32[$0 + 4 >> 2];
if ($2 & 1) {
break label$2;
}
if (!($2 & 3)) {
break label$1;
}
$2 = HEAP32[$0 >> 2];
$1 = $2 + $1 | 0;
$0 = $0 - $2 | 0;
if (($0 | 0) != HEAP32[13237]) {
if ($2 >>> 0 <= 255) {
$6 = $2 >>> 3 | 0;
$2 = ($6 << 3) + 52968 | 0;
$3 = HEAP32[$0 + 8 >> 2];
$4 = HEAP32[$0 + 12 >> 2];
if (($4 | 0) == ($3 | 0)) {
HEAP32[13232] = HEAP32[13232] & __wasm_rotl_i32(-2, $6);
break label$2;
}
HEAP32[$3 + 12 >> 2] = $4;
HEAP32[$4 + 8 >> 2] = $3;
break label$2;
}
$6 = HEAP32[$0 + 24 >> 2];
$3 = HEAP32[$0 + 12 >> 2];
label$6 : {
if (($3 | 0) != ($0 | 0)) {
$2 = HEAP32[$0 + 8 >> 2];
HEAP32[$2 + 12 >> 2] = $3;
HEAP32[$3 + 8 >> 2] = $2;
break label$6;
}
label$9 : {
$2 = $0 + 20 | 0;
$4 = HEAP32[$2 >> 2];
if ($4) {
break label$9;
}
$2 = $0 + 16 | 0;
$4 = HEAP32[$2 >> 2];
if ($4) {
break label$9;
}
$3 = 0;
break label$6;
}
while (1) {
$7 = $2;
$3 = $4;
$2 = $3 + 20 | 0;
$4 = HEAP32[$2 >> 2];
if ($4) {
continue;
}
$2 = $3 + 16 | 0;
$4 = HEAP32[$3 + 16 >> 2];
if ($4) {
continue;
}
break;
}
HEAP32[$7 >> 2] = 0;
}
if (!$6) {
break label$2;
}
$4 = HEAP32[$0 + 28 >> 2];
$2 = ($4 << 2) + 53232 | 0;
label$11 : {
if (HEAP32[$2 >> 2] == ($0 | 0)) {
HEAP32[$2 >> 2] = $3;
if ($3) {
break label$11;
}
HEAP32[13233] = HEAP32[13233] & __wasm_rotl_i32(-2, $4);
break label$2;
}
HEAP32[(HEAP32[$6 + 16 >> 2] == ($0 | 0) ? 16 : 20) + $6 >> 2] = $3;
if (!$3) {
break label$2;
}
}
HEAP32[$3 + 24 >> 2] = $6;
$2 = HEAP32[$0 + 16 >> 2];
if ($2) {
HEAP32[$3 + 16 >> 2] = $2;
HEAP32[$2 + 24 >> 2] = $3;
}
$2 = HEAP32[$0 + 20 >> 2];
if (!$2) {
break label$2;
}
HEAP32[$3 + 20 >> 2] = $2;
HEAP32[$2 + 24 >> 2] = $3;
break label$2;
}
$2 = HEAP32[$5 + 4 >> 2];
if (($2 & 3) != 3) {
break label$2;
}
HEAP32[13234] = $1;
HEAP32[$5 + 4 >> 2] = $2 & -2;
HEAP32[$0 + 4 >> 2] = $1 | 1;
HEAP32[$5 >> 2] = $1;
return;
}
$2 = HEAP32[$5 + 4 >> 2];
label$14 : {
if (!($2 & 2)) {
if (HEAP32[13238] == ($5 | 0)) {
HEAP32[13238] = $0;
$1 = HEAP32[13235] + $1 | 0;
HEAP32[13235] = $1;
HEAP32[$0 + 4 >> 2] = $1 | 1;
if (HEAP32[13237] != ($0 | 0)) {
break label$1;
}
HEAP32[13234] = 0;
HEAP32[13237] = 0;
return;
}
if (HEAP32[13237] == ($5 | 0)) {
HEAP32[13237] = $0;
$1 = HEAP32[13234] + $1 | 0;
HEAP32[13234] = $1;
HEAP32[$0 + 4 >> 2] = $1 | 1;
HEAP32[$0 + $1 >> 2] = $1;
return;
}
$1 = ($2 & -8) + $1 | 0;
label$18 : {
if ($2 >>> 0 <= 255) {
$4 = HEAP32[$5 + 12 >> 2];
$3 = HEAP32[$5 + 8 >> 2];
$5 = $2 >>> 3 | 0;
if (($3 | 0) == ($4 | 0)) {
HEAP32[13232] = HEAP32[13232] & __wasm_rotl_i32(-2, $5);
break label$18;
}
HEAP32[$3 + 12 >> 2] = $4;
HEAP32[$4 + 8 >> 2] = $3;
break label$18;
}
$6 = HEAP32[$5 + 24 >> 2];
$3 = HEAP32[$5 + 12 >> 2];
label$21 : {
if (($5 | 0) != ($3 | 0)) {
$2 = HEAP32[$5 + 8 >> 2];
HEAP32[$2 + 12 >> 2] = $3;
HEAP32[$3 + 8 >> 2] = $2;
break label$21;
}
label$24 : {
$4 = $5 + 20 | 0;
$2 = HEAP32[$4 >> 2];
if ($2) {
break label$24;
}
$4 = $5 + 16 | 0;
$2 = HEAP32[$4 >> 2];
if ($2) {
break label$24;
}
$3 = 0;
break label$21;
}
while (1) {
$7 = $4;
$3 = $2;
$4 = $2 + 20 | 0;
$2 = HEAP32[$4 >> 2];
if ($2) {
continue;
}
$4 = $3 + 16 | 0;
$2 = HEAP32[$3 + 16 >> 2];
if ($2) {
continue;
}
break;
}
HEAP32[$7 >> 2] = 0;
}
if (!$6) {
break label$18;
}
$4 = HEAP32[$5 + 28 >> 2];
$2 = ($4 << 2) + 53232 | 0;
label$26 : {
if (HEAP32[$2 >> 2] == ($5 | 0)) {
HEAP32[$2 >> 2] = $3;
if ($3) {
break label$26;
}
HEAP32[13233] = HEAP32[13233] & __wasm_rotl_i32(-2, $4);
break label$18;
}
HEAP32[(HEAP32[$6 + 16 >> 2] == ($5 | 0) ? 16 : 20) + $6 >> 2] = $3;
if (!$3) {
break label$18;
}
}
HEAP32[$3 + 24 >> 2] = $6;
$2 = HEAP32[$5 + 16 >> 2];
if ($2) {
HEAP32[$3 + 16 >> 2] = $2;
HEAP32[$2 + 24 >> 2] = $3;
}
$2 = HEAP32[$5 + 20 >> 2];
if (!$2) {
break label$18;
}
HEAP32[$3 + 20 >> 2] = $2;
HEAP32[$2 + 24 >> 2] = $3;
}
HEAP32[$0 + 4 >> 2] = $1 | 1;
HEAP32[$0 + $1 >> 2] = $1;
if (HEAP32[13237] != ($0 | 0)) {
break label$14;
}
HEAP32[13234] = $1;
return;
}
HEAP32[$5 + 4 >> 2] = $2 & -2;
HEAP32[$0 + 4 >> 2] = $1 | 1;
HEAP32[$0 + $1 >> 2] = $1;
}
if ($1 >>> 0 <= 255) {
$2 = $1 >>> 3 | 0;
$1 = ($2 << 3) + 52968 | 0;
$2 = 1 << $2;
$4 = HEAP32[13232];
label$30 : {
if (!($2 & $4)) {
HEAP32[13232] = $2 | $4;
$2 = $1;
break label$30;
}
$2 = HEAP32[$1 + 8 >> 2];
}
HEAP32[$1 + 8 >> 2] = $0;
HEAP32[$2 + 12 >> 2] = $0;
HEAP32[$0 + 12 >> 2] = $1;
HEAP32[$0 + 8 >> 2] = $2;
return;
}
$2 = 31;
HEAP32[$0 + 16 >> 2] = 0;
HEAP32[$0 + 20 >> 2] = 0;
if ($1 >>> 0 <= 16777215) {
$2 = $1 >>> 8 | 0;
$3 = $2;
$2 = $2 + 1048320 >>> 16 & 8;
$4 = $3 << $2;
$3 = $4;
$4 = $4 + 520192 >>> 16 & 4;
$3 = $3 << $4;
$7 = $3;
$3 = $3 + 245760 >>> 16 & 2;
$2 = ($7 << $3 >>> 15 | 0) - ($2 | $4 | $3) | 0;
$2 = ($2 << 1 | $1 >>> $2 + 21 & 1) + 28 | 0;
}
HEAP32[$0 + 28 >> 2] = $2;
$4 = ($2 << 2) + 53232 | 0;
label$33 : {
$3 = HEAP32[13233];
$5 = 1 << $2;
label$34 : {
if (!($3 & $5)) {
HEAP32[13233] = $3 | $5;
HEAP32[$4 >> 2] = $0;
break label$34;
}
$2 = $1 << (($2 | 0) == 31 ? 0 : 25 - ($2 >>> 1 | 0) | 0);
$3 = HEAP32[$4 >> 2];
while (1) {
$4 = $3;
if ((HEAP32[$3 + 4 >> 2] & -8) == ($1 | 0)) {
break label$33;
}
$3 = $2 >>> 29 | 0;
$2 = $2 << 1;
$7 = ($3 & 4) + $4 | 0;
$5 = $7 + 16 | 0;
$3 = HEAP32[$5 >> 2];
if ($3) {
continue;
}
break;
}
HEAP32[$7 + 16 >> 2] = $0;
}
HEAP32[$0 + 24 >> 2] = $4;
HEAP32[$0 + 12 >> 2] = $0;
HEAP32[$0 + 8 >> 2] = $0;
return;
}
$1 = HEAP32[$4 + 8 >> 2];
HEAP32[$1 + 12 >> 2] = $0;
HEAP32[$4 + 8 >> 2] = $0;
HEAP32[$0 + 24 >> 2] = 0;
HEAP32[$0 + 12 >> 2] = $4;
HEAP32[$0 + 8 >> 2] = $1;
}
}
function tf_analysis($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
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 = Math_fround(0), $24 = 0, $25 = 0, $26 = 0, $27 = Math_fround(0), $28 = 0, $29 = 0, $30 = Math_fround(0), $31 = 0, $32 = 0, $33 = 0, $34 = Math_fround(0);
$11 = __stack_pointer;
$28 = $11;
$20 = 1;
$12 = ($1 << 2) + 15 & -16;
$21 = $11 - $12 | 0;
$13 = $21;
__stack_pointer = $13;
$11 = HEAP32[$0 + 32 >> 2];
$24 = $1 - 1 | 0;
$14 = (HEAP16[$11 + ($1 << 1) >> 1] - HEAP16[($24 << 1) + $11 >> 1] << $7 << 2) + 15 & -16;
$22 = $13 - $14 | 0;
$13 = $22;
__stack_pointer = $13;
$29 = $13 - $14 | 0;
$13 = $29;
__stack_pointer = $13;
$25 = $13 - $12 | 0;
$13 = $25;
__stack_pointer = $13;
$26 = $13 - $12 | 0;
__stack_pointer = $26;
if (($1 | 0) >= 1) {
$27 = Math_fround(Math_fround(Math_max(Math_fround(Math_fround(.5) - $8), Math_fround(-.25))) * Math_fround(.03999999910593033));
$30 = Math_fround($27 * Math_fround(($2 ? $7 : 0) | 0));
$31 = 1 << $7;
$32 = Math_imul($6, $9);
$33 = 0 - ($7 << 1) | 0;
$34 = Math_fround($27 * Math_fround($7 + 1 | 0));
while (1) {
$12 = HEAP16[($16 << 1) + $11 >> 1];
$6 = (($12 << $7) + $32 << 2) + $5 | 0;
$18 = $16 + 1 | 0;
$9 = HEAP16[($18 << 1) + $11 >> 1] - $12 | 0;
$12 = $9 << $7;
$14 = $12 << 2;
$13 = memcpy($22, $6, $14);
$8 = Math_fround(0);
$11 = 0;
$15 = ($12 | 0) < 1;
if (!$15) {
while (1) {
$8 = Math_fround($8 + Math_fround(Math_abs(HEAPF32[($11 << 2) + $13 >> 2])));
$11 = $11 + 1 | 0;
if (($12 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
$23 = Math_fround($8 + Math_fround($30 * $8));
$11 = 0;
$6 = 0;
label$5 : {
if (!$2) {
break label$5;
}
$6 = 0;
if (($9 | 0) == 1) {
break label$5;
}
$6 = memcpy($29, $13, $14);
haar1($6, $12 >> $7, $31);
$14 = 0;
$8 = Math_fround(0);
if (!$15) {
while (1) {
$8 = Math_fround($8 + Math_fround(Math_abs(HEAPF32[($14 << 2) + $6 >> 2])));
$14 = $14 + 1 | 0;
if (($14 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$8 = Math_fround($8 + Math_fround($34 * $8));
$6 = 0;
if ($23 > $8 ^ 1) {
break label$5;
}
$23 = $8;
$6 = -1;
}
$19 = ($9 | 0) != 1;
$17 = ($19 & !$2) + $7 | 0;
if (($17 | 0) >= 1) {
while (1) {
haar1($13, $12 >> $11, 1 << $11);
$14 = $11 + 1 | 0;
$9 = $2 ? ($11 ^ -1) + $7 | 0 : $14;
$11 = 0;
$8 = Math_fround(0);
if (!$15) {
while (1) {
$8 = Math_fround($8 + Math_fround(Math_abs(HEAPF32[($11 << 2) + $13 >> 2])));
$11 = $11 + 1 | 0;
if (($12 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
$8 = Math_fround($8 + Math_fround(Math_fround($27 * Math_fround($9 | 0)) * $8));
$11 = $23 > $8;
$23 = $11 ? $8 : $23;
$6 = $11 ? $14 : $6;
$11 = $14;
if (($17 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
$12 = ($16 << 2) + $21 | 0;
$11 = $6 << 1;
$11 = $2 ? $11 : 0 - $11 | 0;
HEAP32[$12 >> 2] = $11;
if (!((($11 | 0) != ($33 | 0) ? $11 : 0) | $19)) {
HEAP32[$12 >> 2] = $11 - 1;
}
if (($1 | 0) != ($18 | 0)) {
$11 = HEAP32[$0 + 32 >> 2];
$16 = $18;
continue;
}
break;
}
$18 = HEAP32[$21 >> 2];
}
$0 = $2 << 2;
$16 = ($7 << 3) + 1744 | 0;
$15 = HEAP8[$0 + $16 | 0] << 1;
$11 = $18 - $15 | 0;
$5 = $11;
$19 = HEAP32[$10 >> 2];
$11 = $11 >> 31;
$11 = Math_imul($19, $11 ^ $11 + $5);
$17 = HEAP8[($0 | 1) + $16 | 0] << 1;
$12 = $18 - $17 | 0;
$6 = $12;
$5 = $2 ? 0 : $4;
$12 = $12 >> 31;
$12 = $5 + Math_imul($12 ^ $12 + $6, $19) | 0;
label$14 : {
if (($1 | 0) <= 1) {
$6 = $12;
break label$14;
}
while (1) {
$13 = $4 + $11 | 0;
$14 = $20 << 2;
$6 = HEAP32[$21 + $14 >> 2];
$9 = $6 - $15 | 0;
$22 = $9;
$14 = HEAP32[$10 + $14 >> 2];
$9 = $9 >> 31;
$22 = Math_imul($14, $9 ^ $9 + $22);
$9 = $4 + $12 | 0;
$11 = $22 + (($9 | 0) > ($11 | 0) ? $11 : $9) | 0;
$6 = $6 - $17 | 0;
$9 = $6;
$6 = $6 >> 31;
$6 = Math_imul($6 ^ $6 + $9, $14) + (($12 | 0) > ($13 | 0) ? $13 : $12) | 0;
$12 = $6;
$20 = $20 + 1 | 0;
if (($20 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$14 = 1;
$17 = HEAP8[($0 | 2) + $16 | 0] << 1;
$12 = $18 - $17 | 0;
$9 = $12;
$12 = $12 >> 31;
$12 = Math_imul($12 ^ $12 + $9, $19);
$16 = HEAP8[($0 | 3) + $16 | 0] << 1;
$13 = $18 - $16 | 0;
$9 = $13;
$13 = $13 >> 31;
$13 = Math_imul($13 ^ $13 + $9, $19) + $5 | 0;
$20 = ($6 | 0) > ($11 | 0) ? $11 : $6;
label$17 : {
if (($1 | 0) <= 1) {
$11 = $13;
break label$17;
}
while (1) {
$11 = $4 + $12 | 0;
$6 = $14 << 2;
$9 = HEAP32[$21 + $6 >> 2];
$15 = $9 - $17 | 0;
$5 = $15;
$6 = HEAP32[$6 + $10 >> 2];
$15 = $15 >> 31;
$5 = Math_imul($6, $15 ^ $15 + $5);
$15 = $4 + $13 | 0;
$12 = $5 + (($12 | 0) < ($15 | 0) ? $12 : $15) | 0;
$9 = $9 - $16 | 0;
$5 = $9;
$9 = $9 >> 31;
$11 = Math_imul($9 ^ $9 + $5, $6) + (($11 | 0) < ($13 | 0) ? $11 : $13) | 0;
$13 = $11;
$14 = $14 + 1 | 0;
if (($14 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$14 = 1;
$16 = ($2 | 0) != 0 & ((($11 | 0) > ($12 | 0) ? $12 : $11) | 0) < ($20 | 0);
$12 = ($16 ? 2 : 0) | $0;
$13 = ($7 << 3) + 1744 | 0;
$15 = HEAP8[$12 + $13 | 0] << 1;
$11 = $18 - $15 | 0;
$0 = $11;
$11 = $11 >> 31;
$11 = Math_imul($11 ^ $11 + $0, $19);
$17 = HEAP8[($12 | 1) + $13 | 0] << 1;
$12 = $18 - $17 | 0;
$0 = $12;
$12 = $12 >> 31;
$12 = Math_imul($12 ^ $12 + $0, $19) + ($2 ? 0 : $4) | 0;
if (($1 | 0) <= 1) {
HEAP32[($24 << 2) + $3 >> 2] = ($11 | 0) >= ($12 | 0);
__stack_pointer = $28;
return $16;
}
while (1) {
$13 = $14 << 2;
$6 = $4 + $12 | 0;
HEAP32[$25 + $13 >> 2] = ($11 | 0) >= ($6 | 0);
$9 = $4 + $11 | 0;
HEAP32[$13 + $26 >> 2] = ($12 | 0) <= ($9 | 0);
$7 = HEAP32[$13 + $21 >> 2];
$2 = $7 - $17 | 0;
$0 = $2;
$13 = HEAP32[$10 + $13 >> 2];
$2 = $2 >> 31;
$12 = Math_imul($13, $2 ^ $2 + $0) + (($9 | 0) < ($12 | 0) ? $9 : $12) | 0;
$9 = $7 - $15 | 0;
$0 = $9;
$9 = $9 >> 31;
$11 = Math_imul($9 ^ $9 + $0, $13) + (($6 | 0) > ($11 | 0) ? $11 : $6) | 0;
$14 = $14 + 1 | 0;
if (($14 | 0) != ($1 | 0)) {
continue;
}
break;
}
$12 = ($11 | 0) >= ($12 | 0);
HEAP32[($24 << 2) + $3 >> 2] = $12;
if (($1 | 0) >= 2) {
$11 = $1 - 2 | 0;
while (1) {
$13 = $11 << 2;
$12 = HEAP32[($13 + (($12 | 0) == 1 ? $26 : $25) | 0) + 4 >> 2];
HEAP32[$3 + $13 >> 2] = $12;
$13 = ($11 | 0) > 0;
$11 = $11 - 1 | 0;
if ($13) {
continue;
}
break;
}
}
__stack_pointer = $28;
return $16;
}
function silk_burg_modified_FLP($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 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 = Math_fround(0), $27 = Math_fround(0), $28 = Math_fround(0), $29 = 0;
$7 = __stack_pointer - 992 | 0;
__stack_pointer = $7;
$6 = Math_imul($3, $4);
if (($6 | 0) < 385) {
$19 = silk_energy_FLP($1, $6);
memset($7 + 800 | 0, 0, 192);
if (($4 | 0) >= 1) {
while (1) {
$6 = 1;
if (($5 | 0) >= 1) {
$9 = (Math_imul($3, $14) << 2) + $1 | 0;
while (1) {
$13 = ($6 << 3) + $7 | 0;
$11 = $13 + 792 | 0;
HEAPF64[$11 >> 3] = silk_inner_product_FLP($9, ($6 << 2) + $9 | 0, $3 - $6 | 0) + HEAPF64[$13 + 792 >> 3];
$11 = ($5 | 0) != ($6 | 0);
$6 = $6 + 1 | 0;
if ($11) {
continue;
}
break;
}
}
$14 = $14 + 1 | 0;
if (($14 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
memcpy($7 + 608 | 0, $7 + 800 | 0, 192);
$24 = $19 * 9999999747378752e-21;
$10 = $19 + $24 + 9.999999717180685e-10;
HEAPF64[$7 + 192 >> 3] = $10;
HEAPF64[$7 + 400 >> 3] = $10;
label$6 : {
label$7 : {
if (($5 | 0) < 1) {
$12 = 1;
break label$7;
}
$25 = +$2;
$11 = 0;
$21 = 2;
$20 = 1;
$22 = 1;
while (1) {
if (($4 | 0) >= 1) {
$17 = $3 - $11 | 0;
$18 = $17 - 1 | 0;
$16 = 0;
while (1) {
$9 = (Math_imul($3, $16) << 2) + $1 | 0;
$26 = HEAPF32[$9 + ($18 << 2) >> 2];
$8 = +$26;
$27 = HEAPF32[($11 << 2) + $9 >> 2];
$10 = +$27;
$6 = 0;
if ($11) {
while (1) {
$14 = $6 << 3;
$13 = $14 + ($7 + 800 | 0) | 0;
$2 = HEAPF32[(($6 ^ -1) + $11 << 2) + $9 >> 2];
HEAPF64[$13 >> 3] = HEAPF64[$13 >> 3] - +Math_fround($27 * $2);
$13 = ($7 + 608 | 0) + $14 | 0;
$28 = HEAPF32[($6 + $17 << 2) + $9 >> 2];
HEAPF64[$13 >> 3] = HEAPF64[$13 >> 3] - +Math_fround($26 * $28);
$12 = HEAPF64[$7 + $14 >> 3];
$10 = $10 + $12 * +$2;
$8 = $8 + $12 * +$28;
$6 = $6 + 1 | 0;
if (($11 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$6 = 0;
while (1) {
$14 = $6 << 3;
$13 = $14 + ($7 + 400 | 0) | 0;
HEAPF64[$13 >> 3] = HEAPF64[$13 >> 3] - $10 * +HEAPF32[($11 - $6 << 2) + $9 >> 2];
$14 = ($7 + 192 | 0) + $14 | 0;
HEAPF64[$14 >> 3] = HEAPF64[$14 >> 3] - $8 * +HEAPF32[($6 + $18 << 2) + $9 >> 2];
$6 = $6 + 1 | 0;
if (($20 | 0) != ($6 | 0)) {
continue;
}
break;
}
$16 = $16 + 1 | 0;
if (($16 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$18 = $11 << 3;
$10 = HEAPF64[$18 + ($7 + 608 | 0) >> 3];
$8 = HEAPF64[($7 + 800 | 0) + $18 >> 3];
$6 = 0;
if ($11) {
while (1) {
$12 = HEAPF64[($6 << 3) + $7 >> 3];
$9 = ($6 ^ -1) + $11 << 3;
$10 = $10 + $12 * HEAPF64[$9 + ($7 + 800 | 0) >> 3];
$8 = $8 + $12 * HEAPF64[($7 + 608 | 0) + $9 >> 3];
$6 = $6 + 1 | 0;
if (($11 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$13 = $11 + 1 | 0;
$6 = $13 << 3;
HEAPF64[$6 + ($7 + 400 | 0) >> 3] = $8;
$17 = ($7 + 192 | 0) + $6 | 0;
HEAPF64[$17 >> 3] = $10;
$6 = 0;
$12 = HEAPF64[$7 + 192 >> 3];
$23 = HEAPF64[$7 + 400 >> 3];
$15 = $23;
if ($11) {
while (1) {
$8 = HEAPF64[($6 << 3) + $7 >> 3];
$9 = $6 + 1 | 0;
$14 = $9 << 3;
$15 = $15 + $8 * HEAPF64[$14 + ($7 + 400 | 0) >> 3];
$12 = $12 + $8 * HEAPF64[($7 + 192 | 0) + $14 >> 3];
$10 = $10 + $8 * HEAPF64[($7 + 192 | 0) + ($11 - $6 << 3) >> 3];
$6 = $9;
if (($11 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$16 = 1;
$8 = $10 * -2 / ($15 + $12);
$15 = $22 * (1 - $8 * $8);
if (!($25 >= $15 ^ 1)) {
$16 = 0;
$15 = $25;
$8 = Math_sqrt(1 - $15 / $22);
$8 = $10 > 0 ? -$8 : $8;
}
if ($13 & 2147483646) {
$14 = $20 >>> 1 | 0;
$6 = 0;
while (1) {
$9 = ($6 << 3) + $7 | 0;
$29 = $9;
$10 = HEAPF64[$9 >> 3];
$9 = (($6 ^ -1) + $11 << 3) + $7 | 0;
$12 = HEAPF64[$9 >> 3];
HEAPF64[$29 >> 3] = $10 + $8 * $12;
HEAPF64[$9 >> 3] = $12 + $8 * $10;
$6 = $6 + 1 | 0;
if (($14 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
HEAPF64[$7 + $18 >> 3] = $8;
label$22 : {
if ($16) {
$10 = HEAPF64[$17 >> 3];
HEAPF64[$17 >> 3] = $10 + $8 * $23;
HEAPF64[$7 + 400 >> 3] = $23 + $8 * $10;
$6 = 1;
while (1) {
$9 = ($7 + 192 | 0) + ($13 - $6 << 3) | 0;
$11 = $9;
$10 = HEAPF64[$9 >> 3];
$9 = ($7 + 400 | 0) + ($6 << 3) | 0;
$12 = HEAPF64[$9 >> 3];
HEAPF64[$11 >> 3] = $10 + $8 * $12;
HEAPF64[$9 >> 3] = $12 + $8 * $10;
$6 = $6 + 1 | 0;
if (($21 | 0) != ($6 | 0)) {
continue;
}
break;
}
break label$22;
}
if (($5 | 0) > ($13 | 0)) {
memset(($13 << 3) + $7 | 0, 0, $5 - $13 << 3);
}
$6 = 0;
while (1) {
HEAPF32[($6 << 2) + $0 >> 2] = -Math_fround(HEAPF64[($6 << 3) + $7 >> 3]);
$6 = $6 + 1 | 0;
if (($6 | 0) != ($5 | 0)) {
continue;
}
break;
}
$6 = 0;
if (($4 | 0) > 0) {
while (1) {
$19 = $19 - silk_energy_FLP((Math_imul($3, $6) << 2) + $1 | 0, $5);
$6 = $6 + 1 | 0;
if (($6 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$8 = $15 * $19;
break label$6;
}
$21 = $21 + 1 | 0;
$20 = $20 + 1 | 0;
$22 = $15;
$11 = $13;
if (($11 | 0) != ($5 | 0)) {
continue;
}
break;
}
$12 = 1;
$10 = HEAPF64[$7 + 400 >> 3];
if (($5 | 0) < 1) {
break label$7;
}
$6 = 0;
while (1) {
$9 = $6 + 1 | 0;
$15 = HEAPF64[($7 + 400 | 0) + ($9 << 3) >> 3];
$8 = HEAPF64[($6 << 3) + $7 >> 3];
HEAPF32[($6 << 2) + $0 >> 2] = -Math_fround($8);
$10 = $10 + $8 * $15;
$12 = $12 + $8 * $8;
$6 = $9;
if (($6 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$8 = $10 - $24 * $12;
}
__stack_pointer = $7 + 992 | 0;
return Math_fround($8);
}
celt_fatal(16463, 16523, 55);
abort();
}
function quant_coarse_energy($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16) {
var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = Math_fround(0), $24 = 0, $25 = 0, $26 = 0, $27 = Math_fround(0), $28 = 0, $29 = 0, $30 = Math_fround(0), $31 = 0, $32 = 0, $33 = 0;
$25 = __stack_pointer - 96 | 0;
$21 = $25;
__stack_pointer = $21;
$26 = 1;
label$1 : {
if ($12) {
break label$1;
}
$26 = 0;
if ($14) {
break label$1;
}
$12 = Math_imul($2 - $1 | 0, $9);
if (HEAPF32[$13 >> 2] > Math_fround($12 << 1) ^ 1) {
break label$1;
}
$26 = ($11 | 0) > ($12 | 0);
}
$30 = Math_fround(Math_fround(Math_fround(HEAPF32[$13 >> 2] * Math_fround($6 >>> 0)) * Math_fround($15 | 0)) / Math_fround($9 << 9));
$18 = ($9 | 0) > 1 ? $9 : 1;
$22 = HEAP32[$0 + 8 >> 2];
while (1) {
if (($1 | 0) < ($3 | 0)) {
$24 = Math_imul($20, $22);
$12 = $1;
while (1) {
$15 = $12 + $24 << 2;
$23 = Math_fround(HEAPF32[$15 + $4 >> 2] - HEAPF32[$5 + $15 >> 2]);
$27 = Math_fround($27 + Math_fround($23 * $23));
$12 = $12 + 1 | 0;
if (($12 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$20 = $20 + 1 | 0;
if (($18 | 0) != ($20 | 0)) {
continue;
}
break;
}
$24 = HEAP32[$8 + 20 >> 2];
$20 = HEAP32[$8 + 28 >> 2];
$19 = $8;
$18 = HEAP32[$19 + 16 >> 2];
$17 = HEAP32[$19 + 20 >> 2];
$3 = $18;
$18 = $21;
HEAP32[$18 + 88 >> 2] = $3;
HEAP32[$18 + 92 >> 2] = $17;
$18 = HEAP32[$19 + 12 >> 2];
$17 = HEAP32[$19 + 8 >> 2];
$3 = $17;
$17 = $21;
HEAP32[$17 + 80 >> 2] = $3;
HEAP32[$17 + 84 >> 2] = $18;
$17 = HEAP32[$19 + 4 >> 2];
$18 = HEAP32[$19 >> 2];
$3 = $18;
$18 = $21;
HEAP32[$18 + 72 >> 2] = $3;
HEAP32[$18 + 76 >> 2] = $17;
$3 = HEAP32[$19 + 24 >> 2];
$18 = HEAP32[$19 + 40 >> 2];
$17 = HEAP32[$19 + 36 >> 2];
$12 = $17;
$17 = $21;
HEAP32[$17 + 56 >> 2] = $12;
HEAP32[$17 + 60 >> 2] = $18;
HEAP32[$17 - -64 >> 2] = HEAP32[$19 + 44 >> 2];
$17 = HEAP32[$19 + 32 >> 2];
$18 = HEAP32[$19 + 28 >> 2];
$12 = $18;
$18 = $21;
HEAP32[$18 + 48 >> 2] = $12;
HEAP32[$18 + 52 >> 2] = $17;
$15 = $25 - ((Math_imul($9, $22) << 2) + 15 & -16) | 0;
$12 = $15;
__stack_pointer = $12;
$22 = Math_imul(HEAP32[$0 + 8 >> 2], $9) << 2;
$12 = $12 - ($22 + 15 & -16) | 0;
$28 = $12;
__stack_pointer = $12;
$15 = memcpy($15, $5, $22);
$23 = ($2 - $1 | 0) > 10 ? Math_fround(Math_min(Math_fround(Math_fround($11 | 0) * Math_fround(.125)), Math_fround(16))) : Math_fround(16);
$25 = 0;
$24 = Math_clz32($20) + $24 | 0;
$20 = $24 - 29 >>> 0 > $6 >>> 0;
$14 = $20 ? 0 : $14;
$20 = $20 ? 0 : $26;
$22 = $14 | $20;
if (Math_fround(Math_abs($30)) < Math_fround(2147483648)) {
$26 = ~~$30;
} else {
$26 = -2147483648;
}
$23 = $16 ? Math_fround(3) : $23;
$24 = $24 - 32 | 0;
if ($22) {
$25 = quant_coarse_energy_impl($0, $1, $2, $4, $15, $6, $24, Math_imul($10, 84) + 33082 | 0, $12, $8, $9, $10, 1, $23, $16);
}
$27 = Math_fround(Math_min($27, Math_fround(200)));
label$8 : {
label$9 : {
if (!$20) {
$33 = ec_tell_frac($8);
$11 = HEAP32[$8 >> 2];
HEAP32[$21 + 40 >> 2] = HEAP32[$8 + 20 >> 2];
$17 = HEAP32[$8 + 12 >> 2];
$18 = HEAP32[$19 + 16 >> 2];
$20 = $17;
$17 = $21;
HEAP32[$17 + 32 >> 2] = $20;
HEAP32[$17 + 36 >> 2] = $18;
$17 = HEAP32[$19 + 8 >> 2];
$18 = HEAP32[$19 + 4 >> 2];
$20 = $18;
$18 = $21;
HEAP32[$18 + 24 >> 2] = $20;
HEAP32[$18 + 28 >> 2] = $17;
$31 = HEAP32[$19 + 24 >> 2];
$20 = $19 + 28 | 0;
$19 = $20 + 8 | 0;
$17 = HEAP32[$19 >> 2];
$18 = HEAP32[$19 + 4 >> 2];
$19 = $17;
$17 = $21;
HEAP32[$17 + 8 >> 2] = $19;
HEAP32[$17 + 12 >> 2] = $18;
HEAP32[$17 + 16 >> 2] = HEAP32[$20 + 16 >> 2];
$19 = $20;
$18 = HEAP32[$19 >> 2];
$17 = HEAP32[$19 + 4 >> 2];
$19 = $18;
$18 = $21;
HEAP32[$18 >> 2] = $19;
HEAP32[$18 + 4 >> 2] = $17;
$22 = $31 - $3 | 0;
$28 = $28 - (($22 ? $22 : 1) + 15 & -16) | 0;
__stack_pointer = $28;
$32 = $3 + $11 | 0;
$28 = memcpy($28, $32, $22);
$19 = $18;
$17 = HEAP32[$19 + 88 >> 2];
$18 = HEAP32[$19 + 92 >> 2];
$29 = $17;
$17 = $8;
HEAP32[$17 + 16 >> 2] = $29;
HEAP32[$17 + 20 >> 2] = $18;
$17 = HEAP32[$19 + 84 >> 2];
$18 = HEAP32[$19 + 80 >> 2];
$29 = $18;
$18 = $8;
HEAP32[$18 + 8 >> 2] = $29;
HEAP32[$18 + 12 >> 2] = $17;
$18 = HEAP32[$19 + 76 >> 2];
$17 = HEAP32[$19 + 72 >> 2];
$29 = $17;
$17 = $8;
HEAP32[$17 >> 2] = $29;
HEAP32[$17 + 4 >> 2] = $18;
HEAP32[$17 + 24 >> 2] = $3;
HEAP32[$20 + 16 >> 2] = HEAP32[$19 - -64 >> 2];
$17 = HEAP32[$19 + 60 >> 2];
$18 = HEAP32[$19 + 56 >> 2];
$3 = $18;
$18 = $20;
HEAP32[$18 + 8 >> 2] = $3;
HEAP32[$18 + 12 >> 2] = $17;
$18 = HEAP32[$19 + 52 >> 2];
$17 = HEAP32[$19 + 48 >> 2];
$3 = $17;
$17 = $20;
HEAP32[$17 >> 2] = $3;
HEAP32[$17 + 4 >> 2] = $18;
$3 = quant_coarse_energy_impl($0, $1, $2, $4, $5, $6, $24, Math_imul($10, 84) + 33040 | 0, $7, $8, $9, $10, 0, $23, $16);
if (!$14) {
break label$9;
}
if (($3 | 0) <= ($25 | 0)) {
if (($3 | 0) != ($25 | 0)) {
break label$9;
}
if ((ec_tell_frac($8) + $26 | 0) <= ($33 | 0)) {
break label$9;
}
}
HEAP32[$8 >> 2] = $11;
$3 = $8 + 4 | 0;
HEAP32[$3 + 16 >> 2] = HEAP32[$21 + 40 >> 2];
$18 = HEAP32[$21 + 32 >> 2];
$17 = HEAP32[$19 + 36 >> 2];
$1 = $18;
$18 = $8;
HEAP32[$18 + 12 >> 2] = $1;
HEAP32[$18 + 16 >> 2] = $17;
$18 = HEAP32[$19 + 28 >> 2];
$17 = HEAP32[$19 + 24 >> 2];
$1 = $17;
$17 = $8;
HEAP32[$17 + 4 >> 2] = $1;
HEAP32[$17 + 8 >> 2] = $18;
HEAP32[$17 + 24 >> 2] = $31;
HEAP32[$20 + 16 >> 2] = HEAP32[$19 + 16 >> 2];
$17 = HEAP32[$19 + 12 >> 2];
$18 = HEAP32[$19 + 8 >> 2];
$1 = $18;
$18 = $20;
HEAP32[$18 + 8 >> 2] = $1;
HEAP32[$18 + 12 >> 2] = $17;
$18 = HEAP32[$19 + 4 >> 2];
$17 = HEAP32[$19 >> 2];
$1 = $17;
$17 = $20;
HEAP32[$17 >> 2] = $1;
HEAP32[$17 + 4 >> 2] = $18;
memcpy($32, $28, $22);
$3 = $9 << 2;
memcpy($5, $15, Math_imul($3, HEAP32[$0 + 8 >> 2]));
memcpy($7, $12, Math_imul(HEAP32[$0 + 8 >> 2], $3));
break label$8;
}
$3 = $9 << 2;
memcpy($5, $15, Math_imul($3, HEAP32[$0 + 8 >> 2]));
memcpy($7, $12, Math_imul(HEAP32[$0 + 8 >> 2], $3));
break label$8;
}
$23 = HEAPF32[($10 << 2) + 33376 >> 2];
$27 = Math_fround($27 + Math_fround(Math_fround($23 * $23) * HEAPF32[$13 >> 2]));
}
HEAPF32[$13 >> 2] = $27;
__stack_pointer = $21 + 96 | 0;
}
function tonality_get_info($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = Math_fround(0), $6 = 0, $7 = 0, $8 = Math_fround(0), $9 = Math_fround(0), $10 = 0, $11 = 0, $12 = 0, $13 = Math_fround(0), $14 = Math_fround(0), $15 = Math_fround(0), $16 = 0, $17 = Math_fround(0), $18 = Math_fround(0);
$4 = HEAP32[$0 + 8 >> 2];
$3 = HEAP32[$0 + 7452 >> 2] + (($2 | 0) / (($4 | 0) / 400 | 0) | 0) | 0;
HEAP32[$0 + 7452 >> 2] = $3;
$10 = HEAP32[$0 + 7444 >> 2];
$12 = HEAP32[$0 + 7448 >> 2];
$7 = $12;
if (($3 | 0) >= 8) {
$11 = ($3 - (($3 | 0) < 15 ? $3 : 15) | 0) + 7 | 0;
$7 = (($11 >>> 3 | 0) + $12 | 0) + 1 | 0;
HEAP32[$0 + 7448 >> 2] = $7;
HEAP32[$0 + 7452 >> 2] = ($3 - ($11 & -8) | 0) - 8;
}
if (($7 | 0) >= 100) {
HEAP32[$0 + 7448 >> 2] = $7 - 100;
}
$11 = 6;
$3 = $12 + 1 | 0;
$3 = ($10 | 0) == ($12 | 0) ? $12 : (($4 | 0) / 50 | 0) >= ($2 | 0) ? $12 : ($3 | 0) == 100 ? 0 : $3;
$3 = $3 - (($3 | 0) == ($10 | 0)) | 0;
$2 = ($3 | 0) < 0 ? 99 : $3;
$3 = ($2 << 6) + $0 | 0;
$6 = $3 + 7660 | 0;
$7 = HEAP32[$6 >> 2];
$4 = HEAP32[$6 + 4 >> 2];
HEAP32[$1 + 56 >> 2] = $7;
HEAP32[$1 + 60 >> 2] = $4;
$6 = $3 + 7652 | 0;
$4 = HEAP32[$6 >> 2];
$7 = HEAP32[$6 + 4 >> 2];
HEAP32[$1 + 48 >> 2] = $4;
HEAP32[$1 + 52 >> 2] = $7;
$6 = $3 + 7644 | 0;
$7 = HEAP32[$6 >> 2];
$4 = HEAP32[$6 + 4 >> 2];
HEAP32[$1 + 40 >> 2] = $7;
HEAP32[$1 + 44 >> 2] = $4;
$6 = $3 + 7636 | 0;
$4 = HEAP32[$6 >> 2];
$7 = HEAP32[$6 + 4 >> 2];
HEAP32[$1 + 32 >> 2] = $4;
HEAP32[$1 + 36 >> 2] = $7;
$6 = $3 + 7628 | 0;
$7 = HEAP32[$6 >> 2];
$4 = HEAP32[$6 + 4 >> 2];
HEAP32[$1 + 24 >> 2] = $7;
HEAP32[$1 + 28 >> 2] = $4;
$6 = $3 + 7620 | 0;
$4 = HEAP32[$6 >> 2];
$7 = HEAP32[$6 + 4 >> 2];
HEAP32[$1 + 16 >> 2] = $4;
HEAP32[$1 + 20 >> 2] = $7;
$6 = $3 + 7612 | 0;
$7 = HEAP32[$6 >> 2];
$4 = HEAP32[$6 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = $7;
HEAP32[$1 + 12 >> 2] = $4;
$6 = $3 + 7604 | 0;
$4 = HEAP32[$6 >> 2];
$7 = HEAP32[$6 + 4 >> 2];
HEAP32[$1 >> 2] = $4;
HEAP32[$1 + 4 >> 2] = $7;
if ($4) {
$3 = $10 - $12 | 0;
$10 = ($3 | 0) < 0;
$7 = $3 + 100 | 0;
$5 = HEAPF32[$1 + 4 >> 2];
$8 = Math_fround(1);
$16 = $2 + 1 | 0;
$4 = ($16 | 0) == 100 ? 0 : $16;
$12 = HEAP32[$0 + 7444 >> 2];
label$4 : {
if (($4 | 0) == ($12 | 0)) {
$9 = $5;
break label$4;
}
$11 = ($4 << 6) + $0 | 0;
$8 = HEAPF32[$11 + 7608 >> 2];
$6 = HEAP32[$1 + 32 >> 2];
$11 = HEAP32[$11 + 7636 >> 2];
$11 = ($11 | 0) < ($6 | 0) ? $6 : $11;
HEAP32[$1 + 32 >> 2] = $11;
$9 = $5 > $8 ? $5 : $8;
$5 = Math_fround($5 + $8);
$4 = $4 + 1 | 0;
$4 = ($4 | 0) == 100 ? 0 : $4;
if (($12 | 0) == ($4 | 0)) {
$11 = 5;
$8 = Math_fround(2);
break label$4;
}
$6 = ($4 << 6) + $0 | 0;
$8 = HEAPF32[$6 + 7608 >> 2];
$6 = HEAP32[$6 + 7636 >> 2];
$11 = ($11 | 0) > ($6 | 0) ? $11 : $6;
HEAP32[$1 + 32 >> 2] = $11;
$9 = $8 < $9 ? $9 : $8;
$5 = Math_fround($5 + $8);
$4 = $4 + 1 | 0;
$4 = ($4 | 0) == 100 ? 0 : $4;
if (($12 | 0) == ($4 | 0)) {
$11 = 4;
$8 = Math_fround(3);
break label$4;
}
$4 = ($4 << 6) + $0 | 0;
$8 = HEAPF32[$4 + 7608 >> 2];
$4 = HEAP32[$4 + 7636 >> 2];
HEAP32[$1 + 32 >> 2] = ($4 | 0) < ($11 | 0) ? $11 : $4;
$9 = $8 < $9 ? $9 : $8;
$5 = Math_fround($5 + $8);
$11 = 3;
$8 = Math_fround(4);
}
$6 = $10 ? $7 : $3;
$10 = 0;
$3 = $2;
while (1) {
$3 = ($3 | 0) < 1 ? 99 : $3 - 1 | 0;
if (($12 | 0) != ($3 | 0)) {
$7 = HEAP32[$1 + 32 >> 2];
$4 = HEAP32[(($3 << 6) + $0 | 0) + 7636 >> 2];
HEAP32[$1 + 32 >> 2] = ($4 | 0) < ($7 | 0) ? $7 : $4;
$10 = $10 + 1 | 0;
if (($11 | 0) != ($10 | 0)) {
continue;
}
}
break;
}
$5 = Math_fround($5 / $8);
$9 = Math_fround($9 + Math_fround(-.20000000298023224));
HEAPF32[$1 + 4 >> 2] = $5 > $9 ? $5 : $9;
$10 = $2;
$3 = $10;
if (($6 | 0) >= 16) {
$10 = (($2 | 0) > 94 ? -95 : 5) + $2 | 0;
$16 = $10 + 1 | 0;
$3 = (($2 | 0) > 98 ? -99 : 1) + $2 | 0;
}
$7 = $0 + 7604 | 0;
$17 = HEAPF32[($7 + ($3 << 6) | 0) + 36 >> 2];
$5 = Math_fround(Math_max($17, Math_fround(.10000000149011612)));
$9 = Math_fround(HEAPF32[(($10 << 6) + $7 | 0) + 20 >> 2] * $5);
$10 = ($16 | 0) == 100 ? 0 : $16;
label$11 : {
if (($12 | 0) == ($10 | 0)) {
$8 = Math_fround(1);
break label$11;
}
$8 = Math_fround(1);
while (1) {
$3 = $3 + 1 | 0;
$3 = ($3 | 0) == 100 ? 0 : $3;
if (($12 | 0) == ($3 | 0)) {
break label$11;
}
$13 = HEAPF32[(($3 << 6) + $7 | 0) + 36 >> 2];
$15 = Math_fround(Math_fround($17 - $13) * Math_fround(10));
$18 = Math_fround(Math_fround($9 + $15) / $5);
$14 = $14 < $18 ? $18 : $14;
$15 = Math_fround(Math_fround($9 - $15) / $5);
$8 = $8 > $15 ? $15 : $8;
$13 = Math_fround(Math_max($13, Math_fround(.10000000149011612)));
$9 = Math_fround($9 + Math_fround(HEAPF32[(($10 << 6) + $7 | 0) + 20 >> 2] * $13));
$5 = Math_fround($5 + $13);
$10 = $10 + 1 | 0;
$10 = ($10 | 0) == 100 ? 0 : $10;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
$5 = Math_fround($9 / $5);
HEAPF32[$1 + 20 >> 2] = $5;
$9 = $5 > $14 ? $5 : $14;
$14 = $9 < Math_fround(1) ? $9 : Math_fround(1);
$5 = $5 < $8 ? $5 : $8;
$13 = $5 > Math_fround(0) ? $5 : Math_fround(0);
if (($6 | 0) <= 9) {
$9 = $13;
$8 = $14;
$3 = HEAP32[$0 + 7436 >> 2];
if (($3 | 0) >= 2) {
$3 = ($3 | 0) > 15 ? 15 : $3 - 1 | 0;
$12 = ($3 | 0) > 1 ? $3 : 1;
$3 = 0;
while (1) {
$2 = ($2 | 0) < 1 ? 99 : $2 - 1 | 0;
$5 = HEAPF32[(($2 << 6) + $0 | 0) + 7624 >> 2];
$8 = $5 < $8 ? $8 : $5;
$9 = $5 > $9 ? $9 : $5;
$3 = $3 + 1 | 0;
if (($12 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$5 = Math_fround(Math_fround(1) - Math_fround(Math_fround($6 | 0) * Math_fround(.10000000149011612)));
$15 = Math_fround($17 * Math_fround(.10000000149011612));
$14 = Math_fround($14 + Math_fround($5 * Math_fround(Math_fround(Math_min(Math_fround($15 + $8), Math_fround(1))) - $14)));
$13 = Math_fround($13 + Math_fround($5 * Math_fround(Math_fround(Math_max(Math_fround($9 - $15), Math_fround(0))) - $13)));
}
HEAPF32[$1 + 28 >> 2] = $14;
HEAPF32[$1 + 24 >> 2] = $13;
}
}
function silk_NLSF2A($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 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;
$6 = __stack_pointer - 320 | 0;
__stack_pointer = $6;
label$1 : {
switch ($2 - 10 | 0) {
default:
celt_fatal(15418, 15451, 89);
abort();
case 0:
case 6:
break label$1;
}
}
$12 = ($2 | 0) == 16 ? 15392 : 15408;
while (1) {
$8 = HEAP16[($5 << 1) + $1 >> 1];
$7 = $8 >> 8 << 1;
$3 = HEAP16[$7 + 15122 >> 1];
$7 = HEAP16[$7 + 15120 >> 1];
HEAP32[($6 + 224 | 0) + (HEAPU8[$5 + $12 | 0] << 2) >> 2] = (Math_imul($3 - $7 | 0, $8 & 255) + ($7 << 8) >> 3) + 1 >> 1;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($2 | 0)) {
continue;
}
break;
}
$7 = 65536;
HEAP32[$6 + 160 >> 2] = 65536;
$1 = 0 - HEAP32[$6 + 224 >> 2] | 0;
HEAP32[$6 + 164 >> 2] = $1;
$5 = 1;
$19 = $2 >> 1;
label$4 : {
$20 = ($2 | 0) < 4;
if ($20) {
break label$4;
}
while (1) {
$17 = HEAP32[($6 + 224 | 0) + ($5 << 3) >> 2];
$3 = $17;
$4 = $3 >> 31;
$14 = $3;
$15 = $4;
$3 = $1;
$4 = $3 >> 31;
$3 = $4;
$13 = $5 + 1 | 0;
$18 = ($6 + 160 | 0) + ($13 << 2) | 0;
$4 = $15;
$3 = __wasm_i64_mul($14, $4, $1, $3);
$9 = $3;
$4 = i64toi32_i32$HIGH_BITS;
$3 = $4 >>> 15 | 0;
$4 = ($4 & 32767) << 17 | $9 >>> 15;
$10 = $4 + 1 | 0;
$11 = $10 >>> 0 < 1 ? $3 + 1 | 0 : $3;
$3 = $10;
HEAP32[$18 >> 2] = ($7 << 1) - (($11 & 1) << 31 | $3 >>> 1);
$8 = $5 << 2;
$16 = $8 + ($6 + 160 | 0) | 0;
label$6 : {
if ($5 >>> 0 < 2) {
break label$6;
}
$8 = HEAP32[($6 + $8 | 0) + 152 >> 2];
$1 = $8 + $1 | 0;
$3 = $7;
$4 = $3 >> 31;
$3 = $15;
$3 = __wasm_i64_mul($7, $4, $14, $3);
$11 = $3;
$4 = i64toi32_i32$HIGH_BITS;
$3 = $4 >>> 15 | 0;
$4 = ($4 & 32767) << 17 | $11 >>> 15;
$9 = $4 + 1 | 0;
$10 = $9 >>> 0 < 1 ? $3 + 1 | 0 : $3;
$3 = $9;
HEAP32[$16 >> 2] = $1 - (($10 & 1) << 31 | $3 >>> 1);
if (($5 | 0) == 2) {
break label$6;
}
while (1) {
$7 = $5 - 1 | 0;
$1 = ($6 + 160 | 0) + ($7 << 2) | 0;
$12 = HEAP32[(($5 << 2) + $6 | 0) + 148 >> 2];
$21 = $12 + HEAP32[$1 >> 2] | 0;
$3 = $8;
$4 = $3 >> 31;
$3 = $15;
$3 = __wasm_i64_mul($8, $4, $14, $3);
$10 = $3;
$4 = i64toi32_i32$HIGH_BITS;
$3 = $4 >>> 15 | 0;
$4 = ($4 & 32767) << 17 | $10 >>> 15;
$11 = $4 + 1 | 0;
$9 = $11 >>> 0 < 1 ? $3 + 1 | 0 : $3;
$3 = $11;
HEAP32[$1 >> 2] = $21 - (($9 & 1) << 31 | $3 >>> 1);
$1 = ($5 | 0) > 3;
$5 = $7;
$8 = $12;
if ($1) {
continue;
}
break;
}
}
HEAP32[$6 + 164 >> 2] = HEAP32[$6 + 164 >> 2] - $17;
if (($13 | 0) == ($19 | 0)) {
break label$4;
}
$1 = HEAP32[$18 >> 2];
$7 = HEAP32[$16 >> 2];
$5 = $13;
continue;
}
}
$7 = 65536;
HEAP32[$6 + 96 >> 2] = 65536;
$1 = 0 - HEAP32[$6 + 228 >> 2] | 0;
HEAP32[$6 + 100 >> 2] = $1;
label$8 : {
if ($20) {
break label$8;
}
$20 = $6 + 224 | 4;
$5 = 1;
while (1) {
$17 = HEAP32[($5 << 3) + $20 >> 2];
$3 = $17;
$4 = $3 >> 31;
$14 = $3;
$15 = $4;
$3 = $1;
$4 = $3 >> 31;
$3 = $4;
$13 = $5 + 1 | 0;
$18 = ($6 + 96 | 0) + ($13 << 2) | 0;
$4 = $15;
$3 = __wasm_i64_mul($14, $4, $1, $3);
$9 = $3;
$4 = i64toi32_i32$HIGH_BITS;
$3 = $4 >>> 15 | 0;
$4 = ($4 & 32767) << 17 | $9 >>> 15;
$10 = $4 + 1 | 0;
$11 = $10 >>> 0 < 1 ? $3 + 1 | 0 : $3;
$3 = $10;
HEAP32[$18 >> 2] = ($7 << 1) - (($11 & 1) << 31 | $3 >>> 1);
$8 = $5 << 2;
$16 = $8 + ($6 + 96 | 0) | 0;
label$10 : {
if ($5 >>> 0 < 2) {
break label$10;
}
$8 = HEAP32[($6 + $8 | 0) + 88 >> 2];
$1 = $8 + $1 | 0;
$3 = $7;
$4 = $3 >> 31;
$3 = $15;
$3 = __wasm_i64_mul($7, $4, $14, $3);
$11 = $3;
$4 = i64toi32_i32$HIGH_BITS;
$3 = $4 >>> 15 | 0;
$4 = ($4 & 32767) << 17 | $11 >>> 15;
$9 = $4 + 1 | 0;
$10 = $9 >>> 0 < 1 ? $3 + 1 | 0 : $3;
$3 = $9;
HEAP32[$16 >> 2] = $1 - (($10 & 1) << 31 | $3 >>> 1);
if (($5 | 0) == 2) {
break label$10;
}
while (1) {
$7 = $5 - 1 | 0;
$1 = ($6 + 96 | 0) + ($7 << 2) | 0;
$12 = HEAP32[(($5 << 2) + $6 | 0) + 84 >> 2];
$21 = $12 + HEAP32[$1 >> 2] | 0;
$3 = $8;
$4 = $3 >> 31;
$3 = $15;
$3 = __wasm_i64_mul($8, $4, $14, $3);
$10 = $3;
$4 = i64toi32_i32$HIGH_BITS;
$3 = $4 >>> 15 | 0;
$4 = ($4 & 32767) << 17 | $10 >>> 15;
$11 = $4 + 1 | 0;
$9 = $11 >>> 0 < 1 ? $3 + 1 | 0 : $3;
$3 = $11;
HEAP32[$1 >> 2] = $21 - (($9 & 1) << 31 | $3 >>> 1);
$1 = ($5 | 0) > 3;
$5 = $7;
$8 = $12;
if ($1) {
continue;
}
break;
}
}
HEAP32[$6 + 100 >> 2] = HEAP32[$6 + 100 >> 2] - $17;
if (($13 | 0) == ($19 | 0)) {
break label$8;
}
$1 = HEAP32[$18 >> 2];
$7 = HEAP32[$16 >> 2];
$5 = $13;
continue;
}
}
if (($2 | 0) >= 2) {
$16 = ($19 | 0) > 1 ? $19 : 1;
$7 = HEAP32[$6 + 96 >> 2];
$1 = HEAP32[$6 + 160 >> 2];
$5 = 0;
while (1) {
$8 = $5 + 1 | 0;
$12 = $8 << 2;
$13 = HEAP32[$12 + ($6 + 96 | 0) >> 2];
$7 = $13 - $7 | 0;
$12 = HEAP32[($6 + 160 | 0) + $12 >> 2];
$1 = $12 + $1 | 0;
HEAP32[($5 << 2) + $6 >> 2] = 0 - ($7 + $1 | 0);
HEAP32[(($5 ^ -1) + $2 << 2) + $6 >> 2] = $7 - $1;
$7 = $13;
$1 = $12;
$5 = $8;
if (($16 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
silk_LPC_fit($0, $6, 12, 17, $2);
label$14 : {
if (silk_LPC_inverse_pred_gain_c($0, $2)) {
break label$14;
}
$8 = 0;
while (1) {
silk_bwexpander_32($6, $2, (-2 << $8) + 65536 | 0);
$5 = 0;
while (1) {
HEAP16[($5 << 1) + $0 >> 1] = (HEAP32[($5 << 2) + $6 >> 2] >>> 4 | 0) + 1 >>> 1;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($2 | 0)) {
continue;
}
break;
}
$5 = silk_LPC_inverse_pred_gain_c($0, $2);
if ($8 >>> 0 > 14) {
break label$14;
}
$8 = $8 + 1 | 0;
if (!$5) {
continue;
}
break;
}
}
__stack_pointer = $6 + 320 | 0;
}
function celt_pitch_xcorr_c($0, $1, $2, $3, $4, $5) {
var $6 = Math_fround(0), $7 = 0, $8 = Math_fround(0), $9 = 0, $10 = 0, $11 = 0, $12 = Math_fround(0), $13 = 0, $14 = 0, $15 = 0, $16 = Math_fround(0), $17 = 0, $18 = Math_fround(0), $19 = 0, $20 = Math_fround(0), $21 = Math_fround(0), $22 = Math_fround(0), $23 = Math_fround(0), $24 = Math_fround(0), $25 = Math_fround(0), $26 = Math_fround(0), $27 = Math_fround(0), $28 = Math_fround(0), $29 = 0, $30 = 0, $31 = Math_fround(0), $32 = 0, $33 = 0, $34 = 0;
if (($4 | 0) >= 1) {
label$2 : {
if (($4 | 0) < 4) {
break label$2;
}
if (($3 | 0) >= 3) {
$32 = $4 - 3 | 0;
$19 = $3 - 3 | 0;
$33 = ($3 | 0) == 3;
$29 = $3 & -4;
$30 = $29 | 1;
$34 = ($30 + 1 | 0) >= ($3 | 0);
while (1) {
$17 = $11 << 2;
$5 = $17 + $1 | 0;
$7 = $5 + 12 | 0;
$8 = HEAPF32[$5 + 8 >> 2];
$18 = HEAPF32[$5 + 4 >> 2];
$16 = HEAPF32[$5 >> 2];
$12 = Math_fround(0);
$25 = Math_fround(0);
$26 = Math_fround(0);
$27 = Math_fround(0);
$5 = $0;
$10 = 0;
$9 = 0;
$13 = 0;
$14 = 0;
$15 = 0;
if (!$33) {
while (1) {
$20 = HEAPF32[$5 >> 2];
$6 = HEAPF32[$7 >> 2];
$21 = HEAPF32[$5 + 4 >> 2];
$22 = HEAPF32[$7 + 4 >> 2];
$23 = HEAPF32[$5 + 8 >> 2];
$28 = HEAPF32[$7 + 8 >> 2];
$24 = HEAPF32[$5 + 12 >> 2];
$31 = HEAPF32[$7 + 12 >> 2];
$12 = Math_fround(Math_fround(Math_fround(Math_fround($12 + Math_fround($20 * $6)) + Math_fround($21 * $22)) + Math_fround($23 * $28)) + Math_fround($24 * $31));
$25 = Math_fround(Math_fround(Math_fround(Math_fround($25 + Math_fround($8 * $20)) + Math_fround($6 * $21)) + Math_fround($22 * $23)) + Math_fround($28 * $24));
$26 = Math_fround(Math_fround(Math_fround(Math_fround($26 + Math_fround($18 * $20)) + Math_fround($8 * $21)) + Math_fround($6 * $23)) + Math_fround($22 * $24));
$27 = Math_fround(Math_fround(Math_fround(Math_fround($27 + Math_fround($16 * $20)) + Math_fround($18 * $21)) + Math_fround($8 * $23)) + Math_fround($6 * $24));
$7 = $7 + 16 | 0;
$5 = $5 + 16 | 0;
$16 = $22;
$8 = $31;
$18 = $28;
$10 = $10 + 4 | 0;
if (($19 | 0) > ($10 | 0)) {
continue;
}
break;
}
$13 = (wasm2js_scratch_store_f32($26), wasm2js_scratch_load_i32(2));
$14 = (wasm2js_scratch_store_f32($25), wasm2js_scratch_load_i32(2));
$15 = (wasm2js_scratch_store_f32($12), wasm2js_scratch_load_i32(2));
$12 = $6;
$9 = (wasm2js_scratch_store_f32($27), wasm2js_scratch_load_i32(2));
}
label$7 : {
if (($3 | 0) <= ($29 | 0)) {
break label$7;
}
$6 = HEAPF32[$5 >> 2];
$12 = HEAPF32[$7 >> 2];
$15 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($6 * $12) + (wasm2js_scratch_store_i32(2, $15), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$14 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($8 * $6) + (wasm2js_scratch_store_i32(2, $14), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$13 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($18 * $6) + (wasm2js_scratch_store_i32(2, $13), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$9 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($16 * $6) + (wasm2js_scratch_store_i32(2, $9), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$7 = $7 + 4 | 0;
$5 = $5 + 4 | 0;
}
$10 = $7;
label$9 : {
if (($3 | 0) <= ($30 | 0)) {
$7 = $10;
break label$9;
}
$6 = HEAPF32[$5 >> 2];
$16 = HEAPF32[$10 >> 2];
$15 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($6 * $16) + (wasm2js_scratch_store_i32(2, $15), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$14 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($12 * $6) + (wasm2js_scratch_store_i32(2, $14), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$13 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($8 * $6) + (wasm2js_scratch_store_i32(2, $13), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$9 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($18 * $6) + (wasm2js_scratch_store_i32(2, $9), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$5 = $5 + 4 | 0;
$7 = $10 + 4 | 0;
}
if (!$34) {
$6 = HEAPF32[$5 >> 2];
$15 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($6 * HEAPF32[$7 >> 2]) + (wasm2js_scratch_store_i32(2, $15), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$14 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($16 * $6) + (wasm2js_scratch_store_i32(2, $14), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$13 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($12 * $6) + (wasm2js_scratch_store_i32(2, $13), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
$9 = (wasm2js_scratch_store_f32(Math_fround(Math_fround($8 * $6) + (wasm2js_scratch_store_i32(2, $9), wasm2js_scratch_load_f32()))), wasm2js_scratch_load_i32(2));
}
HEAP32[$2 + $17 >> 2] = $9;
HEAP32[($17 | 4) + $2 >> 2] = $13;
HEAP32[($17 | 8) + $2 >> 2] = $14;
HEAP32[($17 | 12) + $2 >> 2] = $15;
$11 = $11 + 4 | 0;
if (($32 | 0) > ($11 | 0)) {
continue;
}
break;
}
break label$2;
}
celt_fatal(9872, 9897, 69);
abort();
}
if (($4 | 0) > ($11 | 0)) {
$9 = ($3 | 0) < 1;
while (1) {
$19 = $11 << 2;
$8 = Math_fround(0);
if (!$9) {
$10 = $1 + $19 | 0;
$7 = 0;
while (1) {
$5 = $7 << 2;
$8 = Math_fround($8 + Math_fround(HEAPF32[$5 + $0 >> 2] * HEAPF32[$5 + $10 >> 2]));
$7 = $7 + 1 | 0;
if (($7 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
HEAPF32[$2 + $19 >> 2] = $8;
$11 = $11 + 1 | 0;
if (($11 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
return;
}
celt_fatal(9738, 9768, 251);
abort();
}
function quant_band_stereo($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
var $11 = Math_fround(0), $12 = 0, $13 = 0, $14 = 0, $15 = Math_fround(0), $16 = 0, $17 = 0, $18 = Math_fround(0), $19 = Math_fround(0), $20 = 0, $21 = 0, $22 = 0, $23 = Math_fround(0);
$12 = __stack_pointer - 32 | 0;
__stack_pointer = $12;
HEAP32[$12 + 24 >> 2] = $10;
HEAP32[$12 + 28 >> 2] = $4;
$4 = HEAP32[$0 + 28 >> 2];
$16 = HEAP32[$0 >> 2];
label$1 : {
if (($3 | 0) == 1) {
$3 = 0;
$10 = HEAP32[$0 + 32 >> 2];
if (($10 | 0) >= 8) {
label$4 : {
if ($16) {
$3 = HEAPF32[$1 >> 2] < Math_fround(0);
ec_enc_bits($4, $3, 1);
break label$4;
}
$3 = ec_dec_bits($4, 1);
}
$10 = HEAP32[$0 + 32 >> 2] - 8 | 0;
HEAP32[$0 + 32 >> 2] = $10;
}
if (HEAP32[$0 + 4 >> 2]) {
HEAPF32[$1 >> 2] = $3 ? Math_fround(-1) : Math_fround(1);
}
if ($2) {
$3 = $2 ? 2 : 1;
$7 = $3 >>> 0 > 1 ? $3 : 1;
$5 = 1;
while (1) {
$3 = 0;
if (($10 | 0) >= 8) {
label$10 : {
if ($16) {
$3 = HEAPF32[$2 >> 2] < Math_fround(0);
ec_enc_bits($4, $3, 1);
break label$10;
}
$3 = ec_dec_bits($4, 1);
}
$10 = HEAP32[$0 + 32 >> 2] - 8 | 0;
HEAP32[$0 + 32 >> 2] = $10;
}
if (HEAP32[$0 + 4 >> 2]) {
HEAPF32[$2 >> 2] = $3 ? Math_fround(-1) : Math_fround(1);
}
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$7 = 1;
if (!$8) {
break label$1;
}
HEAP32[$8 >> 2] = HEAP32[$1 >> 2];
break label$1;
}
compute_theta($0, $12, $1, $2, $3, $12 + 28 | 0, $5, $5, $7, 1, $12 + 24 | 0);
$11 = Math_fround(Math_fround(HEAP32[$12 + 8 >> 2]) * Math_fround(30517578125e-15));
$19 = Math_fround(Math_fround(HEAP32[$12 + 4 >> 2]) * Math_fround(30517578125e-15));
$14 = HEAP32[$12 + 28 >> 2];
$17 = HEAP32[$12 + 20 >> 2];
$13 = HEAP32[$12 + 16 >> 2];
$22 = HEAP32[$12 >> 2];
label$13 : {
if (($3 | 0) == 2) {
$21 = $13 & -16385;
$20 = (($21 | 0) != 0) << 3;
HEAP32[$0 + 32 >> 2] = HEAP32[$0 + 32 >> 2] - ($20 + $17 | 0);
$13 = ($13 | 0) > 8192;
$17 = $13 ? $1 : $2;
$13 = $13 ? $2 : $1;
$20 = $14 - $20 | 0;
$14 = 0;
label$15 : {
if (!$21) {
break label$15;
}
if ($16) {
$14 = Math_fround(Math_fround(HEAPF32[$13 >> 2] * HEAPF32[$17 + 4 >> 2]) - Math_fround(HEAPF32[$13 + 4 >> 2] * HEAPF32[$17 >> 2])) < Math_fround(0);
ec_enc_bits($4, $14, 1);
break label$15;
}
$14 = ec_dec_bits($4, 1);
}
$7 = quant_band($0, $13, 2, $20, $5, $6, $7, $8, Math_fround(1), $9, $10);
$5 = 1 - ($14 << 1) | 0;
HEAPF32[$17 >> 2] = HEAPF32[$13 + 4 >> 2] * Math_fround(0 - $5 | 0);
HEAPF32[$17 + 4 >> 2] = HEAPF32[$13 >> 2] * Math_fround($5 | 0);
if (!HEAP32[$0 + 4 >> 2]) {
break label$13;
}
HEAPF32[$1 >> 2] = $19 * HEAPF32[$1 >> 2];
HEAPF32[$1 + 4 >> 2] = $19 * HEAPF32[$1 + 4 >> 2];
$15 = Math_fround($11 * HEAPF32[$2 >> 2]);
HEAPF32[$2 >> 2] = $15;
HEAPF32[$2 + 4 >> 2] = $11 * HEAPF32[$2 + 4 >> 2];
$11 = HEAPF32[$1 >> 2];
HEAPF32[$1 >> 2] = $11 - $15;
HEAPF32[$2 >> 2] = $11 + HEAPF32[$2 >> 2];
$11 = HEAPF32[$1 + 4 >> 2];
HEAPF32[$1 + 4 >> 2] = $11 - HEAPF32[$2 + 4 >> 2];
HEAPF32[$2 + 4 >> 2] = $11 + HEAPF32[$2 + 4 >> 2];
break label$13;
}
$10 = HEAP32[$12 + 12 >> 2];
$17 = HEAP32[$0 + 32 >> 2] - $17 | 0;
HEAP32[$0 + 32 >> 2] = $17;
$4 = HEAP32[$12 + 24 >> 2];
$10 = ($14 - $10 | 0) / 2 | 0;
$10 = ($10 | 0) > ($14 | 0) ? $14 : $10;
$10 = ($10 | 0) > 0 ? $10 : 0;
$16 = $14 - $10 | 0;
if (($10 | 0) >= ($16 | 0)) {
$6 = quant_band($0, $1, $3, $10, $5, $6, $7, $8, Math_fround(1), $9, $4);
$10 = (HEAP32[$0 + 32 >> 2] - $17 | 0) + $10 | 0;
$7 = $6 | quant_band($0, $2, $3, ($13 ? ($10 | 0) > 24 ? $10 - 24 | 0 : 0 : 0) + $16 | 0, $5, 0, $7, 0, $11, 0, $4 >> $5);
break label$13;
}
$14 = quant_band($0, $2, $3, $16, $5, 0, $7, 0, $11, 0, $4 >> $5);
$16 = (HEAP32[$0 + 32 >> 2] - $17 | 0) + $16 | 0;
$7 = $14 | quant_band($0, $1, $3, (($13 | 0) != 16384 ? ($16 | 0) > 24 ? $16 - 24 | 0 : 0 : 0) + $10 | 0, $5, $6, $7, $8, Math_fround(1), $9, $4);
}
if (!HEAP32[$0 + 4 >> 2]) {
break label$1;
}
label$18 : {
if (($3 | 0) == 2) {
break label$18;
}
$15 = Math_fround(0);
if (($3 | 0) >= 1) {
$0 = 0;
while (1) {
$5 = $0 << 2;
$11 = HEAPF32[$5 + $2 >> 2];
$18 = Math_fround($18 + Math_fround($11 * HEAPF32[$1 + $5 >> 2]));
$15 = Math_fround($15 + Math_fround($11 * $11));
$0 = $0 + 1 | 0;
if (($3 | 0) != ($0 | 0)) {
continue;
}
break;
}
}
label$22 : {
$15 = Math_fround(Math_fround($19 * $19) + $15);
$11 = Math_fround($19 * $18);
$11 = Math_fround($11 + $11);
$18 = Math_fround($15 + $11);
if (!($18 < Math_fround(.0006000000284984708))) {
$11 = Math_fround($15 - $11);
if ($11 < Math_fround(.0006000000284984708) ^ 1) {
break label$22;
}
}
memcpy($2, $1, $3 << 2);
break label$18;
}
if (($3 | 0) < 1) {
break label$1;
}
$18 = Math_fround(Math_fround(1) / Math_fround(Math_sqrt($18)));
$23 = Math_fround(Math_fround(1) / Math_fround(Math_sqrt($11)));
$0 = 0;
while (1) {
$5 = $0 << 2;
$10 = $5 + $1 | 0;
$11 = Math_fround($19 * HEAPF32[$10 >> 2]);
$5 = $2 + $5 | 0;
$15 = HEAPF32[$5 >> 2];
HEAPF32[$10 >> 2] = $23 * Math_fround($11 - $15);
HEAPF32[$5 >> 2] = $18 * Math_fround($11 + $15);
$0 = $0 + 1 | 0;
if (($3 | 0) != ($0 | 0)) {
continue;
}
break;
}
}
if (!$22 | ($3 | 0) < 1) {
break label$1;
}
$0 = 0;
while (1) {
$5 = ($0 << 2) + $2 | 0;
HEAPF32[$5 >> 2] = -HEAPF32[$5 >> 2];
$0 = $0 + 1 | 0;
if (($3 | 0) != ($0 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $12 + 32 | 0;
return $7;
}
function silk_LPC_inverse_pred_gain_c($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 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;
$13 = __stack_pointer - 96 | 0;
label$1 : {
if (($1 | 0) >= 1) {
while (1) {
$8 = HEAP16[($6 << 1) + $0 >> 1];
HEAP32[($6 << 2) + $13 >> 2] = $8 << 12;
$10 = $8 + $10 | 0;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($1 | 0)) {
continue;
}
break;
}
if (($10 | 0) > 4095) {
break label$1;
}
}
$10 = $1 - 1 | 0;
$8 = HEAP32[($10 << 2) + $13 >> 2];
$6 = $8 + 16773022 >>> 0 > 33546044;
$9 = 1073741824;
if (($1 | 0) >= 2) {
while (1) {
if ($6 & 1) {
return 0;
}
$7 = 0 - ($8 << 7) | 0;
$3 = $7 >> 31;
$12 = $7;
$17 = $3;
$7 = __wasm_i64_mul($12, $3, $12, $3);
$3 = i64toi32_i32$HIGH_BITS;
$6 = 1073741824 - $3 | 0;
$2 = $6;
$7 = $2 >> 31;
$2 = $7;
$7 = $11;
$2 = __wasm_i64_mul($9, $7, $6, $2);
$3 = $2;
$7 = i64toi32_i32$HIGH_BITS;
$18 = (($7 & 1073741823) << 2 | $3 >>> 30) & -4;
if (($18 | 0) < 107374) {
break label$1;
}
$15 = $10;
$10 = 0;
$8 = $6 >> 31;
$16 = Math_clz32($8 ^ $6 + $8);
$8 = $6 << $16 - 1;
$0 = $8 >> 16;
$6 = 536870911 / ($0 | 0) | 0;
$3 = ($6 >> 15) + 1 >> 1;
$14 = $6 << 16;
$6 = $14 >> 16;
$8 = 0 - ((Math_imul($6, $8 & 65535) >> 16) + Math_imul($0, $6) << 3) | 0;
$3 = ((Math_imul($8, $3) + $14 | 0) + Math_imul($8 >> 16, $6) | 0) + (Math_imul($8 & 65528, $6) >> 16) | 0;
$2 = $3 >> 31;
$19 = $3;
$20 = $2;
$6 = $1 >>> 1 | 0;
$23 = $6 >>> 0 > 1 ? $6 : 1;
$21 = 31 - $16 | 0;
while (1) {
$14 = ($10 << 2) + $13 | 0;
$6 = HEAP32[$14 >> 2];
$22 = (($10 ^ -1) + $15 << 2) + $13 | 0;
$8 = HEAP32[$22 >> 2];
$3 = $8;
$2 = $3 >> 31;
$3 = $17;
$3 = __wasm_i64_mul($8, $2, $12, $3);
$7 = $3;
$2 = i64toi32_i32$HIGH_BITS;
$3 = $2 >>> 30 | 0;
$2 = ($2 & 1073741823) << 2 | $7 >>> 30;
$4 = $2 + 1 | 0;
$1 = $4 >>> 0 < 1 ? $3 + 1 | 0 : $3;
$3 = $4;
$1 = ($1 & 1) << 31 | $3 >>> 1;
$0 = $6 - $1 | 0;
$3 = $0;
$0 = ($0 | 0) > -1;
$3 = ((($0 ? $1 : $6) ^ -2147483648) & ($0 ? $6 : $1)) > -1 ? $3 : $0 ? -2147483648 : 2147483647;
$2 = $3 >> 31;
$0 = $3;
$3 = $20;
$3 = __wasm_i64_mul($0, $2, $19, $3);
$9 = $3;
$2 = i64toi32_i32$HIGH_BITS;
$11 = $2;
$1 = $3;
$7 = $3 & 1;
$3 = 0;
$4 = $3;
$3 = $2;
$2 = $1;
$5 = ($3 & 1) << 31 | $2 >>> 1;
$0 = ($16 | 0) != 31;
$1 = $3 >> 1;
$2 = $1;
$1 = $4;
$4 = $2 + $1 | 0;
$3 = $7;
$7 = $3 + $5 | 0;
$4 = $7 >>> 0 < $5 >>> 0 ? $4 + 1 | 0 : $4;
$1 = $7;
label$8 : {
if (!$0) {
break label$8;
}
$4 = $11;
$1 = $9;
$5 = $21;
$2 = $5 & 31;
if (($5 & 63) >>> 0 >= 32) {
$3 = $4 >> 31;
$4 = $4 >> $2;
} else {
$3 = $4 >> $2;
$4 = ((1 << $2) - 1 & $4) << 32 - $2 | $1 >>> $2;
}
$2 = $4 + 1 | 0;
$7 = $2 >>> 0 < 1 ? $3 + 1 | 0 : $3;
$3 = $2;
$1 = ($7 & 1) << 31 | $3 >>> 1;
$4 = $7 >> 1;
}
$2 = $4;
$9 = $1;
$7 = $9;
$1 = $7 - -2147483648 | 0;
$2 = $1 >>> 0 < 2147483648 ? $2 + 1 | 0 : $2;
if ($2) {
break label$1;
}
HEAP32[$14 >> 2] = $9;
$2 = $6;
$4 = $2 >> 31;
$2 = $17;
$2 = __wasm_i64_mul($6, $4, $12, $2);
$5 = $2;
$4 = i64toi32_i32$HIGH_BITS;
$2 = $4 >>> 30 | 0;
$4 = ($4 & 1073741823) << 2 | $5 >>> 30;
$3 = $4 + 1 | 0;
$1 = $3 >>> 0 < 1 ? $2 + 1 | 0 : $2;
$2 = $3;
$6 = ($1 & 1) << 31 | $2 >>> 1;
$1 = $8 - $6 | 0;
$3 = $1;
$1 = ($1 | 0) > -1;
$2 = ((($1 ? $6 : $8) ^ -2147483648) & ($1 ? $8 : $6)) > -1 ? $3 : $1 ? -2147483648 : 2147483647;
$4 = $2 >> 31;
$1 = $2;
$2 = $20;
$2 = __wasm_i64_mul($1, $4, $19, $2);
$9 = $2;
$4 = i64toi32_i32$HIGH_BITS;
$11 = $4;
if ($0) {
$4 = $11;
$1 = $9;
$7 = $21;
$5 = $7 & 31;
if (($7 & 63) >>> 0 >= 32) {
$2 = $4 >> 31;
$4 = $4 >> $5;
} else {
$2 = $4 >> $5;
$4 = ((1 << $5) - 1 & $4) << 32 - $5 | $1 >>> $5;
}
$5 = $4 + 1 | 0;
$3 = $5 >>> 0 < 1 ? $2 + 1 | 0 : $2;
$2 = $5;
$9 = ($3 & 1) << 31 | $2 >>> 1;
$4 = $3 >> 1;
$5 = $4;
} else {
$3 = $9;
$1 = $3 & 1;
$2 = 0;
$0 = $2;
$4 = $11;
$2 = $4;
$7 = ($2 & 1) << 31 | $3 >>> 1;
$3 = $2 >> 1;
$4 = $3;
$3 = $0;
$5 = $3 + $4 | 0;
$2 = $1;
$1 = $7 + $2 | 0;
$9 = $1;
$5 = $1 >>> 0 < $7 >>> 0 ? $5 + 1 | 0 : $5;
}
$11 = $5;
$3 = $9;
$4 = $3 - -2147483648 | 0;
$1 = $4 >>> 0 < 2147483648 ? $5 + 1 | 0 : $5;
$3 = 0;
if ($1) {
break label$1;
}
HEAP32[$22 >> 2] = $9;
$10 = $10 + 1 | 0;
if (($23 | 0) != ($10 | 0)) {
continue;
}
break;
}
$10 = $15 - 1 | 0;
$8 = HEAP32[($10 << 2) + $13 >> 2];
$6 = $8 + 16773022 >>> 0 > 33546044;
$1 = $18;
$5 = $1 >> 31;
$9 = $1;
$11 = $5;
$1 = $15;
if (($1 | 0) > 1) {
continue;
}
break;
}
}
if ($6) {
break label$1;
}
$1 = 0 - (HEAP32[$13 >> 2] << 7) | 0;
$5 = $1 >> 31;
$12 = $1;
$1 = __wasm_i64_mul($12, $5, $12, $5);
$2 = 0 - 0 | 0;
$5 = i64toi32_i32$HIGH_BITS;
$1 = $5 & 2147483647;
$4 = $1 + (($3 | 0) != 0) | 0;
$4 = 1073741824 - $4 | 0;
$5 = $4 >> 31;
$1 = $11;
$1 = __wasm_i64_mul($4, $5, $9, $1);
$4 = $1;
$5 = i64toi32_i32$HIGH_BITS;
$6 = (($5 & 1073741823) << 2 | $4 >>> 30) & -4;
$24 = ($6 | 0) < 107374 ? 0 : $6;
}
return $24;
}
function opus_packet_parse_impl($0, $1, $2, $3, $4, $5, $6, $7) {
var $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
$15 = -1;
label$1 : {
if (!$5 | ($1 | 0) < 0) {
break label$1;
}
$15 = -4;
if (!$1) {
break label$1;
}
$16 = HEAPU8[$0 | 0];
label$2 : {
if ($16 & 128) {
$11 = (48e3 << ($16 >>> 3 & 3) >>> 0) / 400 | 0;
break label$2;
}
$11 = $16 & 8 ? 960 : 480;
if (($16 & 96) == 96) {
break label$2;
}
$9 = $16 >>> 3 & 3;
$11 = 2880;
if (($9 | 0) == 3) {
break label$2;
}
$11 = (48e3 << $9 >>> 0) / 100 | 0;
}
$10 = 1;
$9 = $0 + 1 | 0;
$8 = $1 - 1 | 0;
$12 = $8;
$13 = $16 & 3;
$17 = $13;
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
switch ($13 | 0) {
case 1:
if ($2) {
$10 = 2;
$13 = 1;
$17 = 0;
$12 = $8;
break label$6;
}
if ($8 & 1) {
break label$1;
}
$12 = $8 >>> 1 | 0;
HEAP16[$5 >> 1] = $12;
$10 = 2;
$17 = 0;
break label$5;
case 2:
if (($1 | 0) <= 1) {
HEAP16[$5 >> 1] = 65535;
return -4;
}
$13 = HEAPU8[$9 | 0];
if ($13 >>> 0 >= 252) {
$10 = 2;
if (($1 | 0) <= 2) {
HEAP16[$5 >> 1] = 65535;
return -4;
}
$13 = (HEAPU8[$0 + 2 | 0] << 2) + $13 | 0;
}
HEAP16[$5 >> 1] = $13;
$8 = $8 - $10 | 0;
if (($13 | 0) > ($8 | 0)) {
break label$1;
}
$12 = $8 - $13 | 0;
$9 = $9 + $10 | 0;
$13 = 0;
$10 = 2;
$17 = 0;
break label$7;
case 0:
break label$7;
default:
break label$8;
}
}
if (($1 | 0) < 2) {
break label$1;
}
$14 = HEAPU8[$0 + 1 | 0];
$10 = $14 & 63;
if (!$10 | Math_imul($10, $11) >>> 0 > 5760) {
break label$1;
}
$13 = $0 + 2 | 0;
$1 = $1 - 2 | 0;
$17 = 0;
label$15 : {
if (!($14 & 64)) {
$9 = $13;
break label$15;
}
while (1) {
if (($1 | 0) < 1) {
break label$1;
}
$9 = HEAPU8[$13 | 0];
$12 = ($9 | 0) == 255;
$9 = ($12 ? -2 : $9) & 255;
$17 = $17 + $9 | 0;
$1 = ($9 ^ -1) + $1 | 0;
$9 = $13 + 1 | 0;
$13 = $9;
if ($12) {
continue;
}
break;
}
if (($1 | 0) < 0) {
break label$1;
}
}
$13 = $14 >>> 7 ^ 1;
if ($14 & 128) {
if ($10 >>> 0 < 2) {
$8 = $1;
$12 = $1;
break label$7;
}
$19 = $10 - 1 | 0;
$14 = 0;
$12 = $1;
$8 = $1;
while (1) {
$18 = ($14 << 1) + $5 | 0;
if (($8 | 0) <= 0) {
HEAP16[$18 >> 1] = 65535;
return -4;
}
$11 = 1;
$1 = HEAPU8[$9 | 0];
if ($1 >>> 0 >= 252) {
if (($8 | 0) <= 1) {
HEAP16[$18 >> 1] = 65535;
return -4;
}
$11 = 2;
$1 = (HEAPU8[$9 + 1 | 0] << 2) + $1 | 0;
}
HEAP16[$18 >> 1] = $1;
$8 = $8 - $11 | 0;
if (($8 | 0) < ($1 | 0)) {
break label$1;
}
$9 = $9 + $11 | 0;
$12 = ($12 - $11 | 0) - $1 | 0;
$14 = $14 + 1 | 0;
if (($19 | 0) != ($14 | 0)) {
continue;
}
break;
}
if (($12 | 0) >= 0) {
break label$7;
}
break label$1;
}
if ($2) {
$12 = $8;
$8 = $1;
break label$6;
}
$12 = ($1 | 0) / ($10 | 0) | 0;
if ((Math_imul($12, $10) | 0) != ($1 | 0)) {
break label$1;
}
if ($10 >>> 0 < 2) {
break label$5;
}
$11 = $10 - 1 | 0;
$8 = 0;
while (1) {
HEAP16[($8 << 1) + $5 >> 1] = $12;
$8 = $8 + 1 | 0;
if (($11 | 0) != ($8 | 0)) {
continue;
}
break;
}
$8 = $1;
}
if (!$2) {
break label$5;
}
}
$11 = (($10 << 1) + $5 | 0) - 2 | 0;
$1 = 65535;
$2 = -1;
label$26 : {
if (($8 | 0) < 1) {
break label$26;
}
$14 = HEAPU8[$9 | 0];
if ($14 >>> 0 < 252) {
$1 = $14;
$2 = 1;
break label$26;
}
$2 = -1;
if (($8 | 0) < 2) {
break label$26;
}
$1 = (HEAPU8[$9 + 1 | 0] << 2) + $14 | 0;
$2 = 2;
}
HEAP16[$11 >> 1] = $1;
$11 = $1 << 16 >> 16;
if (($11 | 0) < 0) {
break label$1;
}
$8 = $8 - $2 | 0;
if (($11 | 0) > ($8 | 0)) {
break label$1;
}
$9 = $2 + $9 | 0;
if ($13) {
if ((Math_imul($10, $11) | 0) > ($8 | 0)) {
break label$1;
}
if ($10 >>> 0 < 2) {
break label$4;
}
HEAP16[$5 >> 1] = $1;
$1 = 1;
$15 = $10 - 1 | 0;
if (($15 | 0) == 1) {
break label$4;
}
$2 = ($15 << 1) + $5 | 0;
while (1) {
HEAP16[($1 << 1) + $5 >> 1] = HEAPU16[$2 >> 1];
$1 = $1 + 1 | 0;
if (($15 | 0) != ($1 | 0)) {
continue;
}
break;
}
break label$4;
}
if (($2 + $11 | 0) > ($12 | 0)) {
break label$1;
}
break label$4;
}
if (($12 | 0) > 1275) {
break label$1;
}
HEAP16[(($10 << 1) + $5 | 0) - 2 >> 1] = $12;
}
if ($6) {
HEAP32[$6 >> 2] = $9 - $0;
}
if ($10) {
$1 = 0;
while (1) {
if ($4) {
HEAP32[($1 << 2) + $4 >> 2] = $9;
}
$9 = HEAP16[($1 << 1) + $5 >> 1] + $9 | 0;
$1 = $1 + 1 | 0;
if (($10 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
if ($7) {
HEAP32[$7 >> 2] = ($17 - $0 | 0) + $9;
}
if ($3) {
HEAP8[$3 | 0] = $16;
}
$15 = $10;
}
return $15;
}
function silk_LPC_analysis_filter_FLP($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0;
label$1 : {
if (($3 | 0) >= ($4 | 0)) {
label$3 : {
label$4 : {
switch ($4 - 6 | 0) {
case 0:
if (($3 | 0) < 7) {
break label$3;
}
$6 = 6;
while (1) {
$5 = $6 << 2;
$7 = $5 + $0 | 0;
$5 = $2 + $5 | 0;
HEAPF32[$7 >> 2] = HEAPF32[$5 >> 2] - Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[$5 - 4 >> 2] * HEAPF32[$1 >> 2]) + Math_fround(HEAPF32[$5 - 8 >> 2] * HEAPF32[$1 + 4 >> 2])) + Math_fround(HEAPF32[$5 - 12 >> 2] * HEAPF32[$1 + 8 >> 2])) + Math_fround(HEAPF32[$5 - 16 >> 2] * HEAPF32[$1 + 12 >> 2])) + Math_fround(HEAPF32[$5 - 20 >> 2] * HEAPF32[$1 + 16 >> 2])) + Math_fround(HEAPF32[$5 - 24 >> 2] * HEAPF32[$1 + 20 >> 2]));
$6 = $6 + 1 | 0;
if (($6 | 0) != ($3 | 0)) {
continue;
}
break;
}
break label$3;
case 2:
if (($3 | 0) < 9) {
break label$3;
}
$6 = 8;
while (1) {
$5 = $6 << 2;
$7 = $5 + $0 | 0;
$5 = $2 + $5 | 0;
HEAPF32[$7 >> 2] = HEAPF32[$5 >> 2] - Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[$5 - 4 >> 2] * HEAPF32[$1 >> 2]) + Math_fround(HEAPF32[$5 - 8 >> 2] * HEAPF32[$1 + 4 >> 2])) + Math_fround(HEAPF32[$5 - 12 >> 2] * HEAPF32[$1 + 8 >> 2])) + Math_fround(HEAPF32[$5 - 16 >> 2] * HEAPF32[$1 + 12 >> 2])) + Math_fround(HEAPF32[$5 - 20 >> 2] * HEAPF32[$1 + 16 >> 2])) + Math_fround(HEAPF32[$5 - 24 >> 2] * HEAPF32[$1 + 20 >> 2])) + Math_fround(HEAPF32[$5 - 28 >> 2] * HEAPF32[$1 + 24 >> 2])) + Math_fround(HEAPF32[$5 - 32 >> 2] * HEAPF32[$1 + 28 >> 2]));
$6 = $6 + 1 | 0;
if (($6 | 0) != ($3 | 0)) {
continue;
}
break;
}
break label$3;
case 4:
if (($3 | 0) < 11) {
break label$3;
}
$6 = 10;
while (1) {
$5 = $6 << 2;
$7 = $5 + $0 | 0;
$5 = $2 + $5 | 0;
HEAPF32[$7 >> 2] = HEAPF32[$5 >> 2] - Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[$5 - 4 >> 2] * HEAPF32[$1 >> 2]) + Math_fround(HEAPF32[$5 - 8 >> 2] * HEAPF32[$1 + 4 >> 2])) + Math_fround(HEAPF32[$5 - 12 >> 2] * HEAPF32[$1 + 8 >> 2])) + Math_fround(HEAPF32[$5 - 16 >> 2] * HEAPF32[$1 + 12 >> 2])) + Math_fround(HEAPF32[$5 - 20 >> 2] * HEAPF32[$1 + 16 >> 2])) + Math_fround(HEAPF32[$5 - 24 >> 2] * HEAPF32[$1 + 20 >> 2])) + Math_fround(HEAPF32[$5 - 28 >> 2] * HEAPF32[$1 + 24 >> 2])) + Math_fround(HEAPF32[$5 - 32 >> 2] * HEAPF32[$1 + 28 >> 2])) + Math_fround(HEAPF32[$5 - 36 >> 2] * HEAPF32[$1 + 32 >> 2])) + Math_fround(HEAPF32[$5 - 40 >> 2] * HEAPF32[$1 + 36 >> 2]));
$6 = $6 + 1 | 0;
if (($6 | 0) != ($3 | 0)) {
continue;
}
break;
}
break label$3;
case 6:
if (($3 | 0) < 13) {
break label$3;
}
$6 = 12;
while (1) {
$5 = $6 << 2;
$7 = $5 + $0 | 0;
$5 = $2 + $5 | 0;
HEAPF32[$7 >> 2] = HEAPF32[$5 >> 2] - Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[$5 - 4 >> 2] * HEAPF32[$1 >> 2]) + Math_fround(HEAPF32[$5 - 8 >> 2] * HEAPF32[$1 + 4 >> 2])) + Math_fround(HEAPF32[$5 - 12 >> 2] * HEAPF32[$1 + 8 >> 2])) + Math_fround(HEAPF32[$5 - 16 >> 2] * HEAPF32[$1 + 12 >> 2])) + Math_fround(HEAPF32[$5 - 20 >> 2] * HEAPF32[$1 + 16 >> 2])) + Math_fround(HEAPF32[$5 - 24 >> 2] * HEAPF32[$1 + 20 >> 2])) + Math_fround(HEAPF32[$5 - 28 >> 2] * HEAPF32[$1 + 24 >> 2])) + Math_fround(HEAPF32[$5 - 32 >> 2] * HEAPF32[$1 + 28 >> 2])) + Math_fround(HEAPF32[$5 - 36 >> 2] * HEAPF32[$1 + 32 >> 2])) + Math_fround(HEAPF32[$5 - 40 >> 2] * HEAPF32[$1 + 36 >> 2])) + Math_fround(HEAPF32[$5 - 44 >> 2] * HEAPF32[$1 + 40 >> 2])) + Math_fround(HEAPF32[$5 - 48 >> 2] * HEAPF32[$1 + 44 >> 2]));
$6 = $6 + 1 | 0;
if (($6 | 0) != ($3 | 0)) {
continue;
}
break;
}
break label$3;
case 10:
break label$4;
default:
break label$1;
}
}
if (($3 | 0) < 17) {
break label$3;
}
$6 = 16;
while (1) {
$5 = $6 << 2;
$7 = $5 + $0 | 0;
$5 = $2 + $5 | 0;
HEAPF32[$7 >> 2] = HEAPF32[$5 >> 2] - Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[$5 - 4 >> 2] * HEAPF32[$1 >> 2]) + Math_fround(HEAPF32[$5 - 8 >> 2] * HEAPF32[$1 + 4 >> 2])) + Math_fround(HEAPF32[$5 - 12 >> 2] * HEAPF32[$1 + 8 >> 2])) + Math_fround(HEAPF32[$5 - 16 >> 2] * HEAPF32[$1 + 12 >> 2])) + Math_fround(HEAPF32[$5 - 20 >> 2] * HEAPF32[$1 + 16 >> 2])) + Math_fround(HEAPF32[$5 - 24 >> 2] * HEAPF32[$1 + 20 >> 2])) + Math_fround(HEAPF32[$5 - 28 >> 2] * HEAPF32[$1 + 24 >> 2])) + Math_fround(HEAPF32[$5 - 32 >> 2] * HEAPF32[$1 + 28 >> 2])) + Math_fround(HEAPF32[$5 - 36 >> 2] * HEAPF32[$1 + 32 >> 2])) + Math_fround(HEAPF32[$5 - 40 >> 2] * HEAPF32[$1 + 36 >> 2])) + Math_fround(HEAPF32[$5 - 44 >> 2] * HEAPF32[$1 + 40 >> 2])) + Math_fround(HEAPF32[$5 - 48 >> 2] * HEAPF32[$1 + 44 >> 2])) + Math_fround(HEAPF32[$5 - 52 >> 2] * HEAPF32[$1 + 48 >> 2])) + Math_fround(HEAPF32[$5 - 56 >> 2] * HEAPF32[$1 + 52 >> 2])) + Math_fround(HEAPF32[$5 - 60 >> 2] * HEAPF32[$1 + 56 >> 2])) + Math_fround(HEAPF32[$5 + -64 >> 2] * HEAPF32[$1 + 60 >> 2]));
$6 = $6 + 1 | 0;
if (($6 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
memset($0, 0, $4 << 2);
return;
}
celt_fatal(9580, 9614, 218);
abort();
}
celt_fatal(9651, 9614, 242);
abort();
}
function remove_doubling($0, $1, $2, $3, $4, $5, $6, $7) {
var $8 = Math_fround(0), $9 = Math_fround(0), $10 = Math_fround(0), $11 = 0, $12 = 0, $13 = 0, $14 = Math_fround(0), $15 = 0, $16 = 0, $17 = Math_fround(0), $18 = 0, $19 = Math_fround(0), $20 = 0, $21 = 0, $22 = Math_fround(0), $23 = Math_fround(0), $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = Math_fround(0), $29 = 0, $30 = 0, $31 = 0, $32 = Math_fround(0), $33 = Math_fround(0), $34 = Math_fround(0), $35 = Math_fround(0), $36 = Math_fround(0);
$11 = HEAP32[$4 >> 2] / 2 | 0;
$20 = ($1 | 0) / 2 | 0;
$15 = ($11 | 0) < ($20 | 0) ? $11 : $20 - 1 | 0;
HEAP32[$4 >> 2] = $15;
$12 = $20 << 2;
$11 = $12 + $0 | 0;
$18 = ($3 | 0) / 2 | 0;
$29 = ($5 | 0) / -2 | 0;
$13 = __stack_pointer;
$21 = $13 - ($12 + 19 & -16) | 0;
if (($3 | 0) >= 2) {
$13 = $11 - ($15 << 2) | 0;
$5 = 0;
while (1) {
$0 = $5 << 2;
$8 = HEAPF32[$11 + $0 >> 2];
$22 = Math_fround($22 + Math_fround($8 * HEAPF32[$0 + $13 >> 2]));
$14 = Math_fround($14 + Math_fround($8 * $8));
$5 = $5 + 1 | 0;
if (($18 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
HEAPF32[$21 >> 2] = $14;
if (($1 | 0) >= 2) {
$5 = 1;
$8 = $14;
while (1) {
$0 = $5 << 2;
$9 = HEAPF32[$11 - $0 >> 2];
$10 = Math_fround($8 + Math_fround($9 * $9));
$8 = HEAPF32[($18 - $5 << 2) + $11 >> 2];
$8 = Math_fround($10 - Math_fround($8 * $8));
HEAPF32[$0 + $21 >> 2] = Math_max($8, Math_fround(0));
$0 = ($5 | 0) != ($20 | 0);
$5 = $5 + 1 | 0;
if ($0) {
continue;
}
break;
}
}
$24 = ($2 | 0) / 2 | 0;
$30 = $24 << 1;
$31 = Math_imul($24, 3);
$32 = Math_fround($6 * Math_fround(.5));
$25 = $15 << 1;
$23 = HEAPF32[($15 << 2) + $21 >> 2];
$19 = Math_fround($22 / Math_fround(Math_sqrt(Math_fround(Math_fround($14 * $23) + Math_fround(1)))));
$33 = Math_fround($19 * Math_fround(.8500000238418579));
$34 = Math_fround($19 * Math_fround(.8999999761581421));
$35 = Math_fround($19 * Math_fround(.699999988079071));
$12 = 2;
$7 = $15;
while (1) {
$5 = $12 << 1;
$16 = ($12 + $25 >>> 0) / ($5 >>> 0) | 0;
if (($24 | 0) <= ($16 | 0)) {
label$8 : {
if (($12 | 0) == 2) {
$5 = $15 + $16 | 0;
$5 = ($5 | 0) > ($20 | 0) ? $15 : $5;
break label$8;
}
$5 = (Math_imul(HEAP32[($12 << 2) + 9808 >> 2], $25) + $12 >>> 0) / ($5 >>> 0) | 0;
}
$26 = $5 << 2;
$27 = $16 << 2;
$8 = Math_fround(0);
label$10 : {
if (($3 | 0) < 2) {
$9 = Math_fround(0);
break label$10;
}
$13 = $11 - $26 | 0;
$1 = $11 - $27 | 0;
$5 = 0;
$9 = Math_fround(0);
while (1) {
$0 = $5 << 2;
$10 = HEAPF32[$11 + $0 >> 2];
$8 = Math_fround($8 + Math_fround($10 * HEAPF32[$0 + $13 >> 2]));
$9 = Math_fround($9 + Math_fround($10 * HEAPF32[$0 + $1 >> 2]));
$5 = $5 + 1 | 0;
if (($18 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$9 = Math_fround(Math_fround($9 + $8) * Math_fround(.5));
$28 = Math_fround(Math_fround(HEAPF32[$21 + $27 >> 2] + HEAPF32[$21 + $26 >> 2]) * Math_fround(.5));
$10 = Math_fround(Math_sqrt(Math_fround(Math_fround($14 * $28) + Math_fround(1))));
$10 = Math_fround($9 / $10);
$36 = $10;
$17 = $33;
$5 = $16 + $29 | 0;
$0 = $5;
$8 = $6;
$5 = $5 >> 31;
$5 = $5 ^ $5 + $0;
label$13 : {
if (($5 | 0) < 2) {
break label$13;
}
$8 = Math_fround(0);
if (($5 | 0) != 2) {
break label$13;
}
$8 = (Math_imul(Math_imul($12, $12), 5) | 0) < ($15 | 0) ? $32 : Math_fround(0);
}
$17 = Math_fround(Math_max(Math_fround($17 - $8), Math_fround(.4000000059604645)));
label$14 : {
if (($16 | 0) < ($31 | 0)) {
break label$14;
}
$17 = Math_fround(Math_max(Math_fround($35 - $8), Math_fround(.30000001192092896)));
if (($16 | 0) >= ($30 | 0)) {
break label$14;
}
$17 = Math_fround(Math_max(Math_fround($34 - $8), Math_fround(.5)));
}
$8 = $17;
if (!($36 > $8 ^ 1)) {
$7 = $16;
$23 = $28;
$22 = $9;
$19 = $10;
}
$12 = $12 + 1 | 0;
if (($12 | 0) != 16) {
continue;
}
}
break;
}
$8 = Math_fround(0);
$14 = Math_fround(1);
$9 = Math_fround(Math_max($22, Math_fround(0)));
if (!($23 <= $9)) {
$14 = Math_fround($9 / Math_fround($23 + Math_fround(1)));
}
label$17 : {
if (($3 | 0) < 2) {
$9 = Math_fround(0);
$10 = Math_fround(0);
break label$17;
}
$13 = ($11 - ($7 << 2) | 0) + 4 | 0;
$5 = 0;
while (1) {
$0 = $5 << 2;
$8 = Math_fround($8 + Math_fround(HEAPF32[$11 + $0 >> 2] * HEAPF32[$0 + $13 >> 2]));
$5 = $5 + 1 | 0;
if (($18 | 0) != ($5 | 0)) {
continue;
}
break;
}
$9 = Math_fround(0);
if (($3 | 0) <= 1) {
$10 = Math_fround(0);
break label$17;
}
$13 = $11 - ($7 << 2) | 0;
$5 = 0;
while (1) {
$0 = $5 << 2;
$9 = Math_fround($9 + Math_fround(HEAPF32[$11 + $0 >> 2] * HEAPF32[$0 + $13 >> 2]));
$5 = $5 + 1 | 0;
if (($18 | 0) != ($5 | 0)) {
continue;
}
break;
}
$10 = Math_fround(0);
if (($3 | 0) < 2) {
break label$17;
}
$13 = (($7 ^ -1) << 2) + $11 | 0;
$5 = 0;
while (1) {
$0 = $5 << 2;
$10 = Math_fround($10 + Math_fround(HEAPF32[$11 + $0 >> 2] * HEAPF32[$0 + $13 >> 2]));
$5 = $5 + 1 | 0;
if (($18 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$5 = 1;
$5 = Math_fround($10 - $8) > Math_fround(Math_fround($9 - $8) * Math_fround(.699999988079071)) ? $5 : Math_fround($8 - $10) > Math_fround(Math_fround($9 - $10) * Math_fround(.699999988079071)) ? -1 : 0;
$5 = $5 + ($7 << 1) | 0;
HEAP32[$4 >> 2] = ($2 | 0) > ($5 | 0) ? $2 : $5;
return $14 > $19 ? $19 : $14;
}
function quant_partition($0, $1, $2, $3, $4, $5, $6, $7, $8) {
var $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = Math_fround(0), $17 = Math_fround(0), $18 = 0, $19 = 0, $20 = 0, $21 = 0;
$13 = __stack_pointer - 32 | 0;
__stack_pointer = $13;
HEAP32[$13 + 24 >> 2] = $8;
HEAP32[$13 + 28 >> 2] = $3;
$9 = HEAP32[$0 + 8 >> 2];
$10 = HEAP32[$9 + 100 >> 2] + HEAP16[HEAP32[$9 + 96 >> 2] + (HEAP32[$0 + 12 >> 2] + Math_imul(HEAP32[$9 + 8 >> 2], $6 + 1 | 0) << 1) >> 1] | 0;
$9 = HEAPU8[$10 | 0];
$15 = -1;
$18 = HEAP32[$0 + 28 >> 2];
$19 = HEAP32[$0 + 20 >> 2];
$20 = HEAP32[$0 >> 2];
label$1 : {
if (!(($6 | 0) == -1 | ($2 | 0) < 3 | (HEAPU8[$9 + $10 | 0] + 12 | 0) >= ($3 | 0))) {
$9 = $6 - 1 | 0;
$3 = $2 >>> 1 | 0;
$2 = ($3 << 2) + $1 | 0;
if (($4 | 0) == 1) {
HEAP32[$13 + 24 >> 2] = $8 & 1 | $8 << 1;
}
$14 = $4 + 1 >> 1;
compute_theta($0, $13, $1, $2, $3, $13 + 28 | 0, $14, $4, $9, 0, $13 + 24 | 0);
$16 = Math_fround(HEAP32[$13 + 8 >> 2]);
$17 = Math_fround(HEAP32[$13 + 4 >> 2]);
$8 = HEAP32[$13 + 20 >> 2];
$10 = HEAP32[$13 + 12 >> 2];
$15 = HEAP32[$13 + 16 >> 2];
$11 = $10;
label$4 : {
if (!($15 & 16383) | ($4 | 0) < 2) {
break label$4;
}
$11 = $10 - ($10 >> 5 - $6) | 0;
if (($15 | 0) >= 8193) {
break label$4;
}
$6 = ($3 << 3 >> 6 - $6) + $10 | 0;
$11 = $6 & $6 >> 31;
}
$10 = $11;
$16 = Math_fround($16 * Math_fround(30517578125e-15));
$17 = Math_fround($17 * Math_fround(30517578125e-15));
$6 = HEAP32[$13 + 28 >> 2];
$8 = HEAP32[$0 + 32 >> 2] - $8 | 0;
HEAP32[$0 + 32 >> 2] = $8;
$12 = $5 ? ($3 << 2) + $5 | 0 : 0;
$10 = ($6 - $10 | 0) / 2 | 0;
$10 = ($6 | 0) < ($10 | 0) ? $6 : $10;
$10 = ($10 | 0) > 0 ? $10 : 0;
$6 = $6 - $10 | 0;
if (($6 | 0) <= ($10 | 0)) {
$11 = HEAP32[$13 + 24 >> 2];
$1 = quant_partition($0, $1, $3, $10, $14, $5, $9, Math_fround($17 * $7), $11);
$10 = (HEAP32[$0 + 32 >> 2] - $8 | 0) + $10 | 0;
$9 = $1 | quant_partition($0, $2, $3, ($15 ? ($10 | 0) > 24 ? $10 - 24 | 0 : 0 : 0) + $6 | 0, $14, $12, $9, Math_fround($16 * $7), $11 >> $14) << ($4 >> 1);
break label$1;
}
$11 = HEAP32[$13 + 24 >> 2];
$2 = quant_partition($0, $2, $3, $6, $14, $12, $9, Math_fround($16 * $7), $11 >> $14);
$6 = (HEAP32[$0 + 32 >> 2] - $8 | 0) + $6 | 0;
$9 = quant_partition($0, $1, $3, (($15 | 0) != 16384 ? ($6 | 0) > 24 ? $6 - 24 | 0 : 0 : 0) + $10 | 0, $14, $5, $9, Math_fround($17 * $7), $11) | $2 << ($4 >> 1);
break label$1;
}
$6 = $3 - 1 | 0;
$12 = $9 + 1 >>> 1 | 0;
$3 = ($6 | 0) > HEAPU8[$12 + $10 | 0];
$9 = $3 ? $9 : $12;
$11 = $9;
$12 = $3 ? $12 : 0;
$3 = ($12 + $9 | 0) + 1 >>> 1 | 0;
$9 = HEAPU8[$10 + $3 | 0] < ($6 | 0);
$11 = $9 ? $11 : $3;
$9 = $9 ? $3 : $12;
$3 = ($11 + $9 | 0) + 1 >>> 1 | 0;
$12 = HEAPU8[$10 + $3 | 0] < ($6 | 0);
$9 = $12 ? $3 : $9;
$11 = $12 ? $11 : $3;
$3 = ($9 + $11 | 0) + 1 >>> 1 | 0;
$12 = HEAPU8[$10 + $3 | 0] < ($6 | 0);
$9 = $12 ? $3 : $9;
$11 = $12 ? $11 : $3;
$3 = ($9 + $11 | 0) + 1 >> 1;
$12 = HEAPU8[$10 + $3 | 0] < ($6 | 0);
$11 = $12 ? $11 : $3;
$21 = $11;
$12 = $12 ? $3 : $9;
$3 = ($11 + $12 | 0) + 1 >> 1;
$11 = HEAPU8[$10 + $3 | 0] < ($6 | 0);
$9 = $11 ? $21 : $3;
$3 = $11 ? $3 : $12;
if ($3) {
$15 = HEAPU8[$3 + $10 | 0];
}
$3 = ($6 - $15 | 0) > (HEAPU8[$9 + $10 | 0] - $6 | 0) ? $9 : $3;
if ($3) {
$14 = HEAPU8[$3 + $10 | 0] + 1 | 0;
}
$9 = HEAP32[$0 + 32 >> 2] - $14 | 0;
HEAP32[$0 + 32 >> 2] = $9;
label$9 : {
label$10 : {
if (($9 | 0) > -1) {
$6 = $3;
break label$10;
}
if (($3 | 0) < 1) {
$6 = $3;
break label$10;
}
while (1) {
$9 = $9 + $14 | 0;
HEAP32[$0 + 32 >> 2] = $9;
$6 = $3 - 1 | 0;
if (!$6) {
HEAP32[$0 + 32 >> 2] = $9;
break label$9;
}
$14 = HEAPU8[$6 + $10 | 0] + 1 | 0;
$9 = $9 - $14 | 0;
HEAP32[$0 + 32 >> 2] = $9;
if (($9 | 0) > -1) {
break label$10;
}
$15 = ($3 | 0) > 1;
$3 = $6;
if ($15) {
continue;
}
break;
}
}
if (!$6) {
break label$9;
}
$6 = ($6 | 0) >= 8 ? ($6 & 7 | 8) << ($6 >>> 3 | 0) - 1 : $6;
if ($20) {
$9 = alg_quant($1, $2, $6, $19, $4, $18, $7, HEAP32[$0 + 4 >> 2], HEAP32[$0 + 44 >> 2]);
break label$1;
}
$9 = alg_unquant($1, $2, $6, $19, $4, $18, $7);
break label$1;
}
if (!HEAP32[$0 + 4 >> 2]) {
$9 = 0;
break label$1;
}
$9 = -1 << $4 ^ -1;
$14 = $9 & $8;
HEAP32[$13 + 24 >> 2] = $14;
if (!$14) {
$9 = 0;
memset($1, 0, $2 << 2);
break label$1;
}
label$19 : {
if ($5) {
if (($2 | 0) >= 1) {
$3 = HEAP32[$0 + 40 >> 2];
$6 = 0;
while (1) {
$9 = $6 << 2;
$3 = Math_imul($3, 1664525) + 1013904223 | 0;
HEAPF32[$9 + $1 >> 2] = HEAPF32[$5 + $9 >> 2] + ($3 & 32768 ? Math_fround(.00390625) : Math_fround(-.00390625));
$6 = $6 + 1 | 0;
if (($6 | 0) != ($2 | 0)) {
continue;
}
break;
}
HEAP32[$0 + 40 >> 2] = $3;
}
$9 = $14;
break label$19;
}
if (($2 | 0) < 1) {
break label$19;
}
$3 = HEAP32[$0 + 40 >> 2];
$6 = 0;
while (1) {
$3 = Math_imul($3, 1664525) + 1013904223 | 0;
HEAPF32[($6 << 2) + $1 >> 2] = $3 >> 20;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($2 | 0)) {
continue;
}
break;
}
HEAP32[$0 + 40 >> 2] = $3;
}
renormalise_vector($1, $2, $7, HEAP32[$0 + 44 >> 2]);
}
__stack_pointer = $13 + 32 | 0;
return $9;
}
function pitch_search($0, $1, $2, $3, $4, $5) {
var $6 = Math_fround(0), $7 = Math_fround(0), $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = Math_fround(0), $13 = Math_fround(0), $14 = Math_fround(0), $15 = 0, $16 = 0, $17 = Math_fround(0), $18 = 0, $19 = 0, $20 = Math_fround(0), $21 = 0;
$5 = __stack_pointer;
$21 = $5;
label$1 : {
if (($2 | 0) > 0) {
if (($3 | 0) <= 0) {
break label$1;
}
$11 = $2 >>> 2 | 0;
$8 = $5 - (($11 << 2) + 15 & -16) | 0;
$5 = $8;
__stack_pointer = $5;
$9 = $2 + $3 | 0;
$10 = $5 - (($9 & -4) + 15 & -16) | 0;
$5 = $10;
__stack_pointer = $5;
$15 = $3 >>> 1 | 0;
$16 = $5 - (($15 << 2) + 15 & -16) | 0;
__stack_pointer = $16;
if ($11) {
$5 = 0;
while (1) {
HEAP32[($5 << 2) + $8 >> 2] = HEAP32[($5 << 3) + $0 >> 2];
$5 = $5 + 1 | 0;
if (($11 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
if (($9 | 0) >= 4) {
$5 = $9 >> 2;
$9 = ($5 | 0) > 1 ? $5 : 1;
$5 = 0;
while (1) {
HEAP32[($5 << 2) + $10 >> 2] = HEAP32[($5 << 3) + $1 >> 2];
$5 = $5 + 1 | 0;
if (($9 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$9 = $3 >> 2;
celt_pitch_xcorr_c($8, $10, $16, $11, $9, $5);
$7 = Math_fround(1);
if ($11) {
$5 = 0;
while (1) {
$6 = HEAPF32[($5 << 2) + $10 >> 2];
$7 = Math_fround($7 + Math_fround($6 * $6));
$5 = $5 + 1 | 0;
if (($11 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$18 = 1;
if (($3 | 0) > 3) {
$13 = Math_fround(-1);
$5 = 0;
$14 = Math_fround(-1);
while (1) {
$8 = $5 << 2;
$6 = HEAPF32[$16 + $8 >> 2];
label$11 : {
if ($6 > Math_fround(0) ^ 1) {
break label$11;
}
$6 = Math_fround($6 * Math_fround(9.999999960041972e-13));
$6 = Math_fround($6 * $6);
if (Math_fround($12 * $6) > Math_fround($14 * $7) ^ 1) {
break label$11;
}
if (Math_fround($17 * $6) > Math_fround($13 * $7)) {
$18 = $19;
$19 = $5;
$14 = $13;
$13 = $6;
$12 = $17;
$17 = $7;
break label$11;
}
$18 = $5;
$14 = $6;
$12 = $7;
}
$6 = HEAPF32[($5 + $11 << 2) + $10 >> 2];
$20 = Math_fround($6 * $6);
$6 = HEAPF32[$10 + $8 >> 2];
$7 = Math_fround(Math_max(Math_fround($7 + Math_fround($20 - Math_fround($6 * $6))), Math_fround(1)));
$5 = $5 + 1 | 0;
if (($9 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
label$13 : {
if (!$15) {
$11 = $2 >> 1;
break label$13;
}
$11 = $2 >> 1;
$18 = $18 << 1;
$19 = $19 << 1;
$9 = 0;
while (1) {
$10 = $9 << 2;
$3 = $16 + $10 | 0;
HEAP32[$3 >> 2] = 0;
$5 = $9 - $19 | 0;
$8 = $5;
$5 = $5 >> 31;
label$16 : {
if (($5 ^ $5 + $8) >= 3) {
$5 = $9 - $18 | 0;
$8 = $5;
$5 = $5 >> 31;
if (($5 ^ $5 + $8) > 2) {
break label$16;
}
}
$7 = Math_fround(0);
if (($2 | 0) >= 2) {
$8 = $1 + $10 | 0;
$5 = 0;
while (1) {
$10 = $5 << 2;
$7 = Math_fround($7 + Math_fround(HEAPF32[$10 + $0 >> 2] * HEAPF32[$10 + $8 >> 2]));
$5 = $5 + 1 | 0;
if (($11 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
HEAPF32[$3 >> 2] = Math_max($7, Math_fround(-1));
}
$9 = $9 + 1 | 0;
if (($15 | 0) != ($9 | 0)) {
continue;
}
break;
}
}
$7 = Math_fround(1);
if (($2 | 0) > 1) {
$5 = 0;
while (1) {
$6 = HEAPF32[($5 << 2) + $1 >> 2];
$7 = Math_fround($7 + Math_fround($6 * $6));
$5 = $5 + 1 | 0;
if (($11 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$8 = 0;
label$22 : {
if (!$15) {
$0 = 0;
break label$22;
}
$13 = Math_fround(-1);
$17 = Math_fround(0);
$0 = 0;
$5 = 0;
$12 = Math_fround(0);
$14 = Math_fround(-1);
while (1) {
$10 = $5 << 2;
$6 = HEAPF32[$16 + $10 >> 2];
label$25 : {
if ($6 > Math_fround(0) ^ 1) {
break label$25;
}
$6 = Math_fround($6 * Math_fround(9.999999960041972e-13));
$6 = Math_fround($6 * $6);
if (Math_fround($12 * $6) > Math_fround($14 * $7) ^ 1) {
break label$25;
}
if (Math_fround($17 * $6) > Math_fround($13 * $7)) {
$0 = $5;
$14 = $13;
$13 = $6;
$12 = $17;
$17 = $7;
break label$25;
}
$14 = $6;
$12 = $7;
}
$6 = HEAPF32[($5 + $11 << 2) + $1 >> 2];
$20 = Math_fround($6 * $6);
$6 = HEAPF32[$1 + $10 >> 2];
$7 = Math_fround(Math_max(Math_fround($7 + Math_fround($20 - Math_fround($6 * $6))), Math_fround(1)));
$5 = $5 + 1 | 0;
if (($15 | 0) != ($5 | 0)) {
continue;
}
break;
}
if (($0 | 0) < 1 | ($15 - 1 | 0) <= ($0 | 0)) {
break label$22;
}
$8 = -1;
$5 = ($0 << 2) + $16 | 0;
$6 = HEAPF32[$5 + 4 >> 2];
$7 = HEAPF32[$5 - 4 >> 2];
$12 = HEAPF32[$5 >> 2];
if (Math_fround($6 - $7) > Math_fround(Math_fround($12 - $7) * Math_fround(.699999988079071))) {
break label$22;
}
$8 = Math_fround($7 - $6) > Math_fround(Math_fround($12 - $6) * Math_fround(.699999988079071));
}
HEAP32[$4 >> 2] = ($0 << 1) + $8;
__stack_pointer = $21;
return;
}
celt_fatal(9781, 9768, 302);
abort();
}
celt_fatal(9738, 9768, 303);
abort();
}
function exp_rotation($0, $1, $2, $3, $4, $5) {
var $6 = Math_fround(0), $7 = 0, $8 = Math_fround(0), $9 = Math_fround(0), $10 = Math_fround(0), $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
label$1 : {
if (!$5 | $4 << 1 >= ($1 | 0)) {
break label$1;
}
$9 = Math_fround(Math_fround($1 | 0) / Math_fround(Math_imul(HEAP32[($5 << 2) + 41524 >> 2], $4) + $1 | 0));
$9 = Math_fround(Math_fround($9 * $9) * Math_fround(.5));
$18 = cos(+Math_fround($9 * Math_fround(1.5707963705062866)));
$19 = cos(+Math_fround(Math_fround(Math_fround(1) - $9) * Math_fround(1.5707963705062866)));
$5 = 0;
if ($3 << 3 <= ($1 | 0)) {
$7 = $3 >> 2;
$4 = 1;
while (1) {
$5 = $4;
$4 = $4 + 1 | 0;
if ((Math_imul(Math_imul($5, $5) + $5 | 0, $3) + $7 | 0) < ($1 | 0)) {
continue;
}
break;
}
}
if (($3 | 0) < 1) {
break label$1;
}
$9 = Math_fround($18);
$10 = Math_fround($19);
$14 = ($1 >>> 0) / ($3 >>> 0) | 0;
$15 = $14 - $5 | 0;
$12 = $14 - 3 | 0;
$16 = $14 - 1 | 0;
$13 = ($5 << 1 ^ -1) + $14 | 0;
$20 = ($2 | 0) > -1;
$2 = 0;
while (1) {
$11 = Math_imul($2, $14);
label$5 : {
if (!$20) {
label$7 : {
if (!$5) {
break label$7;
}
$1 = 0;
$17 = ($11 << 2) + $0 | 0;
$4 = $17;
if (($15 | 0) >= 1) {
while (1) {
$7 = ($5 << 2) + $4 | 0;
$8 = HEAPF32[$7 >> 2];
$6 = HEAPF32[$4 >> 2];
HEAPF32[$7 >> 2] = Math_fround($6 * $9) + Math_fround($8 * $10);
HEAPF32[$4 >> 2] = Math_fround($6 * $10) - Math_fround($8 * $9);
$4 = $4 + 4 | 0;
$1 = $1 + 1 | 0;
if (($15 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
if (($13 | 0) < 0) {
break label$7;
}
$4 = ($13 << 2) + $17 | 0;
$1 = $13;
while (1) {
$7 = ($5 << 2) + $4 | 0;
$8 = HEAPF32[$7 >> 2];
$6 = HEAPF32[$4 >> 2];
HEAPF32[$7 >> 2] = Math_fround($6 * $9) + Math_fround($8 * $10);
HEAPF32[$4 >> 2] = Math_fround($6 * $10) - Math_fround($8 * $9);
$4 = $4 - 4 | 0;
$7 = ($1 | 0) > 0;
$1 = $1 - 1 | 0;
if ($7) {
continue;
}
break;
}
}
$7 = ($11 << 2) + $0 | 0;
if (($16 | 0) >= 1) {
$6 = HEAPF32[$7 >> 2];
$1 = 0;
$4 = $7;
while (1) {
$8 = HEAPF32[$4 + 4 >> 2];
HEAPF32[$4 >> 2] = Math_fround($6 * $9) - Math_fround($8 * $10);
$6 = Math_fround(Math_fround($6 * $10) + Math_fround($8 * $9));
HEAPF32[$4 + 4 >> 2] = $6;
$4 = $4 + 4 | 0;
$1 = $1 + 1 | 0;
if (($16 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
if (($12 | 0) < 0) {
break label$5;
}
$4 = ($12 << 2) + $7 | 0;
$1 = $12;
while (1) {
$6 = HEAPF32[$4 >> 2];
$8 = HEAPF32[$4 + 4 >> 2];
HEAPF32[$4 + 4 >> 2] = Math_fround($6 * $10) + Math_fround($8 * $9);
HEAPF32[$4 >> 2] = Math_fround($6 * $9) - Math_fround($8 * $10);
$4 = $4 - 4 | 0;
$7 = ($1 | 0) > 0;
$1 = $1 - 1 | 0;
if ($7) {
continue;
}
break;
}
break label$5;
}
$11 = ($11 << 2) + $0 | 0;
if (($16 | 0) >= 1) {
$6 = HEAPF32[$11 >> 2];
$1 = 0;
$4 = $11;
while (1) {
$8 = HEAPF32[$4 + 4 >> 2];
HEAPF32[$4 >> 2] = Math_fround($6 * $9) + Math_fround($8 * $10);
$6 = Math_fround(Math_fround($8 * $9) - Math_fround($6 * $10));
HEAPF32[$4 + 4 >> 2] = $6;
$4 = $4 + 4 | 0;
$1 = $1 + 1 | 0;
if (($16 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
if (($12 | 0) >= 0) {
$4 = ($12 << 2) + $11 | 0;
$1 = $12;
while (1) {
$6 = HEAPF32[$4 + 4 >> 2];
$8 = HEAPF32[$4 >> 2];
HEAPF32[$4 + 4 >> 2] = Math_fround($6 * $9) - Math_fround($8 * $10);
HEAPF32[$4 >> 2] = Math_fround($8 * $9) + Math_fround($6 * $10);
$4 = $4 - 4 | 0;
$7 = ($1 | 0) > 0;
$1 = $1 - 1 | 0;
if ($7) {
continue;
}
break;
}
}
if (!$5) {
break label$5;
}
$1 = 0;
$4 = $11;
if (($15 | 0) >= 1) {
while (1) {
$7 = ($5 << 2) + $4 | 0;
$6 = HEAPF32[$7 >> 2];
$8 = HEAPF32[$4 >> 2];
HEAPF32[$7 >> 2] = Math_fround($6 * $10) - Math_fround($8 * $9);
HEAPF32[$4 >> 2] = Math_fround($8 * $10) + Math_fround($6 * $9);
$4 = $4 + 4 | 0;
$1 = $1 + 1 | 0;
if (($15 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
if (($13 | 0) < 0) {
break label$5;
}
$4 = ($13 << 2) + $11 | 0;
$1 = $13;
while (1) {
$7 = ($5 << 2) + $4 | 0;
$6 = HEAPF32[$7 >> 2];
$8 = HEAPF32[$4 >> 2];
HEAPF32[$7 >> 2] = Math_fround($6 * $10) - Math_fround($8 * $9);
HEAPF32[$4 >> 2] = Math_fround($8 * $10) + Math_fround($6 * $9);
$4 = $4 - 4 | 0;
$7 = ($1 | 0) > 0;
$1 = $1 - 1 | 0;
if ($7) {
continue;
}
break;
}
}
$2 = $2 + 1 | 0;
if (($3 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
}
function __rem_pio2($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0;
$6 = __stack_pointer - 48 | 0;
__stack_pointer = $6;
label$1 : {
label$2 : {
wasm2js_scratch_store_f64(+$0);
$4 = wasm2js_scratch_load_i32(1) | 0;
$8 = wasm2js_scratch_load_i32(0) | 0;
$3 = $4;
$7 = $4 & 2147483647;
label$3 : {
if ($7 >>> 0 <= 1074752122) {
if (($3 & 1048575) == 598523) {
break label$3;
}
if ($7 >>> 0 <= 1073928572) {
if (($4 | 0) > 0 ? 1 : ($4 | 0) >= 0) {
$0 = $0 + -1.5707963267341256;
$2 = $0 + -6.077100506506192e-11;
HEAPF64[$1 >> 3] = $2;
HEAPF64[$1 + 8 >> 3] = $0 - $2 + -6.077100506506192e-11;
$3 = 1;
break label$1;
}
$0 = $0 + 1.5707963267341256;
$2 = $0 + 6.077100506506192e-11;
HEAPF64[$1 >> 3] = $2;
HEAPF64[$1 + 8 >> 3] = $0 - $2 + 6.077100506506192e-11;
$3 = -1;
break label$1;
}
if (($4 | 0) > 0 ? 1 : ($4 | 0) >= 0) {
$0 = $0 + -3.1415926534682512;
$2 = $0 + -1.2154201013012384e-10;
HEAPF64[$1 >> 3] = $2;
HEAPF64[$1 + 8 >> 3] = $0 - $2 + -1.2154201013012384e-10;
$3 = 2;
break label$1;
}
$0 = $0 + 3.1415926534682512;
$2 = $0 + 1.2154201013012384e-10;
HEAPF64[$1 >> 3] = $2;
HEAPF64[$1 + 8 >> 3] = $0 - $2 + 1.2154201013012384e-10;
$3 = -2;
break label$1;
}
if ($7 >>> 0 <= 1075594811) {
if ($7 >>> 0 <= 1075183036) {
if (($7 | 0) == 1074977148) {
break label$3;
}
if (($4 | 0) > 0 ? 1 : ($4 | 0) >= 0) {
$0 = $0 + -4.712388980202377;
$2 = $0 + -1.8231301519518578e-10;
HEAPF64[$1 >> 3] = $2;
HEAPF64[$1 + 8 >> 3] = $0 - $2 + -1.8231301519518578e-10;
$3 = 3;
break label$1;
}
$0 = $0 + 4.712388980202377;
$2 = $0 + 1.8231301519518578e-10;
HEAPF64[$1 >> 3] = $2;
HEAPF64[$1 + 8 >> 3] = $0 - $2 + 1.8231301519518578e-10;
$3 = -3;
break label$1;
}
if (($7 | 0) == 1075388923) {
break label$3;
}
if (($4 | 0) > 0 ? 1 : ($4 | 0) >= 0) {
$0 = $0 + -6.2831853069365025;
$2 = $0 + -2.430840202602477e-10;
HEAPF64[$1 >> 3] = $2;
HEAPF64[$1 + 8 >> 3] = $0 - $2 + -2.430840202602477e-10;
$3 = 4;
break label$1;
}
$0 = $0 + 6.2831853069365025;
$2 = $0 + 2.430840202602477e-10;
HEAPF64[$1 >> 3] = $2;
HEAPF64[$1 + 8 >> 3] = $0 - $2 + 2.430840202602477e-10;
$3 = -4;
break label$1;
}
if ($7 >>> 0 > 1094263290) {
break label$2;
}
}
$2 = $0 * .6366197723675814 + 6755399441055744 + -6755399441055744;
$9 = $0 + $2 * -1.5707963267341256;
$11 = $2 * 6.077100506506192e-11;
$0 = $9 - $11;
HEAPF64[$1 >> 3] = $0;
$10 = $7 >>> 20 | 0;
wasm2js_scratch_store_f64(+$0);
$5 = wasm2js_scratch_load_i32(1) | 0;
wasm2js_scratch_load_i32(0) | 0;
$5 = ($10 - ($5 >>> 20 & 2047) | 0) < 17;
if (Math_abs($2) < 2147483648) {
$3 = ~~$2;
} else {
$3 = -2147483648;
}
label$14 : {
if ($5) {
break label$14;
}
$0 = $2 * 6.077100506303966e-11;
$12 = $9 - $0;
$11 = $2 * 2.0222662487959506e-21 - ($9 - $12 - $0);
$0 = $12 - $11;
HEAPF64[$1 >> 3] = $0;
wasm2js_scratch_store_f64(+$0);
$5 = wasm2js_scratch_load_i32(1) | 0;
wasm2js_scratch_load_i32(0) | 0;
if (($10 - ($5 >>> 20 & 2047) | 0) < 50) {
$9 = $12;
break label$14;
}
$0 = $2 * 2.0222662487111665e-21;
$9 = $12 - $0;
$11 = $2 * 8.4784276603689e-32 - ($12 - $9 - $0);
$0 = $9 - $11;
HEAPF64[$1 >> 3] = $0;
}
HEAPF64[$1 + 8 >> 3] = $9 - $0 - $11;
break label$1;
}
if ($7 >>> 0 >= 2146435072) {
$0 = $0 - $0;
HEAPF64[$1 >> 3] = $0;
HEAPF64[$1 + 8 >> 3] = $0;
$3 = 0;
break label$1;
}
$5 = $4 & 1048575;
$5 = $5 | 1096810496;
wasm2js_scratch_store_i32(0, $8 | 0);
wasm2js_scratch_store_i32(1, $5 | 0);
$0 = +wasm2js_scratch_load_f64();
$3 = 0;
$5 = 1;
while (1) {
$3 = ($6 + 16 | 0) + ($3 << 3) | 0;
if (Math_abs($0) < 2147483648) {
$10 = ~~$0;
} else {
$10 = -2147483648;
}
$2 = +($10 | 0);
HEAPF64[$3 >> 3] = $2;
$0 = ($0 - $2) * 16777216;
$3 = 1;
$10 = $5 & 1;
$5 = 0;
if ($10) {
continue;
}
break;
}
HEAPF64[$6 + 32 >> 3] = $0;
label$20 : {
if ($0 != 0) {
$3 = 2;
break label$20;
}
$5 = 1;
while (1) {
$3 = $5;
$5 = $3 - 1 | 0;
if (HEAPF64[($6 + 16 | 0) + ($3 << 3) >> 3] == 0) {
continue;
}
break;
}
}
$3 = __rem_pio2_large($6 + 16 | 0, $6, ($7 >>> 20 | 0) - 1046 | 0, $3 + 1 | 0, 1);
$0 = HEAPF64[$6 >> 3];
if (($4 | 0) < -1 ? 1 : ($4 | 0) <= -1) {
HEAPF64[$1 >> 3] = -$0;
HEAPF64[$1 + 8 >> 3] = -HEAPF64[$6 + 8 >> 3];
$3 = 0 - $3 | 0;
break label$1;
}
HEAPF64[$1 >> 3] = $0;
HEAPF64[$1 + 8 >> 3] = HEAPF64[$6 + 8 >> 3];
}
__stack_pointer = $6 + 48 | 0;
return $3;
}
function silk_stereo_find_predictor($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
$13 = __stack_pointer - 16 | 0;
__stack_pointer = $13;
silk_sum_sqr_shift($13 + 4 | 0, $13 + 12 | 0, $1, $4);
silk_sum_sqr_shift($13, $13 + 8 | 0, $2, $4);
$6 = HEAP32[$13 + 12 >> 2];
$11 = HEAP32[$13 + 8 >> 2];
$9 = ($6 | 0) > ($11 | 0) ? $6 : $11;
$9 = $9 + ($9 & 1) | 0;
HEAP32[$13 >> 2] = HEAP32[$13 >> 2] >> $9 - $11;
$6 = HEAP32[$13 + 4 >> 2] >> $9 - $6;
HEAP32[$13 + 4 >> 2] = ($6 | 0) > 1 ? $6 : 1;
$1 = silk_inner_prod_aligned_scale($1, $2, $9, $4);
$4 = $1 >> 31;
$11 = Math_clz32($4 ^ $1 + $4);
$6 = $1 << $11 - 1;
$15 = $6;
$4 = HEAP32[$13 + 4 >> 2];
$2 = $4 >> 31;
$8 = Math_clz32($2 ^ $2 + $4);
$12 = $4 << $8 - 1;
$2 = 536870911 / ($12 >> 16) << 16 >> 16;
$6 = (Math_imul($2, $6 & 65535) >> 16) + Math_imul($6 >> 16, $2) | 0;
$10 = $6 >> 31;
$7 = $10;
$10 = $12 >> 31;
$14 = $10;
$10 = $7;
$7 = $14;
$7 = __wasm_i64_mul($6, $10, $12, $7);
$14 = $7;
$10 = i64toi32_i32$HIGH_BITS;
$12 = $15 - ((($10 & 536870911) << 3 | $14 >>> 29) & -8) | 0;
$2 = (Math_imul($12 >> 16, $2) + $6 | 0) + (Math_imul($12 & 65535, $2) >> 16) | 0;
$7 = $5;
$6 = ($11 - $8 | 0) + 16 | 0;
label$1 : {
if (($6 | 0) <= -1) {
$6 = 0 - $6 | 0;
$11 = 2147483647 >>> $6 | 0;
$8 = -2147483648 >> $6;
$2 = (($2 | 0) > ($11 | 0) ? $11 : ($2 | 0) < ($8 | 0) ? $8 : $2) << $6;
break label$1;
}
$2 = ($6 | 0) < 32 ? $2 >> $6 : 0;
}
$2 = ($2 | 0) > -16384 ? $2 : -16384;
$2 = ($2 | 0) < 16384 ? $2 : 16384;
$11 = (Math_imul($2, $2 & 65535) >> 16) + Math_imul($2 >> 16, $2) | 0;
$6 = $11 >> 31;
$6 = $6 ^ $6 + $11;
$7 = ($5 | 0) > ($6 | 0) ? $7 : $6;
$5 = $9 >> 1;
$8 = 0;
$6 = HEAP32[$3 >> 2];
$14 = $3;
$15 = $6;
label$3 : {
if (($4 | 0) <= 0) {
$9 = $7 << 16 >> 16;
$10 = Math_imul($9, 0 - $6 >> 16);
break label$3;
}
$8 = Math_clz32($4);
$10 = 24 - $8 | 0;
$17 = 0 - $10 | 0;
$12 = ($8 & 1 ? 32768 : 46214) >>> ($8 >>> 1) | 0;
$16 = $12;
$9 = $4;
label$5 : {
if (!$10) {
break label$5;
}
$9 = $4 << $17 | $4 >>> 56 - $8;
if ($4 >>> 0 <= 127) {
break label$5;
}
$9 = $4 << $8 + 8 | $4 >>> $10;
}
$16 = ((Math_imul(Math_imul($9 & 127, 13959168) >>> 16 | 0, $16) >>> 16 | 0) + $12 << $5) - $6 >> 16;
$9 = $7 << 16 >> 16;
$7 = $4;
label$6 : {
if (!$10) {
break label$6;
}
$7 = $4 << $17 | $4 >>> 56 - $8;
if ($4 >>> 0 <= 127) {
break label$6;
}
$7 = $4 << $8 + 8 | $4 >>> $10;
}
$8 = (Math_imul(Math_imul($7 & 127, 13959168) >>> 16 | 0, $12) >>> 16 | 0) + $12 | 0;
$10 = Math_imul($9, $16);
}
$6 = ($15 + $10 | 0) + (Math_imul(($8 << $5) - $6 & 65535, $9) >> 16) | 0;
HEAP32[$14 >> 2] = $6;
$7 = HEAP32[$13 >> 2] - (Math_imul($1 >> 16, $2) + (Math_imul($1 & 65535, $2) >> 16) << 4) | 0;
$1 = $11 << 16 >> 16;
$4 = $7 + ((Math_imul($1, $4 & 65535) >> 16) + Math_imul($4 >> 16, $1) << 6) | 0;
HEAP32[$13 >> 2] = $4;
$14 = $3;
$1 = HEAP32[$3 + 4 >> 2];
$3 = $1;
label$7 : {
if (($4 | 0) < 1) {
$11 = 0;
break label$7;
}
$11 = Math_clz32($4);
$12 = 24 - $11 | 0;
$7 = 0 - $12 | 0;
$8 = $4;
label$9 : {
if (!$12) {
break label$9;
}
$8 = $4 << $7 | $4 >>> 56 - $11;
if ($4 >>> 0 <= 127) {
break label$9;
}
$8 = $4 << $11 + 8 | $4 >>> $12;
}
$10 = Math_imul($8 & 127, 13959168) >>> 16 | 0;
$8 = ($11 & 1 ? 32768 : 46214) >>> ($11 >>> 1) | 0;
$10 = $8 + (Math_imul($8, $10) >>> 16 | 0) | 0;
label$10 : {
if (!$12) {
break label$10;
}
if ($4 >>> 0 <= 127) {
$4 = $4 << $7 | $4 >>> 56 - $11;
break label$10;
}
$4 = $4 << $11 + 8 | $4 >>> $12;
}
$18 = (Math_imul(Math_imul($4 & 127, 13959168) >>> 16 | 0, $8) >>> 16 | 0) + $8 | 0;
$11 = $10 << $5;
}
$4 = $18;
$4 = ($3 + Math_imul($11 - $1 >> 16, $9) | 0) + (Math_imul(($4 << $5) - $1 & 65535, $9) >> 16) | 0;
HEAP32[$14 + 4 >> 2] = $4;
$3 = $4 >> 31;
$1 = Math_clz32($3 ^ $3 + $4);
$3 = $4 << $1 - 1;
$8 = $3;
$4 = ($6 | 0) > 1 ? $6 : 1;
$9 = Math_clz32($4);
$5 = $4 << $9 - 1;
$4 = 536870911 / ($5 >> 16) << 16 >> 16;
$3 = (Math_imul($4, $3 & 65535) >> 16) + Math_imul($3 >> 16, $4) | 0;
$7 = $3 >> 31;
$10 = $7;
$7 = $5 >> 31;
$14 = $7;
$7 = $10;
$14 = __wasm_i64_mul($3, $7, $5, $14);
$10 = $14;
$7 = i64toi32_i32$HIGH_BITS;
$5 = $8 - ((($7 & 536870911) << 3 | $10 >>> 29) & -8) | 0;
$4 = (Math_imul($5 >> 16, $4) + $3 | 0) + (Math_imul($5 & 65535, $4) >> 16) | 0;
$3 = ($1 - $9 | 0) + 15 | 0;
label$12 : {
if (($3 | 0) <= -1) {
$3 = 0 - $3 | 0;
$1 = 2147483647 >>> $3 | 0;
$9 = -2147483648 >> $3;
$4 = (($1 | 0) < ($4 | 0) ? $1 : ($4 | 0) < ($9 | 0) ? $9 : $4) << $3;
break label$12;
}
$4 = ($3 | 0) < 32 ? $4 >> $3 : 0;
}
$4 = ($4 | 0) > 0 ? $4 : 0;
HEAP32[$0 >> 2] = ($4 | 0) < 32767 ? $4 : 32767;
__stack_pointer = $13 + 16 | 0;
return $2;
}
function transient_analysis($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = Math_fround(0), $9 = Math_fround(0), $10 = 0, $11 = 0, $12 = 0, $13 = Math_fround(0), $14 = Math_fround(0), $15 = Math_fround(0), $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = Math_fround(0), $21 = 0, $22 = Math_fround(0), $23 = 0, $24 = 0, $25 = Math_fround(0), $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
$10 = __stack_pointer;
$21 = $10;
$10 = $10 - (($1 << 2) + 15 & -16) | 0;
__stack_pointer = $10;
HEAP32[$6 >> 2] = 0;
$16 = ($1 | 0) / 2 | 0;
label$1 : {
label$2 : {
label$3 : {
if (($2 | 0) < 1) {
break label$3;
}
$22 = $5 ? Math_fround(.03125) : Math_fround(.0625);
$23 = $16 - 5 | 0;
$24 = Math_imul($16, 6) - 102 | 0;
$25 = Math_fround($16 | 0);
$26 = +($16 | 0);
$27 = ($1 | 0) < 1;
$28 = $10;
$29 = $10;
$30 = $10;
$31 = $10;
$32 = $10;
$33 = ($1 | 0) < 36;
while (1) {
if (!$27) {
$12 = Math_imul($1, $18);
$13 = Math_fround(0);
$7 = 0;
$14 = Math_fround(0);
while (1) {
$9 = HEAPF32[($7 + $12 << 2) + $0 >> 2];
$8 = Math_fround($13 + $9);
HEAPF32[($7 << 2) + $10 >> 2] = $8;
$13 = Math_fround(Math_fround($14 + $8) - Math_fround($9 + $9));
$14 = Math_fround($9 + Math_fround($8 * Math_fround(-.5)));
$7 = $7 + 1 | 0;
if (($7 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
HEAP32[$10 >> 2] = 0;
HEAP32[$10 + 4 >> 2] = 0;
$7 = $28;
HEAP32[$7 + 40 >> 2] = 0;
HEAP32[$7 + 44 >> 2] = 0;
HEAP32[$29 + 32 >> 2] = 0;
HEAP32[$7 + 36 >> 2] = 0;
HEAP32[$30 + 24 >> 2] = 0;
HEAP32[$7 + 28 >> 2] = 0;
HEAP32[$31 + 16 >> 2] = 0;
HEAP32[$7 + 20 >> 2] = 0;
HEAP32[$32 + 8 >> 2] = 0;
HEAP32[$7 + 12 >> 2] = 0;
$7 = 0;
$13 = Math_fround(0);
$9 = Math_fround(0);
$20 = Math_fround(0);
$8 = Math_fround(0);
$11 = ($1 | 0) > 1;
$15 = $8;
label$7 : {
if (!$11) {
break label$7;
}
while (1) {
$12 = $7 << 3;
$8 = HEAPF32[$12 + $10 >> 2];
$15 = Math_fround($8 * $8);
$8 = HEAPF32[($12 | 4) + $10 >> 2];
$8 = Math_fround($15 + Math_fround($8 * $8));
$9 = Math_fround($9 + Math_fround($22 * Math_fround($8 - $9)));
HEAPF32[($7 << 2) + $10 >> 2] = $9;
$13 = Math_fround($13 + $8);
$7 = $7 + 1 | 0;
if (($16 | 0) != ($7 | 0)) {
continue;
}
break;
}
$7 = $16;
$14 = Math_fround(0);
$20 = $13;
$8 = Math_fround(0);
$15 = $8;
if (!$11) {
break label$7;
}
while (1) {
$12 = $7 - 1 | 0;
$11 = ($12 << 2) + $10 | 0;
$8 = Math_fround($8 + Math_fround(Math_fround(HEAPF32[$11 >> 2] - $8) * Math_fround(.125)));
HEAPF32[$11 >> 2] = $8;
$14 = $8 < $14 ? $14 : $8;
$11 = ($7 | 0) > 1;
$7 = $12;
if ($11) {
continue;
}
break;
}
$15 = $14;
}
$8 = $15;
$9 = $20;
$13 = HEAPF32[$10 >> 2];
if ($13 != $13) {
break label$2;
}
$9 = Math_fround($25 / Math_fround(Math_fround(Math_sqrt(+Math_fround($9 * $8) * .5 * $26)) + Math_fround(1.0000000036274937e-15)));
if ($9 != $9) {
break label$1;
}
$12 = 0;
if (!$33) {
$8 = Math_fround($9 * Math_fround(64));
$7 = 12;
while (1) {
$9 = Math_fround(Math_floor(Math_fround($8 * Math_fround(HEAPF32[($7 << 2) + $10 >> 2] + Math_fround(1.0000000036274937e-15)))));
$11 = Math_fround(Math_min($9, Math_fround(127))) < Math_fround(0);
$17 = $11 ? 0 : 127;
$17 = $9 > Math_fround(127) ? $17 : $11 ? $17 : +$9;
label$12 : {
if (Math_abs($17) < 2147483648) {
$11 = ~~$17;
break label$12;
}
$11 = -2147483648;
}
$12 = HEAPU8[$11 + 42832 | 0] + $12 | 0;
$7 = $7 + 4 | 0;
if (($23 | 0) > ($7 | 0)) {
continue;
}
break;
}
}
$7 = ($12 << 8) / ($24 | 0) | 0;
if (($19 | 0) < ($7 | 0)) {
HEAP32[$4 >> 2] = $18;
$19 = $7;
}
$18 = $18 + 1 | 0;
if (($18 | 0) != ($2 | 0)) {
continue;
}
break;
}
$7 = ($19 | 0) > 200;
if (!$5 | $19 - 201 >>> 0 > 398) {
break label$3;
}
HEAP32[$6 >> 2] = 1;
$7 = 0;
}
HEAPF32[$3 >> 2] = Math_sqrt(Math_max(+Math_fround(Math_fround(Math_min(Math_fround(Math_max(Math_fround(Math_fround(Math_sqrt(+(Math_imul($19, 27) | 0))) + Math_fround(-42)), Math_fround(0))), Math_fround(163))) * Math_fround(.006899999920278788)) + -.139, 0));
__stack_pointer = $21;
return $7;
}
celt_fatal(42960, 42508, 369);
abort();
}
celt_fatal(42998, 42508, 370);
abort();
}
function run_prefilter($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) {
var $12 = 0, $13 = Math_fround(0), $14 = 0, $15 = 0, $16 = 0, $17 = Math_fround(0), $18 = 0, $19 = Math_fround(0), $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = Math_fround(0), $27 = 0, $28 = 0, $29 = 0;
$12 = __stack_pointer - 16 | 0;
__stack_pointer = $12;
$21 = HEAP32[$0 >> 2];
$20 = HEAP32[$21 + 4 >> 2];
$15 = $4 + 1024 | 0;
$14 = $12 - ((Math_imul($15, $3) << 2) + 15 & -16) | 0;
$18 = $14;
__stack_pointer = $14;
$16 = $12;
HEAP32[$12 + 12 >> 2] = ($15 << 2) + $14;
HEAP32[$12 + 8 >> 2] = $14;
$23 = ($3 | 0) > 1 ? $3 : 1;
$22 = $4 << 2;
$24 = $4 + $20 | 0;
$14 = ($20 << 2) + $1 | 0;
$12 = 0;
while (1) {
memcpy(memcpy(HEAP32[($16 + 8 | 0) + ($12 << 2) >> 2], ($12 << 12) + $2 | 0, 4096) + 4096 | 0, (Math_imul($12, $24) << 2) + $14 | 0, $22);
$12 = $12 + 1 | 0;
if (($23 | 0) != ($12 | 0)) {
continue;
}
break;
}
label$2 : {
if ($9) {
$14 = $18;
$12 = $14 - (($15 << 1 & -4) + 15 & -16) | 0;
__stack_pointer = $12;
pitch_downsample($16 + 8 | 0, $12, $15, $3, HEAP32[$0 + 72 >> 2]);
pitch_search($12 + 2048 | 0, $12, $4, 979, $16 + 4 | 0, HEAP32[$0 + 72 >> 2]);
HEAP32[$16 + 4 >> 2] = 1024 - HEAP32[$16 + 4 >> 2];
$13 = remove_doubling($12, 1024, 15, $4, $16 + 4 | 0, HEAP32[$0 + 104 >> 2], HEAPF32[$0 + 108 >> 2], HEAP32[$0 + 72 >> 2]);
if (HEAP32[$16 + 4 >> 2] >= 1023) {
HEAP32[$16 + 4 >> 2] = 1022;
}
$13 = Math_fround($13 * Math_fround(.699999988079071));
$12 = HEAP32[$0 + 56 >> 2];
$13 = ($12 | 0) > 2 ? Math_fround($13 * Math_fround(.5)) : $13;
$13 = ($12 | 0) > 8 ? Math_fround(0) : ($12 | 0) > 4 ? Math_fround($13 * Math_fround(.5)) : $13;
break label$2;
}
HEAP32[$16 + 4 >> 2] = 15;
$13 = Math_fround(0);
}
$12 = HEAP32[$16 + 4 >> 2];
$3 = HEAP32[$0 + 104 >> 2];
$14 = $12 - $3 | 0;
$9 = $14;
$13 = HEAP32[$11 >> 2] ? Math_fround($13 * HEAPF32[$11 + 40 >> 2]) : $13;
$14 = $14 >> 31;
$17 = (Math_imul($14 ^ $14 + $9, 10) | 0) > ($12 | 0) ? Math_fround(.4000000059604645) : Math_fround(.20000000298023224);
$17 = ($10 | 0) < 25 ? Math_fround($17 + Math_fround(.10000000149011612)) : $17;
$19 = ($10 | 0) < 35 ? Math_fround($17 + Math_fround(.10000000149011612)) : $17;
$17 = HEAPF32[$0 + 108 >> 2];
$19 = $17 > Math_fround(.4000000059604645) ? Math_fround($19 + Math_fround(-.10000000149011612)) : $19;
$19 = $17 > Math_fround(.550000011920929) ? Math_fround($19 + Math_fround(-.10000000149011612)) : $19;
if (!($13 < ($19 > Math_fround(.20000000298023224) ? $19 : Math_fround(.20000000298023224)))) {
$27 = 1;
$13 = Math_fround(Math_floor(Math_fround(Math_fround(Math_fround((Math_fround(Math_abs(Math_fround($13 - $17))) < Math_fround(.10000000149011612) ? $17 : $13) * Math_fround(32)) / Math_fround(3)) + Math_fround(.5))));
label$8 : {
if (Math_fround(Math_abs($13)) < Math_fround(2147483648)) {
$12 = ~~$13;
break label$8;
}
$12 = -2147483648;
}
$12 = ($12 | 0) > 7 ? 7 : $12 - 1 | 0;
$25 = ($12 | 0) > 0 ? $12 : 0;
$26 = Math_fround(Math_fround($25 + 1 | 0) * Math_fround(.09375));
}
$28 = 4096 - $22 | 0;
$14 = $20 << 2;
$17 = Math_fround(-$26);
$9 = ($4 | 0) < 1025;
$29 = 0 - $4 << 2;
$12 = 0;
while (1) {
$15 = HEAP32[$21 + 44 >> 2];
HEAP32[$0 + 104 >> 2] = ($3 | 0) > 15 ? $3 : 15;
$10 = ((Math_imul($12, $20) << 2) + $0 | 0) + 244 | 0;
$3 = memcpy((Math_imul($12, $24) << 2) + $1 | 0, $10, $14);
$15 = $15 - $20 | 0;
if ($15) {
$11 = HEAP32[$0 + 104 >> 2];
$13 = Math_fround(-HEAPF32[$0 + 108 >> 2]);
$18 = HEAP32[$0 + 112 >> 2];
comb_filter($3 + $14 | 0, HEAP32[($16 + 8 | 0) + ($12 << 2) >> 2] + 4096 | 0, $11, $11, $15, $13, $13, $18, $18, 0, 0, HEAP32[$0 + 72 >> 2]);
}
$11 = $15 << 2;
$18 = ($16 + 8 | 0) + ($12 << 2) | 0;
comb_filter($11 + ($3 + $14 | 0) | 0, (HEAP32[$18 >> 2] + $11 | 0) + 4096 | 0, HEAP32[$0 + 104 >> 2], HEAP32[$16 + 4 >> 2], $4 - $15 | 0, Math_fround(-HEAPF32[$0 + 108 >> 2]), $17, HEAP32[$0 + 112 >> 2], $5, HEAP32[$21 + 60 >> 2], $20, HEAP32[$0 + 72 >> 2]);
$15 = $4 << 2;
memcpy($10, $15 + $3 | 0, $14);
$3 = ($12 << 12) + $2 | 0;
label$12 : {
if (!$9) {
memcpy($3, HEAP32[$18 >> 2] + $15 | 0, 4096);
break label$12;
}
memcpy((memmove($3, $3 + $15 | 0, $28) + $29 | 0) + 4096 | 0, HEAP32[$18 >> 2] + 4096 | 0, $22);
}
$12 = $12 + 1 | 0;
if (($23 | 0) != ($12 | 0)) {
$3 = HEAP32[$0 + 104 >> 2];
continue;
}
break;
}
HEAPF32[$7 >> 2] = $26;
HEAP32[$6 >> 2] = HEAP32[$16 + 4 >> 2];
HEAP32[$8 >> 2] = $25;
__stack_pointer = $16 + 16 | 0;
return $27;
}
function opus_repacketizer_out_range_impl($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0;
$7 = -1;
label$1 : {
if (($1 | 0) < 0 | ($1 | 0) >= ($2 | 0) | HEAP32[$0 + 4 >> 2] < ($2 | 0)) {
break label$1;
}
$10 = $2 - $1 | 0;
$11 = (($1 << 1) + $0 | 0) + 200 | 0;
$8 = $5 ? HEAP16[(($10 << 1) + $11 | 0) - 2 >> 1] > 251 ? 2 : 1 : 0;
label$4 : {
label$5 : {
label$6 : {
label$7 : {
switch ($10 - 1 | 0) {
case 0:
$7 = -2;
$8 = (HEAP16[$11 >> 1] + $8 | 0) + 1 | 0;
if (($8 | 0) > ($4 | 0)) {
break label$1;
}
HEAP8[$3 | 0] = HEAPU8[$0 | 0] & 252;
$7 = $3 + 1 | 0;
break label$6;
case 1:
$7 = HEAPU16[$11 >> 1];
$9 = $7 << 16 >> 16;
$12 = HEAPU16[$11 + 2 >> 1];
if (($12 | 0) == ($7 | 0)) {
$7 = -2;
$8 = ($9 << 1 | 1) + $8 | 0;
if (($8 | 0) > ($4 | 0)) {
break label$1;
}
HEAP8[$3 | 0] = HEAPU8[$0 | 0] & 252 | 1;
$7 = $3 + 1 | 0;
break label$6;
}
$7 = -2;
$8 = (((($12 << 16 >> 16) + $8 | 0) + $9 | 0) + (($9 | 0) > 251) | 0) + 2 | 0;
if (($8 | 0) > ($4 | 0)) {
break label$1;
}
HEAP8[$3 | 0] = HEAPU8[$0 | 0] & 252 | 2;
$7 = $3 + 1 | 0;
$7 = $7 + encode_size(HEAP16[$11 >> 1], $7) | 0;
break label$6;
default:
break label$7;
}
}
$7 = $3;
if (($10 | 0) > 2) {
break label$5;
}
}
if (!$6 | ($4 | 0) <= ($8 | 0)) {
break label$4;
}
}
$12 = $5 ? HEAP16[(($10 << 1) + $11 | 0) - 2 >> 1] > 251 ? 4 : 3 : 2;
$7 = 1;
$9 = HEAP16[$11 >> 1];
label$13 : {
label$14 : {
if (($10 | 0) <= 1) {
break label$14;
}
$8 = $9 & 65535;
while (1) {
if (HEAPU16[($7 << 1) + $11 >> 1] == ($8 | 0)) {
$7 = $7 + 1 | 0;
if (($10 | 0) != ($7 | 0)) {
continue;
}
break label$14;
}
break;
}
$7 = 1;
$8 = ($9 + $12 | 0) + (($9 | 0) > 251 ? 2 : 1) | 0;
$13 = $10 - 1 | 0;
$12 = ($1 ^ -1) + $2 | 0;
if (($12 | 0) >= 2) {
while (1) {
$9 = HEAP16[($7 << 1) + $11 >> 1];
$8 = ($9 + $8 | 0) + (($9 | 0) > 251 ? 2 : 1) | 0;
$7 = $7 + 1 | 0;
if (($12 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
$7 = -2;
$8 = HEAP16[($13 << 1) + $11 >> 1] + $8 | 0;
if (($8 | 0) > ($4 | 0)) {
break label$1;
}
$7 = HEAPU8[$0 | 0];
$9 = $10 | -128;
HEAP8[$3 + 1 | 0] = $9;
HEAP8[$3 | 0] = $7 | 3;
$7 = 0;
break label$13;
}
$7 = -2;
$8 = Math_imul($9, $10) + $12 | 0;
if (($8 | 0) > ($4 | 0)) {
break label$1;
}
$7 = HEAPU8[$0 | 0];
HEAP8[$3 + 1 | 0] = $10;
HEAP8[$3 | 0] = $7 | 3;
$9 = $10;
$7 = 1;
}
$13 = $7;
$7 = $3 + 2 | 0;
label$19 : {
if (!$6) {
break label$19;
}
$12 = $4 - $8 | 0;
if (!$12) {
break label$19;
}
HEAP8[$3 + 1 | 0] = $9 | 64;
$14 = ($12 - 1 | 0) / 255 | 0;
if (($12 | 0) >= 256) {
$9 = ($14 | 0) > 1 ? $14 : 1;
memset($7, 255, $9);
$8 = 0;
while (1) {
$7 = $7 + 1 | 0;
$8 = $8 + 1 | 0;
if (($9 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
HEAP8[$7 | 0] = (Math_imul($14, -255) + $12 | 0) - 1;
$7 = $7 + 1 | 0;
$8 = $4;
}
if (($10 | 0) < 2 | $13) {
break label$4;
}
$2 = ($1 ^ -1) + $2 | 0;
$9 = ($2 | 0) > 1 ? $2 : 1;
$2 = 0;
while (1) {
$7 = encode_size(HEAP16[($2 << 1) + $11 >> 1], $7) + $7 | 0;
$2 = $2 + 1 | 0;
if (($9 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
if ($5) {
$7 = encode_size(HEAP16[(($10 << 1) + $11 | 0) - 2 >> 1], $7) + $7 | 0;
}
if (($10 | 0) >= 1) {
$0 = (($1 << 2) + $0 | 0) + 8 | 0;
$1 = 0;
while (1) {
$2 = ($1 << 1) + $11 | 0;
$7 = memmove($7, HEAP32[($1 << 2) + $0 >> 2], HEAP16[$2 >> 1]) + HEAP16[$2 >> 1] | 0;
$1 = $1 + 1 | 0;
if (($10 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
if (!(!$6 | $3 + $4 >>> 0 <= $7 >>> 0)) {
memset($7, 0, ($4 - $7 | 0) + $3 | 0);
}
$7 = $8;
}
return $7;
}
function try_realloc_chunk($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
$6 = HEAP32[$0 + 4 >> 2];
$3 = $6 & 3;
$5 = $6 & -8;
$2 = $5 + $0 | 0;
label$2 : {
if (!$3) {
$3 = 0;
if ($1 >>> 0 < 256) {
break label$2;
}
if ($1 + 4 >>> 0 <= $5 >>> 0) {
$3 = $0;
if ($5 - $1 >>> 0 <= HEAP32[13352] << 1 >>> 0) {
break label$2;
}
}
return 0;
}
label$5 : {
if ($1 >>> 0 <= $5 >>> 0) {
$3 = $5 - $1 | 0;
if ($3 >>> 0 < 16) {
break label$5;
}
HEAP32[$0 + 4 >> 2] = $6 & 1 | $1 | 2;
$1 = $0 + $1 | 0;
HEAP32[$1 + 4 >> 2] = $3 | 3;
HEAP32[$2 + 4 >> 2] = HEAP32[$2 + 4 >> 2] | 1;
dispose_chunk($1, $3);
break label$5;
}
$3 = 0;
if (HEAP32[13238] == ($2 | 0)) {
$2 = HEAP32[13235] + $5 | 0;
if ($2 >>> 0 <= $1 >>> 0) {
break label$2;
}
HEAP32[$0 + 4 >> 2] = $6 & 1 | $1 | 2;
$3 = $0 + $1 | 0;
$1 = $2 - $1 | 0;
HEAP32[$3 + 4 >> 2] = $1 | 1;
HEAP32[13235] = $1;
HEAP32[13238] = $3;
break label$5;
}
if (HEAP32[13237] == ($2 | 0)) {
$2 = HEAP32[13234] + $5 | 0;
if ($2 >>> 0 < $1 >>> 0) {
break label$2;
}
$3 = $2 - $1 | 0;
label$9 : {
if ($3 >>> 0 >= 16) {
HEAP32[$0 + 4 >> 2] = $6 & 1 | $1 | 2;
$1 = $0 + $1 | 0;
HEAP32[$1 + 4 >> 2] = $3 | 1;
$2 = $0 + $2 | 0;
HEAP32[$2 >> 2] = $3;
HEAP32[$2 + 4 >> 2] = HEAP32[$2 + 4 >> 2] & -2;
break label$9;
}
HEAP32[$0 + 4 >> 2] = $6 & 1 | $2 | 2;
$1 = $0 + $2 | 0;
HEAP32[$1 + 4 >> 2] = HEAP32[$1 + 4 >> 2] | 1;
$3 = 0;
$1 = 0;
}
HEAP32[13237] = $1;
HEAP32[13234] = $3;
break label$5;
}
$4 = HEAP32[$2 + 4 >> 2];
if ($4 & 2) {
break label$2;
}
$7 = ($4 & -8) + $5 | 0;
if ($7 >>> 0 < $1 >>> 0) {
break label$2;
}
$9 = $7 - $1 | 0;
label$11 : {
if ($4 >>> 0 <= 255) {
$3 = HEAP32[$2 + 12 >> 2];
$2 = HEAP32[$2 + 8 >> 2];
$4 = $4 >>> 3 | 0;
$5 = ($4 << 3) + 52968 | 0;
if (($2 | 0) == ($3 | 0)) {
HEAP32[13232] = HEAP32[13232] & __wasm_rotl_i32(-2, $4);
break label$11;
}
HEAP32[$2 + 12 >> 2] = $3;
HEAP32[$3 + 8 >> 2] = $2;
break label$11;
}
$8 = HEAP32[$2 + 24 >> 2];
$4 = HEAP32[$2 + 12 >> 2];
label$14 : {
if (($4 | 0) != ($2 | 0)) {
$3 = HEAP32[$2 + 8 >> 2];
HEAP32[$3 + 12 >> 2] = $4;
HEAP32[$4 + 8 >> 2] = $3;
break label$14;
}
label$17 : {
$3 = $2 + 20 | 0;
$5 = HEAP32[$3 >> 2];
if ($5) {
break label$17;
}
$3 = $2 + 16 | 0;
$5 = HEAP32[$3 >> 2];
if ($5) {
break label$17;
}
$4 = 0;
break label$14;
}
while (1) {
$10 = $3;
$4 = $5;
$3 = $4 + 20 | 0;
$5 = HEAP32[$3 >> 2];
if ($5) {
continue;
}
$3 = $4 + 16 | 0;
$5 = HEAP32[$4 + 16 >> 2];
if ($5) {
continue;
}
break;
}
HEAP32[$10 >> 2] = 0;
}
if (!$8) {
break label$11;
}
$5 = HEAP32[$2 + 28 >> 2];
$3 = ($5 << 2) + 53232 | 0;
label$19 : {
if (HEAP32[$3 >> 2] == ($2 | 0)) {
HEAP32[$3 >> 2] = $4;
if ($4) {
break label$19;
}
HEAP32[13233] = HEAP32[13233] & __wasm_rotl_i32(-2, $5);
break label$11;
}
HEAP32[(HEAP32[$8 + 16 >> 2] == ($2 | 0) ? 16 : 20) + $8 >> 2] = $4;
if (!$4) {
break label$11;
}
}
HEAP32[$4 + 24 >> 2] = $8;
$3 = HEAP32[$2 + 16 >> 2];
if ($3) {
HEAP32[$4 + 16 >> 2] = $3;
HEAP32[$3 + 24 >> 2] = $4;
}
$2 = HEAP32[$2 + 20 >> 2];
if (!$2) {
break label$11;
}
HEAP32[$4 + 20 >> 2] = $2;
HEAP32[$2 + 24 >> 2] = $4;
}
if ($9 >>> 0 <= 15) {
HEAP32[$0 + 4 >> 2] = $6 & 1 | $7 | 2;
$1 = $0 + $7 | 0;
HEAP32[$1 + 4 >> 2] = HEAP32[$1 + 4 >> 2] | 1;
break label$5;
}
HEAP32[$0 + 4 >> 2] = $6 & 1 | $1 | 2;
$1 = $0 + $1 | 0;
HEAP32[$1 + 4 >> 2] = $9 | 3;
$2 = $0 + $7 | 0;
HEAP32[$2 + 4 >> 2] = HEAP32[$2 + 4 >> 2] | 1;
dispose_chunk($1, $9);
}
$3 = $0;
}
return $3;
}
function silk_A2NLSF($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
$6 = __stack_pointer - 144 | 0;
__stack_pointer = $6;
HEAP32[$6 + 12 >> 2] = $6 + 16;
HEAP32[$6 + 8 >> 2] = $6 + 80;
$10 = $2 >> 1;
silk_A2NLSF_init($1, $6 + 80 | 0, $6 + 16 | 0, $10);
$13 = $6 + 80 | 0;
$15 = HEAP16[7560];
$3 = silk_A2NLSF_eval_poly($6 + 80 | 0, $15, $10);
if (($3 | 0) <= -1) {
HEAP16[$0 >> 1] = 0;
$13 = $6 + 16 | 0;
$3 = silk_A2NLSF_eval_poly($6 + 16 | 0, $15, $10);
$14 = 1;
}
label$2 : while (1) {
$8 = 1;
$9 = $15;
while (1) {
label$4 : {
$19 = $8 << 1;
$4 = HEAP16[$19 + 15120 >> 1];
$16 = silk_A2NLSF_eval_poly($13, $4, $10);
label$5 : {
label$6 : {
$7 = ($3 | 0) > 0;
if (!(($3 | 0) < 0 | (0 - $5 | 0) < ($16 | 0) ? !(($5 | 0) <= ($16 | 0) ? !$7 : 0) : 0)) {
$5 = $4 + $9 | 0;
$11 = ($5 >> 1) + ($5 & 1) | 0;
$12 = silk_A2NLSF_eval_poly($13, $11, $10);
label$9 : {
label$10 : {
if ($7) {
break label$10;
}
$5 = -256;
if (($12 | 0) <= -1) {
break label$10;
}
$7 = $11;
$17 = $12;
break label$9;
}
$5 = ($12 | 0) < 1 & ($3 | 0) > -1;
$17 = $5 ? $12 : $16;
$3 = $5 ? $3 : $12;
$7 = $5 ? $11 : $4;
$9 = $5 ? $9 : $11;
$5 = $5 ? -256 : -128;
}
$4 = $7 + $9 | 0;
$12 = ($4 >> 1) + ($4 & 1) | 0;
$4 = silk_A2NLSF_eval_poly($13, $12, $10);
if (($4 | 0) <= -1 | ($3 | 0) > 0) {
break label$6;
}
$17 = $4;
$7 = $12;
break label$5;
}
$7 = ($8 | 0) < 128;
$5 = 0;
$9 = $4;
$3 = $16;
$8 = $8 + 1 | 0;
if ($7) {
continue;
}
if ($18 >>> 0 >= 16) {
$3 = 32768 / ($2 + 1 | 0) | 0;
HEAP16[$0 >> 1] = $3;
$8 = 2;
if (($2 | 0) < 2) {
break label$4;
}
$3 = $3 << 1;
HEAP16[$0 + 2 >> 1] = $3;
if (($2 | 0) == 2) {
break label$4;
}
while (1) {
$3 = HEAPU16[$0 >> 1] + $3 | 0;
HEAP16[($8 << 1) + $0 >> 1] = $3;
$8 = $8 + 1 | 0;
if (($8 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$4;
}
silk_bwexpander_32($1, $2, (-2 << $18) + 65536 | 0);
silk_A2NLSF_init($1, $6 + 80 | 0, $6 + 16 | 0, $10);
$14 = 0;
$13 = $6 + 80 | 0;
$8 = $18 + 1 | 0;
$18 = $8;
$3 = silk_A2NLSF_eval_poly($6 + 80 | 0, $15, $10);
if (($3 | 0) > -1) {
continue label$2;
}
HEAP16[$0 >> 1] = 0;
$14 = 1;
$13 = $6 + 16 | 0;
$3 = silk_A2NLSF_eval_poly($6 + 16 | 0, $15, $10);
$18 = $8;
continue label$2;
}
$11 = ($4 | 0) < 1 & ($3 | 0) > -1;
$17 = $11 ? $4 : $17;
$3 = $11 ? $3 : $4;
$9 = $11 ? $9 : $12;
$5 = $11 ? $5 : $5 | 64;
$7 = $11 ? $12 : $7;
}
$4 = $9 + $7 | 0;
$4 = silk_A2NLSF_eval_poly($13, ($4 >> 1) + ($4 & 1) | 0, $10);
label$13 : {
if (!(($4 | 0) <= -1 | ($3 | 0) > 0)) {
$7 = $4;
break label$13;
}
$9 = ($4 | 0) < 1 & ($3 | 0) > -1;
$7 = $9 ? $4 : $17;
$3 = $9 ? $3 : $4;
$5 = $9 ? $5 : $5 + 32 | 0;
}
$4 = $3 - $7 | 0;
$7 = $3 >> 31;
label$15 : {
if (($7 ^ $3 + $7) >= 65536) {
$5 = (($3 | 0) / ($4 >> 5) | 0) + $5 | 0;
break label$15;
}
if (!$4) {
break label$15;
}
$5 = ((($3 << 5) + ($4 >> 1) | 0) / ($4 | 0) | 0) + $5 | 0;
}
$3 = ($8 << 8) + $5 | 0;
HEAP16[($14 << 1) + $0 >> 1] = ($3 | 0) < 32767 ? $3 : 32767;
$14 = $14 + 1 | 0;
if (($14 | 0) >= ($2 | 0)) {
break label$4;
}
$5 = !$16;
$3 = 4096 - ($14 << 12 & 8192) | 0;
$9 = HEAP16[$19 + 15118 >> 1];
$13 = HEAP32[($6 + 8 | 0) + (($14 & 1) << 2) >> 2];
continue;
}
break;
}
break;
}
__stack_pointer = $6 + 144 | 0;
}
function ec_enc_done($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
$2 = HEAP32[$0 + 28 >> 2];
$4 = Math_clz32($2);
$1 = 2147483647 >>> $4 | 0;
$3 = HEAP32[$0 + 32 >> 2];
$5 = $1 + $3 & -2147483648 >> $4;
label$1 : {
label$2 : {
if ($2 + $3 >>> 0 <= ($1 | $5) >>> 0) {
$1 = $1 >>> 1 | 0;
$5 = $3 + $1 & ($1 ^ -1);
$4 = $4 + 1 | 0;
break label$2;
}
if (!$4) {
break label$1;
}
}
$6 = $4;
while (1) {
$7 = $5 >>> 23 | 0;
label$5 : {
if (($7 | 0) != 255) {
$3 = $5 >>> 31 | 0;
$2 = HEAP32[$0 + 40 >> 2];
if (($2 | 0) >= 0) {
$1 = -1;
$4 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $4 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $4 + 1;
HEAP8[HEAP32[$0 >> 2] + $4 | 0] = $2 + $3;
$1 = 0;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $1;
}
$1 = HEAP32[$0 + 36 >> 2];
if ($1) {
$4 = $3 - 1 | 0;
while (1) {
$3 = -1;
$2 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $2 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $2 + 1;
HEAP8[HEAP32[$0 >> 2] + $2 | 0] = $4;
$3 = 0;
$1 = HEAP32[$0 + 36 >> 2];
}
$1 = $1 - 1 | 0;
HEAP32[$0 + 36 >> 2] = $1;
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $3;
if ($1) {
continue;
}
break;
}
}
HEAP32[$0 + 40 >> 2] = $7 & 255;
break label$5;
}
HEAP32[$0 + 36 >> 2] = HEAP32[$0 + 36 >> 2] + 1;
}
$5 = $5 << 8 & 2147483392;
$1 = ($6 | 0) > 8;
$4 = $6 - 8 | 0;
$6 = $4;
if ($1) {
continue;
}
break;
}
}
$1 = -1;
$3 = HEAP32[$0 + 40 >> 2];
label$12 : {
label$13 : {
label$14 : {
if (($3 | 0) <= -1) {
$1 = HEAP32[$0 + 36 >> 2];
if ($1) {
break label$14;
}
break label$12;
}
$2 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $2 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $2 + 1;
HEAP8[HEAP32[$0 >> 2] + $2 | 0] = $3;
$1 = 0;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $1;
$1 = HEAP32[$0 + 36 >> 2];
if (!$1) {
break label$13;
}
}
while (1) {
$3 = -1;
$2 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $2 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $2 + 1;
HEAP8[HEAP32[$0 >> 2] + $2 | 0] = 255;
$3 = 0;
$1 = HEAP32[$0 + 36 >> 2];
}
$1 = $1 - 1 | 0;
HEAP32[$0 + 36 >> 2] = $1;
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $3;
if ($1) {
continue;
}
break;
}
}
HEAP32[$0 + 40 >> 2] = 0;
}
$3 = HEAP32[$0 + 12 >> 2];
$5 = HEAP32[$0 + 16 >> 2];
label$19 : {
if (($5 | 0) <= 7) {
$6 = HEAP32[$0 + 44 >> 2];
break label$19;
}
$1 = $5;
while (1) {
$2 = -1;
$6 = HEAP32[$0 + 4 >> 2];
$5 = HEAP32[$0 + 8 >> 2];
if ($6 >>> 0 > $5 + HEAP32[$0 + 24 >> 2] >>> 0) {
$2 = $5 + 1 | 0;
HEAP32[$0 + 8 >> 2] = $2;
HEAP8[HEAP32[$0 >> 2] + ($6 - $2 | 0) | 0] = $3;
$2 = 0;
}
$6 = HEAP32[$0 + 44 >> 2] | $2;
HEAP32[$0 + 44 >> 2] = $6;
$3 = $3 >>> 8 | 0;
$2 = ($1 | 0) > 15;
$5 = $1 - 8 | 0;
$1 = $5;
if ($2) {
continue;
}
break;
}
}
label$23 : {
if ($6) {
break label$23;
}
$1 = HEAP32[$0 + 24 >> 2];
memset($1 + HEAP32[$0 >> 2] | 0, 0, (HEAP32[$0 + 4 >> 2] - $1 | 0) - HEAP32[$0 + 8 >> 2] | 0);
if (($5 | 0) < 1) {
break label$23;
}
$1 = HEAP32[$0 + 8 >> 2];
$2 = HEAP32[$0 + 4 >> 2];
if ($1 >>> 0 >= $2 >>> 0) {
HEAP32[$0 + 44 >> 2] = -1;
return;
}
$4 = 0 - $4 | 0;
if (!(HEAP32[$0 + 24 >> 2] + $1 >>> 0 < $2 >>> 0 | ($5 | 0) <= ($4 | 0))) {
HEAP32[$0 + 44 >> 2] = -1;
$3 = (-1 << $4 ^ -1) & $3;
}
$0 = HEAP32[$0 >> 2] + (($1 ^ -1) + $2 | 0) | 0;
HEAP8[$0 | 0] = HEAPU8[$0 | 0] | $3;
}
}
function silk_encode_indices($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
$7 = __stack_pointer - 48 | 0;
__stack_pointer = $7;
label$1 : {
label$2 : {
$2 = $3 ? (Math_imul($2, 36) + $0 | 0) + 6100 | 0 : $0 + 4736 | 0;
$5 = (HEAP8[$2 + 29 | 0] << 1) + HEAP8[$2 + 30 | 0] | 0;
if ($5 >>> 0 < 6) {
if (($5 | 0) <= 1 ? $3 : 0) {
break label$2;
}
label$4 : {
if (!(($5 | 0) < 2 ? !$3 : 0)) {
ec_enc_icdf($1, $5 - 2 | 0, 5829, 8);
break label$4;
}
ec_enc_icdf($1, $5, 5833, 8);
}
$3 = HEAP8[$2 | 0];
label$6 : {
if (($4 | 0) == 2) {
ec_enc_icdf($1, $3, 7328, 8);
break label$6;
}
ec_enc_icdf($1, $3 >> 3, (HEAP8[$2 + 29 | 0] << 3) + 7296 | 0, 8);
ec_enc_icdf($1, HEAPU8[$2 | 0] & 7, 5872, 8);
}
if (HEAP32[$0 + 4580 >> 2] >= 2) {
$3 = 1;
while (1) {
ec_enc_icdf($1, HEAP8[$2 + $3 | 0], 7328, 8);
$3 = $3 + 1 | 0;
if (($3 | 0) < HEAP32[$0 + 4580 >> 2]) {
continue;
}
break;
}
}
$3 = HEAP32[$0 + 4692 >> 2];
ec_enc_icdf($1, HEAP8[$2 + 8 | 0], HEAP32[$3 + 16 >> 2] + Math_imul(HEAP16[$3 >> 1], HEAP8[$2 + 29 | 0] >> 1) | 0, 8);
silk_NLSF_unpack($7 + 16 | 0, $7, HEAP32[$0 + 4692 >> 2], HEAP8[$2 + 8 | 0]);
$5 = HEAP32[$0 + 4692 >> 2];
$6 = HEAP16[$5 + 2 >> 1];
if (($6 | 0) != HEAP32[$0 + 4640 >> 2]) {
break label$1;
}
$3 = 0;
if (($6 | 0) > 0) {
while (1) {
$6 = $3;
$3 = $3 + 1 | 0;
$8 = $3 + $2 | 0;
$9 = HEAP8[$8 + 8 | 0];
label$12 : {
if (($9 | 0) >= 4) {
ec_enc_icdf($1, 8, HEAP32[$5 + 28 >> 2] + HEAP16[($7 + 16 | 0) + ($6 << 1) >> 1] | 0, 8);
ec_enc_icdf($1, HEAP8[$8 + 8 | 0] - 4 | 0, 5880, 8);
break label$12;
}
if (($9 | 0) <= -4) {
ec_enc_icdf($1, 0, HEAP32[$5 + 28 >> 2] + HEAP16[($7 + 16 | 0) + ($6 << 1) >> 1] | 0, 8);
ec_enc_icdf($1, -4 - HEAP8[$8 + 8 | 0] | 0, 5880, 8);
break label$12;
}
ec_enc_icdf($1, $9 + 4 | 0, HEAP32[$5 + 28 >> 2] + HEAP16[($7 + 16 | 0) + ($6 << 1) >> 1] | 0, 8);
}
$5 = HEAP32[$0 + 4692 >> 2];
if (HEAP16[$5 + 2 >> 1] > ($3 | 0)) {
continue;
}
break;
}
}
if (HEAP32[$0 + 4580 >> 2] == 4) {
ec_enc_icdf($1, HEAP8[$2 + 31 | 0], 5835, 8);
}
label$16 : {
if (HEAPU8[$2 + 29 | 0] != 2) {
break label$16;
}
label$17 : {
if (!(($4 | 0) != 2 | HEAP32[$0 + 5768 >> 2] != 2)) {
$3 = HEAP16[$2 + 26 >> 1] - HEAP16[$0 + 5772 >> 1] | 0;
$6 = $3 + 9 | 0;
$3 = $3 + 8 | 0;
ec_enc_icdf($1, $3 >>> 0 > 19 ? 0 : $6, 2080, 8);
if ($3 >>> 0 < 20) {
break label$17;
}
}
$3 = HEAP16[$2 + 26 >> 1];
$5 = HEAP32[$0 + 4576 >> 2] >> 1;
$6 = ($3 | 0) / ($5 | 0) | 0;
ec_enc_icdf($1, $6, 2048, 8);
ec_enc_icdf($1, $3 - Math_imul($6 << 16 >> 16, $5 << 16 >> 16) | 0, HEAP32[$0 + 4684 >> 2], 8);
}
HEAP16[$0 + 5772 >> 1] = HEAPU16[$2 + 26 >> 1];
ec_enc_icdf($1, HEAP8[$2 + 28 | 0], HEAP32[$0 + 4688 >> 2], 8);
ec_enc_icdf($1, HEAP8[$2 + 32 | 0], 7369, 8);
if (HEAP32[$0 + 4580 >> 2] >= 1) {
$3 = 0;
while (1) {
ec_enc_icdf($1, HEAP8[($2 + $3 | 0) + 4 | 0], HEAP32[(HEAP8[$2 + 32 | 0] << 2) + 7440 >> 2], 8);
$3 = $3 + 1 | 0;
if (($3 | 0) < HEAP32[$0 + 4580 >> 2]) {
continue;
}
break;
}
}
if ($4) {
break label$16;
}
ec_enc_icdf($1, HEAP8[$2 + 33 | 0], 5826, 8);
}
HEAP32[$0 + 5768 >> 2] = HEAP8[$2 + 29 | 0];
ec_enc_icdf($1, HEAP8[$2 + 34 | 0], 5857, 8);
__stack_pointer = $7 + 48 | 0;
return;
}
celt_fatal(7919, 7971, 59);
abort();
}
celt_fatal(7993, 7971, 60);
abort();
}
celt_fatal(8047, 7971, 93);
abort();
}
function pitch_downsample($0, $1, $2, $3, $4) {
var $5 = Math_fround(0), $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = Math_fround(0), $11 = Math_fround(0), $12 = Math_fround(0), $13 = 0, $14 = 0, $15 = 0, $16 = Math_fround(0), $17 = Math_fround(0), $18 = Math_fround(0), $19 = Math_fround(0), $20 = Math_fround(0), $21 = Math_fround(0), $22 = Math_fround(0);
$6 = __stack_pointer - 48 | 0;
__stack_pointer = $6;
$13 = $2 >> 1;
$8 = HEAP32[$0 >> 2];
if (($2 | 0) >= 4) {
$15 = ($13 | 0) > 2 ? $13 : 2;
$7 = 1;
while (1) {
$9 = $7 << 3;
$14 = $9 + $8 | 0;
HEAPF32[($7 << 2) + $1 >> 2] = Math_fround(HEAPF32[$14 >> 2] + Math_fround(Math_fround(HEAPF32[$14 - 4 >> 2] + HEAPF32[($9 | 4) + $8 >> 2]) * Math_fround(.5))) * Math_fround(.5);
$7 = $7 + 1 | 0;
if (($15 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
$5 = Math_fround(Math_fround(Math_fround(HEAPF32[$8 + 4 >> 2] * Math_fround(.5)) + HEAPF32[$8 >> 2]) * Math_fround(.5));
HEAPF32[$1 >> 2] = $5;
if (($3 | 0) == 2) {
$8 = HEAP32[$0 + 4 >> 2];
if (($2 | 0) >= 4) {
$15 = ($13 | 0) > 2 ? $13 : 2;
$7 = 1;
while (1) {
$9 = ($7 << 2) + $1 | 0;
$0 = $9;
$5 = HEAPF32[$9 >> 2];
$9 = $7 << 3;
$14 = $9 + $8 | 0;
HEAPF32[$0 >> 2] = $5 + Math_fround(Math_fround(HEAPF32[$14 >> 2] + Math_fround(Math_fround(HEAPF32[$14 - 4 >> 2] + HEAPF32[($9 | 4) + $8 >> 2]) * Math_fround(.5))) * Math_fround(.5));
$7 = $7 + 1 | 0;
if (($15 | 0) != ($7 | 0)) {
continue;
}
break;
}
$5 = HEAPF32[$1 >> 2];
}
HEAPF32[$1 >> 2] = $5 + Math_fround(Math_fround(Math_fround(HEAPF32[$8 + 4 >> 2] * Math_fround(.5)) + HEAPF32[$8 >> 2]) * Math_fround(.5));
}
$7 = 0;
_celt_autocorr($1, $6 + 16 | 0, 0, 0, 4, $13, $4);
HEAPF32[$6 + 16 >> 2] = HEAPF32[$6 + 16 >> 2] * Math_fround(1.000100016593933);
$5 = HEAPF32[$6 + 20 >> 2];
HEAPF32[$6 + 20 >> 2] = $5 - Math_fround(Math_fround($5 * Math_fround(.00800000037997961)) * Math_fround(.00800000037997961));
$5 = HEAPF32[$6 + 24 >> 2];
HEAPF32[$6 + 24 >> 2] = $5 - Math_fround(Math_fround($5 * Math_fround(.01600000075995922)) * Math_fround(.01600000075995922));
$5 = HEAPF32[$6 + 28 >> 2];
HEAPF32[$6 + 28 >> 2] = $5 - Math_fround(Math_fround($5 * Math_fround(.024000000208616257)) * Math_fround(.024000000208616257));
$5 = HEAPF32[$6 + 32 >> 2];
HEAPF32[$6 + 32 >> 2] = $5 - Math_fround(Math_fround($5 * Math_fround(.03200000151991844)) * Math_fround(.03200000151991844));
_celt_lpc($6, $6 + 16 | 0, 4);
$5 = Math_fround(HEAPF32[$6 + 8 >> 2] * Math_fround(.7289999127388));
HEAPF32[$6 + 8 >> 2] = $5;
$10 = Math_fround(HEAPF32[$6 + 12 >> 2] * Math_fround(.6560999155044556));
HEAPF32[$6 + 12 >> 2] = $10;
$11 = Math_fround(HEAPF32[$6 + 4 >> 2] * Math_fround(.809999942779541));
HEAPF32[$6 + 4 >> 2] = $11;
$12 = Math_fround(HEAPF32[$6 >> 2] * Math_fround(.8999999761581421));
HEAPF32[$6 >> 2] = $12;
if (($2 | 0) >= 2) {
$17 = Math_fround($10 + Math_fround($5 * Math_fround(.800000011920929)));
$18 = Math_fround($5 + Math_fround($11 * Math_fround(.800000011920929)));
$19 = Math_fround($11 + Math_fround($12 * Math_fround(.800000011920929)));
$20 = Math_fround($10 * Math_fround(.800000011920929));
$21 = Math_fround($12 + Math_fround(.800000011920929));
$5 = Math_fround(0);
$10 = Math_fround(0);
$11 = Math_fround(0);
$12 = Math_fround(0);
while (1) {
$8 = ($7 << 2) + $1 | 0;
$16 = HEAPF32[$8 >> 2];
HEAPF32[$8 >> 2] = Math_fround($20 * $22) + Math_fround(Math_fround($17 * $5) + Math_fround(Math_fround($18 * $10) + Math_fround(Math_fround($19 * $11) + Math_fround(Math_fround($21 * $12) + $16))));
$22 = $5;
$5 = $10;
$10 = $11;
$11 = $12;
$12 = $16;
$7 = $7 + 1 | 0;
if (($13 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $6 + 48 | 0;
}
function quant_coarse_energy_impl($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) {
var $15 = 0, $16 = Math_fround(0), $17 = Math_fround(0), $18 = 0, $19 = Math_fround(0), $20 = Math_fround(0), $21 = Math_fround(0), $22 = 0, $23 = Math_fround(0), $24 = Math_fround(0), $25 = 0, $26 = Math_fround(0), $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
$15 = __stack_pointer - 16 | 0;
__stack_pointer = $15;
HEAP32[$15 + 8 >> 2] = 0;
HEAP32[$15 + 12 >> 2] = 0;
if (($6 + 3 | 0) <= ($5 | 0)) {
ec_enc_bit_logp($9, $12, 3);
}
if ($12) {
$19 = Math_fround(.149993896484375);
} else {
$12 = $11 << 2;
$26 = HEAPF32[$12 + 33376 >> 2];
$19 = HEAPF32[$12 + 33392 >> 2];
}
if (($1 | 0) < ($2 | 0)) {
$27 = ($10 | 0) > 1 ? $10 : 1;
$28 = Math_imul($10, 3);
$29 = $5 + 32 | 0;
$5 = HEAP32[$0 + 8 >> 2];
$11 = $1;
while (1) {
$30 = ($14 | 0) != 0 & ($11 | 0) > 1;
$31 = Math_imul($11 - $2 | 0, $28);
$12 = (($11 | 0) < 20 ? $11 : 20) << 1;
$32 = $12 + $7 | 0;
$33 = ($12 | 1) + $7 | 0;
$10 = 0;
while (1) {
$12 = Math_imul($5, $10) + $11 << 2;
$16 = HEAPF32[$12 + $3 >> 2];
$17 = HEAPF32[$4 + $12 >> 2];
$20 = Math_fround(Math_fround(Math_max($17, Math_fround(-28))) - $13);
$5 = $16 < $20 ^ 1;
$21 = Math_fround($26 * Math_fround(Math_max($17, Math_fround(-9))));
$22 = ($15 + 8 | 0) + ($10 << 2) | 0;
$17 = HEAPF32[$22 >> 2];
$23 = Math_fround(Math_fround($16 - $21) - $17);
$24 = Math_fround(Math_floor(Math_fround($23 + Math_fround(.5))));
label$7 : {
if (Math_fround(Math_abs($24)) < Math_fround(2147483648)) {
$12 = ~~$24;
break label$7;
}
$12 = -2147483648;
}
if (!($5 | ($12 | 0) > -1)) {
$16 = Math_fround($20 - $16);
label$10 : {
if (Math_fround(Math_abs($16)) < Math_fround(2147483648)) {
$5 = ~~$16;
break label$10;
}
$5 = -2147483648;
}
$12 = $12 + $5 | 0;
$12 = $12 & $12 >> 31;
}
HEAP32[$15 + 4 >> 2] = $12;
$6 = ($29 - HEAP32[$9 + 20 >> 2] | 0) - Math_clz32(HEAP32[$9 + 28 >> 2]) | 0;
$5 = $12;
label$12 : {
if (($1 | 0) == ($11 | 0)) {
break label$12;
}
$18 = $6 + $31 | 0;
if (($18 | 0) > 23) {
break label$12;
}
$5 = ($12 | 0) < 1 ? $12 : 1;
HEAP32[$15 + 4 >> 2] = $5;
if (($18 | 0) > 15) {
break label$12;
}
$5 = ($5 | 0) > -1 ? $5 : -1;
HEAP32[$15 + 4 >> 2] = $5;
}
if ($30) {
$5 = $5 >> 31 & $5;
HEAP32[$15 + 4 >> 2] = $5;
}
label$14 : {
if (($6 | 0) >= 15) {
ec_laplace_encode($9, $15 + 4 | 0, HEAPU8[$32 | 0] << 7, HEAPU8[$33 | 0] << 6);
break label$14;
}
if (($6 | 0) >= 2) {
$5 = ($5 | 0) < 1 ? $5 : 1;
$5 = ($5 | 0) > -1 ? $5 : -1;
HEAP32[$15 + 4 >> 2] = $5;
ec_enc_icdf($9, $5 << 1 ^ $5 >> 31, 33408, 2);
break label$14;
}
if (($6 | 0) == 1) {
$5 = $5 >> 31 & $5;
HEAP32[$15 + 4 >> 2] = $5;
ec_enc_bit_logp($9, 0 - $5 | 0, 1);
break label$14;
}
HEAP32[$15 + 4 >> 2] = -1;
}
$5 = HEAP32[$0 + 8 >> 2];
$6 = Math_imul($10, $5) + $11 << 2;
$18 = HEAP32[$15 + 4 >> 2];
$16 = Math_fround($18 | 0);
HEAPF32[$8 + $6 >> 2] = $23 - $16;
HEAPF32[$4 + $6 >> 2] = Math_fround($17 + $21) + $16;
HEAPF32[$22 >> 2] = Math_fround($17 + $16) - Math_fround($19 * $16);
$12 = $12 - $18 | 0;
$6 = $12;
$12 = $12 >> 31;
$25 = ($12 ^ $12 + $6) + $25 | 0;
$10 = $10 + 1 | 0;
if (($27 | 0) != ($10 | 0)) {
continue;
}
break;
}
$11 = $11 + 1 | 0;
if (($11 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $15 + 16 | 0;
return $14 ? 0 : $25;
}
function compute_dense($0, $1, $2) {
var $3 = Math_fround(0), $4 = Math_fround(0), $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0;
$7 = HEAP32[$0 + 12 >> 2];
label$1 : {
if (($7 | 0) < 1) {
break label$1;
}
$9 = HEAP32[$0 + 8 >> 2];
$6 = HEAP32[$0 >> 2];
while (1) {
HEAPF32[($5 << 2) + $1 >> 2] = HEAP8[$5 + $6 | 0];
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
if (($7 | 0) < 1) {
break label$1;
}
$10 = HEAP32[$0 + 4 >> 2];
$6 = 0;
$11 = ($9 | 0) < 1;
while (1) {
if (!$11) {
$8 = ($6 << 2) + $1 | 0;
$3 = HEAPF32[$8 >> 2];
$5 = 0;
while (1) {
$3 = Math_fround($3 + Math_fround(HEAPF32[($5 << 2) + $2 >> 2] * Math_fround(HEAP8[(Math_imul($5, $7) + $6 | 0) + $10 | 0])));
HEAPF32[$8 >> 2] = $3;
$5 = $5 + 1 | 0;
if (($9 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$6 = $6 + 1 | 0;
if (($7 | 0) != ($6 | 0)) {
continue;
}
break;
}
if (($7 | 0) < 1) {
break label$1;
}
$5 = 0;
while (1) {
$6 = ($5 << 2) + $1 | 0;
HEAPF32[$6 >> 2] = HEAPF32[$6 >> 2] * Math_fround(.0078125);
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
label$7 : {
if (HEAP32[$0 + 16 >> 2]) {
$5 = 0;
if (($7 | 0) <= 0) {
break label$7;
}
while (1) {
$3 = Math_fround(1);
$6 = ($5 << 2) + $1 | 0;
$4 = Math_fround(HEAPF32[$6 >> 2] * Math_fround(.5));
label$10 : {
if ($4 < Math_fround(8) ^ 1) {
break label$10;
}
$3 = Math_fround(0);
if ($4 > Math_fround(-8) ^ 1) {
break label$10;
}
$3 = Math_fround(.5);
if ($4 != $4) {
break label$10;
}
$9 = $4 < Math_fround(0);
$4 = $9 ? Math_fround(-$4) : $4;
$3 = Math_fround(Math_floor(Math_fround(Math_fround($4 * Math_fround(25)) + Math_fround(.5))));
label$11 : {
if (Math_fround(Math_abs($3)) < Math_fround(2147483648)) {
$8 = ~~$3;
break label$11;
}
$8 = -2147483648;
}
$3 = HEAPF32[($8 << 2) + 48128 >> 2];
$4 = Math_fround($4 + Math_fround(Math_fround($8 | 0) * Math_fround(-.03999999910593033)));
$3 = Math_fround($3 + Math_fround(Math_fround(Math_fround(1) - Math_fround($3 * $4)) * Math_fround($4 * Math_fround(Math_fround(1) - Math_fround($3 * $3)))));
$3 = Math_fround(Math_fround(($9 ? Math_fround(-$3) : $3) * Math_fround(.5)) + Math_fround(.5));
}
HEAPF32[$6 >> 2] = $3;
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
break label$7;
}
$5 = 0;
if (($7 | 0) <= 0) {
break label$7;
}
while (1) {
$3 = Math_fround(1);
$6 = ($5 << 2) + $1 | 0;
$4 = HEAPF32[$6 >> 2];
label$14 : {
if ($4 < Math_fround(8) ^ 1) {
break label$14;
}
$3 = Math_fround(-1);
if ($4 > Math_fround(-8) ^ 1) {
break label$14;
}
$3 = Math_fround(0);
if ($4 != $4) {
break label$14;
}
$9 = $4 < Math_fround(0);
$4 = $9 ? Math_fround(-$4) : $4;
$3 = Math_fround(Math_floor(Math_fround(Math_fround($4 * Math_fround(25)) + Math_fround(.5))));
label$15 : {
if (Math_fround(Math_abs($3)) < Math_fround(2147483648)) {
$8 = ~~$3;
break label$15;
}
$8 = -2147483648;
}
$3 = HEAPF32[($8 << 2) + 48128 >> 2];
$4 = Math_fround($4 + Math_fround(Math_fround($8 | 0) * Math_fround(-.03999999910593033)));
$3 = Math_fround($3 + Math_fround(Math_fround(Math_fround(1) - Math_fround($3 * $4)) * Math_fround($4 * Math_fround(Math_fround(1) - Math_fround($3 * $3)))));
$3 = $9 ? Math_fround(-$3) : $3;
}
HEAPF32[$6 >> 2] = $3;
$5 = $5 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
}
function silk_NLSF_stabilize($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
$12 = ($2 << 1) + $1 | 0;
$13 = $2 - 1 | 0;
$11 = ($13 << 1) + $0 | 0;
$16 = ($2 | 0) < 2;
label$1 : {
while (1) {
$5 = HEAP16[$0 >> 1];
$9 = HEAP16[$1 >> 1];
$3 = $5 - $9 | 0;
$4 = 1;
$6 = 0;
if (!$16) {
while (1) {
$7 = $5 << 16;
$10 = $4 << 1;
$5 = HEAP16[$10 + $0 >> 1];
$7 = ($5 - ($7 >> 16) | 0) - HEAP16[$1 + $10 >> 1] | 0;
$8 = $7;
$7 = ($3 | 0) > ($7 | 0);
$3 = $7 ? $8 : $3;
$6 = $7 ? $4 : $6;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$5 = HEAP16[$12 >> 1];
$4 = 32768 - ($5 + HEAP16[$11 >> 1] | 0) | 0;
$8 = $4;
$4 = ($3 | 0) > ($4 | 0);
if ((($4 ? $8 : $3) | 0) > -1) {
break label$1;
}
$3 = $4 ? $2 : $6;
label$5 : {
if (!$3) {
HEAP16[$0 >> 1] = $9;
break label$5;
}
label$7 : {
label$8 : {
if (($2 | 0) != ($3 | 0)) {
if (($3 | 0) >= 1) {
break label$8;
}
$9 = 0;
break label$7;
}
HEAP16[$11 >> 1] = -32768 - $5;
break label$5;
}
$4 = 1;
if (($3 | 0) == 1) {
break label$7;
}
while (1) {
$9 = HEAP16[($4 << 1) + $1 >> 1] + $9 | 0;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$8 = $3 << 1;
$14 = $8 + $1 | 0;
$10 = HEAP16[$14 >> 1] >> 1;
$7 = $10 + $9 | 0;
$6 = 32768;
label$11 : {
if (($2 | 0) <= ($3 | 0)) {
break label$11;
}
$6 = 32768 - $5 | 0;
$4 = $13;
if (($4 | 0) <= ($3 | 0)) {
break label$11;
}
while (1) {
$6 = $6 - HEAP16[($4 << 1) + $1 >> 1] | 0;
$4 = $4 - 1 | 0;
if (($4 | 0) > ($3 | 0)) {
continue;
}
break;
}
}
$4 = $0 + $8 | 0;
$9 = $4 - 2 | 0;
$3 = HEAP16[$4 >> 1] + HEAP16[$9 >> 1] | 0;
$3 = ($3 >> 1) + ($3 & 1) | 0;
$6 = $6 - $10 | 0;
label$13 : {
if (($7 | 0) > ($6 | 0)) {
$5 = $7;
$8 = $5;
if (($3 | 0) > ($5 | 0)) {
break label$13;
}
$8 = ($3 | 0) < ($6 | 0) ? $6 : $3;
break label$13;
}
$5 = $6;
$8 = $5;
if (($3 | 0) > ($5 | 0)) {
break label$13;
}
$8 = ($3 | 0) < ($7 | 0) ? $7 : $3;
}
$5 = $8;
$3 = $5 - $10 | 0;
HEAP16[$9 >> 1] = $3;
HEAP16[$4 >> 1] = HEAPU16[$14 >> 1] + $3;
}
$15 = $15 + 1 | 0;
if (($15 | 0) != 20) {
continue;
}
break;
}
silk_insertion_sort_increasing_all_values_int16($0, $2);
$4 = HEAP16[$0 >> 1];
$3 = HEAP16[$1 >> 1];
$3 = ($3 | 0) < ($4 | 0) ? $4 : $3;
HEAP16[$0 >> 1] = $3;
$7 = ($2 | 0) < 2;
if (!$7) {
$4 = 1;
while (1) {
$6 = $4 << 1;
$5 = $6 + $0 | 0;
$8 = $5;
$5 = HEAP16[$5 >> 1];
$3 = HEAP16[$1 + $6 >> 1] + ($3 << 16 >> 16) | 0;
$3 = ($3 | 0) < 32767 ? $3 : 32767;
$3 = ($3 | 0) > -32768 ? $3 : -32768;
$3 = ($3 | 0) < ($5 | 0) ? $5 : $3;
HEAP16[$8 >> 1] = $3;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$4 = HEAP16[$11 >> 1];
$3 = 32768 - HEAP16[$12 >> 1] | 0;
$3 = ($3 | 0) > ($4 | 0) ? $4 : $3;
HEAP16[$11 >> 1] = $3;
if ($7) {
break label$1;
}
$4 = $2 - 2 | 0;
while (1) {
$6 = $4 << 1;
$5 = $6 + $0 | 0;
$2 = $5;
$5 = HEAP16[$5 >> 1];
$3 = ($3 << 16 >> 16) - HEAP16[($1 + $6 | 0) + 2 >> 1] | 0;
$3 = ($3 | 0) > ($5 | 0) ? $5 : $3;
HEAP16[$2 >> 1] = $3;
$6 = ($4 | 0) > 0;
$4 = $4 - 1 | 0;
if ($6) {
continue;
}
break;
}
}
}
function clt_mdct_forward_c($0, $1, $2, $3, $4, $5, $6, $7) {
var $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = Math_fround(0), $14 = Math_fround(0), $15 = 0, $16 = 0, $17 = Math_fround(0), $18 = 0, $19 = Math_fround(0), $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = Math_fround(0), $25 = 0;
$7 = __stack_pointer;
$22 = $7;
$15 = HEAP32[$0 >> 2];
$9 = $15 >> 1;
$20 = HEAP32[(($5 << 2) + $0 | 0) + 8 >> 2];
$17 = HEAPF32[$20 + 4 >> 2];
$16 = HEAP32[$0 + 24 >> 2];
if (($5 | 0) >= 1) {
$0 = 0;
while (1) {
$15 = $9;
$9 = $9 >> 1;
$16 = ($15 << 2) + $16 | 0;
$0 = $0 + 1 | 0;
if (($5 | 0) != ($0 | 0)) {
continue;
}
break;
}
}
$0 = $4 << 1 & -4;
$10 = $9 << 2;
$5 = ($0 + ($10 + $1 | 0) | 0) - 4 | 0;
$10 = $7 - ($10 + 15 & -16) | 0;
$7 = $10;
__stack_pointer = $7;
$21 = $4 + 3 >> 2;
$1 = $0 + $1 | 0;
$11 = $15 >> 2;
$12 = $7 - (($11 << 3) + 15 & -16) | 0;
__stack_pointer = $12;
label$3 : {
if (($4 | 0) < 1) {
$7 = 0;
$0 = $10;
break label$3;
}
$7 = ($21 | 0) > 1 ? $21 : 1;
$8 = $0 + $3 | 0;
$18 = $8 - 4 | 0;
$25 = 0 - $9 << 2;
$0 = $10;
while (1) {
$13 = HEAPF32[$18 >> 2];
$14 = HEAPF32[$8 >> 2];
HEAPF32[$0 >> 2] = Math_fround($13 * HEAPF32[($9 << 2) + $1 >> 2]) + Math_fround($14 * HEAPF32[$5 >> 2]);
HEAPF32[$0 + 4 >> 2] = Math_fround($14 * HEAPF32[$1 >> 2]) - Math_fround($13 * HEAPF32[$5 + $25 >> 2]);
$18 = $18 - 8 | 0;
$8 = $8 + 8 | 0;
$5 = $5 - 8 | 0;
$1 = $1 + 8 | 0;
$0 = $0 + 8 | 0;
$23 = $23 + 1 | 0;
if (($23 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
$8 = $11 - $21 | 0;
if (($8 | 0) > ($7 | 0)) {
while (1) {
HEAP32[$0 >> 2] = HEAP32[$5 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$1 >> 2];
$5 = $5 - 8 | 0;
$1 = $1 + 8 | 0;
$0 = $0 + 8 | 0;
$7 = $7 + 1 | 0;
if (($8 | 0) > ($7 | 0)) {
continue;
}
break;
}
$7 = $8;
}
if (($7 | 0) < ($11 | 0)) {
$8 = (($4 << 2) + $3 | 0) - 4 | 0;
$18 = 0 - $9 << 2;
while (1) {
HEAPF32[$0 >> 2] = Math_fround(HEAPF32[$8 >> 2] * HEAPF32[$5 >> 2]) - Math_fround(HEAPF32[$3 >> 2] * HEAPF32[$1 + $18 >> 2]);
HEAPF32[$0 + 4 >> 2] = Math_fround(HEAPF32[$8 >> 2] * HEAPF32[$1 >> 2]) + Math_fround(HEAPF32[$3 >> 2] * HEAPF32[($9 << 2) + $5 >> 2]);
$8 = $8 - 8 | 0;
$3 = $3 + 8 | 0;
$5 = $5 - 8 | 0;
$1 = $1 + 8 | 0;
$0 = $0 + 8 | 0;
$7 = $7 + 1 | 0;
if (($11 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
if (($15 | 0) <= 3) {
opus_fft_impl($20, $12);
__stack_pointer = $22;
return;
}
$1 = ($11 | 0) > 1 ? $11 : 1;
$0 = 0;
while (1) {
$5 = (HEAP16[HEAP32[$20 + 44 >> 2] + ($0 << 1) >> 1] << 3) + $12 | 0;
$13 = HEAPF32[($0 + $11 << 2) + $16 >> 2];
$14 = HEAPF32[$10 >> 2];
$19 = HEAPF32[($0 << 2) + $16 >> 2];
$24 = HEAPF32[$10 + 4 >> 2];
HEAPF32[$5 + 4 >> 2] = $17 * Math_fround(Math_fround($13 * $14) + Math_fround($19 * $24));
HEAPF32[$5 >> 2] = $17 * Math_fround(Math_fround($19 * $14) - Math_fround($13 * $24));
$10 = $10 + 8 | 0;
$0 = $0 + 1 | 0;
if (($1 | 0) != ($0 | 0)) {
continue;
}
break;
}
opus_fft_impl($20, $12);
if (($15 | 0) >= 4) {
$1 = ($11 | 0) > 1 ? $11 : 1;
$0 = 0;
$5 = (Math_imul($9 - 1 | 0, $6) << 2) + $2 | 0;
$7 = $6 << 1;
$9 = 0 - $7 << 2;
while (1) {
$13 = HEAPF32[$12 + 4 >> 2];
$14 = HEAPF32[($0 + $11 << 2) + $16 >> 2];
$17 = HEAPF32[$12 >> 2];
$19 = HEAPF32[($0 << 2) + $16 >> 2];
HEAPF32[$2 >> 2] = Math_fround($13 * $14) - Math_fround($17 * $19);
HEAPF32[$5 >> 2] = Math_fround($14 * $17) + Math_fround($13 * $19);
$12 = $12 + 8 | 0;
$5 = $5 + $9 | 0;
$2 = ($7 << 2) + $2 | 0;
$0 = $0 + 1 | 0;
if (($1 | 0) != ($0 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $22;
}
function speex_resampler_process_float($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 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;
$8 = __stack_pointer - 16 | 0;
__stack_pointer = $8;
$16 = HEAP32[$0 + 24 >> 2];
$17 = $16 - 1 | 0;
$13 = HEAP32[$0 + 72 >> 2];
$18 = HEAP32[$0 + 28 >> 2];
$19 = Math_imul($18, $1);
$14 = $13 + ($19 << 2) | 0;
$20 = HEAP32[$0 + 88 >> 2];
$11 = HEAP32[$5 >> 2];
$12 = HEAP32[$3 >> 2];
$6 = $1 << 2;
$7 = $6 + HEAP32[$0 + 68 >> 2] | 0;
label$1 : {
if (HEAP32[$7 >> 2]) {
HEAP32[$8 + 12 >> 2] = $11;
HEAP32[$8 + 8 >> 2] = HEAP32[$7 >> 2];
HEAP32[$0 + 56 >> 2] = 1;
$9 = FUNCTION_TABLE[HEAP32[$0 + 84 >> 2]]($0, $1, $14, $8 + 8 | 0, $4, $8 + 12 | 0) | 0;
$7 = HEAP32[$8 + 8 >> 2];
$6 = HEAP32[$0 + 60 >> 2] + $6 | 0;
$10 = HEAP32[$6 >> 2];
if (($7 | 0) > ($10 | 0)) {
HEAP32[$8 + 8 >> 2] = $10;
$7 = $10;
}
HEAP32[$8 + 12 >> 2] = $9;
HEAP32[$6 >> 2] = HEAP32[$6 >> 2] - $7;
$7 = HEAP32[$8 + 8 >> 2];
if (($16 | 0) >= 2) {
$6 = 0;
while (1) {
HEAP32[($6 << 2) + $14 >> 2] = HEAP32[($6 + $7 << 2) + $14 >> 2];
$6 = $6 + 1 | 0;
if (($17 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$15 = HEAP32[$0 + 68 >> 2] + ($1 << 2) | 0;
$9 = HEAP32[$15 >> 2] - $7 | 0;
HEAP32[$15 >> 2] = $9;
if ($9) {
$6 = 0;
$10 = HEAP32[$8 + 8 >> 2];
while (1) {
$7 = $6 + $17 | 0;
HEAP32[($7 << 2) + $14 >> 2] = HEAP32[($7 + $10 << 2) + $14 >> 2];
$6 = $6 + 1 | 0;
if (($9 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$6 = HEAP32[$8 + 12 >> 2];
$11 = $11 - $6 | 0;
if (HEAP32[$15 >> 2]) {
break label$1;
}
$4 = (Math_imul(HEAP32[$0 + 92 >> 2], $6) << 2) + $4 | 0;
}
if (!$11 | !$12) {
break label$1;
}
$15 = $18 - $17 | 0;
$18 = (($16 + $19 << 2) + $13 | 0) - 4 | 0;
while (1) {
$7 = $12 >>> 0 > $15 >>> 0 ? $15 : $12;
HEAP32[$8 + 12 >> 2] = $7;
HEAP32[$8 + 8 >> 2] = $11;
label$9 : {
if ($2) {
$6 = 0;
if (!$7) {
break label$9;
}
while (1) {
HEAP32[($6 + $17 << 2) + $14 >> 2] = HEAP32[(Math_imul($6, $20) << 2) + $2 >> 2];
$6 = $6 + 1 | 0;
if (($7 | 0) != ($6 | 0)) {
continue;
}
break;
}
break label$9;
}
if (!$7) {
break label$9;
}
memset($18, 0, $7 << 2);
}
HEAP32[$0 + 56 >> 2] = 1;
$10 = HEAP32[$0 + 24 >> 2];
$7 = HEAP32[$0 + 72 >> 2] + (Math_imul(HEAP32[$0 + 28 >> 2], $1) << 2) | 0;
$16 = FUNCTION_TABLE[HEAP32[$0 + 84 >> 2]]($0, $1, $7, $8 + 12 | 0, $4, $8 + 8 | 0) | 0;
$9 = HEAP32[$8 + 12 >> 2];
$6 = HEAP32[$0 + 60 >> 2] + ($1 << 2) | 0;
$13 = HEAP32[$6 >> 2];
if (($9 | 0) > ($13 | 0)) {
HEAP32[$8 + 12 >> 2] = $13;
$9 = $13;
}
HEAP32[$8 + 8 >> 2] = $16;
HEAP32[$6 >> 2] = HEAP32[$6 >> 2] - $9;
$9 = HEAP32[$8 + 12 >> 2];
$6 = $9;
if (($10 | 0) >= 2) {
$10 = $10 - 1 | 0;
$6 = 0;
while (1) {
HEAP32[($6 << 2) + $7 >> 2] = HEAP32[($6 + $9 << 2) + $7 >> 2];
$6 = $6 + 1 | 0;
if (($10 | 0) != ($6 | 0)) {
continue;
}
break;
}
$6 = HEAP32[$8 + 12 >> 2];
}
$12 = $12 - $9 | 0;
$7 = HEAP32[$8 + 8 >> 2];
$11 = $11 - $7 | 0;
if (!$11) {
break label$1;
}
$2 = $2 ? (Math_imul($6, $20) << 2) + $2 | 0 : 0;
$4 = (Math_imul(HEAP32[$0 + 92 >> 2], $7) << 2) + $4 | 0;
if ($12) {
continue;
}
break;
}
}
HEAP32[$3 >> 2] = HEAP32[$3 >> 2] - $12;
HEAP32[$5 >> 2] = HEAP32[$5 >> 2] - $11;
__stack_pointer = $8 + 16 | 0;
$6 = HEAP32[$0 + 84 >> 2];
return ($6 | 0) == 9;
}
function check_control_input($0) {
var $1 = 0, $2 = 0, $3 = 0;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
label$9 : {
label$10 : {
if ($0) {
$1 = HEAP32[$0 + 8 >> 2];
label$12 : {
if (($1 | 0) <= 23999) {
if (($1 | 0) == 8e3 | ($1 | 0) == 12e3) {
break label$12;
}
if (($1 | 0) != 16e3) {
break label$1;
}
break label$12;
}
if (($1 | 0) <= 44099) {
if (($1 | 0) == 24e3 | ($1 | 0) == 32e3) {
break label$12;
}
break label$1;
}
if (($1 | 0) == 48e3) {
break label$12;
}
if (($1 | 0) != 44100) {
break label$1;
}
}
$1 = HEAP32[$0 + 20 >> 2];
if (($1 | 0) != 12e3 ? !(($1 | 0) == 8e3 | ($1 | 0) == 16e3) : 0) {
break label$1;
}
$2 = HEAP32[$0 + 12 >> 2];
if (($2 | 0) != 12e3 ? !(($2 | 0) == 8e3 | ($2 | 0) == 16e3) : 0) {
break label$1;
}
$3 = HEAP32[$0 + 16 >> 2];
if ((($3 | 0) != 12e3 ? !(($3 | 0) == 8e3 | ($3 | 0) == 16e3) : 0) | (($1 | 0) < ($3 | 0) | ($1 | 0) > ($2 | 0))) {
break label$1;
}
if (($2 | 0) < ($3 | 0)) {
break label$1;
}
label$18 : {
label$19 : {
$1 = HEAP32[$0 + 24 >> 2];
switch ($1 - 10 | 0) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
break label$10;
case 0:
case 10:
break label$18;
default:
break label$19;
}
}
if (($1 | 0) == 40) {
break label$18;
}
if (($1 | 0) != 60) {
break label$10;
}
}
if (HEAPU32[$0 + 32 >> 2] >= 101) {
break label$9;
}
if (HEAPU32[$0 + 48 >> 2] >= 2) {
break label$8;
}
if (HEAPU32[$0 + 52 >> 2] >= 2) {
break label$7;
}
if (HEAPU32[$0 + 40 >> 2] >= 2) {
break label$6;
}
$1 = HEAP32[$0 >> 2];
if ($1 - 1 >>> 0 >= 2) {
break label$5;
}
$2 = HEAP32[$0 + 4 >> 2];
if ($2 - 1 >>> 0 >= 2) {
break label$4;
}
if (($1 | 0) < ($2 | 0)) {
break label$3;
}
if (HEAPU32[$0 + 36 >> 2] >= 11) {
break label$2;
}
return 0;
}
celt_fatal(1952, 1989, 41);
abort();
}
celt_fatal(2016, 1989, 69);
abort();
}
celt_fatal(2016, 1989, 73);
abort();
}
celt_fatal(2016, 1989, 77);
abort();
}
celt_fatal(2016, 1989, 81);
abort();
}
celt_fatal(2016, 1989, 85);
abort();
}
celt_fatal(2016, 1989, 89);
abort();
}
celt_fatal(2016, 1989, 93);
abort();
}
celt_fatal(2016, 1989, 97);
abort();
}
celt_fatal(2016, 1989, 101);
abort();
}
celt_fatal(2016, 1989, 62);
abort();
}
function silk_NLSF_encode($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = 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, $27 = 0, $28 = 0;
$7 = __stack_pointer - 128 | 0;
$10 = $7;
__stack_pointer = $7;
if ($6 >>> 0 < 3) {
silk_NLSF_stabilize($1, HEAP32[$2 + 36 >> 2], HEAP16[$2 + 2 >> 1]);
$7 = $7 - ((HEAPU16[$2 >> 1] << 2) + 15 & 524272) | 0;
__stack_pointer = $7;
silk_NLSF_VQ($7, $1, HEAP32[$2 + 8 >> 2], HEAP32[$2 + 12 >> 2], HEAP16[$2 >> 1], HEAP16[$2 + 2 >> 1]);
$9 = ($5 << 2) + 15 & -16;
$18 = $7 - $9 | 0;
$8 = $18;
__stack_pointer = $8;
silk_insertion_sort_increasing($7, $8, HEAP16[$2 >> 1], $5);
$15 = $8 - $9 | 0;
$7 = $15;
__stack_pointer = $7;
$19 = $7 - ($5 << 4) | 0;
__stack_pointer = $19;
if (($5 | 0) >= 1) {
$23 = $6 >>> 1 | 0;
$24 = $4 << 14 >> 16;
while (1) {
$22 = $16 << 2;
$17 = HEAP32[$22 + $18 >> 2];
$20 = HEAP16[$2 + 2 >> 1];
if (($20 | 0) >= 1) {
$7 = Math_imul($17, $20);
$25 = $7 + HEAP32[$2 + 8 >> 2] | 0;
$26 = HEAP32[$2 + 12 >> 2] + ($7 << 1) | 0;
$6 = 0;
while (1) {
$7 = $6 << 1;
$8 = HEAP16[$26 + $7 >> 1];
HEAP16[($10 + 80 | 0) + $7 >> 1] = Math_imul(HEAPU16[$1 + $7 >> 1] - (HEAPU8[$6 + $25 | 0] << 7) << 16 >> 16, $8) >>> 14;
$9 = HEAP16[$3 + $7 >> 1];
$11 = $9 >> 31;
$11 = Math_clz32($11 ^ $9 + $11);
$9 = $9 << $11 - 1;
$27 = $9;
$8 = Math_imul($8, $8);
$14 = Math_clz32($8);
$13 = $8 << $14 - 1;
$8 = 536870911 / ($13 >> 16) << 16 >> 16;
$9 = (Math_imul($8, $9 & 65535) >> 16) + Math_imul($9 >> 16, $8) | 0;
$12 = $9 >> 31;
$21 = $12;
$12 = $13 >> 31;
$28 = $12;
$12 = $21;
$21 = __wasm_i64_mul($9, $12, $13, $28);
$12 = i64toi32_i32$HIGH_BITS;
$13 = $27 - ((($12 & 536870911) << 3 | $21 >>> 29) & -8) | 0;
$8 = (Math_imul($13 >> 16, $8) + $9 | 0) + (Math_imul($13 & 65535, $8) >> 16) | 0;
$9 = $11 - $14 | 0;
$11 = $9 + 8 | 0;
$7 = ($10 + 48 | 0) + $7 | 0;
$9 = $9 + 29 | 0;
label$6 : {
if (($9 | 0) <= 20) {
$9 = 0 - $11 | 0;
$11 = 2147483647 >>> $9 | 0;
$14 = -2147483648 >> $9;
$8 = (($8 | 0) > ($11 | 0) ? $11 : ($8 | 0) < ($14 | 0) ? $14 : $8) << $9;
break label$6;
}
$8 = ($9 | 0) < 53 ? $8 >> $11 : 0;
}
HEAP16[$7 >> 1] = $8;
$6 = $6 + 1 | 0;
if (($20 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
silk_NLSF_unpack($10, $10 + 32 | 0, $2, $17);
$6 = $15 + $22 | 0;
HEAP32[$6 >> 2] = silk_NLSF_del_dec_quant(($16 << 4) + $19 | 0, $10 + 80 | 0, $10 + 48 | 0, $10 + 32 | 0, $10, HEAP32[$2 + 32 >> 2], HEAP16[$2 + 4 >> 1], HEAP16[$2 + 6 >> 1], $4, HEAP16[$2 + 2 >> 1]);
$7 = HEAP32[$2 + 16 >> 2] + Math_imul(HEAP16[$2 >> 1], $23) | 0;
$12 = $6;
if ($17) {
$7 = $7 + $17 | 0;
$8 = HEAPU8[$7 - 1 | 0];
} else {
$8 = 256;
}
HEAP32[$12 >> 2] = Math_imul(67108864 - (silk_lin2log($8 - HEAPU8[$7 | 0] | 0) << 16) >> 16, $24) + HEAP32[$6 >> 2];
$16 = $16 + 1 | 0;
if (($16 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
silk_insertion_sort_increasing($15, $10 + 124 | 0, $5, 1);
$7 = HEAP32[$10 + 124 >> 2];
HEAP8[$0 | 0] = HEAP32[($7 << 2) + $18 >> 2];
memcpy($0 + 1 | 0, ($7 << 4) + $19 | 0, HEAP16[$2 + 2 >> 1]);
silk_NLSF_decode($1, $0, $2);
__stack_pointer = $10 + 128 | 0;
$7 = HEAP32[$15 >> 2];
return $7;
}
celt_fatal(15776, 15829, 63);
abort();
}
function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
label$5 : {
label$6 : {
label$7 : {
label$8 : {
label$9 : {
label$11 : {
$5 = $1;
if ($5) {
$7 = $2;
if (!$7) {
break label$11;
}
$4 = $3;
if (!$4) {
break label$9;
}
$5 = Math_clz32($4) - Math_clz32($5) | 0;
if ($5 >>> 0 <= 31) {
break label$8;
}
break label$2;
}
$4 = $3;
if (($4 | 0) == 1 | $4 >>> 0 > 1) {
break label$2;
}
$5 = $0;
$7 = $2;
$5 = ($5 >>> 0) / ($7 >>> 0) | 0;
i64toi32_i32$HIGH_BITS = 0;
return $5;
}
$7 = $3;
if (!$0) {
break label$7;
}
if (!$7) {
break label$6;
}
$4 = $7 - 1 | 0;
if ($4 & $7) {
break label$6;
}
$9 = $5 >>> __wasm_ctz_i32($7) | 0;
i64toi32_i32$HIGH_BITS = 0;
return $9;
}
if (!($7 - 1 & $7)) {
break label$5;
}
$5 = (Math_clz32($7) + 33 | 0) - Math_clz32($5) | 0;
$7 = 0 - $5 | 0;
break label$3;
}
$7 = 63 - $5 | 0;
$5 = $5 + 1 | 0;
break label$3;
}
$4 = ($5 >>> 0) / ($7 >>> 0) | 0;
i64toi32_i32$HIGH_BITS = 0;
return $4;
}
$5 = Math_clz32($7) - Math_clz32($5) | 0;
if ($5 >>> 0 < 31) {
break label$4;
}
break label$2;
}
if (($7 | 0) == 1) {
break label$1;
}
$4 = $1;
$9 = $0;
$10 = 0;
$8 = __wasm_ctz_i32($7);
$6 = $8 & 31;
if (($8 & 63) >>> 0 >= 32) {
$9 = $4 >>> $6 | 0;
} else {
$10 = $4 >>> $6 | 0;
$9 = ((1 << $6) - 1 & $4) << 32 - $6 | $9 >>> $6;
}
i64toi32_i32$HIGH_BITS = $10;
return $9;
}
$7 = 63 - $5 | 0;
$5 = $5 + 1 | 0;
}
$9 = $1;
$4 = $0;
$10 = 0;
$8 = $5 & 63;
$6 = $8 & 31;
if (($8 & 63) >>> 0 >= 32) {
$12 = $9 >>> $6 | 0;
} else {
$10 = $9 >>> $6 | 0;
$12 = ((1 << $6) - 1 & $9) << 32 - $6 | $4 >>> $6;
}
$13 = $10;
$10 = $1;
$9 = $0;
$8 = $7 & 63;
$6 = $8 & 31;
if (($8 & 63) >>> 0 >= 32) {
$4 = $9 << $6;
$0 = 0;
} else {
$4 = (1 << $6) - 1 & $9 >>> 32 - $6 | $10 << $6;
$0 = $9 << $6;
}
$1 = $4;
if ($5) {
$4 = $3 - 1 | 0;
$6 = $2 - 1 | 0;
$4 = ($6 | 0) != -1 ? $4 + 1 | 0 : $4;
$7 = $6;
$9 = $4;
while (1) {
$4 = $12;
$8 = $4 << 1;
$4 = $13 << 1 | $4 >>> 31;
$12 = $8 | $1 >>> 31;
$11 = $12;
$10 = $4;
$4 = $7;
$8 = $11;
$6 = $9 - (($4 >>> 0 < $8 >>> 0) + $10 | 0) | 0;
$13 = $3 & $6 >> 31;
$4 = $8;
$11 = $6 >> 31;
$8 = $11 & $2;
$12 = $4 - $8 | 0;
$13 = $10 - (($4 >>> 0 < $8 >>> 0) + $13 | 0) | 0;
$4 = $1 << 1 | $0 >>> 31;
$0 = $0 << 1 | $14;
$1 = $4 | $16;
$15 = 0;
$11 = $11 & 1;
$14 = $11;
$5 = $5 - 1 | 0;
if ($5) {
continue;
}
break;
}
}
i64toi32_i32$HIGH_BITS = $15 | ($1 << 1 | $0 >>> 31);
return $0 << 1 | $11;
}
$0 = 0;
$1 = 0;
}
i64toi32_i32$HIGH_BITS = $1;
return $0;
}
function silk_NSQ_wrapper_FLP($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0;
$7 = __stack_pointer - 1008 | 0;
__stack_pointer = $7;
label$1 : {
label$2 : {
$10 = HEAP32[$0 + 4580 >> 2];
if (($10 | 0) < 1) {
break label$2;
}
$11 = HEAP32[$0 + 4636 >> 2];
$13 = ($11 | 0) < 1;
while (1) {
if (!$13) {
$9 = Math_imul($12, 24);
$6 = 0;
while (1) {
$8 = $6 + $9 | 0;
HEAP16[($7 + 48 | 0) + ($8 << 1) >> 1] = lrintf(Math_fround(HEAPF32[(($8 << 2) + $1 | 0) + 244 >> 2] * Math_fround(8192)));
$6 = $6 + 1 | 0;
if (($11 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$12 = $12 + 1 | 0;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
$9 = 0;
if (($10 | 0) <= 0) {
break label$2;
}
while (1) {
$6 = $9 << 2;
$8 = $6 + $1 | 0;
$11 = lrintf(Math_fround(HEAPF32[$8 + 644 >> 2] * Math_fround(16384)));
HEAP32[($7 + 32 | 0) + $6 >> 2] = lrintf(Math_fround(HEAPF32[$8 + 628 >> 2] * Math_fround(16384))) & 65535 | $11 << 16;
HEAP32[($7 + 16 | 0) + $6 >> 2] = lrintf(Math_fround(HEAPF32[$8 + 660 >> 2] * Math_fround(16384)));
HEAP32[$6 + $7 >> 2] = lrintf(Math_fround(HEAPF32[$8 + 676 >> 2] * Math_fround(16384)));
$9 = $9 + 1 | 0;
if (($10 | 0) != ($9 | 0)) {
continue;
}
break;
}
$11 = lrintf(Math_fround(HEAPF32[$1 + 692 >> 2] * Math_fround(1024)));
if (($10 | 0) < 1) {
break label$1;
}
$6 = Math_imul($10, 5);
$8 = ($6 | 0) > 1 ? $6 : 1;
$6 = 0;
while (1) {
HEAP16[($7 + 240 | 0) + ($6 << 1) >> 1] = lrintf(Math_fround(HEAPF32[(($6 << 2) + $1 | 0) + 144 >> 2] * Math_fround(16384)));
$6 = $6 + 1 | 0;
if (($8 | 0) != ($6 | 0)) {
continue;
}
break;
}
break label$1;
}
$11 = lrintf(Math_fround(HEAPF32[$1 + 692 >> 2] * Math_fround(1024)));
}
$6 = 0;
$8 = HEAP32[$0 + 4640 >> 2];
label$8 : {
if (($8 | 0) <= 0) {
break label$8;
}
while (1) {
HEAP16[($7 + 288 | 0) + ($6 << 1) >> 1] = lrintf(Math_fround(HEAPF32[(($6 << 2) + $1 | 0) + 16 >> 2] * Math_fround(4096)));
$6 = $6 + 1 | 0;
if (($8 | 0) != ($6 | 0)) {
continue;
}
break;
}
$6 = 0;
if (($8 | 0) <= 0) {
break label$8;
}
while (1) {
HEAP16[(($6 << 1) + $7 | 0) + 320 >> 1] = lrintf(Math_fround(HEAPF32[(($6 << 2) + $1 | 0) + 80 >> 2] * Math_fround(4096)));
$6 = $6 + 1 | 0;
if (($8 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$6 = 0;
if (($10 | 0) > 0) {
while (1) {
$8 = $6 << 2;
HEAP32[$8 + ($7 + 352 | 0) >> 2] = lrintf(Math_fround(HEAPF32[$1 + $8 >> 2] * Math_fround(65536)));
$6 = $6 + 1 | 0;
if (($10 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
$6 = 0;
$9 = 0;
$9 = HEAPU8[$2 + 29 | 0] == 2 ? HEAP16[(HEAP8[$2 + 33 | 0] << 1) + 5848 >> 1] : $9;
$8 = HEAP32[$0 + 4584 >> 2];
if (($8 | 0) >= 1) {
while (1) {
HEAP16[($7 + 368 | 0) + ($6 << 1) >> 1] = lrintf(HEAPF32[($6 << 2) + $5 >> 2]);
$6 = $6 + 1 | 0;
if (($8 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
label$16 : {
if (!(HEAP32[$0 + 4672 >> 2] < 1 ? HEAP32[$0 + 4628 >> 2] <= 1 : 0)) {
silk_NSQ_del_dec_c($0, $3, $2, $7 + 368 | 0, $4, $7 + 288 | 0, $7 + 240 | 0, $7 + 48 | 0, $7, $7 + 16 | 0, $7 + 32 | 0, $7 + 352 | 0, $1 + 228 | 0, $11, $9);
break label$16;
}
silk_NSQ_c($0, $3, $2, $7 + 368 | 0, $4, $7 + 288 | 0, $7 + 240 | 0, $7 + 48 | 0, $7, $7 + 16 | 0, $7 + 32 | 0, $7 + 352 | 0, $1 + 228 | 0, $11, $9);
}
__stack_pointer = $7 + 1008 | 0;
}
function ec_dec_uint($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0;
if ($1 >>> 0 > 1) {
$10 = $1 - 1 | 0;
label$2 : {
if ($10 >>> 0 >= 256) {
$4 = HEAP32[$0 + 28 >> 2];
$7 = 24 - Math_clz32($10) | 0;
$2 = $10 >>> $7 | 0;
$3 = $2 + 1 | 0;
$1 = ($4 >>> 0) / ($3 >>> 0) | 0;
HEAP32[$0 + 36 >> 2] = $1;
$5 = HEAP32[$0 + 32 >> 2];
$8 = $5;
$5 = ($5 >>> 0) / ($1 >>> 0) | 0;
$6 = $5 + 1 | 0;
$3 = $6 - $3 | 0;
$11 = ($3 >>> 0 > $6 >>> 0 ? 0 : $3) + ($2 - $5 | 0) | 0;
$2 = Math_imul($2 - $11 | 0, $1);
$3 = $8 - $2 | 0;
HEAP32[$0 + 32 >> 2] = $3;
$2 = $11 ? $1 : $4 - $2 | 0;
HEAP32[$0 + 28 >> 2] = $2;
if ($2 >>> 0 <= 8388608) {
$4 = HEAP32[$0 + 24 >> 2];
$5 = HEAP32[$0 + 40 >> 2];
$6 = HEAP32[$0 + 20 >> 2];
$12 = HEAP32[$0 + 4 >> 2];
while (1) {
$8 = $2 << 8;
HEAP32[$0 + 28 >> 2] = $8;
$6 = $6 + 8 | 0;
HEAP32[$0 + 20 >> 2] = $6;
$1 = 0;
if ($4 >>> 0 < $12 >>> 0) {
$9 = $4 + 1 | 0;
HEAP32[$0 + 24 >> 2] = $9;
$1 = HEAPU8[HEAP32[$0 >> 2] + $4 | 0];
$4 = $9;
}
HEAP32[$0 + 40 >> 2] = $1;
$3 = (($5 << 8 | $1) >>> 1 & 255 | $3 << 8 & 2147483392) ^ 255;
HEAP32[$0 + 32 >> 2] = $3;
$9 = $2 >>> 0 < 32769;
$5 = $1;
$2 = $8;
if ($9) {
continue;
}
break;
}
}
$8 = $11 << $7;
$3 = HEAP32[$0 + 12 >> 2];
$1 = HEAP32[$0 + 16 >> 2];
label$7 : {
if ($7 >>> 0 <= $1 >>> 0) {
$6 = $1;
break label$7;
}
$2 = HEAP32[$0 + 8 >> 2];
$5 = HEAP32[$0 + 4 >> 2];
while (1) {
$4 = 0;
if ($2 >>> 0 < $5 >>> 0) {
$2 = $2 + 1 | 0;
HEAP32[$0 + 8 >> 2] = $2;
$4 = HEAPU8[HEAP32[$0 >> 2] + ($5 - $2 | 0) | 0];
}
$3 = $4 << $1 | $3;
$4 = ($1 | 0) < 17;
$6 = $1 + 8 | 0;
$1 = $6;
if ($4) {
continue;
}
break;
}
}
HEAP32[$0 + 16 >> 2] = $6 - $7;
HEAP32[$0 + 12 >> 2] = $3 >>> $7;
HEAP32[$0 + 20 >> 2] = HEAP32[$0 + 20 >> 2] + $7;
$7 = (-1 << $7 ^ -1) & $3 | $8;
if ($10 >>> 0 >= $7 >>> 0) {
break label$2;
}
HEAP32[$0 + 44 >> 2] = 1;
return $10;
}
$4 = HEAP32[$0 + 28 >> 2];
$2 = ($4 >>> 0) / ($1 >>> 0) | 0;
HEAP32[$0 + 36 >> 2] = $2;
$3 = HEAP32[$0 + 32 >> 2];
$8 = $3;
$3 = ($3 >>> 0) / ($2 >>> 0) | 0;
$9 = ($3 ^ -1) + $1 | 0;
$3 = $3 + 1 | 0;
$5 = $3 - $1 | 0;
$7 = $9 + ($3 >>> 0 < $5 >>> 0 ? 0 : $5) | 0;
$1 = Math_imul(($7 ^ -1) + $1 | 0, $2);
$3 = $8 - $1 | 0;
HEAP32[$0 + 32 >> 2] = $3;
$2 = $7 ? $2 : $4 - $1 | 0;
HEAP32[$0 + 28 >> 2] = $2;
if ($2 >>> 0 > 8388608) {
break label$2;
}
$4 = HEAP32[$0 + 24 >> 2];
$5 = HEAP32[$0 + 40 >> 2];
$6 = HEAP32[$0 + 20 >> 2];
$12 = HEAP32[$0 + 4 >> 2];
while (1) {
$8 = $2 << 8;
HEAP32[$0 + 28 >> 2] = $8;
$6 = $6 + 8 | 0;
HEAP32[$0 + 20 >> 2] = $6;
$1 = 0;
if ($4 >>> 0 < $12 >>> 0) {
$9 = $4 + 1 | 0;
HEAP32[$0 + 24 >> 2] = $9;
$1 = HEAPU8[HEAP32[$0 >> 2] + $4 | 0];
$4 = $9;
}
HEAP32[$0 + 40 >> 2] = $1;
$3 = (($5 << 8 | $1) >>> 1 & 255 | $3 << 8 & 2147483392) ^ 255;
HEAP32[$0 + 32 >> 2] = $3;
$9 = $2 >>> 0 < 32769;
$5 = $1;
$2 = $8;
if ($9) {
continue;
}
break;
}
}
return $7;
}
celt_fatal(9274, 9298, 203);
abort();
}
function downmix_and_resample($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
var $10 = Math_fround(0), $11 = 0, $12 = Math_fround(0), $13 = Math_fround(0), $14 = Math_fround(0), $15 = Math_fround(0), $16 = 0, $17 = Math_fround(0), $18 = Math_fround(0), $19 = Math_fround(0), $20 = 0;
$11 = __stack_pointer;
$16 = $11;
if (!$4) {
__stack_pointer = $16;
return Math_fround(0);
}
label$2 : {
if (($9 | 0) == 48e3) {
$5 = $5 << 1;
$4 = $4 << 1;
break label$2;
}
if (($9 | 0) != 16e3) {
break label$2;
}
$5 = ($5 << 1) / 3 | 0;
$4 = ($4 << 1) / 3 | 0;
}
$11 = $11 - (($4 << 2) + 15 & -16) | 0;
$20 = $11;
__stack_pointer = $11;
FUNCTION_TABLE[$0 | 0]($1, $11, $4, $5, $6, $7, $8);
$10 = ($7 | 0) == -2 ? Math_fround(Math_fround(30517578125e-15) / Math_fround($8 | 0)) : ($7 | 0) > -1 ? Math_fround(152587890625e-16) : Math_fround(30517578125e-15);
if (($4 | 0) >= 1) {
$7 = 0;
while (1) {
$5 = ($7 << 2) + $11 | 0;
HEAPF32[$5 >> 2] = $10 * HEAPF32[$5 >> 2];
$7 = $7 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
label$8 : {
if (($9 | 0) == 48e3) {
$9 = ($4 | 0) / 2 | 0;
if (($4 | 0) < 2) {
break label$8;
}
$7 = 0;
while (1) {
$5 = $7 << 3;
$10 = HEAPF32[$11 + $5 >> 2];
$12 = HEAPF32[$3 >> 2];
$13 = Math_fround(Math_fround($10 - $12) * Math_fround(.6074370741844177));
HEAPF32[$3 >> 2] = $10 + $13;
$10 = HEAPF32[($5 | 4) + $11 >> 2];
$14 = HEAPF32[$3 + 4 >> 2];
$15 = Math_fround(Math_fround($10 - $14) * Math_fround(.15062999725341797));
HEAPF32[$3 + 4 >> 2] = $10 + $15;
$17 = HEAPF32[$3 + 8 >> 2];
$18 = Math_fround(Math_fround(Math_fround(-$10) - $17) * Math_fround(.15062999725341797));
HEAPF32[$3 + 8 >> 2] = $18 - $10;
$10 = Math_fround($12 + $13);
HEAPF32[($7 << 2) + $2 >> 2] = Math_fround(Math_fround($14 + $10) + $15) * Math_fround(.5);
$10 = Math_fround(Math_fround($10 + $17) + $18);
$19 = Math_fround($19 + Math_fround($10 * $10));
$7 = $7 + 1 | 0;
if (($9 | 0) != ($7 | 0)) {
continue;
}
break;
}
break label$8;
}
if (($9 | 0) != 16e3) {
if (($9 | 0) != 24e3) {
break label$8;
}
memcpy($2, $11, $4 << 2);
break label$8;
}
$1 = $20;
$0 = Math_imul($4, 3);
$8 = $1 - (($0 << 2) + 15 & -16) | 0;
__stack_pointer = $8;
if (($4 | 0) >= 1) {
$7 = 0;
while (1) {
$5 = Math_imul($7, 12) + $8 | 0;
$9 = HEAP32[($7 << 2) + $11 >> 2];
HEAP32[$5 + 8 >> 2] = $9;
HEAP32[$5 + 4 >> 2] = $9;
HEAP32[$5 >> 2] = $9;
$7 = $7 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$5 = ($0 | 0) / 2 | 0;
if (($0 | 0) >= 2) {
$7 = 0;
while (1) {
$11 = $7 << 3;
$10 = HEAPF32[$11 + $8 >> 2];
$12 = HEAPF32[$3 >> 2];
$13 = Math_fround(Math_fround($10 - $12) * Math_fround(.6074370741844177));
HEAPF32[$3 >> 2] = $10 + $13;
$10 = HEAPF32[($11 | 4) + $8 >> 2];
$14 = HEAPF32[$3 + 4 >> 2];
$15 = Math_fround(Math_fround($10 - $14) * Math_fround(.15062999725341797));
HEAPF32[$3 + 4 >> 2] = $10 + $15;
HEAPF32[$3 + 8 >> 2] = Math_fround(Math_fround(Math_fround(-$10) - HEAPF32[$3 + 8 >> 2]) * Math_fround(.15062999725341797)) - $10;
HEAPF32[($7 << 2) + $2 >> 2] = Math_fround(Math_fround($14 + Math_fround($12 + $13)) + $15) * Math_fround(.5);
$7 = $7 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
}
__stack_pointer = $16;
return $19;
}
function op_pvq_search_c($0, $1, $2, $3, $4) {
var $5 = 0, $6 = Math_fround(0), $7 = Math_fround(0), $8 = 0, $9 = Math_fround(0), $10 = Math_fround(0), $11 = 0, $12 = 0, $13 = Math_fround(0), $14 = 0, $15 = 0, $16 = Math_fround(0), $17 = 0, $18 = Math_fround(0);
$4 = __stack_pointer;
$17 = $4;
$5 = ($3 << 2) + 15 & -16;
$4 = $4 - $5 | 0;
__stack_pointer = $4;
$14 = $4 - $5 | 0;
__stack_pointer = $14;
$11 = ($3 | 0) > 1 ? $3 : 1;
$12 = memset($4, 0, $11 << 2);
$4 = 0;
while (1) {
$5 = $4 << 2;
$8 = $5 + $0 | 0;
$6 = HEAPF32[$8 >> 2];
HEAP32[$5 + $14 >> 2] = $6 < Math_fround(0);
HEAPF32[$8 >> 2] = Math_abs($6);
HEAP32[$1 + $5 >> 2] = 0;
$4 = $4 + 1 | 0;
if (($11 | 0) != ($4 | 0)) {
continue;
}
break;
}
$6 = Math_fround(0);
if (($2 | 0) > $3 >> 1) {
$4 = 0;
while (1) {
$6 = Math_fround($6 + HEAPF32[($4 << 2) + $0 >> 2]);
$4 = $4 + 1 | 0;
if (($11 | 0) != ($4 | 0)) {
continue;
}
break;
}
if (!($6 < Math_fround(64) ? !($6 > Math_fround(1.0000000036274937e-15) ^ 1) : 0)) {
HEAP32[$0 >> 2] = 1065353216;
memset($0 + 4 | 0, 0, ((($3 | 0) > 2 ? $3 : 2) << 2) - 4 | 0);
$6 = Math_fround(1);
}
$9 = Math_fround(Math_fround(Math_fround($2 | 0) + Math_fround(.800000011920929)) * Math_fround(Math_fround(1) / $6));
$5 = 0;
$6 = Math_fround(0);
while (1) {
$8 = $5 << 2;
$15 = $8 + $1 | 0;
$10 = HEAPF32[$0 + $8 >> 2];
$7 = Math_fround(Math_floor(Math_fround($9 * $10)));
label$7 : {
if (Math_fround(Math_abs($7)) < Math_fround(2147483648)) {
$4 = ~~$7;
break label$7;
}
$4 = -2147483648;
}
HEAP32[$15 >> 2] = $4;
$7 = Math_fround($4 | 0);
HEAPF32[$8 + $12 >> 2] = $7 + $7;
$13 = Math_fround($13 + Math_fround($10 * $7));
$2 = $2 - $4 | 0;
$6 = Math_fround($6 + Math_fround($7 * $7));
$5 = $5 + 1 | 0;
if (($11 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
label$9 : {
if (($3 + 3 | 0) < ($2 | 0)) {
$10 = HEAPF32[$12 >> 2];
HEAP32[$1 >> 2] = HEAP32[$1 >> 2] + $2;
$7 = Math_fround($2 | 0);
$6 = Math_fround(Math_fround($6 + Math_fround($7 * $7)) + Math_fround($10 * $7));
break label$9;
}
if (($2 | 0) < 1) {
break label$9;
}
$15 = ($3 | 0) > 2 ? $3 : 2;
$18 = HEAPF32[$0 >> 2];
$3 = 0;
while (1) {
$16 = Math_fround($6 + Math_fround(1));
$6 = Math_fround($16 + HEAPF32[$12 >> 2]);
$7 = Math_fround($13 + $18);
$7 = Math_fround($7 * $7);
$4 = 1;
$8 = 0;
while (1) {
$5 = $4 << 2;
$10 = Math_fround($16 + HEAPF32[$12 + $5 >> 2]);
$9 = Math_fround($13 + HEAPF32[$0 + $5 >> 2]);
$9 = Math_fround($9 * $9);
$5 = Math_fround($6 * $9) > Math_fround($7 * $10);
$6 = $5 ? $10 : $6;
$7 = $5 ? $9 : $7;
$8 = $5 ? $4 : $8;
$4 = $4 + 1 | 0;
if (($15 | 0) != ($4 | 0)) {
continue;
}
break;
}
$4 = $8 << 2;
$7 = HEAPF32[$4 + $0 >> 2];
$5 = $4 + $12 | 0;
$6 = HEAPF32[$5 >> 2];
HEAPF32[$5 >> 2] = $6 + Math_fround(2);
$4 = $1 + $4 | 0;
HEAP32[$4 >> 2] = HEAP32[$4 >> 2] + 1;
$6 = Math_fround($16 + $6);
$13 = Math_fround($13 + $7);
$3 = $3 + 1 | 0;
if (($3 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$4 = 0;
while (1) {
$5 = $4 << 2;
$8 = $5 + $1 | 0;
$5 = HEAP32[$5 + $14 >> 2];
HEAP32[$8 >> 2] = $5 + (HEAP32[$8 >> 2] ^ 0 - $5);
$4 = $4 + 1 | 0;
if (($11 | 0) != ($4 | 0)) {
continue;
}
break;
}
__stack_pointer = $17;
return $6;
}
function silk_LP_variable_cutoff($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0;
$5 = __stack_pointer - 32 | 0;
__stack_pointer = $5;
$11 = HEAP32[$0 + 12 >> 2];
if ($11) {
$12 = HEAP32[$0 + 8 >> 2];
$3 = 262144 - ($12 << 10) | 0;
label$2 : {
if (($3 | 0) <= 262143) {
$7 = $3 >> 16;
$4 = $3 & 64512;
if ($4) {
$10 = $7 + 1 | 0;
$3 = $4 << 16 >> 16;
if ($4 >>> 0 >= 32768) {
$4 = Math_imul($10, 12);
$8 = HEAP32[$4 + 5896 >> 2];
$6 = Math_imul($7, 12);
$9 = $8 - HEAP32[$6 + 5896 >> 2] | 0;
HEAP32[$5 + 24 >> 2] = (Math_imul($9 >> 16, $3) + $8 | 0) + (Math_imul($9 & 65535, $3) >> 16);
$8 = HEAP32[$4 + 5892 >> 2];
$9 = $8 - HEAP32[$6 + 5892 >> 2] | 0;
HEAP32[$5 + 20 >> 2] = (Math_imul($9 >> 16, $3) + $8 | 0) + (Math_imul($9 & 65535, $3) >> 16);
$4 = HEAP32[$4 + 5888 >> 2];
$6 = $4 - HEAP32[$6 + 5888 >> 2] | 0;
HEAP32[$5 + 16 >> 2] = (Math_imul($6 >> 16, $3) + $4 | 0) + (Math_imul($6 & 65535, $3) >> 16);
$4 = $10 << 3;
$10 = HEAP32[$4 + 5956 >> 2];
$7 = $7 << 3;
$6 = $10 - HEAP32[$7 + 5956 >> 2] | 0;
HEAP32[$5 + 12 >> 2] = (Math_imul($6 >> 16, $3) + $10 | 0) + (Math_imul($6 & 65535, $3) >> 16);
$4 = HEAP32[$4 + 5952 >> 2];
$7 = $4 - HEAP32[$7 + 5952 >> 2] | 0;
HEAP32[$5 + 8 >> 2] = (Math_imul($7 >> 16, $3) + $4 | 0) + (Math_imul($7 & 65535, $3) >> 16);
break label$2;
}
$4 = Math_imul($10, 12);
$6 = Math_imul($7, 12);
$8 = HEAP32[$6 + 5896 >> 2];
$9 = HEAP32[$4 + 5896 >> 2] - $8 | 0;
HEAP32[$5 + 24 >> 2] = (Math_imul($9 >> 16, $3) + $8 | 0) + (Math_imul($9 & 65535, $3) >> 16);
$8 = HEAP32[$6 + 5892 >> 2];
$9 = HEAP32[$4 + 5892 >> 2] - $8 | 0;
HEAP32[$5 + 20 >> 2] = (Math_imul($9 >> 16, $3) + $8 | 0) + (Math_imul($9 & 65535, $3) >> 16);
$8 = HEAP32[$4 + 5888 >> 2];
$4 = HEAP32[$6 + 5888 >> 2];
$6 = $8 - $4 | 0;
HEAP32[$5 + 16 >> 2] = (Math_imul($6 >> 16, $3) + $4 | 0) + (Math_imul($6 & 65535, $3) >> 16);
$4 = $10 << 3;
$7 = $7 << 3;
$10 = HEAP32[$7 + 5956 >> 2];
$6 = HEAP32[$4 + 5956 >> 2] - $10 | 0;
HEAP32[$5 + 12 >> 2] = (Math_imul($6 >> 16, $3) + $10 | 0) + (Math_imul($6 & 65535, $3) >> 16);
$7 = HEAP32[$7 + 5952 >> 2];
$4 = HEAP32[$4 + 5952 >> 2] - $7 | 0;
HEAP32[$5 + 8 >> 2] = (Math_imul($4 >> 16, $3) + $7 | 0) + (Math_imul($4 & 65535, $3) >> 16);
break label$2;
}
$3 = Math_imul($7, 12);
HEAP32[$5 + 24 >> 2] = HEAP32[$3 + 5896 >> 2];
$6 = $3 + 5888 | 0;
$4 = HEAP32[$6 >> 2];
$3 = HEAP32[$6 + 4 >> 2];
HEAP32[$5 + 16 >> 2] = $4;
HEAP32[$5 + 20 >> 2] = $3;
$6 = ($7 << 3) + 5952 | 0;
$3 = HEAP32[$6 >> 2];
$4 = HEAP32[$6 + 4 >> 2];
HEAP32[$5 + 8 >> 2] = $3;
HEAP32[$5 + 12 >> 2] = $4;
break label$2;
}
HEAP32[$5 + 24 >> 2] = HEAP32[1486];
$3 = HEAP32[1485];
$4 = HEAP32[1484];
HEAP32[$5 + 16 >> 2] = $4;
HEAP32[$5 + 20 >> 2] = $3;
$4 = HEAP32[1497];
$3 = HEAP32[1496];
HEAP32[$5 + 8 >> 2] = $3;
HEAP32[$5 + 12 >> 2] = $4;
}
$3 = $11 + $12 | 0;
$3 = ($3 | 0) > 0 ? $3 : 0;
HEAP32[$0 + 8 >> 2] = ($3 | 0) < 256 ? $3 : 256;
silk_biquad_alt_stride1($1, $5 + 16 | 0, $5 + 8 | 0, $0, $1, $2);
}
__stack_pointer = $5 + 32 | 0;
}
function silk_resampler_init($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0;
label$1 : {
label$2 : {
$4 = memset($0, 0, 300);
$0 = $4;
label$3 : {
if ($3) {
label$5 : {
if (($1 | 0) <= 15999) {
if (($1 | 0) == 8e3 | ($1 | 0) == 12e3) {
break label$5;
}
break label$1;
}
if (($1 | 0) == 16e3 | ($1 | 0) == 48e3) {
break label$5;
}
if (($1 | 0) != 24e3) {
break label$1;
}
}
if (($2 | 0) != 16e3 ? !(($2 | 0) == 8e3 | ($2 | 0) == 12e3) : 0) {
break label$1;
}
$3 = (Math_imul(($1 >>> 12 | 0) - (($1 | 0) > 16e3) >> (($1 | 0) > 24e3), 3) + ($2 >>> 12 | 0) | 0) + 6487 | 0;
break label$3;
}
if (($1 | 0) != 12e3 ? !(($1 | 0) == 8e3 | ($1 | 0) == 16e3) : 0) {
break label$2;
}
label$9 : {
if (($2 | 0) <= 15999) {
if (($2 | 0) == 8e3 | ($2 | 0) == 12e3) {
break label$9;
}
break label$2;
}
if (($2 | 0) == 16e3 | ($2 | 0) == 24e3) {
break label$9;
}
if (($2 | 0) != 48e3) {
break label$2;
}
}
$3 = (Math_imul($1 >>> 12 | 0, 5) + (($2 >>> 12 | 0) - (($2 | 0) > 16e3) >> (($2 | 0) > 24e3)) | 0) + 6500 | 0;
}
HEAP32[$0 + 292 >> 2] = HEAP8[$3 | 0];
HEAP32[$4 + 288 >> 2] = (($2 & 65535) >>> 0) / 1e3;
$3 = (($1 & 65535) >>> 0) / 1e3 | 0;
HEAP32[$4 + 284 >> 2] = $3;
HEAP32[$4 + 268 >> 2] = Math_imul($3, 10);
label$11 : {
if (($1 | 0) < ($2 | 0)) {
$5 = 1;
if ($1 << 1 == ($2 | 0)) {
HEAP32[$4 + 264 >> 2] = 1;
$5 = 0;
break label$11;
}
HEAP32[$4 + 264 >> 2] = 2;
break label$11;
}
if (($1 | 0) > ($2 | 0)) {
HEAP32[$4 + 264 >> 2] = 3;
$3 = $2 << 2;
if (($3 | 0) == (Math_imul($1, 3) | 0)) {
HEAP32[$4 + 296 >> 2] = 6e3;
HEAP32[$4 + 276 >> 2] = 18;
HEAP32[$4 + 280 >> 2] = 3;
break label$11;
}
$0 = Math_imul($2, 3);
if (($0 | 0) == $1 << 1) {
HEAP32[$4 + 296 >> 2] = 6064;
HEAP32[$4 + 276 >> 2] = 18;
HEAP32[$4 + 280 >> 2] = 2;
break label$11;
}
if ($2 << 1 == ($1 | 0)) {
HEAP32[$4 + 296 >> 2] = 6112;
HEAP32[$4 + 276 >> 2] = 24;
HEAP32[$4 + 280 >> 2] = 1;
break label$11;
}
if (($0 | 0) == ($1 | 0)) {
HEAP32[$4 + 296 >> 2] = 6144;
HEAP32[$4 + 276 >> 2] = 36;
HEAP32[$4 + 280 >> 2] = 1;
break label$11;
}
if (($1 | 0) == ($3 | 0)) {
HEAP32[$4 + 296 >> 2] = 6192;
HEAP32[$4 + 276 >> 2] = 36;
HEAP32[$4 + 280 >> 2] = 1;
break label$11;
}
if ((Math_imul($2, 6) | 0) == ($1 | 0)) {
HEAP32[$4 + 296 >> 2] = 6240;
HEAP32[$4 + 276 >> 2] = 36;
HEAP32[$4 + 280 >> 2] = 1;
break label$11;
}
celt_fatal(6454, 6474, 154);
abort();
}
HEAP32[$4 + 264 >> 2] = 0;
}
$0 = $1 << $5;
$3 = $2 << 16 >> 16;
$6 = ($2 >>> 15 | 0) + 1 >>> 1 | 0;
$1 = ($1 << ($5 | 14)) / ($2 | 0) << 2;
while (1) {
$2 = $1;
$1 = $2 + 1 | 0;
if (((Math_imul($2 >> 16, $3) + Math_imul($2, $6) | 0) + (Math_imul($2 & 65535, $3) >> 16) | 0) < ($0 | 0)) {
continue;
}
break;
}
HEAP32[$4 + 272 >> 2] = $2;
return 0;
}
celt_fatal(6454, 6474, 101);
abort();
}
celt_fatal(6454, 6474, 94);
abort();
}
function comb_filter($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) {
var $12 = Math_fround(0), $13 = Math_fround(0), $14 = Math_fround(0), $15 = Math_fround(0), $16 = 0, $17 = Math_fround(0), $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = Math_fround(0), $23 = Math_fround(0), $24 = Math_fround(0), $25 = Math_fround(0), $26 = Math_fround(0), $27 = Math_fround(0), $28 = Math_fround(0), $29 = Math_fround(0), $30 = Math_fround(0);
label$1 : {
if (!($5 != Math_fround(0) | $6 != Math_fround(0))) {
if (($0 | 0) == ($1 | 0)) {
break label$1;
}
memmove($0, $1, $4 << 2);
return;
}
$11 = ($3 | 0) > 15 ? $3 : 15;
$18 = -2 - $11 | 0;
$19 = $11 ^ -1;
$20 = 1 - $11 | 0;
$21 = 0 - $11 | 0;
$3 = Math_imul($8, 12);
$22 = Math_fround(HEAPF32[$3 + 1704 >> 2] * $6);
$23 = Math_fround(HEAPF32[$3 + 1700 >> 2] * $6);
$24 = Math_fround(HEAPF32[$3 + 1696 >> 2] * $6);
$3 = $5 == $6 ? ($7 | 0) == ($8 | 0) ? 0 : $10 : $10;
$8 = ($2 | 0) > 15 ? $2 : 15;
$3 = ($11 | 0) == ($8 | 0) ? $3 : $10;
if (($3 | 0) >= 1) {
$10 = Math_imul($7, 12);
$25 = Math_fround(HEAPF32[$10 + 1704 >> 2] * $5);
$26 = Math_fround(HEAPF32[$10 + 1700 >> 2] * $5);
$27 = Math_fround(HEAPF32[$10 + 1696 >> 2] * $5);
$7 = 2 - $11 | 0;
$12 = HEAPF32[($20 << 2) + $1 >> 2];
$13 = HEAPF32[($21 << 2) + $1 >> 2];
$14 = HEAPF32[($19 << 2) + $1 >> 2];
$5 = HEAPF32[($18 << 2) + $1 >> 2];
$10 = 0;
while (1) {
$2 = $10 << 2;
$16 = $2 + $0 | 0;
$15 = HEAPF32[($7 + $10 << 2) + $1 >> 2];
$17 = Math_fround($5 + $15);
$5 = HEAPF32[$2 + $9 >> 2];
$5 = Math_fround($5 * $5);
$17 = Math_fround($17 * Math_fround($22 * $5));
$28 = Math_fround(Math_fround($12 + $14) * Math_fround($23 * $5));
$29 = Math_fround($13 * Math_fround($24 * $5));
$30 = HEAPF32[$1 + $2 >> 2];
$2 = ($10 - $8 << 2) + $1 | 0;
$5 = Math_fround(Math_fround(1) - $5);
HEAPF32[$16 >> 2] = $17 + Math_fround($28 + Math_fround($29 + Math_fround(Math_fround(Math_fround($30 + Math_fround(HEAPF32[$2 >> 2] * Math_fround($27 * $5))) + Math_fround(Math_fround($26 * $5) * Math_fround(HEAPF32[$2 + 4 >> 2] + HEAPF32[$2 - 4 >> 2]))) + Math_fround(Math_fround($25 * $5) * Math_fround(HEAPF32[$2 + 8 >> 2] + HEAPF32[$2 - 8 >> 2])))));
$5 = $14;
$14 = $13;
$13 = $12;
$12 = $15;
$10 = $10 + 1 | 0;
if (($10 | 0) != ($3 | 0)) {
continue;
}
break;
}
$16 = $3;
}
if ($6 == Math_fround(0)) {
if (($0 | 0) == ($1 | 0)) {
break label$1;
}
$10 = $3 << 2;
memmove($10 + $0 | 0, $1 + $10 | 0, $4 - $3 << 2);
return;
}
$3 = $4 - $16 | 0;
if (($3 | 0) < 1) {
break label$1;
}
$10 = $16 << 2;
$0 = $10 + $0 | 0;
$9 = 2 - $11 | 0;
$2 = $1 + $10 | 0;
$14 = HEAPF32[$2 + ($18 << 2) >> 2];
$5 = HEAPF32[($19 << 2) + $2 >> 2];
$12 = HEAPF32[($21 << 2) + $2 >> 2];
$13 = HEAPF32[($20 << 2) + $2 >> 2];
$10 = 0;
while (1) {
$1 = $10 << 2;
$15 = HEAPF32[($9 + $10 << 2) + $2 >> 2];
HEAPF32[$1 + $0 >> 2] = Math_fround($22 * Math_fround($14 + $15)) + Math_fround(Math_fround($23 * Math_fround($5 + $13)) + Math_fround(Math_fround($24 * $12) + HEAPF32[$1 + $2 >> 2]));
$14 = $5;
$5 = $12;
$12 = $13;
$13 = $15;
$10 = $10 + 1 | 0;
if (($10 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
}
function compute_stereo_width($0, $1, $2, $3) {
var $4 = Math_fround(0), $5 = Math_fround(0), $6 = Math_fround(0), $7 = Math_fround(0), $8 = Math_fround(0), $9 = Math_fround(0), $10 = Math_fround(0), $11 = 0, $12 = Math_fround(0), $13 = Math_fround(0), $14 = Math_fround(0), $15 = Math_fround(0), $16 = Math_fround(0), $17 = 0;
$11 = ($2 | 0) / ($1 | 0) | 0;
$12 = Math_fround(Math_fround(Math_fround(-25) / Math_fround((($11 | 0) > 50 ? $11 : 50) | 0)) + Math_fround(1));
label$1 : {
label$2 : {
if (($1 | 0) >= 4) {
$17 = $1 - 3 | 0;
$2 = 0;
while (1) {
$1 = $2 << 3;
$4 = HEAPF32[$1 + $0 >> 2];
$5 = HEAPF32[($1 | 4) + $0 >> 2];
$6 = HEAPF32[($1 | 8) + $0 >> 2];
$7 = HEAPF32[($1 | 12) + $0 >> 2];
$8 = HEAPF32[($1 | 16) + $0 >> 2];
$13 = HEAPF32[($1 | 20) + $0 >> 2];
$14 = HEAPF32[($1 | 24) + $0 >> 2];
$15 = HEAPF32[($1 | 28) + $0 >> 2];
$16 = Math_fround($16 + Math_fround(Math_fround(Math_fround(Math_fround($4 * $5) + Math_fround($6 * $7)) + Math_fround($8 * $13)) + Math_fround($14 * $15)));
$9 = Math_fround($9 + Math_fround(Math_fround(Math_fround(Math_fround($5 * $5) + Math_fround($7 * $7)) + Math_fround($13 * $13)) + Math_fround($15 * $15)));
$10 = Math_fround($10 + Math_fround(Math_fround(Math_fround(Math_fround($4 * $4) + Math_fround($6 * $6)) + Math_fround($8 * $8)) + Math_fround($14 * $14)));
$2 = $2 + 4 | 0;
if (($17 | 0) > ($2 | 0)) {
continue;
}
break;
}
if ($10 < Math_fround(1e9) ^ 1) {
break label$2;
}
}
if ($9 < Math_fround(1e9) ^ 1) {
break label$2;
}
if ($9 == $9 & $10 == $10) {
break label$1;
}
}
$9 = Math_fround(0);
$16 = Math_fround(0);
$10 = Math_fround(0);
}
$4 = HEAPF32[$3 + 8 >> 2];
$4 = Math_fround(Math_max(Math_fround($4 + Math_fround($12 * Math_fround($9 - $4))), Math_fround(0)));
HEAPF32[$3 + 8 >> 2] = $4;
$5 = HEAPF32[$3 + 4 >> 2];
$6 = Math_fround(Math_max(Math_fround($5 + Math_fround($12 * Math_fround($16 - $5))), Math_fround(0)));
HEAPF32[$3 + 4 >> 2] = $6;
$5 = HEAPF32[$3 >> 2];
$5 = Math_fround(Math_max(Math_fround($5 + Math_fround($12 * Math_fround($10 - $5))), Math_fround(0)));
HEAPF32[$3 >> 2] = $5;
label$6 : {
if (!(($4 < $5 ? $5 : $4) > Math_fround(.0007999999797903001))) {
$4 = HEAPF32[$3 + 16 >> 2];
break label$6;
}
$5 = Math_fround(Math_sqrt($5));
$7 = Math_fround(Math_sqrt($4));
$4 = Math_fround($5 * $7);
$6 = $4 > $6 ? $6 : $4;
HEAPF32[$3 + 4 >> 2] = $6;
$5 = Math_fround(Math_sqrt($5));
$7 = Math_fround(Math_sqrt($7));
$4 = Math_fround($6 / Math_fround($4 + Math_fround(1.0000000036274937e-15)));
$8 = HEAPF32[$3 + 12 >> 2];
$4 = Math_fround(Math_fround(Math_fround(Math_fround(Math_abs(Math_fround($5 - $7))) / Math_fround(Math_fround($5 + Math_fround(1.0000000036274937e-15)) + $7)) * Math_fround(Math_sqrt(Math_fround(Math_fround(1) - Math_fround($4 * $4))))) - $8);
$5 = Math_fround($11 | 0);
$4 = Math_fround($8 + Math_fround($4 / $5));
HEAPF32[$3 + 12 >> 2] = $4;
$5 = Math_fround(HEAPF32[$3 + 16 >> 2] + Math_fround(Math_fround(-.019999999552965164) / $5));
$4 = $4 < $5 ? $5 : $4;
HEAPF32[$3 + 16 >> 2] = $4;
}
return Math_fround(Math_min(Math_fround($4 * Math_fround(20)), Math_fround(1)));
}
function silk_process_gains_FLP($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = Math_fround(0), $7 = 0, $8 = 0, $9 = Math_fround(0), $10 = 0;
$7 = __stack_pointer - 16 | 0;
__stack_pointer = $7;
label$1 : {
if (HEAPU8[$0 + 4765 | 0] != 2) {
$5 = HEAP32[$0 + 4580 >> 2];
break label$1;
}
$8 = exp(+Math_fround(Math_fround(HEAPF32[$1 + 708 >> 2] + Math_fround(-12)) * Math_fround(-.25)));
$5 = HEAP32[$0 + 4580 >> 2];
if (($5 | 0) < 1) {
break label$1;
}
$6 = Math_fround(Math_fround(Math_fround(1 / ($8 + 1)) * Math_fround(-.5)) + Math_fround(1));
while (1) {
$4 = ($3 << 2) + $1 | 0;
HEAPF32[$4 >> 2] = $6 * HEAPF32[$4 >> 2];
$3 = $3 + 1 | 0;
if (($5 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$3 = 0;
$4 = HEAP32[$0 + 4588 >> 2];
$8 = exp2(+Math_fround(Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4716 >> 2]) * Math_fround(-.0078125)) + Math_fround(21)) * Math_fround(.33000001311302185)));
label$4 : {
if (($5 | 0) <= 0) {
break label$4;
}
$9 = Math_fround($8 / +($4 | 0));
while (1) {
$4 = ($3 << 2) + $1 | 0;
$6 = HEAPF32[$4 >> 2];
$6 = Math_fround(Math_sqrt(Math_fround(Math_fround($6 * $6) + Math_fround(HEAPF32[$4 + 712 >> 2] * $9))));
HEAPF32[$4 >> 2] = $6 < Math_fround(32767) ? $6 : Math_fround(32767);
$3 = $3 + 1 | 0;
if (($5 | 0) != ($3 | 0)) {
continue;
}
break;
}
$3 = 0;
if (($5 | 0) <= 0) {
break label$4;
}
while (1) {
$4 = $3 << 2;
$10 = $7 + $4 | 0;
$6 = Math_fround(HEAPF32[$1 + $4 >> 2] * Math_fround(65536));
label$7 : {
if (Math_fround(Math_abs($6)) < Math_fround(2147483648)) {
$4 = ~~$6;
break label$7;
}
$4 = -2147483648;
}
HEAP32[$10 >> 2] = $4;
$3 = $3 + 1 | 0;
if (($5 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
memcpy($1 + 728 | 0, $7, $5 << 2);
HEAP8[$1 + 744 | 0] = HEAPU8[$0 + 7168 | 0];
silk_gains_quant($0 + 4736 | 0, $7, $0 + 7168 | 0, ($2 | 0) == 2, HEAP32[$0 + 4580 >> 2]);
$5 = HEAP32[$0 + 4580 >> 2];
if (($5 | 0) >= 1) {
$3 = 0;
while (1) {
$4 = $3 << 2;
HEAPF32[$4 + $1 >> 2] = Math_fround(HEAP32[$4 + $7 >> 2]) * Math_fround(152587890625e-16);
$3 = $3 + 1 | 0;
if (($5 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$4 = HEAPU8[$0 + 4765 | 0];
label$11 : {
if (($4 | 0) != 2) {
$3 = HEAP8[$0 + 4766 | 0];
break label$11;
}
$3 = Math_fround(HEAPF32[$1 + 708 >> 2] + Math_fround(Math_fround(HEAP32[$0 + 4712 >> 2]) * Math_fround(30517578125e-15))) > Math_fround(1) ^ 1;
HEAP8[$0 + 4766 | 0] = $3;
}
HEAPF32[$1 + 692 >> 2] = Math_fround(Math_fround(Math_fround(HEAP16[(($4 << 24 >> 24 << 1 & -4) + ($3 << 1) | 0) + 5840 >> 1]) * Math_fround(.0009765625)) * Math_fround(.800000011920929)) + Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4628 >> 2]) * Math_fround(-.05000000074505806)) + Math_fround(1.2000000476837158)) + Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4532 >> 2]) * Math_fround(.20000000298023224)) * Math_fround(-.00390625))) + Math_fround(HEAPF32[$1 + 696 >> 2] * Math_fround(-.10000000149011612))) - Math_fround(HEAPF32[$1 + 700 >> 2] * Math_fround(.20000000298023224)));
__stack_pointer = $7 + 16 | 0;
}
function silk_find_pred_coefs_FLP($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = Math_fround(0);
$5 = __stack_pointer - 2064 | 0;
__stack_pointer = $5;
label$1 : {
label$2 : {
$7 = HEAP32[$0 + 4580 >> 2];
label$3 : {
if (($7 | 0) >= 1) {
while (1) {
$8 = $6 << 2;
HEAPF32[$8 + ($5 + 1568 | 0) >> 2] = Math_fround(1) / HEAPF32[$1 + $8 >> 2];
$6 = $6 + 1 | 0;
if (($7 | 0) != ($6 | 0)) {
continue;
}
break;
}
if (HEAPU8[$0 + 4765 | 0] == 2) {
break label$3;
}
if (($7 | 0) < 1) {
break label$2;
}
$4 = HEAP32[$0 + 4640 >> 2];
$6 = $3 - ($4 << 2) | 0;
$8 = HEAP32[$0 + 4588 >> 2];
$3 = 0;
$2 = $5;
while (1) {
silk_scale_copy_vector_FLP($2, $6, HEAPF32[($5 + 1568 | 0) + ($3 << 2) >> 2], $4 + $8 | 0);
$8 = HEAP32[$0 + 4588 >> 2];
$6 = ($8 << 2) + $6 | 0;
$4 = HEAP32[$0 + 4640 >> 2];
$2 = ($8 + $4 << 2) + $2 | 0;
$3 = $3 + 1 | 0;
$7 = HEAP32[$0 + 4580 >> 2];
if (($3 | 0) < ($7 | 0)) {
continue;
}
break;
}
break label$2;
}
if (HEAPU8[$0 + 4765 | 0] != 2) {
break label$2;
}
}
if ((HEAP32[$1 + 228 >> 2] + 2 | 0) <= (HEAP32[$0 + 4592 >> 2] - HEAP32[$0 + 4640 >> 2] | 0)) {
$6 = $1 + 228 | 0;
silk_find_LTP_FLP($5 + 1664 | 0, $5 + 1584 | 0, $2, $6, HEAP32[$0 + 4588 >> 2], $7);
$8 = $1 + 144 | 0;
silk_quant_LTP_gains_FLP($8, $0 + 4740 | 0, $0 + 4768 | 0, $0 + 4656 | 0, $1 + 708 | 0, $5 + 1664 | 0, $5 + 1584 | 0, HEAP32[$0 + 4588 >> 2], HEAP32[$0 + 4580 >> 2], HEAP32[$0 + 5092 >> 2]);
silk_LTP_scale_ctrl_FLP($0, $1, $4);
$7 = HEAP32[$0 + 4640 >> 2];
silk_LTP_analysis_filter_FLP($5, $3 - ($7 << 2) | 0, $8, $6, $5 + 1568 | 0, HEAP32[$0 + 4588 >> 2], HEAP32[$0 + 4580 >> 2], $7);
break label$1;
}
celt_fatal(16745, 16862, 62);
abort();
}
memset($1 + 144 | 0, 0, Math_imul($7, 20));
HEAP32[$1 + 708 >> 2] = 0;
HEAP32[$0 + 4656 >> 2] = 0;
}
$9 = Math_fround(.009999999776482582);
$2 = $0;
$4 = $5 + 1536 | 0;
$3 = $5;
if (!HEAP32[$0 + 4664 >> 2]) {
$9 = HEAPF32[$1 + 700 >> 2];
$9 = Math_fround(Math_fround(Math_fround(exp2(+Math_fround(HEAPF32[$1 + 708 >> 2] / Math_fround(3)))) / Math_fround(1e4)) / Math_fround(Math_fround($9 * Math_fround(.75)) + Math_fround(.25)));
}
silk_find_LPC_FLP($2, $4, $3, $9);
$6 = $1 + 16 | 0;
silk_process_NLSFs_FLP($0, $6, $5 + 1536 | 0, $0 + 4500 | 0);
silk_residual_energy_FLP($1 + 712 | 0, $5, $6, $1, HEAP32[$0 + 4588 >> 2], HEAP32[$0 + 4580 >> 2], HEAP32[$0 + 4640 >> 2]);
$3 = $5 + 1560 | 0;
$2 = HEAP32[$3 >> 2];
$1 = HEAP32[$3 + 4 >> 2];
$3 = $2;
$2 = $0 + 4524 | 0;
HEAP32[$2 >> 2] = $3;
HEAP32[$2 + 4 >> 2] = $1;
$3 = $5 + 1552 | 0;
$1 = HEAP32[$3 >> 2];
$2 = HEAP32[$3 + 4 >> 2];
$3 = $1;
$1 = $0 + 4516 | 0;
HEAP32[$1 >> 2] = $3;
HEAP32[$1 + 4 >> 2] = $2;
$1 = HEAP32[$5 + 1548 >> 2];
$2 = HEAP32[$5 + 1544 >> 2];
$3 = $2;
$2 = $0 + 4508 | 0;
HEAP32[$2 >> 2] = $3;
HEAP32[$2 + 4 >> 2] = $1;
$2 = HEAP32[$5 + 1540 >> 2];
$1 = HEAP32[$5 + 1536 >> 2];
HEAP32[$0 + 4500 >> 2] = $1;
HEAP32[$0 + 4504 >> 2] = $2;
__stack_pointer = $5 + 2064 | 0;
}
function spreading_decision($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
var $11 = 0, $12 = 0, $13 = 0, $14 = Math_fround(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 = Math_fround(0);
label$1 : {
label$2 : {
if (($7 | 0) > 0) {
$18 = HEAP32[$0 + 32 >> 2];
$12 = $18 + ($7 << 1) | 0;
label$4 : {
if ((Math_imul(HEAP16[$12 >> 1] - HEAP16[$12 - 2 >> 1] | 0, $9) | 0) < 9) {
break label$4;
}
$25 = Math_imul(HEAP32[$0 + 44 >> 2], $9);
$26 = ($8 | 0) > 1 ? $8 : 1;
$27 = HEAPU16[$18 >> 1];
while (1) {
$28 = (Math_imul($19, $25) << 2) + $1 | 0;
$20 = $27;
$15 = 0;
while (1) {
$11 = $20 << 16;
$24 = $15 + 1 | 0;
$20 = HEAP16[($24 << 1) + $18 >> 1];
$11 = $11 >> 16;
$13 = Math_imul($20 - $11 | 0, $9);
if (($13 | 0) >= 9) {
$29 = (Math_imul($9, $11) << 2) + $28 | 0;
$30 = Math_fround($13 | 0);
$21 = 0;
$12 = 0;
$16 = 0;
$11 = 0;
while (1) {
$14 = HEAPF32[($11 << 2) + $29 >> 2];
$14 = Math_fround(Math_fround($14 * $14) * $30);
$21 = ($14 < Math_fround(.015625)) + $21 | 0;
$12 = ($14 < Math_fround(.0625)) + $12 | 0;
$16 = ($14 < Math_fround(.25)) + $16 | 0;
$11 = $11 + 1 | 0;
if (($13 | 0) != ($11 | 0)) {
continue;
}
break;
}
$11 = HEAP32[($15 << 2) + $10 >> 2];
$22 = Math_imul($11, (($12 << 1 >= ($13 | 0)) + ($16 << 1 >= ($13 | 0)) | 0) + ($21 << 1 >= ($13 | 0)) | 0) + $22 | 0;
$23 = $11 + $23 | 0;
$17 = (HEAP32[$0 + 8 >> 2] - 4 | 0) < ($15 | 0) ? (($12 + $16 << 5 >>> 0) / ($13 >>> 0) | 0) + $17 | 0 : $17;
}
$15 = $24;
if (($15 | 0) != ($7 | 0)) {
continue;
}
break;
}
$19 = $19 + 1 | 0;
if (($26 | 0) != ($19 | 0)) {
continue;
}
break;
}
if ($6) {
$11 = $17 ? ($17 >>> 0) / (Math_imul(($7 - HEAP32[$0 + 8 >> 2] | 0) + 4 | 0, $8) >>> 0) | 0 : 0;
$11 = $11 + HEAP32[$4 >> 2] >> 1;
HEAP32[$4 >> 2] = $11;
label$13 : {
label$14 : {
switch (HEAP32[$5 >> 2]) {
case 2:
$11 = $11 + 4 | 0;
break label$13;
case 0:
break label$14;
default:
break label$13;
}
}
$11 = $11 - 4 | 0;
}
HEAP32[$5 >> 2] = ($11 | 0) > 22 ? 2 : ($11 | 0) > 18;
}
if (($23 | 0) <= 0) {
break label$2;
}
if (($22 | 0) <= -1) {
break label$1;
}
$12 = HEAP32[$2 >> 2] + (($22 << 8 >>> 0) / ($23 >>> 0) | 0) >> 1;
HEAP32[$2 >> 2] = $12;
$11 = 3;
$12 = (Math_imul($12, 3) - ($3 << 7) | 0) + 448 | 0;
if (($12 | 0) < 318) {
break label$4;
}
$11 = 2;
if (($12 | 0) < 1022) {
break label$4;
}
$11 = ($12 | 0) < 1534;
}
return $11;
}
celt_fatal(41813, 41800, 489);
abort();
}
celt_fatal(41837, 41800, 545);
abort();
}
celt_fatal(41865, 41800, 546);
abort();
}
function decode_pulses($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = Math_fround(0), $7 = 0, $8 = Math_fround(0), $9 = 0, $10 = 0, $11 = 0;
$4 = $2 + 1 | 0;
$5 = ($1 | 0) > ($2 | 0);
$5 = ec_dec_uint($3, HEAP32[HEAP32[(($5 ? $4 : $1) << 2) + 36320 >> 2] + ((($1 | 0) > ($4 | 0) ? $1 : $4) << 2) >> 2] + HEAP32[HEAP32[((($1 | 0) < ($2 | 0) ? $1 : $2) << 2) + 36320 >> 2] + (($5 ? $1 : $2) << 2) >> 2] | 0);
label$1 : {
if (($2 | 0) > 0) {
if (($1 | 0) < 2) {
break label$1;
}
if (($1 | 0) != 2) {
while (1) {
$9 = $1;
label$5 : {
if (($1 | 0) <= ($2 | 0)) {
$3 = $2;
$7 = $9 << 2;
$10 = HEAP32[$7 + 36320 >> 2];
$4 = HEAP32[($10 + ($2 << 2) | 0) + 4 >> 2];
$11 = $5 >>> 0 >= $4 >>> 0 ? -1 : 0;
$4 = $5 - ($4 & $11) | 0;
label$7 : {
if ($4 >>> 0 < HEAPU32[$7 + $10 >> 2]) {
while (1) {
$1 = $1 - 1 | 0;
$5 = HEAP32[HEAP32[($1 << 2) + 36320 >> 2] + $7 >> 2];
if ($5 >>> 0 > $4 >>> 0) {
continue;
}
break label$7;
}
}
while (1) {
$1 = $3;
$3 = $1 - 1 | 0;
$5 = HEAP32[($1 << 2) + $10 >> 2];
if ($5 >>> 0 > $4 >>> 0) {
continue;
}
break;
}
}
$3 = (($2 + $11 | 0) - $1 ^ $11) << 16 >> 16;
HEAP32[$0 >> 2] = $3;
$6 = Math_fround($3 | 0);
$8 = Math_fround($8 + Math_fround($6 * $6));
$2 = $1;
$5 = $4 - $5 | 0;
break label$5;
}
$4 = $9 << 2;
$3 = $2 << 2;
$1 = HEAP32[$4 + HEAP32[$3 + 36324 >> 2] >> 2];
$3 = HEAP32[HEAP32[$3 + 36320 >> 2] + $4 >> 2];
if (!($5 >>> 0 < $3 >>> 0 | $1 >>> 0 <= $5 >>> 0)) {
HEAP32[$0 >> 2] = 0;
$5 = $5 - $3 | 0;
break label$5;
}
$7 = $1 >>> 0 <= $5 >>> 0 ? -1 : 0;
$3 = $5 - ($7 & $1) | 0;
$1 = $2;
while (1) {
$1 = $1 - 1 | 0;
$5 = HEAP32[HEAP32[($1 << 2) + 36320 >> 2] + $4 >> 2];
if ($5 >>> 0 > $3 >>> 0) {
continue;
}
break;
}
$4 = (($2 + $7 | 0) - $1 ^ $7) << 16 >> 16;
HEAP32[$0 >> 2] = $4;
$6 = Math_fround($4 | 0);
$8 = Math_fround($8 + Math_fround($6 * $6));
$2 = $1;
$5 = $3 - $5 | 0;
}
$1 = $9 - 1 | 0;
$0 = $0 + 4 | 0;
if (($9 | 0) > 3) {
continue;
}
break;
}
}
$1 = $2 << 1 | 1;
$4 = $5 >>> 0 >= $1 >>> 0;
$2 = $2 - $4 | 0;
$4 = $4 ? -1 : 0;
$3 = $5 - ($4 & $1) | 0;
$5 = $3 + 1 | 0;
$1 = $5 >>> 1 | 0;
$4 = ($2 - $1 ^ $4) << 16 >> 16;
HEAP32[$0 >> 2] = $4;
$3 = $3 - ($1 ? ($5 & -2) - 1 | 0 : 0) | 0;
$1 = ($1 - $3 ^ 0 - $3) << 16 >> 16;
HEAP32[$0 + 4 >> 2] = $1;
$6 = Math_fround($4 | 0);
$6 = Math_fround($8 + Math_fround($6 * $6));
$8 = Math_fround($1 | 0);
return Math_fround($6 + Math_fround($8 * $8));
}
celt_fatal(36272, 36295, 469);
abort();
}
celt_fatal(41504, 36295, 470);
abort();
}
function resampler_basic_interpolate_single($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 $6 = Math_fround(0), $7 = Math_fround(0), $8 = Math_fround(0), $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = Math_fround(0), $14 = Math_fround(0), $15 = Math_fround(0), $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = Math_fround(0), $22 = Math_fround(0), $23 = 0, $24 = 0, $25 = 0, $26 = Math_fround(0), $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = Math_fround(0);
$1 = $1 << 2;
$16 = $1 + HEAP32[$0 + 64 >> 2] | 0;
$12 = HEAP32[$16 >> 2];
$17 = HEAP32[$0 + 60 >> 2] + $1 | 0;
$9 = HEAP32[$17 >> 2];
$18 = HEAP32[$3 >> 2];
label$1 : {
if (($9 | 0) >= ($18 | 0)) {
break label$1;
}
$23 = HEAP32[$0 + 40 >> 2];
$24 = HEAP32[$0 + 36 >> 2];
$25 = HEAP32[$0 + 92 >> 2];
$3 = HEAP32[$5 >> 2];
$19 = ($3 | 0) > 0 ? $3 : 0;
$10 = HEAP32[$0 + 12 >> 2];
$26 = Math_fround($10 >>> 0);
$20 = HEAP32[$0 + 24 >> 2];
$27 = ($20 | 0) < 1;
while (1) {
if (($11 | 0) == ($19 | 0)) {
$11 = $19;
break label$1;
}
$5 = HEAP32[$0 + 48 >> 2];
$3 = Math_imul($12, $5);
$1 = $3;
$3 = ($3 >>> 0) / ($10 >>> 0) | 0;
$7 = Math_fround(Math_fround($1 - Math_imul($10, $3) >>> 0) / $26);
label$4 : {
if ($27) {
$8 = Math_fround(0);
$13 = Math_fround(0);
$14 = Math_fround(0);
$15 = Math_fround(0);
break label$4;
}
$28 = ($9 << 2) + $2 | 0;
$29 = 4 - $3 | 0;
$30 = HEAP32[$0 + 76 >> 2];
$3 = 0;
$15 = Math_fround(0);
$14 = Math_fround(0);
$13 = Math_fround(0);
$8 = Math_fround(0);
while (1) {
$6 = HEAPF32[($3 << 2) + $28 >> 2];
$3 = $3 + 1 | 0;
$1 = (Math_imul($5, $3) + $29 << 2) + $30 | 0;
$14 = Math_fround($14 + Math_fround($6 * HEAPF32[$1 >> 2]));
$15 = Math_fround($15 + Math_fround($6 * HEAPF32[$1 + 4 >> 2]));
$13 = Math_fround($13 + Math_fround($6 * HEAPF32[$1 - 4 >> 2]));
$8 = Math_fround($8 + Math_fround($6 * HEAPF32[$1 - 8 >> 2]));
if (($3 | 0) != ($20 | 0)) {
continue;
}
break;
}
}
$6 = Math_fround($7 * Math_fround(.16666999459266663));
$21 = Math_fround($7 * Math_fround($7 * $6));
$22 = Math_fround($21 - $6);
$31 = Math_fround($22 * $8);
$6 = Math_fround($7 * Math_fround($7 * Math_fround(.5)));
$8 = Math_fround(Math_fround($7 + $6) - Math_fround($7 * $6));
$6 = Math_fround(Math_fround($6 + Math_fround($7 * Math_fround(-.3333300054073334))) - $21);
HEAPF32[(Math_imul($11, $25) << 2) + $4 >> 2] = Math_fround(Math_fround($31 + Math_fround($8 * $13)) + Math_fround($14 * Math_fround(1 - +$22 - +$8 - +$6))) + Math_fround($6 * $15);
$3 = $12 + $23 | 0;
$12 = $3 - ($3 >>> 0 < $10 >>> 0 ? 0 : $10) | 0;
$11 = $11 + 1 | 0;
$9 = ($9 + $24 | 0) + ($3 >>> 0 >= $10 >>> 0) | 0;
if (($18 | 0) > ($9 | 0)) {
continue;
}
break;
}
}
HEAP32[$17 >> 2] = $9;
HEAP32[$16 >> 2] = $12;
return $11 | 0;
}
function opus_encoder_init($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0;
$4 = __stack_pointer - 32 | 0;
__stack_pointer = $4;
$6 = -1;
label$1 : {
label$2 : {
if (($1 | 0) <= 15999) {
if (($1 | 0) == 8e3 | ($1 | 0) == 12e3) {
break label$2;
}
break label$1;
}
if (($1 | 0) == 16e3 | ($1 | 0) == 48e3) {
break label$2;
}
if (($1 | 0) != 24e3) {
break label$1;
}
}
if ($2 - 1 >>> 0 > 1) {
break label$1;
}
$5 = $3 - 2048 | 0;
if ($5 >>> 0 > 3 | ($5 | 0) == 2) {
break label$1;
}
$5 = 0;
if (!silk_Get_Encoder_Size($4 + 28 | 0)) {
HEAP32[$4 + 28 >> 2] = HEAP32[$4 + 28 >> 2] + 3 & -4;
$5 = (celt_encoder_get_size($2) + HEAP32[$4 + 28 >> 2] | 0) + 18140 | 0;
}
$0 = memset($0, 0, $5);
if (silk_Get_Encoder_Size($4 + 28 | 0)) {
break label$1;
}
$6 = HEAP32[$4 + 28 >> 2] + 3 & -4;
HEAP32[$4 + 28 >> 2] = $6;
HEAP32[$0 + 14192 >> 2] = $2;
HEAP32[$0 + 112 >> 2] = $2;
HEAP32[$0 + 4 >> 2] = 18140;
HEAP32[$0 + 180 >> 2] = 0;
HEAP32[$0 + 144 >> 2] = $1;
$5 = $6 + 18140 | 0;
HEAP32[$0 >> 2] = $5;
$6 = -3;
if (silk_InitEncoder($0 + 18140 | 0, 0, $0 + 8 | 0)) {
break label$1;
}
HEAP32[$0 + 8 >> 2] = $2;
HEAP32[$0 + 12 >> 2] = $2;
HEAP32[$0 + 76 >> 2] = 0;
HEAP32[$0 + 56 >> 2] = 0;
HEAP32[$0 + 60 >> 2] = 0;
HEAP32[$0 + 44 >> 2] = 9;
HEAP32[$0 + 48 >> 2] = 0;
HEAP32[$0 + 36 >> 2] = 25e3;
HEAP32[$0 + 40 >> 2] = 0;
HEAP32[$0 + 28 >> 2] = 16e3;
HEAP32[$0 + 32 >> 2] = 20;
HEAP32[$0 + 20 >> 2] = 16e3;
HEAP32[$0 + 24 >> 2] = 8e3;
HEAP32[$0 + 16 >> 2] = HEAP32[$0 + 144 >> 2];
$5 = $0 + $5 | 0;
if (celt_encoder_init($5, $1, $2, HEAP32[$0 + 180 >> 2])) {
break label$1;
}
$6 = 0;
HEAP32[$4 + 16 >> 2] = 0;
opus_custom_encoder_ctl($5, 10016, $4 + 16 | 0);
HEAP32[$4 >> 2] = HEAP32[$0 + 44 >> 2];
opus_custom_encoder_ctl($5, 4010, $4);
HEAP32[$0 + 148 >> 2] = 1;
HEAP32[$0 + 152 >> 2] = 1;
HEAP32[$0 + 160 >> 2] = Math_imul($1, $2) + 3e3;
HEAP32[$0 + 128 >> 2] = -1e3;
HEAP32[$0 + 132 >> 2] = 1105;
HEAP32[$0 + 108 >> 2] = $3;
HEAP32[$0 + 136 >> 2] = -1e3;
HEAP32[$0 + 140 >> 2] = -1;
HEAP32[$0 + 120 >> 2] = -1e3;
HEAP32[$0 + 124 >> 2] = -1e3;
HEAP32[$0 + 164 >> 2] = -1e3;
HEAP32[$0 + 168 >> 2] = 24;
HEAP32[$0 + 156 >> 2] = 5e3;
HEAP32[$0 + 14204 >> 2] = 1065353216;
HEAP16[$0 + 14196 >> 1] = 16384;
$1 = HEAP32[$0 + 144 >> 2];
HEAP32[$0 + 172 >> 2] = ($1 | 0) / 100;
HEAP32[$0 + 116 >> 2] = ($1 | 0) / 250;
$1 = silk_lin2log(60);
HEAP32[$0 + 14252 >> 2] = 1;
HEAP32[$0 + 14240 >> 2] = 1105;
HEAP32[$0 + 14224 >> 2] = 1001;
HEAP32[$0 + 14200 >> 2] = $1 << 8;
tonality_analysis_init($0 + 188 | 0, HEAP32[$0 + 144 >> 2]);
HEAP32[$0 + 192 >> 2] = HEAP32[$0 + 108 >> 2];
}
__stack_pointer = $4 + 32 | 0;
return $6;
}
function resampler_basic_interpolate_double($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 $6 = Math_fround(0), $7 = 0, $8 = Math_fround(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 = Math_fround(0), $23 = 0, $24 = 0, $25 = 0, $26 = Math_fround(0), $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0;
$1 = $1 << 2;
$17 = $1 + HEAP32[$0 + 64 >> 2] | 0;
$13 = HEAP32[$17 >> 2];
$18 = HEAP32[$0 + 60 >> 2] + $1 | 0;
$9 = HEAP32[$18 >> 2];
$19 = HEAP32[$3 >> 2];
label$1 : {
if (($9 | 0) >= ($19 | 0)) {
break label$1;
}
$23 = HEAP32[$0 + 40 >> 2];
$24 = HEAP32[$0 + 36 >> 2];
$25 = HEAP32[$0 + 92 >> 2];
$3 = HEAP32[$5 >> 2];
$20 = ($3 | 0) > 0 ? $3 : 0;
$10 = HEAP32[$0 + 12 >> 2];
$26 = Math_fround($10 >>> 0);
$21 = HEAP32[$0 + 24 >> 2];
$27 = ($21 | 0) < 1;
while (1) {
if (($12 | 0) == ($20 | 0)) {
$12 = $20;
break label$1;
}
$5 = HEAP32[$0 + 48 >> 2];
$3 = Math_imul($13, $5);
$1 = $3;
$3 = ($3 >>> 0) / ($10 >>> 0) | 0;
$8 = Math_fround(Math_fround($1 - Math_imul($10, $3) >>> 0) / $26);
label$4 : {
if ($27) {
$7 = 0;
$11 = 0;
$14 = 0;
$15 = 0;
break label$4;
}
$28 = ($9 << 2) + $2 | 0;
$29 = 4 - $3 | 0;
$30 = HEAP32[$0 + 76 >> 2];
$3 = 0;
$15 = 0;
$14 = 0;
$11 = 0;
$7 = 0;
while (1) {
$6 = HEAPF32[($3 << 2) + $28 >> 2];
$3 = $3 + 1 | 0;
$1 = (Math_imul($5, $3) + $29 << 2) + $30 | 0;
$14 = $14 + +Math_fround($6 * HEAPF32[$1 >> 2]);
$15 = $15 + +Math_fround($6 * HEAPF32[$1 + 4 >> 2]);
$11 = $11 + +Math_fround($6 * HEAPF32[$1 - 4 >> 2]);
$7 = $7 + +Math_fround($6 * HEAPF32[$1 - 8 >> 2]);
if (($3 | 0) != ($21 | 0)) {
continue;
}
break;
}
}
$6 = Math_fround($8 * Math_fround(.16666999459266663));
$22 = Math_fround($8 * Math_fround($8 * $6));
$16 = +Math_fround($22 - $6);
$31 = $7 * $16;
$6 = Math_fround($8 * Math_fround($8 * Math_fround(.5)));
$7 = +Math_fround(Math_fround($8 + $6) - Math_fround($8 * $6));
$11 = $31 + $11 * $7;
$16 = 1 - $16 - $7;
$7 = +Math_fround(Math_fround($6 + Math_fround($8 * Math_fround(-.3333300054073334))) - $22);
HEAPF32[(Math_imul($12, $25) << 2) + $4 >> 2] = $11 + $14 * +Math_fround($16 - $7) + $15 * $7;
$3 = $13 + $23 | 0;
$13 = $3 - ($3 >>> 0 < $10 >>> 0 ? 0 : $10) | 0;
$12 = $12 + 1 | 0;
$9 = ($9 + $24 | 0) + ($3 >>> 0 >= $10 >>> 0) | 0;
if (($19 | 0) > ($9 | 0)) {
continue;
}
break;
}
}
HEAP32[$18 >> 2] = $9;
HEAP32[$17 >> 2] = $13;
return $12 | 0;
}
function silk_find_pitch_lags_FLP($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = Math_fround(0), $10 = 0, $11 = 0, $12 = 0;
$5 = __stack_pointer - 1744 | 0;
__stack_pointer = $5;
$7 = HEAP32[$0 + 4548 >> 2];
$8 = HEAP32[$0 + 4596 >> 2];
$6 = $8 + HEAP32[$0 + 4584 >> 2] | 0;
$10 = HEAP32[$0 + 4592 >> 2];
$11 = $6 + $10 | 0;
if (($7 | 0) <= ($11 | 0)) {
$6 = (($6 << 2) + $3 | 0) - ($7 << 2) | 0;
silk_apply_sine_window_FLP($5, $6, 1, $8);
$8 = HEAP32[$0 + 4596 >> 2];
$7 = $8 << 2;
$12 = $7 + $5 | 0;
$7 = $7 + $6 | 0;
$6 = HEAP32[$0 + 4548 >> 2] - ($8 << 1) << 2;
silk_apply_sine_window_FLP($6 + memcpy($12, $7, $6) | 0, $7 + $6 | 0, 2, $8);
silk_autocorrelation_FLP($5 + 1664 | 0, $5, HEAP32[$0 + 4548 >> 2], HEAP32[$0 + 4648 >> 2] + 1 | 0);
$9 = HEAPF32[$5 + 1664 >> 2];
HEAPF32[$5 + 1664 >> 2] = $9 + Math_fround(Math_fround($9 * Math_fround(.0010000000474974513)) + Math_fround(1));
$9 = silk_schur_FLP($5 + 1536 | 0, $5 + 1664 | 0, HEAP32[$0 + 4648 >> 2]);
HEAPF32[$1 + 704 >> 2] = HEAPF32[$5 + 1664 >> 2] / ($9 > Math_fround(1) ? $9 : Math_fround(1));
silk_k2a_FLP($5 + 1600 | 0, $5 + 1536 | 0, HEAP32[$0 + 4648 >> 2]);
silk_bwexpander_FLP($5 + 1600 | 0, HEAP32[$0 + 4648 >> 2], Math_fround(.9900000095367432));
silk_LPC_analysis_filter_FLP($2, $5 + 1600 | 0, $3 - ($10 << 2) | 0, $11, HEAP32[$0 + 4648 >> 2]);
label$2 : {
if (!(HEAP32[$0 + 4664 >> 2] | !HEAPU8[$0 + 4765 | 0])) {
if (!silk_pitch_analysis_core_FLP($2, $1 + 228 | 0, $0 + 4762 | 0, $0 + 4764 | 0, $0 + 10060 | 0, HEAP32[$0 + 4544 >> 2], Math_fround(Math_fround(HEAP32[$0 + 4652 >> 2]) * Math_fround(152587890625e-16)), Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4648 >> 2]) * Math_fround(-.004000000189989805)) + Math_fround(.6000000238418579)) + Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4532 >> 2]) * Math_fround(.10000000149011612)) * Math_fround(-.00390625))) + Math_fround(Math_fround(HEAP8[$0 + 4541 | 0] >> 1) * Math_fround(-.15000000596046448))) + Math_fround(Math_fround(Math_fround(HEAP32[$0 + 4712 >> 2]) * Math_fround(.10000000149011612)) * Math_fround(-30517578125e-15))), HEAP32[$0 + 4576 >> 2], HEAP32[$0 + 4644 >> 2], HEAP32[$0 + 4580 >> 2], $4)) {
HEAP8[$0 + 4765 | 0] = 2;
break label$2;
}
HEAP8[$0 + 4765 | 0] = 1;
break label$2;
}
HEAP32[$1 + 228 >> 2] = 0;
HEAP32[$1 + 232 >> 2] = 0;
HEAP32[$1 + 236 >> 2] = 0;
HEAP32[$1 + 240 >> 2] = 0;
HEAP32[$0 + 10060 >> 2] = 0;
HEAP8[$0 + 4764 | 0] = 0;
HEAP16[$0 + 4762 >> 1] = 0;
}
__stack_pointer = $5 + 1744 | 0;
return;
}
celt_fatal(10821, 10883, 59);
abort();
}
function stereo_itheta($0, $1, $2, $3, $4) {
var $5 = Math_fround(0), $6 = Math_fround(0), $7 = Math_fround(0), $8 = Math_fround(0), $9 = Math_fround(0);
label$1 : {
if ($2) {
$6 = Math_fround(1.0000000036274937e-15);
if (($3 | 0) < 1) {
$5 = Math_fround(1.0000000036274937e-15);
break label$1;
}
$2 = 0;
$5 = Math_fround(1.0000000036274937e-15);
while (1) {
$4 = $2 << 2;
$7 = HEAPF32[$4 + $0 >> 2];
$8 = HEAPF32[$1 + $4 >> 2];
$9 = Math_fround($7 - $8);
$5 = Math_fround($5 + Math_fround($9 * $9));
$7 = Math_fround($7 + $8);
$6 = Math_fround($6 + Math_fround($7 * $7));
$2 = $2 + 1 | 0;
if (($3 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$1;
}
if (($3 | 0) < 1) {
$5 = Math_fround(1.0000000036274937e-15);
$6 = Math_fround(1.0000000036274937e-15);
break label$1;
}
$2 = 0;
while (1) {
$5 = HEAPF32[($2 << 2) + $0 >> 2];
$6 = Math_fround($6 + Math_fround($5 * $5));
$2 = $2 + 1 | 0;
if (($3 | 0) != ($2 | 0)) {
continue;
}
break;
}
$6 = Math_fround($6 + Math_fround(1.0000000036274937e-15));
$2 = 0;
$5 = Math_fround(0);
while (1) {
$7 = HEAPF32[($2 << 2) + $1 >> 2];
$5 = Math_fround($5 + Math_fround($7 * $7));
$2 = $2 + 1 | 0;
if (($3 | 0) != ($2 | 0)) {
continue;
}
break;
}
$5 = Math_fround($5 + Math_fround(1.0000000036274937e-15));
}
$8 = Math_fround(Math_sqrt($5));
$5 = Math_fround($8 * $8);
$9 = Math_fround(Math_sqrt($6));
$6 = Math_fround($9 * $9);
$7 = Math_fround(0);
label$8 : {
if (Math_fround($5 + $6) < Math_fround(1.000000045813705e-18)) {
break label$8;
}
$7 = Math_fround(Math_fround(1.5707963705062866) - Math_fround(Math_fround(Math_fround($8 * $9) * Math_fround($5 + Math_fround($6 * Math_fround(.43157973885536194)))) / Math_fround(Math_fround($5 + Math_fround($6 * Math_fround(.6784840226173401))) * Math_fround($5 + Math_fround($6 * Math_fround(.0859554186463356))))));
if (!($5 > $6 ^ 1)) {
break label$8;
}
$7 = Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($8 * $9) * Math_fround($6 + Math_fround($5 * Math_fround(.43157973885536194)))) / Math_fround(Math_fround($6 + Math_fround($5 * Math_fround(.6784840226173401))) * Math_fround($6 + Math_fround($5 * Math_fround(.0859554186463356))))) + Math_fround(1.5707963705062866)) + Math_fround(-1.5707963705062866));
}
$6 = Math_fround(Math_floor(Math_fround(Math_fround($7 * Math_fround(10430.3818359375)) + Math_fround(.5))));
if (Math_fround(Math_abs($6)) < Math_fround(2147483648)) {
return ~~$6;
}
return -2147483648;
}
function silk_resampler_down2_3($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 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;
$6 = __stack_pointer - 1936 | 0;
__stack_pointer = $6;
$5 = $0;
$7 = HEAP32[$5 >> 2];
$4 = HEAP32[$5 + 4 >> 2];
HEAP32[$6 >> 2] = $7;
HEAP32[$6 + 4 >> 2] = $4;
$7 = HEAP32[$5 + 12 >> 2];
$4 = HEAP32[$5 + 8 >> 2];
HEAP32[$6 + 8 >> 2] = $4;
HEAP32[$6 + 12 >> 2] = $7;
$20 = $5 + 16 | 0;
$11 = HEAP16[3144];
$15 = HEAP16[3145];
$12 = HEAP16[3143];
$13 = HEAP16[3142];
$21 = $6 + 16 | 0;
while (1) {
$9 = ($3 | 0) < 480 ? $3 : 480;
silk_resampler_private_AR2($20, $21, $2, 6280, $9);
if (($9 | 0) >= 3) {
$4 = HEAP32[$6 >> 2];
$5 = $6;
$7 = $9;
while (1) {
$14 = Math_imul($4 >> 16, $13) + (Math_imul($4 & 65535, $13) >> 16) | 0;
$4 = HEAP32[$5 + 4 >> 2];
$8 = $4 >> 16;
$10 = $4 & 65535;
$4 = HEAP32[$5 + 8 >> 2];
$16 = (Math_imul($4 & 65535, $15) >> 16) + Math_imul($4 >> 16, $15) | 0;
$4 = HEAP32[$5 + 12 >> 2];
$17 = $4 >> 16;
$18 = $4 & 65535;
$14 = (($16 + ((Math_imul($8, $12) + $14 | 0) + (Math_imul($12, $10) >> 16) | 0) | 0) + Math_imul($17, $11) | 0) + (Math_imul($18, $11) >> 16) | 0;
$19 = ($14 >> 5) + 1 >> 1;
HEAP16[$1 >> 1] = ($14 | 0) > 2097119 ? 32767 : ($19 | 0) > -32768 ? $19 : -32768;
$10 = (((Math_imul($12, $17) + (Math_imul($12, $18) >> 16) | 0) + Math_imul($8, $11) | 0) + $16 | 0) + (Math_imul($11, $10) >> 16) | 0;
$8 = HEAP32[$5 + 16 >> 2];
$8 = ($10 + Math_imul($8 >> 16, $13) | 0) + (Math_imul($8 & 65535, $13) >> 16) | 0;
$10 = ($8 >> 5) + 1 >> 1;
HEAP16[$1 + 2 >> 1] = ($8 | 0) > 2097119 ? 32767 : ($10 | 0) > -32768 ? $10 : -32768;
$1 = $1 + 4 | 0;
$5 = $5 + 12 | 0;
$8 = ($7 | 0) > 5;
$7 = $7 - 3 | 0;
if ($8) {
continue;
}
break;
}
}
$3 = $3 - $9 | 0;
if (($3 | 0) >= 1) {
$5 = ($9 << 2) + $6 | 0;
$7 = HEAP32[$5 >> 2];
$4 = HEAP32[$5 + 4 >> 2];
HEAP32[$6 >> 2] = $7;
HEAP32[$6 + 4 >> 2] = $4;
$7 = HEAP32[$5 + 12 >> 2];
$4 = HEAP32[$5 + 8 >> 2];
HEAP32[$6 + 8 >> 2] = $4;
HEAP32[$6 + 12 >> 2] = $7;
$2 = ($9 << 1) + $2 | 0;
continue;
}
break;
}
$5 = ($9 << 2) + $6 | 0;
$7 = HEAP32[$5 >> 2];
$4 = HEAP32[$5 + 4 >> 2];
$1 = $7;
$7 = $0;
HEAP32[$7 >> 2] = $1;
HEAP32[$7 + 4 >> 2] = $4;
$7 = HEAP32[$5 + 12 >> 2];
$4 = HEAP32[$5 + 8 >> 2];
$1 = $4;
$4 = $0;
HEAP32[$4 + 8 >> 2] = $1;
HEAP32[$4 + 12 >> 2] = $7;
__stack_pointer = $6 + 1936 | 0;
}
function memcpy($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0;
if ($2 >>> 0 >= 512) {
emscripten_memcpy_big($0 | 0, $1 | 0, $2 | 0) | 0;
return $0;
}
$4 = $0 + $2 | 0;
label$2 : {
if (!(($0 ^ $1) & 3)) {
label$4 : {
if (($2 | 0) < 1) {
$2 = $0;
break label$4;
}
if (!($0 & 3)) {
$2 = $0;
break label$4;
}
$2 = $0;
while (1) {
HEAP8[$2 | 0] = HEAPU8[$1 | 0];
$1 = $1 + 1 | 0;
$2 = $2 + 1 | 0;
if ($4 >>> 0 <= $2 >>> 0) {
break label$4;
}
if ($2 & 3) {
continue;
}
break;
}
}
$3 = $4 & -4;
label$8 : {
if ($3 >>> 0 < 64) {
break label$8;
}
$5 = $3 + -64 | 0;
if ($5 >>> 0 < $2 >>> 0) {
break label$8;
}
while (1) {
HEAP32[$2 >> 2] = HEAP32[$1 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$1 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$1 + 8 >> 2];
HEAP32[$2 + 12 >> 2] = HEAP32[$1 + 12 >> 2];
HEAP32[$2 + 16 >> 2] = HEAP32[$1 + 16 >> 2];
HEAP32[$2 + 20 >> 2] = HEAP32[$1 + 20 >> 2];
HEAP32[$2 + 24 >> 2] = HEAP32[$1 + 24 >> 2];
HEAP32[$2 + 28 >> 2] = HEAP32[$1 + 28 >> 2];
HEAP32[$2 + 32 >> 2] = HEAP32[$1 + 32 >> 2];
HEAP32[$2 + 36 >> 2] = HEAP32[$1 + 36 >> 2];
HEAP32[$2 + 40 >> 2] = HEAP32[$1 + 40 >> 2];
HEAP32[$2 + 44 >> 2] = HEAP32[$1 + 44 >> 2];
HEAP32[$2 + 48 >> 2] = HEAP32[$1 + 48 >> 2];
HEAP32[$2 + 52 >> 2] = HEAP32[$1 + 52 >> 2];
HEAP32[$2 + 56 >> 2] = HEAP32[$1 + 56 >> 2];
HEAP32[$2 + 60 >> 2] = HEAP32[$1 + 60 >> 2];
$1 = $1 - -64 | 0;
$2 = $2 - -64 | 0;
if ($5 >>> 0 >= $2 >>> 0) {
continue;
}
break;
}
}
if ($2 >>> 0 >= $3 >>> 0) {
break label$2;
}
while (1) {
HEAP32[$2 >> 2] = HEAP32[$1 >> 2];
$1 = $1 + 4 | 0;
$2 = $2 + 4 | 0;
if ($3 >>> 0 > $2 >>> 0) {
continue;
}
break;
}
break label$2;
}
if ($4 >>> 0 < 4) {
$2 = $0;
break label$2;
}
$3 = $4 - 4 | 0;
if ($3 >>> 0 < $0 >>> 0) {
$2 = $0;
break label$2;
}
$2 = $0;
while (1) {
HEAP8[$2 | 0] = HEAPU8[$1 | 0];
HEAP8[$2 + 1 | 0] = HEAPU8[$1 + 1 | 0];
HEAP8[$2 + 2 | 0] = HEAPU8[$1 + 2 | 0];
HEAP8[$2 + 3 | 0] = HEAPU8[$1 + 3 | 0];
$1 = $1 + 4 | 0;
$2 = $2 + 4 | 0;
if ($3 >>> 0 >= $2 >>> 0) {
continue;
}
break;
}
}
if ($2 >>> 0 < $4 >>> 0) {
while (1) {
HEAP8[$2 | 0] = HEAPU8[$1 | 0];
$1 = $1 + 1 | 0;
$2 = $2 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
return $0;
}
function silk_VQ_WMat_EC_c($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) {
var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
$12 = HEAP32[$5 + 8 >> 2];
$13 = HEAP32[$5 + 4 >> 2];
$15 = HEAP32[$5 >> 2];
$14 = HEAP32[$5 + 12 >> 2];
$5 = HEAP32[$5 + 16 >> 2];
HEAP32[$2 >> 2] = 2147483647;
HEAP32[$1 >> 2] = 2147483647;
HEAP8[$0 | 0] = 0;
if (($11 | 0) >= 1) {
$17 = $5 << 8;
$18 = $14 << 7;
$19 = $15 << 7;
$20 = $13 << 7;
$21 = $12 << 7;
$22 = $9 << 16 >> 16;
$15 = 0;
while (1) {
$14 = HEAP8[$6 | 0];
$13 = HEAP8[$6 + 1 | 0];
$12 = HEAP8[$6 + 2 | 0];
$9 = HEAP8[$6 + 3 | 0];
$5 = HEAP8[$6 + 4 | 0];
$16 = Math_imul($14, HEAP32[$4 >> 2]) + ((((Math_imul($13, HEAP32[$4 + 4 >> 2]) - $19 | 0) + Math_imul($12, HEAP32[$4 + 8 >> 2]) | 0) + Math_imul($9, HEAP32[$4 + 12 >> 2]) | 0) + Math_imul($5, HEAP32[$4 + 16 >> 2]) << 1) | 0;
$16 = Math_imul($16 >> 16, $14) + (Math_imul($16 & 65535, $14) >> 16) | 0;
$14 = Math_imul(HEAP32[$4 + 24 >> 2], $13) + (((Math_imul(HEAP32[$4 + 28 >> 2], $12) - $20 | 0) + Math_imul(HEAP32[$4 + 32 >> 2], $9) | 0) + Math_imul(HEAP32[$4 + 36 >> 2], $5) << 1) | 0;
$14 = ($16 + Math_imul($14 >> 16, $13) | 0) + (Math_imul($14 & 65535, $13) >> 16) | 0;
$13 = Math_imul(HEAP32[$4 + 48 >> 2], $12) + ((Math_imul(HEAP32[$4 + 52 >> 2], $9) - $21 | 0) + Math_imul(HEAP32[$4 + 56 >> 2], $5) << 1) | 0;
$14 = ($14 + Math_imul($13 >> 16, $12) | 0) + (Math_imul($13 & 65535, $12) >> 16) | 0;
$12 = Math_imul(HEAP32[$4 + 96 >> 2], $5) - $17 | 0;
$13 = Math_imul(HEAP32[$4 + 72 >> 2], $9) + (Math_imul(HEAP32[$4 + 76 >> 2], $5) - $18 << 1) | 0;
$5 = (((($14 + Math_imul($12 >> 16, $5) | 0) + Math_imul($13 >> 16, $9) | 0) + (Math_imul($12 & 65535, $5) >> 16) | 0) + (Math_imul($13 & 65535, $9) >> 16) | 0) + 32801 | 0;
label$3 : {
if (($5 | 0) < 0) {
break label$3;
}
$12 = HEAPU8[$7 + $15 | 0];
$9 = $12 - $10 | 0;
$5 = ((($9 | 0) > 0 ? $9 : 0) << 11) + $5 | 0;
$9 = Math_imul((silk_lin2log($5) << 16) - 125829120 >> 16, $22) + (HEAPU8[$8 + $15 | 0] << 2) | 0;
if (($9 | 0) > HEAP32[$2 >> 2]) {
break label$3;
}
HEAP32[$2 >> 2] = $9;
HEAP32[$1 >> 2] = $5;
HEAP8[$0 | 0] = $15;
HEAP32[$3 >> 2] = $12;
}
$6 = $6 + 5 | 0;
$15 = $15 + 1 | 0;
if (($15 | 0) != ($11 | 0)) {
continue;
}
break;
}
}
}
function silk_quant_LTP_gains($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
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;
$11 = __stack_pointer - 16 | 0;
__stack_pointer = $11;
$19 = ($8 | 0) < 1;
$18 = 2147483647;
while (1) {
$12 = HEAP32[$3 >> 2];
label$2 : {
if ($19) {
$16 = 0;
$15 = 0;
$9 = $12;
break label$2;
}
$20 = HEAP8[$17 + 7916 | 0];
$10 = $17 << 2;
$21 = HEAP32[$10 + 7904 >> 2];
$22 = HEAP32[$10 + 7824 >> 2];
$23 = HEAP32[$10 + 7520 >> 2];
$10 = 0;
$15 = 0;
$16 = 0;
$13 = $6;
$14 = $5;
while (1) {
silk_VQ_WMat_EC_c(($11 + 12 | 0) + $10 | 0, $11 + 8 | 0, $11 + 4 | 0, $11, $14, $13, $22, $21, $23, $7, silk_log2lin(6229 - $12 | 0) - 51 | 0, $20);
$15 = HEAP32[$11 + 4 >> 2] + $15 | 0;
$24 = ($15 | 0) > -1;
$16 = HEAP32[$11 + 8 >> 2] + $16 | 0;
$25 = ($16 | 0) > -1;
$9 = 0;
if ((silk_lin2log(HEAP32[$11 >> 2] + 51 | 0) + $12 | 0) >= 896) {
$9 = (silk_lin2log(HEAP32[$11 >> 2] + 51 | 0) + $12 | 0) - 896 | 0;
}
$15 = $24 ? $15 : 2147483647;
$16 = $25 ? $16 : 2147483647;
$13 = $13 + 20 | 0;
$14 = $14 + 100 | 0;
$12 = $9;
$10 = $10 + 1 | 0;
if (($10 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
if (($15 | 0) <= ($18 | 0)) {
HEAP8[$2 | 0] = $17;
memcpy($1, $11 + 12 | 0, $8);
$26 = $9;
$18 = $15;
}
$17 = $17 + 1 | 0;
if (($17 | 0) != 3) {
continue;
}
break;
}
if (($8 | 0) >= 1) {
$12 = HEAP32[(HEAP8[$2 | 0] << 2) + 7824 >> 2];
$14 = 0;
while (1) {
$10 = Math_imul($14, 10) + $0 | 0;
$13 = $1 + $14 | 0;
HEAP16[$10 >> 1] = HEAP8[Math_imul(HEAP8[$13 | 0], 5) + $12 | 0] << 7;
HEAP16[$10 + 2 >> 1] = HEAP8[(Math_imul(HEAP8[$13 | 0], 5) + $12 | 0) + 1 | 0] << 7;
HEAP16[$10 + 4 >> 1] = HEAP8[(Math_imul(HEAP8[$13 | 0], 5) + $12 | 0) + 2 | 0] << 7;
HEAP16[$10 + 6 >> 1] = HEAP8[(Math_imul(HEAP8[$13 | 0], 5) + $12 | 0) + 3 | 0] << 7;
HEAP16[$10 + 8 >> 1] = HEAP8[(Math_imul(HEAP8[$13 | 0], 5) + $12 | 0) + 4 | 0] << 7;
$14 = $14 + 1 | 0;
if (($14 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
HEAP32[$3 >> 2] = $26;
HEAP32[$4 >> 2] = Math_imul((silk_lin2log($16 >> (($8 | 0) == 2 ? 1 : 2)) << 16) - 125829120 >> 16, -3);
__stack_pointer = $11 + 16 | 0;
}
function silk_insertion_sort_decreasing_FLP($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = Math_fround(0), $10 = Math_fround(0), $11 = 0;
label$1 : {
label$2 : {
if (($3 | 0) > 0) {
if (($2 | 0) <= 0) {
break label$2;
}
if (($2 | 0) < ($3 | 0)) {
break label$1;
}
while (1) {
HEAP32[($4 << 2) + $1 >> 2] = $4;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
$6 = 1;
if (($3 | 0) > 1) {
while (1) {
$9 = HEAPF32[($6 << 2) + $0 >> 2];
$4 = $6;
label$7 : {
while (1) {
$7 = $4 - 1 | 0;
$5 = $7 << 2;
$10 = HEAPF32[$5 + $0 >> 2];
if ($10 < $9 ^ 1) {
break label$7;
}
$8 = $4 << 2;
HEAPF32[$8 + $0 >> 2] = $10;
HEAP32[$1 + $8 >> 2] = HEAP32[$1 + $5 >> 2];
$5 = ($4 | 0) > 1;
$4 = $7;
if ($5) {
continue;
}
break;
}
$4 = 0;
}
$4 = $4 << 2;
HEAPF32[$4 + $0 >> 2] = $9;
HEAP32[$1 + $4 >> 2] = $6;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
if (($2 | 0) > ($3 | 0)) {
$6 = $3 - 2 | 0;
$11 = (($3 << 2) + $0 | 0) - 4 | 0;
$8 = $3;
while (1) {
$9 = HEAPF32[($8 << 2) + $0 >> 2];
if (!($9 > HEAPF32[$11 >> 2] ^ 1)) {
$4 = $6;
$5 = $4;
label$12 : {
if (($3 | 0) < 2) {
break label$12;
}
while (1) {
$7 = $4 << 2;
$10 = HEAPF32[$7 + $0 >> 2];
if ($10 < $9 ^ 1) {
$5 = $4;
break label$12;
}
$5 = $7 + 4 | 0;
HEAPF32[$5 + $0 >> 2] = $10;
HEAP32[$1 + $5 >> 2] = HEAP32[$1 + $7 >> 2];
$5 = -1;
$7 = ($4 | 0) > 0;
$4 = $4 - 1 | 0;
if ($7) {
continue;
}
break;
}
}
$4 = ($5 << 2) + 4 | 0;
HEAPF32[$4 + $0 >> 2] = $9;
HEAP32[$1 + $4 >> 2] = $8;
}
$8 = $8 + 1 | 0;
if (($8 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
return;
}
celt_fatal(9912, 9936, 50);
abort();
}
celt_fatal(9958, 9936, 51);
abort();
}
celt_fatal(9982, 9936, 52);
abort();
}
function silk_insertion_sort_increasing($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0;
label$1 : {
label$2 : {
if (($3 | 0) > 0) {
if (($2 | 0) <= 0) {
break label$2;
}
if (($2 | 0) < ($3 | 0)) {
break label$1;
}
while (1) {
HEAP32[($4 << 2) + $1 >> 2] = $4;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
$6 = 1;
if (($3 | 0) > 1) {
while (1) {
$7 = HEAP32[($6 << 2) + $0 >> 2];
$4 = $6;
label$7 : {
while (1) {
$8 = $4 - 1 | 0;
$5 = $8 << 2;
$10 = HEAP32[$5 + $0 >> 2];
if (($10 | 0) <= ($7 | 0)) {
break label$7;
}
$9 = $4 << 2;
HEAP32[$9 + $0 >> 2] = $10;
HEAP32[$1 + $9 >> 2] = HEAP32[$1 + $5 >> 2];
$5 = ($4 | 0) > 1;
$4 = $8;
if ($5) {
continue;
}
break;
}
$4 = 0;
}
$4 = $4 << 2;
HEAP32[$4 + $0 >> 2] = $7;
HEAP32[$1 + $4 >> 2] = $6;
$6 = $6 + 1 | 0;
if (($6 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
if (($2 | 0) > ($3 | 0)) {
$6 = $3 - 2 | 0;
$11 = (($3 << 2) + $0 | 0) - 4 | 0;
$7 = $3;
while (1) {
$9 = HEAP32[($7 << 2) + $0 >> 2];
if (($9 | 0) < HEAP32[$11 >> 2]) {
$4 = $6;
$5 = $4;
label$12 : {
if (($3 | 0) < 2) {
break label$12;
}
while (1) {
$8 = $4 << 2;
$5 = HEAP32[$8 + $0 >> 2];
if (($9 | 0) >= ($5 | 0)) {
$5 = $4;
break label$12;
}
$10 = $8 + 4 | 0;
HEAP32[$10 + $0 >> 2] = $5;
HEAP32[$1 + $10 >> 2] = HEAP32[$1 + $8 >> 2];
$5 = -1;
$8 = ($4 | 0) > 0;
$4 = $4 - 1 | 0;
if ($8) {
continue;
}
break;
}
}
$4 = ($5 << 2) + 4 | 0;
HEAP32[$4 + $0 >> 2] = $9;
HEAP32[$1 + $4 >> 2] = $7;
}
$7 = $7 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
return;
}
celt_fatal(15635, 15659, 51);
abort();
}
celt_fatal(15671, 15659, 52);
abort();
}
celt_fatal(15695, 15659, 53);
abort();
}
function silk_stereo_quant_pred($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
$13 = 1;
while (1) {
$10 = ($4 << 2) + $0 | 0;
$7 = Math_imul($4, 3) + $1 | 0;
$11 = $7;
$3 = 2147483647;
$4 = 0;
label$2 : {
label$3 : {
while (1) {
$14 = $4 + 1 | 0;
$6 = HEAP16[($4 << 1) + 5744 >> 1];
$5 = HEAP16[($14 << 1) + 5744 >> 1] - $6 | 0;
$15 = Math_imul($5 & 65535, 6554) >>> 16 | 0;
$16 = $5 >> 16;
$5 = Math_imul($16, 6554) + $15 | 0;
$12 = $5 + $6 | 0;
$2 = HEAP32[$10 >> 2] - $12 | 0;
$8 = $2;
$2 = $2 >> 31;
$2 = $2 ^ $2 + $8;
if (($2 | 0) >= ($3 | 0)) {
$4 = HEAPU8[$7 | 0];
break label$2;
}
HEAP8[$7 | 0] = $4;
HEAP8[$11 + 1 | 0] = 0;
$9 = Math_imul($5, 3) + $6 | 0;
$3 = HEAP32[$10 >> 2] - $9 | 0;
$8 = $3;
$3 = $3 >> 31;
$3 = $3 ^ $3 + $8;
if (($2 | 0) <= ($3 | 0)) {
$9 = $12;
break label$2;
}
HEAP8[$7 | 0] = $4;
HEAP8[$11 + 1 | 0] = 1;
$17 = Math_imul($5, 5) + $6 | 0;
$2 = HEAP32[$10 >> 2] - $17 | 0;
$8 = $2;
$2 = $2 >> 31;
$2 = $2 ^ $2 + $8;
if (($2 | 0) >= ($3 | 0)) {
break label$2;
}
HEAP8[$7 | 0] = $4;
HEAP8[$11 + 1 | 0] = 2;
$9 = Math_imul($5, 7) + $6 | 0;
$3 = HEAP32[$10 >> 2] - $9 | 0;
$8 = $3;
$3 = $3 >> 31;
$12 = $3 ^ $3 + $8;
if (($12 | 0) >= ($2 | 0)) {
break label$3;
}
HEAP8[$7 | 0] = $4;
HEAP8[$11 + 1 | 0] = 3;
$5 = HEAP32[$10 >> 2] - (Math_imul($5, 9) + $6 | 0) | 0;
$2 = $5;
$5 = $5 >> 31;
$3 = $5 ^ $5 + $2;
if (($12 | 0) <= ($3 | 0)) {
break label$2;
}
$9 = (Math_imul($16, 58986) + Math_imul($15, 9) | 0) + $6 | 0;
HEAP8[$7 | 0] = $4;
HEAP8[$11 + 1 | 0] = 4;
$4 = $14;
if (($4 | 0) != 15) {
continue;
}
break;
}
$4 = 14;
break label$2;
}
$9 = $17;
}
$6 = ($4 << 24 >> 24) / 3 | 0;
HEAP8[$7 + 2 | 0] = $6;
HEAP8[$7 | 0] = Math_imul($6, -3) + $4;
HEAP32[$10 >> 2] = $9;
$4 = 1;
$6 = $13;
$13 = 0;
if ($6) {
continue;
}
break;
}
HEAP32[$0 >> 2] = HEAP32[$0 >> 2] - HEAP32[$0 + 4 >> 2];
}
function quant_energy_finalise($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = Math_fround(0), $17 = 0, $18 = 0, $19 = 0;
$17 = ($9 | 0) > 1 ? $9 : 1;
$18 = ($1 | 0) >= ($2 | 0);
label$1 : {
if ($18 | ($7 | 0) < ($9 | 0)) {
break label$1;
}
$11 = $1;
while (1) {
$10 = $11 << 2;
$19 = $10 + $5 | 0;
if (!(HEAP32[$19 >> 2] > 7 | HEAP32[$6 + $10 >> 2])) {
$12 = HEAP32[$0 + 8 >> 2];
$10 = 0;
while (1) {
$13 = HEAPF32[(Math_imul($10, $12) + $11 << 2) + $4 >> 2] < Math_fround(0);
ec_enc_bits($8, $13 ^ 1, 1);
$12 = HEAP32[$0 + 8 >> 2];
$14 = Math_imul($12, $10) + $11 << 2;
$15 = $14 + $3 | 0;
$16 = Math_fround(Math_fround(($13 ? Math_fround(-.5) : Math_fround(.5)) * Math_fround(1 << 13 - HEAP32[$19 >> 2])) * Math_fround(6103515625e-14));
HEAPF32[$15 >> 2] = HEAPF32[$15 >> 2] + $16;
$13 = $4 + $14 | 0;
HEAPF32[$13 >> 2] = HEAPF32[$13 >> 2] - $16;
$10 = $10 + 1 | 0;
if (($17 | 0) != ($10 | 0)) {
continue;
}
break;
}
$7 = $7 - $17 | 0;
}
$11 = $11 + 1 | 0;
if (($11 | 0) >= ($2 | 0)) {
break label$1;
}
if (($7 | 0) >= ($9 | 0)) {
continue;
}
break;
}
}
label$5 : {
if (($7 | 0) < ($9 | 0) | $18) {
break label$5;
}
while (1) {
$10 = $1 << 2;
$15 = $10 + $5 | 0;
if (!(HEAP32[$15 >> 2] > 7 | HEAP32[$6 + $10 >> 2] != 1)) {
$11 = HEAP32[$0 + 8 >> 2];
$10 = 0;
while (1) {
$12 = HEAPF32[(Math_imul($10, $11) + $1 << 2) + $4 >> 2] < Math_fround(0);
ec_enc_bits($8, $12 ^ 1, 1);
$11 = HEAP32[$0 + 8 >> 2];
$13 = Math_imul($11, $10) + $1 << 2;
$14 = $13 + $3 | 0;
$16 = Math_fround(Math_fround(($12 ? Math_fround(-.5) : Math_fround(.5)) * Math_fround(1 << 13 - HEAP32[$15 >> 2])) * Math_fround(6103515625e-14));
HEAPF32[$14 >> 2] = HEAPF32[$14 >> 2] + $16;
$12 = $4 + $13 | 0;
HEAPF32[$12 >> 2] = HEAPF32[$12 >> 2] - $16;
$10 = $10 + 1 | 0;
if (($17 | 0) != ($10 | 0)) {
continue;
}
break;
}
$7 = $7 - $17 | 0;
}
$1 = $1 + 1 | 0;
if (($2 | 0) <= ($1 | 0)) {
break label$5;
}
if (($7 | 0) >= ($9 | 0)) {
continue;
}
break;
}
}
}
function silk_resampler_private_IIR_FIR($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0;
$6 = __stack_pointer;
$11 = $6;
$4 = HEAP32[$0 + 268 >> 2];
$7 = $6 - (($4 << 2) + 31 & -16) | 0;
__stack_pointer = $7;
$6 = HEAP32[$0 + 36 >> 2];
$5 = HEAP32[$0 + 32 >> 2];
HEAP32[$7 + 8 >> 2] = $5;
HEAP32[$7 + 12 >> 2] = $6;
$5 = HEAP32[$0 + 28 >> 2];
$6 = HEAP32[$0 + 24 >> 2];
HEAP32[$7 >> 2] = $6;
HEAP32[$7 + 4 >> 2] = $5;
$12 = $7 + 16 | 0;
$13 = HEAP32[$0 + 272 >> 2];
while (1) {
$8 = ($3 | 0) < ($4 | 0) ? $3 : $4;
silk_resampler_private_up2_HQ($0, $12, $2, $8);
$6 = 0;
$9 = $8 << 17;
if (($9 | 0) >= 1) {
while (1) {
$10 = Math_imul($6 & 65535, 12) >>> 16 | 0;
$5 = $10 << 3;
$4 = ($6 >> 16 << 1) + $7 | 0;
$14 = ((Math_imul(HEAP16[$5 + 6306 >> 1], HEAP16[$4 + 2 >> 1]) + Math_imul(HEAP16[$5 + 6304 >> 1], HEAP16[$4 >> 1]) | 0) + Math_imul(HEAP16[$5 + 6308 >> 1], HEAP16[$4 + 4 >> 1]) | 0) + Math_imul(HEAP16[$5 + 6310 >> 1], HEAP16[$4 + 6 >> 1]) | 0;
$5 = 11 - $10 << 3;
$4 = ((($14 + Math_imul(HEAP16[$5 + 6310 >> 1], HEAP16[$4 + 8 >> 1]) | 0) + Math_imul(HEAP16[$5 + 6308 >> 1], HEAP16[$4 + 10 >> 1]) | 0) + Math_imul(HEAP16[$5 + 6306 >> 1], HEAP16[$4 + 12 >> 1]) | 0) + Math_imul(HEAP16[$5 + 6304 >> 1], HEAP16[$4 + 14 >> 1]) | 0;
$5 = ($4 >> 14) + 1 >> 1;
HEAP16[$1 >> 1] = ($4 | 0) > 1073725439 ? 32767 : ($5 | 0) > -32768 ? $5 : -32768;
$1 = $1 + 2 | 0;
$6 = $6 + $13 | 0;
if (($9 | 0) > ($6 | 0)) {
continue;
}
break;
}
}
$3 = $3 - $8 | 0;
if (($3 | 0) >= 1) {
$4 = ($8 << 2) + $7 | 0;
$6 = HEAP32[$4 + 4 >> 2];
$5 = HEAP32[$4 >> 2];
HEAP32[$7 >> 2] = $5;
HEAP32[$7 + 4 >> 2] = $6;
$5 = HEAP32[$4 + 12 >> 2];
$6 = HEAP32[$4 + 8 >> 2];
HEAP32[$7 + 8 >> 2] = $6;
HEAP32[$7 + 12 >> 2] = $5;
$2 = ($8 << 1) + $2 | 0;
$4 = HEAP32[$0 + 268 >> 2];
continue;
}
break;
}
$4 = ($8 << 2) + $7 | 0;
$6 = HEAP32[$4 + 4 >> 2];
$5 = HEAP32[$4 >> 2];
HEAP32[$0 + 24 >> 2] = $5;
HEAP32[$0 + 28 >> 2] = $6;
$5 = HEAP32[$4 + 12 >> 2];
$6 = HEAP32[$4 + 8 >> 2];
HEAP32[$0 + 32 >> 2] = $6;
HEAP32[$0 + 36 >> 2] = $5;
__stack_pointer = $11;
}
function silk_shell_encoder($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
$2 = HEAP32[$1 + 4 >> 2] + HEAP32[$1 >> 2] | 0;
$9 = HEAP32[$1 + 12 >> 2] + HEAP32[$1 + 8 >> 2] | 0;
$3 = $2 + $9 | 0;
$4 = HEAP32[$1 + 20 >> 2] + HEAP32[$1 + 16 >> 2] | 0;
$10 = HEAP32[$1 + 28 >> 2] + HEAP32[$1 + 24 >> 2] | 0;
$11 = $4 + $10 | 0;
$5 = $3 + $11 | 0;
$6 = HEAP32[$1 + 36 >> 2] + HEAP32[$1 + 32 >> 2] | 0;
$12 = HEAP32[$1 + 44 >> 2] + HEAP32[$1 + 40 >> 2] | 0;
$7 = $6 + $12 | 0;
$8 = HEAP32[$1 + 52 >> 2] + HEAP32[$1 + 48 >> 2] | 0;
$13 = HEAP32[$1 + 60 >> 2] + HEAP32[$1 + 56 >> 2] | 0;
$14 = $8 + $13 | 0;
$15 = $7 + $14 | 0;
$16 = $5 + $15 | 0;
if (($16 | 0) >= 1) {
ec_enc_icdf($0, $5, HEAPU8[$16 + 9200 | 0] + 9040 | 0, 8);
}
if (($5 | 0) >= 1) {
ec_enc_icdf($0, $3, HEAPU8[$5 + 9200 | 0] + 8880 | 0, 8);
}
if (($3 | 0) >= 1) {
ec_enc_icdf($0, $2, HEAPU8[$3 + 9200 | 0] + 8720 | 0, 8);
}
if (($2 | 0) >= 1) {
ec_enc_icdf($0, HEAP32[$1 >> 2], HEAPU8[$2 + 9200 | 0] + 8560 | 0, 8);
}
if (($9 | 0) >= 1) {
ec_enc_icdf($0, HEAP32[$1 + 8 >> 2], HEAPU8[$9 + 9200 | 0] + 8560 | 0, 8);
}
if (($11 | 0) >= 1) {
ec_enc_icdf($0, $4, HEAPU8[$11 + 9200 | 0] + 8720 | 0, 8);
}
if (($4 | 0) >= 1) {
ec_enc_icdf($0, HEAP32[$1 + 16 >> 2], HEAPU8[$4 + 9200 | 0] + 8560 | 0, 8);
}
if (($10 | 0) >= 1) {
ec_enc_icdf($0, HEAP32[$1 + 24 >> 2], HEAPU8[$10 + 9200 | 0] + 8560 | 0, 8);
}
if (($15 | 0) >= 1) {
ec_enc_icdf($0, $7, HEAPU8[$15 + 9200 | 0] + 8880 | 0, 8);
}
if (($7 | 0) >= 1) {
ec_enc_icdf($0, $6, HEAPU8[$7 + 9200 | 0] + 8720 | 0, 8);
}
if (($6 | 0) >= 1) {
ec_enc_icdf($0, HEAP32[$1 + 32 >> 2], HEAPU8[$6 + 9200 | 0] + 8560 | 0, 8);
}
if (($12 | 0) >= 1) {
ec_enc_icdf($0, HEAP32[$1 + 40 >> 2], HEAPU8[$12 + 9200 | 0] + 8560 | 0, 8);
}
if (($14 | 0) >= 1) {
ec_enc_icdf($0, $8, HEAPU8[$14 + 9200 | 0] + 8720 | 0, 8);
}
if (($8 | 0) >= 1) {
ec_enc_icdf($0, HEAP32[$1 + 48 >> 2], HEAPU8[$8 + 9200 | 0] + 8560 | 0, 8);
}
if (($13 | 0) >= 1) {
ec_enc_icdf($0, HEAP32[$1 + 56 >> 2], HEAPU8[$13 + 9200 | 0] + 8560 | 0, 8);
}
}
function silk_process_NLSFs($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0;
$5 = __stack_pointer - 96 | 0;
__stack_pointer = $5;
label$1 : {
label$2 : {
if (!(HEAPU8[$0 + 4767 | 0] != 4 ? HEAP32[$0 + 4632 >> 2] != 1 : 0)) {
$4 = HEAP16[$0 + 4532 >> 1];
$4 = (Math_imul($4, -5) + (Math_imul($4, 59246) >> 16) | 0) + 3146 | 0;
$6 = $4 + (HEAP32[$0 + 4580 >> 2] == 2 ? $4 >> 1 : 0) | 0;
if (($6 | 0) <= 0) {
break label$2;
}
silk_NLSF_VQ_weights_laroia($5 + 32 | 0, $2, HEAP32[$0 + 4640 >> 2]);
label$5 : {
if (HEAP32[$0 + 4632 >> 2] != 1) {
break label$5;
}
$4 = HEAP8[$0 + 4767 | 0];
if (($4 | 0) > 3) {
break label$5;
}
silk_interpolate($5 - -64 | 0, $3, $2, $4, HEAP32[$0 + 4640 >> 2]);
silk_NLSF_VQ_weights_laroia($5, $5 - -64 | 0, HEAP32[$0 + 4640 >> 2]);
$10 = 1;
$7 = HEAP32[$0 + 4640 >> 2];
if (($7 | 0) < 1) {
break label$5;
}
$4 = HEAP8[$0 + 4767 | 0];
$11 = Math_imul($4, $4) << 27 >> 16;
$4 = 0;
while (1) {
$8 = $4 << 1;
$9 = $8 + ($5 + 32 | 0) | 0;
HEAP16[$9 >> 1] = (HEAP16[$9 >> 1] >>> 1) + (Math_imul(HEAP16[$5 + $8 >> 1], $11) >>> 16);
$4 = $4 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
silk_NLSF_encode($0 + 4744 | 0, $2, HEAP32[$0 + 4692 >> 2], $5 + 32 | 0, $6, HEAP32[$0 + 4660 >> 2], HEAP8[$0 + 4765 | 0]);
$4 = $1 + 32 | 0;
silk_NLSF2A($4, $2, HEAP32[$0 + 4640 >> 2], HEAP32[$0 + 5092 >> 2]);
label$7 : {
if ($10) {
silk_interpolate($5 - -64 | 0, $3, $2, HEAP8[$0 + 4767 | 0], HEAP32[$0 + 4640 >> 2]);
silk_NLSF2A($1, $5 - -64 | 0, HEAP32[$0 + 4640 >> 2], HEAP32[$0 + 5092 >> 2]);
break label$7;
}
$0 = HEAP32[$0 + 4640 >> 2];
if (($0 | 0) >= 17) {
break label$1;
}
memcpy($1, $4, $0 << 1);
}
__stack_pointer = $5 + 96 | 0;
return;
}
celt_fatal(15848, 15951, 51);
abort();
}
celt_fatal(15972, 15951, 63);
abort();
}
celt_fatal(16006, 15951, 104);
abort();
}
function encode_multiframe_packet($0, $1, $2, $3, $4, $5, $6, $7, $8) {
var $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
$9 = __stack_pointer - 304 | 0;
$12 = $9;
__stack_pointer = $9;
$14 = $2 - 1 | 0;
$10 = ($2 | 0) == 2 ? 3 : ($14 << 1) + 2 | 0;
if (!(HEAP32[$0 + 148 >> 2] | HEAP32[$0 + 164 >> 2] == -1)) {
$11 = (Math_imul(HEAP32[$0 + 160 >> 2], 3) | 0) / ((Math_imul(HEAP32[$0 + 144 >> 2], 24) | 0) / (Math_imul($2, $3) | 0) | 0) | 0;
$5 = ($5 | 0) > ($11 | 0) ? $11 : $5;
}
$10 = ($5 - $10 | 0) / ($2 | 0) | 0;
$10 = ($10 | 0) < 1276 ? $10 + 1 | 0 : 1276;
$15 = $9 - (Math_imul($10, $2) + 15 & -16) | 0;
__stack_pointer = $15;
opus_repacketizer_init($12);
$18 = HEAP32[$0 + 136 >> 2];
HEAP32[$0 + 136 >> 2] = HEAP32[$0 + 14224 >> 2];
$19 = HEAP32[$0 + 128 >> 2];
HEAP32[$0 + 128 >> 2] = HEAP32[$0 + 14240 >> 2];
$20 = HEAP32[$0 + 120 >> 2];
$9 = HEAP32[$0 + 14192 >> 2];
HEAP32[$0 + 120 >> 2] = $9;
$16 = HEAP32[$0 + 68 >> 2];
label$2 : {
if ($16) {
HEAP32[$0 + 120 >> 2] = 1;
break label$2;
}
HEAP32[$0 + 14232 >> 2] = $9;
}
label$4 : {
if (($2 | 0) >= 1) {
$9 = 0;
while (1) {
HEAP32[$0 + 68 >> 2] = 0;
HEAP32[$0 + 18132 >> 2] = ($9 | 0) < ($14 | 0);
if (!(!$6 | ($9 | 0) != ($14 | 0))) {
HEAP32[$0 + 136 >> 2] = 1002;
}
$13 = -3;
$11 = Math_imul($9, $10) + $15 | 0;
$17 = opus_encode_native($0, (Math_imul(HEAP32[$0 + 112 >> 2], Math_imul($3, $9)) << 2) + $1 | 0, $3, $11, $10, $7, 0, 0, 0, 0, 0, 0, $8);
if (($17 | 0) < 0) {
break label$4;
}
if ((opus_repacketizer_cat($12, $11, $17) | 0) < 0) {
break label$4;
}
$9 = $9 + 1 | 0;
if (($9 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$13 = opus_repacketizer_out_range_impl($12, 0, $2, $4, $5, 0, !HEAP32[$0 + 148 >> 2]);
if (($13 | 0) < 0) {
$13 = -3;
break label$4;
}
HEAP32[$0 + 128 >> 2] = $19;
HEAP32[$0 + 136 >> 2] = $18;
HEAP32[$0 + 120 >> 2] = $20;
HEAP32[$0 + 68 >> 2] = $16;
}
__stack_pointer = $12 + 304 | 0;
return $13;
}
function log10($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0;
wasm2js_scratch_store_f64(+$0);
$2 = wasm2js_scratch_load_i32(1) | 0;
$3 = wasm2js_scratch_load_i32(0) | 0;
$5 = $2;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
if (($2 | 0) > 0 ? 1 : ($2 | 0) >= 0) {
$1 = $5;
if ($1 >>> 0 > 1048575) {
break label$4;
}
}
$2 = $5;
$1 = $2 & 2147483647;
if (!($1 | $3)) {
return -1 / ($0 * $0);
}
$1 = $5;
if (($1 | 0) > -1) {
break label$3;
}
return ($0 - $0) / 0;
}
if ($1 >>> 0 > 2146435071) {
break label$1;
}
$2 = 1072693248;
$9 = -1023;
if (($1 | 0) != 1072693248) {
$2 = $1;
break label$2;
}
if ($3) {
break label$2;
}
return 0;
}
wasm2js_scratch_store_f64(+($0 * 0x40000000000000));
$2 = wasm2js_scratch_load_i32(1) | 0;
$3 = wasm2js_scratch_load_i32(0) | 0;
$9 = -1077;
}
$1 = $2 + 614242 | 0;
$10 = +(($1 >>> 20 | 0) + $9 | 0);
$4 = $10 * .30102999566361177;
$1 = ($1 & 1048575) + 1072079006 | 0;
$2 = 0;
$1 = $2 | $1;
wasm2js_scratch_store_i32(0, $3 | 0);
wasm2js_scratch_store_i32(1, $1 | 0);
$0 = +wasm2js_scratch_load_f64() + -1;
$7 = $0 * ($0 * .5);
wasm2js_scratch_store_f64(+($0 - $7));
$1 = wasm2js_scratch_load_i32(1) | 0;
wasm2js_scratch_load_i32(0) | 0;
wasm2js_scratch_store_i32(0, 0);
wasm2js_scratch_store_i32(1, $1 | 0);
$8 = +wasm2js_scratch_load_f64();
$6 = $8 * .4342944818781689;
$11 = $4 + $6;
$12 = $6 + ($4 - $11);
$13 = $0 - $8 - $7;
$0 = $0 / ($0 + 2);
$6 = $0;
$4 = $0 * $0;
$0 = $4 * $4;
$0 = $13 + $6 * ($7 + ($0 * ($0 * ($0 * .15313837699209373 + .22222198432149784) + .3999999999940942) + $4 * ($0 * ($0 * ($0 * .14798198605116586 + .1818357216161805) + .2857142874366239) + .6666666666666735)));
$0 = $11 + ($12 + ($0 * .4342944818781689 + ($10 * 3.694239077158931e-13 + ($0 + $8) * 2.5082946711645275e-11)));
}
return $0;
}
function silk_LPC_fit($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0;
$7 = $3 - $2 | 0;
$10 = $7 - 1 | 0;
$11 = ($4 | 0) < 1;
label$1 : {
label$2 : {
while (1) {
$3 = 0;
$2 = 0;
if (!$11) {
while (1) {
$6 = HEAP32[($3 << 2) + $1 >> 2];
$8 = $6;
$6 = $6 >> 31;
$6 = $6 ^ $6 + $8;
$8 = $6;
$6 = ($2 | 0) < ($6 | 0);
$2 = $6 ? $8 : $2;
$5 = $6 ? $3 : $5;
$3 = $3 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$3 = ($7 | 0) == 1 ? ($2 & 1) + ($2 >> 1) | 0 : ($2 >> $10) + 1 >> 1;
if (($3 | 0) >= 32768) {
$3 = ($3 | 0) < 163838 ? $3 : 163838;
silk_bwexpander_32($1, $4, 65470 - ((($3 << 14) - 536854528 | 0) / (Math_imul($5 + 1 | 0, $3) >> 2) | 0) | 0);
$9 = $9 + 1 | 0;
if (($9 | 0) != 10) {
continue;
}
break label$2;
}
break;
}
if (($9 | 0) == 10) {
break label$2;
}
$3 = 0;
if (($4 | 0) <= 0) {
break label$1;
}
$5 = ($7 | 0) != 1;
while (1) {
$2 = HEAP32[($3 << 2) + $1 >> 2];
$2 = $5 ? ($2 >> $10) + 1 >> 1 : ($2 & 1) + ($2 >> 1) | 0;
HEAP16[($3 << 1) + $0 >> 1] = $2;
$3 = $3 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
break label$1;
}
if (($4 | 0) < 1) {
break label$1;
}
$3 = 0;
$9 = ($7 | 0) != 1;
while (1) {
$6 = ($3 << 2) + $1 | 0;
$5 = HEAP32[$6 >> 2];
$8 = ($3 << 1) + $0 | 0;
label$13 : {
if (!$9) {
$5 = ($5 & 1) + ($5 >> 1) | 0;
$2 = 32767;
if (($5 | 0) > 32767) {
break label$13;
}
$2 = ($5 | 0) > -32768 ? $5 : -32768;
break label$13;
}
$5 = $5 >> $10;
$2 = 32767;
if (($5 | 0) > 65534) {
break label$13;
}
$2 = $5 + 1 >> 1;
$2 = ($2 | 0) > -32768 ? $2 : -32768;
}
HEAP16[$8 >> 1] = $2;
HEAP32[$6 >> 2] = $2 << 16 >> 16 << $7;
$3 = $3 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
}
function silk_control_audio_bandwidth($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0;
$2 = HEAP32[$0 + 4576 >> 2];
if (!$2) {
$2 = HEAP32[$0 + 32 >> 2];
}
$3 = $2 << 16;
if (!$3) {
$2 = HEAP32[$0 + 4572 >> 2];
$0 = HEAP32[$0 + 4556 >> 2];
return ((($0 | 0) > ($2 | 0) ? $2 : $0) | 0) / 1e3 | 0;
}
$3 = Math_imul($3 >> 16, 1e3);
$4 = HEAP32[$0 + 4556 >> 2];
$5 = HEAP32[$0 + 4564 >> 2];
if (!(HEAP32[$0 + 4568 >> 2] <= ($3 | 0) ? !(($3 | 0) > ($4 | 0) | ($5 | 0) < ($3 | 0)) : 0)) {
$2 = ($4 | 0) < ($5 | 0) ? $4 : $5;
$0 = HEAP32[$0 + 4568 >> 2];
return ((($0 | 0) < ($2 | 0) ? $2 : $0) | 0) / 1e3 | 0;
}
$4 = HEAP32[$0 + 24 >> 2];
if (($4 | 0) >= 256) {
HEAP32[$0 + 28 >> 2] = 0;
}
label$7 : {
label$8 : {
if (HEAP32[$1 + 64 >> 2] ? 0 : !HEAP32[$0 + 4536 >> 2]) {
break label$8;
}
$5 = HEAP32[$0 + 4572 >> 2];
if (($5 | 0) < ($3 | 0)) {
label$11 : {
label$12 : {
if (HEAP32[$0 + 28 >> 2]) {
if (HEAP32[$1 + 64 >> 2]) {
break label$12;
}
if (($4 | 0) > 0) {
break label$11;
}
break label$7;
}
HEAP32[$0 + 16 >> 2] = 0;
HEAP32[$0 + 20 >> 2] = 0;
HEAP32[$0 + 24 >> 2] = 256;
if (!HEAP32[$1 + 64 >> 2]) {
break label$11;
}
}
HEAP32[$0 + 28 >> 2] = 0;
return ($2 | 0) == 16 ? 12 : 8;
}
HEAP32[$0 + 28 >> 2] = -2;
return $2;
}
if (($3 | 0) < ($5 | 0)) {
if (HEAP32[$1 + 64 >> 2]) {
HEAP32[$0 + 16 >> 2] = 0;
HEAP32[$0 + 20 >> 2] = 0;
HEAP32[$0 + 24 >> 2] = 0;
HEAP32[$0 + 28 >> 2] = 1;
return ($2 | 0) == 8 ? 12 : 16;
}
if (!HEAP32[$0 + 28 >> 2]) {
break label$7;
}
HEAP32[$0 + 28 >> 2] = 1;
return $2;
}
if (HEAP32[$0 + 28 >> 2] > -1) {
break label$8;
}
HEAP32[$0 + 28 >> 2] = 1;
}
return $2;
}
HEAP32[$1 + 88 >> 2] = 1;
$0 = HEAP32[$1 + 56 >> 2];
HEAP32[$1 + 56 >> 2] = $0 - ((Math_imul($0, 5) | 0) / (HEAP32[$1 + 24 >> 2] + 5 | 0) | 0);
return $2;
}
function silk_A2NLSF_init($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
$4 = $3 << 2;
HEAP32[$4 + $1 >> 2] = 65536;
HEAP32[$2 + $4 >> 2] = 65536;
$4 = 0;
label$1 : {
if (($3 | 0) <= 0) {
break label$1;
}
while (1) {
$5 = $4 << 2;
$6 = ($3 + $4 << 2) + $0 | 0;
$7 = (($4 ^ -1) + $3 << 2) + $0 | 0;
HEAP32[$5 + $1 >> 2] = 0 - (HEAP32[$6 >> 2] + HEAP32[$7 >> 2] | 0);
HEAP32[$2 + $5 >> 2] = HEAP32[$6 >> 2] - HEAP32[$7 >> 2];
$4 = $4 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
if (($3 | 0) <= 0) {
break label$1;
}
$4 = $3;
while (1) {
$0 = $4 - 1 | 0;
$5 = $0 << 2;
$6 = $5 + $1 | 0;
$7 = $6;
$8 = HEAP32[$6 >> 2];
$6 = $4 << 2;
HEAP32[$7 >> 2] = $8 - HEAP32[$6 + $1 >> 2];
$5 = $2 + $5 | 0;
HEAP32[$5 >> 2] = HEAP32[$5 >> 2] + HEAP32[$2 + $6 >> 2];
$5 = ($4 | 0) > 1;
$4 = $0;
if ($5) {
continue;
}
break;
}
$7 = 2;
if (($3 | 0) < 2) {
break label$1;
}
while (1) {
$4 = $3;
if (($7 | 0) < ($4 | 0)) {
while (1) {
$0 = ($4 << 2) + $1 | 0;
$5 = $0 - 8 | 0;
HEAP32[$5 >> 2] = HEAP32[$5 >> 2] - HEAP32[$0 >> 2];
$4 = $4 - 1 | 0;
if (($7 | 0) < ($4 | 0)) {
continue;
}
break;
}
}
$6 = 2;
$4 = ($7 << 2) + $1 | 0;
$0 = $4 - 8 | 0;
HEAP32[$0 >> 2] = HEAP32[$0 >> 2] - (HEAP32[$4 >> 2] << 1);
$4 = ($3 | 0) != ($7 | 0);
$7 = $7 + 1 | 0;
if ($4) {
continue;
}
break;
}
while (1) {
$4 = $3;
if (($6 | 0) < ($4 | 0)) {
while (1) {
$0 = ($4 << 2) + $2 | 0;
$5 = $0 - 8 | 0;
HEAP32[$5 >> 2] = HEAP32[$5 >> 2] - HEAP32[$0 >> 2];
$4 = $4 - 1 | 0;
if (($6 | 0) < ($4 | 0)) {
continue;
}
break;
}
}
$4 = ($6 << 2) + $2 | 0;
$0 = $4 - 8 | 0;
HEAP32[$0 >> 2] = HEAP32[$0 >> 2] - (HEAP32[$4 >> 2] << 1);
$4 = ($3 | 0) != ($6 | 0);
$6 = $6 + 1 | 0;
if ($4) {
continue;
}
break;
}
}
}
function resampler_basic_direct_double($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 $6 = 0, $7 = 0, $8 = 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;
$1 = $1 << 2;
$16 = $1 + HEAP32[$0 + 64 >> 2] | 0;
$9 = HEAP32[$16 >> 2];
$17 = HEAP32[$0 + 60 >> 2] + $1 | 0;
$6 = HEAP32[$17 >> 2];
$18 = HEAP32[$3 >> 2];
label$1 : {
if (($6 | 0) >= ($18 | 0)) {
break label$1;
}
$13 = HEAP32[$0 + 12 >> 2];
$20 = HEAP32[$0 + 40 >> 2];
$21 = HEAP32[$0 + 36 >> 2];
$22 = HEAP32[$0 + 92 >> 2];
$23 = HEAP32[$0 + 76 >> 2];
$3 = HEAP32[$5 >> 2];
$19 = ($3 | 0) > 0 ? $3 : 0;
$14 = HEAP32[$0 + 24 >> 2];
$24 = ($14 | 0) < 1;
while (1) {
if (($7 | 0) == ($19 | 0)) {
$7 = $19;
break label$1;
}
$15 = 0;
label$4 : {
if ($24) {
$10 = 0;
$11 = 0;
$12 = 0;
break label$4;
}
$3 = ($6 << 2) + $2 | 0;
$1 = (Math_imul($9, $14) << 2) + $23 | 0;
$5 = 0;
$12 = 0;
$11 = 0;
$10 = 0;
while (1) {
$0 = $5 << 2;
$10 = $10 + +Math_fround(HEAPF32[$1 + $0 >> 2] * HEAPF32[$0 + $3 >> 2]);
$8 = $0 | 12;
$15 = $15 + +Math_fround(HEAPF32[$8 + $1 >> 2] * HEAPF32[$3 + $8 >> 2]);
$8 = $0 | 8;
$12 = $12 + +Math_fround(HEAPF32[$8 + $1 >> 2] * HEAPF32[$3 + $8 >> 2]);
$0 = $0 | 4;
$11 = $11 + +Math_fround(HEAPF32[$1 + $0 >> 2] * HEAPF32[$0 + $3 >> 2]);
$5 = $5 + 4 | 0;
if (($14 | 0) > ($5 | 0)) {
continue;
}
break;
}
}
HEAPF32[(Math_imul($7, $22) << 2) + $4 >> 2] = $10 + $11 + $12 + $15;
$0 = $9 + $20 | 0;
$9 = $0 - ($0 >>> 0 < $13 >>> 0 ? 0 : $13) | 0;
$7 = $7 + 1 | 0;
$6 = ($6 + $21 | 0) + ($0 >>> 0 >= $13 >>> 0) | 0;
if (($18 | 0) > ($6 | 0)) {
continue;
}
break;
}
}
HEAP32[$17 >> 2] = $6;
HEAP32[$16 >> 2] = $9;
return $7 | 0;
}
function silk_find_LPC_FLP($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = Math_fround(0), $9 = Math_fround(0), $10 = 0, $11 = 0, $12 = 0;
$4 = __stack_pointer - 1696 | 0;
__stack_pointer = $4;
HEAP8[$0 + 4767 | 0] = 4;
$6 = HEAP32[$0 + 4640 >> 2];
$7 = $6 + HEAP32[$0 + 4588 >> 2] | 0;
$8 = silk_burg_modified_FLP($4 + 1632 | 0, $2, $3, $7, HEAP32[$0 + 4580 >> 2], $6);
label$1 : {
if (HEAP32[$0 + 4664 >> 2] | !HEAP32[$0 + 4632 >> 2] | HEAP32[$0 + 4580 >> 2] != 4) {
break label$1;
}
$5 = 3;
$3 = silk_burg_modified_FLP($4 + 1536 | 0, ($7 << 3) + $2 | 0, $3, $7, 2, HEAP32[$0 + 4640 >> 2]);
silk_A2NLSF_FLP($1, $4 + 1536 | 0, HEAP32[$0 + 4640 >> 2]);
$10 = $0 + 4500 | 0;
$11 = $7 << 1;
$8 = Math_fround($8 - $3);
$9 = Math_fround(3.4028234663852886e+38);
while (1) {
$6 = $5;
silk_interpolate($4 + 1600 | 0, $10, $1, $6, HEAP32[$0 + 4640 >> 2]);
silk_NLSF2A_FLP($4 + 1536 | 0, $4 + 1600 | 0, HEAP32[$0 + 4640 >> 2], HEAP32[$0 + 5092 >> 2]);
silk_LPC_analysis_filter_FLP($4, $4 + 1536 | 0, $2, $11, HEAP32[$0 + 4640 >> 2]);
$5 = HEAP32[$0 + 4640 >> 2];
$12 = silk_energy_FLP(($5 << 2) + $4 | 0, $7 - $5 | 0);
$5 = HEAP32[$0 + 4640 >> 2];
$3 = Math_fround($12 + silk_energy_FLP((($5 << 2) + $4 | 0) + ($7 << 2) | 0, $7 - $5 | 0));
label$3 : {
if (!($8 > $3 ^ 1)) {
HEAP8[$0 + 4767 | 0] = $6;
$8 = $3;
break label$3;
}
if ($3 > $9) {
break label$1;
}
}
$5 = $6 - 1 | 0;
$9 = $3;
if ($6) {
continue;
}
break;
}
}
label$5 : {
if (HEAPU8[$0 + 4767 | 0] == 4) {
silk_A2NLSF_FLP($1, $4 + 1632 | 0, HEAP32[$0 + 4640 >> 2]);
if (HEAPU8[$0 + 4767 | 0] == 4) {
break label$5;
}
}
if (HEAP32[$0 + 4580 >> 2] == 4 ? !(HEAP32[$0 + 4664 >> 2] | !HEAP32[$0 + 4632 >> 2]) : 0) {
break label$5;
}
celt_fatal(16554, 16719, 103);
abort();
}
__stack_pointer = $4 + 1696 | 0;
}
function ec_enc_icdf($0, $1, $2, $3) {
var $4 = 0, $5 = 0;
$4 = HEAP32[$0 + 28 >> 2];
$3 = $4 >>> $3 | 0;
$5 = $0;
label$1 : {
if (($1 | 0) >= 1) {
$1 = $1 + $2 | 0;
$2 = $1 - 1 | 0;
HEAP32[$0 + 32 >> 2] = (HEAP32[$0 + 32 >> 2] + $4 | 0) - Math_imul(HEAPU8[$2 | 0], $3);
$3 = Math_imul(HEAPU8[$2 | 0] - HEAPU8[$1 | 0] | 0, $3);
break label$1;
}
$3 = $4 - Math_imul(HEAPU8[$1 + $2 | 0], $3) | 0;
}
HEAP32[$5 + 28 >> 2] = $3;
if ($3 >>> 0 <= 8388608) {
$1 = HEAP32[$0 + 32 >> 2];
while (1) {
$5 = $1 >>> 23 | 0;
label$5 : {
if (($5 | 0) != 255) {
$3 = $1 >>> 31 | 0;
$2 = HEAP32[$0 + 40 >> 2];
if (($2 | 0) >= 0) {
$1 = -1;
$4 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $4 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $4 + 1;
HEAP8[HEAP32[$0 >> 2] + $4 | 0] = $2 + $3;
$1 = 0;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $1;
}
$1 = HEAP32[$0 + 36 >> 2];
if ($1) {
$4 = $3 - 1 | 0;
while (1) {
$3 = -1;
$2 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $2 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $2 + 1;
HEAP8[HEAP32[$0 >> 2] + $2 | 0] = $4;
$3 = 0;
$1 = HEAP32[$0 + 36 >> 2];
}
$1 = $1 - 1 | 0;
HEAP32[$0 + 36 >> 2] = $1;
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $3;
if ($1) {
continue;
}
break;
}
}
HEAP32[$0 + 40 >> 2] = $5 & 255;
$3 = HEAP32[$0 + 28 >> 2];
$1 = HEAP32[$0 + 32 >> 2];
break label$5;
}
HEAP32[$0 + 36 >> 2] = HEAP32[$0 + 36 >> 2] + 1;
}
$3 = $3 << 8;
HEAP32[$0 + 28 >> 2] = $3;
$1 = $1 << 8 & 2147483392;
HEAP32[$0 + 32 >> 2] = $1;
HEAP32[$0 + 20 >> 2] = HEAP32[$0 + 20 >> 2] + 8;
if ($3 >>> 0 < 8388609) {
continue;
}
break;
}
}
}
function exp($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
wasm2js_scratch_store_f64(+$0);
$1 = wasm2js_scratch_load_i32(1) | 0;
$4 = wasm2js_scratch_load_i32(0) | 0;
$5 = $1 >>> 31 | 0;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
$3 = $0;
label$5 : {
label$6 : {
$6 = $1;
$1 = $6 & 2147483647;
label$7 : {
if ($1 >>> 0 >= 1082532651) {
$4 = __DOUBLE_BITS($0);
$6 = $4;
$1 = i64toi32_i32$HIGH_BITS;
$4 = $1 & 2147483647;
$1 = $6;
if (($4 | 0) == 2146435072 & ($1 | 0) != 0 | $4 >>> 0 > 2146435072) {
return $0;
}
if (!($0 > 709.782712893384 ^ 1)) {
return $0 * 8.98846567431158e+307;
}
if (!($0 < -745.1332191019411) | $0 < -708.3964185322641 ^ 1) {
break label$7;
}
break label$2;
}
if ($1 >>> 0 < 1071001155) {
break label$4;
}
if ($1 >>> 0 < 1072734898) {
break label$6;
}
}
$2 = $0 * 1.4426950408889634 + HEAPF64[($5 << 3) + 10928 >> 3];
if (Math_abs($2) < 2147483648) {
$1 = ~~$2;
break label$5;
}
$1 = -2147483648;
break label$5;
}
$1 = ($5 ^ 1) - $5 | 0;
}
$2 = +($1 | 0);
$0 = $3 + $2 * -.6931471803691238;
$7 = $2 * 1.9082149292705877e-10;
$3 = $0 - $7;
break label$3;
}
if ($1 >>> 0 <= 1043333120) {
break label$1;
}
$1 = 0;
$3 = $0;
}
$2 = $3 * $3;
$2 = $3 - $2 * ($2 * ($2 * ($2 * ($2 * 4.1381367970572385e-8 + -16533902205465252e-22) + 6613756321437934e-20) + -.0027777777777015593) + .16666666666666602);
$2 = $0 + ($3 * $2 / (2 - $2) - $7) + 1;
if (!$1) {
break label$2;
}
$2 = scalbn($2, $1);
}
return $2;
}
return $0 + 1;
}
function memmove($0, $1, $2) {
var $3 = 0;
label$1 : {
if (($0 | 0) == ($1 | 0)) {
break label$1;
}
if (($1 - $0 | 0) - $2 >>> 0 <= 0 - ($2 << 1) >>> 0) {
return memcpy($0, $1, $2);
}
$3 = ($0 ^ $1) & 3;
label$3 : {
label$4 : {
if ($0 >>> 0 < $1 >>> 0) {
if ($3) {
$3 = $0;
break label$3;
}
if (!($0 & 3)) {
$3 = $0;
break label$4;
}
$3 = $0;
while (1) {
if (!$2) {
break label$1;
}
HEAP8[$3 | 0] = HEAPU8[$1 | 0];
$1 = $1 + 1 | 0;
$2 = $2 - 1 | 0;
$3 = $3 + 1 | 0;
if ($3 & 3) {
continue;
}
break;
}
break label$4;
}
label$9 : {
if ($3) {
break label$9;
}
if ($0 + $2 & 3) {
while (1) {
if (!$2) {
break label$1;
}
$2 = $2 - 1 | 0;
$3 = $2 + $0 | 0;
HEAP8[$3 | 0] = HEAPU8[$1 + $2 | 0];
if ($3 & 3) {
continue;
}
break;
}
}
if ($2 >>> 0 <= 3) {
break label$9;
}
while (1) {
$2 = $2 - 4 | 0;
HEAP32[$2 + $0 >> 2] = HEAP32[$1 + $2 >> 2];
if ($2 >>> 0 > 3) {
continue;
}
break;
}
}
if (!$2) {
break label$1;
}
while (1) {
$2 = $2 - 1 | 0;
HEAP8[$2 + $0 | 0] = HEAPU8[$1 + $2 | 0];
if ($2) {
continue;
}
break;
}
break label$1;
}
if ($2 >>> 0 <= 3) {
break label$3;
}
while (1) {
HEAP32[$3 >> 2] = HEAP32[$1 >> 2];
$1 = $1 + 4 | 0;
$3 = $3 + 4 | 0;
$2 = $2 - 4 | 0;
if ($2 >>> 0 > 3) {
continue;
}
break;
}
}
if (!$2) {
break label$1;
}
while (1) {
HEAP8[$3 | 0] = HEAPU8[$1 | 0];
$3 = $3 + 1 | 0;
$1 = $1 + 1 | 0;
$2 = $2 - 1 | 0;
if ($2) {
continue;
}
break;
}
}
return $0;
}
function silk_resampler_private_up2_HQ($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
if (($3 | 0) >= 1) {
$9 = HEAP32[$0 + 20 >> 2];
$7 = HEAP32[$0 + 16 >> 2];
$4 = HEAP32[$0 + 12 >> 2];
$6 = HEAP32[$0 + 8 >> 2];
$8 = HEAP32[$0 + 4 >> 2];
$5 = HEAP32[$0 >> 2];
while (1) {
$13 = HEAP16[($12 << 1) + $2 >> 1] << 10;
$10 = $13 - $5 | 0;
$10 = (Math_imul($10 & 65535, 1746) >>> 16 | 0) + Math_imul($10 >> 16, 1746) | 0;
$14 = $10 + $5 | 0;
$5 = $14 - $8 | 0;
$15 = (Math_imul($5 & 65535, 14986) >>> 16 | 0) + Math_imul($5 >> 16, 14986) | 0;
$5 = $15 + $8 | 0;
$8 = $5 - $6 | 0;
$11 = $12 << 2;
$5 = (Math_imul($8 >> 16, -26453) + (Math_imul($8 & 65535, -26453) >> 16) | 0) + $5 | 0;
$6 = ($5 >> 9) + 1 >> 1;
HEAP16[$11 + $1 >> 1] = ($5 | 0) > 33553919 ? 32767 : ($6 | 0) > -32768 ? $6 : -32768;
$18 = ($11 | 2) + $1 | 0;
$6 = $13 - $4 | 0;
$11 = (Math_imul($6 & 65535, 6854) >>> 16 | 0) + Math_imul($6 >> 16, 6854) | 0;
$16 = $11 + $4 | 0;
$4 = $16 - $7 | 0;
$17 = (Math_imul($4 & 65535, 25769) >>> 16 | 0) + Math_imul($4 >> 16, 25769) | 0;
$4 = $17 + $7 | 0;
$7 = $4 - $9 | 0;
$4 = (Math_imul($7 >> 16, -9994) + (Math_imul($7 & 65535, -9994) >> 16) | 0) + $4 | 0;
$9 = ($4 >> 9) + 1 >> 1;
HEAP16[$18 >> 1] = ($4 | 0) > 33553919 ? 32767 : ($9 | 0) > -32768 ? $9 : -32768;
$9 = $4 + $7 | 0;
$6 = $5 + $8 | 0;
$7 = $16 + $17 | 0;
$8 = $14 + $15 | 0;
$4 = $13 + $11 | 0;
$5 = $13 + $10 | 0;
$12 = $12 + 1 | 0;
if (($12 | 0) != ($3 | 0)) {
continue;
}
break;
}
HEAP32[$0 + 20 >> 2] = $9;
HEAP32[$0 + 16 >> 2] = $7;
HEAP32[$0 + 12 >> 2] = $4;
HEAP32[$0 + 8 >> 2] = $6;
HEAP32[$0 + 4 >> 2] = $8;
HEAP32[$0 >> 2] = $5;
}
}
function ec_encode_bin($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0;
$4 = -1 << $3;
$5 = HEAP32[$0 + 28 >> 2];
$3 = $5 >>> $3 | 0;
$6 = $0;
label$1 : {
if ($1) {
HEAP32[$0 + 32 >> 2] = HEAP32[$0 + 32 >> 2] + (Math_imul($1 + $4 | 0, $3) + $5 | 0);
$3 = Math_imul($2 - $1 | 0, $3);
break label$1;
}
$3 = Math_imul($2 + $4 | 0, $3) + $5 | 0;
}
HEAP32[$6 + 28 >> 2] = $3;
if ($3 >>> 0 <= 8388608) {
$1 = HEAP32[$0 + 32 >> 2];
while (1) {
$5 = $1 >>> 23 | 0;
label$5 : {
if (($5 | 0) != 255) {
$3 = $1 >>> 31 | 0;
$2 = HEAP32[$0 + 40 >> 2];
if (($2 | 0) >= 0) {
$1 = -1;
$4 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $4 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $4 + 1;
HEAP8[HEAP32[$0 >> 2] + $4 | 0] = $2 + $3;
$1 = 0;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $1;
}
$1 = HEAP32[$0 + 36 >> 2];
if ($1) {
$4 = $3 - 1 | 0;
while (1) {
$3 = -1;
$2 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $2 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $2 + 1;
HEAP8[HEAP32[$0 >> 2] + $2 | 0] = $4;
$3 = 0;
$1 = HEAP32[$0 + 36 >> 2];
}
$1 = $1 - 1 | 0;
HEAP32[$0 + 36 >> 2] = $1;
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $3;
if ($1) {
continue;
}
break;
}
}
HEAP32[$0 + 40 >> 2] = $5 & 255;
$3 = HEAP32[$0 + 28 >> 2];
$1 = HEAP32[$0 + 32 >> 2];
break label$5;
}
HEAP32[$0 + 36 >> 2] = HEAP32[$0 + 36 >> 2] + 1;
}
$3 = $3 << 8;
HEAP32[$0 + 28 >> 2] = $3;
$1 = $1 << 8 & 2147483392;
HEAP32[$0 + 32 >> 2] = $1;
HEAP32[$0 + 20 >> 2] = HEAP32[$0 + 20 >> 2] + 8;
if ($3 >>> 0 < 8388609) {
continue;
}
break;
}
}
}
function ec_encode($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0;
$5 = HEAP32[$0 + 28 >> 2];
$4 = ($5 >>> 0) / ($3 >>> 0) | 0;
$6 = $0;
label$1 : {
if ($1) {
HEAP32[$0 + 32 >> 2] = HEAP32[$0 + 32 >> 2] + (Math_imul($1 - $3 | 0, $4) + $5 | 0);
$3 = Math_imul($2 - $1 | 0, $4);
break label$1;
}
$3 = Math_imul($2 - $3 | 0, $4) + $5 | 0;
}
HEAP32[$6 + 28 >> 2] = $3;
if ($3 >>> 0 <= 8388608) {
$1 = HEAP32[$0 + 32 >> 2];
while (1) {
$5 = $1 >>> 23 | 0;
label$5 : {
if (($5 | 0) != 255) {
$3 = $1 >>> 31 | 0;
$4 = HEAP32[$0 + 40 >> 2];
if (($4 | 0) >= 0) {
$1 = -1;
$2 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $2 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $2 + 1;
HEAP8[HEAP32[$0 >> 2] + $2 | 0] = $3 + $4;
$1 = 0;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $1;
}
$1 = HEAP32[$0 + 36 >> 2];
if ($1) {
$2 = $3 - 1 | 0;
while (1) {
$3 = -1;
$4 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $4 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $4 + 1;
HEAP8[HEAP32[$0 >> 2] + $4 | 0] = $2;
$3 = 0;
$1 = HEAP32[$0 + 36 >> 2];
}
$1 = $1 - 1 | 0;
HEAP32[$0 + 36 >> 2] = $1;
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $3;
if ($1) {
continue;
}
break;
}
}
HEAP32[$0 + 40 >> 2] = $5 & 255;
$3 = HEAP32[$0 + 28 >> 2];
$1 = HEAP32[$0 + 32 >> 2];
break label$5;
}
HEAP32[$0 + 36 >> 2] = HEAP32[$0 + 36 >> 2] + 1;
}
$3 = $3 << 8;
HEAP32[$0 + 28 >> 2] = $3;
$1 = $1 << 8 & 2147483392;
HEAP32[$0 + 32 >> 2] = $1;
HEAP32[$0 + 20 >> 2] = HEAP32[$0 + 20 >> 2] + 8;
if ($3 >>> 0 < 8388609) {
continue;
}
break;
}
}
}
function silk_setup_resamplers($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0;
$2 = __stack_pointer - 304 | 0;
$8 = $2;
__stack_pointer = $2;
$3 = HEAP32[$0 + 4576 >> 2];
label$1 : {
if (($3 | 0) == ($1 | 0)) {
$5 = 0;
if (HEAP32[$0 + 4560 >> 2] == HEAP32[$0 + 4556 >> 2]) {
break label$1;
}
}
if (!$3) {
$5 = silk_resampler_init($0 + 5776 | 0, HEAP32[$0 + 4556 >> 2], Math_imul($1, 1e3), 1);
break label$1;
}
$9 = Math_imul(HEAP32[$0 + 4580 >> 2], 10) + 5 | 0;
$6 = Math_imul($9, $3);
$5 = Math_imul($1, $9);
$7 = $2 - (((($5 | 0) < ($6 | 0) ? $6 : $5) << 1) + 15 & -16) | 0;
$10 = $7;
__stack_pointer = $7;
if (($6 | 0) >= 1) {
$2 = $6;
while (1) {
$3 = $2 - 1 | 0;
$11 = ($3 << 1) + $7 | 0;
$4 = lrintf(HEAPF32[(($3 << 2) + $0 | 0) + 7180 >> 2]);
$4 = ($4 | 0) > -32768 ? $4 : -32768;
HEAP16[$11 >> 1] = ($4 | 0) < 32767 ? $4 : 32767;
$4 = ($2 | 0) > 1;
$2 = $3;
if ($4) {
continue;
}
break;
}
}
$3 = silk_resampler_init($8, Math_imul(HEAP16[$0 + 4576 >> 1], 1e3), HEAP32[$0 + 4556 >> 2], 0);
$4 = Math_imul(HEAP32[$0 + 4556 >> 2] / 1e3 | 0, $9);
$2 = $10 - (($4 << 1) + 15 & -16) | 0;
__stack_pointer = $2;
$6 = silk_resampler($8, $2, $7, $6) + $3 | 0;
$3 = $0 + 5776 | 0;
$1 = $6 + silk_resampler_init($3, HEAP32[$0 + 4556 >> 2], Math_imul($1 << 16 >> 16, 1e3), 1) | 0;
$4 = silk_resampler($3, $7, $2, $4);
if (($5 | 0) >= 1) {
while (1) {
$2 = $5 - 1 | 0;
HEAPF32[(($2 << 2) + $0 | 0) + 7180 >> 2] = HEAP16[($2 << 1) + $7 >> 1];
$3 = ($5 | 0) > 1;
$5 = $2;
if ($3) {
continue;
}
break;
}
}
$5 = $1 + $4 | 0;
}
HEAP32[$0 + 4560 >> 2] = HEAP32[$0 + 4556 >> 2];
__stack_pointer = $8 + 304 | 0;
return $5;
}
function compute_mdcts($0, $1, $2, $3, $4, $5, $6, $7, $8) {
var $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = Math_fround(0);
$10 = HEAP32[$0 + 44 >> 2];
$12 = HEAP32[$0 + 4 >> 2];
if ($1) {
$15 = HEAP32[$0 + 36 >> 2];
} else {
$10 = $10 << $6;
$1 = 1;
$15 = HEAP32[$0 + 36 >> 2] - $6 | 0;
}
$16 = ($5 | 0) > 1 ? $5 : 1;
$17 = $0 - -64 | 0;
$9 = Math_imul($1, $10);
$18 = $12 + $9 | 0;
while (1) {
if (($1 | 0) >= 1) {
$11 = Math_imul($9, $13);
$14 = (Math_imul($13, $18) << 2) + $2 | 0;
$6 = 0;
while (1) {
clt_mdct_forward_c($17, (Math_imul($6, $10) << 2) + $14 | 0, ($6 + $11 << 2) + $3 | 0, HEAP32[$0 + 60 >> 2], $12, $15, $1, $8);
$6 = $6 + 1 | 0;
if (($6 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$13 = $13 + 1 | 0;
if (($16 | 0) != ($13 | 0)) {
continue;
}
break;
}
if (!(($4 | 0) != 1 | ($5 | 0) != 2 | ($9 | 0) < 1)) {
$6 = 0;
while (1) {
$1 = ($6 << 2) + $3 | 0;
HEAPF32[$1 >> 2] = Math_fround(HEAPF32[$1 >> 2] * Math_fround(.5)) + Math_fround(HEAPF32[($6 + $9 << 2) + $3 >> 2] * Math_fround(.5));
$6 = $6 + 1 | 0;
if (($9 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
if (($7 | 0) != 1) {
$10 = ($4 | 0) > 1 ? $4 : 1;
$11 = ($9 | 0) / ($7 | 0) | 0;
$12 = $9 - $11 << 2;
$19 = Math_fround($7 | 0);
$0 = 0;
while (1) {
$14 = Math_imul($0, $9);
$6 = 0;
if (($11 | 0) >= 1) {
while (1) {
$1 = ($6 + $14 << 2) + $3 | 0;
HEAPF32[$1 >> 2] = HEAPF32[$1 >> 2] * $19;
$6 = $6 + 1 | 0;
if (($11 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
memset(($11 + $14 << 2) + $3 | 0, 0, $12);
$0 = $0 + 1 | 0;
if (($10 | 0) != ($0 | 0)) {
continue;
}
break;
}
}
}
function celt_preemphasis($0, $1, $2, $3, $4, $5, $6, $7) {
var $8 = Math_fround(0), $9 = Math_fround(0), $10 = 0, $11 = Math_fround(0), $12 = Math_fround(0);
$9 = HEAPF32[$6 >> 2];
$11 = HEAPF32[$5 >> 2];
label$1 : {
if (!(($4 | 0) != 1 | $7 | HEAPF32[$5 + 4 >> 2] != Math_fround(0))) {
if (($2 | 0) < 1) {
break label$1;
}
$5 = 0;
while (1) {
$8 = Math_fround(HEAPF32[(Math_imul($3, $5) << 2) + $0 >> 2] * Math_fround(32768));
HEAPF32[($5 << 2) + $1 >> 2] = $8 - $9;
$9 = Math_fround($11 * $8);
$5 = $5 + 1 | 0;
if (($5 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$1;
}
$10 = ($2 | 0) / ($4 | 0) | 0;
if (($4 | 0) != 1) {
memset($1, 0, $2 << 2);
}
label$5 : {
if (($10 | 0) < 1) {
break label$5;
}
$5 = 0;
while (1) {
HEAPF32[(Math_imul($4, $5) << 2) + $1 >> 2] = HEAPF32[(Math_imul($3, $5) << 2) + $0 >> 2] * Math_fround(32768);
$5 = $5 + 1 | 0;
if (($10 | 0) != ($5 | 0)) {
continue;
}
break;
}
if (!$7 | ($10 | 0) < 1) {
break label$5;
}
$5 = 0;
while (1) {
$0 = (Math_imul($4, $5) << 2) + $1 | 0;
$7 = $0;
$8 = HEAPF32[$0 >> 2];
$0 = $8 > Math_fround(65536);
$3 = ($0 ? Math_fround(65536) : $8) < Math_fround(-65536);
$12 = $3 ? Math_fround(-65536) : Math_fround(65536);
HEAPF32[$7 >> 2] = $0 ? $12 : $3 ? $12 : $8;
$5 = $5 + 1 | 0;
if (($10 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
if (($2 | 0) < 1) {
break label$1;
}
$5 = 0;
while (1) {
$0 = ($5 << 2) + $1 | 0;
$8 = HEAPF32[$0 >> 2];
HEAPF32[$0 >> 2] = $8 - $9;
$9 = Math_fround($11 * $8);
$5 = $5 + 1 | 0;
if (($5 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
HEAPF32[$6 >> 2] = $9;
}
function silk_LTP_analysis_filter_FLP($0, $1, $2, $3, $4, $5, $6, $7) {
var $8 = Math_fround(0), $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = Math_fround(0);
$9 = __stack_pointer - 32 | 0;
if (($6 | 0) >= 1) {
$14 = $5 + $7 | 0;
$15 = ($14 | 0) < 1;
while (1) {
$7 = $13 << 2;
$16 = HEAPF32[$7 + $4 >> 2];
$11 = HEAP32[$3 + $7 >> 2];
$7 = Math_imul($13, 20) + $2 | 0;
HEAP32[$9 + 16 >> 2] = HEAP32[$7 + 16 >> 2];
$12 = HEAP32[$7 + 4 >> 2];
$10 = HEAP32[$7 >> 2];
HEAP32[$9 >> 2] = $10;
HEAP32[$9 + 4 >> 2] = $12;
$10 = HEAP32[$7 + 12 >> 2];
$12 = HEAP32[$7 + 8 >> 2];
HEAP32[$9 + 8 >> 2] = $12;
HEAP32[$9 + 12 >> 2] = $10;
if (!$15) {
$7 = $1 - ($11 << 2) | 0;
$12 = 0;
while (1) {
$10 = $12 << 2;
$11 = $10 + $0 | 0;
$10 = $1 + $10 | 0;
$8 = HEAPF32[$10 >> 2];
$10 = HEAP32[$10 >> 2];
HEAP32[$11 >> 2] = $10;
$8 = Math_fround($8 - Math_fround(HEAPF32[$9 >> 2] * HEAPF32[$7 + 8 >> 2]));
HEAPF32[$11 >> 2] = $8;
$8 = Math_fround($8 - Math_fround(HEAPF32[$9 + 4 >> 2] * HEAPF32[$7 + 4 >> 2]));
HEAPF32[$11 >> 2] = $8;
$8 = Math_fround($8 - Math_fround(HEAPF32[$9 + 8 >> 2] * HEAPF32[$7 >> 2]));
HEAPF32[$11 >> 2] = $8;
$8 = Math_fround($8 - Math_fround(HEAPF32[$9 + 12 >> 2] * HEAPF32[$7 - 4 >> 2]));
HEAPF32[$11 >> 2] = $8;
HEAPF32[$11 >> 2] = $16 * Math_fround($8 - Math_fround(HEAPF32[$9 + 16 >> 2] * HEAPF32[$7 - 8 >> 2]));
$7 = $7 + 4 | 0;
$12 = $12 + 1 | 0;
if (($14 | 0) != ($12 | 0)) {
continue;
}
break;
}
}
$1 = ($5 << 2) + $1 | 0;
$0 = ($14 << 2) + $0 | 0;
$13 = $13 + 1 | 0;
if (($13 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
}
function __stdio_write($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;
$3 = __stack_pointer - 32 | 0;
__stack_pointer = $3;
$4 = HEAP32[$0 + 28 >> 2];
HEAP32[$3 + 16 >> 2] = $4;
$5 = HEAP32[$0 + 20 >> 2];
HEAP32[$3 + 28 >> 2] = $2;
HEAP32[$3 + 24 >> 2] = $1;
$1 = $5 - $4 | 0;
HEAP32[$3 + 20 >> 2] = $1;
$8 = $1 + $2 | 0;
$9 = 2;
$1 = $3 + 16 | 0;
label$1 : {
label$2 : {
label$3 : {
if (!__wasi_syscall_ret(__wasi_fd_write(HEAP32[$0 + 60 >> 2], $3 + 16 | 0, 2, $3 + 12 | 0) | 0)) {
while (1) {
$4 = HEAP32[$3 + 12 >> 2];
if (($8 | 0) == ($4 | 0)) {
break label$3;
}
if (($4 | 0) <= -1) {
break label$2;
}
$6 = HEAP32[$1 + 4 >> 2];
$5 = $6 >>> 0 < $4 >>> 0;
$7 = ($5 << 3) + $1 | 0;
$6 = $4 - ($5 ? $6 : 0) | 0;
HEAP32[$7 >> 2] = $6 + HEAP32[$7 >> 2];
$7 = ($5 ? 12 : 4) + $1 | 0;
HEAP32[$7 >> 2] = HEAP32[$7 >> 2] - $6;
$8 = $8 - $4 | 0;
$1 = $5 ? $1 + 8 | 0 : $1;
$9 = $9 - $5 | 0;
if (!__wasi_syscall_ret(__wasi_fd_write(HEAP32[$0 + 60 >> 2], $1 | 0, $9 | 0, $3 + 12 | 0) | 0)) {
continue;
}
break;
}
}
if (($8 | 0) != -1) {
break label$2;
}
}
$1 = HEAP32[$0 + 44 >> 2];
HEAP32[$0 + 28 >> 2] = $1;
HEAP32[$0 + 20 >> 2] = $1;
HEAP32[$0 + 16 >> 2] = HEAP32[$0 + 48 >> 2] + $1;
$0 = $2;
break label$1;
}
HEAP32[$0 + 28 >> 2] = 0;
HEAP32[$0 + 16 >> 2] = 0;
HEAP32[$0 + 20 >> 2] = 0;
HEAP32[$0 >> 2] = HEAP32[$0 >> 2] | 32;
$0 = 0;
if (($9 | 0) == 2) {
break label$1;
}
$0 = $2 - HEAP32[$1 + 4 >> 2] | 0;
}
__stack_pointer = $3 + 32 | 0;
$4 = $0;
return $4 | 0;
}
function ec_enc_bit_logp($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0;
$3 = HEAP32[$0 + 28 >> 2];
$2 = $3 >>> $2 | 0;
$3 = $3 - $2 | 0;
label$1 : {
if (!$1) {
$2 = $3;
break label$1;
}
HEAP32[$0 + 32 >> 2] = HEAP32[$0 + 32 >> 2] + $3;
}
HEAP32[$0 + 28 >> 2] = $2;
if ($2 >>> 0 <= 8388608) {
$1 = HEAP32[$0 + 32 >> 2];
while (1) {
$5 = $1 >>> 23 | 0;
label$5 : {
if (($5 | 0) != 255) {
$2 = $1 >>> 31 | 0;
$3 = HEAP32[$0 + 40 >> 2];
if (($3 | 0) >= 0) {
$1 = -1;
$4 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $4 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $4 + 1;
HEAP8[HEAP32[$0 >> 2] + $4 | 0] = $2 + $3;
$1 = 0;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $1;
}
$1 = HEAP32[$0 + 36 >> 2];
if ($1) {
$4 = $2 - 1 | 0;
while (1) {
$2 = -1;
$3 = HEAP32[$0 + 24 >> 2];
if (HEAPU32[$0 + 4 >> 2] > $3 + HEAP32[$0 + 8 >> 2] >>> 0) {
HEAP32[$0 + 24 >> 2] = $3 + 1;
HEAP8[HEAP32[$0 >> 2] + $3 | 0] = $4;
$2 = 0;
$1 = HEAP32[$0 + 36 >> 2];
}
$1 = $1 - 1 | 0;
HEAP32[$0 + 36 >> 2] = $1;
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $2;
if ($1) {
continue;
}
break;
}
}
HEAP32[$0 + 40 >> 2] = $5 & 255;
$2 = HEAP32[$0 + 28 >> 2];
$1 = HEAP32[$0 + 32 >> 2];
break label$5;
}
HEAP32[$0 + 36 >> 2] = HEAP32[$0 + 36 >> 2] + 1;
}
$2 = $2 << 8;
HEAP32[$0 + 28 >> 2] = $2;
$1 = $1 << 8 & 2147483392;
HEAP32[$0 + 32 >> 2] = $1;
HEAP32[$0 + 20 >> 2] = HEAP32[$0 + 20 >> 2] + 8;
if ($2 >>> 0 < 8388609) {
continue;
}
break;
}
}
}
function silk_gains_quant($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0;
if (($4 | 0) >= 1) {
while (1) {
$10 = ($9 << 2) + $1 | 0;
silk_lin2log(HEAP32[$10 >> 2]);
$6 = $0 + $9 | 0;
$7 = Math_imul((silk_lin2log(HEAP32[$10 >> 2]) << 16) - 136970240 >> 16, 2251);
$5 = $7 >>> 16 | 0;
HEAP8[$6 | 0] = $5;
if (HEAP8[$2 | 0] > $7 << 8 >> 24) {
$5 = $5 + 1 | 0;
HEAP8[$6 | 0] = $5;
}
$5 = $5 << 24 >> 24 > 0 ? $5 : 0;
$7 = $5 << 24 >> 24 < 63 ? $5 : 63;
HEAP8[$6 | 0] = $7;
$5 = HEAP8[$2 | 0];
label$4 : {
if (!($3 | $9)) {
$8 = $5 - 4 | 0;
$7 = $7 & 255;
$5 = ($5 | 0) > 67 ? 63 : ($7 | 0) < ($8 | 0) ? $8 : $7;
HEAP8[$6 | 0] = $5;
HEAP8[$2 | 0] = $5;
break label$4;
}
$5 = $7 - $5 | 0;
HEAP8[$6 | 0] = $5;
$7 = HEAP8[$2 | 0] + 8 | 0;
$8 = $5 << 24 >> 24;
if (($7 | 0) < ($8 | 0)) {
$5 = (($8 - $7 | 0) + 1 >>> 1 | 0) + $7 | 0;
HEAP8[$6 | 0] = $5;
}
$5 = $5 << 24 >> 24 > -4 ? $5 : -4;
$5 = $5 << 24 >> 24 < 36 ? $5 : 36;
HEAP8[$6 | 0] = $5;
$11 = $2;
$8 = $5 << 24 >> 24;
label$7 : {
if (($8 | 0) > ($7 | 0)) {
$5 = HEAPU8[$2 | 0] + (($8 << 1) - $7 | 0) | 0;
HEAP8[$2 | 0] = $5;
$5 = $5 << 24 >> 24 < 63 ? $5 : 63;
break label$7;
}
$5 = HEAPU8[$2 | 0] + $5 | 0;
}
HEAP8[$11 | 0] = $5;
HEAP8[$6 | 0] = HEAPU8[$6 | 0] + 4;
$5 = HEAPU8[$2 | 0];
}
$6 = $5 << 24 >> 24;
$6 = (Math_imul($6, 7281) >> 16) + Math_imul($6, 29) | 0;
HEAP32[$10 >> 2] = silk_log2lin((($6 | 0) < 1877 ? $6 : 1877) + 2090 | 0);
$9 = $9 + 1 | 0;
if (($9 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
}
function silk_warped_autocorrelation_FLP($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
$5 = __stack_pointer - 416 | 0;
__stack_pointer = $5;
memset($5 + 208 | 0, 0, 200);
$5 = memset($5, 0, 200);
if (!($4 & 1)) {
if (($3 | 0) >= 1) {
$6 = $4 << 3;
$11 = $6 + $5 | 0;
$18 = ($5 + 208 | 0) + $6 | 0;
$12 = +$2;
$19 = ($4 | 0) < 1;
while (1) {
$8 = +HEAPF32[($9 << 2) + $1 >> 2];
$6 = 0;
if (!$19) {
while (1) {
$7 = $6 << 3;
$13 = $7 | 8;
$14 = $13 + ($5 + 208 | 0) | 0;
$15 = HEAPF64[$14 >> 3];
HEAPF64[($5 + 208 | 0) + $7 >> 3] = $8;
$7 = $5 + $7 | 0;
$16 = HEAPF64[$5 + 208 >> 3];
HEAPF64[$7 >> 3] = HEAPF64[$7 >> 3] + $8 * $16;
$6 = $6 + 2 | 0;
$17 = HEAPF64[($5 + 208 | 0) + ($6 << 3) >> 3];
$8 = $10 + ($15 - $8) * $12;
HEAPF64[$14 >> 3] = $8;
$7 = $5 + $13 | 0;
HEAPF64[$7 >> 3] = $16 * $8 + HEAPF64[$7 >> 3];
$8 = $15 + ($17 - $8) * $12;
$10 = $17;
if (($4 | 0) > ($6 | 0)) {
continue;
}
break;
}
}
HEAPF64[$18 >> 3] = $8;
$10 = HEAPF64[$5 + 208 >> 3];
HEAPF64[$11 >> 3] = HEAPF64[$11 >> 3] + $8 * $10;
$9 = $9 + 1 | 0;
if (($9 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$6 = 0;
if (($4 | 0) >= 0) {
while (1) {
HEAPF32[($6 << 2) + $0 >> 2] = HEAPF64[($6 << 3) + $5 >> 3];
$7 = ($4 | 0) != ($6 | 0);
$6 = $6 + 1 | 0;
if ($7) {
continue;
}
break;
}
}
__stack_pointer = $5 + 416 | 0;
return;
}
celt_fatal(10944, 10981, 49);
abort();
}
function pop_arg($0, $1, $2, $3) {
label$1 : {
if ($1 >>> 0 > 20) {
break label$1;
}
label$2 : {
switch ($1 - 9 | 0) {
case 0:
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
HEAP32[$0 >> 2] = HEAP32[$1 >> 2];
return;
case 1:
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
$1 = HEAP32[$1 >> 2];
$2 = $1 >> 31;
HEAP32[$0 >> 2] = $1;
HEAP32[$0 + 4 >> 2] = $2;
return;
case 2:
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
$2 = HEAP32[$1 >> 2];
HEAP32[$0 >> 2] = $2;
HEAP32[$0 + 4 >> 2] = 0;
return;
case 3:
$1 = HEAP32[$2 >> 2] + 7 & -8;
HEAP32[$2 >> 2] = $1 + 8;
$2 = HEAP32[$1 + 4 >> 2];
$1 = HEAP32[$1 >> 2];
HEAP32[$0 >> 2] = $1;
HEAP32[$0 + 4 >> 2] = $2;
return;
case 4:
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
$2 = HEAP16[$1 >> 1];
$1 = $2 >> 31;
HEAP32[$0 >> 2] = $2;
HEAP32[$0 + 4 >> 2] = $1;
return;
case 5:
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
$1 = HEAPU16[$1 >> 1];
HEAP32[$0 >> 2] = $1;
HEAP32[$0 + 4 >> 2] = 0;
return;
case 6:
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
$2 = HEAP8[$1 | 0];
$1 = $2 >> 31;
HEAP32[$0 >> 2] = $2;
HEAP32[$0 + 4 >> 2] = $1;
return;
case 7:
$1 = HEAP32[$2 >> 2];
HEAP32[$2 >> 2] = $1 + 4;
$1 = HEAPU8[$1 | 0];
HEAP32[$0 >> 2] = $1;
HEAP32[$0 + 4 >> 2] = 0;
return;
case 8:
$1 = HEAP32[$2 >> 2] + 7 & -8;
HEAP32[$2 >> 2] = $1 + 8;
HEAPF64[$0 >> 3] = HEAPF64[$1 >> 3];
return;
case 9:
break label$2;
default:
break label$1;
}
}
FUNCTION_TABLE[$3 | 0]($0, $2);
}
}
function speex_resampler_init_frac($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = 0;
label$1 : {
label$2 : {
if (!(!$2 | (!$0 | !$1))) {
if ($5 >>> 0 < 11) {
break label$2;
}
}
if (!$6) {
break label$1;
}
HEAP32[$6 >> 2] = 3;
return 0;
}
$7 = dlcalloc(96, 1);
if (!$7) {
$7 = 0;
if (!$6) {
break label$1;
}
HEAP32[$6 >> 2] = 1;
return 0;
}
HEAP32[$7 >> 2] = 0;
HEAP32[$7 + 4 >> 2] = 0;
HEAP32[$7 + 44 >> 2] = 1065353216;
HEAP32[$7 + 16 >> 2] = -1;
HEAP32[$7 + 88 >> 2] = 1;
HEAP32[$7 + 92 >> 2] = 1;
HEAP32[$7 + 20 >> 2] = $0;
HEAP32[$7 + 32 >> 2] = 160;
HEAP32[$7 + 8 >> 2] = 0;
HEAP32[$7 + 12 >> 2] = 0;
$0 = $0 << 2;
$8 = dlcalloc($0, 1);
HEAP32[$7 + 60 >> 2] = $8;
label$5 : {
if (!$8) {
break label$5;
}
$8 = dlcalloc($0, 1);
HEAP32[$7 + 68 >> 2] = $8;
if (!$8) {
break label$5;
}
$0 = dlcalloc($0, 1);
HEAP32[$7 + 64 >> 2] = $0;
if (!$0) {
break label$5;
}
HEAP32[$7 + 16 >> 2] = $5;
speex_resampler_set_rate_frac($7, $1, $2, $3, $4);
$0 = update_filter($7);
label$6 : {
if (!$0) {
HEAP32[$7 + 52 >> 2] = 1;
break label$6;
}
dlfree(HEAP32[$7 + 72 >> 2]);
dlfree(HEAP32[$7 + 76 >> 2]);
dlfree(HEAP32[$7 + 60 >> 2]);
dlfree(HEAP32[$7 + 68 >> 2]);
dlfree(HEAP32[$7 + 64 >> 2]);
dlfree($7);
$7 = 0;
}
if (!$6) {
break label$1;
}
HEAP32[$6 >> 2] = $0;
return $7;
}
if ($6) {
HEAP32[$6 >> 2] = 1;
}
dlfree(HEAP32[$7 + 76 >> 2]);
dlfree(HEAP32[$7 + 60 >> 2]);
dlfree(HEAP32[$7 + 68 >> 2]);
dlfree(HEAP32[$7 + 64 >> 2]);
dlfree($7);
$7 = 0;
}
return $7;
}
function speex_resampler_set_rate_frac($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
$6 = 3;
label$1 : {
if (!$1 | !$2) {
break label$1;
}
if (!(HEAP32[$0 >> 2] != ($3 | 0) | HEAP32[$0 + 4 >> 2] != ($4 | 0) | HEAP32[$0 + 8 >> 2] != ($1 | 0))) {
$6 = 0;
if (HEAP32[$0 + 12 >> 2] == ($2 | 0)) {
break label$1;
}
}
HEAP32[$0 + 8 >> 2] = $1;
HEAP32[$0 + 4 >> 2] = $4;
HEAP32[$0 >> 2] = $3;
$7 = HEAP32[$0 + 12 >> 2];
HEAP32[$0 + 12 >> 2] = $2;
$5 = $1;
$3 = $2;
while (1) {
$4 = $3;
$3 = ($5 >>> 0) % ($3 >>> 0) | 0;
$5 = $4;
if ($3) {
continue;
}
break;
}
$3 = ($2 >>> 0) / ($4 >>> 0) | 0;
HEAP32[$0 + 12 >> 2] = $3;
HEAP32[$0 + 8 >> 2] = ($1 >>> 0) / ($4 >>> 0);
label$4 : {
if (!$7 | !HEAP32[$0 + 20 >> 2]) {
break label$4;
}
$9 = HEAP32[$0 + 64 >> 2];
$4 = 0;
while (1) {
$6 = 5;
$2 = 4294967295 / ($3 >>> 0) | 0;
$1 = ($4 << 2) + $9 | 0;
$5 = HEAP32[$1 >> 2];
$8 = $5;
$5 = ($5 >>> 0) / ($7 >>> 0) | 0;
$8 = $8 - Math_imul($7, $5) | 0;
if ($2 >>> 0 < $8 >>> 0 | $2 >>> 0 < $5 >>> 0) {
break label$1;
}
$5 = Math_imul($3, $5);
$3 = (Math_imul($3, $8) >>> 0) / ($7 >>> 0) | 0;
if ($5 >>> 0 > ($3 ^ -1) >>> 0) {
break label$1;
}
$3 = $3 + $5 | 0;
HEAP32[$1 >> 2] = $3;
$5 = HEAP32[$0 + 12 >> 2];
if ($5 >>> 0 <= $3 >>> 0) {
HEAP32[$1 >> 2] = $5 - 1;
}
$4 = $4 + 1 | 0;
if ($4 >>> 0 >= HEAPU32[$0 + 20 >> 2]) {
break label$4;
}
$3 = HEAP32[$0 + 12 >> 2];
continue;
}
}
if (!HEAP32[$0 + 52 >> 2]) {
return 0;
}
$6 = update_filter($0);
}
return $6;
}
function log($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0;
wasm2js_scratch_store_f64(+$0);
$2 = wasm2js_scratch_load_i32(1) | 0;
$4 = wasm2js_scratch_load_i32(0) | 0;
$5 = $2;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
if (($2 | 0) > 0 ? 1 : ($2 | 0) >= 0) {
$1 = $5;
if ($1 >>> 0 > 1048575) {
break label$4;
}
}
$2 = $5;
$1 = $2 & 2147483647;
if (!($1 | $4)) {
return -1 / ($0 * $0);
}
$1 = $5;
if (($1 | 0) > -1) {
break label$3;
}
return ($0 - $0) / 0;
}
if ($1 >>> 0 > 2146435071) {
break label$1;
}
$2 = 1072693248;
$6 = -1023;
if (($1 | 0) != 1072693248) {
$2 = $1;
break label$2;
}
if ($4) {
break label$2;
}
return 0;
}
wasm2js_scratch_store_f64(+($0 * 0x40000000000000));
$2 = wasm2js_scratch_load_i32(1) | 0;
$4 = wasm2js_scratch_load_i32(0) | 0;
$6 = -1077;
}
$1 = $2 + 614242 | 0;
$3 = +(($1 >>> 20 | 0) + $6 | 0);
$8 = $3 * .6931471803691238;
$1 = ($1 & 1048575) + 1072079006 | 0;
$2 = 0;
$1 = $2 | $1;
wasm2js_scratch_store_i32(0, $4 | 0);
wasm2js_scratch_store_i32(1, $1 | 0);
$0 = +wasm2js_scratch_load_f64() + -1;
$9 = $0;
$10 = $3 * 1.9082149292705877e-10;
$3 = $0 / ($0 + 2);
$11 = $3;
$7 = $0 * ($0 * .5);
$3 = $3 * $3;
$0 = $3 * $3;
$0 = $8 + ($9 + ($10 + $11 * ($7 + ($0 * ($0 * ($0 * .15313837699209373 + .22222198432149784) + .3999999999940942) + $3 * ($0 * ($0 * ($0 * .14798198605116586 + .1818357216161805) + .2857142874366239) + .6666666666666735))) - $7));
}
return $0;
}
function memset($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
label$1 : {
if (!$2) {
break label$1;
}
$3 = $0 + $2 | 0;
HEAP8[$3 - 1 | 0] = $1;
HEAP8[$0 | 0] = $1;
if ($2 >>> 0 < 3) {
break label$1;
}
HEAP8[$3 - 2 | 0] = $1;
HEAP8[$0 + 1 | 0] = $1;
HEAP8[$3 - 3 | 0] = $1;
HEAP8[$0 + 2 | 0] = $1;
if ($2 >>> 0 < 7) {
break label$1;
}
HEAP8[$3 - 4 | 0] = $1;
HEAP8[$0 + 3 | 0] = $1;
if ($2 >>> 0 < 9) {
break label$1;
}
$4 = 0 - $0 & 3;
$3 = $4 + $0 | 0;
$1 = Math_imul($1 & 255, 16843009);
HEAP32[$3 >> 2] = $1;
$4 = $2 - $4 & -4;
$2 = $4 + $3 | 0;
HEAP32[$2 - 4 >> 2] = $1;
if ($4 >>> 0 < 9) {
break label$1;
}
HEAP32[$3 + 8 >> 2] = $1;
HEAP32[$3 + 4 >> 2] = $1;
HEAP32[$2 - 8 >> 2] = $1;
HEAP32[$2 - 12 >> 2] = $1;
if ($4 >>> 0 < 25) {
break label$1;
}
HEAP32[$3 + 24 >> 2] = $1;
HEAP32[$3 + 20 >> 2] = $1;
HEAP32[$3 + 16 >> 2] = $1;
HEAP32[$3 + 12 >> 2] = $1;
HEAP32[$2 - 16 >> 2] = $1;
HEAP32[$2 - 20 >> 2] = $1;
HEAP32[$2 - 24 >> 2] = $1;
HEAP32[$2 - 28 >> 2] = $1;
$6 = $3 & 4 | 24;
$2 = $4 - $6 | 0;
if ($2 >>> 0 < 32) {
break label$1;
}
$5 = __wasm_i64_mul($1, 0, 1, 1);
$4 = i64toi32_i32$HIGH_BITS;
$7 = $4;
$1 = $3 + $6 | 0;
while (1) {
HEAP32[$1 + 24 >> 2] = $5;
$4 = $7;
HEAP32[$1 + 28 >> 2] = $4;
HEAP32[$1 + 16 >> 2] = $5;
HEAP32[$1 + 20 >> 2] = $4;
HEAP32[$1 + 8 >> 2] = $5;
HEAP32[$1 + 12 >> 2] = $4;
HEAP32[$1 >> 2] = $5;
HEAP32[$1 + 4 >> 2] = $4;
$1 = $1 + 32 | 0;
$2 = $2 - 32 | 0;
if ($2 >>> 0 > 31) {
continue;
}
break;
}
}
return $0;
}
function silk_LPC_analysis_filter($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0;
label$1 : {
label$2 : {
if (($4 | 0) > 5) {
if ($4 & 1) {
break label$2;
}
if (($3 | 0) < ($4 | 0)) {
break label$1;
}
if (($3 | 0) > ($4 | 0)) {
$12 = ($4 | 0) < 7;
$5 = $4;
while (1) {
$11 = $5 << 1;
$7 = $11 + $1 | 0;
$8 = $7 - 2 | 0;
$9 = ((((Math_imul(HEAP16[$2 + 2 >> 1], HEAP16[$7 - 4 >> 1]) + Math_imul(HEAP16[$2 >> 1], HEAP16[$8 >> 1]) | 0) + Math_imul(HEAP16[$2 + 4 >> 1], HEAP16[$7 - 6 >> 1]) | 0) + Math_imul(HEAP16[$2 + 6 >> 1], HEAP16[$7 - 8 >> 1]) | 0) + Math_imul(HEAP16[$2 + 8 >> 1], HEAP16[$7 - 10 >> 1]) | 0) + Math_imul(HEAP16[$2 + 10 >> 1], HEAP16[$7 - 12 >> 1]) | 0;
$6 = 6;
if (!$12) {
while (1) {
$10 = $6 << 1;
$9 = (Math_imul(HEAP16[$10 + $2 >> 1], HEAP16[$8 - $10 >> 1]) + $9 | 0) + Math_imul(HEAP16[($10 | 2) + $2 >> 1], HEAP16[(($6 ^ -1) << 1) + $8 >> 1]) | 0;
$6 = $6 + 2 | 0;
if (($6 | 0) < ($4 | 0)) {
continue;
}
break;
}
}
$6 = ((HEAP16[$7 >> 1] << 12) - $9 >> 11) + 1 >> 1;
$6 = ($6 | 0) > -32768 ? $6 : -32768;
HEAP16[$0 + $11 >> 1] = ($6 | 0) < 32767 ? $6 : 32767;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
memset($0, 0, $4 << 1);
return;
}
celt_fatal(16065, 16090, 67);
abort();
}
celt_fatal(16117, 16090, 68);
abort();
}
celt_fatal(16148, 16090, 69);
abort();
}
function silk_corrMatrix_FLP($0, $1, $2, $3) {
var $4 = 0, $5 = Math_fround(0), $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = Math_fround(0);
$10 = $2 - 1 | 0;
$8 = ($10 << 2) + $0 | 0;
$6 = silk_energy_FLP($8, $1);
HEAPF32[$3 >> 2] = $6;
label$1 : {
if (($2 | 0) < 2) {
break label$1;
}
$4 = 1;
while (1) {
$5 = HEAPF32[$8 - ($4 << 2) >> 2];
$12 = Math_fround($5 * $5);
$5 = HEAPF32[($1 - $4 << 2) + $8 >> 2];
$6 = $6 + +Math_fround($12 - Math_fround($5 * $5));
HEAPF32[(Math_imul($2, $4) + $4 << 2) + $3 >> 2] = $6;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
if (($2 | 0) < 2) {
break label$1;
}
$0 = (($2 << 2) + $0 | 0) - 8 | 0;
$7 = 1;
while (1) {
$4 = (Math_imul($2, $7) << 2) + $3 | 0;
$6 = silk_inner_product_FLP($8, $0, $1);
$5 = Math_fround($6);
HEAPF32[$4 >> 2] = $5;
HEAPF32[($7 << 2) + $3 >> 2] = $5;
$4 = 1;
if (($2 - $7 | 0) >= 2) {
while (1) {
$11 = $4 + $7 | 0;
$9 = $4 << 2;
$5 = Math_fround(HEAPF32[$8 - $9 >> 2] * HEAPF32[$0 - $9 >> 2]);
$9 = $1 - $4 << 2;
$6 = $6 + +Math_fround($5 - Math_fround(HEAPF32[$9 + $8 >> 2] * HEAPF32[$0 + $9 >> 2]));
$5 = Math_fround($6);
HEAPF32[(Math_imul($11, $2) + $4 << 2) + $3 >> 2] = $5;
HEAPF32[(Math_imul($2, $4) + $11 << 2) + $3 >> 2] = $5;
$4 = $4 + 1 | 0;
if (($10 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$10 = $10 - 1 | 0;
$0 = $0 - 4 | 0;
$7 = $7 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
}
function quant_fine_energy($0, $1, $2, $3, $4, $5, $6, $7) {
var $8 = 0, $9 = 0, $10 = Math_fround(0), $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = Math_fround(0), $19 = Math_fround(0);
if (($1 | 0) < ($2 | 0)) {
$16 = ($7 | 0) > 1 ? $7 : 1;
while (1) {
$14 = ($1 << 2) + $5 | 0;
$9 = HEAP32[$14 >> 2];
if (($9 | 0) >= 1) {
$12 = 65536 << $9 >> 16;
$17 = $12 - 1 | 0;
$18 = Math_fround($12 | 0);
$8 = HEAP32[$0 + 8 >> 2];
$7 = 0;
while (1) {
$13 = $6;
$10 = Math_fround(Math_floor(Math_fround(Math_fround(HEAPF32[(Math_imul($7, $8) + $1 << 2) + $4 >> 2] + Math_fround(.5)) * $18)));
label$5 : {
if (Math_fround(Math_abs($10)) < Math_fround(2147483648)) {
$8 = ~~$10;
break label$5;
}
$8 = -2147483648;
}
$8 = ($8 | 0) < ($12 | 0) ? $8 : $17;
$11 = ($8 | 0) > 0 ? $8 : 0;
ec_enc_bits($13, $11, $9);
$8 = HEAP32[$0 + 8 >> 2];
$15 = Math_imul($8, $7) + $1 << 2;
$9 = $15 + $3 | 0;
$13 = $9;
$19 = HEAPF32[$9 >> 2];
$9 = HEAP32[$14 >> 2];
$10 = Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($11 | 0) + Math_fround(.5)) * Math_fround(1 << 14 - $9)) * Math_fround(6103515625e-14)) + Math_fround(-.5));
HEAPF32[$13 >> 2] = $19 + $10;
$11 = $4 + $15 | 0;
HEAPF32[$11 >> 2] = HEAPF32[$11 >> 2] - $10;
$7 = $7 + 1 | 0;
if (($16 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
$1 = $1 + 1 | 0;
if (($2 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
}
function silk_HP_variable_cutoff($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
if (HEAPU8[$0 + 4541 | 0] == 2) {
$1 = silk_lin2log((Math_imul(HEAP32[$0 + 4576 >> 2], 65536e3) | 0) / HEAP32[$0 + 4544 >> 2] | 0);
$2 = HEAP32[$0 + 4696 >> 2];
$3 = silk_lin2log(3932160);
$6 = silk_lin2log(3932160);
$4 = 0 - ($2 << 2) | 0;
$5 = HEAP32[$0 + 8 >> 2];
$2 = $2 << 16 >> 16;
$2 = (Math_imul($2, $4 & 65532) >> 16) + Math_imul($4 >> 16, $2) | 0;
$1 = ((($1 - ($5 >> 8) | 0) + Math_imul($2 >> 16, $1 - $3 << 16 >> 16) | 0) + (Math_imul($2 & 65535, $1 - $6 << 16 >> 16) >> 16) | 0) - 2048 | 0;
$1 = ($1 | 0) < 0 ? Math_imul($1, 3) : $1;
$1 = ($1 | 0) > -51 ? $1 : -51;
$1 = Math_imul(HEAP16[$0 + 4532 >> 1], ($1 | 0) < 51 ? $1 : 51);
HEAP32[$0 + 8 >> 2] = Math_imul($1 >> 16, 6554) + $5 + (Math_imul($1 & 65535, 6554) >>> 16);
$1 = silk_lin2log(60);
$2 = silk_lin2log(100);
$3 = HEAP32[$0 + 8 >> 2];
$4 = $0;
label$2 : {
label$3 : {
if ($1 << 8 > $2 << 8) {
if (silk_lin2log(60) << 8 < ($3 | 0)) {
$1 = silk_lin2log(60) << 8;
break label$2;
}
if (HEAP32[$0 + 8 >> 2] >= silk_lin2log(100) << 8) {
break label$3;
}
$1 = silk_lin2log(100) << 8;
break label$2;
}
if (silk_lin2log(100) << 8 < ($3 | 0)) {
$1 = silk_lin2log(100) << 8;
break label$2;
}
if (HEAP32[$0 + 8 >> 2] >= silk_lin2log(60) << 8) {
break label$3;
}
$1 = silk_lin2log(60) << 8;
break label$2;
}
$1 = HEAP32[$0 + 8 >> 2];
}
HEAP32[$4 + 8 >> 2] = $1;
}
}
function silk_A2NLSF_eval_poly($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0;
$4 = $1 << 4;
$3 = HEAP32[($2 << 2) + $0 >> 2];
if (($2 | 0) != 8) {
if (($2 | 0) >= 1) {
$1 = $1 << 20 >> 16;
$5 = ($4 >> 15) + 1 >> 1;
while (1) {
$4 = $2 - 1 | 0;
$3 = HEAP32[($4 << 2) + $0 >> 2] + ((Math_imul($3 >> 16, $1) + Math_imul($3, $5) | 0) + (Math_imul($3 & 65535, $1) >> 16) | 0) | 0;
$6 = ($2 | 0) > 1;
$2 = $4;
if ($6) {
continue;
}
break;
}
}
return $3;
}
$2 = $1 << 20 >> 16;
$1 = ($4 >> 15) + 1 >> 1;
$3 = HEAP32[$0 + 28 >> 2] + ((Math_imul($2, $3 >> 16) + Math_imul($3, $1) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0) | 0;
$3 = ((HEAP32[$0 + 24 >> 2] + Math_imul($1, $3) | 0) + Math_imul($3 >> 16, $2) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
$3 = ((HEAP32[$0 + 20 >> 2] + Math_imul($3, $1) | 0) + Math_imul($3 >> 16, $2) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
$3 = ((HEAP32[$0 + 16 >> 2] + Math_imul($3, $1) | 0) + Math_imul($3 >> 16, $2) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
$3 = ((HEAP32[$0 + 12 >> 2] + Math_imul($3, $1) | 0) + Math_imul($3 >> 16, $2) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
$3 = ((HEAP32[$0 + 8 >> 2] + Math_imul($3, $1) | 0) + Math_imul($3 >> 16, $2) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
$3 = ((HEAP32[$0 + 4 >> 2] + Math_imul($3, $1) | 0) + Math_imul($3 >> 16, $2) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
return ((HEAP32[$0 >> 2] + Math_imul($3, $1) | 0) + Math_imul($3 >> 16, $2) | 0) + (Math_imul($3 & 65535, $2) >> 16) | 0;
}
function resampler_basic_direct_single($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 $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = Math_fround(0), $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0;
$1 = $1 << 2;
$11 = $1 + HEAP32[$0 + 64 >> 2] | 0;
$8 = HEAP32[$11 >> 2];
$12 = HEAP32[$0 + 60 >> 2] + $1 | 0;
$6 = HEAP32[$12 >> 2];
$13 = HEAP32[$3 >> 2];
label$1 : {
if (($6 | 0) >= ($13 | 0)) {
break label$1;
}
$9 = HEAP32[$0 + 12 >> 2];
$15 = HEAP32[$0 + 40 >> 2];
$16 = HEAP32[$0 + 36 >> 2];
$17 = HEAP32[$0 + 92 >> 2];
$18 = HEAP32[$0 + 76 >> 2];
$3 = HEAP32[$5 >> 2];
$14 = ($3 | 0) > 0 ? $3 : 0;
$1 = HEAP32[$0 + 24 >> 2];
$19 = ($1 | 0) < 1;
while (1) {
if (($7 | 0) == ($14 | 0)) {
$7 = $14;
break label$1;
}
$10 = Math_fround(0);
if (!$19) {
$5 = ($6 << 2) + $2 | 0;
$20 = (Math_imul($1, $8) << 2) + $18 | 0;
$0 = 0;
while (1) {
$3 = $0 << 2;
$10 = Math_fround($10 + Math_fround(HEAPF32[$20 + $3 >> 2] * HEAPF32[$3 + $5 >> 2]));
$0 = $0 + 1 | 0;
if (($1 | 0) != ($0 | 0)) {
continue;
}
break;
}
}
HEAPF32[(Math_imul($7, $17) << 2) + $4 >> 2] = $10;
$0 = $8 + $15 | 0;
$8 = $0 - ($0 >>> 0 < $9 >>> 0 ? 0 : $9) | 0;
$7 = $7 + 1 | 0;
$6 = ($6 + $16 | 0) + ($0 >>> 0 >= $9 >>> 0) | 0;
if (($13 | 0) > ($6 | 0)) {
continue;
}
break;
}
}
HEAP32[$12 >> 2] = $6;
HEAP32[$11 >> 2] = $8;
return $7 | 0;
}
function silk_schur_FLP($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
$6 = __stack_pointer - 400 | 0;
__stack_pointer = $6;
if ($2 >>> 0 <= 24) {
while (1) {
$4 = ($3 << 4) + $6 | 0;
$5 = +HEAPF32[($3 << 2) + $1 >> 2];
HEAPF64[$4 >> 3] = $5;
HEAPF64[$4 + 8 >> 3] = $5;
$4 = ($2 | 0) != ($3 | 0);
$3 = $3 + 1 | 0;
if ($4) {
continue;
}
break;
}
if ($2) {
$1 = 0;
$9 = $2;
while (1) {
$3 = $1;
$1 = $3 + 1 | 0;
$4 = ($1 << 4) + $6 | 0;
$7 = HEAPF64[$6 + 8 >> 3];
$5 = -HEAPF64[$4 >> 3] / ($7 > 9.999999717180685e-10 ? $7 : 9.999999717180685e-10);
HEAPF32[($3 << 2) + $0 >> 2] = $5;
label$5 : {
if (($2 | 0) <= ($3 | 0)) {
break label$5;
}
$8 = HEAPF64[$4 >> 3];
HEAPF64[$4 >> 3] = $8 + $5 * $7;
HEAPF64[$6 + 8 >> 3] = $7 + $5 * $8;
$3 = 1;
if (($9 | 0) == 1) {
break label$5;
}
while (1) {
$4 = ($1 + $3 << 4) + $6 | 0;
$10 = $4;
$7 = HEAPF64[$4 >> 3];
$4 = ($3 << 4) + $6 | 0;
$8 = HEAPF64[$4 + 8 >> 3];
HEAPF64[$10 >> 3] = $7 + $5 * $8;
HEAPF64[$4 + 8 >> 3] = $8 + $5 * $7;
$3 = $3 + 1 | 0;
if (($9 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$9 = $9 - 1 | 0;
if (($1 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $6 + 400 | 0;
$5 = HEAPF64[$6 + 8 >> 3];
return Math_fround($5);
}
celt_fatal(9497, 9557, 44);
abort();
}
function gain_fade($0, $1, $2, $3, $4, $5, $6, $7, $8) {
var $9 = Math_fround(0), $10 = 0, $11 = 0;
$10 = 48e3 / ($8 | 0) | 0;
$11 = ($4 | 0) / ($10 | 0) | 0;
label$1 : {
if (($6 | 0) != 1) {
$4 = 0;
if (($11 | 0) <= 0) {
break label$1;
}
while (1) {
$8 = $4 << 3;
$9 = HEAPF32[(Math_imul($4, $10) << 2) + $7 >> 2];
$9 = Math_fround($9 * $9);
$9 = Math_fround(Math_fround($9 * $3) + Math_fround(Math_fround(Math_fround(1) - $9) * $2));
HEAPF32[$8 + $1 >> 2] = HEAPF32[$0 + $8 >> 2] * $9;
$8 = $8 | 4;
HEAPF32[$8 + $1 >> 2] = HEAPF32[$0 + $8 >> 2] * $9;
$4 = $4 + 1 | 0;
if (($11 | 0) != ($4 | 0)) {
continue;
}
break;
}
break label$1;
}
if (($11 | 0) < 1) {
break label$1;
}
$4 = 0;
while (1) {
$8 = $4 << 2;
$9 = HEAPF32[(Math_imul($4, $10) << 2) + $7 >> 2];
$9 = Math_fround($9 * $9);
HEAPF32[$8 + $1 >> 2] = HEAPF32[$0 + $8 >> 2] * Math_fround(Math_fround($9 * $3) + Math_fround(Math_fround(Math_fround(1) - $9) * $2));
$4 = $4 + 1 | 0;
if (($11 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$10 = ($6 | 0) > 1 ? $6 : 1;
$7 = 0;
while (1) {
$4 = $11;
if (($5 | 0) > ($4 | 0)) {
while (1) {
$8 = Math_imul($4, $6) + $7 << 2;
HEAPF32[$8 + $1 >> 2] = HEAPF32[$0 + $8 >> 2] * $3;
$4 = $4 + 1 | 0;
if (($5 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
$7 = $7 + 1 | 0;
if (($10 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
function _celt_lpc($0, $1, $2) {
var $3 = Math_fround(0), $4 = 0, $5 = Math_fround(0), $6 = 0, $7 = 0, $8 = 0, $9 = Math_fround(0), $10 = Math_fround(0), $11 = 0, $12 = 0, $13 = 0;
$5 = HEAPF32[$1 >> 2];
$0 = memset($0, 0, $2 << 2);
label$1 : {
if (HEAPF32[$1 >> 2] == Math_fround(0)) {
break label$1;
}
$11 = ($2 | 0) > 0 ? $2 : 0;
$7 = 1;
while (1) {
if (($4 | 0) == ($11 | 0)) {
break label$1;
}
$2 = 0;
$3 = Math_fround(0);
if ($4) {
while (1) {
$3 = Math_fround($3 + Math_fround(HEAPF32[($2 << 2) + $0 >> 2] * HEAPF32[($4 - $2 << 2) + $1 >> 2]));
$2 = $2 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$8 = $4 + 1 | 0;
$3 = Math_fround(Math_fround(-Math_fround($3 + HEAPF32[($8 << 2) + $1 >> 2])) / $5);
HEAPF32[($4 << 2) + $0 >> 2] = $3;
if ($4) {
$12 = $7 >>> 1 | 0;
$2 = 0;
while (1) {
$6 = ($2 << 2) + $0 | 0;
$13 = $6;
$9 = HEAPF32[$6 >> 2];
$6 = (($2 ^ -1) + $4 << 2) + $0 | 0;
$10 = HEAPF32[$6 >> 2];
HEAPF32[$13 >> 2] = $9 + Math_fround($3 * $10);
HEAPF32[$6 >> 2] = $10 + Math_fround($3 * $9);
$2 = $2 + 1 | 0;
if (($12 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$7 = $7 + 1 | 0;
$4 = $8;
$5 = Math_fround($5 - Math_fround($5 * Math_fround($3 * $3)));
if ($5 < Math_fround(HEAPF32[$1 >> 2] * Math_fround(.0010000000474974513)) ^ 1) {
continue;
}
break;
}
}
}
function silk_resampler($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0;
label$1 : {
$4 = HEAP32[$0 + 284 >> 2];
if (($4 | 0) <= ($3 | 0)) {
$6 = HEAP32[$0 + 292 >> 2];
if (($6 | 0) > ($4 | 0)) {
break label$1;
}
$5 = $0 + 168 | 0;
$4 = $4 - $6 << 1;
memcpy($5 + ($6 << 1) | 0, $2, $4);
label$3 : {
label$4 : {
switch (HEAP32[$0 + 264 >> 2] - 1 | 0) {
case 0:
silk_resampler_private_up2_HQ_wrapper($0, $1, $5, HEAP32[$0 + 284 >> 2]);
silk_resampler_private_up2_HQ_wrapper($0, (HEAP32[$0 + 288 >> 2] << 1) + $1 | 0, $2 + $4 | 0, $3 - HEAP32[$0 + 284 >> 2] | 0);
break label$3;
case 1:
silk_resampler_private_IIR_FIR($0, $1, $5, HEAP32[$0 + 284 >> 2]);
silk_resampler_private_IIR_FIR($0, (HEAP32[$0 + 288 >> 2] << 1) + $1 | 0, $2 + $4 | 0, $3 - HEAP32[$0 + 284 >> 2] | 0);
break label$3;
case 2:
silk_resampler_private_down_FIR($0, $1, $5, HEAP32[$0 + 284 >> 2]);
silk_resampler_private_down_FIR($0, (HEAP32[$0 + 288 >> 2] << 1) + $1 | 0, $2 + $4 | 0, $3 - HEAP32[$0 + 284 >> 2] | 0);
break label$3;
default:
break label$4;
}
}
memcpy(memcpy($1, $5, HEAP32[$0 + 284 >> 2] << 1) + (HEAP32[$0 + 288 >> 2] << 1) | 0, $2 + $4 | 0, $3 - HEAP32[$0 + 284 >> 2] << 1);
}
$0 = HEAP32[$0 + 292 >> 2];
memcpy($5, ($3 - $0 << 1) + $2 | 0, $0 << 1);
return 0;
}
celt_fatal(6521, 6474, 184);
abort();
}
celt_fatal(6561, 6474, 186);
abort();
}
function silk_quant_LTP_gains_FLP($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
var $10 = 0, $11 = 0, $12 = 0, $13 = 0;
$11 = __stack_pointer - 528 | 0;
__stack_pointer = $11;
$13 = Math_imul($8, 25);
if (($13 | 0) > 0) {
while (1) {
$12 = $10 << 2;
HEAP32[$12 + ($11 + 80 | 0) >> 2] = lrintf(Math_fround(HEAPF32[$5 + $12 >> 2] * Math_fround(131072)));
$10 = $10 + 1 | 0;
if (($13 | 0) != ($10 | 0)) {
continue;
}
break;
}
}
label$3 : {
if (($8 | 0) >= 1) {
$10 = Math_imul($8, 5);
$5 = ($10 | 0) > 1 ? $10 : 1;
$10 = 0;
while (1) {
$12 = $10 << 2;
HEAP32[$12 + $11 >> 2] = lrintf(Math_fround(HEAPF32[$6 + $12 >> 2] * Math_fround(131072)));
$10 = $10 + 1 | 0;
if (($10 | 0) != ($5 | 0)) {
continue;
}
break;
}
silk_quant_LTP_gains($11 + 480 | 0, $1, $2, $3, $11 + 524 | 0, $11 + 80 | 0, $11, $7, $8, $9);
if (($8 | 0) < 1) {
break label$3;
}
$10 = Math_imul($8, 5);
$12 = ($10 | 0) > 1 ? $10 : 1;
$10 = 0;
while (1) {
HEAPF32[($10 << 2) + $0 >> 2] = Math_fround(HEAP16[($11 + 480 | 0) + ($10 << 1) >> 1]) * Math_fround(6103515625e-14);
$10 = $10 + 1 | 0;
if (($12 | 0) != ($10 | 0)) {
continue;
}
break;
}
break label$3;
}
silk_quant_LTP_gains($11 + 480 | 0, $1, $2, $3, $11 + 524 | 0, $11 + 80 | 0, $11, $7, $8, $9);
}
HEAPF32[$4 >> 2] = Math_fround(HEAP32[$11 + 524 >> 2]) * Math_fround(.0078125);
__stack_pointer = $11 + 528 | 0;
}
function __vfprintf_internal($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0;
$5 = __stack_pointer - 208 | 0;
__stack_pointer = $5;
HEAP32[$5 + 204 >> 2] = $2;
$2 = 0;
memset($5 + 160 | 0, 0, 40);
HEAP32[$5 + 200 >> 2] = HEAP32[$5 + 204 >> 2];
label$1 : {
if ((printf_core(0, $1, $5 + 200 | 0, $5 + 80 | 0, $5 + 160 | 0, $3, $4) | 0) < 0) {
$1 = -1;
break label$1;
}
if (HEAP32[$0 + 76 >> 2] >= 0) {
$2 = __lockfile($0);
}
$6 = HEAP32[$0 >> 2];
if (HEAP8[$0 + 74 | 0] <= 0) {
HEAP32[$0 >> 2] = $6 & -33;
}
$6 = $6 & 32;
label$5 : {
if (HEAP32[$0 + 48 >> 2]) {
$4 = printf_core($0, $1, $5 + 200 | 0, $5 + 80 | 0, $5 + 160 | 0, $3, $4);
break label$5;
}
HEAP32[$0 + 48 >> 2] = 80;
HEAP32[$0 + 16 >> 2] = $5 + 80;
HEAP32[$0 + 28 >> 2] = $5;
HEAP32[$0 + 20 >> 2] = $5;
$7 = HEAP32[$0 + 44 >> 2];
HEAP32[$0 + 44 >> 2] = $5;
$1 = printf_core($0, $1, $5 + 200 | 0, $5 + 80 | 0, $5 + 160 | 0, $3, $4);
$4 = $1;
if (!$7) {
break label$5;
}
FUNCTION_TABLE[HEAP32[$0 + 36 >> 2]]($0, 0, 0) | 0;
HEAP32[$0 + 48 >> 2] = 0;
HEAP32[$0 + 44 >> 2] = $7;
HEAP32[$0 + 28 >> 2] = 0;
HEAP32[$0 + 16 >> 2] = 0;
$3 = HEAP32[$0 + 20 >> 2];
HEAP32[$0 + 20 >> 2] = 0;
$4 = $3 ? $1 : -1;
}
$3 = HEAP32[$0 >> 2];
HEAP32[$0 >> 2] = $6 | $3;
$1 = $4;
$1 = $3 & 32 ? -1 : $1;
if (!$2) {
break label$1;
}
__unlockfile($0);
}
__stack_pointer = $5 + 208 | 0;
return $1;
}
function _celt_autocorr($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = 0, $9 = Math_fround(0), $10 = 0, $11 = 0;
$7 = __stack_pointer;
$11 = $7;
$7 = $7 - (($5 << 2) + 15 & -16) | 0;
__stack_pointer = $7;
label$1 : {
if (($5 | 0) > 0) {
if (($3 | 0) <= -1) {
break label$1;
}
if ($3) {
$10 = memcpy($7, $0, $5 << 2);
$7 = 0;
while (1) {
$8 = $7 << 2;
$9 = HEAPF32[$8 + $2 >> 2];
HEAPF32[$8 + $10 >> 2] = HEAPF32[$0 + $8 >> 2] * $9;
$8 = ($7 ^ -1) + $5 << 2;
HEAPF32[$10 + $8 >> 2] = $9 * HEAPF32[$0 + $8 >> 2];
$7 = $7 + 1 | 0;
if (($7 | 0) != ($3 | 0)) {
continue;
}
break;
}
$0 = $10;
}
$2 = $5 - $4 | 0;
celt_pitch_xcorr_c($0, $0, $1, $2, $4 + 1 | 0, $6);
$8 = 0;
if (($4 | 0) >= 0) {
while (1) {
$9 = Math_fround(0);
$7 = $8 + $2 | 0;
if (($7 | 0) < ($5 | 0)) {
while (1) {
$9 = Math_fround($9 + Math_fround(HEAPF32[($7 << 2) + $0 >> 2] * HEAPF32[($7 - $8 << 2) + $0 >> 2]));
$7 = $7 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
$7 = ($8 << 2) + $1 | 0;
HEAPF32[$7 >> 2] = $9 + HEAPF32[$7 >> 2];
$7 = ($4 | 0) != ($8 | 0);
$8 = $8 + 1 | 0;
if ($7) {
continue;
}
break;
}
}
__stack_pointer = $11;
return 0;
}
celt_fatal(9687, 9671, 228);
abort();
}
celt_fatal(9709, 9671, 229);
abort();
}
function silk_biquad_alt_stride1($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
if (($5 | 0) >= 1) {
$7 = 0 - HEAP32[$2 + 4 >> 2] | 0;
$11 = $7 & 16383;
$2 = 0 - HEAP32[$2 >> 2] | 0;
$12 = $2 & 16383;
$13 = $7 << 2 >> 16;
$14 = $2 << 2 >> 16;
$6 = HEAP32[$3 + 4 >> 2];
$8 = HEAP32[$3 >> 2];
while (1) {
$15 = $10 << 1;
$2 = HEAP16[$15 + $0 >> 1];
$7 = HEAP32[$1 >> 2];
$7 = (Math_imul($2, $7 >> 16) + $8 | 0) + (Math_imul($7 & 65535, $2) >> 16) << 2;
$8 = $7 >> 16;
$9 = Math_imul($14, $8) + $6 | 0;
$6 = $7 & 65532;
$16 = ($9 + (Math_imul($14, $6) >> 16) | 0) + ((Math_imul($8, $12) + (Math_imul($6, $12) >>> 16 | 0) >> 13) + 1 >> 1) | 0;
HEAP32[$3 >> 2] = $16;
$9 = HEAP32[$1 + 4 >> 2];
$6 = (Math_imul($8, $13) + (Math_imul($6, $13) >> 16) | 0) + ((Math_imul($8, $11) + (Math_imul($6, $11) >>> 16 | 0) >> 13) + 1 >> 1) | 0;
HEAP32[$3 + 4 >> 2] = $6;
$8 = (Math_imul($9 >> 16, $2) + (Math_imul($9 & 65535, $2) >> 16) | 0) + $16 | 0;
HEAP32[$3 >> 2] = $8;
$9 = HEAP32[$1 + 8 >> 2];
$6 = ((Math_imul($9 & 65535, $2) >> 16) + Math_imul($9 >> 16, $2) | 0) + $6 | 0;
HEAP32[$3 + 4 >> 2] = $6;
$2 = $7 + 16383 >> 14;
HEAP16[$4 + $15 >> 1] = ($7 | 0) > 536854528 ? 32767 : ($2 | 0) > -32768 ? $2 : -32768;
$10 = $10 + 1 | 0;
if (($10 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
}
function downmix_float($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 $7 = 0, $8 = 0;
label$1 : {
label$2 : {
if (($2 | 0) >= 1) {
while (1) {
HEAPF32[($7 << 2) + $1 >> 2] = HEAPF32[(Math_imul($3 + $7 | 0, $6) + $4 << 2) + $0 >> 2] * Math_fround(32768);
$7 = $7 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
if (($5 | 0) <= -1) {
break label$2;
}
if (($2 | 0) < 1) {
break label$1;
}
$7 = 0;
while (1) {
$4 = ($7 << 2) + $1 | 0;
HEAPF32[$4 >> 2] = HEAPF32[$4 >> 2] + Math_fround(HEAPF32[(Math_imul($3 + $7 | 0, $6) + $5 << 2) + $0 >> 2] * Math_fround(32768));
$7 = $7 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$1;
}
if (($5 | 0) > -1) {
break label$1;
}
}
if (($5 | 0) != -2 | ($6 | 0) < 2) {
break label$1;
}
$5 = 1;
$8 = ($2 | 0) < 1;
while (1) {
$7 = 0;
if (!$8) {
while (1) {
$4 = ($7 << 2) + $1 | 0;
HEAPF32[$4 >> 2] = HEAPF32[$4 >> 2] + Math_fround(HEAPF32[(Math_imul($3 + $7 | 0, $6) + $5 << 2) + $0 >> 2] * Math_fround(32768));
$7 = $7 + 1 | 0;
if (($7 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$5 = $5 + 1 | 0;
if (($6 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
}
function alg_quant($0, $1, $2, $3, $4, $5, $6, $7, $8) {
var $9 = 0, $10 = 0, $11 = Math_fround(0);
$8 = __stack_pointer;
$10 = $8;
label$1 : {
if (($2 | 0) > 0) {
if (($1 | 0) <= 1) {
break label$1;
}
$8 = $8 - (($1 << 2) + 27 & -16) | 0;
__stack_pointer = $8;
exp_rotation($0, $1, 1, $4, $2, $3);
$11 = op_pvq_search_c($0, $8, $2, $1, $5);
encode_pulses($8, $1, $2, $5);
if ($7) {
$6 = Math_fround(Math_fround(Math_fround(1) / Math_fround(Math_sqrt($11))) * $6);
$5 = 0;
while (1) {
$7 = $5 << 2;
HEAPF32[$7 + $0 >> 2] = $6 * Math_fround(HEAP32[$7 + $8 >> 2]);
$5 = $5 + 1 | 0;
if (($5 | 0) != ($1 | 0)) {
continue;
}
break;
}
exp_rotation($0, $1, -1, $4, $2, $3);
}
$3 = 1;
if (($4 | 0) >= 2) {
$9 = ($1 >>> 0) / ($4 >>> 0) | 0;
$0 = ($9 | 0) > 1 ? $9 : 1;
$3 = 0;
$2 = 0;
while (1) {
$1 = Math_imul($2, $9);
$5 = 0;
$7 = 0;
while (1) {
$7 = HEAP32[($1 + $5 << 2) + $8 >> 2] | $7;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($0 | 0)) {
continue;
}
break;
}
$3 = (($7 | 0) != 0) << $2 | $3;
$2 = $2 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $10;
return $3;
}
celt_fatal(41540, 41599, 338);
abort();
}
celt_fatal(41609, 41599, 339);
abort();
}
function silk_NLSF_VQ_weights_laroia($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
label$1 : {
if (($2 | 0) > 0) {
$3 = 1;
if ($2 & 1) {
break label$1;
}
$5 = HEAP16[$1 >> 1];
$4 = HEAP16[$1 + 2 >> 1] - $5 | 0;
$4 = 131072 / ((($4 | 0) > 1 ? $4 : 1) >>> 0) | 0;
$5 = $4 + (131072 / ((($5 | 0) > 1 ? $5 : 1) >>> 0) | 0) | 0;
HEAP16[$0 >> 1] = $5 >>> 0 < 32767 ? $5 : 32767;
$6 = $2 - 1 | 0;
if (($2 | 0) >= 3) {
while (1) {
$2 = $3 << 1;
$8 = $2 + $0 | 0;
$5 = $2 + 2 | 0;
$7 = $5 + $1 | 0;
$2 = HEAP16[$7 >> 1] - HEAP16[$1 + $2 >> 1] | 0;
$2 = 131072 / ((($2 | 0) > 1 ? $2 : 1) >>> 0) | 0;
$4 = $4 + $2 | 0;
HEAP16[$8 >> 1] = $4 >>> 0 < 32767 ? $4 : 32767;
$3 = $3 + 2 | 0;
$4 = HEAP16[($3 << 1) + $1 >> 1] - HEAP16[$7 >> 1] | 0;
$4 = 131072 / ((($4 | 0) > 1 ? $4 : 1) >>> 0) | 0;
$2 = $4 + $2 | 0;
HEAP16[$0 + $5 >> 1] = $2 >>> 0 < 32767 ? $2 : 32767;
if (($3 | 0) < ($6 | 0)) {
continue;
}
break;
}
}
$3 = $6 << 1;
$0 = $3 + $0 | 0;
$3 = 32768 - HEAP16[$1 + $3 >> 1] | 0;
$3 = (131072 / ((($3 | 0) > 1 ? $3 : 1) >>> 0) | 0) + $4 | 0;
HEAP16[$0 >> 1] = $3 >>> 0 < 32767 ? $3 : 32767;
return;
}
celt_fatal(15465, 15489, 51);
abort();
}
celt_fatal(15519, 15489, 52);
abort();
}
function silk_NLSF_decode($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
$6 = __stack_pointer - 80 | 0;
__stack_pointer = $6;
silk_NLSF_unpack($6 + 32 | 0, $6 - -64 | 0, $2, HEAP8[$1 | 0]);
$4 = HEAPU16[$2 + 2 >> 1];
$7 = $4 << 16 >> 16;
$9 = ($7 | 0) < 1;
if (!$9) {
$8 = HEAP16[$2 + 4 >> 1];
while (1) {
$5 = HEAP8[$1 + $4 | 0];
$3 = $5 << 10;
$5 = ($5 | 0) > 0 ? $3 - 102 | 0 : ($3 | 102) & $5 >> 31;
$3 = $4 - 1 | 0;
$10 = (Math_imul($5 >> 16, $8) + (Math_imul(HEAPU8[$3 + ($6 - -64 | 0) | 0], $10 << 16 >> 16) >> 8) | 0) + (Math_imul($5 & 65534, $8) >> 16) | 0;
HEAP16[($3 << 1) + $6 >> 1] = $10;
$5 = ($4 | 0) > 1;
$4 = $3;
if ($5) {
continue;
}
break;
}
}
if (!$9) {
$4 = Math_imul(HEAP8[$1 | 0], $7);
$5 = $4 + HEAP32[$2 + 8 >> 2] | 0;
$8 = HEAP32[$2 + 12 >> 2] + ($4 << 1) | 0;
$4 = 0;
while (1) {
$3 = $4 << 1;
$1 = $3 + $0 | 0;
$3 = ((HEAP16[$3 + $6 >> 1] << 14) / HEAP16[$3 + $8 >> 1] | 0) + (HEAPU8[$4 + $5 | 0] << 7) | 0;
$3 = ($3 | 0) > 0 ? $3 : 0;
HEAP16[$1 >> 1] = ($3 | 0) < 32767 ? $3 : 32767;
$4 = $4 + 1 | 0;
$7 = HEAP16[$2 + 2 >> 1];
if (($4 | 0) < ($7 | 0)) {
continue;
}
break;
}
}
silk_NLSF_stabilize($0, HEAP32[$2 + 36 >> 2], $7);
__stack_pointer = $6 + 80 | 0;
}
function ec_enc_uint($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
label$1 : {
if ($2 >>> 0 > 1) {
$3 = $2 - 1 | 0;
if ($3 >>> 0 >= 256) {
$4 = 24 - Math_clz32($3) | 0;
$2 = $1 >>> $4 | 0;
ec_encode($0, $2, $2 + 1 | 0, ($3 >>> $4 | 0) + 1 | 0);
if (!$4) {
break label$1;
}
$7 = (-1 << $4 ^ -1) & $1;
$1 = HEAP32[$0 + 12 >> 2];
$2 = HEAP32[$0 + 16 >> 2];
$3 = $4 + $2 | 0;
label$4 : {
if ($3 >>> 0 < 33) {
$5 = $2;
break label$4;
}
while (1) {
$3 = -1;
$6 = HEAP32[$0 + 4 >> 2];
$5 = HEAP32[$0 + 8 >> 2];
if ($6 >>> 0 > $5 + HEAP32[$0 + 24 >> 2] >>> 0) {
$3 = $5 + 1 | 0;
HEAP32[$0 + 8 >> 2] = $3;
HEAP8[HEAP32[$0 >> 2] + ($6 - $3 | 0) | 0] = $1;
$3 = 0;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $3;
$1 = $1 >>> 8 | 0;
$3 = ($2 | 0) > 15;
$5 = $2 - 8 | 0;
$2 = $5;
if ($3) {
continue;
}
break;
}
$3 = $4 + $5 | 0;
}
HEAP32[$0 + 16 >> 2] = $3;
HEAP32[$0 + 12 >> 2] = $7 << $5 | $1;
HEAP32[$0 + 20 >> 2] = HEAP32[$0 + 20 >> 2] + $4;
return;
}
ec_encode($0, $1, $1 + 1 | 0, $2);
return;
}
celt_fatal(6995, 7019, 180);
abort();
}
celt_fatal(7033, 7019, 198);
abort();
}
function opus_encoder_create($0, $1, $2, $3) {
$0 = $0 | 0;
$1 = $1 | 0;
$2 = $2 | 0;
$3 = $3 | 0;
var $4 = 0, $5 = 0;
$5 = __stack_pointer - 16 | 0;
__stack_pointer = $5;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
if (($0 | 0) <= 15999) {
if (($0 | 0) == 8e3 | ($0 | 0) == 12e3) {
break label$4;
}
break label$3;
}
if (($0 | 0) == 16e3 | ($0 | 0) == 48e3) {
break label$4;
}
if (($0 | 0) != 24e3) {
break label$3;
}
}
if ($1 - 1 >>> 0 > 1) {
break label$3;
}
$4 = $2 - 2048 | 0;
if ($4 >>> 0 > 3) {
break label$3;
}
if (($4 | 0) != 2) {
break label$2;
}
}
$4 = 0;
if (!$3) {
break label$1;
}
HEAP32[$3 >> 2] = -1;
break label$1;
}
$4 = 0;
if (!silk_Get_Encoder_Size($5 + 12 | 0)) {
HEAP32[$5 + 12 >> 2] = HEAP32[$5 + 12 >> 2] + 3 & -4;
$4 = (celt_encoder_get_size($1) + HEAP32[$5 + 12 >> 2] | 0) + 18140 | 0;
}
$4 = dlmalloc($4);
if (!$4) {
$4 = 0;
if (!$3) {
break label$1;
}
HEAP32[$3 >> 2] = -7;
break label$1;
}
$0 = opus_encoder_init($4, $0, $1, $2);
if ($3) {
HEAP32[$3 >> 2] = $0;
}
if (!$0) {
break label$1;
}
dlfree($4);
$4 = 0;
}
__stack_pointer = $5 + 16 | 0;
return $4 | 0;
}
function deinterleave_hadamard($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
$5 = __stack_pointer;
$9 = $5;
$8 = Math_imul($1, $2);
$5 = $5 - (($8 << 2) + 15 & -16) | 0;
__stack_pointer = $5;
if (($2 | 0) > 0) {
label$2 : {
if (!$3) {
$6 = ($1 | 0) < 1;
while (1) {
if (!$6) {
$7 = Math_imul($1, $4);
$3 = 0;
while (1) {
HEAP32[($3 + $7 << 2) + $5 >> 2] = HEAP32[(Math_imul($2, $3) + $4 << 2) + $0 >> 2];
$3 = $3 + 1 | 0;
if (($3 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$2;
}
$10 = ($2 << 2) + 41976 | 0;
$6 = ($1 | 0) < 1;
while (1) {
if (!$6) {
$7 = Math_imul(HEAP32[($4 << 2) + $10 >> 2], $1);
$3 = 0;
while (1) {
HEAP32[($3 + $7 << 2) + $5 >> 2] = HEAP32[(Math_imul($2, $3) + $4 << 2) + $0 >> 2];
$3 = $3 + 1 | 0;
if (($3 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
memcpy($0, $5, $8 << 2);
__stack_pointer = $9;
return;
}
celt_fatal(41952, 41800, 591);
abort();
}
function ec_laplace_encode($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
label$1 : {
label$2 : {
$7 = HEAP32[$1 >> 2];
if ($7) {
$5 = 1;
$4 = Math_imul(16384 - $3 | 0, 32736 - $2 | 0) >>> 15 | 0;
$6 = $7 >> 31;
$8 = $6 ^ $6 + $7;
label$5 : {
if (!$4 | ($8 | 0) < 2) {
break label$5;
}
while (1) {
$9 = $4 << 1;
$4 = Math_imul($9, $3) >>> 15 | 0;
$2 = ($2 + $9 | 0) + 2 | 0;
$5 = $5 + 1 | 0;
if (($8 | 0) <= ($5 | 0)) {
break label$5;
}
if ($4) {
continue;
}
break;
}
}
label$7 : {
if (!$4) {
$3 = $5 + $6 | 0;
$4 = $8 - $5 | 0;
$5 = (($7 >>> 31 | 32768) - $2 >> 1) - 1 | 0;
$4 = ($4 | 0) < ($5 | 0) ? $4 : $5;
HEAP32[$1 >> 2] = $3 + $4 ^ $6;
$4 = ($2 + $6 | 0) + ($4 << 1 | 1) | 0;
$2 = ($4 | 0) != 32768;
break label$7;
}
$5 = $4 + 1 | 0;
$4 = ($5 & ($6 ^ -1)) + $2 | 0;
$2 = $5;
}
if ($2 + $4 >>> 0 >= 32769) {
break label$2;
}
if (!$2) {
break label$1;
}
}
ec_encode_bin($0, $4, $2 + $4 | 0, 15);
return;
}
celt_fatal(32848, 32879, 88);
abort();
}
celt_fatal(32894, 32879, 89);
abort();
}
function alg_unquant($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = 0, $9 = 0, $10 = 0;
$7 = __stack_pointer;
$10 = $7;
label$1 : {
if (($2 | 0) > 0) {
if (($1 | 0) <= 1) {
break label$1;
}
$8 = $7 - (($1 << 2) + 15 & -16) | 0;
__stack_pointer = $8;
$6 = Math_fround(Math_fround(Math_fround(1) / Math_fround(Math_sqrt(decode_pulses($8, $1, $2, $5)))) * $6);
$5 = 0;
while (1) {
$7 = $5 << 2;
HEAPF32[$7 + $0 >> 2] = $6 * Math_fround(HEAP32[$7 + $8 >> 2]);
$5 = $5 + 1 | 0;
if (($5 | 0) != ($1 | 0)) {
continue;
}
break;
}
exp_rotation($0, $1, -1, $4, $2, $3);
$3 = 1;
if (($4 | 0) >= 2) {
$9 = ($1 >>> 0) / ($4 >>> 0) | 0;
$0 = ($9 | 0) > 1 ? $9 : 1;
$3 = 0;
$2 = 0;
while (1) {
$1 = Math_imul($2, $9);
$5 = 0;
$7 = 0;
while (1) {
$7 = HEAP32[($1 + $5 << 2) + $8 >> 2] | $7;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($0 | 0)) {
continue;
}
break;
}
$3 = (($7 | 0) != 0) << $2 | $3;
$2 = $2 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $10;
return $3;
}
celt_fatal(41673, 41599, 371);
abort();
}
celt_fatal(41734, 41599, 372);
abort();
}
function interleave_hadamard($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
$5 = __stack_pointer;
$9 = $5;
$8 = Math_imul($1, $2);
$5 = $5 - (($8 << 2) + 15 & -16) | 0;
__stack_pointer = $5;
label$1 : {
if (!$3) {
if (($2 | 0) < 1) {
break label$1;
}
$6 = ($1 | 0) < 1;
while (1) {
if (!$6) {
$7 = Math_imul($1, $4);
$3 = 0;
while (1) {
HEAP32[(Math_imul($2, $3) + $4 << 2) + $5 >> 2] = HEAP32[($3 + $7 << 2) + $0 >> 2];
$3 = $3 + 1 | 0;
if (($3 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
break label$1;
}
if (($2 | 0) < 1) {
break label$1;
}
$10 = ($2 << 2) + 41976 | 0;
$6 = ($1 | 0) < 1;
while (1) {
if (!$6) {
$7 = Math_imul(HEAP32[($4 << 2) + $10 >> 2], $1);
$3 = 0;
while (1) {
HEAP32[(Math_imul($2, $3) + $4 << 2) + $5 >> 2] = HEAP32[($3 + $7 << 2) + $0 >> 2];
$3 = $3 + 1 | 0;
if (($3 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
memcpy($0, $5, $8 << 2);
__stack_pointer = $9;
}
function encode_pulses($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
label$1 : {
if (($2 | 0) > 0) {
if (($1 | 0) <= 1) {
break label$1;
}
$8 = $1 - 1 | 0;
$4 = HEAP32[($8 << 2) + $0 >> 2];
$5 = $4 >> 31;
$5 = $5 ^ $4 + $5;
$7 = $4 >>> 31 | 0;
while (1) {
$9 = $8 - 1 | 0;
$4 = $1 - $9 | 0;
$7 = HEAP32[HEAP32[((($4 | 0) < ($5 | 0) ? $4 : $5) << 2) + 36320 >> 2] + ((($4 | 0) > ($5 | 0) ? $4 : $5) << 2) >> 2] + $7 | 0;
$6 = HEAP32[($9 << 2) + $0 >> 2];
$10 = $6 >> 31;
$5 = ($10 ^ $6 + $10) + $5 | 0;
if (($6 | 0) <= -1) {
$6 = $5 + 1 | 0;
$7 = HEAP32[HEAP32[((($4 | 0) > ($5 | 0) ? $6 : $4) << 2) + 36320 >> 2] + ((($4 | 0) > ($6 | 0) ? $4 : $6) << 2) >> 2] + $7 | 0;
}
$4 = ($8 | 0) > 1;
$8 = $9;
if ($4) {
continue;
}
break;
}
$5 = $2 + 1 | 0;
$4 = ($1 | 0) > ($2 | 0);
ec_enc_uint($3, $7, HEAP32[HEAP32[(($4 ? $5 : $1) << 2) + 36320 >> 2] + ((($1 | 0) > ($5 | 0) ? $1 : $5) << 2) >> 2] + HEAP32[HEAP32[((($1 | 0) < ($2 | 0) ? $1 : $2) << 2) + 36320 >> 2] + (($4 ? $1 : $2) << 2) >> 2] | 0);
return;
}
celt_fatal(36272, 36295, 459);
abort();
}
celt_fatal(36380, 36295, 444);
abort();
}
function silk_apply_sine_window_FLP($0, $1, $2, $3) {
var $4 = Math_fround(0), $5 = Math_fround(0), $6 = 0, $7 = Math_fround(0), $8 = 0;
label$1 : {
if ($2 - 1 >>> 0 < 2) {
if ($3 & 3) {
break label$1;
}
if (($3 | 0) >= 1) {
$4 = Math_fround(Math_fround(3.1415927410125732) / Math_fround($3 + 1 | 0));
$7 = Math_fround(Math_fround(2) - Math_fround($4 * $4));
$2 = ($2 | 0) < 2;
$4 = $2 ? $4 : Math_fround($7 * Math_fround(.5));
$5 = $2 ? Math_fround(0) : Math_fround(1);
while (1) {
$2 = $8 << 2;
HEAPF32[$2 + $0 >> 2] = Math_fround($5 + $4) * Math_fround(HEAPF32[$1 + $2 >> 2] * Math_fround(.5));
$6 = $2 | 4;
HEAPF32[$6 + $0 >> 2] = $4 * HEAPF32[$1 + $6 >> 2];
$6 = $2 | 8;
$5 = Math_fround(Math_fround($7 * $4) - $5);
HEAPF32[$6 + $0 >> 2] = Math_fround($4 + $5) * Math_fround(HEAPF32[$1 + $6 >> 2] * Math_fround(.5));
$2 = $2 | 12;
HEAPF32[$2 + $0 >> 2] = $5 * HEAPF32[$1 + $2 >> 2];
$4 = Math_fround(Math_fround($7 * $5) - $4);
$8 = $8 + 4 | 0;
if (($8 | 0) < ($3 | 0)) {
continue;
}
break;
}
}
return;
}
celt_fatal(9375, 9424, 48);
abort();
}
celt_fatal(9459, 9424, 51);
abort();
}
function silk_sum_sqr_shift($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
$9 = $3 - 1 | 0;
$10 = Math_clz32($3);
$7 = 31 - $10 | 0;
label$1 : {
if (($3 | 0) < 2) {
$5 = $3;
break label$1;
}
$5 = $3;
while (1) {
$6 = $4 << 1;
$8 = HEAP16[($6 | 2) + $2 >> 1];
$6 = HEAP16[$2 + $6 >> 1];
$5 = (Math_imul($8, $8) + Math_imul($6, $6) >>> $7 | 0) + $5 | 0;
$4 = $4 + 2 | 0;
if (($9 | 0) > ($4 | 0)) {
continue;
}
break;
}
$4 = $3 & -2;
}
$6 = 0;
if (($3 | 0) > ($4 | 0)) {
$4 = HEAP16[($4 << 1) + $2 >> 1];
$5 = (Math_imul($4, $4) >>> $7 | 0) + $5 | 0;
}
$4 = 34 - (Math_clz32($5) + $10 | 0) | 0;
$7 = ($4 | 0) > 0 ? $4 : 0;
if (($3 | 0) < 2) {
$4 = 0;
} else {
$4 = 0;
while (1) {
$5 = $4 << 1;
$8 = HEAP16[($5 | 2) + $2 >> 1];
$5 = HEAP16[$2 + $5 >> 1];
$6 = (Math_imul($8, $8) + Math_imul($5, $5) >>> $7 | 0) + $6 | 0;
$4 = $4 + 2 | 0;
if (($9 | 0) > ($4 | 0)) {
continue;
}
break;
}
$4 = $3 & -2;
}
if (($4 | 0) < ($3 | 0)) {
$2 = HEAP16[($4 << 1) + $2 >> 1];
$6 = (Math_imul($2, $2) >>> $7 | 0) + $6 | 0;
}
HEAP32[$1 >> 2] = $7;
HEAP32[$0 >> 2] = $6;
}
function sinc($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = Math_fround(0), $9 = 0, $10 = Math_fround(0), $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0;
$4 = +$1;
$6 = Math_abs($4);
if ($6 < 1e-6) {
return $0;
}
$7 = +($2 | 0);
if (!($7 * .5 < $6)) {
$1 = Math_fround($0 * $1);
$2 = HEAP32[$3 >> 2];
$8 = Math_fround(Math_fround(Math_abs(Math_fround(($4 + $4) / $7))) * Math_fround(HEAP32[$3 + 4 >> 2]));
$10 = Math_fround(Math_floor($8));
label$3 : {
if (Math_fround(Math_abs($10)) < Math_fround(2147483648)) {
$3 = ~~$10;
break label$3;
}
$3 = -2147483648;
}
$2 = $2 + ($3 << 3) | 0;
$6 = HEAPF64[$2 + 8 >> 3];
$7 = HEAPF64[$2 >> 3];
$13 = HEAPF64[$2 + 16 >> 3];
$9 = HEAPF64[$2 + 24 >> 3];
$4 = +$1 * 3.141592653589793;
$14 = sin($4) * +$0 / $4;
$1 = Math_fround($8 - Math_fround($3 | 0));
$0 = Math_fround($1 * $1);
$5 = +Math_fround($1 * $0);
$11 = $5 * .1666666667;
$4 = +$1;
$12 = $11 - $4 * .1666666667;
$15 = $9 * $12;
$9 = +$0 * .5;
$5 = $9 + $4 - $5 * .5;
$4 = $9 + $4 * -.3333333333 - $11;
$8 = Math_fround($14 * ($15 + ($13 * $5 + ($7 * $4 + $6 * (1 - $12 - $5 - $4)))));
}
return $8;
}
function compute_band_energies($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = 0, $9 = Math_fround(0), $10 = 0, $11 = 0, $12 = 0, $13 = Math_fround(0), $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
$14 = ($4 | 0) > 1 ? $4 : 1;
$15 = HEAP32[$0 + 44 >> 2] << $5;
$10 = HEAP32[$0 + 32 >> 2];
while (1) {
if (($3 | 0) >= 1) {
$16 = Math_imul($7, $15);
$17 = Math_imul(HEAP32[$0 + 8 >> 2], $7);
$8 = HEAPU16[$10 >> 1];
$6 = 0;
while (1) {
$4 = $8 << 16;
$9 = Math_fround(0);
$11 = $6 + 1 | 0;
$8 = HEAP16[($11 << 1) + $10 >> 1];
$4 = $4 >> 16;
$12 = $8 - $4 << $5;
if (($12 | 0) >= 1) {
$18 = (($4 << $5) + $16 << 2) + $1 | 0;
$4 = 0;
while (1) {
$13 = HEAPF32[($4 << 2) + $18 >> 2];
$9 = Math_fround($9 + Math_fround($13 * $13));
$4 = $4 + 1 | 0;
if (($12 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
HEAPF32[($6 + $17 << 2) + $2 >> 2] = Math_sqrt(Math_fround($9 + Math_fround(1.0000000272452012e-27)));
$6 = $11;
if (($6 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
$7 = $7 + 1 | 0;
if (($14 | 0) != ($7 | 0)) {
continue;
}
break;
}
}
function opus_encode_float($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, $9 = 0;
$9 = -1;
$5 = HEAP32[$0 + 144 >> 2];
$7 = ($5 | 0) / 400 | 0;
label$1 : {
if (($7 | 0) > ($2 | 0)) {
break label$1;
}
$6 = $2;
$8 = HEAP32[$0 + 156 >> 2];
if (($8 | 0) != 5e3) {
$6 = $8 - 5001 | 0;
if ($6 >>> 0 > 8) {
break label$1;
}
$6 = ($8 | 0) <= 5005 ? $7 << $6 : (Math_imul($8 - 5003 | 0, $5) | 0) / 50 | 0;
if (($6 | 0) > ($2 | 0)) {
break label$1;
}
}
label$5 : {
if ((Math_imul($6, 100) | 0) == ($5 | 0) | (Math_imul($6, 400) | 0) == ($5 | 0) | (Math_imul($6, 200) | 0) == ($5 | 0)) {
break label$5;
}
$7 = Math_imul($6, 50);
if (($7 | 0) == (Math_imul($5, 6) | 0) | (Math_imul($5, 5) | 0) == ($7 | 0) | ($5 << 2 == ($7 | 0) | (Math_imul($5, 3) | 0) == ($7 | 0))) {
break label$5;
}
if (($5 | 0) == ($7 | 0)) {
break label$5;
}
if ((Math_imul($6, 25) | 0) != ($5 | 0)) {
break label$1;
}
}
$9 = $6;
}
return opus_encode_native($0, $1, $9, $3, $4, 24, $1, $2, 0, -2, HEAP32[$0 + 112 >> 2], 4, 1) | 0;
}
function silk_InitEncoder($0, $1, $2) {
var $3 = 0;
label$1 : {
$0 = memset($0, 0, 20216);
if (silk_init_encoder($0, $1)) {
break label$1;
}
if (silk_init_encoder($0 + 10064 | 0, $1)) {
break label$1;
}
HEAP32[$0 + 20192 >> 2] = 1;
HEAP32[$0 + 20196 >> 2] = 1;
HEAP32[$2 >> 2] = 1;
HEAP32[$2 + 4 >> 2] = 1;
HEAP32[$2 + 8 >> 2] = HEAP32[$0 + 4556 >> 2];
HEAP32[$2 + 12 >> 2] = HEAP32[$0 + 4564 >> 2];
HEAP32[$2 + 16 >> 2] = HEAP32[$0 + 4568 >> 2];
HEAP32[$2 + 20 >> 2] = HEAP32[$0 + 4572 >> 2];
HEAP32[$2 + 24 >> 2] = HEAP32[$0 + 4612 >> 2];
HEAP32[$2 + 28 >> 2] = HEAP32[$0 + 4608 >> 2];
HEAP32[$2 + 32 >> 2] = HEAP32[$0 + 4616 >> 2];
HEAP32[$2 + 36 >> 2] = HEAP32[$0 + 4624 >> 2];
HEAP32[$2 + 40 >> 2] = HEAP32[$0 + 6088 >> 2];
HEAP32[$2 + 48 >> 2] = HEAP32[$0 + 6076 >> 2];
HEAP32[$2 + 52 >> 2] = HEAP32[$0 + 4676 >> 2];
$3 = HEAP32[$0 + 4576 >> 2];
HEAP32[$2 + 72 >> 2] = Math_imul($3 << 16 >> 16, 1e3);
HEAP32[$2 + 76 >> 2] = HEAP32[$0 + 4536 >> 2];
$1 = 0;
$1 = ($3 | 0) == 16 ? !HEAP32[$0 + 28 >> 2] : $1;
HEAP32[$2 + 80 >> 2] = $1;
return 0;
}
celt_fatal(17487, 17507, 85);
abort();
}
function silk_NLSF_VQ($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0;
if (!($5 & 1)) {
if (($4 | 0) >= 1) {
$12 = ($5 | 0) < 2;
while (1) {
$10 = $5;
$6 = 0;
$7 = 0;
if (!$12) {
while (1) {
$8 = $10 - 1 | 0;
$9 = $8 << 1;
$8 = Math_imul(HEAPU16[$9 + $1 >> 1] - (HEAPU8[$2 + $8 | 0] << 7) << 16 >> 16, HEAP16[$3 + $9 >> 1]);
$6 = $8 - ($6 >> 1) | 0;
$9 = $6;
$6 = $6 >> 31;
$13 = ($6 ^ $6 + $9) + $7 | 0;
$6 = $10 - 2 | 0;
$7 = $6 << 1;
$9 = Math_imul(HEAPU16[$7 + $1 >> 1] - (HEAPU8[$2 + $6 | 0] << 7) << 16 >> 16, HEAP16[$3 + $7 >> 1]);
$7 = $9 - ($8 >> 1) | 0;
$8 = $7;
$7 = $7 >> 31;
$7 = ($7 ^ $7 + $8) + $13 | 0;
$8 = ($10 | 0) > 3;
$10 = $6;
$6 = $9;
if ($8) {
continue;
}
break;
}
}
HEAP32[($11 << 2) + $0 >> 2] = $7;
$2 = $2 + $5 | 0;
$3 = ($5 << 1) + $3 | 0;
$11 = $11 + 1 | 0;
if (($11 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
return;
}
celt_fatal(15720, 15761, 49);
abort();
}
function exp2($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0;
label$1 : {
wasm2js_scratch_store_f64(+$0);
$1 = wasm2js_scratch_load_i32(1) | 0;
$5 = wasm2js_scratch_load_i32(0) | 0;
$3 = $1;
$1 = $1 & 2147483647;
label$2 : {
if ($1 >>> 0 >= 1083174912) {
if (!(($3 | 0) < 0 | $1 >>> 0 < 1083179008)) {
return $0 * 8.98846567431158e+307;
}
if ($1 >>> 0 >= 2146435072) {
return -1 / $0;
}
if ($0 <= -1075 ^ 1) {
break label$1;
}
$1 = $3;
$2 = 0;
if (($1 | 0) < -1 ? 1 : ($1 | 0) <= -1) {
break label$2;
}
break label$1;
}
if ($1 >>> 0 > 1016070143) {
break label$1;
}
$2 = $0 + 1;
}
return $2;
}
$2 = $0 + 26388279066624;
wasm2js_scratch_store_f64(+$2);
wasm2js_scratch_load_i32(1) | 0;
$1 = (wasm2js_scratch_load_i32(0) | 0) + 128 | 0;
$3 = $1 << 4 & 4080;
$4 = HEAPF64[$3 + 11024 >> 3];
$0 = $0 - ($2 + -26388279066624) - HEAPF64[($3 | 8) + 11024 >> 3];
return scalbn($4 + $4 * $0 * ($0 * ($0 * ($0 * ($0 * .0013333559164630223 + .009618129842126066) + .0555041086648214) + .2402265069591) + .6931471805599453), ($1 & -256) / 256 | 0);
}
function normalise_bands($0, $1, $2, $3, $4, $5, $6) {
var $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = Math_fround(0);
$13 = ($5 | 0) > 1 ? $5 : 1;
$14 = Math_imul(HEAP32[$0 + 44 >> 2], $6);
$11 = HEAP32[$0 + 32 >> 2];
while (1) {
if (($4 | 0) >= 1) {
$15 = Math_imul($8, $14);
$16 = Math_imul(HEAP32[$0 + 8 >> 2], $8);
$10 = HEAP16[$11 >> 1];
$9 = 0;
while (1) {
$5 = Math_imul($6, $10);
$7 = $9;
$9 = $7 + 1 | 0;
$10 = HEAP16[($9 << 1) + $11 >> 1];
$12 = Math_imul($10, $6);
if (($5 | 0) < ($12 | 0)) {
$17 = Math_fround(Math_fround(1) / Math_fround(HEAPF32[($7 + $16 << 2) + $3 >> 2] + Math_fround(1.0000000272452012e-27)));
while (1) {
$7 = $5 + $15 << 2;
HEAPF32[$7 + $2 >> 2] = $17 * HEAPF32[$1 + $7 >> 2];
$5 = $5 + 1 | 0;
if (($12 | 0) > ($5 | 0)) {
continue;
}
break;
}
}
if (($4 | 0) != ($9 | 0)) {
continue;
}
break;
}
}
$8 = $8 + 1 | 0;
if (($13 | 0) != ($8 | 0)) {
continue;
}
break;
}
}
function silk_ana_filt_bank_1($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0;
if (($4 | 0) >= 2) {
$4 = $4 >> 1;
$12 = ($4 | 0) > 1 ? $4 : 1;
$5 = HEAP32[$1 + 4 >> 2];
$6 = HEAP32[$1 >> 2];
$4 = 0;
while (1) {
$7 = $4 << 2;
$9 = HEAP16[($7 | 2) + $0 >> 1] << 10;
$8 = $9 - $5 | 0;
$8 = (Math_imul($8 & 65535, 10788) >>> 16 | 0) + Math_imul($8 >> 16, 10788) | 0;
$10 = $8 + $5 | 0;
$5 = HEAP16[$0 + $7 >> 1] << 10;
$6 = $5 - $6 | 0;
$11 = $4 << 1;
$7 = (Math_imul($6 >> 16, -24290) + (Math_imul($6 & 65535, -24290) >> 16) | 0) + $5 | 0;
$5 = $10 + $7 | 0;
HEAP16[$11 + $2 >> 1] = ($5 | 0) > 67107839 ? 32767 : ($5 | 0) < -67109888 ? -32768 : ($5 >>> 10 | 0) + 1 >>> 1 | 0;
$5 = $10 - $7 | 0;
HEAP16[$3 + $11 >> 1] = ($5 | 0) > 67107839 ? 32767 : ($5 | 0) < -67109888 ? -32768 : ($5 >>> 10 | 0) + 1 >>> 1 | 0;
$5 = $8 + $9 | 0;
$6 = $6 + $7 | 0;
$4 = $4 + 1 | 0;
if (($12 | 0) != ($4 | 0)) {
continue;
}
break;
}
HEAP32[$1 + 4 >> 2] = $5;
HEAP32[$1 >> 2] = $6;
}
}
function memchr($0, $1, $2) {
var $3 = 0, $4 = 0;
$3 = ($2 | 0) != 0;
label$1 : {
label$2 : {
label$3 : {
if (!$2 | !($0 & 3)) {
break label$3;
}
$4 = $1 & 255;
while (1) {
if (HEAPU8[$0 | 0] == ($4 | 0)) {
break label$2;
}
$0 = $0 + 1 | 0;
$2 = $2 - 1 | 0;
$3 = ($2 | 0) != 0;
if (!$2) {
break label$3;
}
if ($0 & 3) {
continue;
}
break;
}
}
if (!$3) {
break label$1;
}
}
label$5 : {
if (HEAPU8[$0 | 0] == ($1 & 255) | $2 >>> 0 < 4) {
break label$5;
}
$4 = Math_imul($1 & 255, 16843009);
while (1) {
$3 = HEAP32[$0 >> 2] ^ $4;
if (($3 ^ -1) & $3 - 16843009 & -2139062144) {
break label$5;
}
$0 = $0 + 4 | 0;
$2 = $2 - 4 | 0;
if ($2 >>> 0 > 3) {
continue;
}
break;
}
}
if (!$2) {
break label$1;
}
$3 = $1 & 255;
while (1) {
if (HEAPU8[$0 | 0] == ($3 | 0)) {
return $0;
}
$0 = $0 + 1 | 0;
$2 = $2 - 1 | 0;
if ($2) {
continue;
}
break;
}
}
return 0;
}
function resampler_basic_zero($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 $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0, $12 = 0;
$2 = $1 << 2;
$7 = $2 + HEAP32[$0 + 64 >> 2] | 0;
$6 = HEAP32[$7 >> 2];
$1 = 0;
$8 = HEAP32[$0 + 60 >> 2] + $2 | 0;
$2 = HEAP32[$8 >> 2];
$9 = HEAP32[$3 >> 2];
label$1 : {
if (($2 | 0) >= ($9 | 0)) {
break label$1;
}
$3 = HEAP32[$0 + 12 >> 2];
$10 = HEAP32[$0 + 40 >> 2];
$11 = HEAP32[$0 + 36 >> 2];
$12 = HEAP32[$0 + 92 >> 2];
$1 = HEAP32[$5 >> 2];
$5 = ($1 | 0) > 0 ? $1 : 0;
$1 = 0;
while (1) {
if (($1 | 0) == ($5 | 0)) {
$1 = $5;
break label$1;
}
HEAP32[(Math_imul($1, $12) << 2) + $4 >> 2] = 0;
$0 = $6 + $10 | 0;
$6 = $0 - ($0 >>> 0 < $3 >>> 0 ? 0 : $3) | 0;
$1 = $1 + 1 | 0;
$2 = ($2 + $11 | 0) + ($0 >>> 0 >= $3 >>> 0) | 0;
if (($9 | 0) > ($2 | 0)) {
continue;
}
break;
}
}
HEAP32[$8 >> 2] = $2;
HEAP32[$7 >> 2] = $6;
return $1 | 0;
}
function ec_dec_bit_logp($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
$2 = HEAP32[$0 + 28 >> 2];
$1 = $2 >>> $1 | 0;
$3 = HEAP32[$0 + 32 >> 2];
$6 = $1 >>> 0 > $3 >>> 0;
if (!$6) {
$3 = $3 - $1 | 0;
HEAP32[$0 + 32 >> 2] = $3;
}
$2 = $6 ? $1 : $2 - $1 | 0;
HEAP32[$0 + 28 >> 2] = $2;
if ($2 >>> 0 <= 8388608) {
$4 = HEAP32[$0 + 24 >> 2];
$8 = HEAP32[$0 + 40 >> 2];
$7 = HEAP32[$0 + 20 >> 2];
$10 = HEAP32[$0 + 4 >> 2];
while (1) {
$9 = $2 << 8;
HEAP32[$0 + 28 >> 2] = $9;
$7 = $7 + 8 | 0;
HEAP32[$0 + 20 >> 2] = $7;
$1 = 0;
if ($4 >>> 0 < $10 >>> 0) {
$5 = $4 + 1 | 0;
HEAP32[$0 + 24 >> 2] = $5;
$1 = HEAPU8[HEAP32[$0 >> 2] + $4 | 0];
$4 = $5;
}
HEAP32[$0 + 40 >> 2] = $1;
$3 = ($3 << 8 & 2147483392 | ($8 << 8 | $1) >>> 1 & 255) ^ 255;
HEAP32[$0 + 32 >> 2] = $3;
$5 = $2 >>> 0 < 32769;
$8 = $1;
$2 = $9;
if ($5) {
continue;
}
break;
}
}
return $6;
}
function ec_dec_update($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
$4 = HEAP32[$0 + 36 >> 2];
$3 = Math_imul($4, $3 - $2 | 0);
$5 = HEAP32[$0 + 32 >> 2] - $3 | 0;
HEAP32[$0 + 32 >> 2] = $5;
$2 = $1 ? Math_imul($2 - $1 | 0, $4) : HEAP32[$0 + 28 >> 2] - $3 | 0;
HEAP32[$0 + 28 >> 2] = $2;
if ($2 >>> 0 <= 8388608) {
$3 = HEAP32[$0 + 24 >> 2];
$4 = HEAP32[$0 + 40 >> 2];
$7 = HEAP32[$0 + 20 >> 2];
$9 = HEAP32[$0 + 4 >> 2];
while (1) {
$8 = $2 << 8;
HEAP32[$0 + 28 >> 2] = $8;
$7 = $7 + 8 | 0;
HEAP32[$0 + 20 >> 2] = $7;
$1 = 0;
if ($3 >>> 0 < $9 >>> 0) {
$6 = $3 + 1 | 0;
HEAP32[$0 + 24 >> 2] = $6;
$1 = HEAPU8[HEAP32[$0 >> 2] + $3 | 0];
$3 = $6;
}
HEAP32[$0 + 40 >> 2] = $1;
$5 = ($5 << 8 & 2147483392 | ($4 << 8 | $1) >>> 1 & 255) ^ 255;
HEAP32[$0 + 32 >> 2] = $5;
$6 = $2 >>> 0 < 32769;
$4 = $1;
$2 = $8;
if ($6) {
continue;
}
break;
}
}
}
function wcrtomb($0, $1, $2) {
$2 = 1;
label$1 : {
if ($0) {
if ($1 >>> 0 <= 127) {
break label$1;
}
label$3 : {
if (!HEAP32[HEAP32[__pthread_self() + 172 >> 2] >> 2]) {
if (($1 & -128) == 57216) {
break label$1;
}
break label$3;
}
if ($1 >>> 0 <= 2047) {
HEAP8[$0 + 1 | 0] = $1 & 63 | 128;
HEAP8[$0 | 0] = $1 >>> 6 | 192;
return 2;
}
if (!(($1 & -8192) != 57344 ? $1 >>> 0 >= 55296 : 0)) {
HEAP8[$0 + 2 | 0] = $1 & 63 | 128;
HEAP8[$0 | 0] = $1 >>> 12 | 224;
HEAP8[$0 + 1 | 0] = $1 >>> 6 & 63 | 128;
return 3;
}
if ($1 - 65536 >>> 0 <= 1048575) {
HEAP8[$0 + 3 | 0] = $1 & 63 | 128;
HEAP8[$0 | 0] = $1 >>> 18 | 240;
HEAP8[$0 + 2 | 0] = $1 >>> 6 & 63 | 128;
HEAP8[$0 + 1 | 0] = $1 >>> 12 & 63 | 128;
return 4;
}
}
HEAP32[__errno_location() >> 2] = 25;
$2 = -1;
}
return $2;
}
HEAP8[$0 | 0] = $1;
return 1;
}
function opus_repacketizer_cat_impl($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0;
$5 = __stack_pointer - 16 | 0;
__stack_pointer = $5;
$4 = -4;
label$1 : {
if (($2 | 0) < 1) {
break label$1;
}
label$2 : {
if (!HEAP32[$0 + 4 >> 2]) {
HEAP8[$0 | 0] = HEAPU8[$1 | 0];
HEAP32[$0 + 296 >> 2] = opus_packet_get_samples_per_frame($1, 8e3);
break label$2;
}
if ((HEAPU8[$1 | 0] ^ HEAPU8[$0 | 0]) >>> 0 > 3) {
break label$1;
}
}
$6 = opus_packet_get_nb_frames($1, $2);
if (($6 | 0) < 1) {
break label$1;
}
$7 = HEAP32[$0 + 4 >> 2];
if ((Math_imul(HEAP32[$0 + 296 >> 2], $7 + $6 | 0) | 0) > 960) {
break label$1;
}
$4 = opus_packet_parse_impl($1, $2, $3, $5 + 15 | 0, (($7 << 2) + $0 | 0) + 8 | 0, (($7 << 1) + $0 | 0) + 200 | 0, 0, 0);
if (($4 | 0) < 1) {
break label$1;
}
HEAP32[$0 + 4 >> 2] = HEAP32[$0 + 4 >> 2] + $6;
$4 = 0;
}
__stack_pointer = $5 + 16 | 0;
return $4;
}
function cos($0) {
var $1 = 0, $2 = 0, $3 = 0;
$1 = __stack_pointer - 16 | 0;
__stack_pointer = $1;
wasm2js_scratch_store_f64(+$0);
$3 = wasm2js_scratch_load_i32(1) | 0;
wasm2js_scratch_load_i32(0) | 0;
$3 = $3 & 2147483647;
label$1 : {
if ($3 >>> 0 <= 1072243195) {
$2 = 1;
if ($3 >>> 0 < 1044816030) {
break label$1;
}
$2 = __cos($0, 0);
break label$1;
}
$2 = $0 - $0;
if ($3 >>> 0 >= 2146435072) {
break label$1;
}
label$3 : {
switch (__rem_pio2($0, $1) & 3) {
case 0:
$2 = __cos(HEAPF64[$1 >> 3], HEAPF64[$1 + 8 >> 3]);
break label$1;
case 1:
$2 = -__sin(HEAPF64[$1 >> 3], HEAPF64[$1 + 8 >> 3], 1);
break label$1;
case 2:
$2 = -__cos(HEAPF64[$1 >> 3], HEAPF64[$1 + 8 >> 3]);
break label$1;
default:
break label$3;
}
}
$2 = __sin(HEAPF64[$1 >> 3], HEAPF64[$1 + 8 >> 3], 1);
}
__stack_pointer = $1 + 16 | 0;
return $2;
}
function silk_resampler_down2($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0;
if (($3 | 0) >= 2) {
$3 = $3 >> 1;
$10 = ($3 | 0) > 1 ? $3 : 1;
$4 = HEAP32[$0 + 4 >> 2];
$5 = HEAP32[$0 >> 2];
$3 = 0;
while (1) {
$6 = $3 << 2;
$7 = HEAP16[$6 + $2 >> 1] << 10;
$5 = $7 - $5 | 0;
$7 = (Math_imul($5 >> 16, -25727) + (Math_imul($5 & 65535, -25727) >> 16) | 0) + $7 | 0;
$8 = $7 + $4 | 0;
$6 = HEAP16[($6 | 2) + $2 >> 1] << 10;
$4 = $6 - $4 | 0;
$4 = (Math_imul($4 & 65535, 9872) >>> 16 | 0) + Math_imul($4 >> 16, 9872) | 0;
$8 = $8 + $4 | 0;
$9 = ($8 >> 10) + 1 >> 1;
HEAP16[($3 << 1) + $1 >> 1] = ($8 | 0) > 67107839 ? 32767 : ($9 | 0) > -32768 ? $9 : -32768;
$4 = $4 + $6 | 0;
$5 = $5 + $7 | 0;
$3 = $3 + 1 | 0;
if (($10 | 0) != ($3 | 0)) {
continue;
}
break;
}
HEAP32[$0 + 4 >> 2] = $4;
HEAP32[$0 >> 2] = $5;
}
}
function celt_encoder_init($0, $1, $2, $3) {
var $4 = 0, $5 = 0;
$5 = -1;
$4 = opus_custom_mode_create(48e3, 960, 0);
label$1 : {
if ($2 >>> 0 > 2) {
break label$1;
}
$5 = -7;
if (!$0 | !$4) {
break label$1;
}
$5 = 0;
$0 = memset($0, 0, Math_imul(((HEAP32[$4 + 4 >> 2] << 2) + (HEAP32[$4 + 8 >> 2] << 4) | 0) + 4096 | 0, $2) + 244 | 0);
HEAP32[$0 + 28 >> 2] = 1;
HEAP32[$0 + 32 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = $2;
HEAP32[$0 + 4 >> 2] = $2;
HEAP32[$0 >> 2] = $4;
$2 = HEAP32[$4 + 12 >> 2];
HEAP32[$0 + 24 >> 2] = 5;
HEAP32[$0 + 60 >> 2] = 24;
HEAP32[$0 + 12 >> 2] = 0;
HEAP32[$0 + 16 >> 2] = 1;
HEAP32[$0 + 40 >> 2] = -1;
HEAP32[$0 + 44 >> 2] = 0;
HEAP32[$0 + 72 >> 2] = $3;
HEAP32[$0 + 48 >> 2] = 1;
HEAP32[$0 + 52 >> 2] = 1;
HEAP32[$0 + 36 >> 2] = $2;
opus_custom_encoder_ctl($0, 4028, 0);
HEAP32[$0 + 28 >> 2] = resampling_factor($1);
}
return $5;
}
function __fwritex($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0;
$3 = HEAP32[$2 + 16 >> 2];
label$1 : {
if (!$3) {
if (__towrite($2)) {
break label$1;
}
$3 = HEAP32[$2 + 16 >> 2];
}
$5 = HEAP32[$2 + 20 >> 2];
if ($3 - $5 >>> 0 < $1 >>> 0) {
return FUNCTION_TABLE[HEAP32[$2 + 36 >> 2]]($2, $0, $1) | 0;
}
label$5 : {
if (HEAP8[$2 + 75 | 0] < 0) {
$3 = 0;
break label$5;
}
$4 = $1;
while (1) {
$3 = $4;
if (!$3) {
$3 = 0;
break label$5;
}
$4 = $3 - 1 | 0;
if (HEAPU8[$4 + $0 | 0] != 10) {
continue;
}
break;
}
$4 = FUNCTION_TABLE[HEAP32[$2 + 36 >> 2]]($2, $0, $3) | 0;
if ($4 >>> 0 < $3 >>> 0) {
break label$1;
}
$0 = $0 + $3 | 0;
$1 = $1 - $3 | 0;
$5 = HEAP32[$2 + 20 >> 2];
}
memcpy($5, $0, $1);
HEAP32[$2 + 20 >> 2] = HEAP32[$2 + 20 >> 2] + $1;
$4 = $1 + $3 | 0;
}
return $4;
}
function sin($0) {
var $1 = 0, $2 = 0;
$1 = __stack_pointer - 16 | 0;
__stack_pointer = $1;
wasm2js_scratch_store_f64(+$0);
$2 = wasm2js_scratch_load_i32(1) | 0;
wasm2js_scratch_load_i32(0) | 0;
$2 = $2 & 2147483647;
label$1 : {
if ($2 >>> 0 <= 1072243195) {
if ($2 >>> 0 < 1045430272) {
break label$1;
}
$0 = __sin($0, 0, 0);
break label$1;
}
if ($2 >>> 0 >= 2146435072) {
$0 = $0 - $0;
break label$1;
}
label$4 : {
switch (__rem_pio2($0, $1) & 3) {
case 0:
$0 = __sin(HEAPF64[$1 >> 3], HEAPF64[$1 + 8 >> 3], 1);
break label$1;
case 1:
$0 = __cos(HEAPF64[$1 >> 3], HEAPF64[$1 + 8 >> 3]);
break label$1;
case 2:
$0 = -__sin(HEAPF64[$1 >> 3], HEAPF64[$1 + 8 >> 3], 1);
break label$1;
default:
break label$4;
}
}
$0 = -__cos(HEAPF64[$1 >> 3], HEAPF64[$1 + 8 >> 3]);
}
__stack_pointer = $1 + 16 | 0;
return $0;
}
function ec_enc_bits($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
if ($2) {
$6 = HEAP32[$0 + 12 >> 2];
$5 = HEAP32[$0 + 16 >> 2];
$3 = $5 + $2 | 0;
label$2 : {
if ($3 >>> 0 < 33) {
$4 = $5;
break label$2;
}
while (1) {
$3 = -1;
$7 = HEAP32[$0 + 4 >> 2];
$4 = HEAP32[$0 + 8 >> 2];
if ($7 >>> 0 > $4 + HEAP32[$0 + 24 >> 2] >>> 0) {
$3 = $4 + 1 | 0;
HEAP32[$0 + 8 >> 2] = $3;
HEAP8[HEAP32[$0 >> 2] + ($7 - $3 | 0) | 0] = $6;
$3 = 0;
}
HEAP32[$0 + 44 >> 2] = HEAP32[$0 + 44 >> 2] | $3;
$6 = $6 >>> 8 | 0;
$3 = ($5 | 0) > 15;
$4 = $5 - 8 | 0;
$5 = $4;
if ($3) {
continue;
}
break;
}
$3 = $2 + $4 | 0;
}
HEAP32[$0 + 16 >> 2] = $3;
HEAP32[$0 + 12 >> 2] = $1 << $4 | $6;
HEAP32[$0 + 20 >> 2] = HEAP32[$0 + 20 >> 2] + $2;
return;
}
celt_fatal(7033, 7019, 198);
abort();
}
function speex_resampler_process_interleaved_float($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, $9 = 0, $10 = 0;
$7 = HEAP32[$0 + 92 >> 2];
$8 = HEAP32[$2 >> 2];
$9 = HEAP32[$4 >> 2];
$5 = HEAP32[$0 + 20 >> 2];
HEAP32[$0 + 92 >> 2] = $5;
$10 = HEAP32[$0 + 88 >> 2];
HEAP32[$0 + 88 >> 2] = $5;
if ($5) {
$5 = 0;
while (1) {
HEAP32[$4 >> 2] = $9;
HEAP32[$2 >> 2] = $8;
label$3 : {
if ($1) {
$6 = $5 << 2;
speex_resampler_process_float($0, $5, $6 + $1 | 0, $2, $3 + $6 | 0, $4);
break label$3;
}
speex_resampler_process_float($0, $5, 0, $2, ($5 << 2) + $3 | 0, $4);
}
$5 = $5 + 1 | 0;
if ($5 >>> 0 < HEAPU32[$0 + 20 >> 2]) {
continue;
}
break;
}
}
HEAP32[$0 + 92 >> 2] = $7;
HEAP32[$0 + 88 >> 2] = $10;
return HEAP32[$0 + 84 >> 2] == 9 | 0;
}
function silk_VAD_Init($0) {
var $1 = 0;
$1 = $0;
HEAP32[$1 >> 2] = 0;
HEAP32[$1 + 4 >> 2] = 0;
HEAP32[$1 + 56 >> 2] = 0;
HEAP32[$1 + 60 >> 2] = 5e3;
HEAP32[$1 + 32 >> 2] = 0;
HEAP32[$1 + 36 >> 2] = 0;
HEAP32[$1 + 24 >> 2] = 0;
HEAP32[$1 + 28 >> 2] = 0;
HEAP32[$1 + 16 >> 2] = 0;
HEAP32[$1 + 20 >> 2] = 0;
HEAP32[$1 + 8 >> 2] = 0;
HEAP32[$1 + 12 >> 2] = 0;
HEAP32[$1 + 96 >> 2] = 25;
HEAP32[$1 + 100 >> 2] = 16;
HEAP32[$1 + 80 >> 2] = 858993;
HEAP32[$1 + 84 >> 2] = 1342177;
$1 = $1 - -64 | 0;
HEAP32[$1 >> 2] = 2500;
HEAP32[$1 + 4 >> 2] = 1600;
$1 = $0;
HEAP32[$1 + 104 >> 2] = 12;
HEAP32[$1 + 108 >> 2] = 15;
HEAP32[$1 + 88 >> 2] = 1789569;
HEAP32[$1 + 92 >> 2] = 50;
HEAP32[$1 + 72 >> 2] = 1200;
HEAP32[$1 + 76 >> 2] = 429496;
HEAP32[$1 + 40 >> 2] = 25600;
HEAP32[$1 + 44 >> 2] = 25600;
HEAP32[$1 + 48 >> 2] = 25600;
HEAP32[$1 + 52 >> 2] = 25600;
return 0;
}
function silk_residual_energy_FLP($0, $1, $2, $3, $4, $5, $6) {
var $7 = Math_fround(0), $8 = 0, $9 = 0, $10 = 0, $11 = 0;
$8 = __stack_pointer - 768 | 0;
__stack_pointer = $8;
$9 = $4 + $6 | 0;
$10 = $9 << 1;
silk_LPC_analysis_filter_FLP($8, $2, $1, $10, $6);
$7 = HEAPF32[$3 >> 2];
$11 = ($6 << 2) + $8 | 0;
HEAPF32[$0 >> 2] = silk_energy_FLP($11, $4) * +Math_fround($7 * $7);
$7 = HEAPF32[$3 + 4 >> 2];
$9 = ($9 << 2) + $11 | 0;
HEAPF32[$0 + 4 >> 2] = silk_energy_FLP($9, $4) * +Math_fround($7 * $7);
if (($5 | 0) == 4) {
silk_LPC_analysis_filter_FLP($8, $2 - -64 | 0, ($10 << 2) + $1 | 0, $10, $6);
$7 = HEAPF32[$3 + 8 >> 2];
HEAPF32[$0 + 8 >> 2] = silk_energy_FLP($11, $4) * +Math_fround($7 * $7);
$7 = HEAPF32[$3 + 12 >> 2];
HEAPF32[$0 + 12 >> 2] = silk_energy_FLP($9, $4) * +Math_fround($7 * $7);
}
__stack_pointer = $8 + 768 | 0;
}
function silk_gains_dequant($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
if (($4 | 0) >= 1) {
while (1) {
$5 = HEAP8[$1 + $7 | 0];
$9 = $2;
label$3 : {
if (!($3 | $7)) {
$6 = HEAP8[$2 | 0] - 16 | 0;
$5 = ($5 | 0) > ($6 | 0) ? $5 : $6;
break label$3;
}
$5 = $5 - 4 | 0;
$6 = HEAP8[$2 | 0];
$8 = $6 + 8 | 0;
if (($5 | 0) > ($8 | 0)) {
$5 = (($5 << 1) - $8 | 0) + $6 | 0;
break label$3;
}
$5 = $5 + $6 | 0;
}
$5 = $5 << 24 >> 24 > 0 ? $5 : 0;
$5 = $5 << 24 >> 24 < 63 ? $5 : 63;
HEAP8[$9 | 0] = $5;
$5 = $5 & 255;
$5 = (Math_imul($5, 7281) >>> 16 | 0) + Math_imul($5, 29) | 0;
HEAP32[($7 << 2) + $0 >> 2] = silk_log2lin(($5 >>> 0 < 1877 ? $5 : 1877) + 2090 | 0);
$7 = $7 + 1 | 0;
if (($7 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
}
function silk_k2a_FLP($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = Math_fround(0), $8 = 0, $9 = 0, $10 = Math_fround(0), $11 = Math_fround(0), $12 = 0, $13 = 0;
$6 = 1;
if (($2 | 0) >= 1) {
while (1) {
$8 = $5 << 2;
$7 = HEAPF32[$8 + $1 >> 2];
$9 = $5 + 1 | 0;
if ($9 & 2147483646) {
$12 = $6 >>> 1 | 0;
$3 = 0;
while (1) {
$4 = ($3 << 2) + $0 | 0;
$13 = $4;
$10 = HEAPF32[$4 >> 2];
$4 = (($3 ^ -1) + $5 << 2) + $0 | 0;
$11 = HEAPF32[$4 >> 2];
HEAPF32[$13 >> 2] = $10 + Math_fround($7 * $11);
HEAPF32[$4 >> 2] = $11 + Math_fround($7 * $10);
$3 = $3 + 1 | 0;
if (($12 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
HEAPF32[$0 + $8 >> 2] = -$7;
$6 = $6 + 1 | 0;
$5 = $9;
if (($5 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
}
function silk_encode_signs($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 0;
$6 = __stack_pointer - 16 | 0;
__stack_pointer = $6;
HEAP8[$6 + 15 | 0] = 0;
if (($2 | 0) >= 8) {
$8 = Math_imul(($3 << 1) + $4 << 16 >> 16, 7) + 9232 | 0;
$2 = $2 + 8 >> 4;
$3 = ($2 | 0) > 1 ? $2 : 1;
while (1) {
$2 = HEAP32[($7 << 2) + $5 >> 2];
if (($2 | 0) >= 1) {
$2 = $2 & 31;
HEAP8[$6 + 14 | 0] = HEAPU8[($2 >>> 0 < 6 ? $2 : 6) + $8 | 0];
$2 = 0;
while (1) {
$4 = HEAPU8[$1 + $2 | 0];
if ($4) {
ec_enc_icdf($0, ($4 << 24 >> 24 >>> 7 | 0) + 1 & 255, $6 + 14 | 0, 8);
}
$2 = $2 + 1 | 0;
if (($2 | 0) != 16) {
continue;
}
break;
}
}
$1 = $1 + 16 | 0;
$7 = $7 + 1 | 0;
if (($7 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $6 + 16 | 0;
}
function haar1($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = Math_fround(0), $6 = Math_fround(0), $7 = 0, $8 = 0, $9 = 0, $10 = 0;
if (($2 | 0) >= 1) {
$3 = $1 >> 1;
$7 = ($3 | 0) > 1 ? $3 : 1;
$8 = $2 << 1;
$3 = 0;
$9 = ($1 | 0) < 2;
while (1) {
$1 = 0;
if (!$9) {
while (1) {
$4 = (Math_imul($1, $8) + $3 << 2) + $0 | 0;
$10 = $4;
$5 = Math_fround(HEAPF32[$4 >> 2] * Math_fround(.7071067690849304));
$4 = (Math_imul($1 << 1 | 1, $2) + $3 << 2) + $0 | 0;
$6 = Math_fround(HEAPF32[$4 >> 2] * Math_fround(.7071067690849304));
HEAPF32[$10 >> 2] = $5 + $6;
HEAPF32[$4 >> 2] = $5 - $6;
$1 = $1 + 1 | 0;
if (($7 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$3 = $3 + 1 | 0;
if (($3 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
}
function silk_find_LTP_FLP($0, $1, $2, $3, $4, $5) {
var $6 = Math_fround(0), $7 = 0, $8 = 0, $9 = Math_fround(0), $10 = 0;
if (($5 | 0) >= 1) {
$10 = $4 + 5 | 0;
while (1) {
$8 = ($2 - (HEAP32[($7 << 2) + $3 >> 2] << 2) | 0) - 8 | 0;
silk_corrMatrix_FLP($8, $4, 5, $0);
silk_corrVector_FLP($8, $2, $4, 5, $1);
$6 = Math_fround(silk_energy_FLP($2, $10));
$9 = Math_fround(Math_fround(Math_fround(HEAPF32[$0 >> 2] + HEAPF32[$0 + 96 >> 2]) * Math_fround(.014999999664723873)) + Math_fround(1));
$6 = Math_fround(Math_fround(1) / ($6 > $9 ? $6 : $9));
silk_scale_vector_FLP($0, $6, 25);
silk_scale_vector_FLP($1, $6, 5);
$1 = $1 + 20 | 0;
$0 = $0 + 100 | 0;
$2 = ($4 << 2) + $2 | 0;
$7 = $7 + 1 | 0;
if (($7 | 0) != ($5 | 0)) {
continue;
}
break;
}
}
}
function silk_stereo_encode_pred($0, $1) {
var $2 = 0;
label$1 : {
label$2 : {
$2 = HEAP8[$1 + 5 | 0] + Math_imul(HEAP8[$1 + 2 | 0], 5) | 0;
if (($2 | 0) < 25) {
ec_enc_icdf($0, $2, 5776, 8);
$2 = HEAP8[$1 | 0];
if (($2 | 0) >= 3) {
break label$2;
}
if (HEAP8[$1 + 1 | 0] >= 5) {
break label$1;
}
ec_enc_icdf($0, $2, 5854, 8);
ec_enc_icdf($0, HEAP8[$1 + 1 | 0], 5861, 8);
$2 = HEAP8[$1 + 3 | 0];
if (($2 | 0) > 2) {
break label$2;
}
if (HEAP8[$1 + 4 | 0] > 4) {
break label$1;
}
ec_enc_icdf($0, $2, 5854, 8);
ec_enc_icdf($0, HEAP8[$1 + 4 | 0], 5861, 8);
return;
}
celt_fatal(7150, 7175, 44);
abort();
}
celt_fatal(7201, 7175, 47);
abort();
}
celt_fatal(7236, 7175, 48);
abort();
}
function silk_encode_do_VAD_FLP($0, $1) {
var $2 = 0;
silk_VAD_GetSA_Q8_c($0, $0 + 5098 | 0);
$2 = HEAP32[$0 + 4532 >> 2];
label$1 : {
label$2 : {
label$3 : {
if (!$1) {
if (($2 | 0) < 13) {
break label$3;
}
HEAP32[$0 + 4532 >> 2] = 12;
break label$3;
}
if (($2 | 0) > 12) {
break label$2;
}
}
$1 = 0;
HEAP8[$0 + 4765 | 0] = 0;
$2 = HEAP32[$0 + 6084 >> 2];
HEAP32[$0 + 6084 >> 2] = $2 + 1;
if (($2 | 0) >= 10) {
if (($2 | 0) < 30) {
break label$1;
}
HEAP32[$0 + 6084 >> 2] = 10;
}
HEAP32[$0 + 6080 >> 2] = 0;
break label$1;
}
HEAP32[$0 + 6080 >> 2] = 0;
HEAP32[$0 + 6084 >> 2] = 0;
$1 = 1;
HEAP8[$0 + 4765 | 0] = 1;
}
HEAP8[(HEAP32[$0 + 5748 >> 2] + $0 | 0) + 4720 | 0] = $1;
}
function amp2Log2($0, $1, $2, $3, $4, $5) {
var $6 = 0, $7 = 0, $8 = 0, $9 = 0;
$8 = ($5 | 0) > 1 ? $5 : 1;
while (1) {
if (($1 | 0) >= 1) {
$9 = Math_imul(HEAP32[$0 + 8 >> 2], $6);
$5 = 0;
while (1) {
$7 = $5 + $9 << 2;
HEAPF32[$7 + $4 >> 2] = Math_fround(log(+HEAPF32[$3 + $7 >> 2]) * 1.4426950408889634) - HEAPF32[($5 << 2) + 32928 >> 2];
$5 = $5 + 1 | 0;
if (($5 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
if (($1 | 0) < ($2 | 0)) {
$7 = Math_imul(HEAP32[$0 + 8 >> 2], $6);
$5 = $1;
while (1) {
HEAP32[($5 + $7 << 2) + $4 >> 2] = -1050673152;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
$6 = $6 + 1 | 0;
if (($8 | 0) != ($6 | 0)) {
continue;
}
break;
}
}
function silk_process_NLSFs_FLP($0, $1, $2, $3) {
var $4 = 0;
$4 = __stack_pointer + -64 | 0;
__stack_pointer = $4;
silk_process_NLSFs($0, $4, $2, $3);
$2 = HEAP32[$0 + 4640 >> 2];
label$1 : {
if (($2 | 0) < 1) {
break label$1;
}
$0 = 0;
while (1) {
HEAPF32[($0 << 2) + $1 >> 2] = Math_fround(HEAP16[($0 << 1) + $4 >> 1]) * Math_fround(.000244140625);
$0 = $0 + 1 | 0;
if (($2 | 0) != ($0 | 0)) {
continue;
}
break;
}
if (($2 | 0) < 1) {
break label$1;
}
$0 = 0;
while (1) {
HEAPF32[(($0 << 2) + $1 | 0) - -64 >> 2] = Math_fround(HEAP16[(($0 << 1) + $4 | 0) + 32 >> 1]) * Math_fround(.000244140625);
$0 = $0 + 1 | 0;
if (($2 | 0) != ($0 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $4 - -64 | 0;
}
function silk_inner_product_FLP($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
if (($2 | 0) > 3) {
$7 = $2 - 3 | 0;
while (1) {
$3 = $4 << 2;
$5 = $3 | 4;
$8 = +HEAPF32[$0 + $3 >> 2] * +HEAPF32[$1 + $3 >> 2] + +HEAPF32[$0 + $5 >> 2] * +HEAPF32[$1 + $5 >> 2];
$5 = $3 | 8;
$3 = $3 | 12;
$6 = $6 + ($8 + +HEAPF32[$5 + $0 >> 2] * +HEAPF32[$1 + $5 >> 2] + +HEAPF32[$3 + $0 >> 2] * +HEAPF32[$1 + $3 >> 2]);
$4 = $4 + 4 | 0;
if (($7 | 0) > ($4 | 0)) {
continue;
}
break;
}
$4 = $2 & -4;
}
if (($2 | 0) > ($4 | 0)) {
while (1) {
$3 = $4 << 2;
$6 = $6 + +HEAPF32[$3 + $0 >> 2] * +HEAPF32[$1 + $3 >> 2];
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
return $6;
}
function silk_bwexpander_32($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
$4 = $2 >> 16;
$5 = $1 - 1 | 0;
if (($1 | 0) >= 2) {
$7 = $2 - 65536 | 0;
$1 = 0;
while (1) {
$3 = ($1 << 2) + $0 | 0;
$8 = $3;
$3 = HEAP32[$3 >> 2];
$6 = $3 << 16 >> 16;
HEAP32[$8 >> 2] = ((Math_imul($6, $2 & 65535) >> 16) + Math_imul($4, $6) | 0) + Math_imul(($3 >> 15) + 1 >> 1, $2);
$2 = ((Math_imul($2, $7) >> 15) + 1 >> 1) + $2 | 0;
$4 = $2 >> 16;
$1 = $1 + 1 | 0;
if (($5 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$1 = ($5 << 2) + $0 | 0;
$0 = $1;
$1 = HEAP32[$1 >> 2];
$3 = $1 << 16 >> 16;
HEAP32[$0 >> 2] = ((Math_imul($3, $2 & 65535) >> 16) + Math_imul($3, $4) | 0) + Math_imul(($1 >> 15) + 1 >> 1, $2);
}
function silk_NLSF_unpack($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0;
$4 = HEAP16[$2 + 2 >> 1];
if (($4 | 0) >= 1) {
$5 = HEAP32[$2 + 24 >> 2] + ((Math_imul($4 & 65535, $3) | 0) / 2 | 0) | 0;
$3 = 0;
while (1) {
$4 = HEAPU8[$5 | 0];
HEAP16[($3 << 1) + $0 >> 1] = Math_imul($4 >>> 1 & 7, 9);
HEAP8[$1 + $3 | 0] = HEAPU8[HEAP32[$2 + 20 >> 2] + (Math_imul(HEAP16[$2 + 2 >> 1] - 1 | 0, $4 & 1) + $3 | 0) | 0];
$6 = $3 | 1;
HEAP16[($6 << 1) + $0 >> 1] = Math_imul($4 >>> 5 | 0, 9);
HEAP8[$1 + $6 | 0] = HEAPU8[HEAP32[$2 + 20 >> 2] + (Math_imul(HEAP16[$2 + 2 >> 1] - 1 | 0, $4 >>> 4 & 1) + $6 | 0) | 0];
$5 = $5 + 1 | 0;
$3 = $3 + 2 | 0;
if (($3 | 0) < HEAP16[$2 + 2 >> 1]) {
continue;
}
break;
}
}
}
function silk_insertion_sort_increasing_all_values_int16($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
$3 = 1;
if (($1 | 0) >= 1) {
if (($1 | 0) != 1) {
while (1) {
$5 = HEAP16[($3 << 1) + $0 >> 1];
$2 = $3;
label$4 : {
while (1) {
$6 = $2 - 1 | 0;
$4 = HEAP16[($6 << 1) + $0 >> 1];
if (($5 | 0) >= ($4 | 0)) {
break label$4;
}
HEAP16[($2 << 1) + $0 >> 1] = $4;
$4 = ($2 | 0) > 1;
$2 = $6;
if ($4) {
continue;
}
break;
}
$2 = 0;
}
HEAP16[($2 << 1) + $0 >> 1] = $5;
$3 = $3 + 1 | 0;
if (($3 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
return;
}
celt_fatal(15671, 15659, 144);
abort();
}
function ec_dec_bits($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
$4 = HEAP32[$0 + 12 >> 2];
$2 = HEAP32[$0 + 16 >> 2];
label$1 : {
if ($2 >>> 0 >= $1 >>> 0) {
$6 = $2;
break label$1;
}
$3 = HEAP32[$0 + 8 >> 2];
$7 = HEAP32[$0 + 4 >> 2];
while (1) {
$5 = 0;
if ($3 >>> 0 < $7 >>> 0) {
$3 = $3 + 1 | 0;
HEAP32[$0 + 8 >> 2] = $3;
$5 = HEAPU8[HEAP32[$0 >> 2] + ($7 - $3 | 0) | 0];
}
$4 = $5 << $2 | $4;
$5 = ($2 | 0) < 17;
$6 = $2 + 8 | 0;
$2 = $6;
if ($5) {
continue;
}
break;
}
}
HEAP32[$0 + 16 >> 2] = $6 - $1;
HEAP32[$0 + 12 >> 2] = $4 >>> $1;
HEAP32[$0 + 20 >> 2] = HEAP32[$0 + 20 >> 2] + $1;
return (-1 << $1 ^ -1) & $4;
}
function silk_scale_vector_FLP($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0;
$6 = $2 & 65532;
if ($6) {
while (1) {
$3 = $4 << 2;
$5 = $3 + $0 | 0;
HEAPF32[$5 >> 2] = HEAPF32[$5 >> 2] * $1;
$5 = ($3 | 4) + $0 | 0;
HEAPF32[$5 >> 2] = HEAPF32[$5 >> 2] * $1;
$5 = ($3 | 8) + $0 | 0;
HEAPF32[$5 >> 2] = HEAPF32[$5 >> 2] * $1;
$3 = ($3 | 12) + $0 | 0;
HEAPF32[$3 >> 2] = HEAPF32[$3 >> 2] * $1;
$4 = $4 + 4 | 0;
if ($6 >>> 0 > $4 >>> 0) {
continue;
}
break;
}
}
if (($2 | 0) > ($4 | 0)) {
while (1) {
$3 = ($4 << 2) + $0 | 0;
HEAPF32[$3 >> 2] = HEAPF32[$3 >> 2] * $1;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
}
function silk_scale_copy_vector_FLP($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0;
$7 = $3 & 65532;
if ($7) {
while (1) {
$4 = $5 << 2;
HEAPF32[$4 + $0 >> 2] = HEAPF32[$1 + $4 >> 2] * $2;
$6 = $4 | 4;
HEAPF32[$6 + $0 >> 2] = HEAPF32[$1 + $6 >> 2] * $2;
$6 = $4 | 8;
HEAPF32[$6 + $0 >> 2] = HEAPF32[$1 + $6 >> 2] * $2;
$4 = $4 | 12;
HEAPF32[$4 + $0 >> 2] = HEAPF32[$1 + $4 >> 2] * $2;
$5 = $5 + 4 | 0;
if ($7 >>> 0 > $5 >>> 0) {
continue;
}
break;
}
}
if (($3 | 0) > ($5 | 0)) {
while (1) {
$4 = $5 << 2;
HEAPF32[$4 + $0 >> 2] = HEAPF32[$1 + $4 >> 2] * $2;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
}
function fmt_u($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0, $6 = 0;
label$1 : {
if ($1 >>> 0 < 1) {
$5 = $0;
$3 = $1;
$6 = $3;
break label$1;
}
while (1) {
$2 = $2 - 1 | 0;
$3 = $1;
$5 = __wasm_i64_udiv($0, $3, 10, 0);
$3 = i64toi32_i32$HIGH_BITS;
$6 = $3;
$4 = __wasm_i64_mul($5, $3, 10, 0);
$3 = $1;
HEAP8[$2 | 0] = $0 - $4 | 48;
$4 = $3 >>> 0 > 9;
$0 = $5;
$3 = $6;
$1 = $3;
if ($4) {
continue;
}
break;
}
}
$4 = $5;
if ($4) {
while (1) {
$2 = $2 - 1 | 0;
$0 = ($4 >>> 0) / 10 | 0;
HEAP8[$2 | 0] = $4 - Math_imul($0, 10) | 48;
$1 = $4 >>> 0 > 9;
$4 = $0;
if ($1) {
continue;
}
break;
}
}
return $2;
}
function silk_energy_FLP($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
if (($1 | 0) > 3) {
$7 = $1 - 3 | 0;
while (1) {
$5 = $3 << 2;
$2 = +HEAPF32[$5 + $0 >> 2];
$4 = $2 * $2;
$2 = +HEAPF32[($5 | 4) + $0 >> 2];
$4 = $4 + $2 * $2;
$2 = +HEAPF32[($5 | 8) + $0 >> 2];
$4 = $4 + $2 * $2;
$2 = +HEAPF32[($5 | 12) + $0 >> 2];
$6 = $6 + ($4 + $2 * $2);
$3 = $3 + 4 | 0;
if (($7 | 0) > ($3 | 0)) {
continue;
}
break;
}
$3 = $1 & -4;
}
if (($1 | 0) > ($3 | 0)) {
while (1) {
$2 = +HEAPF32[($3 << 2) + $0 >> 2];
$6 = $6 + $2 * $2;
$3 = $3 + 1 | 0;
if (($3 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
return $6;
}
function renormalise_vector($0, $1, $2, $3) {
var $4 = 0, $5 = Math_fround(0), $6 = Math_fround(0);
label$1 : {
if (($1 | 0) < 1) {
break label$1;
}
while (1) {
$6 = HEAPF32[($4 << 2) + $0 >> 2];
$5 = Math_fround($5 + Math_fround($6 * $6));
$4 = $4 + 1 | 0;
if (($4 | 0) != ($1 | 0)) {
continue;
}
break;
}
if (($1 | 0) < 1) {
break label$1;
}
$5 = Math_fround(Math_fround(Math_fround(1) / Math_fround(Math_sqrt(Math_fround($5 + Math_fround(1.0000000036274937e-15))))) * $2);
$4 = 0;
while (1) {
HEAPF32[$0 >> 2] = $5 * HEAPF32[$0 >> 2];
$0 = $0 + 4 | 0;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
}
function hysteresis_decision($0, $1, $2, $3, $4) {
var $5 = 0;
label$1 : {
if (($3 | 0) < 1) {
break label$1;
}
while (1) {
if (HEAPF32[($5 << 2) + $1 >> 2] > $0) {
break label$1;
}
$5 = $5 + 1 | 0;
if (($5 | 0) != ($3 | 0)) {
continue;
}
break;
}
$5 = $3;
}
label$3 : {
label$4 : {
if (($4 | 0) < ($5 | 0)) {
$3 = $4 << 2;
if (Math_fround(HEAPF32[$3 + $1 >> 2] + HEAPF32[$2 + $3 >> 2]) > $0) {
break label$4;
}
}
if (($4 | 0) <= ($5 | 0)) {
break label$3;
}
$3 = ($4 << 2) - 4 | 0;
if (Math_fround(HEAPF32[$3 + $1 >> 2] - HEAPF32[$2 + $3 >> 2]) < $0 ^ 1) {
break label$3;
}
}
$5 = $4;
}
return $5;
}
function silk_LTP_scale_ctrl_FLP($0, $1, $2) {
var $3 = 0, $4 = Math_fround(0), $5 = 0;
$5 = $0 + 4769 | 0;
$3 = 0;
label$1 : {
if ($2) {
break label$1;
}
$3 = 2;
$4 = Math_fround(Math_fround(HEAPF32[$1 + 708 >> 2] * Math_fround(HEAP32[$0 + 5744 >> 2] + HEAP32[$0 + 4616 >> 2] | 0)) * Math_fround(.10000000149011612));
if ($4 > Math_fround(2)) {
break label$1;
}
$3 = 0;
if ($4 < Math_fround(0)) {
break label$1;
}
$3 = ~~$4;
if (Math_fround(Math_abs($4)) < Math_fround(2147483648)) {
break label$1;
}
$3 = -2147483648;
}
HEAP8[$5 | 0] = $3;
HEAPF32[$1 + 224 >> 2] = Math_fround(HEAP16[($3 << 1) + 5848 >> 1]) * Math_fround(6103515625e-14);
}
function scalbn($0, $1) {
label$1 : {
if (($1 | 0) >= 1024) {
$0 = $0 * 8.98846567431158e+307;
if (($1 | 0) < 2047) {
$1 = $1 - 1023 | 0;
break label$1;
}
$0 = $0 * 8.98846567431158e+307;
$1 = (($1 | 0) < 3069 ? $1 : 3069) - 2046 | 0;
break label$1;
}
if (($1 | 0) > -1023) {
break label$1;
}
$0 = $0 * 2.2250738585072014e-308;
if (($1 | 0) > -2045) {
$1 = $1 + 1022 | 0;
break label$1;
}
$0 = $0 * 2.2250738585072014e-308;
$1 = (($1 | 0) > -3066 ? $1 : -3066) + 2044 | 0;
}
$1 = $1 + 1023 << 20;
wasm2js_scratch_store_i32(0, 0);
wasm2js_scratch_store_i32(1, $1 | 0);
return $0 * +wasm2js_scratch_load_f64();
}
function silk_resampler_private_AR2($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
if (($4 | 0) >= 1) {
$5 = HEAP32[$0 >> 2];
$6 = HEAP16[$3 + 2 >> 1];
$7 = HEAP16[$3 >> 1];
$3 = 0;
while (1) {
$5 = (HEAP16[($3 << 1) + $2 >> 1] << 8) + $5 | 0;
HEAP32[($3 << 2) + $1 >> 2] = $5;
$9 = HEAP32[$0 + 4 >> 2];
$5 = $5 << 2;
$8 = $5 & 65532;
$5 = $5 >> 16;
HEAP32[$0 + 4 >> 2] = (Math_imul($8, $6) >> 16) + Math_imul($6, $5);
$5 = (Math_imul($5, $7) + $9 | 0) + (Math_imul($7, $8) >> 16) | 0;
HEAP32[$0 >> 2] = $5;
$3 = $3 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
}
function silk_control_SNR($0, $1) {
var $2 = 0, $3 = 0, $4 = 0;
HEAP32[$0 + 4608 >> 2] = $1;
$2 = HEAP32[$0 + 4576 >> 2];
$1 = HEAP32[$0 + 4580 >> 2] == 2 ? ((($2 | 0) / -16 | 0) + $1 | 0) - 2e3 | 0 : $1;
$4 = 17024;
$3 = 106;
label$2 : {
label$3 : {
switch ($2 - 8 | 0) {
case 4:
$4 = 17136;
$3 = 154;
break label$2;
case 0:
break label$2;
default:
break label$3;
}
}
$4 = 17296;
$3 = 190;
}
$2 = 0;
$1 = (($1 + 200 | 0) / 400 | 0) - 10 | 0;
$1 = ($1 | 0) < ($3 | 0) ? $1 : $3;
if (($1 | 0) >= 1) {
$2 = Math_imul(HEAPU8[$1 + $4 | 0], 21);
}
HEAP32[$0 + 4716 >> 2] = $2;
return 0;
}
function opus_fft_c($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = Math_fround(0), $6 = 0, $7 = 0, $8 = 0, $9 = Math_fround(0);
if (($1 | 0) != ($2 | 0)) {
$4 = HEAP32[$0 >> 2];
if (($4 | 0) >= 1) {
$5 = HEAPF32[$0 + 4 >> 2];
$8 = HEAP32[$0 + 44 >> 2];
while (1) {
$6 = ($3 << 3) + $1 | 0;
$9 = HEAPF32[$6 >> 2];
$7 = (HEAP16[($3 << 1) + $8 >> 1] << 3) + $2 | 0;
HEAPF32[$7 + 4 >> 2] = $5 * HEAPF32[$6 + 4 >> 2];
HEAPF32[$7 >> 2] = $5 * $9;
$3 = $3 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
opus_fft_impl($0, $2);
return;
}
celt_fatal(42376, 42433, 580);
abort();
}
function ec_enc_patch_initial_bits($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0;
if ($2 >>> 0 < 9) {
$3 = 8 - $2 | 0;
$4 = (-1 << $2 ^ -1) << $3;
if (HEAP32[$0 + 24 >> 2]) {
$2 = HEAP32[$0 >> 2];
HEAP8[$2 | 0] = HEAPU8[$2 | 0] & ($4 ^ -1) | $1 << $3;
return;
}
$5 = HEAP32[$0 + 40 >> 2];
if (($5 | 0) >= 0) {
HEAP32[$0 + 40 >> 2] = ($4 ^ -1) & $5 | $1 << $3;
return;
}
if (HEAPU32[$0 + 28 >> 2] <= -2147483648 >>> $2 >>> 0) {
HEAP32[$0 + 32 >> 2] = HEAP32[$0 + 32 >> 2] & ($4 << 23 ^ -1) | $1 << 31 - $2;
return;
}
HEAP32[$0 + 44 >> 2] = -1;
return;
}
celt_fatal(7059, 7019, 217);
abort();
}
function init_caps($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0;
$4 = HEAP32[$0 + 8 >> 2];
if (($4 | 0) >= 1) {
$9 = (($2 << 1) + $3 | 0) - 1 | 0;
$10 = HEAP32[$0 + 104 >> 2];
$7 = HEAP32[$0 + 32 >> 2];
$6 = HEAPU16[$7 >> 1];
while (1) {
$11 = $6 << 16;
$8 = $5 + 1 | 0;
$6 = HEAP16[($8 << 1) + $7 >> 1];
HEAP32[($5 << 2) + $1 >> 2] = Math_imul(HEAPU8[(Math_imul($4, $9) + $5 | 0) + $10 | 0] - -64 | 0, Math_imul($6 - ($11 >> 16) << $2, $3)) >> 2;
$5 = $8;
$4 = HEAP32[$0 + 8 >> 2];
if (($5 | 0) < ($4 | 0)) {
continue;
}
break;
}
}
}
function opus_packet_pad($0, $1, $2) {
var $3 = 0, $4 = 0;
$3 = __stack_pointer - 304 | 0;
__stack_pointer = $3;
$4 = -1;
label$1 : {
if (($1 | 0) < 1) {
break label$1;
}
$4 = 0;
if (($1 | 0) == ($2 | 0)) {
break label$1;
}
$4 = -1;
if (($1 | 0) > ($2 | 0)) {
break label$1;
}
HEAP32[$3 + 4 >> 2] = 0;
$4 = opus_repacketizer_cat_impl($3, memmove(($0 + $2 | 0) - $1 | 0, $0, $1), $1, 0);
if ($4) {
break label$1;
}
$1 = opus_repacketizer_out_range_impl($3, 0, HEAP32[$3 + 4 >> 2], $0, $2, 0, 1);
$4 = $1 & $1 >> 31;
}
__stack_pointer = $3 + 304 | 0;
return $4;
}
function resampling_factor($0) {
var $1 = 0;
label$1 : {
label$2 : {
label$3 : {
label$4 : {
if (($0 | 0) <= 15999) {
if (($0 | 0) == 8e3) {
break label$4;
}
if (($0 | 0) != 12e3) {
break label$3;
}
return 4;
}
if (($0 | 0) == 16e3) {
break label$2;
}
$1 = 1;
if (($0 | 0) == 48e3) {
break label$1;
}
if (($0 | 0) != 24e3) {
break label$3;
}
return 2;
}
return 6;
}
celt_fatal(1659, 1679, 84);
abort();
}
$1 = 3;
}
return $1;
}
function silk_interpolate($0, $1, $2, $3, $4) {
var $5 = 0, $6 = 0, $7 = 0;
label$1 : {
if (($3 | 0) > -1) {
if (($3 | 0) > 4) {
break label$1;
}
if (($4 | 0) > 0) {
while (1) {
$6 = $5 << 1;
$7 = HEAPU16[$6 + $1 >> 1];
HEAP16[$0 + $6 >> 1] = (Math_imul(HEAPU16[$2 + $6 >> 1] - $7 << 16 >> 16, $3) >>> 2 | 0) + $7;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($4 | 0)) {
continue;
}
break;
}
}
return;
}
celt_fatal(15552, 15584, 45);
abort();
}
celt_fatal(15603, 15584, 46);
abort();
}
function opus_custom_mode_create($0, $1, $2) {
var $3 = 0;
label$1 : {
label$2 : {
$3 = ($0 | 0) != 48e3;
if ((($1 | 0) == 960 ? !$3 : 0) | (($1 & 2147483647) == 480 ? !$3 : 0)) {
break label$2;
}
$0 = ($0 | 0) != 48e3;
if ((($1 & 1073741823) == 240 ? !$0 : 0) | (($1 & 536870911) == 120 ? !$0 : 0)) {
break label$2;
}
$1 = 0;
if (!$2) {
break label$1;
}
HEAP32[$2 >> 2] = -1;
break label$1;
}
$1 = 17996;
if (!$2) {
break label$1;
}
HEAP32[$2 >> 2] = 0;
return 17996;
}
return $1;
}
function _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE($0, $1, $2, $3) {
var $4 = 0, $5 = 0;
$4 = $2 >>> 16 | 0;
$5 = $0 >>> 16 | 0;
$3 = (Math_imul($4, $5) + Math_imul($1, $2) | 0) + Math_imul($3, $0) | 0;
$2 = $2 & 65535;
$0 = $0 & 65535;
$1 = Math_imul($2, $0);
$2 = ($1 >>> 16 | 0) + Math_imul($2, $5) | 0;
$3 = $3 + ($2 >>> 16 | 0) | 0;
$2 = Math_imul($0, $4) + ($2 & 65535) | 0;
i64toi32_i32$HIGH_BITS = $3 + ($2 >>> 16 | 0) | 0;
return $1 & 65535 | $2 << 16;
}
function is_digital_silence($0, $1, $2, $3) {
var $4 = Math_fround(0), $5 = Math_fround(0), $6 = Math_fround(0);
$1 = Math_imul($1, $2);
if (($1 | 0) >= 1) {
$2 = 0;
while (1) {
$4 = HEAPF32[($2 << 2) + $0 >> 2];
$6 = $4 > $6 ? $6 : $4;
$5 = $4 < $5 ? $5 : $4;
$2 = $2 + 1 | 0;
if (($2 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$4 = Math_fround(-$6);
return Math_fround(Math_fround(1) / Math_fround(1 << $3)) >= ($4 < $5 ? $5 : $4);
}
function dlrealloc($0, $1) {
var $2 = 0, $3 = 0;
if (!$0) {
return dlmalloc($1);
}
if ($1 >>> 0 >= 4294967232) {
HEAP32[__errno_location() >> 2] = 48;
return 0;
}
$2 = try_realloc_chunk($0 - 8 | 0, $1 >>> 0 < 11 ? 16 : $1 + 11 & -8);
if ($2) {
return $2 + 8 | 0;
}
$2 = dlmalloc($1);
if (!$2) {
return 0;
}
$3 = HEAP32[$0 - 4 >> 2];
$3 = ($3 & 3 ? -4 : -8) + ($3 & -8) | 0;
memcpy($2, $0, $1 >>> 0 > $3 >>> 0 ? $3 : $1);
dlfree($0);
return $2;
}
function silk_bwexpander_FLP($0, $1, $2) {
var $3 = Math_fround(0), $4 = 0, $5 = 0;
$4 = $1 - 1 | 0;
label$1 : {
if (($1 | 0) < 2) {
$3 = $2;
break label$1;
}
$1 = 0;
$3 = $2;
while (1) {
$5 = ($1 << 2) + $0 | 0;
HEAPF32[$5 >> 2] = $3 * HEAPF32[$5 >> 2];
$3 = Math_fround($3 * $2);
$1 = $1 + 1 | 0;
if (($4 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
$1 = ($4 << 2) + $0 | 0;
HEAPF32[$1 >> 2] = $3 * HEAPF32[$1 >> 2];
}
function silk_log2lin($0) {
var $1 = 0, $2 = 0, $3 = 0;
$1 = 0;
label$1 : {
if (($0 | 0) < 0) {
break label$1;
}
$1 = 2147483647;
if (($0 | 0) > 3966) {
break label$1;
}
$1 = $0 & 127;
$2 = $0 >>> 7 | 0;
$3 = 1 << $2;
$0 = ($0 | 0) <= 2047 ? (Math_imul(Math_imul(128 - $1 | 0, $1), -174) >> 16) + $1 << $2 >> 7 : Math_imul((Math_imul(Math_imul(128 - $1 | 0, $1), -174) >> 16) + $1 | 0, $3 >>> 7 | 0);
$1 = $3 + $0 | 0;
}
return $1;
}
function silk_sigm_Q15($0) {
var $1 = 0;
label$1 : {
if (($0 | 0) <= -1) {
$1 = 0;
if (($0 | 0) < -191) {
break label$1;
}
$0 = 0 - $0 | 0;
$1 = $0 >>> 3 & 536870908;
return HEAP32[$1 + 1024 >> 2] - Math_imul(HEAP16[$1 + 1056 >> 1], $0 & 31) | 0;
}
$1 = 32767;
if (($0 | 0) > 191) {
break label$1;
}
$1 = $0 >>> 3 & 536870908;
$1 = Math_imul(HEAP16[$1 + 1056 >> 1], $0 & 31) + HEAP32[$1 + 1088 >> 2] | 0;
}
return $1;
}
function pad($0, $1, $2, $3, $4) {
var $5 = 0;
$5 = __stack_pointer - 256 | 0;
__stack_pointer = $5;
if (!($4 & 73728 | ($2 | 0) <= ($3 | 0))) {
$2 = $2 - $3 | 0;
$3 = $2 >>> 0 < 256;
memset($5, $1 & 255, $3 ? $2 : 256);
if (!$3) {
while (1) {
out($0, $5, 256);
$2 = $2 - 256 | 0;
if ($2 >>> 0 > 255) {
continue;
}
break;
}
}
out($0, $5, $2);
}
__stack_pointer = $5 + 256 | 0;
}
function __stdio_seek($0, $1, $2, $3) {
$0 = $0 | 0;
$1 = $1 | 0;
$2 = $2 | 0;
$3 = $3 | 0;
var $4 = 0;
$4 = __stack_pointer - 16 | 0;
__stack_pointer = $4;
$0 = __wasi_syscall_ret(legalfunc$__wasi_fd_seek(HEAP32[$0 + 60 >> 2], $1, $2, $3 & 255, $4 + 8 | 0));
__stack_pointer = $4 + 16 | 0;
$2 = HEAP32[$4 + 12 >> 2];
i64toi32_i32$HIGH_BITS = $0 ? -1 : $2;
$1 = HEAP32[$4 + 8 >> 2];
return ($0 ? -1 : $1) | 0;
}
function silk_A2NLSF_FLP($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0;
$3 = __stack_pointer + -64 | 0;
__stack_pointer = $3;
if (($2 | 0) >= 1) {
while (1) {
$5 = $4 << 2;
HEAP32[$5 + $3 >> 2] = lrintf(Math_fround(HEAPF32[$1 + $5 >> 2] * Math_fround(65536)));
$4 = $4 + 1 | 0;
if (($4 | 0) != ($2 | 0)) {
continue;
}
break;
}
}
silk_A2NLSF($0, $3, $2);
__stack_pointer = $3 - -64 | 0;
}
function silk_NLSF2A_FLP($0, $1, $2, $3) {
var $4 = 0;
$4 = __stack_pointer - 32 | 0;
__stack_pointer = $4;
silk_NLSF2A($4, $1, $2, $3);
if (($2 | 0) >= 1) {
$1 = 0;
while (1) {
HEAPF32[($1 << 2) + $0 >> 2] = Math_fround(HEAP16[($1 << 1) + $4 >> 1]) * Math_fround(.000244140625);
$1 = $1 + 1 | 0;
if (($2 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
__stack_pointer = $4 + 32 | 0;
}
function sbrk($0) {
var $1 = 0, $2 = 0;
$1 = HEAP32[13136];
$2 = $0 + 3 & -4;
$0 = $1 + $2 | 0;
label$1 : {
if ($0 >>> 0 <= $1 >>> 0 ? ($2 | 0) >= 1 : 0) {
break label$1;
}
if (__wasm_memory_size() << 16 >>> 0 < $0 >>> 0) {
if (!(emscripten_resize_heap($0 | 0) | 0)) {
break label$1;
}
}
HEAP32[13136] = $0;
return $1;
}
HEAP32[__errno_location() >> 2] = 48;
return -1;
}
function __wasm_nearest_f32($0) {
var $1 = Math_fround(0), $2 = Math_fround(0);
$1 = Math_fround(Math_floor($0));
$2 = Math_fround($0 - $1);
if (!($2 < Math_fround(.5))) {
$0 = Math_fround(Math_ceil($0));
if ($2 > Math_fround(.5)) {
return $0;
}
$2 = Math_fround($1 * Math_fround(.5));
$1 = Math_fround($2 - Math_fround(Math_floor($2))) == Math_fround(0) ? $1 : $0;
}
return $1;
}
function __sin($0, $1, $2) {
var $3 = 0, $4 = 0, $5 = 0;
$3 = $0 * $0;
$5 = $3 * ($3 * $3) * ($3 * 1.58969099521155e-10 + -2.5050760253406863e-8) + ($3 * ($3 * 27557313707070068e-22 + -.0001984126982985795) + .00833333333332249);
$4 = $3 * $0;
if (!$2) {
return $4 * ($3 * $5 + -.16666666666666632) + $0;
}
return $0 - ($3 * ($1 * .5 - $4 * $5) - $1 + $4 * .16666666666666632);
}
function opus_packet_get_nb_frames($0, $1) {
var $2 = 0;
$2 = 1;
if (($1 | 0) < 1) {
return -1;
}
label$2 : {
label$3 : {
switch ((HEAPU8[$0 | 0] & 3) - 1 | 0) {
case 0:
case 1:
return 2;
case 2:
break label$3;
default:
break label$2;
}
}
$2 = -4;
if (($1 | 0) < 2) {
break label$2;
}
$2 = HEAPU8[$0 + 1 | 0] & 63;
}
return $2;
}
function dlcalloc($0, $1) {
var $2 = 0, $3 = 0, $4 = 0;
$2 = 0;
label$2 : {
if (!$0) {
break label$2;
}
$3 = __wasm_i64_mul($0, 0, $1, 0);
$4 = i64toi32_i32$HIGH_BITS;
$2 = $3;
if (($0 | $1) >>> 0 < 65536) {
break label$2;
}
$2 = $4 ? -1 : $3;
}
$3 = $2;
$0 = dlmalloc($3);
if (!(!$0 | !(HEAPU8[$0 - 4 | 0] & 3))) {
memset($0, 0, $3);
}
return $0;
}
function __towrite($0) {
var $1 = 0;
$1 = HEAPU8[$0 + 74 | 0];
HEAP8[$0 + 74 | 0] = $1 | $1 - 1;
$1 = HEAP32[$0 >> 2];
if ($1 & 8) {
HEAP32[$0 >> 2] = $1 | 32;
return -1;
}
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
$1 = HEAP32[$0 + 44 >> 2];
HEAP32[$0 + 28 >> 2] = $1;
HEAP32[$0 + 20 >> 2] = $1;
HEAP32[$0 + 16 >> 2] = HEAP32[$0 + 48 >> 2] + $1;
return 0;
}
function silk_lin2log($0) {
var $1 = 0, $2 = 0;
$1 = Math_clz32($0);
$2 = 24 - $1 | 0;
label$1 : {
if (!$2) {
break label$1;
}
if ($0 >>> 0 <= 127) {
$0 = $0 << 0 - $2 | $0 >>> 56 - $1;
break label$1;
}
$0 = $0 << $1 + 8 | $0 >>> $2;
}
$0 = $0 & 127;
return ($0 - ($1 << 7) + (Math_imul(Math_imul(128 - $0 | 0, $0), 179) >>> 16) | 0) + 3968 | 0;
}
function isqrt32($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0;
$2 = 31 - Math_clz32($0) >> 1;
$3 = 1 << $2;
while (1) {
$1 = ($4 << 1) + $3 << $2;
$5 = $1;
$1 = $0 >>> 0 < $1 >>> 0;
$0 = $0 - ($1 ? 0 : $5) | 0;
$4 = ($1 ? 0 : $3) + $4 | 0;
$1 = ($2 | 0) > 0;
$3 = $3 >>> 1 | 0;
$2 = $2 - 1 | 0;
if ($1) {
continue;
}
break;
}
return $4;
}
function ec_enc_init($0, $1, $2) {
HEAP32[$0 + 24 >> 2] = 0;
HEAP32[$0 + 28 >> 2] = -2147483648;
HEAP32[$0 + 16 >> 2] = 0;
HEAP32[$0 + 20 >> 2] = 33;
HEAP32[$0 + 8 >> 2] = 0;
HEAP32[$0 + 12 >> 2] = 0;
HEAP32[$0 >> 2] = $1;
HEAP32[$0 + 32 >> 2] = 0;
HEAP32[$0 + 36 >> 2] = 0;
HEAP32[$0 + 40 >> 2] = -1;
HEAP32[$0 + 44 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = $2;
}
function opus_packet_get_samples_per_frame($0, $1) {
$0 = HEAPU8[$0 | 0];
if ($0 & 128) {
return ($1 << ($0 >>> 3 & 3)) / 400 | 0;
}
if (($0 & 96) == 96) {
if ($0 & 8) {
return ($1 | 0) / 50 | 0;
}
return ($1 | 0) / 100 | 0;
}
$0 = $0 >>> 3 & 3;
if (($0 | 0) == 3) {
return (Math_imul($1, 60) | 0) / 1e3 | 0;
}
return ($1 << $0) / 100 | 0;
}
function __cos($0, $1) {
var $2 = 0, $3 = 0, $4 = 0, $5 = 0;
$2 = $0 * $0;
$3 = $2 * .5;
$4 = 1 - $3;
$5 = 1 - $4 - $3;
$3 = $2 * $2;
return $4 + ($5 + ($2 * ($2 * ($2 * ($2 * 2480158728947673e-20 + -.001388888888887411) + .0416666666666666) + $3 * $3 * ($2 * ($2 * -1.1359647557788195e-11 + 2.087572321298175e-9) + -2.7557314351390663e-7)) - $0 * $1));
}
function silk_autocorrelation_FLP($0, $1, $2, $3) {
var $4 = 0, $5 = 0;
$4 = ($2 | 0) < ($3 | 0) ? $2 : $3;
if (($4 | 0) >= 1) {
$3 = 0;
while (1) {
$5 = $3 << 2;
HEAPF32[$5 + $0 >> 2] = silk_inner_product_FLP($1, $1 + $5 | 0, $2 - $3 | 0);
$3 = $3 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
}
function silk_inner_prod_aligned_scale($0, $1, $2, $3) {
var $4 = 0, $5 = 0, $6 = 0;
if (($3 | 0) >= 1) {
while (1) {
$5 = $4 << 1;
$6 = (Math_imul(HEAP16[$5 + $1 >> 1], HEAP16[$0 + $5 >> 1]) >> $2) + $6 | 0;
$4 = $4 + 1 | 0;
if (($4 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
return $6;
}
function silk_corrVector_FLP($0, $1, $2, $3, $4) {
var $5 = 0;
if (($3 | 0) >= 1) {
$0 = (($3 << 2) + $0 | 0) - 4 | 0;
while (1) {
HEAPF32[($5 << 2) + $4 >> 2] = silk_inner_product_FLP($0, $1, $2);
$0 = $0 - 4 | 0;
$5 = $5 + 1 | 0;
if (($5 | 0) != ($3 | 0)) {
continue;
}
break;
}
}
}
function getint($0) {
var $1 = 0, $2 = 0, $3 = 0;
if (isdigit(HEAP8[HEAP32[$0 >> 2]])) {
while (1) {
$1 = HEAP32[$0 >> 2];
$3 = HEAP8[$1 | 0];
HEAP32[$0 >> 2] = $1 + 1;
$2 = (Math_imul($2, 10) + $3 | 0) - 48 | 0;
if (isdigit(HEAP8[$1 + 1 | 0])) {
continue;
}
break;
}
}
return $2;
}
function ec_tell_frac($0) {
var $1 = 0, $2 = 0, $3 = 0;
$2 = HEAP32[$0 + 20 >> 2] << 3;
$0 = HEAP32[$0 + 28 >> 2];
$1 = Math_clz32($0);
$0 = $0 >>> 16 - $1 | 0;
$3 = $0;
$0 = ($0 >>> 12 | 0) - 8 | 0;
return ((($2 + ($1 << 3) | 0) - ($3 >>> 0 > HEAPU32[($0 << 2) + 32816 >> 2]) | 0) - $0 | 0) - 256 | 0;
}
function ec_enc_shrink($0, $1) {
var $2 = 0, $3 = 0;
$2 = HEAP32[$0 + 8 >> 2];
if ($2 + HEAP32[$0 + 24 >> 2] >>> 0 > $1 >>> 0) {
celt_fatal(7097, 7019, 238);
abort();
}
$3 = HEAP32[$0 >> 2];
memmove(($3 + $1 | 0) - $2 | 0, (HEAP32[$0 + 4 >> 2] + $3 | 0) - $2 | 0, $2);
HEAP32[$0 + 4 >> 2] = $1;
}
function silk_init_encoder($0, $1) {
$0 = memset($0, 0, 10064);
HEAP32[$0 + 5092 >> 2] = $1;
$1 = silk_lin2log(3932160);
HEAP32[$0 + 4664 >> 2] = 1;
$1 = ($1 << 8) - 524288 | 0;
HEAP32[$0 + 12 >> 2] = $1;
HEAP32[$0 + 8 >> 2] = $1;
return silk_VAD_Init($0 + 36 | 0);
}
function ec_decode($0, $1) {
var $2 = 0;
$2 = HEAPU32[$0 + 28 >> 2] / ($1 >>> 0) | 0;
HEAP32[$0 + 36 >> 2] = $2;
$0 = HEAPU32[$0 + 32 >> 2] / ($2 >>> 0) | 0;
$2 = ($0 ^ -1) + $1 | 0;
$0 = $0 + 1 | 0;
$1 = $0 - $1 | 0;
return $2 + ($0 >>> 0 < $1 >>> 0 ? 0 : $1) | 0;
}
function fmt_x($0, $1, $2, $3) {
if ($0 | $1) {
while (1) {
$2 = $2 - 1 | 0;
HEAP8[$2 | 0] = HEAPU8[($0 & 15) + 1600 | 0] | $3;
$0 = ($1 & 15) << 28 | $0 >>> 4;
$1 = $1 >>> 4 | 0;
if ($0 | $1) {
continue;
}
break;
}
}
return $2;
}
function fmt_o($0, $1, $2) {
if ($0 | $1) {
while (1) {
$2 = $2 - 1 | 0;
HEAP8[$2 | 0] = $0 & 7 | 48;
$0 = ($1 & 7) << 29 | $0 >>> 3;
$1 = $1 >>> 3 | 0;
if ($0 | $1) {
continue;
}
break;
}
}
return $2;
}
function silk_gains_ID($0, $1) {
var $2 = 0, $3 = 0;
if (($1 | 0) >= 1) {
while (1) {
$3 = HEAP8[$0 + $2 | 0] + ($3 << 8) | 0;
$2 = $2 + 1 | 0;
if (($2 | 0) != ($1 | 0)) {
continue;
}
break;
}
}
return $3;
}
function celt_fatal($0, $1, $2) {
var $3 = 0;
$3 = __stack_pointer - 16 | 0;
__stack_pointer = $3;
HEAP32[$3 + 8 >> 2] = $0;
HEAP32[$3 + 4 >> 2] = $2;
HEAP32[$3 >> 2] = $1;
fiprintf(HEAP32[278], 1616, $3);
abort();
abort();
}
function legalstub$dynCall_jiji($0, $1, $2, $3, $4) {
$0 = $0 | 0;
$1 = $1 | 0;
$2 = $2 | 0;
$3 = $3 | 0;
$4 = $4 | 0;
$0 = dynCall_jiji($0, $1, $2, $3, $4);
$2 = i64toi32_i32$HIGH_BITS;
setTempRet0($2 | 0);
return $0 | 0;
}
function speex_resampler_destroy($0) {
$0 = $0 | 0;
dlfree(HEAP32[$0 + 72 >> 2]);
dlfree(HEAP32[$0 + 76 >> 2]);
dlfree(HEAP32[$0 + 60 >> 2]);
dlfree(HEAP32[$0 + 68 >> 2]);
dlfree(HEAP32[$0 + 64 >> 2]);
dlfree($0);
}
function __DOUBLE_BITS($0) {
var $1 = 0, $2 = 0;
wasm2js_scratch_store_f64(+$0);
$1 = wasm2js_scratch_load_i32(1) | 0;
$2 = wasm2js_scratch_load_i32(0) | 0;
i64toi32_i32$HIGH_BITS = $1;
return $2;
}
function celt_encoder_get_size($0) {
var $1 = 0;
$1 = opus_custom_mode_create(48e3, 960, 0);
return Math_imul(((HEAP32[$1 + 4 >> 2] << 2) + (HEAP32[$1 + 8 >> 2] << 4) | 0) + 4096 | 0, $0) + 244 | 0;
}
function fiprintf($0, $1, $2) {
var $3 = 0;
$3 = __stack_pointer - 16 | 0;
__stack_pointer = $3;
HEAP32[$3 + 12 >> 2] = $2;
$2 = vfiprintf($0, $1, $2);
__stack_pointer = $3 + 16 | 0;
return $2;
}
function encode_size($0, $1) {
var $2 = 0;
if (($0 | 0) <= 251) {
HEAP8[$1 | 0] = $0;
return 1;
}
$2 = $0 | -4;
HEAP8[$1 | 0] = $2;
HEAP8[$1 + 1 | 0] = $0 - ($2 & 255) >>> 2;
return 2;
}
function speex_resampler_init($0, $1, $2, $3, $4) {
$0 = $0 | 0;
$1 = $1 | 0;
$2 = $2 | 0;
$3 = $3 | 0;
$4 = $4 | 0;
return speex_resampler_init_frac($0, $1, $2, $1, $2, $3, $4) | 0;
}
function __wasm_i64_udiv($0, $1, $2, $3) {
$3 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E($0, $1, $2, $3);
return $3;
}
function __wasm_rotl_i32($0, $1) {
var $2 = 0;
$2 = $1 & 31;
$1 = 0 - $1 & 31;
return (-1 >>> $2 & $0) << $2 | (-1 << $1 & $0) >>> $1;
}
function lrintf($0) {
$0 = rintf($0);
if (Math_fround(Math_abs($0)) < Math_fround(2147483648)) {
return ~~$0;
}
return -2147483648;
}
function legalfunc$__wasi_fd_seek($0, $1, $2, $3, $4) {
return legalimport$__wasi_fd_seek($0 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0) | 0;
}
function __wasm_i64_mul($0, $1, $2, $3) {
$3 = _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE($0, $1, $2, $3);
return $3;
}
function tonality_analysis_init($0, $1) {
HEAP32[$0 + 8 >> 2] = $1;
HEAP32[$0 >> 2] = 0;
memset($0 + 12 | 0, 0, 13992);
}
function stackAlloc($0) {
$0 = $0 | 0;
$0 = __stack_pointer - $0 & -16;
__stack_pointer = $0;
return $0 | 0;
}
function silk_resampler_private_up2_HQ_wrapper($0, $1, $2, $3) {
silk_resampler_private_up2_HQ($0, $1, $2, $3);
}
function __wasi_syscall_ret($0) {
if (!$0) {
return 0;
}
HEAP32[__errno_location() >> 2] = $0;
return -1;
}
function dynCall_jiji($0, $1, $2, $3, $4) {
$3 = FUNCTION_TABLE[$0 | 0]($1, $2, $3, $4) | 0;
return $3;
}
function __stdio_close($0) {
$0 = $0 | 0;
return __wasi_fd_close(dummy(HEAP32[$0 + 60 >> 2]) | 0) | 0;
}
function __wasm_ctz_i32($0) {
if ($0) {
return 31 - Math_clz32($0 - 1 ^ $0) | 0;
}
return 32;
}
function opus_repacketizer_cat($0, $1, $2) {
return opus_repacketizer_cat_impl($0, $1, $2, 0);
}
function out($0, $1, $2) {
if (!(HEAPU8[$0 | 0] & 32)) {
__fwritex($1, $2, $0);
}
}
function wctomb($0, $1) {
if (!$0) {
return 0;
}
return wcrtomb($0, $1, 0);
}
function vfiprintf($0, $1, $2) {
return __vfprintf_internal($0, $1, $2, 0, 0);
}
function silk_stereo_encode_mid_only($0, $1) {
ec_enc_icdf($0, $1, 5801, 8);
}
function opus_repacketizer_init($0) {
HEAP32[$0 + 4 >> 2] = 0;
return $0;
}
function silk_Get_Encoder_Size($0) {
HEAP32[$0 >> 2] = 20216;
return 0;
}
function tonality_analysis_reset($0) {
memset($0 + 12 | 0, 0, 13992);
}
function stackRestore($0) {
$0 = $0 | 0;
__stack_pointer = $0;
}
function opus_encoder_destroy($0) {
$0 = $0 | 0;
dlfree($0);
}
function rintf($0) {
return __wasm_nearest_f32($0);
}
function stackSave() {
return __stack_pointer | 0;
}
function isdigit($0) {
return $0 - 48 >>> 0 < 10;
}
function floor($0) {
return Math_floor($0);
}
function __errno_location() {
return 52924;
}
function __pthread_self() {
return 52696;
}
function __lockfile($0) {
return 1;
}
function dummy($0) {
return $0;
}
function __wasm_call_ctors() {}
function __unlockfile($0) {}
// EMSCRIPTEN_END_FUNCS
;
bufferView = HEAPU8;
initActiveSegments(env);
var FUNCTION_TABLE = Table([null, __stdio_close, __stdio_write, __stdio_seek, downmix_float, resampler_basic_direct_double, resampler_basic_direct_single, resampler_basic_interpolate_double, resampler_basic_interpolate_single, resampler_basic_zero]);
function __wasm_memory_size() {
return buffer.byteLength / 65536 | 0;
}
return {
"__wasm_call_ctors": __wasm_call_ctors,
"opus_encoder_create": opus_encoder_create,
"opus_encode_float": opus_encode_float,
"opus_encoder_ctl": opus_encoder_ctl,
"opus_encoder_destroy": opus_encoder_destroy,
"speex_resampler_init": speex_resampler_init,
"speex_resampler_destroy": speex_resampler_destroy,
"speex_resampler_process_interleaved_float": speex_resampler_process_interleaved_float,
"__errno_location": __errno_location,
"stackSave": stackSave,
"stackRestore": stackRestore,
"stackAlloc": stackAlloc,
"malloc": dlmalloc,
"free": dlfree,
"__indirect_function_table": FUNCTION_TABLE,
"dynCall_jiji": legalstub$dynCall_jiji
};
}
return asmFunc(asmLibraryArg);
}
// EMSCRIPTEN_END_ASM
)(asmLibraryArg);
},
instantiate: /** @suppress{checkTypes} */ function(binary, info) {
return {
then: function(ok) {
var module = new WebAssembly.Module(binary);
ok({
'instance': new WebAssembly.Instance(module)
});
}
};
},
RuntimeError: Error
};
// We don't need to actually download a wasm binary, mark it as present but empty.
wasmBinary = [];
// end include: wasm2js.js
if (typeof WebAssembly !== 'object') {
abort('no native wasm support detected');
}
// include: runtime_safe_heap.js
// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking.
// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties)
/** @param {number} ptr
@param {number} value
@param {string} type
@param {number|boolean=} noSafe */
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);
}
}
/** @param {number} ptr
@param {string} type
@param {number|boolean=} noSafe */
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;
}
// end include: runtime_safe_heap.js
// Wasm globals
var wasmMemory;
//========================================
// 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;
/** @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.
/** @param {string|null=} returnType
@param {Array=} argTypes
@param {Arguments|Array=} args
@param {Object=} opts */
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;
}
/** @param {string=} returnType
@param {Array=} argTypes
@param {Object=} opts */
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);
}
}
var ALLOC_NORMAL = 0; // Tries to use _malloc()
var ALLOC_STACK = 1; // Lives for the duration of the current function call
// 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.
// @allocator: How to allocate memory, see ALLOC_*
/** @type {function((Uint8Array|Array<number>), number)} */
function allocate(slab, allocator) {
var ret;
if (allocator == ALLOC_STACK) {
ret = stackAlloc(slab.length);
} else {
ret = _malloc(slab.length);
}
if (slab.subarray || slab.slice) {
HEAPU8.set(/** @type {!Uint8Array} */(slab), ret);
} else {
HEAPU8.set(new Uint8Array(slab), ret);
}
return ret;
}
// include: runtime_strings.js
// runtime_strings.js: Strings related runtime functions that are part of both MINIMAL_RUNTIME and regular runtime.
// 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(heap, 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 (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr;
if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {
return UTF8Decoder.decode(heap.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 = heap[idx++];
if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
var u1 = heap[idx++] & 63;
if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
var u2 = heap[idx++] & 63;
if ((u0 & 0xF0) == 0xE0) {
u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
} else {
u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[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.
// heap: 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, heap, 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;
heap[outIdx++] = u;
} else if (u <= 0x7FF) {
if (outIdx + 1 >= endIdx) break;
heap[outIdx++] = 0xC0 | (u >> 6);
heap[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0xFFFF) {
if (outIdx + 2 >= endIdx) break;
heap[outIdx++] = 0xE0 | (u >> 12);
heap[outIdx++] = 0x80 | ((u >> 6) & 63);
heap[outIdx++] = 0x80 | (u & 63);
} else {
if (outIdx + 3 >= endIdx) break;
heap[outIdx++] = 0xF0 | (u >> 18);
heap[outIdx++] = 0x80 | ((u >> 12) & 63);
heap[outIdx++] = 0x80 | ((u >> 6) & 63);
heap[outIdx++] = 0x80 | (u & 63);
}
}
// Null-terminate the pointer to the buffer.
heap[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;
}
// end include: runtime_strings.js
// include: runtime_strings_extra.js
// runtime_strings_extra.js: Strings related runtime functions that are available only in regular runtime.
// 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 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, maxBytesToRead) {
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;
var maxIdx = idx + maxBytesToRead / 2;
// If maxBytesToRead is not passed explicitly, it will be undefined, and this
// will always evaluate to true. This saves on code size.
while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx;
endPtr = idx << 1;
if (endPtr - ptr > 32 && UTF16Decoder) {
return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
} else {
var str = '';
// If maxBytesToRead is not passed explicitly, it will be undefined, and the for-loop's condition
// will always evaluate to true. The loop is then terminated on the first null char.
for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {
var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
if (codeUnit == 0) break;
// fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
str += String.fromCharCode(codeUnit);
}
return str;
}
}
// 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, maxBytesToRead) {
var i = 0;
var str = '';
// If maxBytesToRead is not passed explicitly, it will be undefined, and this
// will always evaluate to true. This saves on code size.
while (!(i >= maxBytesToRead / 4)) {
var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
if (utf32 == 0) break;
++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);
}
}
return str;
}
// 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
@param {boolean=} dontAddNull */
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);
}
/** @param {boolean=} dontAddNull */
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;
}
// end include: runtime_strings_extra.js
// Memory management
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 updateGlobalBufferAndViews(buf) {
buffer = buf;
Module['HEAP8'] = HEAP8 = new Int8Array(buf);
Module['HEAP16'] = HEAP16 = new Int16Array(buf);
Module['HEAP32'] = HEAP32 = new Int32Array(buf);
Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf);
Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf);
Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf);
Module['HEAPF32'] = HEAPF32 = new Float32Array(buf);
Module['HEAPF64'] = HEAPF64 = new Float64Array(buf);
}
var TOTAL_STACK = 5242880;
var INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 16777216;
// In non-standalone/normal mode, we create the memory here.
// include: runtime_init_memory.js
// Create the wasm memory. (Note: this only applies if IMPORTED_MEMORY is defined)
if (Module['wasmMemory']) {
wasmMemory = Module['wasmMemory'];
} else
{
wasmMemory = new WebAssembly.Memory({
'initial': INITIAL_MEMORY / 65536
,
'maximum': INITIAL_MEMORY / 65536
});
}
if (wasmMemory) {
buffer = wasmMemory.buffer;
}
// If the user provides an incorrect length, just use that length instead rather than providing the user to
// specifically provide the memory length with Module['INITIAL_MEMORY'].
INITIAL_MEMORY = buffer.byteLength;
updateGlobalBufferAndViews(buffer);
// end include: runtime_init_memory.js
// include: runtime_init_table.js
// In regular non-RELOCATABLE mode the table is exported
// from the wasm module and this will be assigned once
// the exports are available.
var wasmTable;
// end include: runtime_init_table.js
// include: runtime_stack_check.js
// end include: runtime_stack_check.js
// include: runtime_assertions.js
// end include: runtime_assertions.js
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;
__ATINIT__.push({ func: function() { ___wasm_call_ctors() } });
function preRun() {
if (Module['preRun']) {
if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
while (Module['preRun'].length) {
addOnPreRun(Module['preRun'].shift());
}
}
callRuntimeCallbacks(__ATPRERUN__);
}
function initRuntime() {
runtimeInitialized = true;
callRuntimeCallbacks(__ATINIT__);
}
function preMain() {
callRuntimeCallbacks(__ATMAIN__);
}
function exitRuntime() {
runtimeExited = true;
}
function postRun() {
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);
}
// include: runtime_math.js
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc
// end include: runtime_math.js
// 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
/** @param {string|number=} what */
function abort(what) {
if (Module['onAbort']) {
Module['onAbort'](what);
}
what += '';
err(what);
ABORT = true;
EXITSTATUS = 1;
what = 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';
// Use a wasm runtime error, because a JS error might be seen as a foreign
// exception, which means we'd run destructors on it. We need the error to
// simply make the program stop.
var e = new WebAssembly.RuntimeError(what);
// Throw the error whether or not MODULARIZE is set because abort is used
// in code paths apart from instantiation where an exception is expected
// to be thrown when abort is called.
throw e;
}
// {{MEM_INITIALIZER}}
// include: memoryprofiler.js
// end include: memoryprofiler.js
// include: URIUtils.js
function hasPrefix(str, prefix) {
return String.prototype.startsWith ?
str.startsWith(prefix) :
str.indexOf(prefix) === 0;
}
// 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 hasPrefix(filename, dataURIPrefix);
}
var fileURIPrefix = "file://";
// Indicates whether filename is delivered via file protocol (as opposed to http/https)
function isFileURI(filename) {
return hasPrefix(filename, fileURIPrefix);
}
// end include: URIUtils.js
var wasmBinaryFile = '<<< WASM_BINARY_FILE >>>';
if (!isDataURI(wasmBinaryFile)) {
wasmBinaryFile = locateFile(wasmBinaryFile);
}
function getBinary(file) {
try {
if (file == wasmBinaryFile && wasmBinary) {
return new Uint8Array(wasmBinary);
}
var binary = tryParseAsDataURI(file);
if (binary) {
return binary;
}
if (readBinary) {
return readBinary(file);
} else {
throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)";
}
}
catch (err) {
abort(err);
}
}
function getBinaryPromise() {
// If we don't have the binary yet, try to to load it asynchronously.
// Fetch has some additional restrictions over XHR, like it can't be used on a file:// url.
// See https://github.com/github/fetch/pull/92#issuecomment-140665932
// Cordova or Electron apps are typically loaded from a file:// url.
// So use fetch if it is available and the url is not a file, otherwise fall back to XHR.
if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
if (typeof fetch === 'function'
&& !isFileURI(wasmBinaryFile)
) {
return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {
if (!response['ok']) {
throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
}
return response['arrayBuffer']();
}).catch(function () {
return getBinary(wasmBinaryFile);
});
}
else {
if (readAsync) {
// fetch is not available or url is file => try XHR (readAsync uses XHR internally)
return new Promise(function(resolve, reject) {
readAsync(wasmBinaryFile, function(response) { resolve(new Uint8Array(/** @type{!ArrayBuffer} */(response))) }, reject)
});
}
}
}
// Otherwise, getBinary should be able to get it synchronously
return Promise.resolve().then(function() { return getBinary(wasmBinaryFile); });
}
function instantiateSync(file, info) {
var instance;
var module;
var binary;
try {
binary = getBinary(file);
module = new WebAssembly.Module(binary);
instance = new WebAssembly.Instance(module, info);
} catch (e) {
var str = e.toString();
err('failed to compile wasm module: ' + str);
if (str.indexOf('imported Memory') >= 0 ||
str.indexOf('memory import') >= 0) {
err('Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time).');
}
throw e;
}
return [instance, module];
}
// Create the wasm instance.
// Receives the wasm imports, returns the exports.
function createWasm() {
// prepare imports
var info = {
'env': asmLibraryArg,
'wasi_snapshot_preview1': asmLibraryArg,
};
// Load the wasm module and create an instance of using native support in the JS engine.
// handle a generated wasm instance, receiving its exports and
// performing other necessary setup
/** @param {WebAssembly.Module=} module*/
function receiveInstance(instance, module) {
var exports = instance.exports;
Module['asm'] = exports;
wasmTable = Module['asm']['__indirect_function_table'];
removeRunDependency('wasm-instantiate');
}
// we can't run yet (except in a pthread, where we have a custom sync instantiator)
addRunDependency('wasm-instantiate');
function receiveInstantiatedSource(output) {
// 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.
// receiveInstance() will swap in the exports (to Module.asm) so they can be called
// TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.
// When the regression is fixed, can restore the above USE_PTHREADS-enabled path.
receiveInstance(output['instance']);
}
function instantiateArrayBuffer(receiver) {
return getBinaryPromise().then(function(binary) {
return WebAssembly.instantiate(binary, info);
}).then(receiver, function(reason) {
err('failed to asynchronously prepare wasm: ' + reason);
abort(reason);
});
}
// Prefer streaming instantiation if available.
// User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
// to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel
// to any other async startup actions they are performing.
if (Module['instantiateWasm']) {
try {
var exports = Module['instantiateWasm'](info, receiveInstance);
return exports;
} catch(e) {
err('Module.instantiateWasm callback failed with error: ' + e);
return false;
}
}
var result = instantiateSync(wasmBinaryFile, info);
receiveInstance(result[0], result[1]);
return Module['asm']; // exports were assigned here
}
// Globals used by JS i64 conversions (see makeSetValue)
var tempDouble;
var tempI64;
// === Body ===
var ASM_CONSTS = {
};
function callRuntimeCallbacks(callbacks) {
while(callbacks.length > 0) {
var callback = callbacks.shift();
if (typeof callback == 'function') {
callback(Module); // Pass the module as the first argument.
continue;
}
var func = callback.func;
if (typeof func === 'number') {
if (callback.arg === undefined) {
wasmTable.get(func)();
} else {
wasmTable.get(func)(callback.arg);
}
} else {
func(callback.arg === undefined ? null : callback.arg);
}
}
}
function demangle(func) {
return func;
}
function demangleAll(text) {
var regex =
/\b_Z[\w\d_]+/g;
return text.replace(regex,
function(x) {
var y = demangle(x);
return x === y ? x : (y + ' [' + x + ']');
});
}
function jsStackTrace() {
var error = new Error();
if (!error.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();
} catch(e) {
error = e;
}
if (!error.stack) {
return '(no stack trace available)';
}
}
return error.stack.toString();
}
function stackTrace() {
var js = jsStackTrace();
if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace']();
return demangleAll(js);
}
function _abort() {
abort();
}
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.copyWithin(dest, src, src + num);
}
function _emscripten_get_heap_size() {
return HEAPU8.length;
}
function abortOnCannotGrowMemory(requestedSize) {
abort('OOM');
}
function _emscripten_resize_heap(requestedSize) {
abortOnCannotGrowMemory(requestedSize);
}
var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream, curr) {
var buffer = SYSCALLS.buffers[stream];
if (curr === 0 || curr === 10) {
(stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
buffer.length = 0;
} else {
buffer.push(curr);
}
},varargs:undefined,get:function() {
SYSCALLS.varargs += 4;
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
return ret;
},getStr:function(ptr) {
var ret = UTF8ToString(ptr);
return ret;
},get64:function(low, high) {
return low;
}};
function _fd_close(fd) {
return 0;
}
function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
}
function flush_NO_FILESYSTEM() {
// flush anything remaining in the buffers during shutdown
if (typeof _fflush !== 'undefined') _fflush(0);
var buffers = SYSCALLS.buffers;
if (buffers[1].length) SYSCALLS.printChar(1, 10);
if (buffers[2].length) SYSCALLS.printChar(2, 10);
}
function _fd_write(fd, iov, iovcnt, pnum) {
// hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0
var num = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
for (var j = 0; j < len; j++) {
SYSCALLS.printChar(fd, HEAPU8[ptr+j]);
}
num += len;
}
HEAP32[((pnum)>>2)] = num
return 0;
}
function _setTempRet0($i) {
setTempRet0(($i) | 0);
}
var ASSERTIONS = false;
/** @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 {
// TODO: Update Node.js externs, Closure does not recognize the following Buffer.from()
/**@suppress{checkTypes}*/
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));
}
var asmLibraryArg = {
"abort": _abort,
"emscripten_memcpy_big": _emscripten_memcpy_big,
"emscripten_resize_heap": _emscripten_resize_heap,
"fd_close": _fd_close,
"fd_seek": _fd_seek,
"fd_write": _fd_write,
"getTempRet0": getTempRet0,
"memory": wasmMemory,
"setTempRet0": setTempRet0
};
var asm = createWasm();
/** @type {function(...*):?} */
var ___wasm_call_ctors = Module["___wasm_call_ctors"] = asm["__wasm_call_ctors"]
/** @type {function(...*):?} */
var _opus_encoder_create = Module["_opus_encoder_create"] = asm["opus_encoder_create"]
/** @type {function(...*):?} */
var _opus_encode_float = Module["_opus_encode_float"] = asm["opus_encode_float"]
/** @type {function(...*):?} */
var _opus_encoder_ctl = Module["_opus_encoder_ctl"] = asm["opus_encoder_ctl"]
/** @type {function(...*):?} */
var _opus_encoder_destroy = Module["_opus_encoder_destroy"] = asm["opus_encoder_destroy"]
/** @type {function(...*):?} */
var _speex_resampler_init = Module["_speex_resampler_init"] = asm["speex_resampler_init"]
/** @type {function(...*):?} */
var _speex_resampler_destroy = Module["_speex_resampler_destroy"] = asm["speex_resampler_destroy"]
/** @type {function(...*):?} */
var _speex_resampler_process_interleaved_float = Module["_speex_resampler_process_interleaved_float"] = asm["speex_resampler_process_interleaved_float"]
/** @type {function(...*):?} */
var ___errno_location = Module["___errno_location"] = asm["__errno_location"]
/** @type {function(...*):?} */
var stackSave = Module["stackSave"] = asm["stackSave"]
/** @type {function(...*):?} */
var stackRestore = Module["stackRestore"] = asm["stackRestore"]
/** @type {function(...*):?} */
var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]
/** @type {function(...*):?} */
var _malloc = Module["_malloc"] = asm["malloc"]
/** @type {function(...*):?} */
var _free = Module["_free"] = asm["free"]
/** @type {function(...*):?} */
var dynCall_jiji = Module["dynCall_jiji"] = asm["dynCall_jiji"]
// === Auto-generated postamble setup entry stuff ===
var calledRun;
/**
* @constructor
* @this {ExitStatus}
*/
function ExitStatus(status) {
this.name = "ExitStatus";
this.message = "Program terminated with exit(" + status + ")";
this.status = status;
}
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 (!calledRun) run();
if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
};
/** @type {function(Array=)} */
function run(args) {
args = args || arguments_;
if (runDependencies > 0) {
return;
}
preRun();
// a preRun added a dependency, run will be called later
if (runDependencies > 0) {
return;
}
function doRun() {
// run may have just been called through dependencies being fulfilled just in this very frame,
// or while the async setStatus time below was happening
if (calledRun) return;
calledRun = true;
Module['calledRun'] = true;
if (ABORT) return;
initRuntime();
preMain();
if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
postRun();
}
if (Module['setStatus']) {
Module['setStatus']('Running...');
setTimeout(function() {
setTimeout(function() {
Module['setStatus']('');
}, 1);
doRun();
}, 1);
} else
{
doRun();
}
}
Module['run'] = run;
/** @param {boolean|number=} implicit */
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 && noExitRuntime && status === 0) {
return;
}
if (noExitRuntime) {
} else {
EXITSTATUS = status;
exitRuntime();
if (Module['onExit']) Module['onExit'](status);
ABORT = true;
}
quit_(status, new ExitStatus(status));
}
if (Module['preInit']) {
if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
while (Module['preInit'].length > 0) {
Module['preInit'].pop()();
}
}
run();
return Module;
}, 'OpusEncoderLib'));//END: UMD wrapper